@progress/kendo-angular-treelist 13.0.0-develop.9 → 13.0.1-develop.1

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.
Files changed (34) hide show
  1. package/esm2020/filtering/cell/autocomplete-filter-cell.component.mjs +12 -1
  2. package/esm2020/filtering/cell/boolean-filter-cell.component.mjs +18 -1
  3. package/esm2020/filtering/cell/date-filter-cell.component.mjs +12 -1
  4. package/esm2020/filtering/cell/filter-cell-operators.component.mjs +21 -1
  5. package/esm2020/filtering/cell/filter-cell-wrapper.component.mjs +3 -1
  6. package/esm2020/filtering/cell/numeric-filter-cell.component.mjs +12 -1
  7. package/esm2020/filtering/cell/string-filter-cell.component.mjs +12 -1
  8. package/esm2020/filtering/filter-input.directive.mjs +29 -3
  9. package/esm2020/filtering/menu/boolean-filter-menu.component.mjs +22 -7
  10. package/esm2020/filtering/menu/date-filter-menu-input.component.mjs +1 -1
  11. package/esm2020/filtering/menu/numeric-filter-menu-input.component.mjs +1 -1
  12. package/esm2020/filtering/menu/string-filter-menu-input.component.mjs +19 -8
  13. package/esm2020/localization/messages.mjs +11 -1
  14. package/esm2020/package-metadata.mjs +2 -2
  15. package/esm2020/rendering/cell.component.mjs +5 -0
  16. package/esm2020/rendering/header/header.component.mjs +5 -0
  17. package/esm2020/rendering/list.component.mjs +20 -18
  18. package/esm2020/treelist.component.mjs +44 -10
  19. package/fesm2015/progress-kendo-angular-treelist.mjs +246 -67
  20. package/fesm2020/progress-kendo-angular-treelist.mjs +246 -67
  21. package/filtering/cell/autocomplete-filter-cell.component.d.ts +4 -0
  22. package/filtering/cell/boolean-filter-cell.component.d.ts +8 -0
  23. package/filtering/cell/date-filter-cell.component.d.ts +4 -0
  24. package/filtering/cell/filter-cell-operators.component.d.ts +14 -1
  25. package/filtering/cell/numeric-filter-cell.component.d.ts +4 -0
  26. package/filtering/cell/string-filter-cell.component.d.ts +4 -0
  27. package/filtering/filter-input.directive.d.ts +7 -1
  28. package/filtering/menu/boolean-filter-menu.component.d.ts +8 -1
  29. package/filtering/menu/string-filter-menu-input.component.d.ts +4 -0
  30. package/localization/messages.d.ts +37 -1
  31. package/package.json +16 -16
  32. package/rendering/cell.component.d.ts +1 -0
  33. package/rendering/header/header.component.d.ts +1 -0
  34. package/schematics/ngAdd/index.js +3 -3
@@ -8,6 +8,7 @@ import { ColumnComponent } from '../../columns/column.component';
8
8
  import { FilterService } from '../filter.service';
9
9
  import { BaseFilterCellComponent, localizeOperators } from '../base-filter-cell.component';
10
10
  import { LocalizationService } from '@progress/kendo-angular-l10n';
11
+ import { replaceMessagePlaceholder } from '../../utils';
11
12
  import * as i0 from "@angular/core";
12
13
  import * as i1 from "../filter.service";
13
14
  import * as i2 from "../../columns/column.component";
@@ -50,6 +51,14 @@ export class AutoCompleteFilterCellComponent extends BaseFilterCellComponent {
50
51
  get currentOperator() {
51
52
  return this.currentFilter ? this.currentFilter.operator : "contains";
52
53
  }
54
+ /**
55
+ * @hidden
56
+ */
57
+ get columnLabel() {
58
+ const localizationMsg = this.localization.get('filterInputLabel') || '';
59
+ const columnName = this.column.title || this.column.field;
60
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
61
+ }
53
62
  }
