@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,91 @@
1
+ import { GridProps } from '../interfaces/GridProps';
2
+ import { ExtendedColumnProps } from '../interfaces/ExtendedColumnProps';
3
+ import { DataResult, GroupDescriptor } from '@progress/kendo-data-query';
4
+ import { GridRowType } from '../interfaces/GridRowType';
5
+ import { GridColumnProps } from '../interfaces/GridColumnProps';
6
+ import { IntlService } from '@progress/kendo-vue-intl';
7
+ /**
8
+ * @hidden
9
+ */
10
+ export declare function getNestedValue(fieldName: string, dataItem: any): any;
11
+ /**
12
+ * @hidden
13
+ */
14
+ export interface DataItemWrapper {
15
+ dataItem: any;
16
+ rowType: GridRowType;
17
+ level: number;
18
+ expanded: boolean;
19
+ dataIndex: number;
20
+ }
21
+ /**
22
+ * @hidden
23
+ */
24
+ export declare function flatData(output: Array<DataItemWrapper>, input: Array<any>, footer: 'always' | 'visible' | 'none', dataIndex: {
25
+ index: number;
26
+ }, groupDefined: boolean, field?: string, level?: number): number;
27
+ /**
28
+ * @hidden
29
+ */
30
+ export declare function isRtl(element: Element | null): boolean;
31
+ /**
32
+ * @hidden
33
+ */
34
+ export declare function getIndex(event: any, parent: HTMLElement | null): number;
35
+ /**
36
+ * @hidden
37
+ */
38
+ export declare function checkPropCompatibility(props: GridProps): void;
39
+ /**
40
+ * @hidden
41
+ */
42
+ export declare function mapColumns(columns: Array<{
43
+ parentIndex: number;
44
+ colSpan: number;
45
+ rowSpan: number;
46
+ depth: number;
47
+ kFirst?: boolean;
48
+ children: any[];
49
+ width?: string | number;
50
+ locked?: boolean;
51
+ index: number;
52
+ left: number;
53
+ right: number;
54
+ rightBorder: boolean;
55
+ }>): number[][];
56
+ /**
57
+ * @hidden
58
+ */
59
+ export declare function readColumns(newColumns: GridColumnProps[] | null | undefined, oldColumns: GridColumnProps[], idInfo: {
60
+ prevId: number;
61
+ idPrefix: string;
62
+ }, depth?: number): ExtendedColumnProps[];
63
+ /**
64
+ * @hidden
65
+ */
66
+ export declare function autoGenerateColumns(data: any[] | DataResult | null | undefined, group: GroupDescriptor[] | undefined, expandField: string | undefined, idInfo: {
67
+ prevId: number;
68
+ idPrefix: string;
69
+ }): ExtendedColumnProps[];
70
+ /**
71
+ * @hidden
72
+ */
73
+ export declare const footerColumns: (columns: ExtendedColumnProps[]) => ExtendedColumnProps[];
74
+ /**
75
+ * @hidden
76
+ */
77
+ export declare const parsers: {
78
+ number: (value: any, intl: IntlService, format?: string) => number;
79
+ date: (value: any, intl: IntlService, format?: string) => Date;
80
+ boolean: (value: any) => any;
81
+ string: (value: any) => any;
82
+ default: (value: any) => any;
83
+ };
84
+ /**
85
+ * @hidden
86
+ */
87
+ export declare function applyExpandedState(sdata: DataResult, collapsed: any[], uniqueField: string): DataResult;
88
+ /**
89
+ * @hidden
90
+ */
91
+ export declare function groupedFirstItemValue(item: any, field: string): any;
@@ -0,0 +1,393 @@
1
+ import { tableKeyboardNavigationTools as navigationTools } from '@progress/kendo-vue-data-tools';
2
+ import { canUseDOM } from '@progress/kendo-vue-common';
3
+ var STRING = 'string';
4
+ /**
5
+ * @hidden
6
+ */
7
+ export function getNestedValue(fieldName, dataItem) {
8
+ var path = fieldName.split('.');
9
+ var data = dataItem;
10
+ path.forEach(function (p) {
11
+ data = data ? data[p] : undefined;
12
+ });
13
+ return data;
14
+ }
15
+ /**
16
+ * @hidden
17
+ */
18
+ export function flatData(output, input, footer, dataIndex, groupDefined, field, level) {
19
+ if (level === void 0) { level = 0; }
20
+ var maxLevel = level;
21
+ for (var i = 0; i < input.length; i++) {
22
+ if (!groupDefined || input[i].value === undefined || input[i].items === undefined) {
23
+ output[output.length] = {
24
+ dataIndex: ++dataIndex.index,
25
+ dataItem: input[i],
26
+ rowType: 'data',
27
+ level: level,
28
+ expanded: field === undefined || getNestedValue(field, input[i])
29
+ };
30
+ continue;
31
+ }
32
+ maxLevel = Math.max(maxLevel, level + 1);
33
+ var expanded = field === undefined ||
34
+ getNestedValue(field, input[i]) === undefined ||
35
+ getNestedValue(field, input[i]);
36
+ // header
37
+ output[output.length] = {
38
+ dataIndex: -1,
39
+ dataItem: input[i],
40
+ level: level,
41
+ rowType: 'groupHeader',
42
+ expanded: expanded
43
+ };
44
+ // children
45
+ if (expanded) {
46
+ maxLevel = Math.max(flatData(output, input[i].items, footer, dataIndex, groupDefined, field, level + 1), maxLevel);
47
+ }
48
+ // footer
49
+ if (footer === 'always' || (expanded && footer === 'visible')) {
50
+ output[output.length] = {
51
+ dataIndex: -1,
52
+ dataItem: input[i],
53
+ rowType: 'groupFooter',
54
+ level: level,
55
+ expanded: expanded
56
+ };
57
+ }
58
+ }
59
+ return maxLevel;
60
+ }
61
+ /**
62
+ * @hidden
63
+ */
64
+ export function isRtl(element) {
65
+ return element && (getComputedStyle(element).direction === 'rtl') || false;
66
+ }
67
+ /**
68
+ * @hidden
69
+ */
70
+ export function getIndex(event, parent) {
71
+ if (!parent || !event || !event.originalEvent || !canUseDOM) {
72
+ return -1;
73
+ }
74
+ var target = document.elementFromPoint(event.clientX, event.originalEvent.clientY);
75
+ while (target && target.parentElement !== parent) {
76
+ target = target.parentElement;
77
+ }
78
+ var children = parent.children;
79
+ for (var i = 0; i < children.length; i++) {
80
+ if (children[i] === target) {
81
+ return i;
82
+ }
83
+ }
84
+ return -1;
85
+ }
86
+ var eventKeys = [
87
+ 'sortChange',
88
+ 'filterChange',
89
+ 'groupChange',
90
+ 'pageChange',
91
+ 'expandChange',
92
+ 'selectionChange',
93
+ 'headerSelectionChange',
94
+ 'rowClick',
95
+ 'itemChange',
96
+ 'dataStateChange',
97
+ 'columnResize',
98
+ 'columnReorder'
99
+ ];
100
+ var GridColumnDefaults = {
101
+ filterable: true,
102
+ editable: true,
103
+ sortable: true,
104
+ resizable: true,
105
+ reorderable: true,
106
+ groupable: true
107
+ };
108
+ var deprecatedHandlerMessage = function (oldKey, newKey) { return ("The ".concat(oldKey, " event handler property is deprecated, ") +
109
+ "use https://www.telerik.com/kendo-vue-ui/components/grid/api/GridProps/#toc-".concat(newKey, " instead")); };
110
+ /**
111
+ * @hidden
112
+ */
113
+ export function checkPropCompatibility(props) {
114
+ for (var index = 0; index < eventKeys.length; index++) {
115
+ var eventKey = eventKeys[index];
116
+ if (props[eventKey] !== undefined) {
117
+ var newKey = 'on' + eventKey.charAt(0).toUpperCase() + eventKey.slice(1);
118
+ console.warn(deprecatedHandlerMessage(eventKey, newKey));
119
+ }
120
+ }
121
+ }
122
+ function nextColumn(columns, current) {
123
+ var currentDepth = columns[current].depth;
124
+ var next = null;
125
+ for (var index = current + 1; index < columns.length; index++) {
126
+ if (columns[index].depth === currentDepth) {
127
+ next = columns[index];
128
+ break;
129
+ }
130
+ }
131
+ return next;
132
+ }
133
+ /**
134
+ * @hidden
135
+ */
136
+ export function mapColumns(columns) {
137
+ var columnsMap = [[]];
138
+ var maxDepth = 0;
139
+ // set colspans, get maxdepth
140
+ for (var q = columns.length - 1; q >= 0; q--) {
141
+ maxDepth = Math.max(maxDepth, columns[q].depth);
142
+ columns[q].colSpan = columns[q].colSpan || 1;
143
+ if (columns[q].parentIndex !== -1) {
144
+ columns[columns[q].parentIndex].colSpan =
145
+ (columns[columns[q].parentIndex].colSpan || 0) + columns[q].colSpan;
146
+ }
147
+ }
148
+ var rowSpan = 1;
149
+ // set rowspan, kFirst, index AND create columnsMap
150
+ columns.forEach(function (column, i) {
151
+ columnsMap[column.depth] = columnsMap[column.depth] || [];
152
+ var needKFirst = false;
153
+ if (columnsMap[column.depth].length === 0) {
154
+ if (rowSpan <= 1) {
155
+ rowSpan = 1 + (column.children.length > 0 ? 0 : maxDepth - column.depth);
156
+ }
157
+ else {
158
+ rowSpan--;
159
+ needKFirst = true;
160
+ }
161
+ }
162
+ column.rowSpan = 1 + (column.children.length > 0 ? 0 : maxDepth - column.depth);
163
+ column.kFirst = needKFirst;
164
+ column.index = columnsMap[column.depth].length;
165
+ columnsMap[column.depth].push(i);
166
+ });
167
+ var stickyLeftWidth = new Array(columnsMap.length).fill(0);
168
+ var width = 0;
169
+ // set left AND create stickyLeftWidth
170
+ columns.forEach(function (column) {
171
+ if (column.locked) {
172
+ column.left = stickyLeftWidth[column.depth];
173
+ width = column.width ? parseFloat(column.width.toString()) : 0;
174
+ if (column.children.length === 0) {
175
+ for (var i = column.depth; i < stickyLeftWidth.length; i++) {
176
+ stickyLeftWidth[i] += width;
177
+ }
178
+ }
179
+ else {
180
+ stickyLeftWidth[column.depth] += width;
181
+ }
182
+ }
183
+ });
184
+ var stickyRightWidth = new Array(columnsMap.length).fill(0);
185
+ // set right, rightBorder AND create stickyRightWidth
186
+ for (var i = columns.length - 1; i >= 0; i--) {
187
+ var column = columns[i];
188
+ if (column.locked) {
189
+ column.right = stickyRightWidth[column.depth];
190
+ width = column.width ? parseFloat(column.width.toString()) : 0;
191
+ if (column.children.length === 0) {
192
+ for (var j = column.depth; j < stickyRightWidth.length; j++) {
193
+ stickyRightWidth[j] += width;
194
+ }
195
+ }
196
+ else {
197
+ stickyRightWidth[column.depth] += width;
198
+ }
199
+ var next = nextColumn(columns, i);
200
+ column.rightBorder = !(next && next.locked);
201
+ }
202
+ }
203
+ return columnsMap;
204
+ }
205
+ /**
206
+ * @hidden
207
+ */
208
+ export function readColumns(newColumns, oldColumns, idInfo, depth) {
209
+ if (depth === void 0) { depth = 0; }
210
+ var columns = [];
211
+ var sameLength = (newColumns && newColumns.length) ? newColumns.length === oldColumns.length : false;
212
+ if (!newColumns) {
213
+ return [];
214
+ }
215
+ if (newColumns && newColumns.length === undefined) {
216
+ newColumns = [newColumns];
217
+ }
218
+ // @ts-ignore
219
+ newColumns.forEach(function (columnProps, index) {
220
+ columnProps = columnProps;
221
+ var oldColumn = sameLength ? oldColumns[index] || null : null;
222
+ var notHiddenChildren = columnProps.children ?
223
+ columnProps.children.filter(function (column) { return !column.hidden; }) : columnProps.children;
224
+ var c = readColumns(notHiddenChildren, oldColumn && oldColumn.children || [], idInfo, depth + 1);
225
+ columns.push(Object.assign({ depth: depth }, GridColumnDefaults, (c.length) ? { cell: function () { return null; }, filterCell: function () { return null; } } : {}, oldColumn ? { width: oldColumn.width, orderIndex: oldColumn.orderIndex } : {}, columnProps, {
226
+ id: navigationTools.generateNavigatableId("".concat(idInfo.prevId++), idInfo.idPrefix, 'column'),
227
+ declarationIndex: columns.length,
228
+ children: c,
229
+ rowSpan: 0,
230
+ colSpan: 0,
231
+ isAccessible: true
232
+ }));
233
+ });
234
+ var comparator = function (a, b) {
235
+ return a.orderIndex === b.orderIndex ?
236
+ a.declarationIndex - b.declarationIndex :
237
+ ((a.orderIndex || 0) - (b.orderIndex || 0));
238
+ };
239
+ columns.sort(comparator);
240
+ if (depth === 0) {
241
+ var ret_1 = [];
242
+ var flat_1 = function (cols, pIndex) {
243
+ return cols.forEach(function (c) {
244
+ c.parentIndex = pIndex;
245
+ flat_1(c.children, ret_1.push(c) - 1);
246
+ });
247
+ };
248
+ flat_1(columns, -1);
249
+ return ret_1;
250
+ }
251
+ return columns;
252
+ }
253
+ /**
254
+ * @hidden
255
+ */
256
+ export function autoGenerateColumns(data, group, expandField, idInfo) {
257
+ var propData = [];
258
+ if (Array.isArray(data)) {
259
+ propData = data;
260
+ }
261
+ else if (data) {
262
+ propData = data.data;
263
+ }
264
+ if (!propData.length) {
265
+ console.warn('Kendo Grid autogeneration of columns is only possible if some items are defined when the component is created.');
266
+ }
267
+ var columns = [];
268
+ if (propData.length > 0) {
269
+ var itemForColumnsGen = propData[0];
270
+ if (group) {
271
+ for (var i = 0; i < group.length; i++) {
272
+ itemForColumnsGen = itemForColumnsGen.items && itemForColumnsGen.items[0];
273
+ }
274
+ }
275
+ var fields = Object.getOwnPropertyNames(itemForColumnsGen);
276
+ fields.forEach(function (field) {
277
+ if (field !== expandField && field !== '__ob__') {
278
+ columns.push(Object.assign({
279
+ id: navigationTools.generateNavigatableId("".concat(idInfo.prevId++), idInfo.idPrefix, 'column'),
280
+ declarationIndex: -1,
281
+ parentIndex: -1,
282
+ depth: 0,
283
+ colSpan: 0,
284
+ rowSpan: 0,
285
+ index: 0,
286
+ left: 0,
287
+ right: 0,
288
+ children: [],
289
+ rightBorder: false,
290
+ ariaColumnIndex: 0,
291
+ isAccessible: true
292
+ }, GridColumnDefaults, { field: field }));
293
+ }
294
+ });
295
+ }
296
+ return columns;
297
+ }
298
+ var hasParentFooterCell = function (columns, column) {
299
+ var parent = columns[column.parentIndex];
300
+ while (parent) {
301
+ if (parent.footerCell) {
302
+ return true;
303
+ }
304
+ parent = columns[parent.parentIndex];
305
+ }
306
+ return false;
307
+ };
308
+ /**
309
+ * @hidden
310
+ */
311
+ export var footerColumns = function (columns) {
312
+ return columns.filter(function (column) {
313
+ if (hasParentFooterCell(columns, column)) {
314
+ return false;
315
+ }
316
+ return Boolean(column.footerCell) || !(column.children && column.children.length > 0);
317
+ });
318
+ };
319
+ /**
320
+ * @hidden
321
+ */
322
+ export var parsers = {
323
+ 'number': function (value, intl, format) {
324
+ if (typeof value === STRING && value.toLowerCase() === 'null') {
325
+ return null;
326
+ }
327
+ return intl.parseNumber(value, format);
328
+ },
329
+ 'date': function (value, intl, format) {
330
+ if (typeof value === STRING && value.toLowerCase() === 'null') {
331
+ return null;
332
+ }
333
+ return intl.parseDate(value, format);
334
+ },
335
+ 'boolean': function (value) {
336
+ if (typeof value === STRING) {
337
+ if (value.toLowerCase() === 'null') {
338
+ return null;
339
+ }
340
+ else {
341
+ return value.toLowerCase() === 'true';
342
+ }
343
+ }
344
+ return value != null ? !!value : value;
345
+ },
346
+ 'string': function (value) {
347
+ if (typeof value === STRING && value.toLowerCase() === 'null') {
348
+ return null;
349
+ }
350
+ return value != null ? (value + '') : value;
351
+ },
352
+ 'default': function (value) {
353
+ return value;
354
+ }
355
+ };
356
+ /**
357
+ * @hidden
358
+ */
359
+ function updateItemsExpanded(items, collapsed, uniqueField, level) {
360
+ items.forEach(function (di) {
361
+ di.expanded = collapsed[level] && !collapsed[level].includes(groupedFirstItemValue(di, uniqueField));
362
+ if (di.items && di.items.length) {
363
+ di.items = updateItemsExpanded(di.items, collapsed, uniqueField, level + 1);
364
+ }
365
+ });
366
+ return items;
367
+ }
368
+ /**
369
+ * @hidden
370
+ */
371
+ export function applyExpandedState(sdata, collapsed, uniqueField) {
372
+ if (collapsed && collapsed.length) {
373
+ sdata.data.forEach(function (di) {
374
+ di.expanded = di.expanded !== undefined
375
+ ? di.expanded
376
+ : collapsed[0] && !collapsed[0].includes(groupedFirstItemValue(di, uniqueField));
377
+ if (di.items && di.items.length) {
378
+ di.items = updateItemsExpanded(di.items, collapsed, uniqueField, 1);
379
+ }
380
+ });
381
+ }
382
+ return sdata;
383
+ }
384
+ /**
385
+ * @hidden
386
+ */
387
+ export function groupedFirstItemValue(item, field) {
388
+ var resultItem = item;
389
+ while (resultItem.items && resultItem.items.length) {
390
+ resultItem = resultItem.items[0];
391
+ }
392
+ return field ? resultItem[field] : item.value;
393
+ }