@revolist/revogrid 4.9.4 → 4.9.6

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 (203) hide show
  1. package/dist/cjs/{column.service-01f4a6c7.js → column.service-0615a373.js} +11 -12
  2. package/dist/cjs/column.service-0615a373.js.map +1 -0
  3. package/dist/cjs/{base.plugin-bf5f43a0.js → column.utils-694677fa.js} +136 -11
  4. package/dist/cjs/column.utils-694677fa.js.map +1 -0
  5. package/dist/cjs/edit.utils-2e1f4278.js +20 -0
  6. package/dist/cjs/edit.utils-2e1f4278.js.map +1 -0
  7. package/dist/cjs/{events-b28cc194.js → events-af8f6914.js} +1 -8
  8. package/dist/cjs/events-af8f6914.js.map +1 -0
  9. package/dist/cjs/{header-cell-renderer-3bc70679.js → header-cell-renderer-360528aa.js} +2 -2
  10. package/dist/cjs/{header-cell-renderer-3bc70679.js.map → header-cell-renderer-360528aa.js.map} +1 -1
  11. package/dist/cjs/{dimension.helpers-a6788214.js → index-2991afbb.js} +262 -4
  12. package/dist/cjs/index-2991afbb.js.map +1 -0
  13. package/dist/cjs/index.cjs.js +97 -35
  14. package/dist/cjs/index.cjs.js.map +1 -1
  15. package/dist/cjs/key.utils-b84b0eba.js +111 -0
  16. package/dist/cjs/key.utils-b84b0eba.js.map +1 -0
  17. package/dist/cjs/revo-grid.cjs.entry.js +140 -311
  18. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  19. package/dist/cjs/revogr-attribution_6.cjs.entry.js +37 -37
  20. package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -1
  21. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +10 -10
  22. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
  23. package/dist/cjs/revogr-data_4.cjs.entry.js +13 -14
  24. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  25. package/dist/cjs/{viewport.store-35a3e7ee.js → row-header-utils-b5266b12.js} +13 -6
  26. package/dist/cjs/row-header-utils-b5266b12.js.map +1 -0
  27. package/dist/cjs/{selection.helpers-1a8c8d49.js → selection.helpers-4374518f.js} +13 -13
  28. package/dist/cjs/selection.helpers-4374518f.js.map +1 -0
  29. package/dist/cjs/{throttle-52be9e67.js → throttle-8885fd65.js} +2 -2
  30. package/dist/cjs/{throttle-52be9e67.js.map → throttle-8885fd65.js.map} +1 -1
  31. package/dist/collection/components/clipboard/revogr-clipboard.js +2 -2
  32. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -1
  33. package/dist/collection/components/editors/revogr-edit.js +1 -1
  34. package/dist/collection/components/header/revogr-header.js +1 -1
  35. package/dist/collection/components/overlay/revogr-overlay-selection.js +1 -1
  36. package/dist/collection/components/revoGrid/revo-grid.js +12 -11
  37. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  38. package/dist/collection/index.js +1 -1
  39. package/dist/collection/index.js.map +1 -1
  40. package/dist/collection/plugins/base.plugin.js.map +1 -1
  41. package/dist/collection/plugins/column.auto-size.plugin.js +2 -2
  42. package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -1
  43. package/dist/collection/plugins/column.stretch.plugin.js.map +1 -1
  44. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
  45. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +1 -1
  46. package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -1
  47. package/dist/collection/plugins/sorting/sorting.plugin.js +2 -2
  48. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
  49. package/dist/collection/services/column.data.provider.js +32 -88
  50. package/dist/collection/services/column.data.provider.js.map +1 -1
  51. package/dist/collection/services/dimension.provider.js +2 -2
  52. package/dist/collection/services/dimension.provider.js.map +1 -1
  53. package/dist/collection/types/interfaces.js.map +1 -1
  54. package/dist/collection/utils/column.utils.js +124 -0
  55. package/dist/collection/utils/column.utils.js.map +1 -0
  56. package/dist/collection/utils/index.js +7 -0
  57. package/dist/collection/utils/index.js.map +1 -1
  58. package/dist/esm/{column.service-5d14e7e9.js → column.service-af0694c5.js} +3 -4
  59. package/dist/esm/column.service-af0694c5.js.map +1 -0
  60. package/dist/esm/{base.plugin-5e7a3c51.js → column.utils-78dd3ef2.js} +122 -3
  61. package/dist/esm/column.utils-78dd3ef2.js.map +1 -0
  62. package/dist/esm/edit.utils-ca303802.js +17 -0
  63. package/dist/esm/edit.utils-ca303802.js.map +1 -0
  64. package/dist/esm/{events-77b43b40.js → events-cf0893a3.js} +2 -8
  65. package/dist/esm/events-cf0893a3.js.map +1 -0
  66. package/dist/esm/{header-cell-renderer-fc999784.js → header-cell-renderer-261317c3.js} +2 -2
  67. package/dist/esm/{header-cell-renderer-fc999784.js.map → header-cell-renderer-261317c3.js.map} +1 -1
  68. package/dist/esm/{dimension.helpers-56298828.js → index-f65def08.js} +231 -4
  69. package/dist/esm/index-f65def08.js.map +1 -0
  70. package/dist/esm/index.js +5 -4
  71. package/dist/esm/index.js.map +1 -1
  72. package/dist/esm/key.utils-4b0093d5.js +98 -0
  73. package/dist/esm/key.utils-4b0093d5.js.map +1 -0
  74. package/dist/esm/revo-grid.entry.js +50 -221
  75. package/dist/esm/revo-grid.entry.js.map +1 -1
  76. package/dist/esm/revogr-attribution_6.entry.js +8 -8
  77. package/dist/esm/revogr-clipboard_3.entry.js +5 -5
  78. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
  79. package/dist/esm/revogr-data_4.entry.js +5 -6
  80. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  81. package/dist/esm/{viewport.store-d8e03528.js → row-header-utils-6081260c.js} +9 -3
  82. package/dist/esm/row-header-utils-6081260c.js.map +1 -0
  83. package/dist/esm/{selection.helpers-accaad4a.js → selection.helpers-d92697e1.js} +2 -2
  84. package/dist/esm/{selection.helpers-accaad4a.js.map → selection.helpers-d92697e1.js.map} +1 -1
  85. package/dist/esm/{throttle-7283692c.js → throttle-041ded8e.js} +2 -2
  86. package/dist/esm/{throttle-7283692c.js.map → throttle-041ded8e.js.map} +1 -1
  87. package/dist/revo-grid/column.service-af0694c5.js +5 -0
  88. package/dist/revo-grid/{column.service-5d14e7e9.js.map → column.service-af0694c5.js.map} +1 -1
  89. package/dist/revo-grid/column.utils-78dd3ef2.js +5 -0
  90. package/dist/revo-grid/column.utils-78dd3ef2.js.map +1 -0
  91. package/dist/revo-grid/edit.utils-ca303802.js +5 -0
  92. package/dist/revo-grid/edit.utils-ca303802.js.map +1 -0
  93. package/dist/revo-grid/events-cf0893a3.js +5 -0
  94. package/dist/revo-grid/events-cf0893a3.js.map +1 -0
  95. package/dist/revo-grid/{header-cell-renderer-fc999784.js → header-cell-renderer-261317c3.js} +2 -2
  96. package/dist/revo-grid/index-f65def08.js +5 -0
  97. package/dist/revo-grid/index-f65def08.js.map +1 -0
  98. package/dist/revo-grid/index.esm.js +1 -1
  99. package/dist/revo-grid/key.utils-4b0093d5.js +5 -0
  100. package/dist/revo-grid/key.utils-4b0093d5.js.map +1 -0
  101. package/dist/revo-grid/revo-grid.entry.js +1 -1
  102. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  103. package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
  104. package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
  105. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
  106. package/dist/revo-grid/revogr-data_4.entry.js +1 -1
  107. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  108. package/dist/revo-grid/row-header-utils-6081260c.js +5 -0
  109. package/dist/revo-grid/row-header-utils-6081260c.js.map +1 -0
  110. package/dist/revo-grid/selection.helpers-d92697e1.js +5 -0
  111. package/dist/revo-grid/{selection.helpers-accaad4a.js.map → selection.helpers-d92697e1.js.map} +1 -1
  112. package/dist/revo-grid/{throttle-7283692c.js → throttle-041ded8e.js} +2 -2
  113. package/dist/types/components/revoGrid/revo-grid.d.ts +2 -1
  114. package/dist/types/components.d.ts +2 -2
  115. package/dist/types/index.d.ts +1 -1
  116. package/dist/types/plugins/base.plugin.d.ts +1 -1
  117. package/dist/types/plugins/column.auto-size.plugin.d.ts +2 -4
  118. package/dist/types/plugins/column.stretch.plugin.d.ts +2 -4
  119. package/dist/types/services/column.data.provider.d.ts +2 -13
  120. package/dist/types/services/dimension.provider.d.ts +0 -1
  121. package/dist/types/types/interfaces.d.ts +11 -11
  122. package/dist/types/utils/column.utils.d.ts +46 -0
  123. package/dist/types/utils/index.d.ts +7 -0
  124. package/hydrate/index.js +304 -357
  125. package/hydrate/index.mjs +304 -357
  126. package/package.json +2 -2
  127. package/standalone/_stringToPath.js +1389 -0
  128. package/standalone/_stringToPath.js.map +1 -0
  129. package/standalone/column.service.js +4 -3
  130. package/standalone/column.service.js.map +1 -1
  131. package/standalone/consts.js +1 -1
  132. package/standalone/data.store.js +31 -1410
  133. package/standalone/data.store.js.map +1 -1
  134. package/standalone/debounce.js +2 -1
  135. package/standalone/debounce.js.map +1 -1
  136. package/standalone/dimension.helpers.js +2 -2
  137. package/standalone/index.js +6 -3
  138. package/standalone/index.js.map +1 -1
  139. package/standalone/index2.js +160 -1
  140. package/standalone/index2.js.map +1 -1
  141. package/standalone/isObjectLike.js +195 -0
  142. package/standalone/isObjectLike.js.map +1 -0
  143. package/standalone/revo-grid.js +168 -218
  144. package/standalone/revo-grid.js.map +1 -1
  145. package/standalone/revogr-clipboard2.js +2 -2
  146. package/standalone/revogr-clipboard2.js.map +1 -1
  147. package/standalone/revogr-data2.js +3 -2
  148. package/standalone/revogr-data2.js.map +1 -1
  149. package/standalone/revogr-edit.js +1 -1
  150. package/standalone/revogr-edit2.js +57 -83
  151. package/standalone/revogr-edit2.js.map +1 -1
  152. package/standalone/revogr-focus2.js +2 -1
  153. package/standalone/revogr-focus2.js.map +1 -1
  154. package/standalone/revogr-header2.js +4 -3
  155. package/standalone/revogr-header2.js.map +1 -1
  156. package/standalone/revogr-order-editor2.js +3 -2
  157. package/standalone/revogr-order-editor2.js.map +1 -1
  158. package/standalone/revogr-overlay-selection2.js +5 -5
  159. package/standalone/revogr-row-headers2.js +3 -2
  160. package/standalone/revogr-row-headers2.js.map +1 -1
  161. package/standalone/selection.utils.js +2 -1
  162. package/standalone/selection.utils.js.map +1 -1
  163. package/standalone/throttle.js +1 -1
  164. package/standalone/toNumber.js +2 -189
  165. package/standalone/toNumber.js.map +1 -1
  166. package/dist/cjs/base.plugin-bf5f43a0.js.map +0 -1
  167. package/dist/cjs/column.service-01f4a6c7.js.map +0 -1
  168. package/dist/cjs/dimension.helpers-a6788214.js.map +0 -1
  169. package/dist/cjs/events-b28cc194.js.map +0 -1
  170. package/dist/cjs/index-2410bbd9.js +0 -103
  171. package/dist/cjs/index-2410bbd9.js.map +0 -1
  172. package/dist/cjs/key.utils-1e48ab8f.js +0 -144
  173. package/dist/cjs/key.utils-1e48ab8f.js.map +0 -1
  174. package/dist/cjs/selection.helpers-1a8c8d49.js.map +0 -1
  175. package/dist/cjs/viewport.store-35a3e7ee.js.map +0 -1
  176. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js +0 -43
  177. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +0 -1
  178. package/dist/esm/base.plugin-5e7a3c51.js.map +0 -1
  179. package/dist/esm/column.service-5d14e7e9.js.map +0 -1
  180. package/dist/esm/dimension.helpers-56298828.js.map +0 -1
  181. package/dist/esm/events-77b43b40.js.map +0 -1
  182. package/dist/esm/index-4e881436.js +0 -77
  183. package/dist/esm/index-4e881436.js.map +0 -1
  184. package/dist/esm/key.utils-425c987d.js +0 -133
  185. package/dist/esm/key.utils-425c987d.js.map +0 -1
  186. package/dist/esm/viewport.store-d8e03528.js.map +0 -1
  187. package/dist/revo-grid/base.plugin-5e7a3c51.js +0 -5
  188. package/dist/revo-grid/base.plugin-5e7a3c51.js.map +0 -1
  189. package/dist/revo-grid/column.service-5d14e7e9.js +0 -5
  190. package/dist/revo-grid/dimension.helpers-56298828.js +0 -5
  191. package/dist/revo-grid/dimension.helpers-56298828.js.map +0 -1
  192. package/dist/revo-grid/events-77b43b40.js +0 -5
  193. package/dist/revo-grid/events-77b43b40.js.map +0 -1
  194. package/dist/revo-grid/index-4e881436.js +0 -5
  195. package/dist/revo-grid/index-4e881436.js.map +0 -1
  196. package/dist/revo-grid/key.utils-425c987d.js +0 -5
  197. package/dist/revo-grid/key.utils-425c987d.js.map +0 -1
  198. package/dist/revo-grid/selection.helpers-accaad4a.js +0 -5
  199. package/dist/revo-grid/viewport.store-d8e03528.js +0 -5
  200. package/dist/revo-grid/viewport.store-d8e03528.js.map +0 -1
  201. package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +0 -17
  202. /package/dist/revo-grid/{header-cell-renderer-fc999784.js.map → header-cell-renderer-261317c3.js.map} +0 -0
  203. /package/dist/revo-grid/{throttle-7283692c.js.map → throttle-041ded8e.js.map} +0 -0
