@progress/kendo-vue-grid 3.5.0 → 3.5.1-dev.202208150613

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 (231) hide show
  1. package/dist/cdn/js/kendo-vue-grid.js +1 -1
  2. package/dist/es/Grid.js +20 -24
  3. package/dist/es/ScrollMode.js +1 -0
  4. package/dist/es/columnMenu/ColumnMenu.js +2 -2
  5. package/dist/es/columnMenu/GridColumnMenuCheckboxFilter.js +9 -13
  6. package/dist/es/columnMenu/GridColumnMenuFilter.js +423 -107
  7. package/dist/es/columnMenu/GridColumnMenuFilterCell.js +74 -97
  8. package/dist/es/columnMenu/GridColumnMenuFilterOperators.d.ts +36 -0
  9. package/dist/es/columnMenu/GridColumnMenuFilterOperators.js +68 -0
  10. package/dist/es/columnMenu/GridColumnMenuItem.js +2 -2
  11. package/dist/es/filterCommon.d.ts +1 -1
  12. package/dist/es/footer/Footer.js +1 -1
  13. package/dist/es/footer/FooterRow.js +1 -1
  14. package/dist/es/header/FilterRow.js +1 -1
  15. package/dist/es/header/Header.js +1 -1
  16. package/dist/es/header/HeaderRow.js +1 -1
  17. package/dist/es/interfaces/ExtendedColumnProps.js +1 -0
  18. package/dist/es/interfaces/GridCellProps.js +1 -0
  19. package/dist/es/interfaces/GridColumnMenuColumnProps.js +1 -0
  20. package/dist/es/interfaces/GridColumnMenuExtendedFilterProps.js +1 -0
  21. package/dist/es/interfaces/GridColumnMenuFilterBaseProps.js +1 -0
  22. package/dist/es/interfaces/GridColumnMenuFilterProps.js +1 -0
  23. package/dist/es/interfaces/GridColumnMenuFilterUIProps.js +1 -0
  24. package/dist/es/interfaces/GridColumnMenuProps.js +1 -0
  25. package/dist/es/interfaces/GridColumnMenuSortBaseProps.js +1 -0
  26. package/dist/es/interfaces/GridColumnProps.js +1 -0
  27. package/dist/es/interfaces/GridDetailRowProps.js +1 -0
  28. package/dist/es/interfaces/GridFilterCellProps.js +1 -0
  29. package/dist/es/interfaces/GridFilterOperator.js +1 -0
  30. package/dist/es/interfaces/GridFilterOperators.js +1 -0
  31. package/dist/es/interfaces/GridFooterCellProps.js +1 -0
  32. package/dist/es/interfaces/GridGroupableSettings.js +1 -0
  33. package/dist/es/interfaces/GridHeaderCellProps.js +1 -0
  34. package/dist/es/interfaces/GridHeaderSelectionCellProps.js +1 -0
  35. package/dist/es/interfaces/GridNoRecordsProps.js +1 -0
  36. package/dist/es/interfaces/GridProps.js +1 -0
  37. package/dist/es/interfaces/GridRowProps.js +1 -0
  38. package/dist/es/interfaces/GridRowType.js +1 -0
  39. package/dist/es/interfaces/GridSortSettings.js +9 -7
  40. package/dist/es/interfaces/GridToolbarProps.js +1 -0
  41. package/dist/es/interfaces/events.js +1 -0
  42. package/dist/es/package-metadata.js +1 -1
  43. package/dist/es/rows/GridDetailRow.d.ts +2 -1
  44. package/dist/es/utils/index.js +4 -4
  45. package/dist/esm/Grid.d.ts +180 -0
  46. package/dist/esm/Grid.js +2086 -0
  47. package/dist/esm/GridNav.d.ts +46 -0
  48. package/dist/esm/GridNav.js +112 -0
  49. package/dist/esm/GridNoRecords.d.ts +51 -0
  50. package/dist/esm/GridNoRecords.js +83 -0
  51. package/dist/esm/GridToolbar.d.ts +58 -0
  52. package/dist/esm/GridToolbar.js +77 -0
  53. package/dist/esm/ScrollMode.d.ts +1 -0
  54. package/dist/esm/ScrollMode.js +1 -0
  55. package/dist/esm/VirtualScroll.d.ts +41 -0
  56. package/dist/esm/VirtualScroll.js +217 -0
  57. package/dist/esm/additionalTypes.ts +21 -0
  58. package/dist/esm/cells/GridCell.d.ts +30 -0
  59. package/dist/esm/cells/GridCell.js +161 -0
  60. package/dist/esm/cells/GridDetailCell.d.ts +29 -0
  61. package/dist/esm/cells/GridDetailCell.js +82 -0
  62. package/dist/esm/cells/GridDetailHierarchyCell.d.ts +24 -0
  63. package/dist/esm/cells/GridDetailHierarchyCell.js +53 -0
  64. package/dist/esm/cells/GridEditCell.d.ts +40 -0
  65. package/dist/esm/cells/GridEditCell.js +312 -0
  66. package/dist/esm/cells/GridFilterCell.d.ts +26 -0
  67. package/dist/esm/cells/GridFilterCell.js +259 -0
  68. package/dist/esm/cells/GridGroupCell.d.ts +23 -0
  69. package/dist/esm/cells/GridGroupCell.js +179 -0
  70. package/dist/esm/cells/GridHierarchyCell.d.ts +23 -0
  71. package/dist/esm/cells/GridHierarchyCell.js +162 -0
  72. package/dist/esm/cells/GridSelectionCell.d.ts +34 -0
  73. package/dist/esm/cells/GridSelectionCell.js +138 -0
  74. package/dist/esm/columnMenu/ColumnMenu.d.ts +56 -0
  75. package/dist/esm/columnMenu/ColumnMenu.js +252 -0
  76. package/dist/esm/columnMenu/ColumnMenuContent.d.ts +33 -0
  77. package/dist/esm/columnMenu/ColumnMenuContent.js +123 -0
  78. package/dist/esm/columnMenu/GridColumnMenuCheckboxFilter.d.ts +86 -0
  79. package/dist/esm/columnMenu/GridColumnMenuCheckboxFilter.js +709 -0
  80. package/dist/esm/columnMenu/GridColumnMenuFilter.d.ts +339 -0
  81. package/dist/esm/columnMenu/GridColumnMenuFilter.js +1079 -0
  82. package/dist/esm/columnMenu/GridColumnMenuFilterCell.d.ts +45 -0
  83. package/dist/esm/columnMenu/GridColumnMenuFilterCell.js +152 -0
  84. package/dist/esm/columnMenu/GridColumnMenuFilterOperators.d.ts +36 -0
  85. package/dist/esm/columnMenu/GridColumnMenuFilterOperators.js +68 -0
  86. package/dist/esm/columnMenu/GridColumnMenuFilterUI.d.ts +24 -0
  87. package/dist/esm/columnMenu/GridColumnMenuFilterUI.js +155 -0
  88. package/dist/esm/columnMenu/GridColumnMenuItem.d.ts +42 -0
  89. package/dist/esm/columnMenu/GridColumnMenuItem.js +63 -0
  90. package/dist/esm/columnMenu/GridColumnMenuItemContent.d.ts +34 -0
  91. package/dist/esm/columnMenu/GridColumnMenuItemContent.js +51 -0
  92. package/dist/esm/columnMenu/GridColumnMenuItemGroup.d.ts +19 -0
  93. package/dist/esm/columnMenu/GridColumnMenuItemGroup.js +33 -0
  94. package/dist/esm/columnMenu/GridColumnMenuSort.d.ts +283 -0
  95. package/dist/esm/columnMenu/GridColumnMenuSort.js +375 -0
  96. package/dist/esm/drag/ColumnDraggable.d.ts +43 -0
  97. package/dist/esm/drag/ColumnDraggable.js +73 -0
  98. package/dist/esm/drag/ColumnResize.d.ts +31 -0
  99. package/dist/esm/drag/ColumnResize.js +126 -0
  100. package/dist/esm/drag/ColumnResizer.d.ts +40 -0
  101. package/dist/esm/drag/ColumnResizer.js +89 -0
  102. package/dist/esm/drag/CommonDragLogic.d.ts +35 -0
  103. package/dist/esm/drag/CommonDragLogic.js +177 -0
  104. package/dist/esm/drag/DragClue.d.ts +25 -0
  105. package/dist/esm/drag/DragClue.js +52 -0
  106. package/dist/esm/drag/DropClue.d.ts +24 -0
  107. package/dist/esm/drag/DropClue.js +46 -0
  108. package/dist/esm/drag/GroupingIndicator.d.ts +51 -0
  109. package/dist/esm/drag/GroupingIndicator.js +153 -0
  110. package/dist/esm/filterCommon.d.ts +75 -0
  111. package/dist/esm/filterCommon.js +156 -0
  112. package/dist/esm/footer/Footer.d.ts +52 -0
  113. package/dist/esm/footer/Footer.js +103 -0
  114. package/dist/esm/footer/FooterRow.d.ts +30 -0
  115. package/dist/esm/footer/FooterRow.js +73 -0
  116. package/dist/esm/header/FilterRow.d.ts +36 -0
  117. package/dist/esm/header/FilterRow.js +203 -0
  118. package/dist/esm/header/GridHeaderCell.d.ts +21 -0
  119. package/dist/esm/header/GridHeaderCell.js +60 -0
  120. package/dist/esm/header/GridHeaderSelectionCell.d.ts +32 -0
  121. package/dist/esm/header/GridHeaderSelectionCell.js +81 -0
  122. package/dist/esm/header/GroupPanel.d.ts +38 -0
  123. package/dist/esm/header/GroupPanel.js +108 -0
  124. package/dist/esm/header/Header.d.ts +64 -0
  125. package/dist/esm/header/Header.js +123 -0
  126. package/dist/esm/header/HeaderRow.d.ts +86 -0
  127. package/dist/esm/header/HeaderRow.js +517 -0
  128. package/dist/esm/interfaces/ExtendedColumnProps.d.ts +20 -0
  129. package/dist/esm/interfaces/ExtendedColumnProps.js +1 -0
  130. package/dist/esm/interfaces/GridCellProps.d.ts +156 -0
  131. package/dist/esm/interfaces/GridCellProps.js +1 -0
  132. package/dist/esm/interfaces/GridColumnMenuColumnProps.d.ts +13 -0
  133. package/dist/esm/interfaces/GridColumnMenuColumnProps.js +1 -0
  134. package/dist/esm/interfaces/GridColumnMenuExtendedFilterProps.d.ts +42 -0
  135. package/dist/esm/interfaces/GridColumnMenuExtendedFilterProps.js +1 -0
  136. package/dist/esm/interfaces/GridColumnMenuFilterBaseProps.d.ts +49 -0
  137. package/dist/esm/interfaces/GridColumnMenuFilterBaseProps.js +1 -0
  138. package/dist/esm/interfaces/GridColumnMenuFilterProps.d.ts +27 -0
  139. package/dist/esm/interfaces/GridColumnMenuFilterProps.js +1 -0
  140. package/dist/esm/interfaces/GridColumnMenuFilterUIProps.d.ts +55 -0
  141. package/dist/esm/interfaces/GridColumnMenuFilterUIProps.js +1 -0
  142. package/dist/esm/interfaces/GridColumnMenuProps.d.ts +19 -0
  143. package/dist/esm/interfaces/GridColumnMenuProps.js +1 -0
  144. package/dist/esm/interfaces/GridColumnMenuSortBaseProps.d.ts +28 -0
  145. package/dist/esm/interfaces/GridColumnMenuSortBaseProps.js +1 -0
  146. package/dist/esm/interfaces/GridColumnProps.d.ts +147 -0
  147. package/dist/esm/interfaces/GridColumnProps.js +1 -0
  148. package/dist/esm/interfaces/GridDetailRowProps.d.ts +9 -0
  149. package/dist/esm/interfaces/GridDetailRowProps.js +1 -0
  150. package/dist/esm/interfaces/GridFilterCellProps.d.ts +64 -0
  151. package/dist/esm/interfaces/GridFilterCellProps.js +1 -0
  152. package/dist/esm/interfaces/GridFilterOperator.d.ts +7 -0
  153. package/dist/esm/interfaces/GridFilterOperator.js +1 -0
  154. package/dist/esm/interfaces/GridFilterOperators.d.ts +49 -0
  155. package/dist/esm/interfaces/GridFilterOperators.js +1 -0
  156. package/dist/esm/interfaces/GridFooterCellProps.d.ts +7 -0
  157. package/dist/esm/interfaces/GridFooterCellProps.js +1 -0
  158. package/dist/esm/interfaces/GridGroupableSettings.d.ts +15 -0
  159. package/dist/esm/interfaces/GridGroupableSettings.js +1 -0
  160. package/dist/esm/interfaces/GridHeaderCellProps.d.ts +37 -0
  161. package/dist/esm/interfaces/GridHeaderCellProps.js +1 -0
  162. package/dist/esm/interfaces/GridHeaderSelectionCellProps.d.ts +17 -0
  163. package/dist/esm/interfaces/GridHeaderSelectionCellProps.js +1 -0
  164. package/dist/esm/interfaces/GridNoRecordsProps.d.ts +9 -0
  165. package/dist/esm/interfaces/GridNoRecordsProps.js +1 -0
  166. package/dist/esm/interfaces/GridProps.d.ts +311 -0
  167. package/dist/esm/interfaces/GridProps.js +1 -0
  168. package/dist/esm/interfaces/GridRowProps.d.ts +55 -0
  169. package/dist/esm/interfaces/GridRowProps.js +1 -0
  170. package/dist/esm/interfaces/GridRowType.d.ts +9 -0
  171. package/dist/esm/interfaces/GridRowType.js +1 -0
  172. package/dist/esm/interfaces/GridSortSettings.d.ts +26 -0
  173. package/dist/esm/interfaces/GridSortSettings.js +20 -0
  174. package/dist/esm/interfaces/GridToolbarProps.d.ts +9 -0
  175. package/dist/esm/interfaces/GridToolbarProps.js +1 -0
  176. package/dist/esm/interfaces/events.d.ts +248 -0
  177. package/dist/esm/interfaces/events.js +1 -0
  178. package/dist/esm/main.d.ts +38 -0
  179. package/dist/esm/main.js +31 -0
  180. package/dist/esm/messages/index.d.ts +150 -0
  181. package/dist/esm/messages/index.js +151 -0
  182. package/dist/esm/package-metadata.d.ts +5 -0
  183. package/dist/esm/package-metadata.js +11 -0
  184. package/dist/esm/package.json +3 -0
  185. package/dist/esm/rows/GridDetailRow.d.ts +16 -0
  186. package/dist/esm/rows/GridDetailRow.js +29 -0
  187. package/dist/esm/rows/GridRow.d.ts +28 -0
  188. package/dist/esm/rows/GridRow.js +84 -0
  189. package/dist/esm/utils/browser-support.service.d.ts +7 -0
  190. package/dist/esm/utils/browser-support.service.js +26 -0
  191. package/dist/esm/utils/index.d.ts +91 -0
  192. package/dist/esm/utils/index.js +393 -0
  193. package/dist/npm/Grid.js +66 -70
  194. package/dist/npm/GridNav.js +1 -1
  195. package/dist/npm/GridNoRecords.js +2 -2
  196. package/dist/npm/GridToolbar.js +1 -1
  197. package/dist/npm/cells/GridCell.js +2 -2
  198. package/dist/npm/cells/GridEditCell.js +2 -2
  199. package/dist/npm/cells/GridFilterCell.js +4 -4
  200. package/dist/npm/cells/GridHierarchyCell.js +1 -1
  201. package/dist/npm/cells/GridSelectionCell.js +2 -2
  202. package/dist/npm/columnMenu/ColumnMenu.js +5 -5
  203. package/dist/npm/columnMenu/GridColumnMenuCheckboxFilter.js +14 -18
  204. package/dist/npm/columnMenu/GridColumnMenuFilter.js +445 -125
  205. package/dist/npm/columnMenu/GridColumnMenuFilterCell.js +79 -102
  206. package/dist/npm/columnMenu/GridColumnMenuFilterOperators.d.ts +36 -0
  207. package/dist/npm/columnMenu/GridColumnMenuFilterOperators.js +79 -0
  208. package/dist/npm/columnMenu/GridColumnMenuItem.js +2 -2
  209. package/dist/npm/columnMenu/GridColumnMenuItemContent.js +1 -1
  210. package/dist/npm/columnMenu/GridColumnMenuItemGroup.js +1 -1
  211. package/dist/npm/columnMenu/GridColumnMenuSort.js +5 -4
  212. package/dist/npm/drag/ColumnDraggable.js +1 -1
  213. package/dist/npm/drag/CommonDragLogic.js +2 -2
  214. package/dist/npm/drag/GroupingIndicator.js +3 -3
  215. package/dist/npm/filterCommon.d.ts +1 -1
  216. package/dist/npm/filterCommon.js +19 -12
  217. package/dist/npm/footer/Footer.js +6 -6
  218. package/dist/npm/footer/FooterRow.js +2 -2
  219. package/dist/npm/header/FilterRow.js +7 -7
  220. package/dist/npm/header/GridHeaderCell.js +1 -1
  221. package/dist/npm/header/GridHeaderSelectionCell.js +1 -1
  222. package/dist/npm/header/GroupPanel.js +1 -1
  223. package/dist/npm/header/Header.js +8 -8
  224. package/dist/npm/header/HeaderRow.js +2 -2
  225. package/dist/npm/interfaces/GridSortSettings.js +11 -8
  226. package/dist/npm/main.js +6 -2
  227. package/dist/npm/package-metadata.js +1 -1
  228. package/dist/npm/rows/GridDetailRow.d.ts +2 -1
  229. package/dist/npm/rows/GridRow.js +2 -2
  230. package/dist/npm/utils/index.js +6 -5
  231. package/package.json +20 -14
