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

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 +14 -14
@@ -0,0 +1,43 @@
1
+ import { DefineComponent, RecordPropsDefinition, ComponentOptions, Vue2type } from '../additionalTypes';
2
+ declare type DefaultData<V> = object | ((this: V) => {});
3
+ declare type DefaultMethods<V> = {
4
+ [key: string]: (this: V, ...args: any[]) => any;
5
+ };
6
+ /**
7
+ * @hidden
8
+ */
9
+ export interface ColumnDraggableProps {
10
+ key?: any;
11
+ onPressHandler?: (draggableEvent: any, element: HTMLElement) => void;
12
+ onDragHandler?: (draggableEvent: any, element: HTMLElement) => void;
13
+ onReleaseHandler?: (draggableEvent: any) => void;
14
+ }
15
+ /**
16
+ * @hidden
17
+ */
18
+ export interface ColumnDraggableMethods extends Vue2type {
19
+ onPress: (event: any) => void;
20
+ onDrag: (event: any) => void;
21
+ onRelease: (event: any) => void;
22
+ }
23
+ /**
24
+ * @hidden
25
+ */
26
+ export interface ColumnDraggableState {
27
+ element: any | null;
28
+ draggable: any;
29
+ }
30
+ /**
31
+ * @hidden
32
+ */
33
+ export interface ColumnDraggableAll extends ColumnDraggableMethods, ColumnDraggableState {
34
+ }
35
+ /**
36
+ * @hidden
37
+ */
38
+ declare let ColumnDraggableVue2: ComponentOptions<Vue2type, DefaultData<{}>, DefaultMethods<ColumnDraggableAll>, {}, RecordPropsDefinition<ColumnDraggableProps>>;
39
+ /**
40
+ * @hidden
41
+ */
42
+ declare const ColumnDraggable: DefineComponent<ColumnDraggableProps, any, {}, {}, ColumnDraggableMethods, {}, {}, {}, string, ColumnDraggableProps, ColumnDraggableProps, {}>;
43
+ export { ColumnDraggable, ColumnDraggableVue2 };
@@ -0,0 +1,73 @@
1
+ // @ts-ignore
2
+ import * as Vue from 'vue';
3
+ var allVue = Vue;
4
+ var gh = allVue.h;
5
+ var isV3 = allVue.version && allVue.version[0] === '3';
6
+ import { getDefaultSlots, Draggable } from '@progress/kendo-vue-common';
7
+ /**
8
+ * @hidden
9
+ */
10
+
11
+ var ColumnDraggableVue2 = {
12
+ mounted: function mounted() {
13
+ if (this.$el) {
14
+ this.draggable = this.$refs.draggable;
15
+ }
16
+ },
17
+ methods: {
18
+ onPress: function onPress(event) {
19
+ var element = this.draggable && this.draggable.element;
20
+
21
+ if (element) {
22
+ this.$emit('pressHandler', event, element);
23
+ }
24
+ },
25
+ onDrag: function onDrag(event) {
26
+ var element = this.draggable && this.draggable.element;
27
+
28
+ if (element) {
29
+ this.$emit('dragHandler', event, element);
30
+ }
31
+ },
32
+ onRelease: function onRelease(event) {
33
+ var element = this.draggable && this.draggable.element;
34
+
35
+ if (element) {
36
+ this.$emit('releaseHandler', event, element);
37
+ }
38
+ }
39
+ },
40
+ // @ts-ignore
41
+ setup: !isV3 ? undefined : function () {
42
+ var v3 = !!isV3;
43
+ return {
44
+ v3: v3
45
+ };
46
+ },
47
+ // @ts-ignore
48
+ render: function render(createElement) {
49
+ var h = gh || createElement;
50
+ var defaultSlot = getDefaultSlots(this);
51
+ return (// @ts-ignore function children
52
+ h(Draggable, {
53
+ onPress: this.onPress,
54
+ on: this.v3 ? undefined : {
55
+ "press": this.onPress,
56
+ "drag": this.onDrag,
57
+ "release": this.onRelease
58
+ },
59
+ onDrag: this.onDrag,
60
+ onRelease: this.onRelease,
61
+ ref: 'draggable'
62
+ }, this.v3 ? function () {
63
+ return [h("tr", [defaultSlot])];
64
+ } : [h("tr", [defaultSlot])])
65
+ );
66
+ }
67
+ };
68
+ /**
69
+ * @hidden
70
+ */
71
+
72
+ var ColumnDraggable = ColumnDraggableVue2;
73
+ export { ColumnDraggable, ColumnDraggableVue2 };
@@ -0,0 +1,31 @@
1
+ import { ExtendedColumnProps } from '../interfaces/ExtendedColumnProps';
2
+ /**
3
+ * @hidden
4
+ */
5
+ export declare class ColumnResize {
6
+ /**
7
+ * The main `colgroup` of the Grid.
8
+ */
9
+ colGroupMain: any | null;
10
+ /**
11
+ * The header `colgroup` of the Grid, if any.
12
+ */
13
+ colGroupHeader: any | null;
14
+ /**
15
+ * The footer `colgroup` of the Grid (if any).
16
+ */
17
+ colGroupFooter: any | null;
18
+ columns: ExtendedColumnProps[];
19
+ /**
20
+ * The settings for resizing the Grid.
21
+ */
22
+ resizable: boolean;
23
+ onResize: (index: number, newWidth: number, oldWidth: number, originalEvent: any, end: boolean) => void;
24
+ private isRtl;
25
+ constructor(triggerResize: (index: number, newWidth: number, oldWidth: number, originalEvent: any, end: boolean) => void);
26
+ setIsRtl: (isRtl: boolean) => void;
27
+ dragHandler(event: any, column: ExtendedColumnProps, dragCue: HTMLSpanElement, end: boolean): void;
28
+ private fixateInitialWidths;
29
+ private setWidths;
30
+ private updateColElements;
31
+ }
@@ -0,0 +1,126 @@
1
+ /**
2
+ * @hidden
3
+ */
4
+ var ColumnResize = /** @class */ (function () {
5
+ function ColumnResize(triggerResize) {
6
+ var _this = this;
7
+ /**
8
+ * The settings for resizing the Grid.
9
+ */
10
+ this.resizable = false;
11
+ this.isRtl = false;
12
+ this.setIsRtl = function (isRtl) {
13
+ _this.isRtl = isRtl;
14
+ };
15
+ this.onResize = triggerResize;
16
+ this.dragHandler = this.dragHandler.bind(this);
17
+ }
18
+ ColumnResize.prototype.dragHandler = function (event, column, dragCue, end) {
19
+ var e = event.originalEvent;
20
+ if (!end) {
21
+ e.preventDefault();
22
+ e.stopPropagation();
23
+ e.stopImmediatePropagation();
24
+ }
25
+ var tdElement = dragCue.parentElement;
26
+ if (!tdElement || !tdElement.parentElement) {
27
+ return;
28
+ }
29
+ var oldWidth = tdElement.clientWidth;
30
+ var newWidth;
31
+ if (this.isRtl) {
32
+ newWidth = (dragCue.getBoundingClientRect().right - (dragCue.offsetWidth / 2)) - event.clientX;
33
+ newWidth += oldWidth;
34
+ }
35
+ else {
36
+ newWidth = oldWidth + event.clientX - dragCue.getBoundingClientRect().left - (dragCue.offsetWidth / 2);
37
+ }
38
+ if (!end && Math.abs(newWidth - oldWidth) < 1) {
39
+ return;
40
+ }
41
+ this.fixateInitialWidths(tdElement.parentElement.clientWidth);
42
+ this.setWidths(column, Math.floor(newWidth) / oldWidth);
43
+ var index = this.columns.filter(function (c) { return !c.children.length; }).indexOf(column);
44
+ this.onResize(index, oldWidth, newWidth, e, end);
45
+ };
46
+ ColumnResize.prototype.fixateInitialWidths = function (width) {
47
+ var columns = this.columns.filter(function (c) { return !c.children.length; });
48
+ var remainingCount = 0;
49
+ var cols = this.colGroupMain ? this.colGroupMain.children : [];
50
+ for (var i = 0; i < cols.length; i++) {
51
+ if (cols[i].width) {
52
+ width -= parseFloat(cols[i].width);
53
+ }
54
+ else {
55
+ remainingCount++;
56
+ }
57
+ }
58
+ if (remainingCount === 0) {
59
+ return;
60
+ }
61
+ var perCol = Math.floor(width / remainingCount);
62
+ for (var i = 0; i < cols.length; i++) {
63
+ var col = cols[i];
64
+ if (!col.width) {
65
+ col.width = perCol;
66
+ columns[i].width = perCol.toString();
67
+ if (this.colGroupHeader) {
68
+ this.colGroupHeader.children[i].width = perCol;
69
+ }
70
+ if (this.colGroupFooter) {
71
+ this.colGroupFooter.children[i].width = perCol;
72
+ }
73
+ }
74
+ }
75
+ };
76
+ ColumnResize.prototype.setWidths = function (column, coef) {
77
+ var indexInOriginal = this.columns.indexOf(column);
78
+ var toAdjust = [];
79
+ var more = column.children.length;
80
+ for (var i = indexInOriginal + 1; more > 0 && i < this.columns.length; i++, more--) {
81
+ var cc = this.columns[i];
82
+ if (!cc.children.length) {
83
+ toAdjust.push(cc);
84
+ }
85
+ else {
86
+ more += cc.children.length;
87
+ }
88
+ }
89
+ if (toAdjust.length === 0) {
90
+ toAdjust.push(column);
91
+ }
92
+ toAdjust.forEach(function (colToAdjust) {
93
+ var targetWidth = colToAdjust.width ? parseFloat(colToAdjust.width.toString()) * coef : 0;
94
+ var min = colToAdjust.minResizableWidth === undefined ? 10 : colToAdjust.minResizableWidth;
95
+ if (targetWidth < min) {
96
+ targetWidth = min;
97
+ }
98
+ colToAdjust.width = targetWidth;
99
+ });
100
+ this.updateColElements(toAdjust);
101
+ };
102
+ ColumnResize.prototype.updateColElements = function (affectedColumns) {
103
+ var columns = this.columns.filter(function (c) { return !c.children.length; });
104
+ var difference = 1e-10;
105
+ for (var i = 0; i < affectedColumns.length; i++) {
106
+ var colIndex = columns.indexOf(affectedColumns[i]);
107
+ var currentColumnFloatWidth = parseFloat((affectedColumns[i].width || 0).toString());
108
+ difference += currentColumnFloatWidth - Math.floor(currentColumnFloatWidth);
109
+ var currentWidth = Math.floor(currentColumnFloatWidth) + Math.floor(difference);
110
+ difference -= Math.floor(difference);
111
+ if (this.colGroupMain) {
112
+ this.colGroupMain.children[colIndex].width = currentWidth + 'px';
113
+ }
114
+ if (this.colGroupHeader) {
115
+ // static headers
116
+ this.colGroupHeader.children[colIndex].width = currentWidth + 'px';
117
+ }
118
+ if (this.colGroupFooter && this.colGroupFooter.children[colIndex]) {
119
+ // static footers
120
+ this.colGroupFooter.children[colIndex].width = currentWidth + 'px';
121
+ }
122
+ }
123
+ };
124
+ return ColumnResize;
125
+ }());
126
+ export { ColumnResize };
@@ -0,0 +1,40 @@
1
+ import { DefineComponent, RecordPropsDefinition, ComponentOptions, Vue2type } from '../additionalTypes';
2
+ declare type DefaultData<V> = object | ((this: V) => {});
3
+ declare type DefaultMethods<V> = {
4
+ [key: string]: (this: V, ...args: any[]) => any;
5
+ };
6
+ /**
7
+ * @hidden
8
+ */
9
+ export interface ColumnResizerProps {
10
+ key?: number;
11
+ resize: (event: any, dragCue: Element, end: boolean) => void;
12
+ }
13
+ /**
14
+ * @hidden
15
+ */
16
+ export interface ColumnResizerMethods extends Vue2type {
17
+ drag: (event: any) => void;
18
+ release: (event: any) => void;
19
+ }
20
+ /**
21
+ * @hidden
22
+ */
23
+ export interface ColumnResizerState {
24
+ element: any | null;
25
+ draggable: any;
26
+ }
27
+ /**
28
+ * @hidden
29
+ */
30
+ export interface ColumnResizerAll extends ColumnResizerMethods, ColumnResizerState {
31
+ }
32
+ /**
33
+ * @hidden
34
+ */
35
+ declare let ColumnResizerVue2: ComponentOptions<Vue2type, DefaultData<{}>, DefaultMethods<ColumnResizerAll>, {}, RecordPropsDefinition<ColumnResizerProps>>;
36
+ /**
37
+ * @hidden
38
+ */
39
+ declare const ColumnResizer: DefineComponent<ColumnResizerProps, any, {}, {}, ColumnResizerMethods, {}, {}, {}, string, ColumnResizerProps, ColumnResizerProps, {}>;
40
+ export { ColumnResizer, ColumnResizerVue2 };
@@ -0,0 +1,89 @@
1
+ // @ts-ignore
2
+ import * as Vue from 'vue';
3
+ var allVue = Vue;
4
+ var gh = allVue.h;
5
+ var isV3 = allVue.version && allVue.version[0] === '3';
6
+ import { Draggable } from '@progress/kendo-vue-common';
7
+ /**
8
+ * @hidden
9
+ */
10
+
11
+ var ColumnResizerVue2 = {
12
+ mounted: function mounted() {
13
+ if (this.$el) {
14
+ this.draggable = this.$refs.draggable;
15
+ }
16
+ },
17
+ methods: {
18
+ drag: function drag(event) {
19
+ var element = this.draggable && this.draggable.element;
20
+
21
+ if (element) {
22
+ this.$emit('resize', event, element, false);
23
+ }
24
+ },
25
+ release: function release(event) {
26
+ var element = this.draggable && this.draggable.element;
27
+
28
+ if (element) {
29
+ this.$emit('resize', event, element, true);
30
+ }
31
+ }
32
+ },
33
+ // @ts-ignore
34
+ setup: !isV3 ? undefined : function () {
35
+ var v3 = !!isV3;
36
+ return {
37
+ v3: v3
38
+ };
39
+ },
40
+ // @ts-ignore
41
+ render: function render(createElement) {
42
+ var _this = this;
43
+
44
+ var h = gh || createElement;
45
+ var resizeStyle = {
46
+ // TODO: move to theme
47
+ cursor: 'col-resize',
48
+ display: 'block',
49
+ height: '1000%',
50
+ position: 'absolute',
51
+ // [this.props.isRtl ? 'left' : 'right']: 0,
52
+ top: 0,
53
+ width: '.5em'
54
+ };
55
+ return (// @ts-ignore function children
56
+ h(Draggable, {
57
+ onDrag: this.drag,
58
+ on: this.v3 ? undefined : {
59
+ "drag": this.drag,
60
+ "release": this.release
61
+ },
62
+ onRelease: this.release,
63
+ ref: 'draggable'
64
+ }, this.v3 ? function () {
65
+ return [h("span", {
66
+ "class": "k-column-resizer",
67
+ draggable: false,
68
+ attrs: _this.v3 ? undefined : {
69
+ draggable: false
70
+ },
71
+ style: resizeStyle
72
+ })];
73
+ } : [h("span", {
74
+ "class": "k-column-resizer",
75
+ draggable: false,
76
+ attrs: _this.v3 ? undefined : {
77
+ draggable: false
78
+ },
79
+ style: resizeStyle
80
+ })])
81
+ );
82
+ }
83
+ };
84
+ /**
85
+ * @hidden
86
+ */
87
+
88
+ var ColumnResizer = ColumnResizerVue2;
89
+ export { ColumnResizer, ColumnResizerVue2 };
@@ -0,0 +1,35 @@
1
+ import { ExtendedColumnProps } from '../interfaces/ExtendedColumnProps';
2
+ /**
3
+ * @hidden
4
+ */
5
+ export declare type handler = (prevIndex: number, nextIndex: number, event: any) => void;
6
+ /**
7
+ * @hidden
8
+ */
9
+ export declare class CommonDragLogic {
10
+ columns: ExtendedColumnProps[];
11
+ reorderable: boolean;
12
+ groupable: boolean;
13
+ dropElementClue: any | null;
14
+ dragElementClue: any | null;
15
+ private startColumn;
16
+ private startGroup;
17
+ private currentColumn;
18
+ private currentGroup;
19
+ private columnReorder;
20
+ private groupReorder;
21
+ private columnToGroup;
22
+ private groupPanelDivElement;
23
+ constructor(columnReorder: handler, groupReorder: handler, columnToGroup: handler);
24
+ refGroupPanelDiv: (e: any | null) => void;
25
+ refDropElementClue: (e: any | null) => void;
26
+ refDragElementClue: (e: any | null) => void;
27
+ pressHandler: (event: any, element: HTMLElement) => void;
28
+ dragHandler: (event: any, element: HTMLElement) => void;
29
+ releaseHandler: (event: any) => void;
30
+ private getColumnIndex;
31
+ private getGroupIndex;
32
+ private isValid;
33
+ private updateDragElementClue;
34
+ private updateDropElementClue;
35
+ }
@@ -0,0 +1,177 @@
1
+ import { getIndex } from '../utils.js';
2
+ import { canUseDOM } from '@progress/kendo-vue-common';
3
+ /**
4
+ * @hidden
5
+ */
6
+ var CommonDragLogic = /** @class */ (function () {
7
+ function CommonDragLogic(columnReorder, groupReorder, columnToGroup) {
8
+ var _this = this;
9
+ this.reorderable = false;
10
+ this.groupable = false;
11
+ this.dropElementClue = null;
12
+ this.dragElementClue = null;
13
+ this.startColumn = -1;
14
+ this.startGroup = -1;
15
+ this.currentColumn = -1;
16
+ this.currentGroup = -1;
17
+ this.groupPanelDivElement = null;
18
+ this.refGroupPanelDiv = function (e) {
19
+ _this.groupPanelDivElement = e;
20
+ };
21
+ this.refDropElementClue = function (e) {
22
+ _this.dropElementClue = e;
23
+ if (_this.dropElementClue && canUseDOM) {
24
+ document.body.appendChild(_this.dropElementClue.$el);
25
+ }
26
+ };
27
+ this.refDragElementClue = function (e) {
28
+ _this.dragElementClue = e;
29
+ if (_this.dragElementClue && canUseDOM) {
30
+ document.body.appendChild(_this.dragElementClue.$el);
31
+ }
32
+ };
33
+ this.pressHandler = function (event, element) {
34
+ if (!event.isTouch) {
35
+ event.originalEvent.preventDefault();
36
+ }
37
+ var startColumn = _this.getColumnIndex(event, element);
38
+ _this.startGroup = _this.getGroupIndex(event);
39
+ if (startColumn >= 0) {
40
+ var col = _this.columns[startColumn];
41
+ if (col.reorderable && _this.reorderable || col.groupable && _this.groupable) {
42
+ _this.startColumn = startColumn;
43
+ }
44
+ }
45
+ };
46
+ this.dragHandler = function (event, element) {
47
+ if (!event.isTouch) {
48
+ event.originalEvent.preventDefault();
49
+ }
50
+ event.originalEvent.stopPropagation();
51
+ if (_this.startColumn === -1 && _this.startGroup === -1) {
52
+ return;
53
+ }
54
+ _this.currentColumn = _this.getColumnIndex(event, element);
55
+ _this.currentGroup = _this.getGroupIndex(event);
56
+ if (_this.groupPanelDivElement && _this.startGroup >= 0) {
57
+ _this.currentGroup = Math.min(_this.currentGroup, _this.groupPanelDivElement.children.length - 2);
58
+ }
59
+ var invalidIndex = !_this.isValid();
60
+ if (invalidIndex) {
61
+ _this.currentColumn = -1;
62
+ _this.currentGroup = -1;
63
+ }
64
+ var targetElement = (_this.currentColumn >= 0) ?
65
+ element.children[_this.columns[_this.currentColumn].index] :
66
+ _this.groupPanelDivElement && _this.groupPanelDivElement.children[_this.currentGroup];
67
+ _this.updateDragElementClue(event, element, targetElement, invalidIndex);
68
+ _this.updateDropElementClue(event, element, targetElement, invalidIndex);
69
+ };
70
+ this.releaseHandler = function (event) {
71
+ var prevColumnIndex = _this.startColumn;
72
+ var nextColumnIndex = _this.currentColumn;
73
+ var prevGroupIndex = _this.startGroup;
74
+ var nextGroupIndex = _this.currentGroup;
75
+ if (_this.dropElementClue) {
76
+ _this.dropElementClue.visible = false;
77
+ }
78
+ if (_this.dragElementClue) {
79
+ _this.dragElementClue.visible = false;
80
+ }
81
+ var isValid = _this.isValid();
82
+ _this.startColumn = _this.startGroup = _this.currentColumn = _this.currentGroup = -1;
83
+ if (!isValid) {
84
+ return;
85
+ }
86
+ if (prevColumnIndex >= 0 && nextColumnIndex >= 0) {
87
+ _this.columnReorder(prevColumnIndex, nextColumnIndex, event.originalEvent);
88
+ }
89
+ else if (prevGroupIndex >= 0 && nextGroupIndex >= 0) {
90
+ _this.groupReorder(prevGroupIndex, nextGroupIndex, event.originalEvent);
91
+ }
92
+ else if (prevColumnIndex >= 0 && nextGroupIndex >= 0) {
93
+ _this.columnToGroup(prevColumnIndex, nextGroupIndex, event.originalEvent);
94
+ }
95
+ };
96
+ this.columnReorder = columnReorder;
97
+ this.groupReorder = groupReorder;
98
+ this.columnToGroup = columnToGroup;
99
+ }
100
+ CommonDragLogic.prototype.getColumnIndex = function (event, parent) {
101
+ if (!parent || (parent.parentElement === this.groupPanelDivElement)) {
102
+ return -1;
103
+ }
104
+ var index = getIndex(event, parent);
105
+ if (index === -1) {
106
+ return -1;
107
+ }
108
+ var _loop_1 = function (i) {
109
+ if (parent.parentNode.children[i] === parent) {
110
+ return { value: this_1.columns.findIndex(function (c) { return ((c.index === index) && (c.depth === i)); }) };
111
+ }
112
+ };
113
+ var this_1 = this;
114
+ for (var i = 0; i < parent.parentNode.children.length; i++) {
115
+ var state_1 = _loop_1(i);
116
+ if (typeof state_1 === "object")
117
+ return state_1.value;
118
+ }
119
+ return -1;
120
+ };
121
+ CommonDragLogic.prototype.getGroupIndex = function (event) {
122
+ return getIndex(event, this.groupPanelDivElement);
123
+ };
124
+ CommonDragLogic.prototype.isValid = function () {
125
+ if (this.startGroup >= 0) {
126
+ // group can be moved into group only
127
+ return this.currentGroup >= 0 && this.currentGroup !== this.startGroup;
128
+ }
129
+ if (this.startColumn === -1) {
130
+ return false;
131
+ }
132
+ if (this.currentGroup >= 0) {
133
+ // column to group is possible
134
+ return this.columns[this.startColumn].groupable === true && this.groupable === true;
135
+ }
136
+ // reorder is possible
137
+ return this.reorderable === true &&
138
+ this.currentColumn >= 0 &&
139
+ this.currentColumn !== this.startColumn &&
140
+ this.columns[this.startColumn].reorderable === true &&
141
+ this.columns[this.currentColumn].parentIndex === this.columns[this.startColumn].parentIndex;
142
+ };
143
+ CommonDragLogic.prototype.updateDragElementClue = function (event, element, targetElement, invalidIndex) {
144
+ if (!this.dragElementClue) {
145
+ return;
146
+ }
147
+ var innerText = this.startColumn >= 0 ?
148
+ element.children[this.columns[this.startColumn].index].innerText :
149
+ element.innerText;
150
+ this.dragElementClue.visible = true;
151
+ this.dragElementClue.top = (event.pageY + 10);
152
+ this.dragElementClue.left = event.pageX;
153
+ this.dragElementClue.innerText = innerText;
154
+ this.dragElementClue.status = (invalidIndex || !targetElement) ? 'k-i-cancel' : 'k-i-add';
155
+ };
156
+ CommonDragLogic.prototype.updateDropElementClue = function (event, element, targetElement, invalidIndex) {
157
+ if (!this.dropElementClue) {
158
+ return;
159
+ }
160
+ if (invalidIndex || !targetElement) {
161
+ this.dropElementClue.visible = false;
162
+ return;
163
+ }
164
+ var rect = targetElement.getBoundingClientRect();
165
+ var left = rect.left + event.pageX - event.clientX - 6;
166
+ if (this.currentColumn > this.startColumn || this.currentGroup > this.startGroup && this.startGroup !== -1) {
167
+ left += rect.width;
168
+ }
169
+ var top = rect.top + event.pageY - event.clientY;
170
+ this.dropElementClue.visible = true;
171
+ this.dropElementClue.top = top;
172
+ this.dropElementClue.left = left;
173
+ this.dropElementClue.height = (this.currentColumn >= 0) ? element.clientHeight : rect.height;
174
+ };
175
+ return CommonDragLogic;
176
+ }());
177
+ export { CommonDragLogic };
@@ -0,0 +1,25 @@
1
+ import { DefineComponent, RecordPropsDefinition, ComponentOptions, Vue2type } from '../additionalTypes';
2
+ declare type DefaultData<V> = object | ((this: V) => DragClueData);
3
+ declare type DefaultMethods<V> = {
4
+ [key: string]: (this: V, ...args: any[]) => any;
5
+ };
6
+ /**
7
+ * @hidden
8
+ */
9
+ export interface DragClueData extends Vue2type {
10
+ ref?: string;
11
+ visible?: boolean;
12
+ top?: number;
13
+ left?: number;
14
+ innerText?: string;
15
+ status?: 'k-i-cancel' | 'k-i-add';
16
+ }
17
+ /**
18
+ * @hidden
19
+ */
20
+ declare let DragClueVue2: ComponentOptions<Vue2type, DefaultData<DragClueData>, DefaultMethods<{}>, {}, RecordPropsDefinition<{}>>;
21
+ /**
22
+ * @hidden
23
+ */
24
+ declare const DragClue: DefineComponent<{}, any, DragClueData, {}, {}, {}, {}, {}, string, {}, {}, {}>;
25
+ export { DragClue, DragClueVue2 };
@@ -0,0 +1,52 @@
1
+ // @ts-ignore
2
+ import * as Vue from 'vue';
3
+ var allVue = Vue;
4
+ var gh = allVue.h;
5
+ var isV3 = allVue.version && allVue.version[0] === '3';
6
+ /**
7
+ * @hidden
8
+ */
9
+
10
+ var DragClueVue2 = {
11
+ data: function data() {
12
+ return {
13
+ visible: false,
14
+ top: 0,
15
+ left: 0,
16
+ innerText: '',
17
+ status: 'k-i-cancel'
18
+ };
19
+ },
20
+ // @ts-ignore
21
+ setup: !isV3 ? undefined : function () {
22
+ var v3 = !!isV3;
23
+ return {
24
+ v3: v3
25
+ };
26
+ },
27
+ // @ts-ignore
28
+ render: function render(createElement) {
29
+ var h = gh || createElement;
30
+ return this.visible && h("div", {
31
+ "class": "k-header k-drag-clue",
32
+ style: {
33
+ display: 'block',
34
+ position: 'absolute',
35
+ zIndex: 20000,
36
+ padding: '8px 12px',
37
+ top: this.top + 'px',
38
+ left: this.left + 'px'
39
+ }
40
+ }, [h("span", {
41
+ "class": 'k-icon k-drag-status ' + this.status + ' k-icon-with-modifier'
42
+ }, [h("span", {
43
+ "class": "k-icon k-icon-modifier"
44
+ })]), this.innerText]);
45
+ }
46
+ };
47
+ /**
48
+ * @hidden
49
+ */
50
+
51
+ var DragClue = DragClueVue2;
52
+ export { DragClue, DragClueVue2 };