@revolist/revogrid 4.4.0-next.2 → 4.4.0-next.21

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 (243) hide show
  1. package/custom-element/columnService.js +1 -1
  2. package/custom-element/consts.js +2 -1
  3. package/custom-element/consts.js.map +1 -1
  4. package/custom-element/localScrollService.js +1 -1
  5. package/custom-element/localScrollService.js.map +1 -1
  6. package/custom-element/revo-grid.js +163 -97
  7. package/custom-element/revo-grid.js.map +1 -1
  8. package/custom-element/revogr-clipboard.js +24 -5
  9. package/custom-element/revogr-clipboard.js.map +1 -1
  10. package/custom-element/revogr-edit2.js +12 -6
  11. package/custom-element/revogr-edit2.js.map +1 -1
  12. package/custom-element/revogr-focus2.js +1 -1
  13. package/custom-element/revogr-focus2.js.map +1 -1
  14. package/custom-element/revogr-header2.js +25 -11
  15. package/custom-element/revogr-header2.js.map +1 -1
  16. package/custom-element/revogr-overlay-selection2.js +99 -32
  17. package/custom-element/revogr-overlay-selection2.js.map +1 -1
  18. package/custom-element/revogr-row-headers2.js +1 -2
  19. package/custom-element/revogr-row-headers2.js.map +1 -1
  20. package/custom-element/revogr-viewport-scroll2.js +39 -6
  21. package/custom-element/revogr-viewport-scroll2.js.map +1 -1
  22. package/dist/cjs/{debounce-525dd66c.js → debounce-f50730b6.js} +1 -38
  23. package/dist/cjs/debounce-f50730b6.js.map +1 -0
  24. package/dist/cjs/dispatcher-20520c70.js +21 -0
  25. package/dist/cjs/dispatcher-20520c70.js.map +1 -0
  26. package/dist/cjs/events-030618fc.js +459 -0
  27. package/dist/cjs/events-030618fc.js.map +1 -0
  28. package/dist/cjs/filter.button-6badec7a.js +44 -0
  29. package/dist/cjs/filter.button-6badec7a.js.map +1 -0
  30. package/dist/cjs/{index-aad39b7b.js → index-ee2ef5ae.js} +96 -36
  31. package/dist/cjs/index-ee2ef5ae.js.map +1 -0
  32. package/dist/cjs/index-effc94b9.js +3944 -0
  33. package/dist/cjs/index-effc94b9.js.map +1 -0
  34. package/dist/cjs/isString-3dde8d95.js +38 -0
  35. package/dist/cjs/isString-3dde8d95.js.map +1 -0
  36. package/dist/cjs/keyCodes.utils-d665ebed.js +271 -0
  37. package/dist/cjs/keyCodes.utils-d665ebed.js.map +1 -0
  38. package/dist/cjs/loader.cjs.js +3 -3
  39. package/dist/cjs/loader.cjs.js.map +1 -1
  40. package/dist/cjs/localScrollService-a81823c5.js +403 -0
  41. package/dist/cjs/localScrollService-a81823c5.js.map +1 -0
  42. package/dist/cjs/revo-grid.cjs.entry.js +3858 -0
  43. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -0
  44. package/dist/cjs/revo-grid.cjs.js +3 -3
  45. package/dist/cjs/revo-grid.cjs.js.map +1 -1
  46. package/dist/cjs/revogr-clipboard.cjs.entry.js +24 -6
  47. package/dist/cjs/revogr-clipboard.cjs.entry.js.map +1 -1
  48. package/dist/cjs/revogr-data_3.cjs.entry.js +1138 -0
  49. package/dist/cjs/revogr-data_3.cjs.entry.js.map +1 -0
  50. package/dist/cjs/revogr-edit_2.cjs.entry.js +325 -0
  51. package/dist/cjs/revogr-edit_2.cjs.entry.js.map +1 -0
  52. package/dist/cjs/revogr-filter-panel.cjs.entry.js +6 -5
  53. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
  54. package/dist/cjs/revogr-focus_5.cjs.entry.js +1231 -0
  55. package/dist/cjs/revogr-focus_5.cjs.entry.js.map +1 -0
  56. package/dist/cjs/{revo-grid_11.cjs.entry.js → viewport.helpers-70ccec8f.js} +13978 -25269
  57. package/dist/cjs/viewport.helpers-70ccec8f.js.map +1 -0
  58. package/dist/collection/collection-manifest.json +1 -1
  59. package/dist/collection/components/clipboard/revogr-clipboard.d.ts +6 -2
  60. package/dist/collection/components/clipboard/revogr-clipboard.js +46 -5
  61. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -1
  62. package/dist/collection/components/header/headerCellRenderer.d.ts +2 -1
  63. package/dist/collection/components/header/headerCellRenderer.js +1 -1
  64. package/dist/collection/components/header/headerCellRenderer.js.map +1 -1
  65. package/dist/collection/components/header/headerRenderer.d.ts +2 -2
  66. package/dist/collection/components/header/headerRenderer.js +1 -1
  67. package/dist/collection/components/header/headerRenderer.js.map +1 -1
  68. package/dist/collection/components/header/revogr-header.d.ts +15 -1
  69. package/dist/collection/components/header/revogr-header.js +34 -8
  70. package/dist/collection/components/header/revogr-header.js.map +1 -1
  71. package/dist/collection/components/overlay/autofill.service.d.ts +7 -3
  72. package/dist/collection/components/overlay/autofill.service.js +32 -12
  73. package/dist/collection/components/overlay/autofill.service.js.map +1 -1
  74. package/dist/collection/components/overlay/clipboard.service.d.ts +1 -1
  75. package/dist/collection/components/overlay/clipboard.service.js +2 -2
  76. package/dist/collection/components/overlay/clipboard.service.js.map +1 -1
  77. package/dist/collection/components/overlay/keyboard.service.js +2 -6
  78. package/dist/collection/components/overlay/keyboard.service.js.map +1 -1
  79. package/dist/collection/components/overlay/revogr-edit.d.ts +8 -0
  80. package/dist/collection/components/overlay/revogr-edit.js +34 -9
  81. package/dist/collection/components/overlay/revogr-edit.js.map +1 -1
  82. package/dist/collection/components/overlay/revogr-overlay-selection.d.ts +32 -10
  83. package/dist/collection/components/overlay/revogr-overlay-selection.js +80 -12
  84. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
  85. package/dist/collection/components/overlay/revogr-overlay-style.css +71 -4
  86. package/dist/collection/components/revoGrid/revo-grid.d.ts +15 -4
  87. package/dist/collection/components/revoGrid/revo-grid.js +60 -19
  88. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  89. package/dist/collection/components/revoGrid/viewport.scrolling.service.d.ts +6 -2
  90. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +26 -4
  91. package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -1
  92. package/dist/collection/components/revoGrid/viewport.section.d.ts +3 -2
  93. package/dist/collection/components/revoGrid/viewport.section.js +8 -4
  94. package/dist/collection/components/revoGrid/viewport.section.js.map +1 -1
  95. package/dist/collection/components/revoGrid/viewport.service.d.ts +4 -0
  96. package/dist/collection/components/revoGrid/viewport.service.js +15 -3
  97. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -1
  98. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -1
  99. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +3 -0
  100. package/dist/collection/components/scroll/revogr-viewport-scroll.d.ts +16 -5
  101. package/dist/collection/components/scroll/revogr-viewport-scroll.js +64 -9
  102. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -1
  103. package/dist/collection/components/selectionFocus/revogr-focus-style.css +1 -1
  104. package/dist/collection/components.d.ts +110 -6
  105. package/dist/collection/interfaces.d.ts +4 -1
  106. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.d.ts +3 -2
  107. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +2 -2
  108. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -1
  109. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.d.ts +2 -2
  110. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js +1 -1
  111. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -1
  112. package/dist/collection/plugins/sorting/sorting.plugin.d.ts +21 -13
  113. package/dist/collection/plugins/sorting/sorting.plugin.js +77 -70
  114. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
  115. package/dist/collection/serve/controller.js +183 -0
  116. package/dist/collection/services/localScrollService.js +1 -1
  117. package/dist/collection/services/localScrollService.js.map +1 -1
  118. package/dist/collection/services/resizable.directive.d.ts +8 -7
  119. package/dist/collection/services/resizable.directive.js +13 -36
  120. package/dist/collection/services/resizable.directive.js.map +1 -1
  121. package/dist/collection/services/resizable.element.d.ts +4 -0
  122. package/dist/collection/services/resizable.element.js +39 -0
  123. package/dist/collection/services/resizable.element.js.map +1 -0
  124. package/dist/collection/stencil-public-runtime.d.ts +1 -0
  125. package/dist/collection/store/viewPort/viewport.store.js +0 -1
  126. package/dist/collection/store/viewPort/viewport.store.js.map +1 -1
  127. package/dist/collection/utils/consts.d.ts +1 -0
  128. package/dist/collection/utils/consts.js +1 -0
  129. package/dist/collection/utils/consts.js.map +1 -1
  130. package/dist/collection/utils/events.d.ts +2 -1
  131. package/dist/collection/utils/events.js +18 -2
  132. package/dist/collection/utils/events.js.map +1 -1
  133. package/dist/collection/utils/mobile.d.ts +1 -0
  134. package/dist/collection/utils/mobile.js +7 -0
  135. package/dist/collection/utils/mobile.js.map +1 -0
  136. package/dist/esm/{debounce-301fd4d2.js → debounce-820b5a8b.js} +2 -34
  137. package/dist/esm/debounce-820b5a8b.js.map +1 -0
  138. package/dist/esm/dispatcher-9e9c0233.js +19 -0
  139. package/dist/esm/dispatcher-9e9c0233.js.map +1 -0
  140. package/dist/esm/events-31272e5e.js +454 -0
  141. package/dist/esm/events-31272e5e.js.map +1 -0
  142. package/dist/esm/filter.button-21ce90ef.js +38 -0
  143. package/dist/esm/filter.button-21ce90ef.js.map +1 -0
  144. package/dist/esm/{index-5e90b19b.js → index-05947c5f.js} +97 -37
  145. package/dist/esm/index-05947c5f.js.map +1 -0
  146. package/dist/esm/index-728bf6e3.js +3889 -0
  147. package/dist/esm/index-728bf6e3.js.map +1 -0
  148. package/dist/esm/isString-d539060a.js +36 -0
  149. package/dist/esm/isString-d539060a.js.map +1 -0
  150. package/dist/esm/keyCodes.utils-c0064460.js +265 -0
  151. package/dist/esm/keyCodes.utils-c0064460.js.map +1 -0
  152. package/dist/esm/loader.js +4 -4
  153. package/dist/esm/loader.js.map +1 -1
  154. package/dist/esm/localScrollService-884d8952.js +400 -0
  155. package/dist/esm/localScrollService-884d8952.js.map +1 -0
  156. package/dist/esm/revo-grid.entry.js +3854 -0
  157. package/dist/esm/revo-grid.entry.js.map +1 -0
  158. package/dist/esm/revo-grid.js +4 -4
  159. package/dist/esm/revo-grid.js.map +1 -1
  160. package/dist/esm/revogr-clipboard.entry.js +24 -6
  161. package/dist/esm/revogr-clipboard.entry.js.map +1 -1
  162. package/dist/esm/revogr-data_3.entry.js +1132 -0
  163. package/dist/esm/revogr-data_3.entry.js.map +1 -0
  164. package/dist/esm/revogr-edit_2.entry.js +320 -0
  165. package/dist/esm/revogr-edit_2.entry.js.map +1 -0
  166. package/dist/esm/revogr-filter-panel.entry.js +3 -2
  167. package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
  168. package/dist/esm/revogr-focus_5.entry.js +1223 -0
  169. package/dist/esm/revogr-focus_5.entry.js.map +1 -0
  170. package/dist/esm/{revo-grid_11.entry.js → viewport.helpers-c08e729e.js} +13790 -25093
  171. package/dist/esm/viewport.helpers-c08e729e.js.map +1 -0
  172. package/dist/revo-grid/debounce-820b5a8b.js +5 -0
  173. package/dist/revo-grid/debounce-820b5a8b.js.map +1 -0
  174. package/dist/revo-grid/dispatcher-9e9c0233.js +5 -0
  175. package/dist/revo-grid/dispatcher-9e9c0233.js.map +1 -0
  176. package/dist/revo-grid/events-31272e5e.js +5 -0
  177. package/dist/revo-grid/events-31272e5e.js.map +1 -0
  178. package/dist/revo-grid/filter.button-21ce90ef.js +5 -0
  179. package/dist/revo-grid/filter.button-21ce90ef.js.map +1 -0
  180. package/dist/revo-grid/index-05947c5f.js +6 -0
  181. package/dist/revo-grid/index-05947c5f.js.map +1 -0
  182. package/dist/revo-grid/index-728bf6e3.js +5 -0
  183. package/dist/revo-grid/index-728bf6e3.js.map +1 -0
  184. package/dist/revo-grid/isString-d539060a.js +5 -0
  185. package/dist/revo-grid/isString-d539060a.js.map +1 -0
  186. package/dist/revo-grid/keyCodes.utils-c0064460.js +5 -0
  187. package/dist/revo-grid/keyCodes.utils-c0064460.js.map +1 -0
  188. package/dist/revo-grid/localScrollService-884d8952.js +5 -0
  189. package/dist/revo-grid/localScrollService-884d8952.js.map +1 -0
  190. package/dist/revo-grid/revo-grid.entry.js +5 -0
  191. package/dist/revo-grid/revo-grid.entry.js.map +1 -0
  192. package/dist/revo-grid/revo-grid.esm.js +1 -1
  193. package/dist/revo-grid/revo-grid.esm.js.map +1 -1
  194. package/dist/revo-grid/revogr-clipboard.entry.js +1 -1
  195. package/dist/revo-grid/revogr-clipboard.entry.js.map +1 -1
  196. package/dist/revo-grid/revogr-data_3.entry.js +5 -0
  197. package/dist/revo-grid/revogr-data_3.entry.js.map +1 -0
  198. package/dist/revo-grid/revogr-edit_2.entry.js +5 -0
  199. package/dist/revo-grid/revogr-edit_2.entry.js.map +1 -0
  200. package/dist/revo-grid/revogr-filter-panel.entry.js +1 -1
  201. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
  202. package/dist/revo-grid/revogr-focus_5.entry.js +5 -0
  203. package/dist/revo-grid/revogr-focus_5.entry.js.map +1 -0
  204. package/dist/revo-grid/viewport.helpers-c08e729e.js +5 -0
  205. package/dist/revo-grid/viewport.helpers-c08e729e.js.map +1 -0
  206. package/dist/types/components/clipboard/revogr-clipboard.d.ts +6 -2
  207. package/dist/types/components/header/headerCellRenderer.d.ts +2 -1
  208. package/dist/types/components/header/headerRenderer.d.ts +2 -2
  209. package/dist/types/components/header/revogr-header.d.ts +15 -1
  210. package/dist/types/components/overlay/autofill.service.d.ts +7 -3
  211. package/dist/types/components/overlay/clipboard.service.d.ts +1 -1
  212. package/dist/types/components/overlay/revogr-edit.d.ts +8 -0
  213. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +32 -10
  214. package/dist/types/components/revoGrid/revo-grid.d.ts +15 -4
  215. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +6 -2
  216. package/dist/types/components/revoGrid/viewport.section.d.ts +3 -2
  217. package/dist/types/components/revoGrid/viewport.service.d.ts +4 -0
  218. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +16 -5
  219. package/dist/types/components.d.ts +110 -6
  220. package/dist/types/interfaces.d.ts +4 -1
  221. package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +3 -2
  222. package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +2 -2
  223. package/dist/types/plugins/sorting/sorting.plugin.d.ts +21 -13
  224. package/dist/types/services/resizable.directive.d.ts +8 -7
  225. package/dist/types/services/resizable.element.d.ts +4 -0
  226. package/dist/types/stencil-public-runtime.d.ts +1 -0
  227. package/dist/types/utils/consts.d.ts +1 -0
  228. package/dist/types/utils/events.d.ts +2 -1
  229. package/dist/types/utils/mobile.d.ts +1 -0
  230. package/package.json +4 -3
  231. package/dist/cjs/debounce-525dd66c.js.map +0 -1
  232. package/dist/cjs/index-aad39b7b.js.map +0 -1
  233. package/dist/cjs/revo-grid_11.cjs.entry.js.map +0 -1
  234. package/dist/esm/debounce-301fd4d2.js.map +0 -1
  235. package/dist/esm/index-5e90b19b.js.map +0 -1
  236. package/dist/esm/revo-grid_11.entry.js.map +0 -1
  237. package/dist/revo-grid/debounce-301fd4d2.js +0 -5
  238. package/dist/revo-grid/debounce-301fd4d2.js.map +0 -1
  239. package/dist/revo-grid/index-5e90b19b.js +0 -6
  240. package/dist/revo-grid/index-5e90b19b.js.map +0 -1
  241. package/dist/revo-grid/revo-grid_11.entry.js +0 -5
  242. package/dist/revo-grid/revo-grid_11.entry.js.map +0 -1
  243. /package/dist/collection/{utilsExternal/generate-data.js → serve/data.js} +0 -0
