@progress/kendo-angular-grid 19.0.0-develop.23 → 19.0.0-develop.25
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/template-transformer/index.js +94 -0
- package/codemods/utils.js +131 -0
- package/codemods/v19/grid-kendogridgroupbinding.js +51 -0
- package/codemods/v19/index.js +51 -0
- package/column-menu/column-menu-item.component.d.ts +16 -3
- package/esm2022/adaptiveness/adaptive-renderer.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-autosize-all.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-autosize.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-chooser.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-filter.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-item.component.mjs +33 -11
- package/esm2022/column-menu/column-menu-lock.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-position.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-sort.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-stick.component.mjs +1 -1
- package/esm2022/grid.component.mjs +65 -9
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/toolbar/tools/column-chooser-tool.directive.mjs +2 -0
- package/esm2022/rendering/toolbar/tools/filter-command-tool.directive.mjs +14 -3
- package/esm2022/rendering/toolbar/tools/filter-tool-wrapper.component.mjs +1 -0
- package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +56 -8
- package/esm2022/rendering/toolbar/tools/sort-command-tool.directive.mjs +14 -4
- package/fesm2022/progress-kendo-angular-grid.mjs +192 -44
- package/grid.component.d.ts +13 -0
- package/package.json +41 -21
- package/rendering/toolbar/tools/filter-command-tool.directive.d.ts +5 -0
- package/rendering/toolbar/tools/filter-toolbar-tool.component.d.ts +10 -2
- package/rendering/toolbar/tools/sort-command-tool.directive.d.ts +5 -0
- package/schematics/ngAdd/index.js +4 -4
|
@@ -91,7 +91,7 @@ export class ColumnMenuSortComponent extends ColumnMenuItemBase {
|
|
|
91
91
|
(itemClick)="toggleSort('desc')"
|
|
92
92
|
[selected]="sortedDesc">
|
|
93
93
|
</kendo-grid-columnmenu-item>
|
|
94
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
94
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
95
95
|
}
|
|
96
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuSortComponent, decorators: [{
|
|
97
97
|
type: Component,
|
|
@@ -91,7 +91,7 @@ export class ColumnMenuStickComponent extends ColumnMenuItemBase {
|
|
|
91
91
|
(itemClick)="toggleColumn()"
|
|
92
92
|
[disabled]="disabled">
|
|
93
93
|
</kendo-grid-columnmenu-item>
|
|
94
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
94
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }] });
|
|
95
95
|
}
|
|
96
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuStickComponent, decorators: [{
|
|
97
97
|
type: Component,
|
|
@@ -915,6 +915,39 @@ export class GridComponent {
|
|
|
915
915
|
get scrollbarWidth() {
|
|
916
916
|
return this.supportService.scrollbarWidth;
|
|
917
917
|
}
|
|
918
|
+
get showPagerInput() {
|
|
919
|
+
return this._showPagerInput;
|
|
920
|
+
}
|
|
921
|
+
set showPagerInput(value) {
|
|
922
|
+
if (this._showPagerInput === value) {
|
|
923
|
+
return;
|
|
924
|
+
}
|
|
925
|
+
this._showPagerInput = value;
|
|
926
|
+
}
|
|
927
|
+
get showPagerPageText() {
|
|
928
|
+
return this._showPagerPageText;
|
|
929
|
+
}
|
|
930
|
+
set showPagerPageText(value) {
|
|
931
|
+
if (!this.normalizedPageableSettings?.responsive) {
|
|
932
|
+
this._showPagerPageText = true;
|
|
933
|
+
}
|
|
934
|
+
if (this._showPagerPageText === value) {
|
|
935
|
+
return;
|
|
936
|
+
}
|
|
937
|
+
this._showPagerPageText = value;
|
|
938
|
+
}
|
|
939
|
+
get showPagerItemsText() {
|
|
940
|
+
return this._showPagerItemsText;
|
|
941
|
+
}
|
|
942
|
+
set showPagerItemsText(value) {
|
|
943
|
+
if (!this.normalizedPageableSettings?.responsive) {
|
|
944
|
+
this._showPagerItemsText = true;
|
|
945
|
+
}
|
|
946
|
+
if (this._showPagerItemsText === value) {
|
|
947
|
+
return;
|
|
948
|
+
}
|
|
949
|
+
this._showPagerItemsText = value;
|
|
950
|
+
}
|
|
918
951
|
get headerPadding() {
|
|
919
952
|
if (isUniversal()) {
|
|
920
953
|
return '';
|
|
@@ -985,6 +1018,9 @@ export class GridComponent {
|
|
|
985
1018
|
_navigable = ['table', 'pager', 'toolbar'];
|
|
986
1019
|
_size = 'medium';
|
|
987
1020
|
_loading = false;
|
|
1021
|
+
_showPagerInput = true;
|
|
1022
|
+
_showPagerPageText = true;
|
|
1023
|
+
_showPagerItemsText = true;
|
|
988
1024
|
get isVirtual() {
|
|
989
1025
|
return this.scrollable === 'virtual';
|
|
990
1026
|
}
|
|
@@ -1627,6 +1663,12 @@ export class GridComponent {
|
|
|
1627
1663
|
}
|
|
1628
1664
|
this.pageChange.emit(event);
|
|
1629
1665
|
}
|
|
1666
|
+
/**
|
|
1667
|
+
* @hidden
|
|
1668
|
+
*/
|
|
1669
|
+
handlePagerVisibilityChange(prop, ev) {
|
|
1670
|
+
this[prop] = ev;
|
|
1671
|
+
}
|
|
1630
1672
|
/**
|
|
1631
1673
|
* @hidden
|
|
1632
1674
|
*/
|
|
@@ -2707,7 +2749,10 @@ export class GridComponent {
|
|
|
2707
2749
|
[pageSizeValues]="normalizedPageableSettings.pageSizes"
|
|
2708
2750
|
[previousNext]="normalizedPageableSettings.previousNext"
|
|
2709
2751
|
[type]="normalizedPageableSettings.type"
|
|
2710
|
-
(pageChange)="notifyPageChange('pager', $event)"
|
|
2752
|
+
(pageChange)="notifyPageChange('pager', $event)"
|
|
2753
|
+
(pagerInputVisibilityChange)="handlePagerVisibilityChange('showPagerInput', $event)"
|
|
2754
|
+
(pageTextVisibilityChange)="handlePagerVisibilityChange('showPagerPageText', $event)"
|
|
2755
|
+
(itemsTextVisibilityChange)="handlePagerVisibilityChange('showPagerItemsText', $event)">
|
|
2711
2756
|
<ng-template kendoPagerTemplate>
|
|
2712
2757
|
<ng-container
|
|
2713
2758
|
[ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
|
|
@@ -3030,7 +3075,10 @@ export class GridComponent {
|
|
|
3030
3075
|
[pageSizeValues]="normalizedPageableSettings.pageSizes"
|
|
3031
3076
|
[previousNext]="normalizedPageableSettings.previousNext"
|
|
3032
3077
|
[type]="normalizedPageableSettings.type"
|
|
3033
|
-
(pageChange)="notifyPageChange('pager', $event)"
|
|
3078
|
+
(pageChange)="notifyPageChange('pager', $event)"
|
|
3079
|
+
(pagerInputVisibilityChange)="handlePagerVisibilityChange('showPagerInput', $event)"
|
|
3080
|
+
(pageTextVisibilityChange)="handlePagerVisibilityChange('showPagerPageText', $event)"
|
|
3081
|
+
(itemsTextVisibilityChange)="handlePagerVisibilityChange('showPagerItemsText', $event)">
|
|
3034
3082
|
<ng-template kendoPagerTemplate>
|
|
3035
3083
|
<ng-container
|
|
3036
3084
|
[ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
|
|
@@ -3078,12 +3126,13 @@ export class GridComponent {
|
|
|
3078
3126
|
*ngIf="normalizedPageableSettings.type === 'numeric' && normalizedPageableSettings.buttonCount > 0"
|
|
3079
3127
|
[buttonCount]="normalizedPageableSettings.buttonCount">
|
|
3080
3128
|
</kendo-pager-numeric-buttons>
|
|
3081
|
-
<kendo-pager-input [size]="size" *ngIf="normalizedPageableSettings.type === 'input'"></kendo-pager-input>
|
|
3129
|
+
<kendo-pager-input [size]="size" *ngIf="normalizedPageableSettings.type === 'input' || showPagerInput" [showPageText]="showPagerPageText"></kendo-pager-input>
|
|
3082
3130
|
<kendo-pager-next-buttons [size]="size" *ngIf="normalizedPageableSettings.previousNext"></kendo-pager-next-buttons>
|
|
3083
3131
|
</div>
|
|
3084
3132
|
<kendo-pager-page-sizes *ngIf="normalizedPageableSettings.pageSizes"
|
|
3085
3133
|
[size]="size"
|
|
3086
|
-
[pageSizes]="normalizedPageableSettings.pageSizes"
|
|
3134
|
+
[pageSizes]="normalizedPageableSettings.pageSizes"
|
|
3135
|
+
[showItemsText]="showPagerItemsText">
|
|
3087
3136
|
</kendo-pager-page-sizes>
|
|
3088
3137
|
<kendo-pager-info *ngIf="normalizedPageableSettings.info">
|
|
3089
3138
|
</kendo-pager-info>
|
|
@@ -3093,7 +3142,7 @@ export class GridComponent {
|
|
|
3093
3142
|
<kendo-grid-adaptive-renderer *ngIf="isAdaptiveModeEnabled"></kendo-grid-adaptive-renderer>
|
|
3094
3143
|
|
|
3095
3144
|
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
|
|
3096
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GridToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { kind: "component", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { kind: "directive", type: TableDirective, selector: "[kendoGridResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "directive", type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { kind: "component", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns", "tabIndex", "size"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { kind: "component", type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode", "cursorStyle", "hintContext"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }, { kind: "component", type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex", "totalColumns", "totalColumnsCount"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { kind: "component", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["statusBarTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }, { kind: "component", type: i27.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i27.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i27.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["showPageText", "size"] }, { kind: "component", type: i27.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i27.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i27.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: i27.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i27.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i27.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive", "adaptiveMode"], outputs: ["pageChange", "pageSizeChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-grid-adaptive-renderer" }], encapsulation: i0.ViewEncapsulation.None });
|
|
3145
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoGridLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GridToolbarComponent, selector: "kendo-grid-toolbar", inputs: ["position", "size", "navigable"] }, { kind: "component", type: GroupPanelComponent, selector: "kendo-grid-group-panel", inputs: ["text", "navigable", "groups"], outputs: ["change"] }, { kind: "directive", type: TableDirective, selector: "[kendoGridResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "directive", type: GridTableDirective, selector: "[kendoGridTable]", inputs: ["size"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoGridColGroup]", inputs: ["columns", "groups", "detailTemplate", "sort"] }, { kind: "component", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: ["totalColumnLevels", "columns", "groups", "detailTemplate", "scrollable", "filterable", "sort", "filter", "sortable", "groupable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns", "tabIndex", "size"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoGridResizableContainer]", inputs: ["lockedWidth", "kendoGridResizableContainer"] }, { kind: "component", type: ListComponent, selector: "kendo-grid-list", inputs: ["data", "groups", "total", "rowHeight", "stickyRowHeight", "detailRowHeight", "take", "skip", "columns", "detailTemplate", "noRecordsTemplate", "selectable", "groupable", "filterable", "rowClass", "rowSticky", "loading", "trackBy", "virtualColumns", "isVirtual", "cellLoadingTemplate", "loadingTemplate", "sort", "size"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode", "cursorStyle", "hintContext"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: GridMarqueeDirective, selector: "[kendoGridSelectionMarquee]" }, { kind: "component", type: FooterComponent, selector: "[kendoGridFooter]", inputs: ["columns", "groups", "detailTemplate", "scrollable", "lockedColumnsCount", "logicalRowIndex", "totalColumns", "totalColumnsCount"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoGridTableBody]", inputs: ["columns", "allColumns", "groups", "detailTemplate", "noRecordsTemplate", "data", "skip", "selectable", "filterable", "noRecordsText", "isLocked", "isLoading", "isVirtual", "cellLoadingTemplate", "skipGroupDecoration", "showGroupFooters", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "trackBy", "rowSticky", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoGridLoading]", inputs: ["loadingTemplate"] }, { kind: "component", type: StatusBarComponent, selector: "kendo-grid-status-bar", inputs: ["statusBarTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }, { kind: "component", type: i27.CustomMessagesComponent, selector: "kendo-datapager-messages, kendo-pager-messages" }, { kind: "component", type: i27.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i27.PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["showPageText", "size"] }, { kind: "component", type: i27.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i27.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i27.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: i27.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i27.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "component", type: i27.PagerComponent, selector: "kendo-datapager, kendo-pager", inputs: ["externalTemplate", "total", "skip", "pageSize", "buttonCount", "info", "type", "pageSizeValues", "previousNext", "navigable", "size", "responsive", "adaptiveMode"], outputs: ["pageChange", "pageSizeChange", "pagerInputVisibilityChange", "pageTextVisibilityChange", "itemsTextVisibilityChange"], exportAs: ["kendoDataPager", "kendoPager"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdaptiveRendererComponent, selector: "kendo-grid-adaptive-renderer" }], encapsulation: i0.ViewEncapsulation.None });
|
|
3097
3146
|
}
|
|
3098
3147
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridComponent, decorators: [{
|
|
3099
3148
|
type: Component,
|
|
@@ -3511,7 +3560,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3511
3560
|
[pageSizeValues]="normalizedPageableSettings.pageSizes"
|
|
3512
3561
|
[previousNext]="normalizedPageableSettings.previousNext"
|
|
3513
3562
|
[type]="normalizedPageableSettings.type"
|
|
3514
|
-
(pageChange)="notifyPageChange('pager', $event)"
|
|
3563
|
+
(pageChange)="notifyPageChange('pager', $event)"
|
|
3564
|
+
(pagerInputVisibilityChange)="handlePagerVisibilityChange('showPagerInput', $event)"
|
|
3565
|
+
(pageTextVisibilityChange)="handlePagerVisibilityChange('showPagerPageText', $event)"
|
|
3566
|
+
(itemsTextVisibilityChange)="handlePagerVisibilityChange('showPagerItemsText', $event)">
|
|
3515
3567
|
<ng-template kendoPagerTemplate>
|
|
3516
3568
|
<ng-container
|
|
3517
3569
|
[ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
|
|
@@ -3834,7 +3886,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3834
3886
|
[pageSizeValues]="normalizedPageableSettings.pageSizes"
|
|
3835
3887
|
[previousNext]="normalizedPageableSettings.previousNext"
|
|
3836
3888
|
[type]="normalizedPageableSettings.type"
|
|
3837
|
-
(pageChange)="notifyPageChange('pager', $event)"
|
|
3889
|
+
(pageChange)="notifyPageChange('pager', $event)"
|
|
3890
|
+
(pagerInputVisibilityChange)="handlePagerVisibilityChange('showPagerInput', $event)"
|
|
3891
|
+
(pageTextVisibilityChange)="handlePagerVisibilityChange('showPagerPageText', $event)"
|
|
3892
|
+
(itemsTextVisibilityChange)="handlePagerVisibilityChange('showPagerItemsText', $event)">
|
|
3838
3893
|
<ng-template kendoPagerTemplate>
|
|
3839
3894
|
<ng-container
|
|
3840
3895
|
[ngTemplateOutlet]="pagerTemplate ? pagerTemplate?.templateRef : defaultPager"
|
|
@@ -3882,12 +3937,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3882
3937
|
*ngIf="normalizedPageableSettings.type === 'numeric' && normalizedPageableSettings.buttonCount > 0"
|
|
3883
3938
|
[buttonCount]="normalizedPageableSettings.buttonCount">
|
|
3884
3939
|
</kendo-pager-numeric-buttons>
|
|
3885
|
-
<kendo-pager-input [size]="size" *ngIf="normalizedPageableSettings.type === 'input'"></kendo-pager-input>
|
|
3940
|
+
<kendo-pager-input [size]="size" *ngIf="normalizedPageableSettings.type === 'input' || showPagerInput" [showPageText]="showPagerPageText"></kendo-pager-input>
|
|
3886
3941
|
<kendo-pager-next-buttons [size]="size" *ngIf="normalizedPageableSettings.previousNext"></kendo-pager-next-buttons>
|
|
3887
3942
|
</div>
|
|
3888
3943
|
<kendo-pager-page-sizes *ngIf="normalizedPageableSettings.pageSizes"
|
|
3889
3944
|
[size]="size"
|
|
3890
|
-
[pageSizes]="normalizedPageableSettings.pageSizes"
|
|
3945
|
+
[pageSizes]="normalizedPageableSettings.pageSizes"
|
|
3946
|
+
[showItemsText]="showPagerItemsText">
|
|
3891
3947
|
</kendo-pager-page-sizes>
|
|
3892
3948
|
<kendo-pager-info *ngIf="normalizedPageableSettings.info">
|
|
3893
3949
|
</kendo-pager-info>
|
|
@@ -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: '19.0.0-develop.
|
|
13
|
+
publishDate: 1747671447,
|
|
14
|
+
version: '19.0.0-develop.25',
|
|
15
15
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
16
16
|
};
|
|
@@ -149,6 +149,7 @@ export class ColumnChooserToolbarDirective extends ToolbarToolBase {
|
|
|
149
149
|
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
150
150
|
this.buttonElement?.setAttribute('aria-expanded', 'true');
|
|
151
151
|
this.buttonElement?.setAttribute('aria-controls', popupId);
|
|
152
|
+
this.host.selected = true;
|
|
152
153
|
const columnList = this.popupRef.content.instance;
|
|
153
154
|
columnList.isLast = true;
|
|
154
155
|
columnList.autoSync = this.autoSync;
|
|
@@ -180,6 +181,7 @@ export class ColumnChooserToolbarDirective extends ToolbarToolBase {
|
|
|
180
181
|
this.popupRef = null;
|
|
181
182
|
this.buttonElement?.setAttribute('aria-expanded', 'false');
|
|
182
183
|
this.buttonElement?.removeAttribute('aria-controls');
|
|
184
|
+
this.host.selected = false;
|
|
183
185
|
focusAnchor && this.buttonElement?.focus();
|
|
184
186
|
}
|
|
185
187
|
get buttonElement() {
|
|
@@ -53,6 +53,12 @@ export class FilterCommandToolbarDirective {
|
|
|
53
53
|
toolSubs = new Subscription();
|
|
54
54
|
popupSubs;
|
|
55
55
|
removeClickListener;
|
|
56
|
+
/**
|
|
57
|
+
* @hidden
|
|
58
|
+
*/
|
|
59
|
+
isFilterApplied(filter) {
|
|
60
|
+
return isPresent(filter) && filter.filters?.length > 0;
|
|
61
|
+
}
|
|
56
62
|
constructor(host, popupService, ctx, filterService, columnInfoService, ngZone, renderer, adaptiveGridService) {
|
|
57
63
|
this.host = host;
|
|
58
64
|
this.popupService = popupService;
|
|
@@ -66,8 +72,9 @@ export class FilterCommandToolbarDirective {
|
|
|
66
72
|
ngOnInit() {
|
|
67
73
|
this.toolSubs = this.host.click.subscribe(e => this.onClick(e));
|
|
68
74
|
this.toolSubs.add(this.filterService.changes.subscribe(filter => {
|
|
69
|
-
this.host.showBadge =
|
|
75
|
+
this.host.showBadge = this.isFilterApplied(filter);
|
|
70
76
|
}));
|
|
77
|
+
this.host.showBadge = this.isFilterApplied(this.ctx.grid.filter);
|
|
71
78
|
const hasToolbarIcon = isPresent(this.host.toolbarOptions.icon) && this.host.toolbarOptions.icon !== '';
|
|
72
79
|
const hasOverflowIcon = isPresent(this.host.overflowOptions.icon) && this.host.overflowOptions.icon !== '';
|
|
73
80
|
const hasIcon = hasToolbarIcon && hasOverflowIcon;
|
|
@@ -87,7 +94,7 @@ export class FilterCommandToolbarDirective {
|
|
|
87
94
|
}
|
|
88
95
|
this.buttonElement?.setAttribute('aria-haspopup', 'dialog');
|
|
89
96
|
this.buttonElement?.setAttribute('aria-expanded', 'false');
|
|
90
|
-
this.buttonElement?.setAttribute('title', this.ctx.localization.get('
|
|
97
|
+
this.buttonElement?.setAttribute('title', this.ctx.localization.get('filterToolbarToolText'));
|
|
91
98
|
}
|
|
92
99
|
ngOnDestroy() {
|
|
93
100
|
if (this.toolSubs) {
|
|
@@ -132,13 +139,16 @@ export class FilterCommandToolbarDirective {
|
|
|
132
139
|
});
|
|
133
140
|
this.adaptiveGridService.popupRef = this.popupRef;
|
|
134
141
|
this.setPopupAttributes();
|
|
142
|
+
this.host.selected = true;
|
|
135
143
|
this.ngZone.runOutsideAngular(() => {
|
|
136
144
|
if (!isDocumentAvailable()) {
|
|
137
145
|
return;
|
|
138
146
|
}
|
|
139
147
|
this.removeClickListener = this.renderer.listen('document', 'click', (e) => {
|
|
140
148
|
if (this.popupRef && !closest(e.target, node => node === this.popupRef.popupElement || node === this.buttonElement)) {
|
|
141
|
-
this.
|
|
149
|
+
this.ngZone.run(() => {
|
|
150
|
+
this.closePopup();
|
|
151
|
+
});
|
|
142
152
|
}
|
|
143
153
|
});
|
|
144
154
|
});
|
|
@@ -172,6 +182,7 @@ export class FilterCommandToolbarDirective {
|
|
|
172
182
|
closePopup() {
|
|
173
183
|
this.buttonElement?.setAttribute('aria-expanded', 'false');
|
|
174
184
|
this.buttonElement?.removeAttribute('aria-controls');
|
|
185
|
+
this.host.selected = false;
|
|
175
186
|
if (this.popupRef) {
|
|
176
187
|
this.popupRef.close();
|
|
177
188
|
this.popupRef = null;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Component, ElementRef, EventEmitter, Output, QueryList, ViewChildren } from '@angular/core';
|
|
5
|
+
import { Component, ElementRef, EventEmitter, NgZone, Output, QueryList, ViewChildren } from '@angular/core';
|
|
6
6
|
import { ContextService } from '../../../common/provider.service';
|
|
7
7
|
import { NgFor } from '@angular/common';
|
|
8
8
|
import { KENDO_BUTTON } from '@progress/kendo-angular-buttons';
|
|
@@ -13,6 +13,8 @@ import { ColumnMenuItemContentTemplateDirective } from '../../../column-menu/col
|
|
|
13
13
|
import { ColumnInfoService } from '../../../common/column-info.service';
|
|
14
14
|
import { cloneFilters } from '../../../common/filter-descriptor-differ';
|
|
15
15
|
import { AdaptiveGridService } from '../../../common/adaptiveness.service';
|
|
16
|
+
import { filterIcon } from '@progress/kendo-svg-icons';
|
|
17
|
+
import { take } from 'rxjs/operators';
|
|
16
18
|
import * as i0 from "@angular/core";
|
|
17
19
|
import * as i1 from "../../../filtering/filter.service";
|
|
18
20
|
import * as i2 from "../../../common/provider.service";
|
|
@@ -26,6 +28,7 @@ export class FilterToolbarToolComponent {
|
|
|
26
28
|
filterService;
|
|
27
29
|
ctx;
|
|
28
30
|
columnInfoService;
|
|
31
|
+
ngZone;
|
|
29
32
|
adaptiveGridService;
|
|
30
33
|
filterItems;
|
|
31
34
|
menuItems;
|
|
@@ -41,12 +44,45 @@ export class FilterToolbarToolComponent {
|
|
|
41
44
|
columnMenuService;
|
|
42
45
|
columns;
|
|
43
46
|
filter;
|
|
47
|
+
activeFilterSVGIcon = filterIcon;
|
|
48
|
+
activeFilterIcon = 'k-i-filter';
|
|
49
|
+
isFilterApplied(column) {
|
|
50
|
+
if (!this.filter?.filters) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
if (Array.isArray(this.filter.filters)) {
|
|
54
|
+
for (const filterGroup of this.filter.filters) {
|
|
55
|
+
if (filterGroup.filters && Array.isArray(filterGroup.filters)) {
|
|
56
|
+
for (const filter of filterGroup.filters) {
|
|
57
|
+
if (filter.field === column.field) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else if (filterGroup.field === column.field) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
isItemFocused(filterItem) {
|
|
70
|
+
return this.currentFocusedItem === filterItem;
|
|
71
|
+
}
|
|
72
|
+
onItemFocus(item) {
|
|
73
|
+
this.currentFocusedItem = item;
|
|
74
|
+
}
|
|
75
|
+
onItemFocusOut() {
|
|
76
|
+
this.currentFocusedItem = null;
|
|
77
|
+
}
|
|
78
|
+
currentFocusedItem = null;
|
|
44
79
|
subscriptions;
|
|
45
|
-
constructor(element, filterService, ctx, columnInfoService, adaptiveGridService) {
|
|
80
|
+
constructor(element, filterService, ctx, columnInfoService, ngZone, adaptiveGridService) {
|
|
46
81
|
this.element = element;
|
|
47
82
|
this.filterService = filterService;
|
|
48
83
|
this.ctx = ctx;
|
|
49
84
|
this.columnInfoService = columnInfoService;
|
|
85
|
+
this.ngZone = ngZone;
|
|
50
86
|
this.adaptiveGridService = adaptiveGridService;
|
|
51
87
|
}
|
|
52
88
|
ngOnInit() {
|
|
@@ -57,7 +93,9 @@ export class FilterToolbarToolComponent {
|
|
|
57
93
|
});
|
|
58
94
|
}
|
|
59
95
|
ngAfterViewInit() {
|
|
60
|
-
this.
|
|
96
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
97
|
+
this.filterItems?.get(0)?.nativeElement.focus();
|
|
98
|
+
});
|
|
61
99
|
}
|
|
62
100
|
ngOnDestroy() {
|
|
63
101
|
if (this.subscriptions) {
|
|
@@ -101,7 +139,7 @@ export class FilterToolbarToolComponent {
|
|
|
101
139
|
menuItem.contentState = 'expanded';
|
|
102
140
|
}
|
|
103
141
|
}
|
|
104
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterToolbarToolComponent, deps: [{ token: i0.ElementRef }, { token: i1.FilterService }, { token: i2.ContextService }, { token: i3.ColumnInfoService }, { token: i4.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
|
|
142
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterToolbarToolComponent, deps: [{ token: i0.ElementRef }, { token: i1.FilterService }, { token: i2.ContextService }, { token: i3.ColumnInfoService }, { token: i0.NgZone }, { token: i4.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
|
|
105
143
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterToolbarToolComponent, isStandalone: true, selector: "kendo-filter-toolbar-tool", outputs: { close: "close" }, viewQueries: [{ propertyName: "filterItems", predicate: ["filterItem"], descendants: true, read: ElementRef }, { propertyName: "menuItems", predicate: ["filterItem"], descendants: true }, { propertyName: "filterContainers", predicate: ["filterContainer"], descendants: true }], ngImport: i0, template: `
|
|
106
144
|
<div [style]="hostStyles">
|
|
107
145
|
<kendo-grid-columnmenu-item *ngFor="let column of columns; let i = index"
|
|
@@ -110,9 +148,14 @@ export class FilterToolbarToolComponent {
|
|
|
110
148
|
tabindex="0"
|
|
111
149
|
[column]="getColumnComponent(column)"
|
|
112
150
|
[text]="column.title || getColumnComponent(column).field"
|
|
151
|
+
(focus)="onItemFocus(filterItem)"
|
|
152
|
+
(focusout)="onItemFocusOut()"
|
|
113
153
|
(keydown.enter)="toggleItem($event, i)"
|
|
154
|
+
[indicatorSVGIcon]="isFilterApplied(column) ? activeFilterSVGIcon : null"
|
|
155
|
+
[indicatorIcon]="isFilterApplied(column) ? activeFilterIcon : null"
|
|
114
156
|
(itemClick)="navigateView(getColumnComponent(column))"
|
|
115
|
-
[expanded]="false"
|
|
157
|
+
[expanded]="false"
|
|
158
|
+
[focused]="isItemFocused(filterItem)">
|
|
116
159
|
<ng-template kendoGridColumnMenuItemContentTemplate>
|
|
117
160
|
<kendo-grid-filter-menu-container
|
|
118
161
|
#filterContainer
|
|
@@ -125,7 +168,7 @@ export class FilterToolbarToolComponent {
|
|
|
125
168
|
</ng-template>
|
|
126
169
|
</kendo-grid-columnmenu-item>
|
|
127
170
|
</div>
|
|
128
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
|
|
171
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "component", type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "indicatorIcon", "indicatorSVGIcon", "text", "selected", "disabled", "expanded", "focused", "service", "column"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
|
|
129
172
|
}
|
|
130
173
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterToolbarToolComponent, decorators: [{
|
|
131
174
|
type: Component,
|
|
@@ -139,9 +182,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
139
182
|
tabindex="0"
|
|
140
183
|
[column]="getColumnComponent(column)"
|
|
141
184
|
[text]="column.title || getColumnComponent(column).field"
|
|
185
|
+
(focus)="onItemFocus(filterItem)"
|
|
186
|
+
(focusout)="onItemFocusOut()"
|
|
142
187
|
(keydown.enter)="toggleItem($event, i)"
|
|
188
|
+
[indicatorSVGIcon]="isFilterApplied(column) ? activeFilterSVGIcon : null"
|
|
189
|
+
[indicatorIcon]="isFilterApplied(column) ? activeFilterIcon : null"
|
|
143
190
|
(itemClick)="navigateView(getColumnComponent(column))"
|
|
144
|
-
[expanded]="false"
|
|
191
|
+
[expanded]="false"
|
|
192
|
+
[focused]="isItemFocused(filterItem)">
|
|
145
193
|
<ng-template kendoGridColumnMenuItemContentTemplate>
|
|
146
194
|
<kendo-grid-filter-menu-container
|
|
147
195
|
#filterContainer
|
|
@@ -158,7 +206,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
158
206
|
standalone: true,
|
|
159
207
|
imports: [NgFor, KENDO_BUTTON, FilterMenuContainerComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective]
|
|
160
208
|
}]
|
|
161
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FilterService }, { type: i2.ContextService }, { type: i3.ColumnInfoService }, { type: i4.AdaptiveGridService }]; }, propDecorators: { filterItems: [{
|
|
209
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FilterService }, { type: i2.ContextService }, { type: i3.ColumnInfoService }, { type: i0.NgZone }, { type: i4.AdaptiveGridService }]; }, propDecorators: { filterItems: [{
|
|
162
210
|
type: ViewChildren,
|
|
163
211
|
args: ['filterItem', { read: ElementRef }]
|
|
164
212
|
}], menuItems: [{
|
|
@@ -53,6 +53,12 @@ export class SortCommandToolbarDirective {
|
|
|
53
53
|
toolSubs = new Subscription();
|
|
54
54
|
popupSubs;
|
|
55
55
|
removeClickListener;
|
|
56
|
+
/**
|
|
57
|
+
* @hidden
|
|
58
|
+
*/
|
|
59
|
+
isSortingApplied(sort) {
|
|
60
|
+
return isPresent(sort) && sort.length > 0 && sort.filter(item => item.dir !== undefined).length > 0;
|
|
61
|
+
}
|
|
56
62
|
constructor(host, popupService, ctx, sortService, columnInfoService, ngZone, renderer, adaptiveGridService) {
|
|
57
63
|
this.host = host;
|
|
58
64
|
this.popupService = popupService;
|
|
@@ -66,9 +72,9 @@ export class SortCommandToolbarDirective {
|
|
|
66
72
|
ngOnInit() {
|
|
67
73
|
this.toolSubs = this.host.click.subscribe(e => this.onClick(e));
|
|
68
74
|
this.toolSubs.add(this.sortService.changes.subscribe(sort => {
|
|
69
|
-
|
|
70
|
-
this.host.showBadge = isSortingApplied;
|
|
75
|
+
this.host.showBadge = this.isSortingApplied(sort);
|
|
71
76
|
}));
|
|
77
|
+
this.host.showBadge = this.isSortingApplied(this.ctx.grid.sort);
|
|
72
78
|
const hasToolbarIcon = isPresent(this.host.toolbarOptions.icon) && this.host.toolbarOptions.icon !== '';
|
|
73
79
|
const hasOverflowIcon = isPresent(this.host.overflowOptions.icon) && this.host.overflowOptions.icon !== '';
|
|
74
80
|
const hasIcon = hasToolbarIcon && hasOverflowIcon;
|
|
@@ -88,7 +94,7 @@ export class SortCommandToolbarDirective {
|
|
|
88
94
|
}
|
|
89
95
|
this.buttonElement?.setAttribute('aria-haspopup', 'dialog');
|
|
90
96
|
this.buttonElement?.setAttribute('aria-expanded', 'false');
|
|
91
|
-
this.buttonElement?.setAttribute('title', this.ctx.localization.get('
|
|
97
|
+
this.buttonElement?.setAttribute('title', this.ctx.localization.get('sortToolbarToolText'));
|
|
92
98
|
}
|
|
93
99
|
ngOnDestroy() {
|
|
94
100
|
if (this.toolSubs) {
|
|
@@ -134,13 +140,16 @@ export class SortCommandToolbarDirective {
|
|
|
134
140
|
});
|
|
135
141
|
this.adaptiveGridService.popupRef = this.popupRef;
|
|
136
142
|
this.setPopupAttributes();
|
|
143
|
+
this.host.selected = true;
|
|
137
144
|
this.ngZone.runOutsideAngular(() => {
|
|
138
145
|
if (!isDocumentAvailable()) {
|
|
139
146
|
return;
|
|
140
147
|
}
|
|
141
148
|
this.removeClickListener = this.renderer.listen('document', 'click', (e) => {
|
|
142
149
|
if (this.popupRef && !closest(e.target, node => node === this.popupRef.popupElement || node === this.buttonElement)) {
|
|
143
|
-
this.
|
|
150
|
+
this.ngZone.run(() => {
|
|
151
|
+
this.closePopup();
|
|
152
|
+
});
|
|
144
153
|
}
|
|
145
154
|
});
|
|
146
155
|
});
|
|
@@ -176,6 +185,7 @@ export class SortCommandToolbarDirective {
|
|
|
176
185
|
closePopup() {
|
|
177
186
|
this.buttonElement?.setAttribute('aria-expanded', 'false');
|
|
178
187
|
this.buttonElement?.removeAttribute('aria-controls');
|
|
188
|
+
this.host.selected = false;
|
|
179
189
|
if (this.popupRef) {
|
|
180
190
|
this.popupRef.close();
|
|
181
191
|
this.popupRef = null;
|