@@ -2,9 +2,10 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { h, proxyCustomElement, HTMLElement, createEvent, Host } from '@stencil/core/internal/client';
5
- import { r as reduce_1, c as calculateDimensionData, _ as _baseEach, e as each, a as getItemByIndex, g as getItemByPosition } from './dimension.helpers.js';
6
- import { i as createStore, h as setStore, _ as _baseIteratee, j as isArrayLike_1, k as keys_1, l as findIndex_1, m as _arrayMap, n as isArray_1, D as DataStore, b as getSourceItem, e as getSourceItemVirtualIndexByProp, s as setSourceByVirtualIndex, a as getVisibleSourceItem, f as gatherTrimmedItems, o as _baseProperty, q as _baseKeys, r as _getTag, u as range_1, v as toInteger_1, w as _isIterateeCall, g as getPhysical, d as setItems } from './data.store.js';
7
- import { _ as _baseGetTag, i as isObjectLike_1 } from './toNumber.js';
5
+ import { r as reduce_1, c as calculateDimensionData, e as each, a as getItemByIndex, g as getItemByPosition } from './dimension.helpers.js';
6
+ import { i as createStore, h as setStore, j as isArray_1, _ as _baseIteratee, k as isArrayLike_1, l as keys_1, m as findIndex_1, D as DataStore, b as getSourceItem, e as getSourceItemVirtualIndexByProp, s as setSourceByVirtualIndex, a as getVisibleSourceItem, f as gatherTrimmedItems, n as _baseProperty, o as _baseKeys, r as range_1, q as toInteger_1, u as _isIterateeCall, g as getPhysical, d as setItems } from './data.store.js';
7
+ import { _ as _getTag } from './_stringToPath.js';
8
+ import { _ as _baseGetTag, i as isObjectLike_1 } from './isObjectLike.js';
8
9
  import { b as isGrouping, d as getGroupingName, G as GROUP_EXPANDED, e as getParsedGroup, f as isSameGroup, h as GROUP_DEPTH, P as PSEUDO_GROUP_ITEM_VALUE, j as PSEUDO_GROUP_ITEM_ID, k as GROUPING_ROW_TYPE, l as PSEUDO_GROUP_COLUMN, m as GROUP_EXPAND_EVENT, o as gatherGrouping, p as isGroupingColumn, E as EMPTY_INDEX, q as SelectionStoreConnector } from './column.service.js';