@@ -17,6 +17,7 @@ import { ColumnSource, RowSource } from "./components/data/columnService";
17
17
  import { MultiFilterItem, ShowData } from "./plugins/filter/filter.pop";
18
18
  import { LogicFunction } from "./plugins/filter/filter.types";
19
19
  import { DataSourceState, Groups } from "./store/dataSource/data.store";
20
+ import { ResizeProps } from "./services/resizable.directive";
20
21
  import { ViewportData } from "./components/revoGrid/viewport.interfaces";
21
22
  import { ElementScroll } from "./components/revoGrid/viewport.scrolling.service";
22
23
  export { ApplyFocusEvent, BeforeCellRenderEvent, DragStartEvent, Edition, FocusRenderEvent, Observable, RevoGrid, RevoPlugin, Selection, ThemeSpace } from "./interfaces";
@@ -31,6 +32,7 @@ export { ColumnSource, RowSource } from "./components/data/columnService";
31
32
  export { MultiFilterItem, ShowData } from "./plugins/filter/filter.pop";
32
33
  export { LogicFunction } from "./plugins/filter/filter.types";
33
34
  export { DataSourceState, Groups } from "./store/dataSource/data.store";
35
+ export { ResizeProps } from "./services/resizable.directive";
34
36
  export { ViewportData } from "./components/revoGrid/viewport.interfaces";