@@ -0,0 +1,709 @@
1
+ var __assign = this && this.__assign || function () {
2
+ __assign = Object.assign || function (t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+
6
+ for (var p in s) {
7
+ if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
8
+ }
9
+ }
10
+
11
+ return t;
12
+ };
13
+
14
+ return __assign.apply(this, arguments);
15
+ };
16
+
17
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
18
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
19
+ if (ar || !(i in from)) {
20
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
21
+ ar[i] = from[i];
22
+ }
23
+ }
24
+ return to.concat(ar || Array.prototype.slice.call(from));
25
+ }; // @ts-ignore
26
+
27
+
28
+ import * as Vue from 'vue';
29
+ var allVue = Vue;
30
+ var gh = allVue.h;
31
+ var isV3 = allVue.version && allVue.version[0] === '3';
32
+ var inject = allVue.inject;
33
+ import { Button } from '@progress/kendo-vue-buttons';
34
+ import { GridColumnMenuItem } from './GridColumnMenuItem.js';
35
+ import { GridColumnMenuItemGroup } from './GridColumnMenuItemGroup.js';
36
+ import { GridColumnMenuItemContent } from './GridColumnMenuItemContent.js';
37
+ import { Checkbox } from '@progress/kendo-vue-inputs';
38
+ import { provideLocalizationService } from '@progress/kendo-vue-intl';
39
+ import { messages, filterClearButton, filterSubmitButton, filterTitle, searchPlaceholder, filterCheckAll } from '../messages.js';
40
+ import { filterBy } from '@progress/kendo-data-query';
41
+ import { clone, getListeners, getTemplate, templateRendering } from '@progress/kendo-vue-common';
42
+ import { getNestedValue } from '../utils.js';
43
+ /**
44
+ * @hidden
45
+ */
46
+
47
+ var isArrayEqual = function isArrayEqual(firstArray, secondArray) {
48
+ if (firstArray.length !== secondArray.length) {
49
+ return false;
50
+ }
51
+
52
+ return firstArray.every(function (ex, i) {
53
+ return ex === secondArray[i];
54
+ });
55
+ };
56
+ /**
57
+ * @hidden
58
+ */
59
+
60
+
61
+ var GridColumnMenuCheckboxFilterVue2 = {
62
+ name: 'KendoGridColumnMenuCheckboxFilter',
63
+ props: {
64
+ column: Object,
65
+ filter: Object,
66
+ filterable: Boolean,
67
+ filterOperators: Object,
68
+ checkAllItem: [String, Object, Function],
69
+ item: [String, Object, Function],
70
+ expanded: {
71
+ type: Boolean,
72
+ default: undefined
73
+ },
74
+ dataItems: Array,
75
+ searchBox: {
76
+ type: Boolean,
77
+ default: true
78
+ },
79
+ uniqueData: {
80
+ type: Boolean,
81
+ default: true
82
+ }
83
+ },
84
+ data: function data() {
85
+ return {
86
+ currentExpanded: false,
87
+ currentValue: '',
88
+ currentData: undefined,
89
+ dataFromProps: undefined,
90
+ currentFilter: undefined
91
+ };
92
+ },
93
+ created: function created() {
94
+ this.compositeFilterIndex = this.getFilterIndex();
95
+ this.currentExpanded = this.$props.expanded;
96
+ this.currentData = this.parseData(this.$props.dataItems, this.$props.uniqueData) || [];
97
+ this.dataFromProps = this.parseData(this.$props.dataItems, false) || [];
98
+ this.currentFilter = this.defaultFilter();
99
+ },
100
+ updated: function updated() {
101
+ var field = this.$props.column.field || '';
102
+ var data = this.$props.dataItems.map(function (item) {
103
+ return getNestedValue(field, item);
104
+ });
105
+
106
+ if (!isArrayEqual(data, this.dataFromProps)) {
107
+ this.currentData = data;
108
+ this.dataFromProps = data;
109
+ }
110
+ },
111
+ inject: {
112
+ kendoLocalizationService: {
113
+ default: null
114
+ }
115
+ },
116
+ // @ts-ignore
117
+ setup: !isV3 ? undefined : function () {
118
+ var v3 = !!isV3;
119
+ var kendoLocalizationService = inject('kendoLocalizationService', {});
120
+ return {
121
+ v3: v3,
122
+ kendoLocalizationService: kendoLocalizationService
123
+ };
124
+ },
125
+ // @ts-ignore
126
+ render: function render(createElement) {
127
+ var _this2 = this;
128
+
129
+ var _this = this;
130
+
131
+ var h = gh || createElement;
132
+ var column = this.$props.column;
133
+
134
+ if (!column || !column.field) {
135
+ return h("div");
136
+ }
137
+
138
+ var localizationService = provideLocalizationService(this);
139
+ var expandState = this.$props.expanded !== undefined ? this.$props.expanded : this.currentExpanded;
140
+ var filterValues = [];
141
+
142
+ if (this.currentFilter) {
143
+ var currentFilter = __spreadArray([], this.currentFilter.filters, true);
144
+
145
+ this.compositeFilterIndex = currentFilter.findIndex(function (filter) {
146
+ if (filter.filters && filter.filters.length > 0) {
147
+ return filter.filters[0].field === column.field;
148
+ }
149
+
150
+ return false;
151
+ });
152
+
153
+ if (this.compositeFilterIndex !== -1 && currentFilter[this.compositeFilterIndex].filters.length > 0) {
154
+ currentFilter[this.compositeFilterIndex].filters.forEach(function (filterItem) {
155
+ if (filterItem.field === _this.$props.column.field) {
156
+ filterValues.push(filterItem.value);
157
+ }
158
+ });
159
+ }
160
+ }
161
+
162
+ var searchBox = function searchBox() {
163
+ return this.$props.searchBox && h("span", {
164
+ "class": "k-list-filter"
165
+ }, [h("span", {
166
+ "class": "k-textbox k-input k-input-md k-rounded-md k-input-solid"
167
+ }, [h("span", {
168
+ "class": "k-input-icon k-icon k-i-search"
169
+ }), h("input", {
170
+ ref: 'searchBox',
171
+ placeholder: localizationService.toLanguageString(searchPlaceholder, messages[searchPlaceholder]),
172
+ attrs: this.v3 ? undefined : {
173
+ placeholder: localizationService.toLanguageString(searchPlaceholder, messages[searchPlaceholder])
174
+ },
175
+ "class": "k-input-inner",
176
+ value: this.v3 ? this.currentValue : null,
177
+ domProps: this.v3 ? undefined : {
178
+ "value": this.currentValue
179
+ },
180
+ onInput: this.handleSearchChange,
181
+ on: this.v3 ? undefined : {
182
+ "input": this.handleSearchChange
183
+ }
184
+ })])]);
185
+ };
186
+
187
+ var uniqueFilterValues = filterValues.filter(function (item, index) {
188
+ return filterValues.indexOf(item) === index;
189
+ });
190
+ var itemTemplate = templateRendering.call(this, this.$props.item, getListeners.call(this));
191
+ var checkAllItemTemplate = templateRendering.call(this, this.$props.checkAllItem, getListeners.call(this));
192
+ var defaultCheckAllRendering = h("li", {
193
+ "class": "k-item"
194
+ }, [// @ts-ignore function children
195
+ h(Checkbox, {
196
+ label: localizationService.toLanguageString(filterCheckAll, messages[filterCheckAll]),
197
+ attrs: this.v3 ? undefined : {
198
+ label: localizationService.toLanguageString(filterCheckAll, messages[filterCheckAll]),
199
+ checked: this.isAllSelected()
200
+ },
201
+ onChange: function onChange(e) {
202
+ return _this.handleCheckBoxChange(e, 'all');
203
+ },
204
+ on: this.v3 ? undefined : {
205
+ "change": function onChange(e) {
206
+ return _this.handleCheckBoxChange(e, 'all');
207
+ }
208
+ },
209
+ checked: this.isAllSelected()
210
+ })]);
211
+ var checkAllItemRender = getTemplate.call(this, {
212
+ h: h,
213
+ template: checkAllItemTemplate,
214
+ defaultRendering: defaultCheckAllRendering,
215
+ additionalProps: {
216
+ checked: this.isAllSelected()
217
+ },
218
+ additionalListeners: {
219
+ change: function change(e) {
220
+ return _this.handleCheckBoxChange(e, 'all');
221
+ }
222
+ }
223
+ });
224
+ return (// @ts-ignore function children
225
+ h(GridColumnMenuItemGroup, this.v3 ? function () {
226
+ return [// @ts-ignore function children
227
+ h(GridColumnMenuItem, {
228
+ title: localizationService.toLanguageString(filterTitle, messages[filterTitle]),
229
+ attrs: _this2.v3 ? undefined : {
230
+ title: localizationService.toLanguageString(filterTitle, messages[filterTitle]),
231
+ iconClass: 'k-i-filter'
232
+ },
233
+ iconClass: 'k-i-filter',
234
+ onClick: _this2.onFilterExpand,
235
+ on: _this2.v3 ? undefined : {
236
+ "click": _this2.onFilterExpand
237
+ }
238
+ }), // @ts-ignore function children
239
+ h(GridColumnMenuItemContent, {
240
+ show: !!expandState,
241
+ attrs: _this2.v3 ? undefined : {
242
+ show: !!expandState
243
+ }
244
+ }, _this2.v3 ? function () {
245
+ return [h("div", {
246
+ "class": 'kendo-grid-filter-menu-container'
247
+ }, [h("form", {
248
+ "class": 'k-filter-menu k-group k-reset k-border-up',
249
+ onSubmit: _this2.submit,
250
+ on: _this2.v3 ? undefined : {
251
+ "submit": _this2.submit,
252
+ "reset": _this2.clear
253
+ },
254
+ onReset: _this2.clear
255
+ }, [h("div", {
256
+ "class": 'k-filter-menu-container'
257
+ }, [searchBox.call(_this2), h("ul", {
258
+ "class": "k-reset k-multicheck-wrap"
259
+ }, [checkAllItemRender, _this2.currentData.map(function (item, index) {
260
+ var _this = this;
261
+
262
+ var defaultRendering = h("li", {
263
+ "class": "k-item",
264
+ key: index
265
+ }, [// @ts-ignore function children
266
+ h(Checkbox, {
267
+ label: String(item),
268
+ attrs: this.v3 ? undefined : {
269
+ label: String(item),
270
+ checked: uniqueFilterValues.includes(item)
271
+ },
272
+ onChange: function onChange(e) {
273
+ return _this.handleCheckBoxChange(e, item);
274
+ },
275
+ on: this.v3 ? undefined : {
276
+ "change": function onChange(e) {
277
+ return _this.handleCheckBoxChange(e, item);
278
+ }
279
+ },
280
+ checked: uniqueFilterValues.includes(item)
281
+ })]);
282
+ var itemRender = getTemplate.call(this, {
283
+ h: h,
284
+ template: itemTemplate,
285
+ defaultRendering: defaultRendering,
286
+ additionalProps: {
287
+ item: item,
288
+ index: index,
289
+ checked: uniqueFilterValues.includes(item)
290
+ },
291
+ additionalListeners: {
292
+ change: function change(e) {
293
+ return _this.handleCheckBoxChange(e, item);
294
+ }
295
+ }
296
+ });
297
+ return itemRender;
298
+ }, _this2)]), h("div", {
299
+ "class": 'k-columnmenu-actions'
300
+ }, [// @ts-ignore function children
301
+ h(Button, {
302
+ type: 'reset',
303
+ attrs: _this2.v3 ? undefined : {
304
+ type: 'reset'
305
+ }
306
+ }, _this2.v3 ? function () {
307
+ return [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])];
308
+ } : [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])]), // @ts-ignore function children
309
+ h(Button, {
310
+ themeColor: 'primary',
311
+ attrs: _this2.v3 ? undefined : {
312
+ themeColor: 'primary'
313
+ }
314
+ }, _this2.v3 ? function () {
315
+ return [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])];
316
+ } : [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])])])])])])];
317
+ } : [h("div", {
318
+ "class": 'kendo-grid-filter-menu-container'
319
+ }, [h("form", {
320
+ "class": 'k-filter-menu k-group k-reset k-border-up',
321
+ onSubmit: _this2.submit,
322
+ on: _this2.v3 ? undefined : {
323
+ "submit": _this2.submit,
324
+ "reset": _this2.clear
325
+ },
326
+ onReset: _this2.clear
327
+ }, [h("div", {
328
+ "class": 'k-filter-menu-container'
329
+ }, [searchBox.call(_this2), h("ul", {
330
+ "class": "k-reset k-multicheck-wrap"
331
+ }, [checkAllItemRender, _this2.currentData.map(function (item, index) {
332
+ var _this = this;
333
+
334
+ var defaultRendering = h("li", {
335
+ "class": "k-item",
336
+ key: index
337
+ }, [h(Checkbox, {
338
+ label: String(item),
339
+ attrs: this.v3 ? undefined : {
340
+ label: String(item),
341
+ checked: uniqueFilterValues.includes(item)
342
+ },
343
+ onChange: function onChange(e) {
344
+ return _this.handleCheckBoxChange(e, item);
345
+ },
346
+ on: this.v3 ? undefined : {
347
+ "change": function onChange(e) {
348
+ return _this.handleCheckBoxChange(e, item);
349
+ }
350
+ },
351
+ checked: uniqueFilterValues.includes(item)
352
+ })]);
353
+ var itemRender = getTemplate.call(this, {
354
+ h: h,
355
+ template: itemTemplate,
356
+ defaultRendering: defaultRendering,
357
+ additionalProps: {
358
+ item: item,
359
+ index: index,
360
+ checked: uniqueFilterValues.includes(item)
361
+ },
362
+ additionalListeners: {
363
+ change: function change(e) {
364
+ return _this.handleCheckBoxChange(e, item);
365
+ }
366
+ }
367
+ });
368
+ return itemRender;
369
+ }, _this2)]), h("div", {
370
+ "class": 'k-columnmenu-actions'
371
+ }, [h(Button, {
372
+ type: 'reset',
373
+ attrs: _this2.v3 ? undefined : {
374
+ type: 'reset'
375
+ }
376
+ }, _this2.v3 ? function () {
377
+ return [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])];
378
+ } : [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])]), h(Button, {
379
+ themeColor: 'primary',
380
+ attrs: _this2.v3 ? undefined : {
381
+ themeColor: 'primary'
382
+ }
383
+ }, _this2.v3 ? function () {
384
+ return [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])];
385
+ } : [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])])])])])])])];
386
+ } : [h(GridColumnMenuItem, {
387
+ title: localizationService.toLanguageString(filterTitle, messages[filterTitle]),
388
+ attrs: _this2.v3 ? undefined : {
389
+ title: localizationService.toLanguageString(filterTitle, messages[filterTitle]),
390
+ iconClass: 'k-i-filter'
391
+ },
392
+ iconClass: 'k-i-filter',
393
+ onClick: _this2.onFilterExpand,
394
+ on: _this2.v3 ? undefined : {
395
+ "click": _this2.onFilterExpand
396
+ }
397
+ }), h(GridColumnMenuItemContent, {
398
+ show: !!expandState,
399
+ attrs: _this2.v3 ? undefined : {
400
+ show: !!expandState
401
+ }
402
+ }, _this2.v3 ? function () {
403
+ return [h("div", {
404
+ "class": 'kendo-grid-filter-menu-container'
405
+ }, [h("form", {
406
+ "class": 'k-filter-menu k-group k-reset k-border-up',
407
+ onSubmit: _this2.submit,
408
+ on: _this2.v3 ? undefined : {
409
+ "submit": _this2.submit,
410
+ "reset": _this2.clear
411
+ },
412
+ onReset: _this2.clear
413
+ }, [h("div", {
414
+ "class": 'k-filter-menu-container'
415
+ }, [searchBox.call(_this2), h("ul", {
416
+ "class": "k-reset k-multicheck-wrap"
417
+ }, [checkAllItemRender, _this2.currentData.map(function (item, index) {
418
+ var _this = this;
419
+
420
+ var defaultRendering = h("li", {
421
+ "class": "k-item",
422
+ key: index
423
+ }, [h(Checkbox, {
424
+ label: String(item),
425
+ attrs: this.v3 ? undefined : {
426
+ label: String(item),
427
+ checked: uniqueFilterValues.includes(item)
428
+ },
429
+ onChange: function onChange(e) {
430
+ return _this.handleCheckBoxChange(e, item);
431
+ },
432
+ on: this.v3 ? undefined : {
433
+ "change": function onChange(e) {
434
+ return _this.handleCheckBoxChange(e, item);
435
+ }
436
+ },
437
+ checked: uniqueFilterValues.includes(item)
438
+ })]);
439
+ var itemRender = getTemplate.call(this, {
440
+ h: h,
441
+ template: itemTemplate,
442
+ defaultRendering: defaultRendering,
443
+ additionalProps: {
444
+ item: item,
445
+ index: index,
446
+ checked: uniqueFilterValues.includes(item)
447
+ },
448
+ additionalListeners: {
449
+ change: function change(e) {
450
+ return _this.handleCheckBoxChange(e, item);
451
+ }
452
+ }
453
+ });
454
+ return itemRender;
455
+ }, _this2)]), h("div", {
456
+ "class": 'k-columnmenu-actions'
457
+ }, [h(Button, {
458
+ type: 'reset',
459
+ attrs: _this2.v3 ? undefined : {
460
+ type: 'reset'
461
+ }
462
+ }, _this2.v3 ? function () {
463
+ return [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])];
464
+ } : [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])]), h(Button, {
465
+ themeColor: 'primary',
466
+ attrs: _this2.v3 ? undefined : {
467
+ themeColor: 'primary'
468
+ }
469
+ }, _this2.v3 ? function () {
470
+ return [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])];
471
+ } : [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])])])])])])];
472
+ } : [h("div", {
473
+ "class": 'kendo-grid-filter-menu-container'
474
+ }, [h("form", {
475
+ "class": 'k-filter-menu k-group k-reset k-border-up',
476
+ onSubmit: _this2.submit,
477
+ on: _this2.v3 ? undefined : {
478
+ "submit": _this2.submit,
479
+ "reset": _this2.clear
480
+ },
481
+ onReset: _this2.clear
482
+ }, [h("div", {
483
+ "class": 'k-filter-menu-container'
484
+ }, [searchBox.call(_this2), h("ul", {
485
+ "class": "k-reset k-multicheck-wrap"
486
+ }, [checkAllItemRender, _this2.currentData.map(function (item, index) {
487
+ var _this = this;
488
+
489
+ var defaultRendering = h("li", {
490
+ "class": "k-item",
491
+ key: index
492
+ }, [h(Checkbox, {
493
+ label: String(item),
494
+ attrs: this.v3 ? undefined : {
495
+ label: String(item),
496
+ checked: uniqueFilterValues.includes(item)
497
+ },
498
+ onChange: function onChange(e) {
499
+ return _this.handleCheckBoxChange(e, item);
500
+ },
501
+ on: this.v3 ? undefined : {
502
+ "change": function onChange(e) {
503
+ return _this.handleCheckBoxChange(e, item);
504
+ }
505
+ },
506
+ checked: uniqueFilterValues.includes(item)
507
+ })]);
508
+ var itemRender = getTemplate.call(this, {
509
+ h: h,
510
+ template: itemTemplate,
511
+ defaultRendering: defaultRendering,
512
+ additionalProps: {
513
+ item: item,
514
+ index: index,
515
+ checked: uniqueFilterValues.includes(item)
516
+ },
517
+ additionalListeners: {
518
+ change: function change(e) {
519
+ return _this.handleCheckBoxChange(e, item);
520
+ }
521
+ }
522
+ });
523
+ return itemRender;
524
+ }, _this2)]), h("div", {
525
+ "class": 'k-columnmenu-actions'
526
+ }, [h(Button, {
527
+ type: 'reset',
528
+ attrs: _this2.v3 ? undefined : {
529
+ type: 'reset'
530
+ }
531
+ }, _this2.v3 ? function () {
532
+ return [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])];
533
+ } : [localizationService.toLanguageString(filterClearButton, messages[filterClearButton])]), h(Button, {
534
+ themeColor: 'primary',
535
+ attrs: _this2.v3 ? undefined : {
536
+ themeColor: 'primary'
537
+ }
538
+ }, _this2.v3 ? function () {
539
+ return [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])];
540
+ } : [localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])])])])])])])])
541
+ );
542
+ },
543
+ methods: {
544
+ defaultFilter: function defaultFilter() {
545
+ if (this.$props.filter) {
546
+ return clone(this.$props.filter);
547
+ }
548
+
549
+ return {
550
+ filters: [],
551
+ logic: 'and'
552
+ };
553
+ },
554
+ parseData: function parseData(originalData, isUnique) {
555
+ var field = this.$props.column.field || '';
556
+ var data = originalData.map(function (item) {
557
+ return getNestedValue(field, item);
558
+ });
559
+
560
+ if (isUnique) {
561
+ return data.filter(function (item, index) {
562
+ return data.indexOf(item) === index;
563
+ });
564
+ }
565
+
566
+ return data;
567
+ },
568
+ getFilterIndex: function getFilterIndex() {
569
+ var field = this.$props.column.field;
570
+ var currentFilter = this.defaultFilter();
571
+ var compositeFilterIndex = currentFilter.filters.findIndex(function (filter) {
572
+ return filter.filters && filter.filters.length > 0 && filter.filters[0].field === field;
573
+ });
574
+ return compositeFilterIndex;
575
+ },
576
+ onFilterExpand: function onFilterExpand() {
577
+ var isControlled = this.$props.expanded !== undefined;
578
+ var nextValue = !(isControlled ? this.$props.expanded : this.currentExpanded);
579
+ this.$emit('expandchange', nextValue);
580
+
581
+ if (!isControlled) {
582
+ this.currentExpanded = nextValue;
583
+ }
584
+ },
585
+ handleSearchChange: function handleSearchChange(e) {
586
+ var filterExpression = {
587
+ logic: 'and',
588
+ filters: [{
589
+ field: this.$props.column.field,
590
+ operator: 'startswith',
591
+ value: e.target.value,
592
+ ignoreCase: true
593
+ }]
594
+ };
595
+ this.currentValue = e.target.value;
596
+ this.currentData = this.parseData(filterBy(this.$props.dataItems || [], filterExpression), this.$props.uniqueData);
597
+ },
598
+ clear: function clear(e) {
599
+ e.preventDefault();
600
+ var updatedFilter = this.currentFilter || null;
601
+
602
+ if (updatedFilter !== null && updatedFilter.filters.length > 0) {
603
+ if (this.compositeFilterIndex >= 0) {
604
+ updatedFilter.filters.splice(this.compositeFilterIndex, 1);
605
+ }
606
+
607
+ this.$emit('filterchange', updatedFilter, e);
608
+ } else {
609
+ this.$emit('filterchange', null, e);
610
+ }
611
+
612
+ this.$emit('closemenu');
613
+ },
614
+ submit: function submit(e) {
615
+ e.preventDefault();
616
+ var updatedFilter = this.currentFilter || null;
617
+ this.$emit('filterchange', updatedFilter, e);
618
+ this.$emit('closemenu');
619
+ },
620
+ handleCheckBoxChange: function handleCheckBoxChange(e, value) {
621
+ var field = this.$props.column.field || '';
622
+
623
+ var newFilter = __assign({}, this.currentFilter);
624
+
625
+ var filters = __spreadArray([], this.currentFilter.filters, true) || [];
626
+ var fieldFilters = [];
627
+
628
+ if (this.compositeFilterIndex !== -1 && newFilter.filters[this.compositeFilterIndex].filters && value !== 'all') {
629
+ fieldFilters = newFilter.filters[this.compositeFilterIndex].filters;
630
+ }
631
+
632
+ if (e.value && value === 'all') {
633
+ this.currentData.forEach(function (item) {
634
+ fieldFilters.push({
635
+ field: field,
636
+ operator: 'eq',
637
+ value: item
638
+ });
639
+ });
640
+ } else if (e.value) {
641
+ fieldFilters.push({
642
+ field: field,
643
+ operator: 'eq',
644
+ value: value
645
+ });
646
+ } else if (this.currentFilter) {
647
+ var index = fieldFilters.findIndex(function (filter) {
648
+ return filter.value === value;
649
+ });
650
+ fieldFilters.splice(index, 1);
651
+ }
652
+
653
+ newFilter.logic = 'and';
654
+
655
+ if (this.compositeFilterIndex !== -1) {
656
+ filters[this.compositeFilterIndex] = {
657
+ logic: 'or',
658
+ filters: fieldFilters
659
+ };
660
+ } else {
661
+ filters.push({
662
+ logic: 'or',
663
+ filters: fieldFilters
664
+ });
665
+ }
666
+
667
+ if (!e.value && value === 'all' || fieldFilters.length === 0) {
668
+ filters.splice(this.compositeFilterIndex, 1);
669
+ }
670
+
671
+ newFilter.filters = filters;
672
+ this.currentFilter = newFilter;
673
+ },
674
+ isAllSelected: function isAllSelected() {
675
+ var _this = this;
676
+
677
+ var isAllChecked = false;
678
+
679
+ if (this.currentFilter) {
680
+ var filters_1 = __spreadArray([], this.currentFilter.filters, true);
681
+
682
+ if (this.compositeFilterIndex === -1) {
683
+ return false;
684
+ }
685
+
686
+ isAllChecked = this.currentData.every(function (item) {
687
+ if (_this.compositeFilterIndex !== -1 && filters_1[_this.compositeFilterIndex].filters) {
688
+ var index = filters_1[_this.compositeFilterIndex].filters.findIndex(function (filter) {
689
+ return filter.value === item;
690
+ });
691
+
692
+ return index >= 0;
693
+ }
694
+
695
+ return false;
696
+ });
697
+ return isAllChecked;
698
+ }
699
+
700
+ return isAllChecked;
701
+ }
702
+ }
703
+ };
704
+ /**
705
+ * @hidden
706
+ */
707
+
708
+ var GridColumnMenuCheckboxFilter = GridColumnMenuCheckboxFilterVue2;
709
+ export { GridColumnMenuCheckboxFilter, GridColumnMenuCheckboxFilterVue2 };