@revolist/revogrid 4.9.3 → 4.9.5

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 (124) hide show
  1. package/dist/cjs/{column.service-01f4a6c7.js → column.service-08df359f.js} +3 -3
  2. package/dist/cjs/{column.service-01f4a6c7.js.map → column.service-08df359f.js.map} +1 -1
  3. package/dist/cjs/{base.plugin-bf5f43a0.js → column.utils-0f0f4dc4.js} +127 -2
  4. package/dist/cjs/column.utils-0f0f4dc4.js.map +1 -0
  5. package/dist/cjs/{dimension.helpers-a6788214.js → dimension.helpers-85294778.js} +1 -2
  6. package/dist/cjs/dimension.helpers-85294778.js.map +1 -0
  7. package/dist/cjs/{header-cell-renderer-3bc70679.js → header-cell-renderer-fb2f9a2d.js} +2 -2
  8. package/dist/cjs/{header-cell-renderer-3bc70679.js.map → header-cell-renderer-fb2f9a2d.js.map} +1 -1
  9. package/dist/cjs/index.cjs.js +15 -9
  10. package/dist/cjs/index.cjs.js.map +1 -1
  11. package/dist/cjs/revo-grid.cjs.entry.js +80 -250
  12. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  13. package/dist/cjs/revogr-attribution_6.cjs.entry.js +8 -7
  14. package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -1
  15. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +3 -3
  16. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
  17. package/dist/cjs/revogr-data_4.cjs.entry.js +4 -4
  18. package/dist/cjs/{selection.helpers-1a8c8d49.js → selection.helpers-371a38aa.js} +2 -2
  19. package/dist/cjs/{selection.helpers-1a8c8d49.js.map → selection.helpers-371a38aa.js.map} +1 -1
  20. package/dist/cjs/{viewport.store-35a3e7ee.js → viewport.store-300977e4.js} +2 -2
  21. package/dist/cjs/{viewport.store-35a3e7ee.js.map → viewport.store-300977e4.js.map} +1 -1
  22. package/dist/collection/components/clipboard/revogr-clipboard.js +2 -2
  23. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -1
  24. package/dist/collection/components/editors/revogr-edit.js +1 -1
  25. package/dist/collection/components/overlay/revogr-overlay-selection.js +19 -8
  26. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
  27. package/dist/collection/components/overlay/selection.utils.js.map +1 -1
  28. package/dist/collection/components/revoGrid/revo-grid.js +12 -11
  29. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  30. package/dist/collection/index.js +1 -0
  31. package/dist/collection/index.js.map +1 -1
  32. package/dist/collection/plugins/base.plugin.js.map +1 -1
  33. package/dist/collection/plugins/column.auto-size.plugin.js +2 -2
  34. package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -1
  35. package/dist/collection/plugins/column.stretch.plugin.js.map +1 -1
  36. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
  37. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +1 -1
  38. package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -1
  39. package/dist/collection/plugins/sorting/sorting.plugin.js +2 -2
  40. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
  41. package/dist/collection/services/column.data.provider.js +32 -88
  42. package/dist/collection/services/column.data.provider.js.map +1 -1
  43. package/dist/collection/services/dimension.provider.js +2 -2
  44. package/dist/collection/services/dimension.provider.js.map +1 -1
  45. package/dist/collection/types/interfaces.js.map +1 -1
  46. package/dist/collection/utils/column.utils.js +124 -0
  47. package/dist/collection/utils/column.utils.js.map +1 -0
  48. package/dist/esm/{column.service-5d14e7e9.js → column.service-cfc1149b.js} +3 -3
  49. package/dist/esm/{column.service-5d14e7e9.js.map → column.service-cfc1149b.js.map} +1 -1
  50. package/dist/esm/{base.plugin-5e7a3c51.js → column.utils-f6300fb5.js} +122 -3
  51. package/dist/esm/column.utils-f6300fb5.js.map +1 -0
  52. package/dist/esm/{dimension.helpers-56298828.js → dimension.helpers-938ea850.js} +2 -2
  53. package/dist/esm/dimension.helpers-938ea850.js.map +1 -0
  54. package/dist/esm/{header-cell-renderer-fc999784.js → header-cell-renderer-6f8eb067.js} +2 -2
  55. package/dist/esm/{header-cell-renderer-fc999784.js.map → header-cell-renderer-6f8eb067.js.map} +1 -1
  56. package/dist/esm/index.js +4 -4
  57. package/dist/esm/revo-grid.entry.js +49 -219
  58. package/dist/esm/revo-grid.entry.js.map +1 -1
  59. package/dist/esm/revogr-attribution_6.entry.js +8 -7
  60. package/dist/esm/revogr-attribution_6.entry.js.map +1 -1
  61. package/dist/esm/revogr-clipboard_3.entry.js +3 -3
  62. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
  63. package/dist/esm/revogr-data_4.entry.js +4 -4
  64. package/dist/esm/{selection.helpers-accaad4a.js → selection.helpers-a49a3d09.js} +2 -2
  65. package/dist/esm/{selection.helpers-accaad4a.js.map → selection.helpers-a49a3d09.js.map} +1 -1
  66. package/dist/esm/{viewport.store-d8e03528.js → viewport.store-a690096b.js} +2 -2
  67. package/dist/esm/{viewport.store-d8e03528.js.map → viewport.store-a690096b.js.map} +1 -1
  68. package/dist/revo-grid/{column.service-5d14e7e9.js → column.service-cfc1149b.js} +2 -2
  69. package/dist/revo-grid/column.utils-f6300fb5.js +5 -0
  70. package/dist/revo-grid/column.utils-f6300fb5.js.map +1 -0
  71. package/dist/revo-grid/{dimension.helpers-56298828.js → dimension.helpers-938ea850.js} +2 -2
  72. package/dist/revo-grid/{header-cell-renderer-fc999784.js → header-cell-renderer-6f8eb067.js} +2 -2
  73. package/dist/revo-grid/index.esm.js +1 -1
  74. package/dist/revo-grid/revo-grid.entry.js +1 -1
  75. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  76. package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
  77. package/dist/revo-grid/revogr-attribution_6.entry.js.map +1 -1
  78. package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
  79. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
  80. package/dist/revo-grid/revogr-data_4.entry.js +1 -1
  81. package/dist/revo-grid/{selection.helpers-accaad4a.js → selection.helpers-a49a3d09.js} +2 -2
  82. package/dist/revo-grid/{viewport.store-d8e03528.js → viewport.store-a690096b.js} +2 -2
  83. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +6 -2
  84. package/dist/types/components/overlay/selection.utils.d.ts +2 -1
  85. package/dist/types/components/revoGrid/revo-grid.d.ts +2 -1
  86. package/dist/types/components.d.ts +8 -6
  87. package/dist/types/index.d.ts +1 -0
  88. package/dist/types/plugins/base.plugin.d.ts +1 -1
  89. package/dist/types/plugins/column.auto-size.plugin.d.ts +1 -2
  90. package/dist/types/plugins/column.stretch.plugin.d.ts +2 -4
  91. package/dist/types/services/column.data.provider.d.ts +2 -13
  92. package/dist/types/services/dimension.provider.d.ts +0 -1
  93. package/dist/types/types/interfaces.d.ts +11 -11
  94. package/dist/types/utils/column.utils.d.ts +46 -0
  95. package/hydrate/index.js +304 -354
  96. package/hydrate/index.mjs +304 -354
  97. package/package.json +1 -1
  98. package/standalone/column.service.js +1 -1
  99. package/standalone/data.store.js +1 -1
  100. package/standalone/data.store.js.map +1 -1
  101. package/standalone/dimension.helpers.js +1 -1
  102. package/standalone/index.js +1 -1
  103. package/standalone/revo-grid.js +165 -216
  104. package/standalone/revo-grid.js.map +1 -1
  105. package/standalone/revogr-clipboard2.js +2 -2
  106. package/standalone/revogr-clipboard2.js.map +1 -1
  107. package/standalone/revogr-header2.js +1 -1
  108. package/standalone/revogr-overlay-selection2.js +4 -3
  109. package/standalone/revogr-overlay-selection2.js.map +1 -1
  110. package/standalone/selection.utils.js.map +1 -1
  111. package/dist/cjs/base.plugin-bf5f43a0.js.map +0 -1
  112. package/dist/cjs/dimension.helpers-a6788214.js.map +0 -1
  113. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js +0 -43
  114. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +0 -1
  115. package/dist/esm/base.plugin-5e7a3c51.js.map +0 -1
  116. package/dist/esm/dimension.helpers-56298828.js.map +0 -1
  117. package/dist/revo-grid/base.plugin-5e7a3c51.js +0 -5
  118. package/dist/revo-grid/base.plugin-5e7a3c51.js.map +0 -1
  119. package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +0 -17
  120. /package/dist/revo-grid/{column.service-5d14e7e9.js.map → column.service-cfc1149b.js.map} +0 -0
  121. /package/dist/revo-grid/{dimension.helpers-56298828.js.map → dimension.helpers-938ea850.js.map} +0 -0
  122. /package/dist/revo-grid/{header-cell-renderer-fc999784.js.map → header-cell-renderer-6f8eb067.js.map} +0 -0
  123. /package/dist/revo-grid/{selection.helpers-accaad4a.js.map → selection.helpers-a49a3d09.js.map} +0 -0
  124. /package/dist/revo-grid/{viewport.store-d8e03528.js.map → viewport.store-a690096b.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import { k as keys_1, j as isArrayLike_1, _ as _baseIteratee, n as isArray_1, y as identity_1 } from './data.store.js';
4
+ import { l as keys_1, k as isArrayLike_1, _ as _baseIteratee, j as isArray_1, x as identity_1 } from './data.store.js';
5
5
  import { e as isSymbol_1 } from './toNumber.js';
6
6
 
7
7
  /**
@@ -4,7 +4,7 @@
4
4
  import { setMode } from '@stencil/core/internal/client';
5
5
  export { getAssetPath, h, setAssetPath, setNonce, setPlatformOptions } from '@stencil/core/internal/client';
6
6
  import { T as ThemeService } from './revo-grid.js';
7
- export { B as BasePlugin, D as DimensionStore, RevoGrid, c as columnTypes, defineCustomElement as defineCustomElementRevoGrid, i as isRowType, r as rowTypes } from './revo-grid.js';
7
+ export { B as BasePlugin, D as DimensionStore, RevoGrid, c as columnTypes, defineCustomElement as defineCustomElementRevoGrid, e as gatherGroup, f as getColumnByProp, a as getColumnSizes, g as getColumnType, d as getColumns, b as isColGrouping, i as isRowType, r as rowTypes } from './revo-grid.js';
8
8
  export { d as dispatch, a as dispatchByEvent } from './revogr-header2.js';
9
9
  export { D as DataStore, f as gatherTrimmedItems, g as getPhysical, b as getSourceItem, e as getSourceItemVirtualIndexByProp, a as getVisibleSourceItem, p as proxyPlugin, d as setItems, c as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, h as setStore, t as trimmedPlugin } from './data.store.js';
10
10
  export { RevogrAttribution, defineCustomElement as defineCustomElementRevogrAttribution } from './revogr-attribution.js';
@@ -2,8 +2,8 @@
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';
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, q as _getTag, r as range_1, u as toInteger_1, v as _isIterateeCall, g as getPhysical, d as setItems } from './data.store.js';
7
7
  import { _ as _baseGetTag, i as isObjectLike_1 } from './toNumber.js';
8
8
  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
9
  import { d as debounce_1 } from './debounce.js';
@@ -294,8 +294,127 @@ class BasePlugin {
294
294
  }
295
295
  }
296
296
 
297
- var baseIteratee$1 = _baseIteratee,
298
- isArrayLike$2 = isArrayLike_1,
297
+ function getColumnType(rgCol) {
298
+ if (rgCol.pin) {
299
+ return rgCol.pin;
300
+ }
301
+ return 'rgCol';
302
+ }
303
+ function getColumnSizes(cols) {
304
+ const res = {};
305
+ for (const [i, c] of cols.entries()) {
306
+ if (c.size) {
307
+ res[i] = c.size;
308
+ }
309
+ }
310
+ return res;
311
+ }
312
+ /**
313
+ * Check if column is grouping column
314
+ */
315
+ function isColGrouping(colData) {
316
+ return !!colData.children;
317
+ }
318
+ /**
319
+ * This function is used to create a collection of columns.
320
+ */
321
+ function getColumns(columns, level = 0, types) {
322
+ const collection = {
323
+ // columns as they are in stores per type
324
+ columns: {
325
+ rgCol: [],
326
+ colPinStart: [],
327
+ colPinEnd: [],
328
+ },
329
+ // columns indexed by prop for quick access
330
+ columnByProp: {},
331
+ // column grouping
332
+ columnGrouping: {
333
+ rgCol: [],
334
+ colPinStart: [],
335
+ colPinEnd: [],
336
+ },
337
+ // max depth level for column grouping
338
+ maxLevel: level,
339
+ // sorting
340
+ sort: {},
341
+ };
342
+ return reduce_1(columns, (res, colData) => {
343
+ // Grouped column
344
+ if (isColGrouping(colData)) {
345
+ return gatherGroup(res, colData, getColumns(colData.children, level + 1, types), level);
346
+ }
347
+ // Regular column
348
+ const regularColumn = Object.assign(Object.assign({}, (colData.columnType && types && types[colData.columnType])), colData);
349
+ // Regular column, no Pin
350
+ if (!regularColumn.pin) {
351
+ res.columns.rgCol.push(regularColumn);
352
+ // Pin
353
+ }
354
+ else {
355
+ res.columns[regularColumn.pin].push(regularColumn);
356
+ }
357
+ if (regularColumn.order) {
358
+ res.sort[regularColumn.prop] = regularColumn;
359
+ }
360
+ // it's possible that some columns have same prop, but better to avoid it
361
+ if (!res.columnByProp[regularColumn.prop]) {
362
+ res.columnByProp[regularColumn.prop] = [];
363
+ }
364
+ res.columnByProp[regularColumn.prop].push(regularColumn);
365
+ // trigger setup hook if present
366
+ regularColumn.beforeSetup && regularColumn.beforeSetup(regularColumn);
367
+ return res;
368
+ }, collection);
369
+ }
370
+ function gatherGroup(res, colData, collection, level = 0) {
371
+ // group template
372
+ const group = Object.assign(Object.assign({}, colData), { level, ids: [] });
373
+ // check columns for update
374
+ for (let k in collection.columns) {
375
+ const key = k;
376
+ const resultItem = res.columns[key];
377
+ const collectionItem = collection.columns[key];
378
+ // if column data
379
+ if (isArray_1(resultItem) && isArray_1(collectionItem)) {
380
+ // fill columns
381
+ resultItem.push(...collectionItem);
382
+ // fill grouping
383
+ if (collectionItem.length) {
384
+ res.columnGrouping[key].push(Object.assign(Object.assign({}, group), { ids: collectionItem.map(item => item.prop) }));
385
+ }
386
+ }
387
+ }
388
+ // merge column groupings
389
+ for (let k in collection.columnGrouping) {
390
+ const key = k;
391
+ const collectionItem = collection.columnGrouping[key];
392
+ res.columnGrouping[key].push(...collectionItem);
393
+ }
394
+ res.maxLevel = Math.max(res.maxLevel, collection.maxLevel);
395
+ res.sort = Object.assign(Object.assign({}, res.sort), collection.sort);
396
+ return res;
397
+ }
398
+ function findColumn(columns, prop) {
399
+ for (const c of columns) {
400
+ if (isColGrouping(c)) {
401
+ const found = findColumn(c.children, prop);
402
+ if (found) {
403
+ return found;
404
+ }
405
+ }
406
+ else if (c.prop === prop) {
407
+ return c;
408
+ }
409
+ }
410
+ return undefined;
411
+ }
412
+ function getColumnByProp(columns, prop) {
413
+ return findColumn(columns, prop);
414
+ }
415
+
416
+ var baseIteratee = _baseIteratee,
417
+ isArrayLike$1 = isArrayLike_1,
299
418
  keys = keys_1;
300
419
 
301
420
  /**
@@ -308,8 +427,8 @@ var baseIteratee$1 = _baseIteratee,
308
427
  function createFind$1(findIndexFunc) {
309
428
  return function(collection, predicate, fromIndex) {
310
429
  var iterable = Object(collection);
311
- if (!isArrayLike$2(collection)) {
312
- var iteratee = baseIteratee$1(predicate);
430
+ if (!isArrayLike$1(collection)) {
431
+ var iteratee = baseIteratee(predicate);
313
432
  collection = keys(collection);
314
433
  predicate = function(key) { return iteratee(iterable[key], key, iterable); };
315
434
  }
@@ -363,133 +482,23 @@ var find = createFind(findIndex);
363
482
 
364
483
  var find_1 = find;
365
484
 
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
485
  class ColumnDataProvider {
481
486
  get order() {
482
- return reduce_1(this.sorting, (r, c, prop) => {
483
- r[prop] = c.order;
484
- return r;
485
- }, {});
487
+ const order = {};
488
+ const sorting = this.sorting;
489
+ if (sorting) {
490
+ Object.keys(sorting).forEach((prop) => {
491
+ order[prop] = sorting[prop].order;
492
+ });
493
+ }
494
+ return order;
486
495
  }
487
496
  get stores() {
488
497
  return this.dataSources;
489
498
  }
490
499
  constructor() {
491
500
  this.sorting = null;
492
- this.dataSources = reduce_1(columnTypes, (sources, k) => {
501
+ this.dataSources = columnTypes.reduce((sources, k) => {
493
502
  sources[k] = new DataStore(k);
494
503
  return sources;
495
504
  }, {});
@@ -551,7 +560,7 @@ class ColumnDataProvider {
551
560
  updateColumns(cols) {
552
561
  // collect column by type and propert
553
562
  const columnByKey = cols.reduce((res, c) => {
554
- const type = ColumnDataProvider.getColumnType(c);
563
+ const type = getColumnType(c);
555
564
  if (!res[type]) {
556
565
  res[type] = {};
557
566
  }
@@ -560,20 +569,32 @@ class ColumnDataProvider {
560
569
  }, {});
561
570
  // find indexes in source
562
571
  const colByIndex = {};
563
- each(columnByKey, (colsToUpdate, type) => {
572
+ for (const t in columnByKey) {
573
+ if (!columnByKey.hasOwnProperty(t)) {
574
+ continue;
575
+ }
576
+ const type = t;
577
+ const colsToUpdate = columnByKey[type];
564
578
  const items = this.dataSources[type].store.get('source');
565
- colByIndex[type] = items.reduce((result, rgCol, index) => {
579
+ colByIndex[type] = {};
580
+ for (let i = 0; i < items.length; i++) {
581
+ const rgCol = items[i];
566
582
  const colToUpdateIfExists = colsToUpdate === null || colsToUpdate === void 0 ? void 0 : colsToUpdate[rgCol.prop];
567
583
  if (colToUpdateIfExists) {
568
- result[index] = colToUpdateIfExists;
584
+ colByIndex[type][i] = colToUpdateIfExists;
569
585
  }
570
- return result;
571
- }, {});
572
- });
573
- each(colByIndex, (colsToUpdate, type) => setSourceByVirtualIndex(this.dataSources[type].store, colsToUpdate || {}));
586
+ }
587
+ }
588
+ for (const t in colByIndex) {
589
+ if (!colByIndex.hasOwnProperty(t)) {
590
+ continue;
591
+ }
592
+ const type = t;
593
+ setSourceByVirtualIndex(this.dataSources[type].store, colByIndex[type] || {});
594
+ }
574
595
  }
575
596
  updateColumn(column, index) {
576
- const type = ColumnDataProvider.getColumnType(column);
597
+ const type = getColumnType(column);
577
598
  setSourceByVirtualIndex(this.dataSources[type].store, { [index]: column });
578
599
  }
579
600
  updateColumnSorting(column, index, sorting, additive) {
@@ -590,7 +611,7 @@ class ColumnDataProvider {
590
611
  }
591
612
  clearSorting() {
592
613
  const types = reduce_1(this.sorting, (r, c) => {
593
- const k = ColumnDataProvider.getColumnType(c);
614
+ const k = getColumnType(c);
594
615
  r[k] = true;
595
616
  return r;
596
617
  }, {});
@@ -601,78 +622,6 @@ class ColumnDataProvider {
601
622
  });
602
623
  this.sorting = {};
603
624
  }
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
625
  }
677
626
 
678
627
  /**
@@ -823,7 +772,7 @@ class DimensionProvider {
823
772
  // setItemCount
824
773
  this.stores[type].setStore({ count: items.length });
825
774
  // setCustomSizes
826
- const newSizes = ColumnDataProvider.getSizes(items);
775
+ const newSizes = getColumnSizes(items);
827
776
  this.stores[type].setDimensionSize(newSizes);
828
777
  const vpUpdate = {
829
778
  // this triggers drop on realCount change
@@ -938,7 +887,7 @@ class AutoSizeColumnPlugin extends BasePlugin {
938
887
  this.columnSet(columns);
939
888
  };
940
889
  const headerDblClick = ({ detail }) => {
941
- const type = ColumnDataProvider.getColumnType(detail.column);
890
+ const type = getColumnType(detail.column);
942
891
  const size = this.getColumnSize(detail.index, type);
943
892
  if (size) {
944
893
  this.providers.dimension.setCustomSizes(type, {
@@ -1761,7 +1710,7 @@ class SortingPlugin extends BasePlugin {
1761
1710
  const columns = (await this.revogrid.getColumns());
1762
1711
  const sortingFunc = {};
1763
1712
  for (let prop in order) {
1764
- const cmp = this.getComparer(ColumnDataProvider.getColumnByProp(columns, prop), order[prop]);
1713
+ const cmp = this.getComparer(getColumnByProp(columns, prop), order[prop]);
1765
1714
  sortingFunc[prop] = cmp;
1766
1715
  }
1767
1716
  this.runSorting(order, sortingFunc);
@@ -3550,7 +3499,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3550
3499
  /** Open editor for cell. */
3551
3500
  async setCellEdit(rgRow, prop, rowSource = 'rgRow') {
3552
3501
  var _a;
3553
- const rgCol = ColumnDataProvider.getColumnByProp(this.columns, prop);
3502
+ const rgCol = getColumnByProp(this.columns, prop);
3554
3503
  if (!rgCol) {
3555
3504
  return;
3556
3505
  }
@@ -3774,7 +3723,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3774
3723
  this.columnChanged(this.columns);
3775
3724
  }
3776
3725
  columnChanged(newVal = []) {
3777
- const columnGather = ColumnDataProvider.getColumns(newVal, 0, this.columnTypes);
3726
+ const columnGather = getColumns(newVal, 0, this.columnTypes);
3778
3727
  this.beforecolumnsset.emit(columnGather);
3779
3728
  this.dimensionProvider.applyNewColumns(columnGather.columns, this.disableVirtualX);
3780
3729
  this.beforecolumnapplied.emit(columnGather);
@@ -4084,7 +4033,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
4084
4033
  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
4034
  // Column headers
4086
4035
  const dataViews = [
4087
- h("revogr-header", Object.assign({ key: 'b08c837765cf20c88cb5b253a876f0f442c31628' }, headerProperties, { slot: HEADER_SLOT })),
4036
+ h("revogr-header", Object.assign({ key: 'bada77126c317da09a9826312186c16617c7b0af' }, headerProperties, { slot: HEADER_SLOT })),
4088
4037
  ];
4089
4038
  // Render viewport data (vertical sections)
4090
4039
  view.dataPorts.forEach(data => {
@@ -4106,12 +4055,12 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
4106
4055
  const typeCol = 'rgCol';
4107
4056
  const viewports = this.viewportProvider.stores;
4108
4057
  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) => {
4058
+ return (h(Host, { key: '9b95aef4de8af770036a733986e7e0fe2dd3ffda' }, this.hideAttribution ? null : (h("revogr-attribution", { class: "attribution" })), h("div", { key: '68dbc0fca826a0089402157d301c49a0776e9007', class: "main-viewport", onClick: (e) => {
4110
4059
  var _a;
4111
4060
  if (e.currentTarget === e.target) {
4112
4061
  (_a = this.viewport) === null || _a === void 0 ? void 0 : _a.clearEdit();
4113
4062
  }
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));
4063
+ } }, 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
4064
  }
4116
4065
  disconnectedCallback() {
4117
4066
  // Remove all plugins, to avoid memory leaks and unexpected behaviour when the component is removed
@@ -4296,6 +4245,6 @@ function defineCustomElement$1() {
4296
4245
  const RevoGrid = RevoGridComponent;
4297
4246
  const defineCustomElement = defineCustomElement$1;
4298
4247
 
4299
- export { BasePlugin as B, DimensionStore as D, RevoGrid, ThemeService as T, columnTypes as c, defineCustomElement, isRowType as i, rowTypes as r };
4248
+ 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
4249
 
4301
4250
  //# sourceMappingURL=revo-grid.js.map