35
37
  export { ElementScroll } from "./components/revoGrid/viewport.scrolling.service";
36
38
  export namespace Components {
@@ -72,7 +74,7 @@ export namespace Components {
72
74
  */
73
75
  "colSize": number;
74
76
  /**
75
- * Types Every type represent multiple column properties Types will be merged but can be replaced with column properties
77
+ * Column Types Format Every type represent multiple column properties Types will be merged but can be replaced with column properties Types were made as separate objects to be reusable per multiple columns
76
78
  */
77
79
  "columnTypes": { [name: string]: RevoGrid.ColumnType };
78
80
  /**
@@ -249,6 +251,10 @@ export namespace Components {
249
251
  }
250
252
  interface RevogrClipboard {
251
253
  "doCopy": (e: DataTransfer, data?: RevoGrid.DataFormat[][]) => Promise<void>;
254
+ /**
255
+ * If readonly mode enables no need for Paste event
256
+ */
257
+ "readonly": boolean;
252
258
  }
253
259
  /**
254
260
  * This component is responsible for rendering data
@@ -282,7 +288,14 @@ export namespace Components {
282
288
  "viewportCol": Observable<RevoGrid.ViewportState>;
283
289
  "viewportRow": Observable<RevoGrid.ViewportState>;
284
290
  }
291
+ /**
292
+ * Cell editor component
293
+ */
285
294
  interface RevogrEdit {
295
+ /**
296
+ * Additional data to pass to renderer
297
+ */
298
+ "additionalData": any;
286
299
  "cancel": () => Promise<void>;
287
300
  "column": RevoGrid.ColumnRegular | null;
288
301
  "editCell": Edition.EditCell;
@@ -290,6 +303,9 @@ export namespace Components {
290
303
  * Custom editors register
291
304
  */
292
305
  "editor": Edition.EditorCtr | null;
306
+ /**
307
+ * Save on editor close
308
+ */
293
309
  "saveOnClose": boolean;
294
310
  }
295
311
  interface RevogrFilterPanel {
@@ -317,7 +333,13 @@ export namespace Components {
317
333
  "selectionStore": Observable<Selection.SelectionStoreState>;
318
334
  }
319
335
  interface RevogrHeader {
336
+ /**
337
+ * Extra properties to pass into header renderer, such as vue or react components to handle parent
338
+ */
320
339
  "additionalData": any;
340
+ /**
341
+ * If columns can be resized
342
+ */
321
343
  "canResize": boolean;
322
344
  "colData": RevoGrid.ColumnRegular[];
323
345
  "columnFilter": boolean;
@@ -325,8 +347,15 @@ export namespace Components {
325
347
  "groupingDepth": number;
326
348
  "groups": Groups;
327
349
  "parent": string;
350
+ /**
351
+ * Define custom resize position
352
+ */
353
+ "resizeHandler": ResizeProps['active'];
328
354
  "selectionStore": Observable<Selection.SelectionStoreState>;
329
- "type": string;
355
+ /**
356
+ * Column type
357
+ */
358
+ "type": RevoGrid.DimensionCols | 'rowHeaders';
330
359
  "viewportCol": Observable<RevoGrid.ViewportState>;
331
360
  }
332
361
  interface RevogrOrderEditor {
@@ -342,6 +371,10 @@ export namespace Components {
342
371
  "parent": HTMLElement;
343
372
  }
344
373
  interface RevogrOverlaySelection {
374
+ /**
375
+ * Additional data to pass to renderer
376
+ */
377
+ "additionalData": any;
345
378
  /**
346
379
  * If true applys changes when cell closes if not Escape
347
380
  */
@@ -364,6 +397,10 @@ export namespace Components {
364
397
  * Custom editors register
365
398
  */
366
399
  "editors": Edition.Editors;
400
+ /**
401
+ * Is mobile view mode
402
+ */
403
+ "isMobileDevice": boolean;
367
404
  /**
368
405
  * Last cell position
369
406
  */
@@ -431,7 +468,7 @@ export namespace Components {
431
468
  * update on delta in case we don't know existing position or external change
432
469
  * @param e
433
470
  */
434
- "changeScroll": (e: RevoGrid.ViewPortScrollEvent) => Promise<RevoGrid.ViewPortScrollEvent>;
471
+ "changeScroll": (e: RevoGrid.ViewPortScrollEvent, silent?: boolean) => Promise<RevoGrid.ViewPortScrollEvent>;
435
472
  /**
436
473
  * Height of inner content
437
474
  */
@@ -514,6 +551,9 @@ declare global {
514
551
  prototype: HTMLRevogrDataElement;
515
552
  new (): HTMLRevogrDataElement;
516
553
  };
554
+ /**
555
+ * Cell editor component
556
+ */
517
557
  interface HTMLRevogrEditElement extends Components.RevogrEdit, HTMLStencilElement {
518
558
  }
519
559
  var HTMLRevogrEditElement: {
@@ -627,7 +667,7 @@ declare namespace LocalJSX {
627
667
  */
628
668
  "colSize"?: number;
629
669
  /**
630
- * Types Every type represent multiple column properties Types will be merged but can be replaced with column properties
670
+ * Column Types Format Every type represent multiple column properties Types will be merged but can be replaced with column properties Types were made as separate objects to be reusable per multiple columns
631
671
  */
632
672
  "columnTypes"?: { [name: string]: RevoGrid.ColumnType };
633
673
  /**
@@ -658,6 +698,13 @@ declare namespace LocalJSX {
658
698
  * Group models by provided properties Define properties to be groped by
659
699
  */
660
700
  "grouping"?: GroupingOptions;
701
+ /**
702
+ * After all rows updated. Use it if you want to track all changes from sources pinned and main
703
+ */
704
+ "onAfter-any-source"?: (event: RevoGridCustomEvent<{
705
+ type: RevoGrid.DimensionRows;
706
+ source: RevoGrid.DataType[];
707
+ }>) => void;
661
708
  /**
662
709
  * After column resize Get resized columns
663
710
  */
@@ -930,6 +977,10 @@ declare namespace LocalJSX {
930
977
  * @property {boolean} defaultPrevented - if true, paste will be canceled
931
978
  */
932
979
  "onPasteRegion"?: (event: RevogrClipboardCustomEvent<string[][]>) => void;
980
+ /**
981
+ * If readonly mode enables no need for Paste event
982
+ */
983
+ "readonly"?: boolean;
933
984
  }
934
985
  /**
935
986
  * This component is responsible for rendering data
@@ -966,18 +1017,31 @@ declare namespace LocalJSX {
966
1017
  "viewportCol": Observable<RevoGrid.ViewportState>;
967
1018
  "viewportRow": Observable<RevoGrid.ViewportState>;
968
1019
  }
1020
+ /**
1021
+ * Cell editor component
1022
+ */
969
1023
  interface RevogrEdit {
1024
+ /**
1025
+ * Additional data to pass to renderer
1026
+ */
1027
+ "additionalData"?: any;
970
1028
  "column"?: RevoGrid.ColumnRegular | null;
971
1029
  "editCell"?: Edition.EditCell;
972
1030
  /**
973
1031
  * Custom editors register
974
1032
  */
975
1033
  "editor"?: Edition.EditorCtr | null;
1034
+ /**
1035
+ * Cell edit event
1036
+ */
976
1037
  "onCellEdit"?: (event: RevogrEditCustomEvent<Edition.SaveDataDetails>) => void;
977
1038
  /**
978
1039
  * Close editor event pass true if requires focus next
979
1040
  */
980
1041
  "onCloseEdit"?: (event: RevogrEditCustomEvent<boolean | undefined>) => void;
1042
+ /**
1043
+ * Save on editor close
1044
+ */
981
1045
  "saveOnClose"?: boolean;
982
1046
  }
983
1047
  interface RevogrFilterPanel {
@@ -1012,7 +1076,13 @@ declare namespace LocalJSX {
1012
1076
  "selectionStore": Observable<Selection.SelectionStoreState>;
1013
1077
  }
1014
1078
  interface RevogrHeader {
1079
+ /**
1080
+ * Extra properties to pass into header renderer, such as vue or react components to handle parent
1081
+ */
1015
1082
  "additionalData"?: any;
1083
+ /**
1084
+ * If columns can be resized
1085
+ */
1016
1086
  "canResize"?: boolean;
1017
1087
  "colData"?: RevoGrid.ColumnRegular[];
1018
1088
  "columnFilter"?: boolean;
@@ -1024,8 +1094,15 @@ declare namespace LocalJSX {
1024
1094
  "onHeaderresize"?: (event: RevogrHeaderCustomEvent<RevoGrid.ViewSettingSizeProp>) => void;
1025
1095
  "onInitialHeaderClick"?: (event: RevogrHeaderCustomEvent<RevoGrid.InitialHeaderClick>) => void;
1026
1096
  "parent"?: string;
1097
+ /**
1098
+ * Define custom resize position
1099
+ */
1100
+ "resizeHandler"?: ResizeProps['active'];
1027
1101
  "selectionStore"?: Observable<Selection.SelectionStoreState>;
1028
- "type": string;
1102
+ /**
1103
+ * Column type
1104
+ */
1105
+ "type": RevoGrid.DimensionCols | 'rowHeaders';
1029
1106
  "viewportCol"?: Observable<RevoGrid.ViewportState>;
1030
1107
  }
1031
1108
  interface RevogrOrderEditor {
@@ -1063,6 +1140,10 @@ declare namespace LocalJSX {
1063
1140
  "parent"?: HTMLElement;
1064
1141
  }
1065
1142
  interface RevogrOverlaySelection {
1143
+ /**
1144
+ * Additional data to pass to renderer
1145
+ */
1146
+ "additionalData"?: any;
1066
1147
  /**
1067
1148
  * If true applys changes when cell closes if not Escape
1068
1149
  */
@@ -1085,6 +1166,10 @@ declare namespace LocalJSX {
1085
1166
  * Custom editors register
1086
1167
  */
1087
1168
  "editors"?: Edition.Editors;
1169
+ /**
1170
+ * Is mobile view mode
1171
+ */
1172
+ "isMobileDevice"?: boolean;
1088
1173
  /**
1089
1174
  * Last cell position
1090
1175
  */
@@ -1112,7 +1197,13 @@ declare namespace LocalJSX {
1112
1197
  "onCancelEdit"?: (event: RevogrOverlaySelectionCustomEvent<any>) => void;
1113
1198
  "onFocusCell"?: (event: RevogrOverlaySelectionCustomEvent<ApplyFocusEvent>) => void;
1114
1199
  "onInternalCellEdit"?: (event: RevogrOverlaySelectionCustomEvent<Edition.BeforeSaveDataDetails>) => void;
1200
+ /**
1201
+ * Before clipboard copy happened
1202
+ */
1115
1203
  "onInternalCopy"?: (event: RevogrOverlaySelectionCustomEvent<any>) => void;
1204
+ /**
1205
+ * Before paste happened
1206
+ */
1116
1207
  "onInternalPaste"?: (event: RevogrOverlaySelectionCustomEvent<any>) => void;
1117
1208
  /**
1118
1209
  * Range data apply
@@ -1128,6 +1219,9 @@ declare namespace LocalJSX {
1128
1219
  "onRangeClipboardCopy"?: (event: RevogrOverlaySelectionCustomEvent<any>) => void;
1129
1220
  "onRangeClipboardPaste"?: (event: RevogrOverlaySelectionCustomEvent<any>) => void;
1130
1221
  "onSelectall"?: (event: RevogrOverlaySelectionCustomEvent<any>) => void;
1222
+ /**
1223
+ * Set edit cell
1224
+ */
1131
1225
  "onSetEdit"?: (event: RevogrOverlaySelectionCustomEvent<Edition.BeforeEdit>) => void;
1132
1226
  "onSetRange"?: (event: RevogrOverlaySelectionCustomEvent<Selection.RangeArea & { type: RevoGrid.MultiDimensionType }>) => void;
1133
1227
  "onSetTempRange"?: (event: RevogrOverlaySelectionCustomEvent<Selection.TempRange | null>) => void;
@@ -1201,7 +1295,14 @@ declare namespace LocalJSX {
1201
1295
  "contentWidth"?: number;
1202
1296
  "onResizeViewport"?: (event: RevogrViewportScrollCustomEvent<RevoGrid.ViewPortResizeEvent>) => void;
1203
1297
  "onScrollViewport"?: (event: RevogrViewportScrollCustomEvent<RevoGrid.ViewPortScrollEvent>) => void;
1204
- "onScrollchange"?: (event: RevogrViewportScrollCustomEvent<{ type: RevoGrid.DimensionType; hasScroll: boolean }>) => void;
1298
+ "onScrollchange"?: (event: RevogrViewportScrollCustomEvent<{
1299
+ type: RevoGrid.DimensionType;
1300
+ hasScroll: boolean;
1301
+ }>) => void;
1302
+ /**
1303
+ * Silently scroll to coordinate Made to align negative coordinates for mobile devices
1304
+ */
1305
+ "onSilentScroll"?: (event: RevogrViewportScrollCustomEvent<RevoGrid.ViewPortScrollEvent>) => void;
1205
1306
  }
1206
1307
  interface IntrinsicElements {
1207
1308
  "revo-grid": RevoGrid;
@@ -1230,6 +1331,9 @@ declare module "@stencil/core" {
1230
1331
  * Rows, columns, groups and cells
1231
1332
  */
1232
1333
  "revogr-data": LocalJSX.RevogrData & JSXBase.HTMLAttributes<HTMLRevogrDataElement>;
1334
+ /**
1335
+ * Cell editor component
1336
+ */
1233
1337
  "revogr-edit": LocalJSX.RevogrEdit & JSXBase.HTMLAttributes<HTMLRevogrEditElement>;
1234
1338
  "revogr-filter-panel": LocalJSX.RevogrFilterPanel & JSXBase.HTMLAttributes<HTMLRevogrFilterPanelElement>;
1235
1339
  "revogr-focus": LocalJSX.RevogrFocus & JSXBase.HTMLAttributes<HTMLRevogrFocusElement>;
@@ -4,6 +4,7 @@
4
4
  import { VNode } from './stencil-public-runtime';
5
5
  // @ts-ignore
6
6
  import { ObservableMap, Subscription } from '@stencil/store';
7
+ import { type } from 'os';
7
8
  export type Observable<T> = ObservableMap<T>;
8
9
  export type PluginSubscribe<T> = Subscription<T>;
9
10
  export declare namespace RevoGrid {
@@ -290,6 +291,8 @@ export declare namespace Edition {
290
291
  type SaveDataDetails = {
291
292
  rgRow: Selection.RowIndex;
292
293
  rgCol: Selection.ColIndex;
294
+ type: RevoGrid.DimensionRows;
295
+ prop: RevoGrid.ColumnProp;
293
296
  val: any;
294
297
  preventFocus?: boolean;
295
298
  };
@@ -330,7 +333,7 @@ export declare namespace Edition {
330
333
  beforeUpdate?(): void;
331
334
  componentDidRender?(): void;
332
335
  disconnectedCallback?(): void;
333
- render(createElement?: HyperFunc<VNode>): VNode | VNode[] | string | void;
336
+ render(createElement?: HyperFunc<VNode>, additionalData?: any): VNode | VNode[] | string | void;
334
337
  }
335
338
  }
336
339
  export declare namespace ThemeSpace {
@@ -1,6 +1,7 @@
1
1
  import { VNode } from '../../stencil-public-runtime';
2
2
  import { RevoGrid } from '../../interfaces';
3
3
  import { Group } from '../../store/dataSource/data.store';
4
+ import { ResizeProps } from '../..';
4
5
  type Props = {
5
6
  visibleProps: {
6
7
  [prop: string]: number;
@@ -12,6 +13,6 @@ type Props = {
12
13
  providers: RevoGrid.Providers;
13
14
  additionalData: any;
14
15
  onResize(changedX: number, startIndex: number, endIndex: number): void;
15
- };
16
- declare const ColumnGroupsRenderer: ({ additionalData, providers, depth, groups, visibleProps, dimensionCol, canResize, onResize }: Props) => VNode[];
16
+ } & Partial<Pick<ResizeProps, 'active'>>;
17
+ declare const ColumnGroupsRenderer: ({ additionalData, providers, depth, groups, visibleProps, dimensionCol, canResize, active, onResize }: Props) => VNode[];
17
18
  export default ColumnGroupsRenderer;
@@ -6,7 +6,7 @@ import findIndex from 'lodash/findIndex';
6
6
  import { getItemByIndex } from '../../store/dimension/dimension.helpers';
7
7
  import { HEADER_ROW_CLASS } from '../../utils/consts';
8
8
  import GroupHeaderRenderer from './headerGroupRenderer';
9
- const ColumnGroupsRenderer = ({ additionalData, providers, depth, groups, visibleProps, dimensionCol, canResize, onResize }) => {
9
+ const ColumnGroupsRenderer = ({ additionalData, providers, depth, groups, visibleProps, dimensionCol, canResize, active, onResize }) => {
10
10
  // render group columns
11
11
  const groupRow = [];
12
12
  for (let i = 0; i < depth; i++) {
@@ -22,7 +22,7 @@ const ColumnGroupsRenderer = ({ additionalData, providers, depth, groups, visibl
22
22
  // coordinates
23
23
  const groupStart = getItemByIndex(dimensionCol, groupStartIndex).start;
24
24
  const groupEnd = getItemByIndex(dimensionCol, groupEndIndex).end;
25
- groupRow.push(h(GroupHeaderRenderer, { providers: providers, start: groupStart, end: groupEnd, group: group, additionalData: additionalData, canResize: canResize, onResize: e => onResize(e.changedX, groupStartIndex, groupEndIndex) }));
25
+ groupRow.push(h(GroupHeaderRenderer, { providers: providers, start: groupStart, end: groupEnd, group: group, active: active, canResize: canResize, onResize: e => onResize(e.changedX, groupStartIndex, groupEndIndex), additionalData: additionalData }));
26
26
  }
27
27
  }
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"columnGroupsRenderer.js","sourceRoot":"","sources":["../../../src/plugins/groupingColumn/columnGroupsRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAS,MAAM,eAAe,CAAC;AACzC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AAaxD,MAAM,oBAAoB,GAAG,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAS,EAAW,EAAE;EAC7I,uBAAuB;EACvB,MAAM,QAAQ,GAAY,EAAE,CAAC;EAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;IAC9B,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;MACb,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;QAC3B,4BAA4B;QAC5B,yDAAyD;QACzD,MAAM,oBAAoB,GAAuB,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,YAAY,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC;QAClH,IAAI,oBAAoB,GAAG,CAAC,CAAC,EAAE;UAC7B,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,mBAAmB;UAC1F,MAAM,eAAe,GAAG,eAAe,GAAG,oBAAoB,CAAC,CAAC,8BAA8B;UAC9F,MAAM,aAAa,GAAG,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,6BAA6B;UAE3F,cAAc;UACd,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC;UACvE,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC;UACjE,QAAQ,CAAC,IAAI,CACX,EAAC,mBAAmB,IAClB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,CAAC,GACnE,CACH,CAAC;SACH;OACF;KACF;IACD,QAAQ,CAAC,IAAI,CAAC,WAAK,KAAK,EAAE,GAAG,gBAAgB,QAAQ,GAAI,CAAC,CAAC;GAC5D;EACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC","sourcesContent":["import { h, VNode } from '@stencil/core';\nimport findIndex from 'lodash/findIndex';\nimport { RevoGrid } from '../../interfaces';\nimport { Group } from '../../store/dataSource/data.store';\nimport { getItemByIndex } from '../../store/dimension/dimension.helpers';\nimport { HEADER_ROW_CLASS } from '../../utils/consts';\nimport GroupHeaderRenderer from './headerGroupRenderer';\n\ntype Props = {\n visibleProps: { [prop: string]: number };\n groups: Record<number, Group[]>;\n dimensionCol: Pick<RevoGrid.DimensionSettingsState, 'indexes' | 'originItemSize' | 'indexToItem'>;\n depth: number;\n canResize: boolean;\n providers: RevoGrid.Providers;\n additionalData: any;\n onResize(changedX: number, startIndex: number, endIndex: number): void;\n};\n\nconst ColumnGroupsRenderer = ({ additionalData, providers, depth, groups, visibleProps, dimensionCol, canResize, onResize }: Props): VNode[] => {\n // render group columns\n const groupRow: VNode[] = [];\n for (let i = 0; i < depth; i++) {\n if (groups[i]) {\n for (let group of groups[i]) {\n // if group in visible range\n // find first visible group prop in visible columns range\n const indexFirstVisibleCol: number | undefined = findIndex(group.ids, id => typeof visibleProps[id] === 'number');\n if (indexFirstVisibleCol > -1) {\n const colVisibleIndex = visibleProps[group.ids[indexFirstVisibleCol]]; // get column index\n const groupStartIndex = colVisibleIndex - indexFirstVisibleCol; // first column index in group\n const groupEndIndex = groupStartIndex + group.ids.length - 1; // last column index in group\n\n // coordinates\n const groupStart = getItemByIndex(dimensionCol, groupStartIndex).start;\n const groupEnd = getItemByIndex(dimensionCol, groupEndIndex).end;\n groupRow.push(\n <GroupHeaderRenderer\n providers={providers}\n start={groupStart}\n end={groupEnd}\n group={group}\n additionalData={additionalData}\n canResize={canResize}\n onResize={e => onResize(e.changedX, groupStartIndex, groupEndIndex)}\n />,\n );\n }\n }\n }\n groupRow.push(<div class={`${HEADER_ROW_CLASS} group`} />);\n }\n return groupRow;\n};\n\nexport default ColumnGroupsRenderer;\n"]}
1
+ {"version":3,"file":"columnGroupsRenderer.js","sourceRoot":"","sources":["../../../src/plugins/groupingColumn/columnGroupsRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAS,MAAM,eAAe,CAAC;AACzC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AAcxD,MAAM,oBAAoB,GAAG,CAAC,EAC5B,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAC3F,EAAW,EAAE;EACnB,uBAAuB;EACvB,MAAM,QAAQ,GAAY,EAAE,CAAC;EAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;IAC9B,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;MACb,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;QAC3B,4BAA4B;QAC5B,yDAAyD;QACzD,MAAM,oBAAoB,GAAuB,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,YAAY,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC;QAClH,IAAI,oBAAoB,GAAG,CAAC,CAAC,EAAE;UAC7B,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,mBAAmB;UAC1F,MAAM,eAAe,GAAG,eAAe,GAAG,oBAAoB,CAAC,CAAC,8BAA8B;UAC9F,MAAM,aAAa,GAAG,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,6BAA6B;UAE3F,cAAc;UACd,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC;UACvE,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC;UACjE,QAAQ,CAAC,IAAI,CACX,EAAC,mBAAmB,IAClB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,CAAC,EACnE,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;SACH;OACF;KACF;IACD,QAAQ,CAAC,IAAI,CAAC,WAAK,KAAK,EAAE,GAAG,gBAAgB,QAAQ,GAAI,CAAC,CAAC;GAC5D;EACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC","sourcesContent":["import { h, VNode } from '@stencil/core';\nimport findIndex from 'lodash/findIndex';\nimport { RevoGrid } from '../../interfaces';\nimport { Group } from '../../store/dataSource/data.store';\nimport { getItemByIndex } from '../../store/dimension/dimension.helpers';\nimport { HEADER_ROW_CLASS } from '../../utils/consts';\nimport GroupHeaderRenderer from './headerGroupRenderer';\nimport { ResizeProps } from '../..';\n\ntype Props = {\n visibleProps: { [prop: string]: number };\n groups: Record<number, Group[]>;\n dimensionCol: Pick<RevoGrid.DimensionSettingsState, 'indexes' | 'originItemSize' | 'indexToItem'>;\n depth: number;\n canResize: boolean;\n providers: RevoGrid.Providers;\n additionalData: any;\n onResize(changedX: number, startIndex: number, endIndex: number): void;\n} & Partial<Pick<ResizeProps, 'active'>>;\n\nconst ColumnGroupsRenderer = ({\n additionalData, providers, depth, groups, visibleProps, dimensionCol, canResize, active, onResize\n}: Props): VNode[] => {\n // render group columns\n const groupRow: VNode[] = [];\n for (let i = 0; i < depth; i++) {\n if (groups[i]) {\n for (let group of groups[i]) {\n // if group in visible range\n // find first visible group prop in visible columns range\n const indexFirstVisibleCol: number | undefined = findIndex(group.ids, id => typeof visibleProps[id] === 'number');\n if (indexFirstVisibleCol > -1) {\n const colVisibleIndex = visibleProps[group.ids[indexFirstVisibleCol]]; // get column index\n const groupStartIndex = colVisibleIndex - indexFirstVisibleCol; // first column index in group\n const groupEndIndex = groupStartIndex + group.ids.length - 1; // last column index in group\n\n // coordinates\n const groupStart = getItemByIndex(dimensionCol, groupStartIndex).start;\n const groupEnd = getItemByIndex(dimensionCol, groupEndIndex).end;\n groupRow.push(\n <GroupHeaderRenderer\n providers={providers}\n start={groupStart}\n end={groupEnd}\n group={group}\n active={active}\n canResize={canResize}\n onResize={e => onResize(e.changedX, groupStartIndex, groupEndIndex)}\n additionalData={additionalData}\n />,\n );\n }\n }\n }\n groupRow.push(<div class={`${HEADER_ROW_CLASS} group`} />);\n }\n return groupRow;\n};\n\nexport default ColumnGroupsRenderer;\n"]}
@@ -1,5 +1,5 @@
1
1
  import { VNode } from '../../stencil-public-runtime';
2
- import { ResizeEvent } from '../../services/resizable.directive';
2
+ import { ResizeEvent, ResizeProps } from '../../services/resizable.directive';
3
3
  import { Group } from '../../store/dataSource/data.store';
4
4
  import { RevoGrid } from '../../interfaces';
5
5
  type Props = {
@@ -10,6 +10,6 @@ type Props = {
10
10
  additionalData: any;
11
11
  canResize?: boolean;
12
12
  onResize?(e: ResizeEvent): void;
13
- };
13
+ } & Partial<Pick<ResizeProps, 'active'>>;
14
14
  declare const GroupHeaderRenderer: (p: Props) => VNode[];
15
15
  export default GroupHeaderRenderer;
@@ -9,7 +9,7 @@ const GroupHeaderRenderer = (p) => {
9
9
  canResize: p.canResize,
10
10
  minWidth: p.group.ids.length * MIN_COL_SIZE,
11
11
  maxWidth: 0,
12
- active: ['r'],
12
+ active: p.active || ['r'],
13
13
  class: {
14
14
  [HEADER_CLASS]: true,
15
15
  },
@@ -1 +1 @@
1
- {"version":3,"file":"headerGroupRenderer.js","sourceRoot":"","sources":["../../../src/plugins/groupingColumn/headerGroupRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAS,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAahF,MAAM,mBAAmB,GAAG,CAAC,CAAQ,EAAW,EAAE;EAChD,MAAM,UAAU,GAAG;IACjB,SAAS,EAAE,CAAC,CAAC,SAAS;IACtB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,YAAY;IAC3C,QAAQ,EAAE,CAAC;IAEX,MAAM,EAAE,CAAC,GAAG,CAAC;IACb,KAAK,EAAE;MACL,CAAC,YAAY,CAAC,EAAE,IAAI;KACrB;IACD,KAAK,EAAE;MACL,SAAS,EAAE,cAAc,CAAC,CAAC,KAAK,KAAK;MACrC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI;KAC9B;IACD,QAAQ,EAAE,CAAC,CAAC,QAAQ;GACrB,CAAC;EACF,OAAO,CACL,EAAC,kBAAkB,IACjB,IAAI,kCACC,CAAC,CAAC,KAAK,KACV,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,CAAC,CAAC,SAAS,EACtB,KAAK,EAAE,CAAC,CAAC,KAAK,KAEhB,KAAK,EAAE,UAAU,EACjB,cAAc,EAAE,CAAC,CAAC,cAAc,GAChC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC","sourcesContent":["import { h, VNode } from '@stencil/core';\nimport { ResizeEvent } from '../../services/resizable.directive';\nimport { Group } from '../../store/dataSource/data.store';\nimport { HEADER_CLASS, MIN_COL_SIZE } from '../../utils/consts';\nimport { HeaderCellRenderer } from '../../components/header/headerCellRenderer';\nimport { RevoGrid } from '../../interfaces';\n\ntype Props = {\n start: number;\n end: number;\n group: Group;\n providers: RevoGrid.Providers;\n additionalData: any;\n canResize?: boolean;\n onResize?(e: ResizeEvent): void;\n};\n\nconst GroupHeaderRenderer = (p: Props): VNode[] => {\n const groupProps = {\n canResize: p.canResize,\n minWidth: p.group.ids.length * MIN_COL_SIZE,\n maxWidth: 0,\n\n active: ['r'],\n class: {\n [HEADER_CLASS]: true,\n },\n style: {\n transform: `translateX(${p.start}px)`,\n width: `${p.end - p.start}px`,\n },\n onResize: p.onResize,\n };\n return (\n <HeaderCellRenderer\n data={{\n ...p.group,\n prop: '',\n providers: p.providers,\n index: p.start,\n }}\n props={groupProps}\n additionalData={p.additionalData}\n />\n );\n};\n\nexport default GroupHeaderRenderer;\n"]}
1
+ {"version":3,"file":"headerGroupRenderer.js","sourceRoot":"","sources":["../../../src/plugins/groupingColumn/headerGroupRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAS,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAahF,MAAM,mBAAmB,GAAG,CAAC,CAAQ,EAAW,EAAE;EAChD,MAAM,UAAU,GAA8C;IAC5D,SAAS,EAAE,CAAC,CAAC,SAAS;IACtB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,YAAY;IAC3C,QAAQ,EAAE,CAAC;IAEX,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC;IACzB,KAAK,EAAE;MACL,CAAC,YAAY,CAAC,EAAE,IAAI;KACrB;IACD,KAAK,EAAE;MACL,SAAS,EAAE,cAAc,CAAC,CAAC,KAAK,KAAK;MACrC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI;KAC9B;IACD,QAAQ,EAAE,CAAC,CAAC,QAAQ;GACrB,CAAC;EACF,OAAO,CACL,EAAC,kBAAkB,IACjB,IAAI,kCACC,CAAC,CAAC,KAAK,KACV,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,CAAC,CAAC,SAAS,EACtB,KAAK,EAAE,CAAC,CAAC,KAAK,KAEhB,KAAK,EAAE,UAAU,EACjB,cAAc,EAAE,CAAC,CAAC,cAAc,GAChC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC","sourcesContent":["import { h, VNode } from '@stencil/core';\nimport { ResizeEvent, ResizeProps } from '../../services/resizable.directive';\nimport { Group } from '../../store/dataSource/data.store';\nimport { HEADER_CLASS, MIN_COL_SIZE } from '../../utils/consts';\nimport { HeaderCellRenderer } from '../../components/header/headerCellRenderer';\nimport { RevoGrid } from '../../interfaces';\n\ntype Props = {\n start: number;\n end: number;\n group: Group;\n providers: RevoGrid.Providers;\n additionalData: any;\n canResize?: boolean;\n onResize?(e: ResizeEvent): void;\n} & Partial<Pick<ResizeProps, 'active'>>;\n\nconst GroupHeaderRenderer = (p: Props): VNode[] => {\n const groupProps: RevoGrid.CellProps & Partial<ResizeProps> = {\n canResize: p.canResize,\n minWidth: p.group.ids.length * MIN_COL_SIZE,\n maxWidth: 0,\n\n active: p.active || ['r'],\n class: {\n [HEADER_CLASS]: true,\n },\n style: {\n transform: `translateX(${p.start}px)`,\n width: `${p.end - p.start}px`,\n },\n onResize: p.onResize,\n };\n return (\n <HeaderCellRenderer\n data={{\n ...p.group,\n prop: '',\n providers: p.providers,\n index: p.start,\n }}\n props={groupProps}\n additionalData={p.additionalData}\n />\n );\n};\n\nexport default GroupHeaderRenderer;\n"]}
@@ -1,12 +1,13 @@
1
1
  import { RevoGrid } from '../../interfaces';
2
2
  import BasePlugin from '../basePlugin';
3
3
  export type SortingOrder = Record<RevoGrid.ColumnProp, RevoGrid.Order>;
4
+ type SortingOrderFunction = Record<RevoGrid.ColumnProp, RevoGrid.CellCompareFunc | undefined>;
4
5
  /**
5
6
  * lifecycle
6
- * 1) @event beforesorting - sorting just started, nothing happened yet
7
+ * 1) @event beforesorting - sorting just started, nothing happened yet, can be from column or from source, if type is from rows - column will be undefined
7
8
  * 2) @metod updateColumnSorting - column sorting icon applied to grid and column get updated, data still untiuched
8
- * 3) @event beforesortingapply - before we applied sorting data to data source, you can prevent data apply from here
9
- * 4) @event afterSortingApply - sorting applied, just finished event
9
+ * 3) @event beforesortingapply - before we applied sorting data to data source, you can prevent event and data will not be sorted. It's called only from column sorting click
10
+ * 4) @event afterSortingApply - sorting applied, just finished event, from rows and columns
10
11
  *
11
12
  * If you prevent event it'll not reach farther steps
12
13
  */
@@ -14,19 +15,26 @@ export default class SortingPlugin extends BasePlugin {
14
15
  protected revogrid: HTMLRevoGridElement;
15
16
  private sorting;
16
17
  private sortingFunc;
17
- get hasSorting(): boolean;
18
+ private doSort;
18
19
  constructor(revogrid: HTMLRevoGridElement);
19
- private headerclick;
20
- private setData;
20
+ private getComparer;
21
21
  /**
22
- * Sorting apply, available for rgRow type only
22
+ * Apply sorting to data on header click
23
+ * If additive - add to existing sorting, multiple columns can be sorted
24
+ */
25
+ headerclick(column: RevoGrid.ColumnRegular, index: number, additive: boolean): Promise<void>;
26
+ /**
27
+ * Sort items by sorting function
28
+ * @requires proxyItems applied to row store
29
+ * @requires source applied to row store
30
+ *
23
31
  * @param sorting - per column sorting
24
32
  * @param data - this.stores['rgRow'].store.get('source')
25
33
  */
26
- private sort;
27
- private defaultCellCompare;
28
- private descCellCompare;
29
- private sortIndexByItems;
30
- private sortItems;
31
- private getNextOrder;
34
+ sort(sorting: SortingOrder, sortingFunc: SortingOrderFunction, types?: RevoGrid.DimensionRows[]): Promise<void>;
35
+ defaultCellCompare(prop: RevoGrid.ColumnProp, a: RevoGrid.DataType, b: RevoGrid.DataType): 0 | 1 | -1;
36
+ descCellCompare(cmp: RevoGrid.CellCompareFunc): (prop: RevoGrid.ColumnProp, a: RevoGrid.DataType, b: RevoGrid.DataType) => number;
37
+ sortIndexByItems(indexes: number[], source: RevoGrid.DataType[], sortingFunc: SortingOrderFunction): number[];
38
+ getNextOrder(currentOrder: RevoGrid.Order): RevoGrid.Order;
32
39
  }
40
+ export {};