@revolist/revogrid 4.9.41 → 4.10.1

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 (167) hide show
  1. package/dist/cjs/{column.drag.plugin-fcd892ec.js → column.drag.plugin-08ca04f4.js} +129 -58
  2. package/dist/cjs/column.drag.plugin-08ca04f4.js.map +1 -0
  3. package/dist/cjs/column.service-2670e6e7.js +1286 -0
  4. package/dist/cjs/column.service-2670e6e7.js.map +1 -0
  5. package/dist/cjs/{edit.utils-179c0800.js → edit.utils-4a790cf8.js} +2 -2
  6. package/dist/cjs/{edit.utils-179c0800.js.map → edit.utils-4a790cf8.js.map} +1 -1
  7. package/dist/cjs/{header-cell-renderer-d879d95e.js → header-cell-renderer-db089f54.js} +2 -2
  8. package/dist/cjs/{header-cell-renderer-d879d95e.js.map → header-cell-renderer-db089f54.js.map} +1 -1
  9. package/dist/cjs/{column.service-26c61ed6.js → index-91e92bea.js} +455 -1235
  10. package/dist/cjs/index-91e92bea.js.map +1 -0
  11. package/dist/cjs/index.cjs.js +21 -20
  12. package/dist/cjs/index.cjs.js.map +1 -1
  13. package/dist/cjs/{key.utils-f49d7bee.js → key.utils-e65c24e6.js} +2 -2
  14. package/dist/cjs/{key.utils-f49d7bee.js.map → key.utils-e65c24e6.js.map} +1 -1
  15. package/dist/cjs/revo-grid.cjs.entry.js +47 -56
  16. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  17. package/dist/cjs/revogr-attribution_7.cjs.entry.js +11 -11
  18. package/dist/cjs/revogr-attribution_7.cjs.entry.js.map +1 -1
  19. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +5 -4
  20. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
  21. package/dist/cjs/revogr-data_4.cjs.entry.js +41 -18
  22. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  23. package/dist/cjs/{row-header-utils-c37f76e4.js → row-header-utils-dc3d3185.js} +5 -6
  24. package/dist/cjs/row-header-utils-dc3d3185.js.map +1 -0
  25. package/dist/cjs/{text-editor-b756d6b3.js → text-editor-a32a3993.js} +3 -3
  26. package/dist/cjs/{text-editor-b756d6b3.js.map → text-editor-a32a3993.js.map} +1 -1
  27. package/dist/cjs/{throttle-a57f51f9.js → throttle-da92b75d.js} +2 -2
  28. package/dist/cjs/{throttle-a57f51f9.js.map → throttle-da92b75d.js.map} +1 -1
  29. package/dist/collection/components/data/revogr-data.js +28 -3
  30. package/dist/collection/components/data/revogr-data.js.map +1 -1
  31. package/dist/collection/components/order/revogr-order-editor.js +4 -2
  32. package/dist/collection/components/order/revogr-order-editor.js.map +1 -1
  33. package/dist/collection/components/revoGrid/revo-grid.js +7 -4
  34. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  35. package/dist/collection/components/scroll/revogr-viewport-scroll.js +26 -8
  36. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -1
  37. package/dist/collection/plugins/filter/filter.plugin.js +3 -0
  38. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -1
  39. package/dist/collection/plugins/sorting/sorting.plugin.js +7 -4
  40. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
  41. package/dist/collection/services/dimension.provider.js +7 -22
  42. package/dist/collection/services/dimension.provider.js.map +1 -1
  43. package/dist/collection/store/dataSource/trimmed.plugin.js +3 -8
  44. package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -1
  45. package/dist/collection/store/dimension/dimension.helpers.js +2 -5
  46. package/dist/collection/store/dimension/dimension.helpers.js.map +1 -1
  47. package/dist/collection/store/dimension/dimension.recalculate.plugin.js +35 -0
  48. package/dist/collection/store/dimension/dimension.recalculate.plugin.js.map +1 -0
  49. package/dist/collection/store/dimension/dimension.store.js +46 -66
  50. package/dist/collection/store/dimension/dimension.store.js.map +1 -1
  51. package/dist/collection/store/dimension/dimension.trim.plugin.js +61 -0
  52. package/dist/collection/store/dimension/dimension.trim.plugin.js.map +1 -0
  53. package/dist/collection/types/events.js +1 -0
  54. package/dist/collection/types/events.js.map +1 -1
  55. package/dist/collection/types/interfaces.js.map +1 -1
  56. package/dist/esm/{column.drag.plugin-3cc77986.js → column.drag.plugin-b7bba0da.js} +118 -47
  57. package/dist/esm/column.drag.plugin-b7bba0da.js.map +1 -0
  58. package/dist/esm/column.service-9b0603f4.js +1249 -0
  59. package/dist/esm/column.service-9b0603f4.js.map +1 -0
  60. package/dist/esm/{debounce-72878ced.js → debounce-7b511afc.js} +2 -2
  61. package/dist/esm/{debounce-72878ced.js.map → debounce-7b511afc.js.map} +1 -1
  62. package/dist/esm/{edit.utils-6fc686b9.js → edit.utils-abcd0152.js} +2 -2
  63. package/dist/esm/{edit.utils-6fc686b9.js.map → edit.utils-abcd0152.js.map} +1 -1
  64. package/dist/esm/{header-cell-renderer-32d2ed96.js → header-cell-renderer-fce020c3.js} +2 -2
  65. package/dist/esm/{header-cell-renderer-32d2ed96.js.map → header-cell-renderer-fce020c3.js.map} +1 -1
  66. package/dist/esm/{column.service-751345b2.js → index-b1e05212.js} +414 -1195
  67. package/dist/esm/index-b1e05212.js.map +1 -0
  68. package/dist/esm/index.js +9 -8
  69. package/dist/esm/index.js.map +1 -1
  70. package/dist/esm/{key.utils-17273f42.js → key.utils-ea9aec31.js} +2 -2
  71. package/dist/esm/{key.utils-17273f42.js.map → key.utils-ea9aec31.js.map} +1 -1
  72. package/dist/esm/revo-grid.entry.js +27 -36
  73. package/dist/esm/revo-grid.entry.js.map +1 -1
  74. package/dist/esm/revogr-attribution_7.entry.js +7 -7
  75. package/dist/esm/revogr-clipboard_3.entry.js +6 -5
  76. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
  77. package/dist/esm/revogr-data_4.entry.js +37 -14
  78. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  79. package/dist/esm/revogr-filter-panel.entry.js +1 -1
  80. package/dist/esm/{row-header-utils-3dfbb81f.js → row-header-utils-7af8fcbf.js} +2 -3
  81. package/dist/esm/row-header-utils-7af8fcbf.js.map +1 -0
  82. package/dist/esm/{text-editor-901c3eb8.js → text-editor-fb3f24fe.js} +3 -3
  83. package/dist/esm/{text-editor-901c3eb8.js.map → text-editor-fb3f24fe.js.map} +1 -1
  84. package/dist/esm/{throttle-138d69c3.js → throttle-1f5772ef.js} +3 -3
  85. package/dist/esm/{throttle-138d69c3.js.map → throttle-1f5772ef.js.map} +1 -1
  86. package/dist/revo-grid/column.drag.plugin-b7bba0da.js +5 -0
  87. package/dist/revo-grid/column.drag.plugin-b7bba0da.js.map +1 -0
  88. package/dist/revo-grid/column.service-9b0603f4.js +5 -0
  89. package/dist/revo-grid/column.service-9b0603f4.js.map +1 -0
  90. package/dist/revo-grid/{debounce-72878ced.js → debounce-7b511afc.js} +2 -2
  91. package/dist/revo-grid/{edit.utils-6fc686b9.js → edit.utils-abcd0152.js} +2 -2
  92. package/dist/revo-grid/{header-cell-renderer-32d2ed96.js → header-cell-renderer-fce020c3.js} +2 -2
  93. package/dist/revo-grid/index-b1e05212.js +5 -0
  94. package/dist/revo-grid/index-b1e05212.js.map +1 -0
  95. package/dist/revo-grid/index.esm.js +1 -1
  96. package/dist/revo-grid/index.esm.js.map +1 -1
  97. package/dist/revo-grid/key.utils-ea9aec31.js +5 -0
  98. package/dist/revo-grid/{key.utils-17273f42.js.map → key.utils-ea9aec31.js.map} +1 -1
  99. package/dist/revo-grid/revo-grid.entry.js +1 -1
  100. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  101. package/dist/revo-grid/revogr-attribution_7.entry.js +1 -1
  102. package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
  103. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
  104. package/dist/revo-grid/revogr-data_4.entry.js +1 -1
  105. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  106. package/dist/revo-grid/revogr-filter-panel.entry.js +1 -1
  107. package/dist/revo-grid/row-header-utils-7af8fcbf.js +5 -0
  108. package/dist/revo-grid/{row-header-utils-3dfbb81f.js.map → row-header-utils-7af8fcbf.js.map} +1 -1
  109. package/dist/revo-grid/text-editor-fb3f24fe.js +5 -0
  110. package/dist/revo-grid/{throttle-138d69c3.js → throttle-1f5772ef.js} +2 -2
  111. package/dist/types/components/data/revogr-data.d.ts +6 -2
  112. package/dist/types/components/order/revogr-order-editor.d.ts +1 -0
  113. package/dist/types/components/revoGrid/revo-grid.d.ts +2 -6
  114. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +1 -1
  115. package/dist/types/components.d.ts +9 -2
  116. package/dist/types/services/dimension.provider.d.ts +1 -1
  117. package/dist/types/store/dimension/dimension.helpers.d.ts +0 -3
  118. package/dist/types/store/dimension/dimension.recalculate.plugin.d.ts +9 -0
  119. package/dist/types/store/dimension/dimension.store.d.ts +2 -1
  120. package/dist/types/store/dimension/dimension.trim.plugin.d.ts +13 -0
  121. package/dist/types/types/events.d.ts +1 -1
  122. package/dist/types/types/interfaces.d.ts +6 -1
  123. package/hydrate/index.js +194 -116
  124. package/hydrate/index.mjs +194 -116
  125. package/package.json +1 -1
  126. package/standalone/column.service.js +1 -1
  127. package/standalone/data.store.js +24 -10
  128. package/standalone/data.store.js.map +1 -1
  129. package/standalone/dimension.helpers.js +3 -6
  130. package/standalone/dimension.helpers.js.map +1 -1
  131. package/standalone/index.js +1 -0
  132. package/standalone/index.js.map +1 -1
  133. package/standalone/revo-grid.js +134 -73
  134. package/standalone/revo-grid.js.map +1 -1
  135. package/standalone/revogr-data2.js +6 -1
  136. package/standalone/revogr-data2.js.map +1 -1
  137. package/standalone/revogr-header2.js +1 -1
  138. package/standalone/revogr-order-editor2.js +2 -0
  139. package/standalone/revogr-order-editor2.js.map +1 -1
  140. package/standalone/revogr-viewport-scroll2.js +26 -8
  141. package/standalone/revogr-viewport-scroll2.js.map +1 -1
  142. package/dist/cjs/column.drag.plugin-fcd892ec.js.map +0 -1
  143. package/dist/cjs/column.service-26c61ed6.js.map +0 -1
  144. package/dist/cjs/index-3ab26ab9.js +0 -513
  145. package/dist/cjs/index-3ab26ab9.js.map +0 -1
  146. package/dist/cjs/row-header-utils-c37f76e4.js.map +0 -1
  147. package/dist/esm/column.drag.plugin-3cc77986.js.map +0 -1
  148. package/dist/esm/column.service-751345b2.js.map +0 -1
  149. package/dist/esm/index-1dcad6ef.js +0 -476
  150. package/dist/esm/index-1dcad6ef.js.map +0 -1
  151. package/dist/esm/row-header-utils-3dfbb81f.js.map +0 -1
  152. package/dist/revo-grid/column.drag.plugin-3cc77986.js +0 -5
  153. package/dist/revo-grid/column.drag.plugin-3cc77986.js.map +0 -1
  154. package/dist/revo-grid/column.service-751345b2.js +0 -5
  155. package/dist/revo-grid/column.service-751345b2.js.map +0 -1
  156. package/dist/revo-grid/index-1dcad6ef.js +0 -5
  157. package/dist/revo-grid/index-1dcad6ef.js.map +0 -1
  158. package/dist/revo-grid/key.utils-17273f42.js +0 -5
  159. package/dist/revo-grid/row-header-utils-3dfbb81f.js +0 -5
  160. package/dist/revo-grid/text-editor-901c3eb8.js +0 -5
  161. package/standalone/identity.js +0 -26
  162. package/standalone/identity.js.map +0 -1
  163. /package/dist/revo-grid/{debounce-72878ced.js.map → debounce-7b511afc.js.map} +0 -0
  164. /package/dist/revo-grid/{edit.utils-6fc686b9.js.map → edit.utils-abcd0152.js.map} +0 -0
  165. /package/dist/revo-grid/{header-cell-renderer-32d2ed96.js.map → header-cell-renderer-fce020c3.js.map} +0 -0
  166. /package/dist/revo-grid/{text-editor-901c3eb8.js.map → text-editor-fb3f24fe.js.map} +0 -0
  167. /package/dist/revo-grid/{throttle-138d69c3.js.map → throttle-1f5772ef.js.map} +0 -0