54
63
  AutoCompleteFilterCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteFilterCellComponent, deps: [{ token: i1.FilterService }, { token: i2.ColumnComponent }, { token: i3.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
55
64
  AutoCompleteFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AutoCompleteFilterCellComponent, selector: "kendo-treelist-autocomplete-filter-cell", inputs: { showOperators: "showOperators", column: "column", filter: "filter", data: "data", valueField: "valueField" }, usesInheritance: true, ngImport: i0, template: `
@@ -61,11 +70,12 @@ AutoCompleteFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
61
70
  <kendo-autocomplete
62
71
  kendoFilterInput
63
72
  [data]="data"
73
+ [columnLabel]="columnLabel"
64
74
  [valueField]="valueField"
65
75
  [value]="currentFilter?.value">
66
76
  </kendo-autocomplete>
67
77
  </kendo-treelist-filter-wrapper-cell>
68
- `, isInline: true, components: [{ type: i4.FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i5.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: i6.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }] });
78
+ `, isInline: true, components: [{ type: i4.FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i5.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: i6.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
69
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteFilterCellComponent, decorators: [{
70
80
  type: Component,
71
81
  args: [{
@@ -79,6 +89,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
79
89
  <kendo-autocomplete
80
90
  kendoFilterInput
81
91
  [data]="data"
92
+ [columnLabel]="columnLabel"
82
93
  [valueField]="valueField"
83
94
  [value]="currentFilter?.value">
84
95
  </kendo-autocomplete>
@@ -6,6 +6,7 @@ import { Component, ChangeDetectorRef } from '@angular/core';
6
6
  import { FilterService } from '../filter.service';
7
7
  import { LocalizationService } from '@progress/kendo-angular-l10n';
8
8
  import { BooleanFilterComponent } from '../boolean-filter.component';
9
+ import { replaceMessagePlaceholder } from '../../utils';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "../filter.service";
11
12
  import * as i2 from "@progress/kendo-angular-l10n";
@@ -37,6 +38,20 @@ export class BooleanFilterCellComponent extends BooleanFilterComponent {
37
38
  super.localizationChange();
38
39
  this.cd.markForCheck();
39
40
  }
41
+ /**
42
+ * @hidden
43
+ */
44
+ messageFor(token) {
45
+ return this.localization.get(token);
46
+ }
47
+ /**
48
+ * @hidden
49
+ */
50
+ get columnLabel() {
51
+ const localizationMsg = this.localization.get('booleanFilterCellLabel') || '';
52
+ const columnName = this.column.title || this.column.field;
53
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
54
+ }
40
55
  }
41
56
  BooleanFilterCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterCellComponent, deps: [{ token: i1.FilterService }, { token: i2.LocalizationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
42
57
  BooleanFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: BooleanFilterCellComponent, selector: "kendo-treelist-boolean-filter-cell", usesInheritance: true, ngImport: i0, template: `
@@ -48,6 +63,7 @@ BooleanFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
48
63
  <kendo-dropdownlist
49
64
  kendoFilterInput
50
65
  [defaultItem]="defaultItem"
66
+ [columnLabel]="columnLabel"
51
67
  [data]="items"
52
68
  textField="text"
53
69
  valueField="value"
@@ -56,7 +72,7 @@ BooleanFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
56
72
  [value]="currentFilter?.value">
57
73
  </kendo-dropdownlist>
58
74
  </kendo-treelist-filter-wrapper-cell>
