@progress/kendo-angular-treelist 18.2.1-develop.3 → 18.3.0-develop.2
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-chooser-item-checked.directive.d.ts +21 -0
- package/column-menu/column-chooser.component.d.ts +14 -3
- package/column-menu/column-list-kb-nav.service.d.ts +22 -0
- package/column-menu/column-list.component.d.ts +20 -5
- package/column-menu/column-menu-autosize-all.component.d.ts +39 -0
- package/column-menu/column-menu-autosize.component.d.ts +43 -0
- package/column-menu/column-menu-chooser.component.d.ts +16 -4
- package/column-menu/column-menu-container.component.d.ts +21 -0
- package/column-menu/column-menu-expandable-item.interface.d.ts +14 -0
- package/column-menu/column-menu-filter.component.d.ts +16 -3
- package/column-menu/column-menu-item.component.d.ts +11 -3
- package/column-menu/column-menu-item.directive.d.ts +45 -0
- package/column-menu/column-menu-settings.interface.d.ts +11 -2
- package/column-menu/column-menu.component.d.ts +40 -15
- package/column-menu/column-menu.service.d.ts +14 -0
- package/column-menu/utils.d.ts +13 -0
- package/columns/sort-settings.d.ts +12 -0
- package/common/error-messages.d.ts +8 -0
- package/common/id.service.d.ts +3 -0
- package/common/provider.service.d.ts +3 -1
- package/esm2022/column-menu/column-chooser-item-checked.directive.mjs +45 -0
- package/esm2022/column-menu/column-chooser.component.mjs +69 -14
- package/esm2022/column-menu/column-list-kb-nav.service.mjs +40 -0
- package/esm2022/column-menu/column-list.component.mjs +172 -50
- package/esm2022/column-menu/column-menu-autosize-all.component.mjs +79 -0
- package/esm2022/column-menu/column-menu-autosize.component.mjs +87 -0
- package/esm2022/column-menu/column-menu-chooser.component.mjs +44 -12
- package/esm2022/column-menu/column-menu-container.component.mjs +58 -0
- package/esm2022/column-menu/column-menu-expandable-item.interface.mjs +5 -0
- package/esm2022/column-menu/column-menu-filter.component.mjs +58 -25
- package/esm2022/column-menu/column-menu-item-base.mjs +2 -1
- package/esm2022/column-menu/column-menu-item.component.mjs +34 -5
- package/esm2022/column-menu/column-menu-item.directive.mjs +125 -0
- package/esm2022/column-menu/column-menu-lock.component.mjs +1 -1
- package/esm2022/column-menu/column-menu-sort.component.mjs +1 -1
- package/esm2022/column-menu/column-menu.component.mjs +264 -67
- package/esm2022/column-menu/column-menu.service.mjs +18 -2
- package/esm2022/column-menu/utils.mjs +21 -1
- package/esm2022/common/error-messages.mjs +15 -0
- package/esm2022/common/id.service.mjs +9 -0
- package/esm2022/common/provider.service.mjs +7 -3
- package/esm2022/filtering/cell/boolean-filter-cell.component.mjs +5 -2
- package/esm2022/filtering/cell/date-filter-cell.component.mjs +20 -3
- package/esm2022/filtering/cell/numeric-filter-cell.component.mjs +17 -3
- package/esm2022/filtering/filter-row.component.mjs +1 -1
- package/esm2022/filtering/filter.service.mjs +17 -3
- package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +40 -14
- package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +47 -17
- package/esm2022/filtering/menu/date-filter-menu.component.mjs +27 -7
- package/esm2022/filtering/menu/filter-menu-container.component.mjs +83 -31
- package/esm2022/filtering/menu/filter-menu-dropdownlist.directive.mjs +44 -0
- package/esm2022/filtering/menu/filter-menu-host.directive.mjs +6 -1
- package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +52 -9
- package/esm2022/filtering/menu/filter-menu.component.mjs +111 -16
- package/esm2022/filtering/menu/menu-tabbing.service.mjs +22 -0
- package/esm2022/filtering/menu/numeric-filter-menu-input.component.mjs +49 -35
- package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +37 -7
- package/esm2022/filtering/menu/string-filter-menu-input.component.mjs +13 -4
- package/esm2022/filtering/menu/string-filter-menu.component.mjs +27 -8
- package/esm2022/filtering/operators/after-eq-filter-operator.component.mjs +2 -2
- package/esm2022/filtering/operators/after-filter-operator.component.mjs +2 -2
- package/esm2022/filtering/operators/before-eq-filter-operator.component.mjs +2 -2
- package/esm2022/filtering/operators/before-filter-operator.component.mjs +2 -2
- package/esm2022/filtering/operators/contains-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/ends-with-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/eq-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/filter-operator.base.mjs +18 -18
- package/esm2022/filtering/operators/gt-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/gte-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/is-empty-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/is-not-empty-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/is-not-null-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/isnull-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/lt-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/lte-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/neq-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/not-contains-filter-operator.component.mjs +1 -1
- package/esm2022/filtering/operators/starts-with-filter-operator.component.mjs +1 -1
- package/esm2022/localization/messages.mjs +97 -3
- package/esm2022/navigation/logical-cell.directive.mjs +4 -1
- package/esm2022/navigation/navigation.service.mjs +4 -4
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/header/header.component.mjs +336 -178
- package/esm2022/rendering/table-body.component.mjs +1 -1
- package/esm2022/selection/selection.service.mjs +2 -2
- package/esm2022/treelist.component.mjs +73 -9
- package/fesm2022/progress-kendo-angular-treelist.mjs +2231 -628
- package/filtering/cell/date-filter-cell.component.d.ts +4 -0
- package/filtering/cell/numeric-filter-cell.component.d.ts +4 -0
- package/filtering/filter.service.d.ts +10 -1
- package/filtering/menu/boolean-filter-menu.component.d.ts +19 -7
- package/filtering/menu/date-filter-menu-input.component.d.ts +10 -3
- package/filtering/menu/date-filter-menu.component.d.ts +7 -1
- package/filtering/menu/filter-menu-container.component.d.ts +23 -6
- package/filtering/menu/filter-menu-dropdownlist.directive.d.ts +19 -0
- package/filtering/menu/filter-menu-host.directive.d.ts +3 -1
- package/filtering/menu/filter-menu-input-wrapper.component.d.ts +12 -2
- package/filtering/menu/filter-menu.component.d.ts +30 -7
- package/filtering/menu/menu-tabbing.service.d.ts +18 -0
- package/filtering/menu/numeric-filter-menu-input.component.d.ts +12 -26
- package/filtering/menu/numeric-filter-menu.component.d.ts +13 -1
- package/filtering/menu/string-filter-menu-input.component.d.ts +4 -1
- package/filtering/menu/string-filter-menu.component.d.ts +7 -1
- package/index.d.ts +1 -0
- package/localization/messages.d.ts +79 -3
- package/navigation/logical-cell.directive.d.ts +2 -1
- package/package.json +18 -18
- package/rendering/header/header.component.d.ts +43 -10
- package/schematics/ngAdd/index.js +3 -3
@@ -4,12 +4,13 @@
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
import { Component, Input } from '@angular/core';
|
6
6
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
7
|
-
import { DatePickerComponent } from '@progress/kendo-angular-dateinputs';
|
7
|
+
import { DatePickerComponent, DatePickerCustomMessagesComponent } from '@progress/kendo-angular-dateinputs';
|
8
8
|
import { FilterService } from '../filter.service';
|
9
9
|
import { DateFilterComponent } from '../date-filter.component';
|
10
10
|
import { replaceMessagePlaceholder } from '../../utils';
|
11
11
|
import { FilterInputDirective } from '../filter-input.directive';
|
12
12
|
import { FilterCellWrapperComponent } from './filter-cell-wrapper.component';
|
13
|
+
import { FocusableDirective } from '../../navigation/focusable.directive';
|
13
14
|
import * as i0 from "@angular/core";
|
14
15
|
import * as i1 from "../filter.service";
|
15
16
|
import * as i2 from "@progress/kendo-angular-l10n";
|
@@ -41,6 +42,12 @@ export class DateFilterCellComponent extends DateFilterComponent {
|
|
41
42
|
super(filterService, localization);
|
42
43
|
this.localization = localization;
|
43
44
|
}
|
45
|
+
/**
|
46
|
+
* @hidden
|
47
|
+
*/
|
48
|
+
messageFor(key) {
|
49
|
+
return this.localization.get(key);
|
50
|
+
}
|
44
51
|
/**
|
45
52
|
* @hidden
|
46
53
|
*/
|
@@ -60,6 +67,7 @@ export class DateFilterCellComponent extends DateFilterComponent {
|
|
60
67
|
>
|
61
68
|
<kendo-datepicker
|
62
69
|
kendoFilterInput
|
70
|
+
kendoTreeListFocusable
|
63
71
|
[value]="currentFilter?.value"
|
64
72
|
[format]="format"
|
65
73
|
[columnLabel]="columnLabel"
|
@@ -72,9 +80,13 @@ export class DateFilterCellComponent extends DateFilterComponent {
|
|
72
80
|
[max]="max"
|
73
81
|
[weekNumber]="weekNumber"
|
74
82
|
>
|
83
|
+
<kendo-datepicker-messages
|
84
|
+
[toggle]="messageFor('filterDateToggle')"
|
85
|
+
[today]="messageFor('filterDateToday')"
|
86
|
+
></kendo-datepicker-messages>
|
75
87
|
</kendo-datepicker>
|
76
88
|
</kendo-treelist-filter-wrapper-cell>
|
77
|
-
`, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
|
89
|
+
`, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }] });
|
78
90
|
}
|
79
91
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterCellComponent, decorators: [{
|
80
92
|
type: Component,
|
@@ -90,6 +102,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
90
102
|
>
|
91
103
|
<kendo-datepicker
|
92
104
|
kendoFilterInput
|
105
|
+
kendoTreeListFocusable
|
93
106
|
[value]="currentFilter?.value"
|
94
107
|
[format]="format"
|
95
108
|
[columnLabel]="columnLabel"
|
@@ -102,11 +115,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
102
115
|
[max]="max"
|
103
116
|
[weekNumber]="weekNumber"
|
104
117
|
>
|
118
|
+
<kendo-datepicker-messages
|
119
|
+
[toggle]="messageFor('filterDateToggle')"
|
120
|
+
[today]="messageFor('filterDateToday')"
|
121
|
+
></kendo-datepicker-messages>
|
105
122
|
</kendo-datepicker>
|
106
123
|
</kendo-treelist-filter-wrapper-cell>
|
107
124
|
`,
|
108
125
|
standalone: true,
|
109
|
-
imports: [FilterCellWrapperComponent, DatePickerComponent, FilterInputDirective]
|
126
|
+
imports: [FilterCellWrapperComponent, DatePickerComponent, FilterInputDirective, FocusableDirective, DatePickerCustomMessagesComponent]
|
110
127
|
}]
|
111
128
|
}], ctorParameters: function () { return [{ type: i1.FilterService }, { type: i2.LocalizationService }]; }, propDecorators: { showOperators: [{
|
112
129
|
type: Input
|
@@ -4,7 +4,7 @@
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
import { Component, Input } from '@angular/core';
|
6
6
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
7
|
-
import { NumericTextBoxComponent } from '@progress/kendo-angular-inputs';
|
7
|
+
import { NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent } from '@progress/kendo-angular-inputs';
|
8
8
|
import { FilterService } from '../filter.service';
|
9
9
|
import { NumericFilterComponent } from '../numeric-filter.component';
|
10
10
|
import { replaceMessagePlaceholder } from '../../utils';
|
@@ -53,6 +53,12 @@ export class NumericFilterCellComponent extends NumericFilterComponent {
|
|
53
53
|
super(filterService, localization);
|
54
54
|
this.localization = localization;
|
55
55
|
}
|
56
|
+
/**
|
57
|
+
* @hidden
|
58
|
+
*/
|
59
|
+
messageFor(key) {
|
60
|
+
return this.localization.get(key);
|
61
|
+
}
|
56
62
|
/**
|
57
63
|
* @hidden
|
58
64
|
*/
|
@@ -83,9 +89,13 @@ export class NumericFilterCellComponent extends NumericFilterComponent {
|
|
83
89
|
[max]="max"
|
84
90
|
[step]="step"
|
85
91
|
[placeholder]="placeholder">
|
92
|
+
<kendo-numerictextbox-messages
|
93
|
+
[increment]="messageFor('filterNumericIncrement')"
|
94
|
+
[decrement]="messageFor('filterNumericDecrement')"
|
95
|
+
></kendo-numerictextbox-messages>
|
86
96
|
</kendo-numerictextbox>
|
87
97
|
</kendo-treelist-filter-wrapper-cell>
|
88
|
-
`, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
|
98
|
+
`, isInline: true, dependencies: [{ kind: "component", type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { kind: "component", type: NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }, { kind: "component", type: NumericTextBoxCustomMessagesComponent, selector: "kendo-numerictextbox-messages" }] });
|
89
99
|
}
|
90
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumericFilterCellComponent, decorators: [{
|
91
101
|
type: Component,
|
@@ -112,11 +122,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
112
122
|
[max]="max"
|
113
123
|
[step]="step"
|
114
124
|
[placeholder]="placeholder">
|
125
|
+
<kendo-numerictextbox-messages
|
126
|
+
[increment]="messageFor('filterNumericIncrement')"
|
127
|
+
[decrement]="messageFor('filterNumericDecrement')"
|
128
|
+
></kendo-numerictextbox-messages>
|
115
129
|
</kendo-numerictextbox>
|
116
130
|
</kendo-treelist-filter-wrapper-cell>
|
117
131
|
`,
|
118
132
|
standalone: true,
|
119
|
-
imports: [FilterCellWrapperComponent, NumericTextBoxComponent, FocusableDirective, FilterInputDirective]
|
133
|
+
imports: [FilterCellWrapperComponent, NumericTextBoxComponent, FocusableDirective, FilterInputDirective, NumericTextBoxCustomMessagesComponent]
|
120
134
|
}]
|
121
135
|
}], ctorParameters: function () { return [{ type: i1.FilterService }, { type: i2.LocalizationService }]; }, propDecorators: { filterDelay: [{
|
122
136
|
type: Input
|
@@ -39,7 +39,7 @@ export class FilterRowComponent {
|
|
39
39
|
[column]="getColumnComponent(column)"
|
40
40
|
[colIndex]="columnIndex"
|
41
41
|
></td>
|
42
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FilterCellComponent, selector: "[kendoTreeListFilterCell]", inputs: ["column", "filter"] }, { kind: "directive", type: LogicalCellDirective, selector: "[kendoTreeListLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "column", "colIndex", "colSpan", "rowSpan", "dataRowIndex", "dataItem", "expandable"] }] });
|
42
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FilterCellComponent, selector: "[kendoTreeListFilterCell]", inputs: ["column", "filter"] }, { kind: "directive", type: LogicalCellDirective, selector: "[kendoTreeListLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "column", "colIndex", "colSpan", "rowSpan", "dataRowIndex", "dataItem", "expandable", "headerLabelText"] }] });
|
43
43
|
}
|
44
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterRowComponent, decorators: [{
|
45
45
|
type: Component,
|
@@ -2,14 +2,20 @@
|
|
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 { Injectable } from '@angular/core';
|
5
|
+
import { Injectable, Optional } from '@angular/core';
|
6
6
|
import { Subject } from 'rxjs';
|
7
|
+
import { MenuTabbingService } from './menu/menu-tabbing.service';
|
7
8
|
import * as i0 from "@angular/core";
|
9
|
+
import * as i1 from "./menu/menu-tabbing.service";
|
8
10
|
/**
|
9
11
|
* Represents a service to set the filter descriptor
|
10
12
|
* ([see example]({% slug filter_menu_treelist %})).
|
11
13
|
*/
|
12
14
|
export class FilterService {
|
15
|
+
/**
|
16
|
+
* @hidden
|
17
|
+
*/
|
18
|
+
menuTabbingService;
|
13
19
|
/**
|
14
20
|
* Fires when the filter descriptors is set.
|
15
21
|
*/
|
@@ -22,9 +28,17 @@ export class FilterService {
|
|
22
28
|
filter(value) {
|
23
29
|
this.changes.next(value);
|
24
30
|
}
|
25
|
-
|
31
|
+
/**
|
32
|
+
* @hidden
|
33
|
+
*/
|
34
|
+
constructor(menuTabbingService) {
|
35
|
+
this.menuTabbingService = menuTabbingService;
|
36
|
+
}
|
37
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterService, deps: [{ token: i1.MenuTabbingService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
26
38
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterService });
|
27
39
|
}
|
28
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterService, decorators: [{
|
29
41
|
type: Injectable
|
30
|
-
}]
|
42
|
+
}], ctorParameters: function () { return [{ type: i1.MenuTabbingService, decorators: [{
|
43
|
+
type: Optional
|
44
|
+
}] }]; } });
|
@@ -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, Input, HostBinding, ViewChild, ElementRef,
|
5
|
+
import { Component, Input, HostBinding, ViewChild, ElementRef, ViewChildren, QueryList } from '@angular/core';
|
6
6
|
import { NgFor } from '@angular/common';
|
7
7
|
import { guid } from '@progress/kendo-angular-common';
|
8
8
|
import { RadioButtonComponent } from '@progress/kendo-angular-inputs';
|
@@ -10,11 +10,10 @@ import { FilterService } from '../filter.service';
|
|
10
10
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
11
11
|
import { BooleanFilterComponent } from '../boolean-filter.component';
|
12
12
|
import { replaceMessagePlaceholder } from '../../utils';
|
13
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
14
13
|
import { BooleanFilterRadioButtonDirective } from './filter-radio-button.directive';
|
14
|
+
import { MenuTabbingService } from './menu-tabbing.service';
|
15
15
|
import * as i0 from "@angular/core";
|
16
16
|
import * as i1 from "@progress/kendo-angular-l10n";
|
17
|
-
import * as i2 from "@angular/platform-browser";
|
18
17
|
/**
|
19
18
|
* Represents a Boolean-filter menu component. [See example](slug:filter_menu_treelist#toc-built-in-filter-menu-components).
|
20
19
|
*
|
@@ -32,8 +31,6 @@ import * as i2 from "@angular/platform-browser";
|
|
32
31
|
* ```
|
33
32
|
*/
|
34
33
|
export class BooleanFilterMenuComponent extends BooleanFilterComponent {
|
35
|
-
renderer;
|
36
|
-
domSanitizer;
|
37
34
|
/**
|
38
35
|
* @hidden
|
39
36
|
*/
|
@@ -50,11 +47,23 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
|
|
50
47
|
* The `FilterService` instance which is responsible for handling the changes in the filter descriptor.
|
51
48
|
*/
|
52
49
|
filterService;
|
50
|
+
/**
|
51
|
+
* @hidden
|
52
|
+
*/
|
53
|
+
menuTabbingService;
|
53
54
|
idPrefix = guid();
|
54
|
-
|
55
|
+
/**
|
56
|
+
* @hidden
|
57
|
+
*/
|
58
|
+
radioButtons;
|
59
|
+
constructor(localization) {
|
55
60
|
super(null, localization);
|
56
|
-
|
57
|
-
|
61
|
+
}
|
62
|
+
ngAfterViewInit() {
|
63
|
+
this.filterService.menuTabbingService.firstFocusable = this.radioButtons.first.radioButtonEl;
|
64
|
+
if (!this.menuTabbingService?.isTabbedInterface) {
|
65
|
+
this.radioButtons.first.radioButtonEl.focus();
|
66
|
+
}
|
58
67
|
}
|
59
68
|
/**
|
60
69
|
* @hidden
|
@@ -65,12 +74,13 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
|
|
65
74
|
/**
|
66
75
|
* @hidden
|
67
76
|
*/
|
68
|
-
onChange(value) {
|
77
|
+
onChange(value, input) {
|
69
78
|
this.applyFilter(this.updateFilter({
|
70
79
|
field: this.column.field,
|
71
80
|
operator: "eq",
|
72
81
|
value: value
|
73
82
|
}));
|
83
|
+
this.filterService.menuTabbingService.firstFocusable = input.hostElement.nativeElement;
|
74
84
|
}
|
75
85
|
/**
|
76
86
|
* @hidden
|
@@ -78,6 +88,15 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
|
|
78
88
|
isSelected(radioValue) {
|
79
89
|
return this.filtersByField(this.column.field).some(({ value }) => value === radioValue);
|
80
90
|
}
|
91
|
+
/**
|
92
|
+
* @hidden
|
93
|
+
*/
|
94
|
+
onShiftTab(e) {
|
95
|
+
if (!this.menuTabbingService?.isColumnMenu && this.filterService.menuTabbingService.lastFocusable) {
|
96
|
+
e.preventDefault();
|
97
|
+
this.filterService.menuTabbingService.lastFocusable.focus();
|
98
|
+
}
|
99
|
+
}
|
81
100
|
/**
|
82
101
|
* @hidden
|
83
102
|
*/
|
@@ -86,8 +105,8 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
|
|
86
105
|
const columnName = this.column.title || this.column.field;
|
87
106
|
return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
|
88
107
|
}
|
89
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BooleanFilterMenuComponent, deps: [{ token:
|
90
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BooleanFilterMenuComponent, isStandalone: true, selector: "kendo-treelist-boolean-filter-menu", inputs: { filter: "filter", filterService: "filterService" }, host: { properties: { "class.k-filtercell": "this.hostClasses" } }, viewQueries: [{ propertyName: "inputElem", first: true, predicate: ["inputElem"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
108
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BooleanFilterMenuComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
109
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BooleanFilterMenuComponent, isStandalone: true, selector: "kendo-treelist-boolean-filter-menu", inputs: { filter: "filter", filterService: "filterService", menuTabbingService: "menuTabbingService" }, host: { properties: { "class.k-filtercell": "this.hostClasses" } }, viewQueries: [{ propertyName: "inputElem", first: true, predicate: ["inputElem"], descendants: true }, { propertyName: "radioButtons", predicate: BooleanFilterRadioButtonDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
91
110
|
<ul class="k-radio-list k-reset">
|
92
111
|
<li *ngFor="let item of items">
|
93
112
|
<kendo-radiobutton
|
@@ -97,7 +116,8 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
|
|
97
116
|
[name]="idPrefix"
|
98
117
|
[checked]="isSelected(item.value)"
|
99
118
|
[attr.id]="radioId(item.value)"
|
100
|
-
(
|
119
|
+
(change)="onChange(item.value, inputElem)"
|
120
|
+
(keydown.shift.tab)="onShiftTab($event)"
|
101
121
|
></kendo-radiobutton>
|
102
122
|
<label class="k-radio-label" [attr.for]="radioId(item.value)">{{item.text}}</label>
|
103
123
|
</li>
|
@@ -118,7 +138,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
118
138
|
[name]="idPrefix"
|
119
139
|
[checked]="isSelected(item.value)"
|
120
140
|
[attr.id]="radioId(item.value)"
|
121
|
-
(
|
141
|
+
(change)="onChange(item.value, inputElem)"
|
142
|
+
(keydown.shift.tab)="onShiftTab($event)"
|
122
143
|
></kendo-radiobutton>
|
123
144
|
<label class="k-radio-label" [attr.for]="radioId(item.value)">{{item.text}}</label>
|
124
145
|
</li>
|
@@ -127,7 +148,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
127
148
|
standalone: true,
|
128
149
|
imports: [NgFor, RadioButtonComponent, BooleanFilterRadioButtonDirective]
|
129
150
|
}]
|
130
|
-
}], ctorParameters: function () { return [{ type:
|
151
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }]; }, propDecorators: { hostClasses: [{
|
131
152
|
type: HostBinding,
|
132
153
|
args: ['class.k-filtercell']
|
133
154
|
}], inputElem: [{
|
@@ -137,4 +158,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
137
158
|
type: Input
|
138
159
|
}], filterService: [{
|
139
160
|
type: Input
|
161
|
+
}], menuTabbingService: [{
|
162
|
+
type: Input
|
163
|
+
}], radioButtons: [{
|
164
|
+
type: ViewChildren,
|
165
|
+
args: [BooleanFilterRadioButtonDirective]
|
140
166
|
}] } });
|
@@ -4,25 +4,31 @@
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
import { Component, Input } from '@angular/core';
|
6
6
|
import { filter } from 'rxjs/operators';
|
7
|
-
import { DatePickerComponent } from '@progress/kendo-angular-dateinputs';
|
7
|
+
import { DatePickerComponent, DatePickerCustomMessagesComponent } from '@progress/kendo-angular-dateinputs';
|
8
8
|
import { ColumnComponent } from "../../columns/column.component";
|
9
9
|
import { FilterService } from '../filter.service';
|
10
10
|
import { SinglePopupService } from '../../common/single-popup.service';
|
11
11
|
import { FilterInputDirective } from '../filter-input.directive';
|
12
12
|
import { FilterMenuInputWrapperComponent } from './filter-menu-input-wrapper.component';
|
13
|
+
import { MenuTabbingService } from './menu-tabbing.service';
|
14
|
+
import { replaceMessagePlaceholder } from '../../utils';
|
15
|
+
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
13
16
|
import * as i0 from "@angular/core";
|
14
17
|
import * as i1 from "../../common/single-popup.service";
|
18
|
+
import * as i2 from "@progress/kendo-angular-l10n";
|
15
19
|
/**
|
16
20
|
* @hidden
|
17
21
|
*/
|
18
22
|
export class DateFilterMenuInputComponent {
|
19
23
|
popupService;
|
24
|
+
localization;
|
20
25
|
operators = [];
|
21
26
|
column;
|
22
27
|
filter;
|
23
28
|
operator;
|
24
29
|
currentFilter;
|
25
30
|
filterService;
|
31
|
+
menuTabbingService;
|
26
32
|
format;
|
27
33
|
formatPlaceholder;
|
28
34
|
placeholder;
|
@@ -32,22 +38,32 @@ export class DateFilterMenuInputComponent {
|
|
32
38
|
bottomView;
|
33
39
|
topView;
|
34
40
|
weekNumber;
|
41
|
+
isFirstDropDown;
|
35
42
|
subscription;
|
36
|
-
constructor(popupService) {
|
43
|
+
constructor(popupService, localization) {
|
37
44
|
this.popupService = popupService;
|
45
|
+
this.localization = localization;
|
46
|
+
}
|
47
|
+
ngOnDestroy() {
|
48
|
+
if (this.subscription) {
|
49
|
+
this.subscription.unsubscribe();
|
50
|
+
}
|
38
51
|
}
|
39
52
|
open(picker) {
|
40
53
|
this.subscription = this.popupService.onClose
|
41
54
|
.pipe(filter(() => picker.isActive))
|
42
55
|
.subscribe(e => e.preventDefault());
|
43
56
|
}
|
44
|
-
|
45
|
-
|
46
|
-
this.subscription.unsubscribe();
|
47
|
-
}
|
57
|
+
messageFor(key) {
|
58
|
+
return this.localization.get(key);
|
48
59
|
}
|
49
|
-
|
50
|
-
|
60
|
+
get columnLabel() {
|
61
|
+
const localizationMsg = this.localization.get('filterInputLabel') || '';
|
62
|
+
const columnName = this.column ? this.column.title || this.column.field : '';
|
63
|
+
return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
|
64
|
+
}
|
65
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterMenuInputComponent, deps: [{ token: i1.SinglePopupService }, { token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
66
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateFilterMenuInputComponent, isStandalone: true, selector: "kendo-treelist-date-filter-menu-input", inputs: { operators: "operators", column: "column", filter: "filter", operator: "operator", currentFilter: "currentFilter", filterService: "filterService", menuTabbingService: "menuTabbingService", format: "format", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", min: "min", max: "max", activeView: "activeView", bottomView: "bottomView", topView: "topView", weekNumber: "weekNumber", isFirstDropDown: "isFirstDropDown" }, ngImport: i0, template: `
|
51
67
|
<kendo-treelist-filter-menu-input-wrapper
|
52
68
|
[column]="column"
|
53
69
|
[filter]="filter"
|
@@ -55,10 +71,12 @@ export class DateFilterMenuInputComponent {
|
|
55
71
|
[defaultOperator]="operator"
|
56
72
|
[currentFilter]="currentFilter"
|
57
73
|
[filterService]="filterService"
|
58
|
-
|
74
|
+
[isFirstDropDown]="isFirstDropDown"
|
75
|
+
[menuTabbingService]="menuTabbingService">
|
59
76
|
<kendo-datepicker
|
60
77
|
#picker
|
61
78
|
kendoFilterInput
|
79
|
+
[columnLabel]="columnLabel"
|
62
80
|
[filterDelay]="0"
|
63
81
|
(open)="open(picker)"
|
64
82
|
[value]="currentFilter?.value"
|
@@ -70,11 +88,14 @@ export class DateFilterMenuInputComponent {
|
|
70
88
|
[activeView]="activeView"
|
71
89
|
[bottomView]="bottomView"
|
72
90
|
[topView]="topView"
|
73
|
-
[weekNumber]="weekNumber"
|
74
|
-
|
91
|
+
[weekNumber]="weekNumber">
|
92
|
+
<kendo-datepicker-messages
|
93
|
+
[toggle]="messageFor('filterDateToggle')"
|
94
|
+
[today]="messageFor('filterDateToday')"
|
95
|
+
></kendo-datepicker-messages>
|
75
96
|
</kendo-datepicker>
|
76
97
|
</kendo-treelist-filter-menu-input-wrapper>
|
77
|
-
`, isInline: true, dependencies: [{ kind: "component", type: FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
|
98
|
+
`, isInline: true, dependencies: [{ kind: "component", type: FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "isFirstDropDown", "menuTabbingService", "currentFilter"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "directive", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }] });
|
78
99
|
}
|
79
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterMenuInputComponent, decorators: [{
|
80
101
|
type: Component,
|
@@ -88,10 +109,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
88
109
|
[defaultOperator]="operator"
|
89
110
|
[currentFilter]="currentFilter"
|
90
111
|
[filterService]="filterService"
|
91
|
-
|
112
|
+
[isFirstDropDown]="isFirstDropDown"
|
113
|
+
[menuTabbingService]="menuTabbingService">
|
92
114
|
<kendo-datepicker
|
93
115
|
#picker
|
94
116
|
kendoFilterInput
|
117
|
+
[columnLabel]="columnLabel"
|
95
118
|
[filterDelay]="0"
|
96
119
|
(open)="open(picker)"
|
97
120
|
[value]="currentFilter?.value"
|
@@ -103,15 +126,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
103
126
|
[activeView]="activeView"
|
104
127
|
[bottomView]="bottomView"
|
105
128
|
[topView]="topView"
|
106
|
-
[weekNumber]="weekNumber"
|
107
|
-
|
129
|
+
[weekNumber]="weekNumber">
|
130
|
+
<kendo-datepicker-messages
|
131
|
+
[toggle]="messageFor('filterDateToggle')"
|
132
|
+
[today]="messageFor('filterDateToday')"
|
133
|
+
></kendo-datepicker-messages>
|
108
134
|
</kendo-datepicker>
|
109
135
|
</kendo-treelist-filter-menu-input-wrapper>
|
110
136
|
`,
|
111
137
|
standalone: true,
|
112
|
-
imports: [FilterMenuInputWrapperComponent, DatePickerComponent, FilterInputDirective]
|
138
|
+
imports: [FilterMenuInputWrapperComponent, DatePickerComponent, FilterInputDirective, DatePickerCustomMessagesComponent]
|
113
139
|
}]
|
114
|
-
}], ctorParameters: function () { return [{ type: i1.SinglePopupService }]; }, propDecorators: { operators: [{
|
140
|
+
}], ctorParameters: function () { return [{ type: i1.SinglePopupService }, { type: i2.LocalizationService }]; }, propDecorators: { operators: [{
|
115
141
|
type: Input
|
116
142
|
}], column: [{
|
117
143
|
type: Input
|
@@ -123,6 +149,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
123
149
|
type: Input
|
124
150
|
}], filterService: [{
|
125
151
|
type: Input
|
152
|
+
}], menuTabbingService: [{
|
153
|
+
type: Input
|
126
154
|
}], format: [{
|
127
155
|
type: Input
|
128
156
|
}], formatPlaceholder: [{
|
@@ -141,4 +169,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
141
169
|
type: Input
|
142
170
|
}], weekNumber: [{
|
143
171
|
type: Input
|
172
|
+
}], isFirstDropDown: [{
|
173
|
+
type: Input
|
144
174
|
}] } });
|
@@ -10,6 +10,9 @@ import { FilterService } from '../filter.service';
|
|
10
10
|
import { DateFilterComponent } from '../date-filter.component';
|
11
11
|
import { setFilter, logicOperators } from '../base-filter-cell.component';
|
12
12
|
import { DateFilterMenuInputComponent } from './date-filter-menu-input.component';
|
13
|
+
import { FilterMenuDropDownListDirective } from './filter-menu-dropdownlist.directive';
|
14
|
+
import { MenuTabbingService } from './menu-tabbing.service';
|
15
|
+
import { replaceMessagePlaceholder } from '../../utils';
|
13
16
|
import * as i0 from "@angular/core";
|
14
17
|
import * as i1 from "@progress/kendo-angular-l10n";
|
15
18
|
/**
|
@@ -50,6 +53,10 @@ export class DateFilterMenuComponent extends DateFilterComponent {
|
|
50
53
|
* The `FilterService` instance which is responsible for handling the changes in the filter descriptor.
|
51
54
|
*/
|
52
55
|
filterService;
|
56
|
+
/**
|
57
|
+
* @hidden
|
58
|
+
*/
|
59
|
+
menuTabbingService;
|
53
60
|
constructor(localization) {
|
54
61
|
super(null, localization);
|
55
62
|
}
|
@@ -62,12 +69,17 @@ export class DateFilterMenuComponent extends DateFilterComponent {
|
|
62
69
|
logicChange(value) {
|
63
70
|
this.filter.logic = value;
|
64
71
|
}
|
72
|
+
get filterMenuDropDownLabel() {
|
73
|
+
const localizationMsg = this.localization.get('filterMenuLogicDropDownLabel') || '';
|
74
|
+
const columnName = this.column ? this.column.title || this.column.field : '';
|
75
|
+
return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
|
76
|
+
}
|
65
77
|
localizationChange() {
|
66
78
|
this.logicOperators = logicOperators(this.localization);
|
67
79
|
super.localizationChange();
|
68
80
|
}
|
69
81
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterMenuComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
70
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateFilterMenuComponent, isStandalone: true, selector: "kendo-treelist-date-filter-menu", inputs: { filter: "filter", extra: "extra", filterService: "filterService" }, host: { properties: { "class.k-filtercell": "this.hostClasses" } }, usesInheritance: true, ngImport: i0, template: `
|
82
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DateFilterMenuComponent, isStandalone: true, selector: "kendo-treelist-date-filter-menu", inputs: { filter: "filter", extra: "extra", filterService: "filterService", menuTabbingService: "menuTabbingService" }, host: { properties: { "class.k-filtercell": "this.hostClasses" } }, usesInheritance: true, ngImport: i0, template: `
|
71
83
|
<kendo-treelist-date-filter-menu-input
|
72
84
|
[currentFilter]="firstFilter"
|
73
85
|
[operators]="operators"
|
@@ -83,10 +95,13 @@ export class DateFilterMenuComponent extends DateFilterComponent {
|
|
83
95
|
[min]="min"
|
84
96
|
[max]="max"
|
85
97
|
[weekNumber]="weekNumber"
|
86
|
-
|
98
|
+
[isFirstDropDown]="true"
|
99
|
+
[menuTabbingService]="menuTabbingService">
|
87
100
|
</kendo-treelist-date-filter-menu-input>
|
88
101
|
<kendo-dropdownlist
|
89
102
|
*ngIf="extra"
|
103
|
+
kendoFilterMenuDropDown
|
104
|
+
[filterMenuDropDownLabel]="filterMenuDropDownLabel"
|
90
105
|
class="k-filter-and"
|
91
106
|
[data]="logicOperators"
|
92
107
|
[valuePrimitive]="true"
|
@@ -111,9 +126,9 @@ export class DateFilterMenuComponent extends DateFilterComponent {
|
|
111
126
|
[min]="min"
|
112
127
|
[max]="max"
|
113
128
|
[weekNumber]="weekNumber"
|
114
|
-
>
|
129
|
+
[menuTabbingService]="menuTabbingService">
|
115
130
|
</kendo-treelist-date-filter-menu-input>
|
116
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DateFilterMenuInputComponent, selector: "kendo-treelist-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }] });
|
131
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DateFilterMenuInputComponent, selector: "kendo-treelist-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "menuTabbingService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber", "isFirstDropDown"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
117
132
|
}
|
118
133
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DateFilterMenuComponent, decorators: [{
|
119
134
|
type: Component,
|
@@ -135,10 +150,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
135
150
|
[min]="min"
|
136
151
|
[max]="max"
|
137
152
|
[weekNumber]="weekNumber"
|
138
|
-
|
153
|
+
[isFirstDropDown]="true"
|
154
|
+
[menuTabbingService]="menuTabbingService">
|
139
155
|
</kendo-treelist-date-filter-menu-input>
|
140
156
|
<kendo-dropdownlist
|
141
157
|
*ngIf="extra"
|
158
|
+
kendoFilterMenuDropDown
|
159
|
+
[filterMenuDropDownLabel]="filterMenuDropDownLabel"
|
142
160
|
class="k-filter-and"
|
143
161
|
[data]="logicOperators"
|
144
162
|
[valuePrimitive]="true"
|
@@ -163,11 +181,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
163
181
|
[min]="min"
|
164
182
|
[max]="max"
|
165
183
|
[weekNumber]="weekNumber"
|
166
|
-
>
|
184
|
+
[menuTabbingService]="menuTabbingService">
|
167
185
|
</kendo-treelist-date-filter-menu-input>
|
168
186
|
`,
|
169
187
|
standalone: true,
|
170
|
-
imports: [DateFilterMenuInputComponent, NgIf, DropDownListComponent]
|
188
|
+
imports: [DateFilterMenuInputComponent, NgIf, DropDownListComponent, FilterMenuDropDownListDirective]
|
171
189
|
}]
|
172
190
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }]; }, propDecorators: { hostClasses: [{
|
173
191
|
type: HostBinding,
|
@@ -178,4 +196,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
178
196
|
type: Input
|
179
197
|
}], filterService: [{
|
180
198
|
type: Input
|
199
|
+
}], menuTabbingService: [{
|
200
|
+
type: Input
|
181
201
|
}] } });
|