@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
|
@@ -312,7 +312,7 @@ export class GridComponent {
|
|
|
312
312
|
*/
|
|
313
313
|
selectable = false;
|
|
314
314
|
/**
|
|
315
|
-
* Sets the descriptors for sorting the data ([see example](
|
|
315
|
+
* Sets the descriptors for sorting the data ([see example](slug:manual_sorting_grid)).
|
|
316
316
|
*/
|
|
317
317
|
set sort(value) {
|
|
318
318
|
if (isArray(value)) {
|
|
@@ -345,11 +345,11 @@ export class GridComponent {
|
|
|
345
345
|
*/
|
|
346
346
|
trackBy = defaultTrackBy;
|
|
347
347
|
/**
|
|
348
|
-
* Sets the filter descriptor for the data ([see examples](
|
|
348
|
+
* Sets the filter descriptor for the data ([see examples](slug:manual_filtering_grid)).
|
|
349
349
|
*/
|
|
350
350
|
filter;
|
|
351
351
|
/**
|
|
352
|
-
* Sets the descriptors for grouping the data ([see example](
|
|
352
|
+
* Sets the descriptors for grouping the data ([see example](slug:manual_grouping_grid)).
|
|
353
353
|
*/
|
|
354
354
|
set group(value) {
|
|
355
355
|
if (isArray(value)) {
|
|
@@ -2870,6 +2870,15 @@ export class GridComponent {
|
|
|
2870
2870
|
|
|
2871
2871
|
i18n-columnChooserSelectedColumnsCount="kendo.grid.columnChooserSelectedColumnsCount|The text displayed in the Column Chooser for the number of selected columns"
|
|
2872
2872
|
columnChooserSelectedColumnsCount="{{ '{selectedColumnsCount} Selected items' }}"
|
|
2873
|
+
|
|
2874
|
+
i18n-multiCheckboxFilterSearchPlaceholder="kendo.grid.multiCheckboxFilterSearchPlaceholder|The placeholder text for the multi-checkbox filter search input"
|
|
2875
|
+
multiCheckboxFilterSearchPlaceholder="Search..."
|
|
2876
|
+
|
|
2877
|
+
i18n-multiCheckboxFilterSelectAllLabel="kendo.grid.multiCheckboxFilterSelectAllLabel|The label for the multi-checkbox filter select all option"
|
|
2878
|
+
multiCheckboxFilterSelectAllLabel="Select all"
|
|
2879
|
+
|
|
2880
|
+
i18n-multiCheckboxFilterSelectedItemsCount="kendo.grid.multiCheckboxFilterSelectedItemsCount|The text for the multi-checkbox filter selected items count"
|
|
2881
|
+
multiCheckboxFilterSelectedItemsCount="{{ '{selectedItemsCount} selected items' }}"
|
|
2873
2882
|
>
|
|
2874
2883
|
</ng-container>
|
|
2875
2884
|
<kendo-grid-toolbar
|
|
@@ -3730,6 +3739,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3730
3739
|
|
|
3731
3740
|
i18n-columnChooserSelectedColumnsCount="kendo.grid.columnChooserSelectedColumnsCount|The text displayed in the Column Chooser for the number of selected columns"
|
|
3732
3741
|
columnChooserSelectedColumnsCount="{{ '{selectedColumnsCount} Selected items' }}"
|
|
3742
|
+
|
|
3743
|
+
i18n-multiCheckboxFilterSearchPlaceholder="kendo.grid.multiCheckboxFilterSearchPlaceholder|The placeholder text for the multi-checkbox filter search input"
|
|
3744
|
+
multiCheckboxFilterSearchPlaceholder="Search..."
|
|
3745
|
+
|
|
3746
|
+
i18n-multiCheckboxFilterSelectAllLabel="kendo.grid.multiCheckboxFilterSelectAllLabel|The label for the multi-checkbox filter select all option"
|
|
3747
|
+
multiCheckboxFilterSelectAllLabel="Select all"
|
|
3748
|
+
|
|
3749
|
+
i18n-multiCheckboxFilterSelectedItemsCount="kendo.grid.multiCheckboxFilterSelectedItemsCount|The text for the multi-checkbox filter selected items count"
|
|
3750
|
+
multiCheckboxFilterSelectedItemsCount="{{ '{selectedItemsCount} selected items' }}"
|
|
3733
3751
|
>
|
|
3734
3752
|
</ng-container>
|
|
3735
3753
|
<kendo-grid-toolbar
|
package/esm2022/index.mjs
CHANGED
|
@@ -46,6 +46,7 @@ export { DropCueService } from './dragdrop/drop-cue.service';
|
|
|
46
46
|
export { EditService as EditServiceClass } from './editing/edit.service';
|
|
47
47
|
export { NumericFilterComponent } from './filtering/numeric-filter.component';
|
|
48
48
|
export { StringFilterComponent } from './filtering/string-filter.component';
|
|
49
|
+
export { MultiCheckboxFilterComponent } from './filtering/multicheckbox-filter.component';
|
|
49
50
|
export { GroupInfoService } from './grouping/group-info.service';
|
|
50
51
|
export { GroupsService } from './grouping/groups.service';
|
|
51
52
|
export { BrowserSupportService } from './layout/browser-support.service';
|
|
@@ -582,8 +582,29 @@ export class GridMessages extends ComponentMessages {
|
|
|
582
582
|
* Sets the text for the external editing Dialog <b>Cancel</b> button.
|
|
583
583
|
*/
|
|
584
584
|
externalEditingCancelText;
|
|
585
|
+
/**
|
|
586
|
+
* The placeholder text for the multi-checkbox filter search input
|
|
587
|
+
*/
|
|
588
|
+
multiCheckboxFilterSearchPlaceholder;
|
|
589
|
+
/**
|
|
590
|
+
* The label for the multi-checkbox filter select all option
|
|
591
|
+
*/
|
|
592
|
+
multiCheckboxFilterSelectAllLabel;
|
|
593
|
+
/**
|
|
594
|
+
* The text for the multi-checkbox filter selected items count
|
|
595
|
+
*
|
|
596
|
+
* The text includes the selected items count and a localizable string.
|
|
597
|
+
* For 3 selected items the default text is `3 selected items`.
|
|
598
|
+
*
|
|
599
|
+
* To customize the text, use the `{selectedItemsCount}` placeholder and a custom localizable string.
|
|
600
|
+
* For example, `{selectedItemsCount} items are selected`.
|
|
601
|
+
*
|
|
602
|
+
* The `{selectedItemsCount}` placeholder is replaced with the count of selected items,
|
|
603
|
+
* and the message is rendered as `3 items are selected`.
|
|
604
|
+
*/
|
|
605
|
+
multiCheckboxFilterSelectedItemsCount;
|
|
585
606
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
586
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", pagerInputLabel: "pagerInputLabel", pagerSelectPage: "pagerSelectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterCellOperatorLabel: "filterCellOperatorLabel", booleanFilterCellLabel: "booleanFilterCellLabel", aiAssistantApplyButtonText: "aiAssistantApplyButtonText", aiAssistantToolbarToolText: "aiAssistantToolbarToolText", aiAssistantWindowTitle: "aiAssistantWindowTitle", aiAssistantWindowCloseTitle: "aiAssistantWindowCloseTitle", aiAssistantOutputCardTitle: "aiAssistantOutputCardTitle", aiAssistantOutputCardBodyContent: "aiAssistantOutputCardBodyContent", aiAssistantWindowMaximizeTitle: "aiAssistantWindowMaximizeTitle", aiAssistantWindowMinimizeTitle: "aiAssistantWindowMinimizeTitle", aiAssistantWindowRestoreTitle: "aiAssistantWindowRestoreTitle", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", adaptiveFilterOperatorsTitle: "adaptiveFilterOperatorsTitle", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle", adaptiveBackButtonTitle: "adaptiveBackButtonTitle", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", filterToolbarToolText: "filterToolbarToolText", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", columnChooserSelectedColumnsCount: "columnChooserSelectedColumnsCount", columnsSubtitle: "columnsSubtitle", adaptiveFilterTitle: "adaptiveFilterTitle", adaptiveSortTitle: "adaptiveSortTitle", adaptiveGroupTitle: "adaptiveGroupTitle", filterClearAllButton: "filterClearAllButton", groupClearButton: "groupClearButton", sortClearButton: "sortClearButton", sortDoneButton: "sortDoneButton", groupDoneButton: "groupDoneButton", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", sortToolbarToolText: "sortToolbarToolText", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", editToolbarToolText: "editToolbarToolText", saveToolbarToolText: "saveToolbarToolText", addToolbarToolText: "addToolbarToolText", cancelToolbarToolText: "cancelToolbarToolText", removeToolbarToolText: "removeToolbarToolText", excelExportToolbarToolText: "excelExportToolbarToolText", pdfExportToolbarToolText: "pdfExportToolbarToolText", groupPanelLabel: "groupPanelLabel", dragRowHandleLabel: "dragRowHandleLabel", columnMenuFilterTabTitle: "columnMenuFilterTabTitle", columnMenuGeneralTabTitle: "columnMenuGeneralTabTitle", columnMenuColumnsTabTitle: "columnMenuColumnsTabTitle", groupChipMenuPrevious: "groupChipMenuPrevious", groupChipMenuNext: "groupChipMenuNext", groupToolbarToolText: "groupToolbarToolText", formValidationErrorText: "formValidationErrorText", removeConfirmationDialogTitle: "removeConfirmationDialogTitle", removeConfirmationDialogContent: "removeConfirmationDialogContent", removeConfirmationDialogConfirmText: "removeConfirmationDialogConfirmText", removeConfirmationDialogRejectText: "removeConfirmationDialogRejectText", externalEditingTitle: "externalEditingTitle", externalEditingAddTitle: "externalEditingAddTitle", externalEditingSaveText: "externalEditingSaveText", externalEditingCancelText: "externalEditingCancelText" }, usesInheritance: true, ngImport: i0 });
|
|
607
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", pagerInputLabel: "pagerInputLabel", pagerSelectPage: "pagerSelectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterCellOperatorLabel: "filterCellOperatorLabel", booleanFilterCellLabel: "booleanFilterCellLabel", aiAssistantApplyButtonText: "aiAssistantApplyButtonText", aiAssistantToolbarToolText: "aiAssistantToolbarToolText", aiAssistantWindowTitle: "aiAssistantWindowTitle", aiAssistantWindowCloseTitle: "aiAssistantWindowCloseTitle", aiAssistantOutputCardTitle: "aiAssistantOutputCardTitle", aiAssistantOutputCardBodyContent: "aiAssistantOutputCardBodyContent", aiAssistantWindowMaximizeTitle: "aiAssistantWindowMaximizeTitle", aiAssistantWindowMinimizeTitle: "aiAssistantWindowMinimizeTitle", aiAssistantWindowRestoreTitle: "aiAssistantWindowRestoreTitle", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", adaptiveFilterOperatorsTitle: "adaptiveFilterOperatorsTitle", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle", adaptiveBackButtonTitle: "adaptiveBackButtonTitle", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", filterToolbarToolText: "filterToolbarToolText", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", columnChooserSelectedColumnsCount: "columnChooserSelectedColumnsCount", columnsSubtitle: "columnsSubtitle", adaptiveFilterTitle: "adaptiveFilterTitle", adaptiveSortTitle: "adaptiveSortTitle", adaptiveGroupTitle: "adaptiveGroupTitle", filterClearAllButton: "filterClearAllButton", groupClearButton: "groupClearButton", sortClearButton: "sortClearButton", sortDoneButton: "sortDoneButton", groupDoneButton: "groupDoneButton", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", sortToolbarToolText: "sortToolbarToolText", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", editToolbarToolText: "editToolbarToolText", saveToolbarToolText: "saveToolbarToolText", addToolbarToolText: "addToolbarToolText", cancelToolbarToolText: "cancelToolbarToolText", removeToolbarToolText: "removeToolbarToolText", excelExportToolbarToolText: "excelExportToolbarToolText", pdfExportToolbarToolText: "pdfExportToolbarToolText", groupPanelLabel: "groupPanelLabel", dragRowHandleLabel: "dragRowHandleLabel", columnMenuFilterTabTitle: "columnMenuFilterTabTitle", columnMenuGeneralTabTitle: "columnMenuGeneralTabTitle", columnMenuColumnsTabTitle: "columnMenuColumnsTabTitle", groupChipMenuPrevious: "groupChipMenuPrevious", groupChipMenuNext: "groupChipMenuNext", groupToolbarToolText: "groupToolbarToolText", formValidationErrorText: "formValidationErrorText", removeConfirmationDialogTitle: "removeConfirmationDialogTitle", removeConfirmationDialogContent: "removeConfirmationDialogContent", removeConfirmationDialogConfirmText: "removeConfirmationDialogConfirmText", removeConfirmationDialogRejectText: "removeConfirmationDialogRejectText", externalEditingTitle: "externalEditingTitle", externalEditingAddTitle: "externalEditingAddTitle", externalEditingSaveText: "externalEditingSaveText", externalEditingCancelText: "externalEditingCancelText", multiCheckboxFilterSearchPlaceholder: "multiCheckboxFilterSearchPlaceholder", multiCheckboxFilterSelectAllLabel: "multiCheckboxFilterSelectAllLabel", multiCheckboxFilterSelectedItemsCount: "multiCheckboxFilterSelectedItemsCount" }, usesInheritance: true, ngImport: i0 });
|
|
587
608
|
}
|
|
588
609
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridMessages, decorators: [{
|
|
589
610
|
type: Directive,
|
|
@@ -841,4 +862,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
841
862
|
type: Input
|
|
842
863
|
}], externalEditingCancelText: [{
|
|
843
864
|
type: Input
|
|
865
|
+
}], multiCheckboxFilterSearchPlaceholder: [{
|
|
866
|
+
type: Input
|
|
867
|
+
}], multiCheckboxFilterSelectAllLabel: [{
|
|
868
|
+
type: Input
|
|
869
|
+
}], multiCheckboxFilterSelectedItemsCount: [{
|
|
870
|
+
type: Input
|
|
844
871
|
}] } });
|
|
@@ -123,8 +123,14 @@ export class LogicalCellDirective {
|
|
|
123
123
|
this.focusGroup.focus();
|
|
124
124
|
}
|
|
125
125
|
else {
|
|
126
|
-
if (!this.logicalSlaveCell &&
|
|
127
|
-
this.
|
|
126
|
+
if (!this.logicalSlaveCell &&
|
|
127
|
+
this.navigationService.autoFocusCell(this.logicalColIndex, this.logicalColIndex + this.colSpan - 1)) {
|
|
128
|
+
this.microtask(() => {
|
|
129
|
+
if (this.isFocused()) {
|
|
130
|
+
el.focus({ preventScroll: this.navigationService.preventScroll });
|
|
131
|
+
this.navigationService.preventScroll = false;
|
|
132
|
+
}
|
|
133
|
+
});
|
|
128
134
|
}
|
|
129
135
|
this.renderer.addClass(el, 'k-focus');
|
|
130
136
|
}
|
|
@@ -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: '20.1.0-develop.
|
|
13
|
+
publishDate: 1760027531,
|
|
14
|
+
version: '20.1.0-develop.21',
|
|
15
15
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
16
16
|
};
|
|
@@ -29,7 +29,7 @@ export class FieldAccessorPipe {
|
|
|
29
29
|
}
|
|
30
30
|
formatValue(format, value) {
|
|
31
31
|
const intl = this.intlService;
|
|
32
|
-
if (isString(format) &&
|
|
32
|
+
if (isString(format) && FORMAT_REGEX.exec(format)) {
|
|
33
33
|
return intl.format(format, value);
|
|
34
34
|
}
|
|
35
35
|
return intl.toString(value, format);
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { Pipe } from '@angular/core';
|
|
6
|
+
import { isString } from '../../utils';
|
|
7
|
+
import { IntlService } from '@progress/kendo-angular-intl';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@progress/kendo-angular-intl";
|
|
10
|
+
const FORMAT_REGEX = /\{\d+:?/;
|
|
11
|
+
/**
|
|
12
|
+
* @hidden
|
|
13
|
+
*/
|
|
14
|
+
export class FormatPipe {
|
|
15
|
+
intlService;
|
|
16
|
+
constructor(intlService) {
|
|
17
|
+
this.intlService = intlService;
|
|
18
|
+
}
|
|
19
|
+
transform(value, format) {
|
|
20
|
+
const intl = this.intlService;
|
|
21
|
+
if (isString(format) && FORMAT_REGEX.exec(format)) {
|
|
22
|
+
return intl.format(format, value);
|
|
23
|
+
}
|
|
24
|
+
return intl.toString(value, format);
|
|
25
|
+
}
|
|
26
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormatPipe, deps: [{ token: i1.IntlService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
27
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FormatPipe, isStandalone: true, name: "format", pure: false });
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormatPipe, decorators: [{
|
|
30
|
+
type: Pipe,
|
|
31
|
+
args: [{
|
|
32
|
+
// eslint-disable-next-line @angular-eslint/pipe-prefix
|
|
33
|
+
name: 'format',
|
|
34
|
+
pure: false,
|
|
35
|
+
standalone: true
|
|
36
|
+
}]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i1.IntlService }]; } });
|
|
@@ -169,7 +169,7 @@ export class HeaderComponent {
|
|
|
169
169
|
}
|
|
170
170
|
onHeaderKeydown(column, args) {
|
|
171
171
|
const code = normalizeNumpadKeys(args);
|
|
172
|
-
if (code === Keys.ArrowDown && args.altKey && this.showFilterMenu) {
|
|
172
|
+
if (code === Keys.ArrowDown && args.altKey && this.showFilterMenu && this.isFilterable(column)) {
|
|
173
173
|
args.preventDefault();
|
|
174
174
|
args.stopImmediatePropagation();
|
|
175
175
|
const filterMenu = this.filterMenus.find(fm => fm.column === column);
|
|
@@ -270,6 +270,9 @@ export class ListComponent {
|
|
|
270
270
|
this.handleSkipOnData = true;
|
|
271
271
|
}
|
|
272
272
|
if (isChanged('isVirtual', changes)) {
|
|
273
|
+
if (this.isVirtual && !(this.minRowHeight || this.rowHeight)) {
|
|
274
|
+
this.minRowHeight = calcRowHeight(this.table.nativeElement);
|
|
275
|
+
}
|
|
273
276
|
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
274
277
|
this.scroller.reset();
|
|
275
278
|
this.rowHeightService = this.scroller.rowHeightService = new RowHeightService(this.total, this.rowHeight || this.minRowHeight);
|
|
@@ -290,6 +293,7 @@ export class ListComponent {
|
|
|
290
293
|
get totalIsAllItems() {
|
|
291
294
|
return this.isVirtual && (Boolean(this.ctx.grid?.pageable || this.ctx.grid?.group?.length));
|
|
292
295
|
}
|
|
296
|
+
rebindGroupedDataFlag = false;
|
|
293
297
|
ngDoCheck() {
|
|
294
298
|
if (this.virtualColumns && (!this.viewportColumns || this.viewportWidthChange())) {
|
|
295
299
|
this.updateViewportColumns();
|
|
@@ -308,6 +312,14 @@ export class ListComponent {
|
|
|
308
312
|
this.scroller.reset(this.skipScroll);
|
|
309
313
|
this.scroller.total = this.allItems.length;
|
|
310
314
|
}
|
|
315
|
+
else if (totalChanged && !this.ctx.grid?.group?.length) {
|
|
316
|
+
this.scroller.reset(this.skipScroll);
|
|
317
|
+
this.scroller.total = this.total;
|
|
318
|
+
}
|
|
319
|
+
const rebindGroupedData = this.isVirtual && !totalChanged && this.ctx.grid?.group?.length && !this.rebindGroupedDataFlag;
|
|
320
|
+
if (rebindGroupedData) {
|
|
321
|
+
this.rebindGroupedDataFlag = true;
|
|
322
|
+
}
|
|
311
323
|
if (shouldCalculatePageSize || !isPresent(this.scroller.rowHeightService)) {
|
|
312
324
|
const calculatedPageSize = this.virtualPageSize ?? this.calcVirtualPageSize();
|
|
313
325
|
if (calculatedPageSize > 0) {
|
|
@@ -328,6 +340,10 @@ export class ListComponent {
|
|
|
328
340
|
});
|
|
329
341
|
}
|
|
330
342
|
}
|
|
343
|
+
else if (this.rebindGroupedDataFlag) {
|
|
344
|
+
this.ngZone.run(() => this.itemsToRender = this.allItems.slice(this.scroller.virtualSkip, this.scroller.virtualSkip + this.virtualPageSize));
|
|
345
|
+
this.rebindGroupedDataFlag = false;
|
|
346
|
+
}
|
|
331
347
|
if (!this.zoneSub) {
|
|
332
348
|
this.zoneSub = this.ngZone.onStable.subscribe(() => {
|
|
333
349
|
if (!this.scroller.rowHeightService) {
|
|
@@ -848,7 +864,7 @@ export class ListComponent {
|
|
|
848
864
|
<div></div>
|
|
849
865
|
</div>
|
|
850
866
|
</div>
|
|
851
|
-
<div
|
|
867
|
+
<div
|
|
852
868
|
#container
|
|
853
869
|
class="k-grid-content k-virtual-content"
|
|
854
870
|
[kendoGridResizableContainer]="lockedLeafColumns.length > 0"
|
|
@@ -973,7 +989,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
973
989
|
<div></div>
|
|
974
990
|
</div>
|
|
975
991
|
</div>
|
|
976
|
-
<div
|
|
992
|
+
<div
|
|
977
993
|
#container
|
|
978
994
|
class="k-grid-content k-virtual-content"
|
|
979
995
|
[kendoGridResizableContainer]="lockedLeafColumns.length > 0"
|
|
@@ -216,7 +216,7 @@ export class ColumnChooserToolbarDirective extends ToolbarToolBase {
|
|
|
216
216
|
this.buttonElement?.setAttribute('aria-expanded', 'false');
|
|
217
217
|
this.buttonElement?.removeAttribute('aria-controls');
|
|
218
218
|
this.host.selected = false;
|
|
219
|
-
focusAnchor && this.buttonElement?.focus();
|
|
219
|
+
focusAnchor && this.buttonElement?.focus({ preventScroll: true });
|
|
220
220
|
}
|
|
221
221
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnChooserToolbarDirective, deps: [{ token: i0.Renderer2 }, { token: i1.PopupService }, { token: i2.ToolBarButtonComponent }, { token: i3.ContextService }, { token: i0.NgZone }, { token: i2.RefreshService }, { token: i4.AdaptiveGridService }, { token: i5.ColumnInfoService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
222
222
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ColumnChooserToolbarDirective, isStandalone: true, selector: "[kendoGridColumnChooserTool]", inputs: { autoSync: "autoSync", allowHideAll: "allowHideAll", filterable: "filterable", showSelectAll: "showSelectAll" }, usesInheritance: true, ngImport: i0 });
|
|
@@ -91,7 +91,7 @@ export class FilterToolbarToolComponent {
|
|
|
91
91
|
}
|
|
92
92
|
ngAfterViewInit() {
|
|
93
93
|
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
94
|
-
this.filterItems?.get(0)?.nativeElement.focus();
|
|
94
|
+
this.filterItems?.get(0)?.nativeElement.focus({ preventScroll: true });
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
97
|
ngOnDestroy() {
|
|
@@ -34,12 +34,12 @@ export class GroupToolbarToolComponent {
|
|
|
34
34
|
if (items?.first && (!isPresent(this.currentFocusedItemIndex) || this.currentFocusedItemIndex >= items.length || this.currentFocusedItemIndex < 0)) {
|
|
35
35
|
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
36
36
|
this.currentFocusedItemIndex = 0;
|
|
37
|
-
this.groupItems.first.nativeElement.focus();
|
|
37
|
+
this.groupItems.first.nativeElement.focus({ preventScroll: true });
|
|
38
38
|
});
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
41
|
if (items?.first) {
|
|
42
|
-
items.get(this.currentFocusedItemIndex).nativeElement.focus();
|
|
42
|
+
items.get(this.currentFocusedItemIndex).nativeElement.focus({ preventScroll: true });
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
get groupItems() {
|
|
@@ -70,7 +70,7 @@ export class SortToolbarToolComponent {
|
|
|
70
70
|
}
|
|
71
71
|
ngAfterViewInit() {
|
|
72
72
|
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
73
|
-
this.sortItems?.get(0)?.nativeElement.focus();
|
|
73
|
+
this.sortItems?.get(0)?.nativeElement.focus({ preventScroll: true });
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
ngOnDestroy() {
|
|
@@ -133,9 +133,6 @@ export class ScrollerService {
|
|
|
133
133
|
const lastItemIndex = this.rowHeightService.index(scrollTop + offsetHeight);
|
|
134
134
|
const overflow = Math.max(firstItemIndex + (this.virtualPageSize || this.take) - this.total, 0);
|
|
135
135
|
firstItemIndex = Math.max(firstItemIndex - overflow, 0);
|
|
136
|
-
if (lastItemIndex < this.lastLoaded) {
|
|
137
|
-
this.lastLoaded = lastItemIndex;
|
|
138
|
-
}
|
|
139
136
|
if (down) {
|
|
140
137
|
const atBottom = scrollHeight - clientHeight - scrollTop < SCROLL_BOTTOM_THRESHOLD;
|
|
141
138
|
if (atBottom) {
|