9
10
  import { d as debounce_1 } from './debounce.js';
10
11
  import { R as RESIZE_INTERVAL } from './consts.js';
@@ -17,7 +18,7 @@ import { g as getPropertyFromEvent } from './selection.utils.js';
17
18
  import { d as defineCustomElement$e } from './revogr-attribution2.js';
18
19
  import { d as defineCustomElement$d } from './revogr-clipboard2.js';
19
20
  import { d as defineCustomElement$c } from './revogr-data2.js';
20
- import { d as defineCustomElement$b } from './revogr-edit2.js';
21
+ import { m as defineCustomElement$b } from './revogr-edit2.js';
21
22
  import { d as defineCustomElement$a } from './revogr-focus2.js';
22
23
  import { d as defineCustomElement$8 } from './revogr-order-editor2.js';
23
24
  import { d as defineCustomElement$7 } from './revogr-overlay-selection2.js';
@@ -294,8 +295,127 @@ class BasePlugin {
294
295
  }
295
296
  }
296
297
 
297
- var baseIteratee$1 = _baseIteratee,
298
- isArrayLike$2 = isArrayLike_1,
298
+ function getColumnType(rgCol) {
299
+ if (rgCol.pin) {
300
+ return rgCol.pin;
301
+ }
302
+ return 'rgCol';
303
+ }
304
+ function getColumnSizes(cols) {
305
+ const res = {};
306
+ for (const [i, c] of cols.entries()) {
307
+ if (c.size) {
308
+ res[i] = c.size;
309
+ }
310
+ }
311
+ return res;
312
+ }
313
+ /**
314
+ * Check if column is grouping column
315
+ */
316
+ function isColGrouping(colData) {
317
+ return !!colData.children;
318
+ }
319
+ /**
320
+ * This function is used to create a collection of columns.
321
+ */
322
+ function getColumns(columns, level = 0, types) {
323
+ const collection = {
324
+ // columns as they are in stores per type
325
+ columns: {
326
+ rgCol: [],
327
+ colPinStart: [],
328
+ colPinEnd: [],
329
+ },
330
+ // columns indexed by prop for quick access
331
+ columnByProp: {},
332
+ // column grouping
333
+ columnGrouping: {
334
+ rgCol: [],
335
+ colPinStart: [],
336
+ colPinEnd: [],
337
+ },
338
+ // max depth level for column grouping
339
+ maxLevel: level,
340
+ // sorting
341
+ sort: {},
342
+ };
343
+ return reduce_1(columns, (res, colData) => {
344
+ // Grouped column
345
+ if (isColGrouping(colData)) {
346
+ return gatherGroup(res, colData, getColumns(colData.children, level + 1, types), level);
347
+ }
348
+ // Regular column
349
+ const regularColumn = Object.assign(Object.assign({}, (colData.columnType && types && types[colData.columnType])), colData);
350
+ // Regular column, no Pin
351
+ if (!regularColumn.pin) {
352
+ res.columns.rgCol.push(regularColumn);
353
+ // Pin
354
+ }
355
+ else {
356
+ res.columns[regularColumn.pin].push(regularColumn);
357
+ }
358
+ if (regularColumn.order) {
359
+ res.sort[regularColumn.prop] = regularColumn;
360
+ }
361
+ // it's possible that some columns have same prop, but better to avoid it
362
+ if (!res.columnByProp[regularColumn.prop]) {
363
+ res.columnByProp[regularColumn.prop] = [];
364
+ }
365
+ res.columnByProp[regularColumn.prop].push(regularColumn);
366
+ // trigger setup hook if present
367
+ regularColumn.beforeSetup && regularColumn.beforeSetup(regularColumn);
368
+ return res;
369
+ }, collection);
370
+ }
371
+ function gatherGroup(res, colData, collection, level = 0) {
372
+ // group template
373
+ const group = Object.assign(Object.assign({}, colData), { level, ids: [] });
374
+ // check columns for update
375
+ for (let k in collection.columns) {
376
+ const key = k;
377
+ const resultItem = res.columns[key];
378
+ const collectionItem = collection.columns[key];
379
+ // if column data
380
+ if (isArray_1(resultItem) && isArray_1(collectionItem)) {
381
+ // fill columns
382
+ resultItem.push(...collectionItem);
383
+ // fill grouping
384
+ if (collectionItem.length) {
385
+ res.columnGrouping[key].push(Object.assign(Object.assign({}, group), { ids: collectionItem.map(item => item.prop) }));
386
+ }
387
+ }
388
+ }
389
+ // merge column groupings
390
+ for (let k in collection.columnGrouping) {
391
+ const key = k;
392
+ const collectionItem = collection.columnGrouping[key];
393
+ res.columnGrouping[key].push(...collectionItem);
394
+ }
395
+ res.maxLevel = Math.max(res.maxLevel, collection.maxLevel);
396
+ res.sort = Object.assign(Object.assign({}, res.sort), collection.sort);
397
+ return res;
398
+ }
399
+ function findColumn(columns, prop) {
400
+ for (const c of columns) {
401
+ if (isColGrouping(c)) {
402
+ const found = findColumn(c.children, prop);
403
+ if (found) {
404
+ return found;
405
+ }
406
+ }
407
+ else if (c.prop === prop) {
408
+ return c;
409
+ }
410
+ }
411
+ return undefined;
412
+ }
413
+ function getColumnByProp(columns, prop) {
414
+ return findColumn(columns, prop);
415
+ }
416
+
417
+ var baseIteratee = _baseIteratee,
418
+ isArrayLike$1 = isArrayLike_1,
299
419
  keys = keys_1;