@@ -2,7 +2,7 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  import { c as isSymbol } from './toNumber.js';
5
- import { i as identity } from './identity.js';
5
+ import { k as identity } from './data.store.js';
6
6
 
7
7
  /** Used as references for the maximum length and index of an array. */
8
8
  var MAX_ARRAY_LENGTH$1 = 4294967295,
@@ -135,10 +135,8 @@ function calculateDimensionData(originItemSize, newSizes = {}) {
135
135
  const positionIndexes = [];
136
136
  const positionIndexToItem = {};
137
137
  const indexToItem = {};
138
- // combine all new sizes
139
- const sizes = Object.assign({}, newSizes);
140
138
  // prepare order sorted new sizes and calculate changed real size
141
- const newIndexes = Object.keys(sizes).map(Number).sort((a, b) => a - b);
139
+ const newIndexes = Object.keys(newSizes).map(Number).sort((a, b) => a - b);
142
140
  // fill new coordinates based on what is changed
143
141
  newIndexes.reduce((previous, itemIndex, i) => {
144
142
  const newItem = {
@@ -154,7 +152,7 @@ function calculateDimensionData(originItemSize, newSizes = {}) {
154
152
  else {
155
153
  newItem.start = itemIndex * originItemSize;
156
154
  }
157
- newItem.end = newItem.start + sizes[itemIndex];
155
+ newItem.end = newItem.start + newSizes[itemIndex];
158
156
  positionIndexes.push(newItem.start);
159
157
  indexToItem[itemIndex] = positionIndexToItem[i] = newItem;
160
158
  return newItem;
@@ -164,7 +162,6 @@ function calculateDimensionData(originItemSize, newSizes = {}) {
164
162
  positionIndexes: [...positionIndexes],
165
163
  positionIndexToItem: Object.assign({}, positionIndexToItem),
166
164
  indexToItem,
167
- sizes,
168
165
  };
169
166
  }
170
167
  /**
@@ -1 +1 @@
1
- {"file":"dimension.helpers.js","mappings":"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","names":["MAX_ARRAY_LENGTH"],"sources":["node_modules/lodash/_baseSortedIndexBy.js","node_modules/lodash/_baseSortedIndex.js","node_modules/lodash/sortedIndex.js","src/store/dimension/dimension.helpers.ts"],"sourcesContent":["import isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n}\n\nexport default baseSortedIndexBy;\n","import baseSortedIndexBy from './_baseSortedIndexBy.js';\nimport identity from './identity.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n/**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n}\n\nexport default baseSortedIndex;\n","import baseSortedIndex from './_baseSortedIndex.js';\n\n/**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\nfunction sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n}\n\nexport default sortedIndex;\n","import sortedIndex from 'lodash/sortedIndex';\n\nimport type {\n DimensionSettingsState,\n PositionItem,\n ViewSettingSizeProp,\n} from '@type';\n\nexport type DimensionPosition = Pick<\n DimensionSettingsState,\n 'indexes' | 'positionIndexes' | 'originItemSize' | 'positionIndexToItem'\n>;\nexport type DimensionIndexInput = Pick<\n DimensionSettingsState,\n 'indexes' | 'originItemSize' | 'indexToItem'\n>;\nexport type DimensionSize = Pick<\n DimensionSettingsState,\n | 'indexes'\n | 'positionIndexes'\n | 'positionIndexToItem'\n | 'indexToItem'\n | 'realSize'\n | 'sizes'\n>;\n/**\n * Pre-calculation\n * Dimension custom sizes for each cell\n * Keeps only changed sizes, skips origin size\n */\nexport function calculateDimensionData(\n originItemSize: number,\n newSizes: ViewSettingSizeProp = {},\n) {\n const positionIndexes: number[] = [];\n const positionIndexToItem: { [position: number]: PositionItem } = {};\n const indexToItem: { [index: number]: PositionItem } = {};\n\n // combine all new sizes\n const sizes = { ...newSizes };\n // prepare order sorted new sizes and calculate changed real size\n const newIndexes = Object.keys(sizes).map(Number).sort((a, b) => a - b);\n // fill new coordinates based on what is changed\n newIndexes.reduce(\n (previous: PositionItem | undefined, itemIndex: number, i: number) => {\n const newItem: PositionItem = {\n itemIndex,\n start: 0,\n end: 0,\n };\n // if previous item was changed too\n if (previous) {\n const itemsBetween =\n (itemIndex - previous.itemIndex - 1) * originItemSize;\n newItem.start = itemsBetween + previous.end;\n } else {\n newItem.start = itemIndex * originItemSize;\n }\n newItem.end = newItem.start + sizes[itemIndex];\n positionIndexes.push(newItem.start);\n indexToItem[itemIndex] = positionIndexToItem[i] = newItem;\n return newItem;\n },\n undefined,\n );\n\n return {\n indexes: newIndexes,\n positionIndexes: [...positionIndexes],\n positionIndexToItem: { ...positionIndexToItem },\n indexToItem,\n sizes,\n };\n}\n\n/**\n * Calculate item by position\n */\nexport const getItemByPosition = (\n {\n indexes,\n positionIndexes,\n originItemSize,\n positionIndexToItem,\n }: DimensionPosition,\n pos: number,\n) => {\n const item: PositionItem = {\n itemIndex: 0,\n start: 0,\n end: 0,\n };\n const currentPlace = indexes.length ? sortedIndex(positionIndexes, pos) : 0;\n // not found or first index\n if (!currentPlace) {\n item.itemIndex = Math.floor(pos / originItemSize);\n item.start = item.itemIndex * originItemSize;\n item.end = item.start + originItemSize;\n return item;\n }\n const positionItem = positionIndexToItem[currentPlace - 1];\n // if item has specified size\n if (positionItem.end > pos) {\n return positionItem;\n }\n // special size item was present before\n const relativePos = pos - positionItem.end;\n const relativeIndex = Math.floor(relativePos / originItemSize);\n item.itemIndex = positionItem.itemIndex + 1 + relativeIndex;\n item.start = positionItem.end + relativeIndex * originItemSize;\n item.end = item.start + originItemSize;\n return item;\n};\n\nexport function getItemByIndex(\n dimension: Pick<\n DimensionIndexInput,\n 'indexToItem' | 'indexes' | 'originItemSize'\n >,\n index: number,\n) {\n let item: PositionItem = {\n itemIndex: index,\n start: 0,\n end: 0,\n };\n // if item has specified size\n if (dimension.indexToItem[index]) {\n return dimension.indexToItem[index];\n }\n\n const currentPlace = dimension.indexes.length\n ? sortedIndex(dimension.indexes, index)\n : 0;\n // not found or first index\n if (!currentPlace) {\n item.start = item.itemIndex * dimension.originItemSize;\n item.end = item.start + dimension.originItemSize;\n return item;\n }\n // special size item was present before\n const positionItem =\n dimension.indexToItem[dimension.indexes[currentPlace - 1]];\n item.start =\n positionItem.end +\n (index - positionItem.itemIndex - 1) * dimension.originItemSize;\n item.end = item.start + dimension.originItemSize;\n return item;\n}\n"],"version":3}
1
+ {"file":"dimension.helpers.js","mappings":";;;;;;AAEA;AACA,IAAIA,kBAAgB,GAAG,UAAU;AACjC,IAAI,eAAe,GAAGA,kBAAgB,GAAG,CAAC,CAAC;AAC3C;AACA;AACA,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK;AAC5B,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE;AAC/D,EAAE,IAAI,GAAG,GAAG,CAAC;AACb,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;AAC9C,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE;AAClB,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH;AACA,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,EAAE,IAAI,QAAQ,GAAG,KAAK,KAAK,KAAK;AAChC,MAAM,SAAS,GAAG,KAAK,KAAK,IAAI;AAChC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC;AACnC,MAAM,cAAc,GAAG,KAAK,KAAK,SAAS,CAAC;AAC3C;AACA,EAAE,OAAO,GAAG,GAAG,IAAI,EAAE;AACrB,IAAI,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC;AAC3C,QAAQ,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvC,QAAQ,YAAY,GAAG,QAAQ,KAAK,SAAS;AAC7C,QAAQ,SAAS,GAAG,QAAQ,KAAK,IAAI;AACrC,QAAQ,cAAc,GAAG,QAAQ,KAAK,QAAQ;AAC9C,QAAQ,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzC;AACA,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,IAAI,MAAM,GAAG,UAAU,IAAI,cAAc,CAAC;AAChD,KAAK,MAAM,IAAI,cAAc,EAAE;AAC/B,MAAM,MAAM,GAAG,cAAc,KAAK,UAAU,IAAI,YAAY,CAAC,CAAC;AAC9D,KAAK,MAAM,IAAI,SAAS,EAAE;AAC1B,MAAM,MAAM,GAAG,cAAc,IAAI,YAAY,KAAK,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5E,KAAK,MAAM,IAAI,WAAW,EAAE;AAC5B,MAAM,MAAM,GAAG,cAAc,IAAI,YAAY,IAAI,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5F,KAAK,MAAM,IAAI,SAAS,IAAI,WAAW,EAAE;AACzC,MAAM,MAAM,GAAG,KAAK,CAAC;AACrB,KAAK,MAAM;AACX,MAAM,MAAM,GAAG,UAAU,IAAI,QAAQ,IAAI,KAAK,KAAK,QAAQ,GAAG,KAAK,CAAC,CAAC;AACrE,KAAK;AACL,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACpB,KAAK,MAAM;AACX,MAAM,IAAI,GAAG,GAAG,CAAC;AACjB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAC1C;;AC5DA;AACA,IAAI,gBAAgB,GAAG,UAAU;AACjC,IAAI,qBAAqB,GAAG,gBAAgB,KAAK,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE;AACnD,EAAE,IAAI,GAAG,GAAG,CAAC;AACb,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;AAChD;AACA,EAAE,IAAI,OAAO,KAAK,IAAI,QAAQ,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,qBAAqB,EAAE;AACpF,IAAI,OAAO,GAAG,GAAG,IAAI,EAAE;AACvB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC;AAClC,UAAU,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAChC;AACA,MAAM,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAClD,WAAW,UAAU,IAAI,QAAQ,IAAI,KAAK,KAAK,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAE;AACnE,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACtB,OAAO,MAAM;AACb,QAAQ,IAAI,GAAG,GAAG,CAAC;AACnB,OAAO;AACP,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC/D;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;AACnC,EAAE,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACvC;;ACIA;;;;;SAKgB,sBAAsB,CACpC,cAAsB,EACtB,WAAgC,EAAE;IAElC,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,MAAM,mBAAmB,GAAyC,EAAE,CAAC;IACrE,MAAM,WAAW,GAAsC,EAAE,CAAC;;IAG1D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;IAE3E,UAAU,CAAC,MAAM,CACf,CAAC,QAAkC,EAAE,SAAiB,EAAE,CAAS;QAC/D,MAAM,OAAO,GAAiB;YAC5B,SAAS;YACT,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,CAAC;SACP,CAAC;;QAEF,IAAI,QAAQ,EAAE;YACZ,MAAM,YAAY,GAChB,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,GAAG,CAAC,IAAI,cAAc,CAAC;YACxD,OAAO,CAAC,KAAK,GAAG,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC;SAC7C;aAAM;YACL,OAAO,CAAC,KAAK,GAAG,SAAS,GAAG,cAAc,CAAC;SAC5C;QACD,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAClD,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,WAAW,CAAC,SAAS,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QAC1D,OAAO,OAAO,CAAC;KAChB,EACD,SAAS,CACV,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,UAAU;QACnB,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC;QACrC,mBAAmB,oBAAO,mBAAmB,CAAE;QAC/C,WAAW;KACZ,CAAC;AACJ,CAAC;AAED;;;MAGa,iBAAiB,GAAG,CAC/B,EACE,OAAO,EACP,eAAe,EACf,cAAc,EACd,mBAAmB,GACD,EACpB,GAAW;IAEX,MAAM,IAAI,GAAiB;QACzB,SAAS,EAAE,CAAC;QACZ,KAAK,EAAE,CAAC;QACR,GAAG,EAAE,CAAC;KACP,CAAC;IACF,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;;IAE5E,IAAI,CAAC,YAAY,EAAE;QACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,cAAc,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC;QAC7C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;QACvC,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,mBAAmB,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;;IAE3D,IAAI,YAAY,CAAC,GAAG,GAAG,GAAG,EAAE;QAC1B,OAAO,YAAY,CAAC;KACrB;;IAED,MAAM,WAAW,GAAG,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;IAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,cAAc,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,GAAG,CAAC,GAAG,aAAa,CAAC;IAC5D,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,GAAG,GAAG,aAAa,GAAG,cAAc,CAAC;IAC/D,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,EAAE;SAEc,cAAc,CAC5B,SAGC,EACD,KAAa;IAEb,IAAI,IAAI,GAAiB;QACvB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,CAAC;QACR,GAAG,EAAE,CAAC;KACP,CAAC;;IAEF,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;QAChC,OAAO,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACrC;IAED,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM;UACzC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;UACrC,CAAC,CAAC;;IAEN,IAAI,CAAC,YAAY,EAAE;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC;QACvD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,cAAc,CAAC;QACjD,OAAO,IAAI,CAAC;KACb;;IAED,MAAM,YAAY,GAChB,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,KAAK;QACR,YAAY,CAAC,GAAG;YAChB,CAAC,KAAK,GAAG,YAAY,CAAC,SAAS,GAAG,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC;IAClE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,cAAc,CAAC;IACjD,OAAO,IAAI,CAAC;AACd;;;;","names":["MAX_ARRAY_LENGTH"],"sources":["node_modules/lodash/_baseSortedIndexBy.js","node_modules/lodash/_baseSortedIndex.js","node_modules/lodash/sortedIndex.js","src/store/dimension/dimension.helpers.ts"],"sourcesContent":["import isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n}\n\nexport default baseSortedIndexBy;\n","import baseSortedIndexBy from './_baseSortedIndexBy.js';\nimport identity from './identity.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n/**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n}\n\nexport default baseSortedIndex;\n","import baseSortedIndex from './_baseSortedIndex.js';\n\n/**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\nfunction sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n}\n\nexport default sortedIndex;\n","import sortedIndex from 'lodash/sortedIndex';\n\nimport type {\n DimensionSettingsState,\n PositionItem,\n ViewSettingSizeProp,\n} from '@type';\n\nexport type DimensionPosition = Pick<\n DimensionSettingsState,\n 'indexes' | 'positionIndexes' | 'originItemSize' | 'positionIndexToItem'\n>;\nexport type DimensionIndexInput = Pick<\n DimensionSettingsState,\n 'indexes' | 'originItemSize' | 'indexToItem'\n>;\nexport type DimensionSize = Pick<\n DimensionSettingsState,\n | 'indexes'\n | 'positionIndexes'\n | 'positionIndexToItem'\n | 'indexToItem'\n | 'realSize'\n | 'sizes'\n>;\n/**\n * Pre-calculation\n * Dimension custom sizes for each cell\n * Keeps only changed sizes, skips origin size\n */\nexport function calculateDimensionData(\n originItemSize: number,\n newSizes: ViewSettingSizeProp = {},\n) {\n const positionIndexes: number[] = [];\n const positionIndexToItem: { [position: number]: PositionItem } = {};\n const indexToItem: { [index: number]: PositionItem } = {};\n\n // prepare order sorted new sizes and calculate changed real size\n const newIndexes = Object.keys(newSizes).map(Number).sort((a, b) => a - b);\n // fill new coordinates based on what is changed\n newIndexes.reduce(\n (previous: PositionItem | undefined, itemIndex: number, i: number) => {\n const newItem: PositionItem = {\n itemIndex,\n start: 0,\n end: 0,\n };\n // if previous item was changed too\n if (previous) {\n const itemsBetween =\n (itemIndex - previous.itemIndex - 1) * originItemSize;\n newItem.start = itemsBetween + previous.end;\n } else {\n newItem.start = itemIndex * originItemSize;\n }\n newItem.end = newItem.start + newSizes[itemIndex];\n positionIndexes.push(newItem.start);\n indexToItem[itemIndex] = positionIndexToItem[i] = newItem;\n return newItem;\n },\n undefined,\n );\n\n return {\n indexes: newIndexes,\n positionIndexes: [...positionIndexes],\n positionIndexToItem: { ...positionIndexToItem },\n indexToItem,\n };\n}\n\n/**\n * Calculate item by position\n */\nexport const getItemByPosition = (\n {\n indexes,\n positionIndexes,\n originItemSize,\n positionIndexToItem,\n }: DimensionPosition,\n pos: number,\n) => {\n const item: PositionItem = {\n itemIndex: 0,\n start: 0,\n end: 0,\n };\n const currentPlace = indexes.length ? sortedIndex(positionIndexes, pos) : 0;\n // not found or first index\n if (!currentPlace) {\n item.itemIndex = Math.floor(pos / originItemSize);\n item.start = item.itemIndex * originItemSize;\n item.end = item.start + originItemSize;\n return item;\n }\n const positionItem = positionIndexToItem[currentPlace - 1];\n // if item has specified size\n if (positionItem.end > pos) {\n return positionItem;\n }\n // special size item was present before\n const relativePos = pos - positionItem.end;\n const relativeIndex = Math.floor(relativePos / originItemSize);\n item.itemIndex = positionItem.itemIndex + 1 + relativeIndex;\n item.start = positionItem.end + relativeIndex * originItemSize;\n item.end = item.start + originItemSize;\n return item;\n};\n\nexport function getItemByIndex(\n dimension: Pick<\n DimensionIndexInput,\n 'indexToItem' | 'indexes' | 'originItemSize'\n >,\n index: number,\n) {\n let item: PositionItem = {\n itemIndex: index,\n start: 0,\n end: 0,\n };\n // if item has specified size\n if (dimension.indexToItem[index]) {\n return dimension.indexToItem[index];\n }\n\n const currentPlace = dimension.indexes.length\n ? sortedIndex(dimension.indexes, index)\n : 0;\n // not found or first index\n if (!currentPlace) {\n item.start = item.itemIndex * dimension.originItemSize;\n item.end = item.start + dimension.originItemSize;\n return item;\n }\n // special size item was present before\n const positionItem =\n dimension.indexToItem[dimension.indexes[currentPlace - 1]];\n item.start =\n positionItem.end +\n (index - positionItem.itemIndex - 1) * dimension.originItemSize;\n item.end = item.start + dimension.originItemSize;\n return item;\n}\n"],"version":3}
@@ -93,6 +93,7 @@ const REVOGRID_EVENTS = new Map([
93
93
  ['beforerowrender', 'beforerowrender'],
94
94
  ['afterrender', 'afterrender'],
95
95
  ['beforecellrender', 'beforecellrender'],
96
+ ['beforedatarender', 'beforedatarender'],
96
97
  ['dragstartcell', 'dragstartcell'],
97
98
  ['celledit', 'celledit'],
98
99
  ['closeedit', 'closeedit'],
@@ -1 +1 @@
1
- {"file":"index.js","mappings":"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","names":[],"sources":["src/global/global.ts","src/types/events.ts"],"sourcesContent":["import { setMode } from '@stencil/core';\nimport { getTheme } from '../themeManager/theme.service';\n\nsetMode(elm => {\n let theme = (elm as HTMLRevoGridElement).theme || elm.getAttribute('theme');\n if (typeof theme === 'string') {\n theme = theme.trim();\n }\n\n const parsedTheme = getTheme(theme);\n if (parsedTheme !== theme) {\n elm.setAttribute('theme', parsedTheme);\n }\n return parsedTheme;\n});\n","\nexport type RevogridEvents = 'contentsizechanged'|\n 'beforeedit'|\n 'beforerangeedit'|\n 'afteredit'|\n 'beforeautofill'|\n 'beforerange'|\n 'afterfocus'|\n 'roworderchanged'|\n 'beforesortingapply'|\n 'beforesorting'|\n 'rowdragstart'|\n 'headerclick'|\n 'beforecellfocus'|\n 'beforefocuslost'|\n 'beforesourceset'|\n 'beforeanysource'|\n 'aftersourceset'|\n 'afteranysource'|\n 'beforecolumnsset'|\n 'beforecolumnapplied'|\n 'aftercolumnsset'|\n 'beforefilterapply'|\n 'beforefiltertrimmed'|\n 'beforetrimmed'|\n 'aftertrimmed'|\n 'viewportscroll'|\n 'beforeexport'|\n 'beforeeditstart'|\n 'aftercolumnresize'|\n 'beforerowdefinition'|\n 'filterconfigchanged'|\n 'rowheaderschanged'|\n 'beforegridrender'|\n 'aftergridrender'|\n 'aftergridinit'|\n 'additionaldatachanged'|\n 'afterthemechanged'|\n 'beforepaste'|\n 'beforepasteapply'|\n 'pasteregion'|\n 'afterpasteapply'|\n 'beforecut'|\n 'clearregion'|\n 'beforecopy'|\n 'beforecopyapply'|\n 'copyregion'|\n 'beforerowrender'|\n 'afterrender'|\n 'beforecellrender'|\n 'dragstartcell'|\n 'celledit'|\n 'closeedit'|\n 'filterChange'|\n 'resetChange'|\n 'beforefocusrender'|\n 'beforescrollintoview'|\n 'afterfocus'|\n 'beforeheaderclick'|\n 'headerresize'|\n 'beforeheaderresize'|\n 'headerdblclick'|\n 'beforeheaderrender'|\n 'afterheaderrender'|\n 'rowdragstartinit'|\n 'rowdragendinit'|\n 'rowdragmoveinit'|\n 'rowdragmousemove'|\n 'rowdropinit'|\n 'roworderchange'|\n 'beforecopyregion'|\n 'beforepasteregion'|\n 'celleditapply'|\n 'beforecellfocusinit'|\n 'beforenextvpfocus'|\n 'setedit'|\n 'beforeapplyrange'|\n 'beforesetrange'|\n 'beforeeditrender'|\n 'setrange'|\n 'selectall'|\n 'canceledit'|\n 'settemprange'|\n 'beforesettemprange'|\n 'applyfocus'|\n 'focuscell'|\n 'beforerangedataapply'|\n 'selectionchangeinit'|\n 'beforerangecopyapply'|\n 'rangeeditapply'|\n 'clipboardrangecopy'|\n 'clipboardrangepaste'|\n 'beforekeydown'|\n 'beforekeyup'|\n 'beforecellsave'|\n 'scrollview'|\n 'ref'|\n 'scrollvirtual'|\n 'scrollviewport'|\n 'resizeviewport'|\n 'scrollchange'|\n 'scrollviewportsilent'|\n 'html'\nexport const REVOGRID_EVENTS = new Map<RevogridEvents, RevogridEvents>([\n ['contentsizechanged', 'contentsizechanged'],\n ['beforeedit', 'beforeedit'],\n ['beforerangeedit', 'beforerangeedit'],\n ['afteredit', 'afteredit'],\n ['beforeautofill', 'beforeautofill'],\n ['beforerange', 'beforerange'],\n ['afterfocus', 'afterfocus'],\n ['roworderchanged', 'roworderchanged'],\n ['beforesortingapply', 'beforesortingapply'],\n ['beforesorting', 'beforesorting'],\n ['rowdragstart', 'rowdragstart'],\n ['headerclick', 'headerclick'],\n ['beforecellfocus', 'beforecellfocus'],\n ['beforefocuslost', 'beforefocuslost'],\n ['beforesourceset', 'beforesourceset'],\n ['beforeanysource', 'beforeanysource'],\n ['aftersourceset', 'aftersourceset'],\n ['afteranysource', 'afteranysource'],\n ['beforecolumnsset', 'beforecolumnsset'],\n ['beforecolumnapplied', 'beforecolumnapplied'],\n ['aftercolumnsset', 'aftercolumnsset'],\n ['beforefilterapply', 'beforefilterapply'],\n ['beforefiltertrimmed', 'beforefiltertrimmed'],\n ['beforetrimmed', 'beforetrimmed'],\n ['aftertrimmed', 'aftertrimmed'],\n ['viewportscroll', 'viewportscroll'],\n ['beforeexport', 'beforeexport'],\n ['beforeeditstart', 'beforeeditstart'],\n ['aftercolumnresize', 'aftercolumnresize'],\n ['beforerowdefinition', 'beforerowdefinition'],\n ['filterconfigchanged', 'filterconfigchanged'],\n ['rowheaderschanged', 'rowheaderschanged'],\n ['beforegridrender', 'beforegridrender'],\n ['aftergridrender', 'aftergridrender'],\n ['aftergridinit', 'aftergridinit'],\n ['additionaldatachanged', 'additionaldatachanged'],\n ['afterthemechanged', 'afterthemechanged'],\n ['beforepaste', 'beforepaste'],\n ['beforepasteapply', 'beforepasteapply'],\n ['pasteregion', 'pasteregion'],\n ['afterpasteapply', 'afterpasteapply'],\n ['beforecut', 'beforecut'],\n ['clearregion', 'clearregion'],\n ['beforecopy', 'beforecopy'],\n ['beforecopyapply', 'beforecopyapply'],\n ['copyregion', 'copyregion'],\n ['beforerowrender', 'beforerowrender'],\n ['afterrender', 'afterrender'],\n ['beforecellrender', 'beforecellrender'],\n ['dragstartcell', 'dragstartcell'],\n ['celledit', 'celledit'],\n ['closeedit', 'closeedit'],\n ['filterChange', 'filterChange'],\n ['resetChange', 'resetChange'],\n ['beforefocusrender', 'beforefocusrender'],\n ['beforescrollintoview', 'beforescrollintoview'],\n ['afterfocus', 'afterfocus'],\n ['beforeheaderclick', 'beforeheaderclick'],\n ['headerresize', 'headerresize'],\n ['beforeheaderresize', 'beforeheaderresize'],\n ['headerdblclick', 'headerdblclick'],\n ['beforeheaderrender', 'beforeheaderrender'],\n ['afterheaderrender', 'afterheaderrender'],\n ['rowdragstartinit', 'rowdragstartinit'],\n ['rowdragendinit', 'rowdragendinit'],\n ['rowdragmoveinit', 'rowdragmoveinit'],\n ['rowdragmousemove', 'rowdragmousemove'],\n ['rowdropinit', 'rowdropinit'],\n ['roworderchange', 'roworderchange'],\n ['beforecopyregion', 'beforecopyregion'],\n ['beforepasteregion', 'beforepasteregion'],\n ['celleditapply', 'celleditapply'],\n ['beforecellfocusinit', 'beforecellfocusinit'],\n ['beforenextvpfocus', 'beforenextvpfocus'],\n ['setedit', 'setedit'],\n ['beforeapplyrange', 'beforeapplyrange'],\n ['beforesetrange', 'beforesetrange'],\n ['beforeeditrender', 'beforeeditrender'],\n ['setrange', 'setrange'],\n ['selectall', 'selectall'],\n ['canceledit', 'canceledit'],\n ['settemprange', 'settemprange'],\n ['beforesettemprange', 'beforesettemprange'],\n ['applyfocus', 'applyfocus'],\n ['focuscell', 'focuscell'],\n ['beforerangedataapply', 'beforerangedataapply'],\n ['selectionchangeinit', 'selectionchangeinit'],\n ['beforerangecopyapply', 'beforerangecopyapply'],\n ['rangeeditapply', 'rangeeditapply'],\n ['clipboardrangecopy', 'clipboardrangecopy'],\n ['clipboardrangepaste', 'clipboardrangepaste'],\n ['beforekeydown', 'beforekeydown'],\n ['beforekeyup', 'beforekeyup'],\n ['beforecellsave', 'beforecellsave'],\n ['scrollview', 'scrollview'],\n ['ref', 'ref'],\n ['scrollvirtual', 'scrollvirtual'],\n ['scrollviewport', 'scrollviewport'],\n ['resizeviewport', 'resizeviewport'],\n ['scrollchange', 'scrollchange'],\n ['scrollviewportsilent', 'scrollviewportsilent'],\n ['html', 'html']\n]);"],"version":3}
1
+ {"file":"index.js","mappings":"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","names":[],"sources":["src/global/global.ts","src/types/events.ts"],"sourcesContent":["import { setMode } from '@stencil/core';\nimport { getTheme } from '../themeManager/theme.service';\n\nsetMode(elm => {\n let theme = (elm as HTMLRevoGridElement).theme || elm.getAttribute('theme');\n if (typeof theme === 'string') {\n theme = theme.trim();\n }\n\n const parsedTheme = getTheme(theme);\n if (parsedTheme !== theme) {\n elm.setAttribute('theme', parsedTheme);\n }\n return parsedTheme;\n});\n","\nexport type RevogridEvents = 'contentsizechanged'|\n 'beforeedit'|\n 'beforerangeedit'|\n 'afteredit'|\n 'beforeautofill'|\n 'beforerange'|\n 'afterfocus'|\n 'roworderchanged'|\n 'beforesortingapply'|\n 'beforesorting'|\n 'rowdragstart'|\n 'headerclick'|\n 'beforecellfocus'|\n 'beforefocuslost'|\n 'beforesourceset'|\n 'beforeanysource'|\n 'aftersourceset'|\n 'afteranysource'|\n 'beforecolumnsset'|\n 'beforecolumnapplied'|\n 'aftercolumnsset'|\n 'beforefilterapply'|\n 'beforefiltertrimmed'|\n 'beforetrimmed'|\n 'aftertrimmed'|\n 'viewportscroll'|\n 'beforeexport'|\n 'beforeeditstart'|\n 'aftercolumnresize'|\n 'beforerowdefinition'|\n 'filterconfigchanged'|\n 'rowheaderschanged'|\n 'beforegridrender'|\n 'aftergridrender'|\n 'aftergridinit'|\n 'additionaldatachanged'|\n 'afterthemechanged'|\n 'beforepaste'|\n 'beforepasteapply'|\n 'pasteregion'|\n 'afterpasteapply'|\n 'beforecut'|\n 'clearregion'|\n 'beforecopy'|\n 'beforecopyapply'|\n 'copyregion'|\n 'beforerowrender'|\n 'afterrender'|\n 'beforecellrender'|\n 'beforedatarender'|\n 'dragstartcell'|\n 'celledit'|\n 'closeedit'|\n 'filterChange'|\n 'resetChange'|\n 'beforefocusrender'|\n 'beforescrollintoview'|\n 'afterfocus'|\n 'beforeheaderclick'|\n 'headerresize'|\n 'beforeheaderresize'|\n 'headerdblclick'|\n 'beforeheaderrender'|\n 'afterheaderrender'|\n 'rowdragstartinit'|\n 'rowdragendinit'|\n 'rowdragmoveinit'|\n 'rowdragmousemove'|\n 'rowdropinit'|\n 'roworderchange'|\n 'beforecopyregion'|\n 'beforepasteregion'|\n 'celleditapply'|\n 'beforecellfocusinit'|\n 'beforenextvpfocus'|\n 'setedit'|\n 'beforeapplyrange'|\n 'beforesetrange'|\n 'beforeeditrender'|\n 'setrange'|\n 'selectall'|\n 'canceledit'|\n 'settemprange'|\n 'beforesettemprange'|\n 'applyfocus'|\n 'focuscell'|\n 'beforerangedataapply'|\n 'selectionchangeinit'|\n 'beforerangecopyapply'|\n 'rangeeditapply'|\n 'clipboardrangecopy'|\n 'clipboardrangepaste'|\n 'beforekeydown'|\n 'beforekeyup'|\n 'beforecellsave'|\n 'scrollview'|\n 'ref'|\n 'scrollvirtual'|\n 'scrollviewport'|\n 'resizeviewport'|\n 'scrollchange'|\n 'scrollviewportsilent'|\n 'html'\nexport const REVOGRID_EVENTS = new Map<RevogridEvents, RevogridEvents>([\n ['contentsizechanged', 'contentsizechanged'],\n ['beforeedit', 'beforeedit'],\n ['beforerangeedit', 'beforerangeedit'],\n ['afteredit', 'afteredit'],\n ['beforeautofill', 'beforeautofill'],\n ['beforerange', 'beforerange'],\n ['afterfocus', 'afterfocus'],\n ['roworderchanged', 'roworderchanged'],\n ['beforesortingapply', 'beforesortingapply'],\n ['beforesorting', 'beforesorting'],\n ['rowdragstart', 'rowdragstart'],\n ['headerclick', 'headerclick'],\n ['beforecellfocus', 'beforecellfocus'],\n ['beforefocuslost', 'beforefocuslost'],\n ['beforesourceset', 'beforesourceset'],\n ['beforeanysource', 'beforeanysource'],\n ['aftersourceset', 'aftersourceset'],\n ['afteranysource', 'afteranysource'],\n ['beforecolumnsset', 'beforecolumnsset'],\n ['beforecolumnapplied', 'beforecolumnapplied'],\n ['aftercolumnsset', 'aftercolumnsset'],\n ['beforefilterapply', 'beforefilterapply'],\n ['beforefiltertrimmed', 'beforefiltertrimmed'],\n ['beforetrimmed', 'beforetrimmed'],\n ['aftertrimmed', 'aftertrimmed'],\n ['viewportscroll', 'viewportscroll'],\n ['beforeexport', 'beforeexport'],\n ['beforeeditstart', 'beforeeditstart'],\n ['aftercolumnresize', 'aftercolumnresize'],\n ['beforerowdefinition', 'beforerowdefinition'],\n ['filterconfigchanged', 'filterconfigchanged'],\n ['rowheaderschanged', 'rowheaderschanged'],\n ['beforegridrender', 'beforegridrender'],\n ['aftergridrender', 'aftergridrender'],\n ['aftergridinit', 'aftergridinit'],\n ['additionaldatachanged', 'additionaldatachanged'],\n ['afterthemechanged', 'afterthemechanged'],\n ['beforepaste', 'beforepaste'],\n ['beforepasteapply', 'beforepasteapply'],\n ['pasteregion', 'pasteregion'],\n ['afterpasteapply', 'afterpasteapply'],\n ['beforecut', 'beforecut'],\n ['clearregion', 'clearregion'],\n ['beforecopy', 'beforecopy'],\n ['beforecopyapply', 'beforecopyapply'],\n ['copyregion', 'copyregion'],\n ['beforerowrender', 'beforerowrender'],\n ['afterrender', 'afterrender'],\n ['beforecellrender', 'beforecellrender'],\n ['beforedatarender', 'beforedatarender'],\n ['dragstartcell', 'dragstartcell'],\n ['celledit', 'celledit'],\n ['closeedit', 'closeedit'],\n ['filterChange', 'filterChange'],\n ['resetChange', 'resetChange'],\n ['beforefocusrender', 'beforefocusrender'],\n ['beforescrollintoview', 'beforescrollintoview'],\n ['afterfocus', 'afterfocus'],\n ['beforeheaderclick', 'beforeheaderclick'],\n ['headerresize', 'headerresize'],\n ['beforeheaderresize', 'beforeheaderresize'],\n ['headerdblclick', 'headerdblclick'],\n ['beforeheaderrender', 'beforeheaderrender'],\n ['afterheaderrender', 'afterheaderrender'],\n ['rowdragstartinit', 'rowdragstartinit'],\n ['rowdragendinit', 'rowdragendinit'],\n ['rowdragmoveinit', 'rowdragmoveinit'],\n ['rowdragmousemove', 'rowdragmousemove'],\n ['rowdropinit', 'rowdropinit'],\n ['roworderchange', 'roworderchange'],\n ['beforecopyregion', 'beforecopyregion'],\n ['beforepasteregion', 'beforepasteregion'],\n ['celleditapply', 'celleditapply'],\n ['beforecellfocusinit', 'beforecellfocusinit'],\n ['beforenextvpfocus', 'beforenextvpfocus'],\n ['setedit', 'setedit'],\n ['beforeapplyrange', 'beforeapplyrange'],\n ['beforesetrange', 'beforesetrange'],\n ['beforeeditrender', 'beforeeditrender'],\n ['setrange', 'setrange'],\n ['selectall', 'selectall'],\n ['canceledit', 'canceledit'],\n ['settemprange', 'settemprange'],\n ['beforesettemprange', 'beforesettemprange'],\n ['applyfocus', 'applyfocus'],\n ['focuscell', 'focuscell'],\n ['beforerangedataapply', 'beforerangedataapply'],\n ['selectionchangeinit', 'selectionchangeinit'],\n ['beforerangecopyapply', 'beforerangecopyapply'],\n ['rangeeditapply', 'rangeeditapply'],\n ['clipboardrangecopy', 'clipboardrangecopy'],\n ['clipboardrangepaste', 'clipboardrangepaste'],\n ['beforekeydown', 'beforekeydown'],\n ['beforekeyup', 'beforekeyup'],\n ['beforecellsave', 'beforecellsave'],\n ['scrollview', 'scrollview'],\n ['ref', 'ref'],\n ['scrollvirtual', 'scrollvirtual'],\n ['scrollviewport', 'scrollviewport'],\n ['resizeviewport', 'resizeviewport'],\n ['scrollchange', 'scrollchange'],\n ['scrollviewportsilent', 'scrollviewportsilent'],\n ['html', 'html']\n]);"],"version":3}
@@ -3,8 +3,7 @@
3
3
  */
4
4
  import { h, proxyCustomElement, HTMLElement as HTMLElement$1, createEvent, Host } from '@stencil/core/internal/client';
5
5
  import { r as reduce, m as baseEach, e as getColumnType, o as isGrouping, p as getGroupingName, d as getCellDataParsed, G as GROUP_EXPANDED, q as getParsedGroup, s as isSameGroup, t as GROUP_DEPTH, P as PSEUDO_GROUP_ITEM_VALUE, u as PSEUDO_GROUP_ITEM_ID, v as GROUPING_ROW_TYPE, w as PSEUDO_GROUP_COLUMN, x as GROUP_EXPAND_EVENT, y as gatherGrouping, z as isGroupingColumn, h as isColGrouping, l as getColumnByProp, f as getColumnSizes, E as EMPTY_INDEX, j as getColumns, A as SelectionStoreConnector } from './column.service.js';
6
- import { j as createStore, i as setStore, k as isArray, b as getSourceItem, l as toInteger, m as isIterateeCall, g as getPhysical, e as setItems, n as baseProperty, o as isArrayLike, q as getTag, r as baseKeys, D as DataStore, f as getSourceItemVirtualIndexByProp, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, a as getVisibleSourceItem, h as gatherTrimmedItems } from './data.store.js';
7
- import { i as identity } from './identity.js';
6
+ import { j as createStore, i as setStore, k as identity, l as isArray, b as getSourceItem, m as toInteger, n as isIterateeCall, g as getPhysical, e as setItems, o as baseProperty, q as isArrayLike, r as getTag, u as baseKeys, D as DataStore, f as getSourceItemVirtualIndexByProp, d as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, a as getVisibleSourceItem, h as gatherTrimmedItems } from './data.store.js';
8
7
  import { d as debounce } from './debounce.js';
9
8
  import { R as RESIZE_INTERVAL } from './consts.js';
10
9
  import { c as calculateDimensionData, g as getItemByPosition, a as getItemByIndex } from './dimension.helpers.js';
@@ -93,37 +92,6 @@ function getTheme(theme) {
93
92
  return DEFAULT_THEME;
94
93
  }
95
94
 
96
- /**
97
- * Storing pre-calculated
98
- * Dimension information and sizes
99
- */
100
- const trimmedPlugin = (store) => {
101
- let trimmedSize = {};
102
- const setTrimmed = (sizes, trimmed) => {
103
- const newSize = Object.assign({}, sizes);
104
- trimmedSize = {};
105
- for (const [index, v] of Object.entries(trimmed)) {
106
- const i = index;
107
- if (v && newSize[i]) {
108
- trimmedSize[i] = newSize[i];
109
- delete newSize[i];
110
- }
111
- }
112
- store.setDimensionSize(newSize);
113
- };
114
- return {
115
- set(key, val) {
116
- switch (key) {
117
- case 'trimmed':
118
- const trim = val;
119
- const sizes = store.store.get('sizes');
120
- // recover trimmed, apply new trim
121
- setTrimmed(Object.assign(Object.assign({}, sizes), trimmedSize), trim);
122
- break;
123
- }
124
- },
125
- };
126
- };
127
95
  /**
128
96
  * Plugin which recalculates realSize on changes of sizes, originItemSize and count
129
97
  */
@@ -139,7 +107,7 @@ const recalculateRealSizePlugin = (storeService) => {
139
107
  switch (k) {
140
108
  case 'count':
141
109
  case 'sizes':
142
- case 'originItemSize':
110
+ case 'originItemSize': {
143
111
  // recalculate realSize
144
112
  let realSize = 0;
145
113
  const count = storeService.store.get('count');
@@ -150,19 +118,81 @@ const recalculateRealSizePlugin = (storeService) => {
150
118
  }
151
119
  storeService.setStore({ realSize });
152
120
  break;
121
+ }
122
+ }
123
+ },
124
+ };
125
+ };
126
+
127
+ /**
128
+ * Plugin for trimming
129
+ *
130
+ * 1.a. Retrieves the previous sizes value. Saves the resulting trimmed data as a new sizes value.
131
+ * 1.b. Stores a reference to the trimmed data to prevent further changes.
132
+ * 2. Removes multiple and shifts the data based on the trimmed value.
133
+ */
134
+ const trimmedPlugin = (storeService) => {
135
+ let trimmingObject = null;
136
+ let trimmedPreviousSizes = null;
137
+ return {
138
+ set(key, val) {
139
+ switch (key) {
140
+ case 'sizes': {
141
+ // prevent changes after trimming
142
+ if (trimmingObject && trimmingObject === val) {
143
+ trimmingObject = null;
144
+ return;
145
+ }
146
+ trimmedPreviousSizes = null;
147
+ break;
148
+ }
149
+ case 'trimmed': {
150
+ const trim = val;
151
+ if (!trimmedPreviousSizes) {
152
+ trimmedPreviousSizes = storeService.store.get('sizes');
153
+ }
154
+ trimmingObject = removeMultipleAndShift(trimmedPreviousSizes, trim || {});
155
+ // save a reference to the trimmed object to prevent changes after trimming
156
+ storeService.setSizes(trimmingObject);
157
+ break;
158
+ }
153
159
  }
154
160
  },
155
161
  };
156
162
  };
163
+ function removeMultipleAndShift(items, toRemove) {
164
+ const newItems = {};
165
+ const sortedIndexes = Object.keys(items || {})
166
+ .map(Number)
167
+ .sort((a, b) => a - b);
168
+ const lastIndex = sortedIndexes[sortedIndexes.length - 1];
169
+ let shift = 0;
170
+ for (let i = 0; i <= lastIndex; i++) {
171
+ if (toRemove[i] !== undefined) {
172
+ shift++;
173
+ // skip already removed
174
+ if (items[i] !== undefined) {
175
+ continue;
176
+ }
177
+ }
178
+ if (items[i] !== undefined) {
179
+ newItems[i - shift] = items[i];
180
+ }
181
+ }
182
+ return newItems;
183
+ }
184
+
185
+ /**
186
+ * Storing pre-calculated
187
+ * Dimension information and sizes
188
+ */
157
189
  function initialBase() {
158
190
  return {
159
191
  indexes: [],
160
192
  count: 0,
161
- // plugin support
162
- trimmed: {},
163
- // size operations, this provider stores only changed sizes, not all of them
164
- // same as indexes but for sizes and positions
165
- // item index to size
193
+ // hidden items
194
+ trimmed: null,
195
+ // virtual item index to size
166
196
  sizes: {},
167
197
  // order in indexes[] to coordinate
168
198
  positionIndexToItem: {},
@@ -182,8 +212,14 @@ class DimensionStore {
182
212
  constructor(type) {
183
213
  this.type = type;
184
214
  this.store = createStore(initialState());
185
- this.store.use(trimmedPlugin(this));
186
- this.store.use(recalculateRealSizePlugin(this));
215
+ this.store.use(trimmedPlugin({
216
+ store: this.store,
217
+ setSizes: this.setDimensionSize.bind(this),
218
+ }));
219
+ this.store.use(recalculateRealSizePlugin({
220
+ store: this.store,
221
+ setStore: this.setStore.bind(this),
222
+ }));
187
223
  }
188
224
  getCurrentState() {
189
225
  const state = initialState();
@@ -208,9 +244,40 @@ class DimensionStore {
208
244
  * Generates new indexes based on sizes
209
245
  * @param sizes - sizes to set
210
246
  */
211
- setDimensionSize(sizes) {
247
+ setDimensionSize(sizes = {}) {
212
248
  const dimensionData = calculateDimensionData(this.store.get('originItemSize'), sizes);
213
- setStore(this.store, dimensionData);
249
+ setStore(this.store, Object.assign(Object.assign({}, dimensionData), { sizes }));
250
+ }
251
+ updateSizesPositionByIndexes(newItemsOrder, prevItemsOrder = []) {
252
+ // Move custom sizes to new order
253
+ const customSizes = Object.assign({}, this.store.get('sizes'));
254
+ if (!Object.keys(customSizes).length) {
255
+ return;
256
+ }
257
+ // Step 1: Create a map of original indices, but allow duplicates by storing arrays of indices
258
+ const originalIndices = {};
259
+ prevItemsOrder.forEach((physIndex, virtIndex) => {
260
+ if (!originalIndices[physIndex]) {
261
+ originalIndices[physIndex] = [];
262
+ }
263
+ originalIndices[physIndex].push(virtIndex); // Store all indices for each value
264
+ });
265
+ // Step 2: Create new sizes based on new item order
266
+ const newSizes = {};
267
+ newItemsOrder.forEach((physIndex, virtIndex) => {
268
+ const indices = originalIndices[physIndex]; // Get all original indices for this value
269
+ if (indices && indices.length > 0) {
270
+ const originalIndex = indices.shift(); // Get the first available original index
271
+ if (originalIndex !== undefined && originalIndex !== virtIndex && customSizes[originalIndex]) {
272
+ newSizes[virtIndex] = customSizes[originalIndex];
273
+ delete customSizes[originalIndex];
274
+ }
275
+ }
276
+ });
277
+ // Step 3: Set new sizes if there are changes
278
+ if (Object.keys(newSizes).length) {
279
+ this.setDimensionSize(Object.assign(Object.assign({}, customSizes), newSizes));
280
+ }
214
281
  }
215
282
  }
216
283
 
@@ -1229,6 +1296,9 @@ class FilterPlugin extends BasePlugin {
1229
1296
  }
1230
1297
  });
1231
1298
  }
1299
+ if (Object.keys(this.multiFilterItems).length === 0) {
1300
+ return;
1301
+ }
1232
1302
  await this.runFiltering(this.multiFilterItems);
1233
1303
  };
1234
1304
  this.addEventListener('headerclick', (e) => this.headerclick(e));
@@ -2357,9 +2427,8 @@ class SortingPlugin extends BasePlugin {
2357
2427
  if (beforeApplyEvent.defaultPrevented) {
2358
2428
  return;
2359
2429
  }
2360
- order = beforeApplyEvent.detail.order;
2361
- const cmp = this.getComparer(column, order);
2362
- if (additive && this.sorting) {
2430
+ const cmp = this.getComparer(beforeApplyEvent.detail.column, beforeApplyEvent.detail.order);
2431
+ if (beforeApplyEvent.detail.additive && this.sorting) {
2363
2432
  const sorting = {};
2364
2433
  const sortingFunc = {};
2365
2434
  this.sorting = Object.assign(Object.assign({}, this.sorting), sorting);
@@ -2423,11 +2492,15 @@ class SortingPlugin extends BasePlugin {
2423
2492
  // row indexes
2424
2493
  const proxyItems = storeService.store.get('proxyItems');
2425
2494
  const newItemsOrder = this.sortIndexByItems([...proxyItems], source, sortingFunc);
2426
- this.providers.dimension.updateSizesPositionByNewDataIndexes(type, newItemsOrder, proxyItems);
2495
+ // take row indexes before trim applied and proxy items
2496
+ const prevItems = storeService.store.get('items');
2427
2497
  storeService.setData({
2428
2498
  proxyItems: newItemsOrder,
2429
2499
  source: [...source],
2430
2500
  });
2501
+ // take currently visible row indexes
2502
+ const newItems = storeService.store.get('items');
2503
+ this.providers.dimension.updateSizesPositionByNewDataIndexes(type, newItems, prevItems);
2431
2504
  }
2432
2505
  }
2433
2506
  this.emit('aftersortingapply');
@@ -2779,11 +2852,13 @@ class DimensionProvider {
2779
2852
  * @param columns - new columns data
2780
2853
  * @param disableVirtualX - disable virtual data for X axis
2781
2854
  */
2782
- applyNewColumns(columns, disableVirtualX) {
2855
+ applyNewColumns(columns, disableVirtualX, keepOld = false) {
2783
2856
  // Apply new columns to dimension provider
2784
2857
  for (let type of columnTypes) {
2785
- // Clear existing data in the dimension provider
2786
- this.stores[type].drop();
2858
+ if (!keepOld) {
2859
+ // Clear existing data in the dimension provider
2860
+ this.stores[type].drop();
2861
+ }
2787
2862
  // Get the new columns for the current type
2788
2863
  const items = columns[type];
2789
2864
  // Determine if virtual data should be disabled for the current type
@@ -2854,25 +2929,8 @@ class DimensionProvider {
2854
2929
  }
2855
2930
  updateSizesPositionByNewDataIndexes(type, newItemsOrder, prevItemsOrder = []) {
2856
2931
  // Move custom sizes to new order
2857
- const dimService = this.stores[type];
2858
- const customSizes = Object.assign({}, dimService.store.get('sizes'));
2859
- if (Object.keys(customSizes).length) {
2860
- const originalIndices = new Map();
2861
- prevItemsOrder.forEach((value, index) => {
2862
- originalIndices.set(value, index);
2863
- });
2864
- const newSizes = {};
2865
- newItemsOrder.forEach((value, newIndex) => {
2866
- const originalIndex = originalIndices.get(value);
2867
- if (originalIndex !== newIndex && customSizes[originalIndex]) {
2868
- newSizes[newIndex] = customSizes[originalIndex];
2869
- delete customSizes[originalIndex];
2870
- }
2871
- });
2872
- if (Object.keys(newSizes).length) {
2873
- this.setCustomSizes(type, Object.assign(Object.assign({}, customSizes), newSizes));
2874
- }
2875
- }
2932
+ this.stores[type].updateSizesPositionByIndexes(newItemsOrder, prevItemsOrder);
2933
+ this.updateViewport(type, true);
2876
2934
  }
2877
2935
  }
2878
2936
 
@@ -3800,7 +3858,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3800
3858
  // Column format change will trigger column structure update
3801
3859
  this.columnChanged(this.columns);
3802
3860
  }
3803
- columnChanged(newVal = []) {
3861
+ columnChanged(newVal = [], _prevVal = undefined, __watchName = 'columns', init = false) {
3804
3862
  if (!this.dimensionProvider || !this.columnProvider) {
3805
3863
  return;
3806
3864
  }
@@ -3809,7 +3867,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
3809
3867
  if (beforeSetEvent.defaultPrevented) {
3810
3868
  return;
3811
3869
  }
3812
- this.dimensionProvider.applyNewColumns(beforeSetEvent.detail.columns, this.disableVirtualX);
3870
+ this.dimensionProvider.applyNewColumns(beforeSetEvent.detail.columns, this.disableVirtualX, init);
3813
3871
  const beforeApplyEvent = this.beforecolumnapplied.emit(columnGather);
3814
3872
  if (beforeApplyEvent.defaultPrevented) {
3815
3873
  return;
@@ -4098,7 +4156,7 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
4098
4156
  // set data
4099
4157
  this.applyStretch(this.stretch);
4100
4158
  this.themeChanged(this.theme, undefined, undefined, true);
4101
- this.columnChanged(this.columns);
4159
+ this.columnChanged(this.columns, undefined, undefined, true);
4102
4160
  this.dataSourceChanged(this.source, undefined, 'source');
4103
4161
  this.dataSourceChanged(this.pinnedTopSource, undefined, 'pinnedTopSource');
4104
4162
  this.dataSourceChanged(this.pinnedBottomSource, undefined, 'pinnedBottomSource');
@@ -4106,7 +4164,10 @@ const RevoGridComponent = /*@__PURE__*/ proxyCustomElement(class RevoGridCompone
4106
4164
  this.trimmedRowsChanged(this.trimmedRows);
4107
4165
  }
4108
4166
  this.rowDefChanged(this.rowDefinitions);
4109
- this.groupingChanged(this.grouping);
4167
+ // init grouping
4168
+ if (this.grouping && Object.keys(this.grouping).length > 0) {
4169
+ this.groupingChanged(this.grouping);
4170
+ }
4110
4171
  // init scrolling service
4111
4172
  this.scrollingService = new GridScrollingService((e) => {
4112
4173
  var _a;