59
- `, isInline: true, components: [{ type: i3.FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i5.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }] });
75
+ `, isInline: true, components: [{ type: i3.FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i5.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
60
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterCellComponent, decorators: [{
61
77
  type: Component,
62
78
  args: [{
@@ -70,6 +86,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
70
86
  <kendo-dropdownlist
71
87
  kendoFilterInput
72
88
  [defaultItem]="defaultItem"
89
+ [columnLabel]="columnLabel"
73
90
  [data]="items"
74
91
  textField="text"
75
92
  valueField="value"
@@ -6,6 +6,7 @@ import { Component, Input } from '@angular/core';
6
6
  import { FilterService } from '../filter.service';
7
7
  import { LocalizationService } from '@progress/kendo-angular-l10n';
8
8
  import { DateFilterComponent } from '../date-filter.component';
9
+ import { replaceMessagePlaceholder } from '../../utils';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "../filter.service";
11
12
  import * as i2 from "@progress/kendo-angular-l10n";
@@ -39,6 +40,14 @@ export class DateFilterCellComponent extends DateFilterComponent {
39
40
  */
40
41
  this.showOperators = true;
41
42
  }
43
+ /**
44
+ * @hidden
45
+ */
46
+ get columnLabel() {
47
+ const localizationMsg = this.localization.get('filterInputLabel') || '';
48
+ const columnName = this.column.title || this.column.field;
49
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
50
+ }
42
51
  }
43
52
  DateFilterCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterCellComponent, deps: [{ token: i1.FilterService }, { token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
44
53
  DateFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DateFilterCellComponent, selector: "kendo-treelist-date-filter-cell", inputs: { showOperators: "showOperators" }, usesInheritance: true, ngImport: i0, template: `
@@ -53,6 +62,7 @@ DateFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
53
62
  kendoFilterInput
54
63
  [value]="currentFilter?.value"
55
64
  [format]="format"
65
+ [columnLabel]="columnLabel"
56
66
  [formatPlaceholder]="formatPlaceholder"
57
67
  [placeholder]="placeholder"
58
68
  [activeView]="activeView"
@@ -64,7 +74,7 @@ DateFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
64
74
  >
65
75
  </kendo-datepicker>
66
76
  </kendo-treelist-filter-wrapper-cell>
67
- `, isInline: true, components: [{ type: i3.FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i4.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i5.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }] });
77
+ `, isInline: true, components: [{ type: i3.FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i4.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i5.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
68
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterCellComponent, decorators: [{
69
79
  type: Component,
70
80
  args: [{
@@ -81,6 +91,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
81
91
  kendoFilterInput
82
92
  [value]="currentFilter?.value"
83
93
  [format]="format"
94
+ [columnLabel]="columnLabel"
84
95
  [formatPlaceholder]="formatPlaceholder"
85
96
  [placeholder]="placeholder"
86
97
  [activeView]="activeView"
@@ -7,6 +7,8 @@ import { Keys } from '@progress/kendo-angular-common';
7
7
  import { DropDownListComponent } from '@progress/kendo-angular-dropdowns';
8
8
  import { LocalizationService } from '@progress/kendo-angular-l10n';
9
9
  import { filterClearIcon } from '@progress/kendo-svg-icons';
10
+ import { replaceMessagePlaceholder } from '../../utils';
11
+ import { ColumnComponent } from '../../columns/column.component';
10
12
  import * as i0 from "@angular/core";
11
13
  import * as i1 from "@progress/kendo-angular-l10n";
12
14
  import * as i2 from "@progress/kendo-angular-dropdowns";
@@ -103,9 +105,23 @@ export class FilterCellOperatorsComponent {
103
105
  this.subscription.unsubscribe();
104
106
  }
105
107
  }
108
+ /**
109
+ * @hidden
110
+ */
111
+ get columnLabel() {
112
+ const localizationMsg = this.localization.get('filterCellOperatorLabel') || '';
113
+ const columnName = this.column.title || this.column.field;
114
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
115
+ }
116
+ /**
117
+ * @hidden
118
+ */
119
+ messageFor(token) {
120
+ return this.localization.get(token);
121
+ }
106
122
  }
107
123
  FilterCellOperatorsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellOperatorsComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
108
- FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FilterCellOperatorsComponent, selector: "kendo-treelist-filter-cell-operators", inputs: { operators: "operators", showButton: "showButton", showOperators: "showOperators", value: "value" }, outputs: { valueChange: "valueChange", clear: "clear" }, host: { properties: { "class.k-filtercell-operator": "this.hostClasses" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: `
124
+ FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FilterCellOperatorsComponent, selector: "kendo-treelist-filter-cell-operators", inputs: { operators: "operators", showButton: "showButton", showOperators: "showOperators", value: "value", column: "column" }, outputs: { valueChange: "valueChange", clear: "clear" }, host: { properties: { "class.k-filtercell-operator": "this.hostClasses" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: `
109
125
  <kendo-dropdownlist
110
126
  #dropdown
111
127
  *ngIf="showOperators"
@@ -114,6 +130,7 @@ FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
114
130
  class="k-dropdown-operator"
115
131
  (valueChange)="onChange($event)"
116
132
  [value]="value"
133
+ [attr.aria-label]="columnLabel"
117
134
  iconClass="k-i-filter"
118
135
  [valuePrimitive]="true"
119
136
  textField="text"
@@ -145,6 +162,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
145
162
  class="k-dropdown-operator"
146
163
  (valueChange)="onChange($event)"
147
164
  [value]="value"
165
+ [attr.aria-label]="columnLabel"
148
166
  iconClass="k-i-filter"
149
167
  [valuePrimitive]="true"
150
168
  textField="text"
@@ -178,6 +196,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
178
196
  type: Input
179
197
  }], value: [{
180
198
  type: Input
199
+ }], column: [{
200
+ type: Input
181
201
  }], valueChange: [{
182
202
  type: Output
183
203
  }], clear: [{
@@ -39,11 +39,12 @@ FilterCellWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
39
39
  <kendo-treelist-filter-cell-operators
40
40
  [showOperators]="showOperators"
41
41
  [operators]="operators"
42
+ [column]="column"
42
43
  (clear)="onClear()"
43
44
  [showButton]="showButton"
44
45
  [(value)]="currentOperator">
45
46
  </kendo-treelist-filter-cell-operators>
46
- `, isInline: true, components: [{ type: i2.FilterCellOperatorsComponent, selector: "kendo-treelist-filter-cell-operators", inputs: ["operators", "showButton", "showOperators", "value"], outputs: ["valueChange", "clear"] }] });
47
+ `, isInline: true, components: [{ type: i2.FilterCellOperatorsComponent, selector: "kendo-treelist-filter-cell-operators", inputs: ["operators", "showButton", "showOperators", "value", "column"], outputs: ["valueChange", "clear"] }] });
47
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellWrapperComponent, decorators: [{
48
49
  type: Component,
49
50
  args: [{
@@ -53,6 +54,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
53
54
  <kendo-treelist-filter-cell-operators
54
55
  [showOperators]="showOperators"
55
56
  [operators]="operators"
57
+ [column]="column"
56
58
  (clear)="onClear()"
57
59
  [showButton]="showButton"
58
60
  [(value)]="currentOperator">
@@ -6,6 +6,7 @@ import { Component, Input } from '@angular/core';
6
6
  import { LocalizationService } from '@progress/kendo-angular-l10n';
7
7
  import { FilterService } from '../filter.service';
8
8
  import { NumericFilterComponent } from '../numeric-filter.component';
9
+ import { replaceMessagePlaceholder } from '../../utils';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "../filter.service";
11
12
  import * as i2 from "@progress/kendo-angular-l10n";
@@ -46,6 +47,14 @@ export class NumericFilterCellComponent extends NumericFilterComponent {
46
47
  */
47
48
  this.showOperators = true;
48
49
  }
50
+ /**
51
+ * @hidden
52
+ */
53
+ get columnLabel() {
54
+ const localizationMsg = this.localization.get('filterInputLabel') || '';
55
+ const columnName = this.column.title || this.column.field;
56
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
57
+ }
49
58
  }
50
59
  NumericFilterCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterCellComponent, deps: [{ token: i1.FilterService }, { token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
51
60
  NumericFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: NumericFilterCellComponent, selector: "kendo-treelist-numeric-filter-cell", inputs: { filterDelay: "filterDelay", showOperators: "showOperators" }, usesInheritance: true, ngImport: i0, template: `
@@ -58,6 +67,7 @@ NumericFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
58
67
  <kendo-numerictextbox
59
68
  kendoTreeListFocusable
60
69
  kendoFilterInput
70
+ [columnLabel]="columnLabel"
61
71
  [filterDelay]="filterDelay"
62
72
  [autoCorrect]="true"
63
73
  [value]="currentFilter?.value"
@@ -69,7 +79,7 @@ NumericFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
69
79
  [step]="step">
70
80
  </kendo-numerictextbox>
71
81
  </kendo-treelist-filter-wrapper-cell>
72
- `, isInline: true, components: [{ type: i3.FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i4.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"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }], directives: [{ type: i5.FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { type: i6.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }] });
82
+ `, isInline: true, components: [{ type: i3.FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i4.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"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }], directives: [{ type: i5.FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { type: i6.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
73
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterCellComponent, decorators: [{
74
84
  type: Component,
75
85
  args: [{
@@ -84,6 +94,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
84
94
  <kendo-numerictextbox
85
95
  kendoTreeListFocusable
86
96
  kendoFilterInput
97
+ [columnLabel]="columnLabel"
87
98
  [filterDelay]="filterDelay"
88
99
  [autoCorrect]="true"
89
100
  [value]="currentFilter?.value"
@@ -6,6 +6,7 @@ import { Component, Input } from '@angular/core';
6
6
  import { LocalizationService } from '@progress/kendo-angular-l10n';
7
7
  import { FilterService } from '../filter.service';
8
8
  import { StringFilterComponent } from '../string-filter.component';
9
+ import { replaceMessagePlaceholder } from '../../utils';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "../filter.service";
11
12
  import * as i2 from "@progress/kendo-angular-l10n";
@@ -48,6 +49,14 @@ export class StringFilterCellComponent extends StringFilterComponent {
48
49
  */
49
50
  this.showOperators = true;
50
51
  }
52
+ /**
53
+ * @hidden
54
+ */
55
+ get columnLabel() {
56
+ const localizationMsg = this.localization.get('filterInputLabel') || '';
57
+ const columnName = this.column.title || this.column.field;
58
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
59
+ }
51
60
  }
52
61
  StringFilterCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterCellComponent, deps: [{ token: i1.FilterService }, { token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
53
62
  StringFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: StringFilterCellComponent, selector: "kendo-treelist-string-filter-cell", inputs: { filterDelay: "filterDelay", showOperators: "showOperators" }, usesInheritance: true, ngImport: i0, template: `
@@ -61,10 +70,11 @@ StringFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
61
70
  class="k-textbox k-input k-input-md k-rounded-md k-input-solid"
62
71
  kendoTreeListFocusable
63
72
  kendoFilterInput
73
+ [columnLabel]="columnLabel"
64
74
  [filterDelay]="filterDelay"
65
75
  [ngModel]="currentFilter?.value" />
66
76
  </kendo-treelist-filter-wrapper-cell>
67
- `, isInline: true, components: [{ type: i3.FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }], directives: [{ type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { type: i6.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
77
+ `, isInline: true, components: [{ type: i3.FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }], directives: [{ type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { type: i6.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
68
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterCellComponent, decorators: [{
69
79
  type: Component,
70
80
  args: [{
@@ -80,6 +90,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
80
90
  class="k-textbox k-input k-input-md k-rounded-md k-input-solid"
81
91
  kendoTreeListFocusable
82
92
  kendoFilterInput
93
+ [columnLabel]="columnLabel"
83
94
  [filterDelay]="filterDelay"
84
95
  [ngModel]="currentFilter?.value" />
85
96
  </kendo-treelist-filter-wrapper-cell>
@@ -2,17 +2,20 @@
2
2
  * Copyright © 2023 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 { Directive, ElementRef, EventEmitter, Inject, Input, NgZone, Renderer2, Self } from '@angular/core';
5
+ import { Directive, ElementRef, EventEmitter, Inject, Input, NgZone, Renderer2, Self, ContentChild } from '@angular/core';
6
6
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
7
7
  import { debounceTime, filter } from 'rxjs/operators';
8
8
  import { Subject } from 'rxjs';
9
9
  import { isChanged } from '../utils';
10
+ import { KendoInput, isDocumentAvailable } from '@progress/kendo-angular-common';
10
11
  import * as i0 from "@angular/core";
11
12
  /**
12
13
  * @hidden
13
14
  */
14
15
  export class FilterInputDirective {
15
16
  constructor(valueAccessors, ngZone, element, renderer) {
17
+ this.element = element;
18
+ this.renderer = renderer;
16
19
  this.change = new EventEmitter();
17
20
  this.composing = false;
18
21
  this.filterDelay = 500;
@@ -34,6 +37,7 @@ export class FilterInputDirective {
34
37
  this.accessor.setDisabledState(value);
35
38
  }
36
39
  ngAfterViewInit() {
40
+ this.addAriaAttributes();
37
41
  this.accessor.registerOnChange(x => this.filterDelay > 0 ?
38
42
  this.changeRequests.next(x) :
39
43
  this.change.emit(x));
@@ -59,9 +63,24 @@ export class FilterInputDirective {
59
63
  this.changeRequestsSubscription.unsubscribe();
60
64
  }
61
65
  }
66
+ addAriaAttributes() {
67
+ const ariaValue = this.columnLabel;
68
+ if (this.kendoInput && this.kendoInput.focusableId && isDocumentAvailable()) {
69
+ const focusableElement = this.element.nativeElement.querySelector(`#${this.kendoInput.focusableId}`) ||
70
+ this.element.nativeElement;
71
+ this.renderer.setAttribute(focusableElement, 'aria-label', ariaValue);
72
+ }
73
+ else {
74
+ const inputElement = this.element.nativeElement.querySelector('.k-input-inner');
75
+ const elementToSetLabel = inputElement ? inputElement : this.element.nativeElement;
76
+ if (ariaValue) {
77
+ this.renderer.setAttribute(elementToSetLabel, 'aria-label', ariaValue);
78
+ }
79
+ }
80
+ }
62
81
  }
63
82
  FilterInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterInputDirective, deps: [{ token: NG_VALUE_ACCESSOR, self: true }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
64
- FilterInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: { filterDelay: "filterDelay", value: "value" }, usesOnChanges: true, ngImport: i0 });
83
+ FilterInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: { filterDelay: "filterDelay", columnLabel: "columnLabel", column: "column", value: "value" }, queries: [{ propertyName: "kendoInput", first: true, predicate: KendoInput, descendants: true, static: true }], usesOnChanges: true, ngImport: i0 });
65
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterInputDirective, decorators: [{
66
85
  type: Directive,
67
86
  args: [{
@@ -72,7 +91,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
72
91
  }, {
73
92
  type: Inject,
74
93
  args: [NG_VALUE_ACCESSOR]
75
- }] }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { filterDelay: [{
94
+ }] }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { kendoInput: [{
95
+ type: ContentChild,
96
+ args: [KendoInput, { static: true }]
97
+ }], filterDelay: [{
98
+ type: Input
99
+ }], columnLabel: [{
100
+ type: Input
101
+ }], column: [{
76
102
  type: Input
77
103
  }], value: [{
78
104
  type: Input
@@ -2,11 +2,12 @@
2
2
  * Copyright © 2023 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 } from '@angular/core';
5
+ import { Component, Input, HostBinding, ViewChild, ElementRef, Renderer2 } from '@angular/core';
6
6
  import { FilterService } from '../filter.service';
7
7
  import { LocalizationService } from '@progress/kendo-angular-l10n';
8
8
  import { BooleanFilterComponent } from '../boolean-filter.component';
9
9
  import { guid } from '@progress/kendo-angular-common';
10
+ import { replaceMessagePlaceholder } from '../../utils';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "@progress/kendo-angular-l10n";
12
13
  import * as i2 from "@angular/common";
@@ -28,8 +29,9 @@ import * as i3 from "@progress/kendo-angular-inputs";
28
29
  * ```
29
30
  */
30
31
  export class BooleanFilterMenuComponent extends BooleanFilterComponent {
31
- constructor(localization) {
32
+ constructor(renderer, localization) {
32
33
  super(null, localization);
34
+ this.renderer = renderer;
33
35
  /**
34
36
  * The current menu filter.
35
37
  * @type {CompositeFilterDescriptor}
@@ -65,12 +67,22 @@ export class BooleanFilterMenuComponent extends BooleanFilterComponent {
65
67
  isSelected(radioValue) {
66
68
  return this.filtersByField(this.column.field).some(({ value }) => value === radioValue);
67
69
  }
70
+ /**
71
+ * @hidden
72
+ */
73
+ columnLabel() {
74
+ const elem = this.inputElem.nativeElement;
75
+ const localizationMsg = this.localization.get('filterInputLabel') || '';
76
+ const columnName = this.column.title || this.column.field;
77
+ const fullMessage = replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
78
+ this.renderer.setAttribute(elem, 'aria-label', fullMessage);
79
+ }
68
80
  }
69
- BooleanFilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterMenuComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
70
- BooleanFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: BooleanFilterMenuComponent, selector: "kendo-treelist-boolean-filter-menu", inputs: { filter: "filter", filterService: "filterService" }, host: { properties: { "class.k-filtercell": "this.hostClasses" } }, usesInheritance: true, ngImport: i0, template: `
81
+ BooleanFilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterMenuComponent, deps: [{ token: i0.Renderer2 }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
82
+ BooleanFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: BooleanFilterMenuComponent, 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: `
71
83
  <ul class="k-radio-list k-reset">
72
84
  <li *ngFor="let item of items">
73
- <input type="radio"
85
+ <input #inputElem type="radio"
74
86
  kendoRadioButton
75
87
  [name]="idPrefix"
76
88
  [checked]="isSelected(item.value)"
@@ -88,7 +100,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
88
100
  template: `
89
101
  <ul class="k-radio-list k-reset">
90
102
  <li *ngFor="let item of items">
91
- <input type="radio"
103
+ <input #inputElem type="radio"
92
104
  kendoRadioButton
93
105
  [name]="idPrefix"
94
106
  [checked]="isSelected(item.value)"
@@ -100,9 +112,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
100
112
  </ul>
101
113
  `
102
114
  }]
103
- }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; }, propDecorators: { hostClasses: [{
115
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.LocalizationService }]; }, propDecorators: { hostClasses: [{
104
116
  type: HostBinding,
105
117
  args: ['class.k-filtercell']
118
+ }], inputElem: [{
119
+ type: ViewChild,
120
+ args: ['inputElem']
106
121
  }], filter: [{
107
122
  type: Input
108
123
  }], filterService: [{
@@ -59,7 +59,7 @@ DateFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
59
59
  >
60
60
  </kendo-datepicker>
61
61
  </kendo-treelist-filter-menu-input-wrapper>
62
- `, isInline: true, components: [{ type: i2.FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }, { type: i3.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i4.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }] });
62
+ `, isInline: true, components: [{ type: i2.FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }, { type: i3.DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "subtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }], directives: [{ type: i4.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
63
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterMenuInputComponent, decorators: [{
64
64
  type: Component,
65
65
  args: [{
@@ -50,7 +50,7 @@ NumericFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
50
50
  [step]="step">
51
51
  </kendo-numerictextbox>
52
52
  </kendo-treelist-filter-menu-input-wrapper>
53
- `, isInline: true, components: [{ type: i1.FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }, { type: i2.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"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }], directives: [{ type: i3.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }] });
53
+ `, isInline: true, components: [{ type: i1.FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }, { type: i2.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"], outputs: ["valueChange", "focus", "blur"], exportAs: ["kendoNumericTextBox"] }], directives: [{ type: i3.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterMenuInputComponent, decorators: [{
55
55
  type: Component,
56
56
  args: [{
@@ -5,20 +5,29 @@
5
5
  import { Component, Input } from '@angular/core';
6
6
  import { ColumnComponent } from "../../columns/column.component";
7
7
  import { FilterService } from '../filter.service';
8
+ import { LocalizationService } from '@progress/kendo-angular-l10n';
9
+ import { replaceMessagePlaceholder } from '../../utils';
8
10
  import * as i0 from "@angular/core";
9
- import * as i1 from "./filter-menu-input-wrapper.component";
10
- import * as i2 from "@progress/kendo-angular-inputs";
11
- import * as i3 from "@angular/forms";
12
- import * as i4 from "../filter-input.directive";
11
+ import * as i1 from "@progress/kendo-angular-l10n";
12
+ import * as i2 from "./filter-menu-input-wrapper.component";
13
+ import * as i3 from "@progress/kendo-angular-inputs";
14
+ import * as i4 from "@angular/forms";
15
+ import * as i5 from "../filter-input.directive";
13
16
  /**
14
17
  * @hidden
15
18
  */
16
19
  export class StringFilterMenuInputComponent {
17
- constructor() {
20
+ constructor(localization) {
21
+ this.localization = localization;
18
22
  this.operators = [];
19
23
  }
24
+ get columnLabel() {
25
+ const localizationMsg = this.localization.get('filterInputLabel') || '';
26
+ const columnName = this.column ? this.column.title || this.column.field : '';
27
+ return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
28
+ }
20
29
  }
21
- StringFilterMenuInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterMenuInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
+ StringFilterMenuInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterMenuInputComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
22
31
  StringFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: StringFilterMenuInputComponent, selector: "kendo-treelist-string-filter-menu-input", inputs: { operators: "operators", column: "column", filter: "filter", operator: "operator", currentFilter: "currentFilter", filterService: "filterService" }, ngImport: i0, template: `
23
32
  <kendo-treelist-filter-menu-input-wrapper
24
33
  [column]="column"
@@ -31,10 +40,11 @@ StringFilterMenuInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
31
40
  <input
32
41
  kendoTextBox
33
42
  kendoFilterInput
43
+ [columnLabel]="columnLabel"
34
44
  [filterDelay]="0"
35
45
  [ngModel]="currentFilter?.value" />
36
46
  </kendo-treelist-filter-menu-input-wrapper>
37
- `, isInline: true, components: [{ type: i1.FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }], directives: [{ type: i2.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "value"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
47
+ `, isInline: true, components: [{ type: i2.FilterMenuInputWrapperComponent, selector: "kendo-treelist-filter-menu-input-wrapper", inputs: ["filterService", "currentFilter"] }], directives: [{ type: i3.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
38
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterMenuInputComponent, decorators: [{
39
49
  type: Component,
40
50
  args: [{
@@ -51,12 +61,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
51
61
  <input
52
62
  kendoTextBox
53
63
  kendoFilterInput
64
+ [columnLabel]="columnLabel"
54
65
  [filterDelay]="0"
55
66
  [ngModel]="currentFilter?.value" />
56
67
  </kendo-treelist-filter-menu-input-wrapper>
57
68
  `
58
69
  }]
59
- }], propDecorators: { operators: [{
70
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; }, propDecorators: { operators: [{
60
71
  type: Input
61
72
  }], column: [{
62
73
  type: Input