300
420
 
301
421
  /**
@@ -308,8 +428,8 @@ var baseIteratee$1 = _baseIteratee,
308
428
  function createFind$1(findIndexFunc) {
309
429
  return function(collection, predicate, fromIndex) {
310
430
  var iterable = Object(collection);
311
- if (!isArrayLike$2(collection)) {
312
- var iteratee = baseIteratee$1(predicate);
431
+ if (!isArrayLike$1(collection)) {
432
+ var iteratee = baseIteratee(predicate);
313
433
  collection = keys(collection);
314
434
  predicate = function(key) { return iteratee(iterable[key], key, iterable); };
315
435
  }
@@ -363,133 +483,23 @@ var find = createFind(findIndex);
363
483
 
364
484
  var find_1 = find;
365
485
 
366
- var baseEach = _baseEach,
367
- isArrayLike$1 = isArrayLike_1;
368
-
369
- /**
370
- * The base implementation of `_.map` without support for iteratee shorthands.
371
- *
372
- * @private
373
- * @param {Array|Object} collection The collection to iterate over.
374
- * @param {Function} iteratee The function invoked per iteration.
375
- * @returns {Array} Returns the new mapped array.
376
- */
377
- function baseMap$1(collection, iteratee) {
378
- var index = -1,
379
- result = isArrayLike$1(collection) ? Array(collection.length) : [];
380
-
381
- baseEach(collection, function(value, key, collection) {
382
- result[++index] = iteratee(value, key, collection);
383
- });
384
- return result;
385
- }
386
-
387
- var _baseMap = baseMap$1;
388
-
389
- var arrayMap = _arrayMap,
390
- baseIteratee = _baseIteratee,
391
- baseMap = _baseMap,
392
- isArray$1 = isArray_1;
393
-
394
- /**
395
- * Creates an array of values by running each element in `collection` thru
396
- * `iteratee`. The iteratee is invoked with three arguments:
397
- * (value, index|key, collection).
398
- *
399
- * Many lodash methods are guarded to work as iteratees for methods like
400
- * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
401
- *
402
- * The guarded methods are:
403
- * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,
404
- * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,
405
- * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,
406
- * `template`, `trim`, `trimEnd`, `trimStart`, and `words`
407
- *
408
- * @static
409
- * @memberOf _
410
- * @since 0.1.0
411
- * @category Collection
412
- * @param {Array|Object} collection The collection to iterate over.
413
- * @param {Function} [iteratee=_.identity] The function invoked per iteration.
414
- * @returns {Array} Returns the new mapped array.
415
- * @example
416
- *
417
- * function square(n) {
418
- * return n * n;
419
- * }
420
- *
421
- * _.map([4, 8], square);
422
- * // => [16, 64]
423
- *
424
- * _.map({ 'a': 4, 'b': 8 }, square);
425
- * // => [16, 64] (iteration order is not guaranteed)
426
- *
427
- * var users = [
428
- * { 'user': 'barney' },
429
- * { 'user': 'fred' }
430
- * ];
431
- *
432
- * // The `_.property` iteratee shorthand.
433
- * _.map(users, 'user');
434
- * // => ['barney', 'fred']
435
- */
436
- function map(collection, iteratee) {
437
- var func = isArray$1(collection) ? arrayMap : baseMap;
438
- return func(collection, baseIteratee(iteratee));
439
- }
440
-
441
- var map_1 = map;
442
-
443
- class GroupingColumnPlugin extends BasePlugin {
444
- static gatherGroup(res, colData, collection, level = 0) {
445
- // group template
446
- const group = Object.assign(Object.assign({}, colData), { level, ids: [] });
447
- // check columns for update
448
- for (let k in collection.columns) {
449
- const key = k;
450
- const resultItem = res.columns[key];
451
- const collectionItem = collection.columns[key];
452
- // if column data
453
- if (isArray_1(resultItem) && isArray_1(collectionItem)) {
454
- // fill columns
455
- resultItem.push(...collectionItem);
456
- // fill grouping
457
- if (collectionItem.length) {
458
- res.columnGrouping[key].push(Object.assign(Object.assign({}, group), { ids: map_1(collectionItem, 'prop') }));
459
- }
460
- }
461
- }
462
- // merge column groupings
463
- for (let k in collection.columnGrouping) {
464
- const key = k;
465
- const collectionItem = collection.columnGrouping[key];
466
- res.columnGrouping[key].push(...collectionItem);
467
- }
468
- res.maxLevel = Math.max(res.maxLevel, collection.maxLevel);
469
- res.sort = Object.assign(Object.assign({}, res.sort), collection.sort);
470
- return res;
471
- }
472
- }
473
- /**
474
- * Check if column is grouping column
475
- */
476
- function isColGrouping(colData) {
477
- return !!colData.children;
478
- }
479
-
480
486
  class ColumnDataProvider {
481
487
  get order() {
482
- return reduce_1(this.sorting, (r, c, prop) => {
483
- r[prop] = c.order;
484
- return r;
485
- }, {});
488
+ const order = {};
489
+ const sorting = this.sorting;
490
+ if (sorting) {
491
+ Object.keys(sorting).forEach((prop) => {
492
+ order[prop] = sorting[prop].order;
493
+ });
494
+ }
495
+ return order;
486
496
  }
487
497
  get stores() {
488
498
  return this.dataSources;
489
499
  }
490
500
  constructor() {
491
501
  this.sorting = null;
492
- this.dataSources = reduce_1(columnTypes, (sources, k) => {
502
+ this.dataSources = columnTypes.reduce((sources, k) => {
493
503
  sources[k] = new DataStore(k);
494
504
  return sources;
495
505
  }, {});
@@ -551,7 +561,7 @@ class ColumnDataProvider {
551
561
  updateColumns(cols) {
552
562
  // collect column by type and propert
553
563
  const columnByKey = cols.reduce((res, c) => {
554
- const type = ColumnDataProvider.getColumnType(c);
564
+ const type = getColumnType(c);
555
565
  if (!res[type]) {
556
566
  res[type] = {};
557
567
  }
@@ -560,20 +570,32 @@ class ColumnDataProvider {
560
570
  }, {});
561
571
  // find indexes in source
562
572
  const colByIndex = {};
563
- each(columnByKey, (colsToUpdate, type) => {
573
+ for (const t in columnByKey) {
574
+ if (!columnByKey.hasOwnProperty(t)) {
575
+ continue;
576
+ }
577
+ const type = t;
578
+ const colsToUpdate = columnByKey[type];
564
579
  const items = this.dataSources[type].store.get('source');
565
- colByIndex[type] = items.reduce((result, rgCol, index) => {
580
+ colByIndex[type] = {};
581
+ for (let i = 0; i < items.length; i++) {
582
+ const rgCol = items[i];
566
583
  const colToUpdateIfExists = colsToUpdate === null || colsToUpdate === void 0 ? void 0 : colsToUpdate[rgCol.prop];
567
584
  if (colToUpdateIfExists) {
568
- result[index] = colToUpdateIfExists;
585
+ colByIndex[type][i] = colToUpdateIfExists;
569
586
  }
570
- return result;
571
- }, {});
572
- });
573
- each(colByIndex, (colsToUpdate, type) => setSourceByVirtualIndex(this.dataSources[type].store, colsToUpdate || {}));
587
+ }
588
+ }
589
+ for (const t in colByIndex) {
590
+ if (!colByIndex.hasOwnProperty(t)) {
591
+ continue;
592
+ }
593
+ const type = t;
594
+ setSourceByVirtualIndex(this.dataSources[type].store, colByIndex[type] || {});
595
+ }
574
596
  }
575
597
  updateColumn(column, index) {
576
- const type = ColumnDataProvider.getColumnType(column);
598
+ const type = getColumnType(column);
577
599
  setSourceByVirtualIndex(this.dataSources[type].store, { [index]: column });
578
600
  }
579
601
  updateColumnSorting(column, index, sorting, additive) {
@@ -590,7 +612,7 @@ class ColumnDataProvider {
590
612
  }
591
613
  clearSorting() {
592
614
  const types = reduce_1(this.sorting, (r, c) => {
593
- const k = ColumnDataProvider.getColumnType(c);
615
+ const k = getColumnType(c);
594
616
  r[k] = true;
595
617
  return r;
596
618
  }, {});
@@ -601,78 +623,6 @@ class ColumnDataProvider {
601
623
  });
602
624
  this.sorting = {};
603
625
  }
604
- static getSizes(cols) {
605
- return reduce_1(cols, (res, c, i) => {
606
- if (c.size) {
607
- res[i] = c.size;
608
- }
609
- return res;
610
- }, {});
611
- }
612
- static getColumnByProp(columns, prop) {
613
- return find_1(columns, c => {
614
- if (isColGrouping(c)) {
615
- return ColumnDataProvider.getColumnByProp(c.children, prop);
616
- }
617
- return c.prop === prop;
618
- });
619
- }
620
- // columns processing
621
- static getColumns(columns, level = 0, types) {
622
- const collection = {
623
- // columns as they are in stores per type
624
- columns: {
625
- rgCol: [],
626
- colPinStart: [],
627
- colPinEnd: [],
628
- },
629
- // columns grouped by prop for quick access
630
- columnByProp: {},
631
- // column grouping
632
- columnGrouping: {
633
- rgCol: [],
634
- colPinStart: [],
635
- colPinEnd: [],
636
- },
637
- // max depth level for column grouping
638
- maxLevel: level,
639
- // sorting
640
- sort: {},
641
- };
642
- return reduce_1(columns, (res, colData) => {
643
- // Grouped column
644
- if (isColGrouping(colData)) {
645
- return GroupingColumnPlugin.gatherGroup(res, colData, ColumnDataProvider.getColumns(colData.children, level + 1, types), level);
646
- }
647
- // Regular column
648
- const regularColumn = Object.assign(Object.assign({}, (colData.columnType && types && types[colData.columnType])), colData);
649
- // Regular column, no Pin
650
- if (!regularColumn.pin) {
651
- res.columns.rgCol.push(regularColumn);
652
- // Pin
653
- }
654
- else {
655
- res.columns[regularColumn.pin].push(regularColumn);
656
- }
657
- if (regularColumn.order) {
658
- res.sort[regularColumn.prop] = regularColumn;
659
- }
660
- // technically it's possible that some columns have same prop, but better to avoid it
661
- if (!res.columnByProp[regularColumn.prop]) {
662
- res.columnByProp[regularColumn.prop] = [];
663
- }
664
- res.columnByProp[regularColumn.prop].push(regularColumn);
665
- // trigger setup hook if present
666
- regularColumn.beforeSetup && regularColumn.beforeSetup(regularColumn);
667
- return res;
668
- }, collection);
669
- }
670
- static getColumnType(rgCol) {
671
- if (rgCol.pin) {
672
- return rgCol.pin;
673
- }
674
- return 'rgCol';
675
- }
676
626
  }
677
627
 
678
628
  /**
@@ -823,7 +773,7 @@ class DimensionProvider {
823
773
  // setItemCount
824
774
  this.stores[type].setStore({ count: items.length });
825
775
  // setCustomSizes
826
- const newSizes = ColumnDataProvider.getSizes(items);
776
+ const newSizes = getColumnSizes(items);
827
777
  this.stores[type].setDimensionSize(newSizes);
828
778
  const vpUpdate = {
829
779
  // this triggers drop on realCount change
@@ -938,7 +888,7 @@ class AutoSizeColumnPlugin extends BasePlugin {
938
888
  this.columnSet(columns);
939
889
  };
940
890
  const headerDblClick = ({ detail }) => {
941
- const type = ColumnDataProvider.getColumnType(detail.column);
891
+ const type = getColumnType(detail.column);
942
892
  const size = this.getColumnSize(detail.index, type);
943
893
  if (size) {
944
894
  this.providers.dimension.setCustomSizes(type, {
@@ -1761,7 +1711,7 @@ class SortingPlugin extends BasePlugin {
1761
1711
  const columns = (await this.revogrid.getColumns());
1762
1712
  const sortingFunc = {};
1763
1713
  for (let prop in order) {
1764
- const cmp = this.getComparer(ColumnDataProvider.getColumnByProp(columns, prop), order[prop]);
1714
+ const cmp = this.getComparer(getColumnByProp(columns, prop), order[prop]);
1765
1715
  sortingFunc[prop] = cmp;
1766
1716
  }
1767
1717
  this.runSorting(order, sortingFunc);
@@ -3550,7 +3500,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3550
3500
  /** Open editor for cell. */
3551
3501
  async setCellEdit(rgRow, prop, rowSource = 'rgRow') {
3552
3502
  var _a;
3553
- const rgCol = ColumnDataProvider.getColumnByProp(this.columns, prop);
3503
+ const rgCol = getColumnByProp(this.columns, prop);
3554
3504
  if (!rgCol) {
3555
3505
  return;
3556
3506
  }
@@ -3774,7 +3724,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3774
3724
  this.columnChanged(this.columns);
3775
3725
  }
3776
3726
  columnChanged(newVal = []) {
3777
- const columnGather = ColumnDataProvider.getColumns(newVal, 0, this.columnTypes);
3727
+ const columnGather = getColumns(newVal, 0, this.columnTypes);
3778
3728
  this.beforecolumnsset.emit(columnGather);
3779
3729
  this.dimensionProvider.applyNewColumns(columnGather.columns, this.disableVirtualX);
3780
3730
  this.beforecolumnapplied.emit(columnGather);
@@ -4084,7 +4034,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
4084
4034
  const headerProperties = Object.assign(Object.assign({}, view.headerProp), { type: view.type, additionalData: this.additionalData, viewportCol: view.viewportCol, selectionStore: view.columnSelectionStore, canResize: this.resize, readonly: this.readonly, columnFilter: !!this.filter });
4085
4035
  // Column headers
4086
4036
  const dataViews = [
4087
- h("revogr-header", Object.assign({ key: 'b08c837765cf20c88cb5b253a876f0f442c31628' }, headerProperties, { slot: HEADER_SLOT })),
4037
+ h("revogr-header", Object.assign({ key: 'bada77126c317da09a9826312186c16617c7b0af' }, headerProperties, { slot: HEADER_SLOT })),
4088
4038
  ];
4089
4039
  // Render viewport data (vertical sections)
4090
4040
  view.dataPorts.forEach(data => {
@@ -4106,12 +4056,12 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
4106
4056
  const typeCol = 'rgCol';
4107
4057
  const viewports = this.viewportProvider.stores;
4108
4058
  const dimensions = this.dimensionProvider.stores;
4109
- return (h(Host, { key: '057a2cf1a64aaeec12d2aca17b09316fb3cbfde6' }, this.hideAttribution ? null : (h("revogr-attribution", { class: "attribution" })), h("div", { key: 'e89e3d136d756f80421f42f47e09583985edb1bc', class: "main-viewport", onClick: (e) => {
4059
+ return (h(Host, { key: '9b95aef4de8af770036a733986e7e0fe2dd3ffda' }, this.hideAttribution ? null : (h("revogr-attribution", { class: "attribution" })), h("div", { key: '68dbc0fca826a0089402157d301c49a0776e9007', class: "main-viewport", onClick: (e) => {
4110
4060
  var _a;
4111
4061
  if (e.currentTarget === e.target) {
4112
4062
  (_a = this.viewport) === null || _a === void 0 ? void 0 : _a.clearEdit();
4113
4063
  }
4114
- } }, h("div", { key: '177db78970907d36b8d56549386a18a683573944', class: "viewports" }, h("slot", { key: '481d830a232b1969fcaa2519a5306fafaff58fb4', name: "viewport" }), viewportSections, h("revogr-scroll-virtual", { key: '6a123b2e84bec95d7a63a73322fe167248e8415e', class: "vertical", dimension: typeRow, viewportStore: viewports[typeRow].store, dimensionStore: dimensions[typeRow].store, ref: el => this.scrollingService.registerElement(el, 'rowScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }), h(OrderRenderer, { key: 'fea1be24668f2039746fff93d0ab5e76d932a166', ref: e => (this.orderService = e) }))), h("revogr-scroll-virtual", { key: '74c6e05c81b2782320755c910b098edf8858d6db', class: "horizontal", dimension: typeCol, viewportStore: viewports[typeCol].store, dimensionStore: dimensions[typeCol].store, ref: el => this.scrollingService.registerElement(el, 'colScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }), this.extraElements));
4064
+ } }, h("div", { key: '6f927e04dd8c7e542a87fdc0a4f6d74248c65ccb', class: "viewports" }, h("slot", { key: 'b6d421fa412b34ce9821cd1fa30a80ae37282f37', name: "viewport" }), viewportSections, h("revogr-scroll-virtual", { key: '4ce3045201685f6c6c617c84fddc5a3d531034bd', class: "vertical", dimension: typeRow, viewportStore: viewports[typeRow].store, dimensionStore: dimensions[typeRow].store, ref: el => this.scrollingService.registerElement(el, 'rowScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }), h(OrderRenderer, { key: 'e5bd92c37bdc31f0601a4d4cf4a62026e0e25406', ref: e => (this.orderService = e) }))), h("revogr-scroll-virtual", { key: 'dbda0fb90cf6a9eb6ac66ca16bcff30cf254b1e1', class: "horizontal", dimension: typeCol, viewportStore: viewports[typeCol].store, dimensionStore: dimensions[typeCol].store, ref: el => this.scrollingService.registerElement(el, 'colScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }), this.extraElements));
4115
4065
  }
4116
4066
  disconnectedCallback() {
4117
4067
  // Remove all plugins, to avoid memory leaks and unexpected behaviour when the component is removed
@@ -4296,6 +4246,6 @@ function defineCustomElement$1() {
4296
4246
  const RevoGrid = RevoGridComponent;
4297
4247
  const defineCustomElement = defineCustomElement$1;
4298
4248
 
4299
- export { BasePlugin as B, DimensionStore as D, RevoGrid, ThemeService as T, columnTypes as c, defineCustomElement, isRowType as i, rowTypes as r };
4249
+ export { BasePlugin as B, DimensionStore as D, RevoGrid, ThemeService as T, getColumnSizes as a, isColGrouping as b, columnTypes as c, getColumns as d, defineCustomElement, gatherGroup as e, getColumnByProp as f, getColumnType as g, isRowType as i, rowTypes as r };
4300
4250
 
4301
4251
  //# sourceMappingURL=revo-grid.js.map