@revolist/revogrid 4.0.4-next → 4.0.4

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 (802) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cjs/app-globals-53fde1aa.js +14 -0
  3. package/dist/cjs/app-globals-53fde1aa.js.map +1 -0
  4. package/dist/cjs/column.service-2066d651.js +545 -0
  5. package/dist/cjs/column.service-2066d651.js.map +1 -0
  6. package/dist/cjs/debounce-e2b7c6fb.js +226 -0
  7. package/dist/cjs/debounce-e2b7c6fb.js.map +1 -0
  8. package/dist/cjs/dimension.helpers-ee39d6c4.js +4218 -0
  9. package/dist/cjs/dimension.helpers-ee39d6c4.js.map +1 -0
  10. package/dist/cjs/dispatcher-a58fa91a.js +34 -0
  11. package/dist/cjs/dispatcher-a58fa91a.js.map +1 -0
  12. package/dist/cjs/events-7ccd6894.js +233 -0
  13. package/dist/cjs/events-7ccd6894.js.map +1 -0
  14. package/dist/cjs/filter.button-db6cbd2e.js +44 -0
  15. package/dist/cjs/filter.button-db6cbd2e.js.map +1 -0
  16. package/dist/cjs/header-cell-renderer-3df76829.js +304 -0
  17. package/dist/cjs/header-cell-renderer-3df76829.js.map +1 -0
  18. package/dist/cjs/index-73c149e3.js +106 -0
  19. package/dist/cjs/index-73c149e3.js.map +1 -0
  20. package/dist/cjs/index-84e32c2a.js +1868 -0
  21. package/dist/cjs/index-84e32c2a.js.map +1 -0
  22. package/dist/cjs/index.cjs.js +53 -0
  23. package/dist/cjs/index.cjs.js.map +1 -0
  24. package/dist/cjs/key.utils-dc4ac217.js +129 -0
  25. package/dist/cjs/key.utils-dc4ac217.js.map +1 -0
  26. package/dist/cjs/loader.cjs.js +12 -27
  27. package/dist/cjs/loader.cjs.js.map +1 -0
  28. package/dist/cjs/{resize-observer-8dc80084.js → resize-observer-d009a220.js} +30 -13
  29. package/dist/cjs/resize-observer-d009a220.js.map +1 -0
  30. package/dist/cjs/revo-grid.cjs.entry.js +3992 -0
  31. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -0
  32. package/dist/cjs/revo-grid.cjs.js +22 -65
  33. package/dist/cjs/revo-grid.cjs.js.map +1 -0
  34. package/dist/cjs/revogr-attribution_6.cjs.entry.js +1270 -0
  35. package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -0
  36. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +508 -0
  37. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -0
  38. package/dist/cjs/revogr-data_4.cjs.entry.js +958 -0
  39. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -0
  40. package/dist/cjs/revogr-filter-panel.cjs.entry.js +268 -115
  41. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -0
  42. package/dist/cjs/selection.store-2e110a67.js +400 -0
  43. package/dist/cjs/selection.store-2e110a67.js.map +1 -0
  44. package/dist/cjs/storeTypes-b3f924b2.js +106 -0
  45. package/dist/cjs/storeTypes-b3f924b2.js.map +1 -0
  46. package/dist/cjs/throttle-f7aee21b.js +240 -0
  47. package/dist/cjs/throttle-f7aee21b.js.map +1 -0
  48. package/dist/cjs/toNumber-838e6ff5.js +340 -0
  49. package/dist/cjs/toNumber-838e6ff5.js.map +1 -0
  50. package/dist/cjs/viewport.helpers-6670177c.js +262 -0
  51. package/dist/cjs/viewport.helpers-6670177c.js.map +1 -0
  52. package/dist/collection/collection-manifest.json +18 -16
  53. package/dist/collection/components/attribution/revogr-attribution.js +20 -0
  54. package/dist/collection/components/attribution/revogr-attribution.js.map +1 -0
  55. package/dist/collection/components/clipboard/revogr-clipboard.js +410 -115
  56. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -0
  57. package/dist/collection/components/data/cell-renderer.js +39 -0
  58. package/dist/collection/components/data/cell-renderer.js.map +1 -0
  59. package/dist/collection/components/data/column.service.js +302 -0
  60. package/dist/collection/components/data/column.service.js.map +1 -0
  61. package/dist/collection/components/data/revogr-data-style.css +18 -11
  62. package/dist/collection/components/data/revogr-data.js +626 -301
  63. package/dist/collection/components/data/revogr-data.js.map +1 -0
  64. package/dist/collection/components/data/row-highlight.plugin.js +51 -0
  65. package/dist/collection/components/data/row-highlight.plugin.js.map +1 -0
  66. package/dist/collection/components/data/row-renderer.js +16 -0
  67. package/dist/collection/components/data/row-renderer.js.map +1 -0
  68. package/dist/collection/components/editors/edit.utils.js +9 -0
  69. package/dist/collection/components/editors/edit.utils.js.map +1 -0
  70. package/dist/collection/components/{overlay → editors}/revogr-edit-style.css +15 -9
  71. package/dist/collection/components/editors/revogr-edit.js +316 -0
  72. package/dist/collection/components/editors/revogr-edit.js.map +1 -0
  73. package/dist/collection/components/editors/text-editor.js +73 -0
  74. package/dist/collection/components/editors/text-editor.js.map +1 -0
  75. package/dist/collection/components/header/header-cell-renderer.js +28 -0
  76. package/dist/collection/components/header/header-cell-renderer.js.map +1 -0
  77. package/dist/collection/components/header/header-renderer.js +47 -0
  78. package/dist/collection/components/header/header-renderer.js.map +1 -0
  79. package/dist/collection/components/header/revogr-header-style.css +15 -9
  80. package/dist/collection/components/header/revogr-header.js +421 -297
  81. package/dist/collection/components/header/revogr-header.js.map +1 -0
  82. package/dist/collection/components/order/order-renderer.js +50 -0
  83. package/dist/collection/components/order/order-renderer.js.map +1 -0
  84. package/dist/collection/components/order/order-row.service.js +72 -0
  85. package/dist/collection/components/order/order-row.service.js.map +1 -0
  86. package/dist/collection/components/order/revogr-order-editor.js +381 -350
  87. package/dist/collection/components/order/revogr-order-editor.js.map +1 -0
  88. package/dist/collection/components/overlay/autofill.service.js +206 -179
  89. package/dist/collection/components/overlay/autofill.service.js.map +1 -0
  90. package/dist/collection/components/overlay/keyboard.service.js +137 -124
  91. package/dist/collection/components/overlay/keyboard.service.js.map +1 -0
  92. package/dist/collection/components/overlay/revogr-overlay-selection.js +1208 -703
  93. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -0
  94. package/dist/collection/components/overlay/revogr-overlay-style.css +86 -13
  95. package/dist/collection/components/overlay/selection.utils.js +86 -82
  96. package/dist/collection/components/overlay/selection.utils.js.map +1 -0
  97. package/dist/collection/components/revoGrid/grid.helpers.js +28 -13
  98. package/dist/collection/components/revoGrid/grid.helpers.js.map +1 -0
  99. package/dist/collection/components/revoGrid/revo-grid-style.css +143 -51
  100. package/dist/collection/components/revoGrid/revo-grid.js +2834 -2181
  101. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -0
  102. package/dist/collection/components/revoGrid/viewport.helpers.js +9 -4
  103. package/dist/collection/components/revoGrid/viewport.helpers.js.map +1 -0
  104. package/dist/collection/components/revoGrid/viewport.resize.service.js +23 -19
  105. package/dist/collection/components/revoGrid/viewport.resize.service.js.map +1 -0
  106. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +78 -50
  107. package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -0
  108. package/dist/collection/components/revoGrid/viewport.service.js +224 -204
  109. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -0
  110. package/dist/collection/components/rowHeaders/revogr-row-headers.js +262 -204
  111. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -0
  112. package/dist/collection/components/rowHeaders/row-header-render.js +4 -0
  113. package/dist/collection/components/rowHeaders/row-header-render.js.map +1 -0
  114. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +20 -13
  115. package/dist/collection/components/scroll/revogr-viewport-scroll.js +535 -369
  116. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -0
  117. package/dist/collection/components/scrollable/autohide-scroll.plugin.js +44 -0
  118. package/dist/collection/components/scrollable/autohide-scroll.plugin.js.map +1 -0
  119. package/dist/collection/components/scrollable/revogr-scroll-style.css +24 -18
  120. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +286 -247
  121. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -0
  122. package/dist/collection/components/selectionFocus/revogr-focus-style.css +16 -10
  123. package/dist/collection/components/selectionFocus/revogr-focus.js +366 -96
  124. package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -0
  125. package/dist/collection/components/selectionTempRange/revogr-temp-range-style.css +16 -10
  126. package/dist/collection/components/selectionTempRange/revogr-temp-range.js +149 -128
  127. package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -0
  128. package/dist/collection/components/vnode/vnode-converter.js +81 -0
  129. package/dist/collection/components/vnode/vnode-converter.js.map +1 -0
  130. package/dist/collection/components/vnode/vnode.utils.js +18 -0
  131. package/dist/collection/components/vnode/vnode.utils.js.map +1 -0
  132. package/dist/collection/global/global.js +15 -11
  133. package/dist/collection/global/global.js.map +1 -0
  134. package/dist/collection/index.js +18 -0
  135. package/dist/collection/index.js.map +1 -0
  136. package/dist/collection/plugins/base.plugin.js +88 -0
  137. package/dist/collection/plugins/base.plugin.js.map +1 -0
  138. package/dist/collection/plugins/column.auto-size.plugin.js +234 -0
  139. package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -0
  140. package/dist/collection/plugins/column.stretch.plugin.js +96 -0
  141. package/dist/collection/plugins/column.stretch.plugin.js.map +1 -0
  142. package/dist/collection/plugins/dispatcher.js +27 -0
  143. package/dist/collection/plugins/dispatcher.js.map +1 -0
  144. package/dist/collection/plugins/export/csv.js +57 -53
  145. package/dist/collection/plugins/export/csv.js.map +1 -0
  146. package/dist/collection/plugins/export/export.plugin.js +154 -150
  147. package/dist/collection/plugins/export/export.plugin.js.map +1 -0
  148. package/dist/collection/plugins/export/types.js +1 -0
  149. package/dist/collection/plugins/export/types.js.map +1 -0
  150. package/dist/collection/plugins/filter/conditions/equal.js +15 -7
  151. package/dist/collection/plugins/filter/conditions/equal.js.map +1 -0
  152. package/dist/collection/plugins/filter/conditions/number/greaterThan.js +10 -6
  153. package/dist/collection/plugins/filter/conditions/number/greaterThan.js.map +1 -0
  154. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +7 -3
  155. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js.map +1 -0
  156. package/dist/collection/plugins/filter/conditions/number/lessThan.js +12 -8
  157. package/dist/collection/plugins/filter/conditions/number/lessThan.js.map +1 -0
  158. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +7 -3
  159. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js.map +1 -0
  160. package/dist/collection/plugins/filter/conditions/set.js +4 -0
  161. package/dist/collection/plugins/filter/conditions/set.js.map +1 -0
  162. package/dist/collection/plugins/filter/conditions/string/beginswith.js +17 -13
  163. package/dist/collection/plugins/filter/conditions/string/beginswith.js.map +1 -0
  164. package/dist/collection/plugins/filter/conditions/string/contains.js +17 -10
  165. package/dist/collection/plugins/filter/conditions/string/contains.js.map +1 -0
  166. package/dist/collection/plugins/filter/filter.button.js +21 -13
  167. package/dist/collection/plugins/filter/filter.button.js.map +1 -0
  168. package/dist/collection/plugins/filter/filter.plugin.js +280 -185
  169. package/dist/collection/plugins/filter/filter.plugin.js.map +1 -0
  170. package/dist/collection/plugins/filter/filter.pop.js +492 -246
  171. package/dist/collection/plugins/filter/filter.pop.js.map +1 -0
  172. package/dist/collection/plugins/filter/filter.service.js +42 -38
  173. package/dist/collection/plugins/filter/filter.service.js.map +1 -0
  174. package/dist/collection/plugins/filter/filter.style.css +68 -15
  175. package/dist/collection/plugins/filter/filter.types.js +1 -0
  176. package/dist/collection/plugins/filter/filter.types.js.map +1 -0
  177. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +30 -26
  178. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -0
  179. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js +38 -30
  180. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +1 -0
  181. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js +22 -18
  182. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -0
  183. package/dist/collection/plugins/groupingRow/grouping.const.js +7 -2
  184. package/dist/collection/plugins/groupingRow/grouping.const.js.map +1 -0
  185. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +64 -61
  186. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +1 -0
  187. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +239 -237
  188. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -0
  189. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +27 -24
  190. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +1 -0
  191. package/dist/collection/plugins/groupingRow/grouping.row.types.js +1 -0
  192. package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +1 -0
  193. package/dist/collection/plugins/groupingRow/grouping.service.js +101 -131
  194. package/dist/collection/plugins/groupingRow/grouping.service.js.map +1 -0
  195. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +47 -43
  196. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +1 -0
  197. package/dist/collection/plugins/moveColumn/column.drag.plugin.js +167 -0
  198. package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -0
  199. package/dist/collection/plugins/moveColumn/order-column.handler.js +69 -0
  200. package/dist/collection/plugins/moveColumn/order-column.handler.js.map +1 -0
  201. package/dist/collection/plugins/sorting/sorting.plugin.js +218 -163
  202. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -0
  203. package/dist/collection/plugins/sorting/sorting.sign.js +6 -2
  204. package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -0
  205. package/dist/collection/serve/controller.js +233 -0
  206. package/dist/collection/{utilsExternal/generate-data.js → serve/data.js} +72 -32
  207. package/dist/collection/services/cell.helpers.js +9 -5
  208. package/dist/collection/services/cell.helpers.js.map +1 -0
  209. package/dist/collection/services/column.data.provider.js +201 -185
  210. package/dist/collection/services/column.data.provider.js.map +1 -0
  211. package/dist/collection/services/data.provider.js +70 -45
  212. package/dist/collection/services/data.provider.js.map +1 -0
  213. package/dist/collection/services/dimension.provider.js +143 -85
  214. package/dist/collection/services/dimension.provider.js.map +1 -0
  215. package/dist/collection/services/local.scroll.service.js +120 -0
  216. package/dist/collection/services/local.scroll.service.js.map +1 -0
  217. package/dist/collection/services/local.scroll.timer.js +42 -0
  218. package/dist/collection/services/local.scroll.timer.js.map +1 -0
  219. package/dist/collection/services/resizable.directive.js +211 -226
  220. package/dist/collection/services/resizable.directive.js.map +1 -0
  221. package/dist/collection/services/resizable.element.js +39 -0
  222. package/dist/collection/services/resizable.element.js.map +1 -0
  223. package/dist/collection/services/selection.store.connector.js +257 -208
  224. package/dist/collection/services/selection.store.connector.js.map +1 -0
  225. package/dist/collection/services/viewport.provider.js +16 -12
  226. package/dist/collection/services/viewport.provider.js.map +1 -0
  227. package/dist/collection/store/dataSource/data.proxy.js +29 -25
  228. package/dist/collection/store/dataSource/data.proxy.js.map +1 -0
  229. package/dist/collection/store/dataSource/data.store.js +100 -93
  230. package/dist/collection/store/dataSource/data.store.js.map +1 -0
  231. package/dist/collection/store/dataSource/index.js +7 -0
  232. package/dist/collection/store/dataSource/index.js.map +1 -0
  233. package/dist/collection/store/dataSource/trimmed.plugin.js +36 -0
  234. package/dist/collection/store/dataSource/trimmed.plugin.js.map +1 -0
  235. package/dist/collection/store/dimension/dimension.helpers.js +97 -95
  236. package/dist/collection/store/dimension/dimension.helpers.js.map +1 -0
  237. package/dist/collection/store/dimension/dimension.store.js +106 -48
  238. package/dist/collection/store/dimension/dimension.store.js.map +1 -0
  239. package/dist/collection/store/dimension/index.js +6 -0
  240. package/dist/collection/store/dimension/index.js.map +1 -0
  241. package/dist/collection/store/selection/index.js +7 -0
  242. package/dist/collection/store/selection/index.js.map +1 -0
  243. package/dist/collection/store/selection/selection.helpers.js +43 -39
  244. package/dist/collection/store/selection/selection.helpers.js.map +1 -0
  245. package/dist/collection/store/selection/selection.store.js +75 -63
  246. package/dist/collection/store/selection/selection.store.js.map +1 -0
  247. package/dist/collection/store/selection/selection.store.service.js +35 -31
  248. package/dist/collection/store/selection/selection.store.service.js.map +1 -0
  249. package/dist/collection/store/storeTypes.js +10 -2
  250. package/dist/collection/store/storeTypes.js.map +1 -0
  251. package/dist/collection/store/viewport/index.js +6 -0
  252. package/dist/collection/store/viewport/index.js.map +1 -0
  253. package/dist/collection/store/viewport/viewport.helpers.js +247 -0
  254. package/dist/collection/store/viewport/viewport.helpers.js.map +1 -0
  255. package/dist/collection/store/viewport/viewport.store.js +193 -0
  256. package/dist/collection/store/viewport/viewport.store.js.map +1 -0
  257. package/dist/collection/themeManager/theme.compact.js +7 -3
  258. package/dist/collection/themeManager/theme.compact.js.map +1 -0
  259. package/dist/collection/themeManager/theme.default.js +7 -3
  260. package/dist/collection/themeManager/theme.default.js.map +1 -0
  261. package/dist/collection/themeManager/theme.material.js +7 -3
  262. package/dist/collection/themeManager/theme.material.js.map +1 -0
  263. package/dist/collection/themeManager/theme.service.js +53 -0
  264. package/dist/collection/themeManager/theme.service.js.map +1 -0
  265. package/dist/collection/types/dimension.js +2 -0
  266. package/dist/collection/types/dimension.js.map +1 -0
  267. package/dist/collection/types/interfaces.js +2 -0
  268. package/dist/collection/types/interfaces.js.map +1 -0
  269. package/dist/collection/types/plugin.js +2 -0
  270. package/dist/collection/types/plugin.js.map +1 -0
  271. package/dist/collection/types/plugin.types.js +2 -0
  272. package/dist/collection/types/plugin.types.js.map +1 -0
  273. package/dist/collection/types/selection.js +2 -0
  274. package/dist/collection/types/selection.js.map +1 -0
  275. package/dist/collection/types/theme.js +2 -0
  276. package/dist/collection/types/theme.js.map +1 -0
  277. package/dist/collection/types/viewport.interfaces.js +2 -0
  278. package/dist/collection/types/viewport.interfaces.js.map +1 -0
  279. package/dist/collection/utils/browser.js +7 -0
  280. package/dist/collection/utils/browser.js.map +1 -0
  281. package/dist/collection/utils/closest.polifill.js +22 -0
  282. package/dist/collection/utils/closest.polifill.js.map +1 -0
  283. package/dist/collection/utils/consts.js +8 -0
  284. package/dist/collection/utils/consts.js.map +1 -0
  285. package/dist/collection/utils/events.js +29 -0
  286. package/dist/collection/utils/events.js.map +1 -0
  287. package/dist/collection/utils/header.utils.js +24 -0
  288. package/dist/collection/utils/header.utils.js.map +1 -0
  289. package/dist/collection/utils/index.js +125 -0
  290. package/dist/collection/utils/index.js.map +1 -0
  291. package/dist/collection/utils/key.codes.js +76 -0
  292. package/dist/collection/utils/key.codes.js.map +1 -0
  293. package/dist/collection/utils/key.utils.js +84 -0
  294. package/dist/collection/utils/key.utils.js.map +1 -0
  295. package/dist/collection/utils/mobile.js +7 -0
  296. package/dist/collection/utils/mobile.js.map +1 -0
  297. package/dist/collection/utils/platform.js +5 -1
  298. package/dist/collection/utils/platform.js.map +1 -0
  299. package/dist/collection/utils/resize-observer.polifill.js +10 -0
  300. package/dist/collection/utils/resize-observer.polifill.js.map +1 -0
  301. package/dist/collection/utils/row-header-utils.js +9 -0
  302. package/dist/collection/utils/row-header-utils.js.map +1 -0
  303. package/dist/collection/utils/store.utils.js +7 -3
  304. package/dist/collection/utils/store.utils.js.map +1 -0
  305. package/dist/esm/app-globals-ef1fca59.js +12 -0
  306. package/dist/esm/app-globals-ef1fca59.js.map +1 -0
  307. package/dist/esm/column.service-21a3af74.js +520 -0
  308. package/dist/esm/column.service-21a3af74.js.map +1 -0
  309. package/dist/esm/debounce-7781346d.js +224 -0
  310. package/dist/esm/debounce-7781346d.js.map +1 -0
  311. package/dist/esm/dimension.helpers-a3065cb1.js +4185 -0
  312. package/dist/esm/dimension.helpers-a3065cb1.js.map +1 -0
  313. package/dist/esm/dispatcher-8ea9187d.js +30 -0
  314. package/dist/esm/dispatcher-8ea9187d.js.map +1 -0
  315. package/dist/esm/events-3dd8ee7c.js +228 -0
  316. package/dist/esm/events-3dd8ee7c.js.map +1 -0
  317. package/dist/esm/filter.button-46ce4f80.js +38 -0
  318. package/dist/esm/filter.button-46ce4f80.js.map +1 -0
  319. package/dist/esm/header-cell-renderer-1ca84d5f.js +301 -0
  320. package/dist/esm/header-cell-renderer-1ca84d5f.js.map +1 -0
  321. package/dist/esm/index-21436631.js +1837 -0
  322. package/dist/esm/index-21436631.js.map +1 -0
  323. package/dist/esm/index-98fd0168.js +79 -0
  324. package/dist/esm/index-98fd0168.js.map +1 -0
  325. package/dist/esm/index.js +11 -0
  326. package/dist/esm/index.js.map +1 -0
  327. package/dist/esm/key.utils-4586a3d6.js +120 -0
  328. package/dist/esm/key.utils-4586a3d6.js.map +1 -0
  329. package/dist/esm/loader.js +11 -26
  330. package/dist/esm/loader.js.map +1 -0
  331. package/dist/esm/{resize-observer-56b7b34f.js → resize-observer-83c9e167.js} +30 -14
  332. package/dist/esm/resize-observer-83c9e167.js.map +1 -0
  333. package/dist/esm/revo-grid.entry.js +3988 -0
  334. package/dist/esm/revo-grid.entry.js.map +1 -0
  335. package/dist/esm/revo-grid.js +19 -65
  336. package/dist/esm/revo-grid.js.map +1 -0
  337. package/dist/esm/revogr-attribution_6.entry.js +1261 -0
  338. package/dist/esm/revogr-attribution_6.entry.js.map +1 -0
  339. package/dist/esm/revogr-clipboard_3.entry.js +502 -0
  340. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -0
  341. package/dist/esm/revogr-data_4.entry.js +951 -0
  342. package/dist/esm/revogr-data_4.entry.js.map +1 -0
  343. package/dist/esm/revogr-filter-panel.entry.js +268 -115
  344. package/dist/esm/revogr-filter-panel.entry.js.map +1 -0
  345. package/dist/esm/selection.store-2577ddf9.js +391 -0
  346. package/dist/esm/selection.store-2577ddf9.js.map +1 -0
  347. package/dist/esm/storeTypes-f2647985.js +101 -0
  348. package/dist/esm/storeTypes-f2647985.js.map +1 -0
  349. package/dist/esm/throttle-cfd527d6.js +235 -0
  350. package/dist/esm/throttle-cfd527d6.js.map +1 -0
  351. package/dist/esm/toNumber-8de324a7.js +331 -0
  352. package/dist/esm/toNumber-8de324a7.js.map +1 -0
  353. package/dist/esm/viewport.helpers-6591d423.js +251 -0
  354. package/dist/esm/viewport.helpers-6591d423.js.map +1 -0
  355. package/dist/index.js +1 -1
  356. package/dist/revo-grid/app-globals-ef1fca59.js +5 -0
  357. package/dist/revo-grid/app-globals-ef1fca59.js.map +1 -0
  358. package/dist/revo-grid/column.service-21a3af74.js +5 -0
  359. package/dist/revo-grid/column.service-21a3af74.js.map +1 -0
  360. package/dist/revo-grid/debounce-7781346d.js +5 -0
  361. package/dist/revo-grid/debounce-7781346d.js.map +1 -0
  362. package/dist/revo-grid/dimension.helpers-a3065cb1.js +5 -0
  363. package/dist/revo-grid/dimension.helpers-a3065cb1.js.map +1 -0
  364. package/dist/revo-grid/dispatcher-8ea9187d.js +5 -0
  365. package/dist/revo-grid/dispatcher-8ea9187d.js.map +1 -0
  366. package/dist/revo-grid/events-3dd8ee7c.js +5 -0
  367. package/dist/revo-grid/events-3dd8ee7c.js.map +1 -0
  368. package/dist/revo-grid/filter.button-46ce4f80.js +5 -0
  369. package/dist/revo-grid/filter.button-46ce4f80.js.map +1 -0
  370. package/dist/revo-grid/header-cell-renderer-1ca84d5f.js +5 -0
  371. package/dist/revo-grid/header-cell-renderer-1ca84d5f.js.map +1 -0
  372. package/dist/revo-grid/index-21436631.js +6 -0
  373. package/dist/revo-grid/index-21436631.js.map +1 -0
  374. package/dist/revo-grid/index-98fd0168.js +5 -0
  375. package/dist/revo-grid/index-98fd0168.js.map +1 -0
  376. package/dist/revo-grid/index.esm.js +5 -0
  377. package/dist/revo-grid/index.esm.js.map +1 -0
  378. package/dist/revo-grid/key.utils-4586a3d6.js +5 -0
  379. package/dist/revo-grid/key.utils-4586a3d6.js.map +1 -0
  380. package/dist/revo-grid/resize-observer-83c9e167.js +5 -0
  381. package/dist/revo-grid/resize-observer-83c9e167.js.map +1 -0
  382. package/dist/revo-grid/revo-grid.entry.js +5 -0
  383. package/dist/revo-grid/revo-grid.entry.js.map +1 -0
  384. package/dist/revo-grid/revo-grid.esm.js +5 -1
  385. package/dist/revo-grid/revo-grid.esm.js.map +1 -0
  386. package/dist/revo-grid/revogr-attribution_6.entry.js +5 -0
  387. package/dist/revo-grid/revogr-attribution_6.entry.js.map +1 -0
  388. package/dist/revo-grid/revogr-clipboard_3.entry.js +5 -0
  389. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -0
  390. package/dist/revo-grid/revogr-data_4.entry.js +5 -0
  391. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -0
  392. package/dist/revo-grid/revogr-filter-panel.entry.js +5 -1
  393. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -0
  394. package/dist/revo-grid/selection.store-2577ddf9.js +5 -0
  395. package/dist/revo-grid/selection.store-2577ddf9.js.map +1 -0
  396. package/dist/revo-grid/storeTypes-f2647985.js +5 -0
  397. package/dist/revo-grid/storeTypes-f2647985.js.map +1 -0
  398. package/dist/revo-grid/throttle-cfd527d6.js +5 -0
  399. package/dist/revo-grid/throttle-cfd527d6.js.map +1 -0
  400. package/dist/revo-grid/toNumber-8de324a7.js +5 -0
  401. package/dist/revo-grid/toNumber-8de324a7.js.map +1 -0
  402. package/dist/revo-grid/viewport.helpers-6591d423.js +5 -0
  403. package/dist/revo-grid/viewport.helpers-6591d423.js.map +1 -0
  404. package/dist/types/components/attribution/revogr-attribution.d.ts +12 -0
  405. package/dist/types/components/clipboard/revogr-clipboard.d.ts +78 -10
  406. package/dist/types/components/data/cell-renderer.d.ts +14 -0
  407. package/dist/types/components/data/column.service.d.ts +60 -0
  408. package/dist/types/components/data/revogr-data.d.ts +101 -27
  409. package/dist/types/components/data/row-highlight.plugin.d.ts +10 -0
  410. package/dist/types/components/data/{rowRenderer.d.ts → row-renderer.d.ts} +6 -5
  411. package/dist/types/components/editors/revogr-edit.d.ts +63 -0
  412. package/dist/types/components/editors/text-editor.d.ts +46 -0
  413. package/dist/types/components/header/header-cell-renderer.d.ts +11 -0
  414. package/dist/types/components/header/header-renderer.d.ts +17 -0
  415. package/dist/types/components/header/revogr-header.d.ts +70 -22
  416. package/dist/types/components/order/order-renderer.d.ts +29 -0
  417. package/dist/types/components/order/order-row.service.d.ts +28 -0
  418. package/dist/types/components/order/revogr-order-editor.d.ts +43 -41
  419. package/dist/types/components/overlay/autofill.service.d.ts +69 -54
  420. package/dist/types/components/overlay/keyboard.service.d.ts +24 -23
  421. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +216 -75
  422. package/dist/types/components/overlay/selection.utils.d.ts +24 -27
  423. package/dist/types/components/revoGrid/grid.helpers.d.ts +16 -11
  424. package/dist/types/components/revoGrid/revo-grid.d.ts +555 -403
  425. package/dist/types/components/revoGrid/viewport.helpers.d.ts +4 -3
  426. package/dist/types/components/revoGrid/viewport.resize.service.d.ts +7 -7
  427. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +20 -21
  428. package/dist/types/components/revoGrid/viewport.service.d.ts +54 -56
  429. package/dist/types/components/rowHeaders/revogr-row-headers.d.ts +45 -12
  430. package/dist/types/components/rowHeaders/row-header-render.d.ts +5 -5
  431. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +115 -76
  432. package/dist/types/components/scrollable/autohide-scroll.plugin.d.ts +22 -0
  433. package/dist/types/components/scrollable/revogr-scroll-virtual.d.ts +39 -22
  434. package/dist/types/components/selectionFocus/revogr-focus.d.ts +61 -9
  435. package/dist/types/components/selectionTempRange/revogr-temp-range.d.ts +26 -11
  436. package/dist/types/components/vnode/vnode-converter.d.ts +19 -0
  437. package/dist/types/components/vnode/vnode.utils.d.ts +8 -0
  438. package/dist/types/components.d.ts +1595 -274
  439. package/dist/types/index.d.ts +14 -0
  440. package/dist/types/plugins/base.plugin.d.ts +49 -0
  441. package/dist/types/plugins/column.auto-size.plugin.d.ts +47 -0
  442. package/dist/types/plugins/column.stretch.plugin.d.ts +22 -0
  443. package/dist/types/plugins/dispatcher.d.ts +16 -0
  444. package/dist/types/plugins/export/csv.d.ts +6 -6
  445. package/dist/types/plugins/export/export.plugin.d.ts +18 -18
  446. package/dist/types/plugins/export/types.d.ts +15 -15
  447. package/dist/types/plugins/filter/filter.button.d.ts +7 -3
  448. package/dist/types/plugins/filter/filter.plugin.d.ts +61 -43
  449. package/dist/types/plugins/filter/filter.pop.d.ts +60 -35
  450. package/dist/types/plugins/filter/filter.service.d.ts +15 -15
  451. package/dist/types/plugins/filter/filter.types.d.ts +7 -7
  452. package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +16 -13
  453. package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +10 -6
  454. package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +12 -10
  455. package/dist/types/plugins/groupingRow/grouping.const.d.ts +8 -7
  456. package/dist/types/plugins/groupingRow/grouping.row.expand.service.d.ts +6 -6
  457. package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +32 -37
  458. package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +7 -5
  459. package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +23 -15
  460. package/dist/types/plugins/groupingRow/grouping.service.d.ts +18 -16
  461. package/dist/types/plugins/groupingRow/grouping.trimmed.service.d.ts +1 -1
  462. package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +56 -0
  463. package/dist/types/plugins/moveColumn/order-column.handler.d.ts +16 -0
  464. package/dist/types/plugins/sorting/sorting.plugin.d.ts +40 -27
  465. package/dist/types/plugins/sorting/sorting.sign.d.ts +3 -3
  466. package/dist/types/services/cell.helpers.d.ts +2 -2
  467. package/dist/types/services/column.data.provider.d.ts +33 -35
  468. package/dist/types/services/data.provider.d.ts +27 -21
  469. package/dist/types/services/dimension.provider.d.ts +52 -34
  470. package/dist/types/services/local.scroll.service.d.ts +37 -0
  471. package/dist/types/services/local.scroll.timer.d.ts +26 -0
  472. package/dist/types/services/resizable.directive.d.ts +52 -51
  473. package/dist/types/services/resizable.element.d.ts +4 -0
  474. package/dist/types/services/selection.store.connector.d.ts +54 -36
  475. package/dist/types/services/viewport.provider.d.ts +6 -8
  476. package/dist/types/stencil-public-runtime.d.ts +331 -217
  477. package/dist/types/store/dataSource/data.proxy.d.ts +3 -3
  478. package/dist/types/store/dataSource/data.store.d.ts +45 -46
  479. package/dist/types/store/dataSource/index.d.ts +3 -0
  480. package/dist/types/store/dataSource/trimmed.plugin.d.ts +10 -0
  481. package/dist/types/store/dimension/dimension.helpers.d.ts +24 -9
  482. package/dist/types/store/dimension/dimension.store.d.ts +29 -11
  483. package/dist/types/store/dimension/index.d.ts +2 -0
  484. package/dist/types/store/selection/index.d.ts +3 -0
  485. package/dist/types/store/selection/selection.helpers.d.ts +1 -3
  486. package/dist/types/store/selection/selection.store.d.ts +19 -17
  487. package/dist/types/store/selection/selection.store.service.d.ts +12 -13
  488. package/dist/types/store/storeTypes.d.ts +4 -4
  489. package/dist/types/store/viewport/index.d.ts +2 -0
  490. package/dist/types/store/viewport/viewport.helpers.d.ts +54 -0
  491. package/dist/types/store/viewport/viewport.store.d.ts +36 -0
  492. package/dist/types/themeManager/theme.compact.d.ts +3 -3
  493. package/dist/types/themeManager/theme.default.d.ts +3 -3
  494. package/dist/types/themeManager/theme.material.d.ts +3 -3
  495. package/dist/types/themeManager/theme.service.d.ts +13 -0
  496. package/dist/types/types/dimension.d.ts +8 -0
  497. package/dist/types/types/interfaces.d.ts +243 -0
  498. package/dist/types/types/plugin.d.ts +9 -0
  499. package/dist/types/types/plugin.types.d.ts +12 -0
  500. package/dist/types/types/selection.d.ts +115 -0
  501. package/dist/types/types/theme.d.ts +7 -0
  502. package/dist/types/types/viewport.interfaces.d.ts +51 -0
  503. package/dist/types/utils/browser.d.ts +1 -0
  504. package/dist/types/utils/consts.d.ts +5 -1
  505. package/dist/types/utils/events.d.ts +2 -0
  506. package/dist/types/utils/{utils.d.ts → index.d.ts} +17 -1
  507. package/dist/types/utils/key.codes.d.ts +70 -0
  508. package/dist/types/utils/{keyCodes.utils.d.ts → key.utils.d.ts} +5 -1
  509. package/dist/types/utils/mobile.d.ts +1 -0
  510. package/dist/types/utils/platform.d.ts +1 -1
  511. package/dist/types/utils/row-header-utils.d.ts +2 -0
  512. package/dist/types/utils/store.utils.d.ts +2 -2
  513. package/hydrate/index.d.ts +218 -0
  514. package/hydrate/index.js +32381 -0
  515. package/hydrate/package.json +6 -0
  516. package/loader/cdn.js +4 -3
  517. package/loader/index.cjs.js +4 -3
  518. package/loader/index.d.ts +10 -2
  519. package/loader/index.es2017.js +4 -3
  520. package/loader/index.js +4 -3
  521. package/package.json +96 -52
  522. package/readme.md +135 -98
  523. package/standalone/_baseIteratee.js +1237 -0
  524. package/standalone/_baseIteratee.js.map +1 -0
  525. package/standalone/_stringToPath.js +1389 -0
  526. package/standalone/_stringToPath.js.map +1 -0
  527. package/standalone/column.service.js +889 -0
  528. package/standalone/column.service.js.map +1 -0
  529. package/standalone/consts.js +30 -0
  530. package/standalone/consts.js.map +1 -0
  531. package/standalone/data.store.js +705 -0
  532. package/standalone/data.store.js.map +1 -0
  533. package/standalone/debounce.js +225 -0
  534. package/standalone/debounce.js.map +1 -0
  535. package/standalone/dimension.helpers.js +355 -0
  536. package/standalone/dimension.helpers.js.map +1 -0
  537. package/standalone/each.js +200 -0
  538. package/standalone/each.js.map +1 -0
  539. package/standalone/filter.button.js +38 -0
  540. package/standalone/filter.button.js.map +1 -0
  541. package/standalone/identity.js +349 -0
  542. package/standalone/identity.js.map +1 -0
  543. package/standalone/index.d.ts +66 -0
  544. package/standalone/index.js +42 -0
  545. package/standalone/index.js.map +1 -0
  546. package/standalone/index2.js +55 -0
  547. package/standalone/index2.js.map +1 -0
  548. package/standalone/isObjectLike.js +195 -0
  549. package/standalone/isObjectLike.js.map +1 -0
  550. package/standalone/local.scroll.timer.js +163 -0
  551. package/standalone/local.scroll.timer.js.map +1 -0
  552. package/{custom-element → standalone}/resize-observer.js +30 -14
  553. package/standalone/resize-observer.js.map +1 -0
  554. package/standalone/revo-grid.d.ts +11 -0
  555. package/standalone/revo-grid.js +4252 -0
  556. package/standalone/revo-grid.js.map +1 -0
  557. package/standalone/revogr-attribution.d.ts +11 -0
  558. package/standalone/revogr-attribution.js +11 -0
  559. package/standalone/revogr-attribution.js.map +1 -0
  560. package/standalone/revogr-attribution2.js +31 -0
  561. package/standalone/revogr-attribution2.js.map +1 -0
  562. package/standalone/revogr-clipboard.d.ts +11 -0
  563. package/standalone/revogr-clipboard.js +11 -0
  564. package/standalone/revogr-clipboard.js.map +1 -0
  565. package/standalone/revogr-clipboard2.js +159 -0
  566. package/standalone/revogr-clipboard2.js.map +1 -0
  567. package/standalone/revogr-data.d.ts +11 -0
  568. package/standalone/revogr-data.js +11 -0
  569. package/standalone/revogr-data.js.map +1 -0
  570. package/standalone/revogr-data2.js +368 -0
  571. package/standalone/revogr-data2.js.map +1 -0
  572. package/standalone/revogr-edit.d.ts +11 -0
  573. package/standalone/revogr-edit.js +11 -0
  574. package/standalone/revogr-edit.js.map +1 -0
  575. package/standalone/revogr-edit2.js +335 -0
  576. package/standalone/revogr-edit2.js.map +1 -0
  577. package/standalone/revogr-filter-panel.d.ts +11 -0
  578. package/standalone/revogr-filter-panel.js +310 -0
  579. package/standalone/revogr-filter-panel.js.map +1 -0
  580. package/standalone/revogr-focus.d.ts +11 -0
  581. package/standalone/revogr-focus.js +11 -0
  582. package/standalone/revogr-focus.js.map +1 -0
  583. package/standalone/revogr-focus2.js +106 -0
  584. package/standalone/revogr-focus2.js.map +1 -0
  585. package/standalone/revogr-header.d.ts +11 -0
  586. package/standalone/revogr-header.js +11 -0
  587. package/standalone/revogr-header.js.map +1 -0
  588. package/standalone/revogr-header2.js +667 -0
  589. package/standalone/revogr-header2.js.map +1 -0
  590. package/standalone/revogr-order-editor.d.ts +11 -0
  591. package/standalone/revogr-order-editor.js +11 -0
  592. package/standalone/revogr-order-editor.js.map +1 -0
  593. package/standalone/revogr-order-editor2.js +199 -0
  594. package/standalone/revogr-order-editor2.js.map +1 -0
  595. package/standalone/revogr-overlay-selection.d.ts +11 -0
  596. package/standalone/revogr-overlay-selection.js +11 -0
  597. package/standalone/revogr-overlay-selection.js.map +1 -0
  598. package/standalone/revogr-overlay-selection2.js +876 -0
  599. package/standalone/revogr-overlay-selection2.js.map +1 -0
  600. package/standalone/revogr-row-headers.d.ts +11 -0
  601. package/standalone/revogr-row-headers.js +11 -0
  602. package/standalone/revogr-row-headers.js.map +1 -0
  603. package/standalone/revogr-row-headers2.js +555 -0
  604. package/standalone/revogr-row-headers2.js.map +1 -0
  605. package/standalone/revogr-scroll-virtual.d.ts +11 -0
  606. package/standalone/revogr-scroll-virtual.js +11 -0
  607. package/standalone/revogr-scroll-virtual.js.map +1 -0
  608. package/standalone/revogr-scroll-virtual2.js +187 -0
  609. package/standalone/revogr-scroll-virtual2.js.map +1 -0
  610. package/standalone/revogr-temp-range.d.ts +11 -0
  611. package/standalone/revogr-temp-range.js +11 -0
  612. package/standalone/revogr-temp-range.js.map +1 -0
  613. package/standalone/revogr-temp-range2.js +90 -0
  614. package/standalone/revogr-temp-range2.js.map +1 -0
  615. package/standalone/revogr-viewport-scroll.d.ts +11 -0
  616. package/standalone/revogr-viewport-scroll.js +11 -0
  617. package/standalone/revogr-viewport-scroll.js.map +1 -0
  618. package/standalone/revogr-viewport-scroll2.js +336 -0
  619. package/standalone/revogr-viewport-scroll2.js.map +1 -0
  620. package/standalone/selection.utils.js +108 -0
  621. package/standalone/selection.utils.js.map +1 -0
  622. package/standalone/throttle.js +79 -0
  623. package/standalone/throttle.js.map +1 -0
  624. package/standalone/toNumber.js +144 -0
  625. package/standalone/toNumber.js.map +1 -0
  626. package/standalone/vnode-converter.js +45 -0
  627. package/standalone/vnode-converter.js.map +1 -0
  628. package/standalone/vnode-html.d.ts +11 -0
  629. package/standalone/vnode-html.js +11 -0
  630. package/standalone/vnode-html.js.map +1 -0
  631. package/custom-element/index.d.ts +0 -117
  632. package/custom-element/index.js +0 -28858
  633. package/dist/cjs/css-shim-e33df79c.js +0 -6
  634. package/dist/cjs/dom-c8b6d1a7.js +0 -75
  635. package/dist/cjs/filter.button-2396a488.js +0 -27
  636. package/dist/cjs/index-d3f67f2e.js +0 -1729
  637. package/dist/cjs/revo-grid_11.cjs.entry.js +0 -28622
  638. package/dist/cjs/revogr-clipboard.cjs.entry.js +0 -53
  639. package/dist/collection/components/button/button.js +0 -4
  640. package/dist/collection/components/data/cellRenderer.js +0 -19
  641. package/dist/collection/components/data/columnService.js +0 -243
  642. package/dist/collection/components/data/rowRenderer.js +0 -6
  643. package/dist/collection/components/header/headerCellRenderer.js +0 -19
  644. package/dist/collection/components/header/headerRenderer.js +0 -45
  645. package/dist/collection/components/order/orderRenderer.js +0 -50
  646. package/dist/collection/components/order/rowOrderService.js +0 -68
  647. package/dist/collection/components/overlay/clipboard.service.js +0 -39
  648. package/dist/collection/components/overlay/editors/edit.utils.js +0 -5
  649. package/dist/collection/components/overlay/editors/text.js +0 -35
  650. package/dist/collection/components/overlay/revogr-edit.js +0 -163
  651. package/dist/collection/components/revoGrid/viewport.interfaces.js +0 -1
  652. package/dist/collection/components/revoGrid/viewport.js +0 -18
  653. package/dist/collection/components/revoGrid/viewport.section.js +0 -28
  654. package/dist/collection/components/rowHeaders/row-header-utils.js +0 -4
  655. package/dist/collection/plugins/autoSizeColumn.d.ts +0 -54
  656. package/dist/collection/plugins/autoSizeColumn.js +0 -230
  657. package/dist/collection/plugins/basePlugin.d.ts +0 -37
  658. package/dist/collection/plugins/basePlugin.js +0 -53
  659. package/dist/collection/plugins/export/csv.d.ts +0 -9
  660. package/dist/collection/plugins/export/export.plugin.d.ts +0 -24
  661. package/dist/collection/plugins/export/types.d.ts +0 -23
  662. package/dist/collection/plugins/filter/conditions/equal.d.ts +0 -4
  663. package/dist/collection/plugins/filter/conditions/number/greaterThan.d.ts +0 -3
  664. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.d.ts +0 -3
  665. package/dist/collection/plugins/filter/conditions/number/lessThan.d.ts +0 -3
  666. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.d.ts +0 -3
  667. package/dist/collection/plugins/filter/conditions/set.d.ts +0 -4
  668. package/dist/collection/plugins/filter/conditions/string/beginswith.d.ts +0 -3
  669. package/dist/collection/plugins/filter/conditions/string/contains.d.ts +0 -4
  670. package/dist/collection/plugins/filter/filter.button.d.ts +0 -10
  671. package/dist/collection/plugins/filter/filter.plugin.d.ts +0 -59
  672. package/dist/collection/plugins/filter/filter.pop.d.ts +0 -42
  673. package/dist/collection/plugins/filter/filter.service.d.ts +0 -20
  674. package/dist/collection/plugins/filter/filter.types.d.ts +0 -8
  675. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.d.ts +0 -16
  676. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.d.ts +0 -13
  677. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.d.ts +0 -14
  678. package/dist/collection/plugins/groupingRow/grouping.const.d.ts +0 -9
  679. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.d.ts +0 -15
  680. package/dist/collection/plugins/groupingRow/grouping.row.plugin.d.ts +0 -40
  681. package/dist/collection/plugins/groupingRow/grouping.row.renderer.d.ts +0 -9
  682. package/dist/collection/plugins/groupingRow/grouping.row.types.d.ts +0 -19
  683. package/dist/collection/plugins/groupingRow/grouping.service.d.ts +0 -25
  684. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.d.ts +0 -10
  685. package/dist/collection/plugins/sorting/sorting.plugin.d.ts +0 -32
  686. package/dist/collection/plugins/sorting/sorting.sign.d.ts +0 -8
  687. package/dist/collection/plugins/stretchPlugin.d.ts +0 -29
  688. package/dist/collection/plugins/stretchPlugin.js +0 -90
  689. package/dist/collection/plugins/trimmed/trimmed.plugin.d.ts +0 -10
  690. package/dist/collection/plugins/trimmed/trimmed.plugin.js +0 -32
  691. package/dist/collection/services/localScrollService.js +0 -80
  692. package/dist/collection/store/viewPort/viewport.helpers.js +0 -180
  693. package/dist/collection/store/viewPort/viewport.store.js +0 -121
  694. package/dist/collection/themeManager/themeService.js +0 -43
  695. package/dist/collection/utils/closestPolifill.js +0 -18
  696. package/dist/collection/utils/generateAlphabetHeader.js +0 -20
  697. package/dist/collection/utils/keyCodes.js +0 -70
  698. package/dist/collection/utils/keyCodes.utils.js +0 -64
  699. package/dist/collection/utils/resizeObserver.js +0 -6
  700. package/dist/collection/utils/utils.js +0 -104
  701. package/dist/esm/css-shim-8d75038b.js +0 -4
  702. package/dist/esm/dom-1b195079.js +0 -73
  703. package/dist/esm/filter.button-53ebca66.js +0 -23
  704. package/dist/esm/index-42c84e7c.js +0 -1694
  705. package/dist/esm/polyfills/core-js.js +0 -11
  706. package/dist/esm/polyfills/css-shim.js +0 -1
  707. package/dist/esm/polyfills/dom.js +0 -79
  708. package/dist/esm/polyfills/es5-html-element.js +0 -1
  709. package/dist/esm/polyfills/index.js +0 -34
  710. package/dist/esm/polyfills/system.js +0 -6
  711. package/dist/esm/revo-grid_11.entry.js +0 -28608
  712. package/dist/esm/revogr-clipboard.entry.js +0 -49
  713. package/dist/esm-es5/css-shim-8d75038b.js +0 -1
  714. package/dist/esm-es5/dom-1b195079.js +0 -21
  715. package/dist/esm-es5/filter.button-53ebca66.js +0 -1
  716. package/dist/esm-es5/index-42c84e7c.js +0 -1
  717. package/dist/esm-es5/loader.js +0 -1
  718. package/dist/esm-es5/resize-observer-56b7b34f.js +0 -1
  719. package/dist/esm-es5/revo-grid.js +0 -1
  720. package/dist/esm-es5/revo-grid_11.entry.js +0 -1
  721. package/dist/esm-es5/revogr-clipboard.entry.js +0 -1
  722. package/dist/esm-es5/revogr-filter-panel.entry.js +0 -1
  723. package/dist/revo-grid/css-shim-88bfb262.system.js +0 -1
  724. package/dist/revo-grid/css-shim-8d75038b.js +0 -1
  725. package/dist/revo-grid/dom-1b195079.js +0 -19
  726. package/dist/revo-grid/dom-ee2dd1b3.system.js +0 -21
  727. package/dist/revo-grid/filter.button-1509c206.js +0 -1
  728. package/dist/revo-grid/filter.button-4bd87101.system.js +0 -1
  729. package/dist/revo-grid/index-a15e7527.system.js +0 -1
  730. package/dist/revo-grid/index-a7f99799.js +0 -1
  731. package/dist/revo-grid/index.system.js +0 -1
  732. package/dist/revo-grid/plugins/autoSizeColumn.d.ts +0 -54
  733. package/dist/revo-grid/plugins/basePlugin.d.ts +0 -37
  734. package/dist/revo-grid/plugins/export/csv.d.ts +0 -9
  735. package/dist/revo-grid/plugins/export/export.plugin.d.ts +0 -24
  736. package/dist/revo-grid/plugins/export/types.d.ts +0 -23
  737. package/dist/revo-grid/plugins/filter/conditions/equal.d.ts +0 -4
  738. package/dist/revo-grid/plugins/filter/conditions/number/greaterThan.d.ts +0 -3
  739. package/dist/revo-grid/plugins/filter/conditions/number/greaterThanOrEqual.d.ts +0 -3
  740. package/dist/revo-grid/plugins/filter/conditions/number/lessThan.d.ts +0 -3
  741. package/dist/revo-grid/plugins/filter/conditions/number/lessThanOrEqual.d.ts +0 -3
  742. package/dist/revo-grid/plugins/filter/conditions/set.d.ts +0 -4
  743. package/dist/revo-grid/plugins/filter/conditions/string/beginswith.d.ts +0 -3
  744. package/dist/revo-grid/plugins/filter/conditions/string/contains.d.ts +0 -4
  745. package/dist/revo-grid/plugins/filter/filter.button.d.ts +0 -10
  746. package/dist/revo-grid/plugins/filter/filter.plugin.d.ts +0 -59
  747. package/dist/revo-grid/plugins/filter/filter.pop.d.ts +0 -42
  748. package/dist/revo-grid/plugins/filter/filter.service.d.ts +0 -20
  749. package/dist/revo-grid/plugins/filter/filter.types.d.ts +0 -8
  750. package/dist/revo-grid/plugins/groupingColumn/columnGroupsRenderer.d.ts +0 -16
  751. package/dist/revo-grid/plugins/groupingColumn/grouping.col.plugin.d.ts +0 -13
  752. package/dist/revo-grid/plugins/groupingColumn/headerGroupRenderer.d.ts +0 -14
  753. package/dist/revo-grid/plugins/groupingRow/grouping.const.d.ts +0 -9
  754. package/dist/revo-grid/plugins/groupingRow/grouping.row.expand.service.d.ts +0 -15
  755. package/dist/revo-grid/plugins/groupingRow/grouping.row.plugin.d.ts +0 -40
  756. package/dist/revo-grid/plugins/groupingRow/grouping.row.renderer.d.ts +0 -9
  757. package/dist/revo-grid/plugins/groupingRow/grouping.row.types.d.ts +0 -19
  758. package/dist/revo-grid/plugins/groupingRow/grouping.service.d.ts +0 -25
  759. package/dist/revo-grid/plugins/groupingRow/grouping.trimmed.service.d.ts +0 -10
  760. package/dist/revo-grid/plugins/sorting/sorting.plugin.d.ts +0 -32
  761. package/dist/revo-grid/plugins/sorting/sorting.sign.d.ts +0 -8
  762. package/dist/revo-grid/plugins/stretchPlugin.d.ts +0 -29
  763. package/dist/revo-grid/plugins/trimmed/trimmed.plugin.d.ts +0 -10
  764. package/dist/revo-grid/resize-observer-56b7b34f.js +0 -1
  765. package/dist/revo-grid/resize-observer-7a7b9757.system.js +0 -1
  766. package/dist/revo-grid/revo-grid.js +0 -132
  767. package/dist/revo-grid/revo-grid.system.js +0 -1
  768. package/dist/revo-grid/revo-grid_11.entry.js +0 -1
  769. package/dist/revo-grid/revo-grid_11.system.entry.js +0 -1
  770. package/dist/revo-grid/revogr-clipboard.entry.js +0 -1
  771. package/dist/revo-grid/revogr-clipboard.system.entry.js +0 -1
  772. package/dist/revo-grid/revogr-filter-panel.system.entry.js +0 -1
  773. package/dist/types/components/button/button.d.ts +0 -5
  774. package/dist/types/components/data/cellRenderer.d.ts +0 -8
  775. package/dist/types/components/data/columnService.d.ts +0 -42
  776. package/dist/types/components/header/headerCellRenderer.d.ts +0 -8
  777. package/dist/types/components/header/headerRenderer.d.ts +0 -15
  778. package/dist/types/components/order/orderRenderer.d.ts +0 -28
  779. package/dist/types/components/order/rowOrderService.d.ts +0 -27
  780. package/dist/types/components/overlay/clipboard.service.d.ts +0 -20
  781. package/dist/types/components/overlay/editors/text.d.ts +0 -13
  782. package/dist/types/components/overlay/revogr-edit.d.ts +0 -19
  783. package/dist/types/components/revoGrid/viewport.d.ts +0 -19
  784. package/dist/types/components/revoGrid/viewport.interfaces.d.ts +0 -66
  785. package/dist/types/components/revoGrid/viewport.section.d.ts +0 -24
  786. package/dist/types/components/rowHeaders/row-header-utils.d.ts +0 -2
  787. package/dist/types/interfaces.d.ts +0 -437
  788. package/dist/types/plugins/autoSizeColumn.d.ts +0 -54
  789. package/dist/types/plugins/basePlugin.d.ts +0 -37
  790. package/dist/types/plugins/stretchPlugin.d.ts +0 -29
  791. package/dist/types/plugins/trimmed/trimmed.plugin.d.ts +0 -10
  792. package/dist/types/services/localScrollService.d.ts +0 -28
  793. package/dist/types/store/viewPort/viewport.helpers.d.ts +0 -30
  794. package/dist/types/store/viewPort/viewport.store.d.ts +0 -18
  795. package/dist/types/themeManager/themeService.d.ts +0 -13
  796. package/dist/types/utils/closestPolifill.d.ts +0 -0
  797. package/dist/types/utils/keyCodes.d.ts +0 -68
  798. package/loader/package.json +0 -10
  799. /package/dist/types/components/{overlay/editors → editors}/edit.utils.d.ts +0 -0
  800. /package/dist/{esm-es5/index.js → types/utils/closest.polifill.d.ts} +0 -0
  801. /package/dist/types/utils/{generateAlphabetHeader.d.ts → header.utils.d.ts} +0 -0
  802. /package/dist/types/utils/{resizeObserver.d.ts → resize-observer.polifill.d.ts} +0 -0
@@ -1,178 +1,233 @@
1
- import size from 'lodash/size';
2
- import { setStore } from '../../utils/store.utils';
3
- import ColumnDataProvider from '../../services/column.data.provider';
4
- import BasePlugin from '../basePlugin';
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ import size from "lodash/size";
5
+ import debounce from "lodash/debounce";
6
+ import range from "lodash/range";
7
+ import { setStore } from "../../utils/store.utils";
8
+ import ColumnDataProvider from "../../services/column.data.provider";
9
+ import { BasePlugin } from "../base.plugin";
5
10
  /**
6
- * lifecycle
7
- * 1) @event beforesorting - sorting just started, nothing happened yet
8
- * 2) @metod updateColumnSorting - column sorting icon applied to grid and column get updated, data still untiuched
9
- * 3) @event beforesortingapply - before we applied sorting data to data source, you can prevent data apply from here
10
- * 4) @event afterSortingApply - sorting applied, just finished event
11
+ * Lifecycle
12
+ * 1. @event `beforesorting` - Triggered when sorting just starts. Nothing has happened yet. This can be triggered from a column or from the source. If the type is from rows, the column will be undefined.
13
+ * 2. @method `updateColumnSorting` - Updates the column sorting icon on the grid and the column itself, but the data remains untouched.
14
+ * 3. @event `beforesortingapply` - Triggered before the sorting data is applied to the data source. You can prevent this event, and the data will not be sorted. This event is only called from a column sorting click.
15
+ * 4. @event `aftersortingapply` - Triggered after sorting has been applied and completed. This event occurs for both row and column sorting.
11
16
  *
12
- * If you prevent event it'll not reach farther steps
17
+ * Note: If you prevent an event, it will not proceed to the subsequent steps.
13
18
  */
14
19
  export default class SortingPlugin extends BasePlugin {
15
- constructor(revogrid) {
16
- super(revogrid);
17
- this.revogrid = revogrid;
18
- this.sorting = null;
19
- this.sortingFunc = null;
20
- const beforesourceset = ({ detail }) => {
21
- if (this.hasSorting) {
22
- // is sorting allowed
23
- const event = this.emit('beforesourcesortingapply');
24
- // sorting prevented
25
- if (event.defaultPrevented) {
26
- return;
27
- }
28
- }
29
- const data = this.setData(detail.source, detail.type);
30
- if (data) {
31
- detail.source = data;
32
- }
33
- };
34
- const aftercolumnsset = async ({ detail: { order } }) => {
35
- const columns = await this.revogrid.getColumns();
36
- const sortingFunc = {};
37
- for (let prop in order) {
38
- const column = ColumnDataProvider.getColumnByProp(columns, prop);
39
- const cmp = (column === null || column === void 0 ? void 0 : column.cellCompare) || this.defaultCellCompare;
40
- sortingFunc[prop] = order[prop] == 'desc' ? this.descCellCompare(cmp) : cmp;
41
- }
42
- this.sort(order, sortingFunc);
43
- };
44
- const headerclick = async (e) => {
45
- var _a, _b;
46
- if (e.defaultPrevented) {
47
- return;
48
- }
49
- if (!e.detail.column.sortable) {
50
- return;
51
- }
52
- this.headerclick(e.detail.column, e.detail.index, (_b = (_a = e.detail) === null || _a === void 0 ? void 0 : _a.originalEvent) === null || _b === void 0 ? void 0 : _b.shiftKey);
53
- };
54
- this.addEventListener('beforesourceset', beforesourceset);
55
- this.addEventListener('aftercolumnsset', aftercolumnsset);
56
- this.addEventListener('initialHeaderClick', headerclick);
57
- }
58
- get hasSorting() {
59
- return !!this.sorting;
60
- }
61
- async headerclick(column, index, additive) {
62
- let order = this.getNextOrder(column.order);
63
- const beforeEvent = this.emit('beforesorting', { column, order, additive });
64
- if (beforeEvent.defaultPrevented) {
65
- return;
20
+ async runSorting(order, comparison) {
21
+ var _a;
22
+ await this.sort(order, comparison);
23
+ (_a = this.sortingPromise) === null || _a === void 0 ? void 0 : _a.call(this);
24
+ this.sortingPromise = null;
66
25
  }
67
- order = beforeEvent.detail.order;
68
- const newCol = await this.revogrid.updateColumnSorting(beforeEvent.detail.column, index, order, additive);
69
- // apply sort data
70
- const beforeApplyEvent = this.emit('beforesortingapply', { column: newCol, order, additive });
71
- if (beforeApplyEvent.defaultPrevented) {
72
- return;
26
+ constructor(revogrid, providers) {
27
+ super(revogrid, providers);
28
+ this.revogrid = revogrid;
29
+ // sorting order per column
30
+ this.sorting = null;
31
+ // sorting function per column, multiple columns sorting supported
32
+ this.sortingFunc = null;
33
+ this.sortingPromise = null;
34
+ this.postponeSort = debounce(async (order, comparison) => this.runSorting(order, comparison), 50);
35
+ const beforeanysource = async ({ detail: { type, }, }) => {
36
+ // if sorting was provided - sort data
37
+ if (!!this.sorting && this.sortingFunc) {
38
+ const beforeEvent = this.emit('beforesorting', { type });
39
+ if (beforeEvent.defaultPrevented) {
40
+ return;
41
+ }
42
+ this.startSorting(this.sorting, this.sortingFunc);
43
+ }
44
+ };
45
+ const aftercolumnsset = async ({ detail: { order }, }) => {
46
+ const columns = await this.revogrid.getColumns();
47
+ const sortingFunc = {};
48
+ for (let prop in order) {
49
+ const cmp = this.getComparer(ColumnDataProvider.getColumnByProp(columns, prop), order[prop]);
50
+ sortingFunc[prop] = cmp;
51
+ }
52
+ this.runSorting(order, sortingFunc);
53
+ };
54
+ const headerclick = async (e) => {
55
+ var _a, _b;
56
+ if (e.defaultPrevented) {
57
+ return;
58
+ }
59
+ if (!e.detail.column.sortable) {
60
+ return;
61
+ }
62
+ this.headerclick(e.detail.column, e.detail.index, (_b = (_a = e.detail) === null || _a === void 0 ? void 0 : _a.originalEvent) === null || _b === void 0 ? void 0 : _b.shiftKey);
63
+ };
64
+ this.addEventListener('beforeanysource', beforeanysource);
65
+ this.addEventListener('aftercolumnsset', aftercolumnsset);
66
+ this.addEventListener('beforeheaderclick', headerclick);
73
67
  }
74
- order = beforeApplyEvent.detail.order;
75
- const cellCmp = (column === null || column === void 0 ? void 0 : column.cellCompare) || this.defaultCellCompare;
76
- const cmp = order == 'asc' ? cellCmp : order == 'desc' ? this.descCellCompare(cellCmp) : undefined;
77
- if (additive && this.sorting) {
78
- const sorting = {};
79
- const sortingFunc = {};
80
- Object.assign(sorting, this.sorting);
81
- Object.assign(sortingFunc, this.sortingFunc);
82
- if (column.prop in sorting && size(sorting) > 1 && order === undefined) {
83
- delete sorting[column.prop];
84
- delete sortingFunc[column.prop];
85
- }
86
- else {
87
- sorting[column.prop] = order;
88
- sortingFunc[column.prop] = cmp;
89
- }
90
- this.sort(sorting, sortingFunc);
68
+ startSorting(order, sortingFunc) {
69
+ if (!this.sortingPromise) {
70
+ this.revogrid.jobsBeforeRender.push(new Promise((resolve) => {
71
+ this.sortingPromise = resolve;
72
+ }));
73
+ }
74
+ this.postponeSort(order, sortingFunc);
91
75
  }
92
- else {
93
- this.sort({ [column.prop]: order }, { [column.prop]: cmp });
76
+ getComparer(column, order) {
77
+ var _a;
78
+ const cellCmp = ((_a = column === null || column === void 0 ? void 0 : column.cellCompare) === null || _a === void 0 ? void 0 : _a.bind({ order })) || this.defaultCellCompare;
79
+ if (order == 'asc') {
80
+ return cellCmp;
81
+ }
82
+ if (order == 'desc') {
83
+ return this.descCellCompare(cellCmp);
84
+ }
85
+ return undefined;
94
86
  }
95
- }
96
- setData(data, type) {
97
- // sorting available for rgRow type only
98
- if (type === 'rgRow' && this.sortingFunc) {
99
- return this.sortItems(data, this.sortingFunc);
87
+ /**
88
+ * Apply sorting to data on header click
89
+ * If additive - add to existing sorting, multiple columns can be sorted
90
+ */
91
+ async headerclick(column, index, additive) {
92
+ let order = this.getNextOrder(column.order);
93
+ const beforeEvent = this.emit('beforesorting', { column, order, additive });
94
+ if (beforeEvent.defaultPrevented) {
95
+ return;
96
+ }
97
+ order = beforeEvent.detail.order;
98
+ const newCol = await this.revogrid.updateColumnSorting(beforeEvent.detail.column, index, order, additive);
99
+ // apply sort data
100
+ const beforeApplyEvent = this.emit('beforesortingapply', {
101
+ column: newCol,
102
+ order,
103
+ additive,
104
+ });
105
+ if (beforeApplyEvent.defaultPrevented) {
106
+ return;
107
+ }
108
+ order = beforeApplyEvent.detail.order;
109
+ const cmp = this.getComparer(column, order);
110
+ if (additive && this.sorting) {
111
+ const sorting = {};
112
+ const sortingFunc = {};
113
+ this.sorting = Object.assign(Object.assign({}, this.sorting), sorting);
114
+ // extend sorting function with new sorting for multiple columns sorting
115
+ this.sortingFunc = Object.assign(Object.assign({}, this.sortingFunc), sortingFunc);
116
+ if (column.prop in sorting && size(sorting) > 1 && order === undefined) {
117
+ delete sorting[column.prop];
118
+ delete sortingFunc[column.prop];
119
+ }
120
+ else {
121
+ sorting[column.prop] = order;
122
+ sortingFunc[column.prop] = cmp;
123
+ }
124
+ }
125
+ else {
126
+ if (order) {
127
+ // reset sorting
128
+ this.sorting = { [column.prop]: order };
129
+ this.sortingFunc = { [column.prop]: cmp };
130
+ }
131
+ else {
132
+ delete this.sorting[column.prop];
133
+ delete this.sortingFunc[column.prop];
134
+ }
135
+ }
136
+ this.startSorting(this.sorting, this.sortingFunc);
100
137
  }
101
- }
102
- /**
103
- * Sorting apply, available for rgRow type only
104
- * @param sorting - per column sorting
105
- * @param data - this.stores['rgRow'].store.get('source')
106
- */
107
- async sort(sorting, sortingFunc) {
108
- if (!size(sorting)) {
109
- this.sorting = null;
110
- this.sortingFunc = null;
111
- return;
138
+ /**
139
+ * Sort items by sorting function
140
+ * @requires proxyItems applied to row store
141
+ * @requires source applied to row store
142
+ *
143
+ * @param sorting - per column sorting
144
+ * @param data - this.stores['rgRow'].store.get('source')
145
+ */
146
+ async sort(sorting, sortingFunc, types = ['rgRow', 'rowPinStart', 'rowPinEnd']) {
147
+ // if no sorting - reset
148
+ if (!size(sorting)) {
149
+ this.sorting = null;
150
+ this.sortingFunc = null;
151
+ for (let type of types) {
152
+ const store = await this.revogrid.getSourceStore(type);
153
+ // row data
154
+ const source = store.get('source');
155
+ // row indexes
156
+ const proxyItems = range(0, source.length);
157
+ setStore(store, {
158
+ proxyItems,
159
+ source: [...source],
160
+ });
161
+ }
162
+ }
163
+ else {
164
+ // set sorting
165
+ this.sorting = sorting;
166
+ this.sortingFunc = sortingFunc;
167
+ // by default it'll sort by rgRow store
168
+ // todo: support multiple stores
169
+ for (let type of types) {
170
+ const store = await this.revogrid.getSourceStore(type);
171
+ // row data
172
+ const source = store.get('source');
173
+ // row indexes
174
+ const proxyItems = store.get('proxyItems');
175
+ const data = this.sortIndexByItems([...proxyItems], source, sortingFunc);
176
+ setStore(store, {
177
+ proxyItems: data,
178
+ source: [...source],
179
+ });
180
+ }
181
+ }
182
+ this.emit('aftersortingapply');
112
183
  }
113
- this.sorting = sorting;
114
- this.sortingFunc = sortingFunc;
115
- const store = await this.revogrid.getSourceStore();
116
- const source = store.get('source');
117
- const proxyItems = this.sortIndexByItems([...store.get('proxyItems')], source, this.sortingFunc);
118
- setStore(store, {
119
- proxyItems,
120
- source: [...source],
121
- });
122
- this.emit('afterSortingApply');
123
- }
124
- defaultCellCompare(prop, a, b) {
125
- var _a, _b;
126
- const av = (_a = a[prop]) === null || _a === void 0 ? void 0 : _a.toString().toLowerCase();
127
- const bv = (_b = b[prop]) === null || _b === void 0 ? void 0 : _b.toString().toLowerCase();
128
- return av == bv ? 0 : av > bv ? 1 : -1;
129
- }
130
- descCellCompare(cmp) {
131
- return (prop, a, b) => { return -1 * cmp(prop, a, b); };
132
- }
133
- sortIndexByItems(indexes, source, sortingFunc) {
134
- // TODO - is there a situation where multiple kvps in the `sorting` object would cause this to break?
135
- for (let prop in sortingFunc) {
136
- if (typeof sortingFunc[prop] === 'undefined') {
137
- // Unsort indexes
138
- return [...Array(indexes.length).keys()];
139
- }
184
+ defaultCellCompare(prop, a, b) {
185
+ var _a, _b;
186
+ const av = (_a = a[prop]) === null || _a === void 0 ? void 0 : _a.toString().toLowerCase();
187
+ const bv = (_b = b[prop]) === null || _b === void 0 ? void 0 : _b.toString().toLowerCase();
188
+ return av == bv ? 0 : av > bv ? 1 : -1;
140
189
  }
141
- return indexes.sort((a, b) => {
142
- let sorted = 0;
143
- for (let prop in sortingFunc) {
144
- const cmp = sortingFunc[prop];
145
- const itemA = source[a];
146
- const itemB = source[b];
147
- sorted = cmp(prop, itemA, itemB);
148
- if (sorted) {
149
- break;
190
+ descCellCompare(cmp) {
191
+ return (prop, a, b) => {
192
+ return -1 * cmp(prop, a, b);
193
+ };
194
+ }
195
+ sortIndexByItems(indexes, source, sortingFunc) {
196
+ // if no sorting - return unsorted indexes
197
+ if (Object.entries(sortingFunc).length === 0) {
198
+ // Unsort indexes
199
+ return [...Array(indexes.length).keys()];
150
200
  }
151
- }
152
- return sorted;
153
- });
154
- }
155
- sortItems(source, sortingFunc) {
156
- return source.sort((a, b) => {
157
- let sorted = 0;
158
- for (let prop in sortingFunc) {
159
- const cmp = sortingFunc[prop];
160
- sorted = cmp(prop, a, b);
161
- if (sorted) {
162
- break;
201
+ //
202
+ /**
203
+ * go through all indexes and align in new order
204
+ * performs a multi-level sorting by applying multiple comparison functions to determine the order of the items based on different properties.
205
+ */
206
+ return indexes.sort((a, b) => {
207
+ for (const [prop, cmp] of Object.entries(sortingFunc)) {
208
+ const itemA = source[a];
209
+ const itemB = source[b];
210
+ /**
211
+ * If the comparison function returns a non-zero value (sorted), it means that the items should be sorted based on the given property. In such a case, the function immediately returns the sorted value, indicating the order in which the items should be arranged.
212
+ * If none of the comparison functions result in a non-zero value, indicating that the items are equal or should remain in the same order, the function eventually returns 0.
213
+ */
214
+ const sorted = cmp(prop, itemA, itemB);
215
+ if (sorted) {
216
+ return sorted;
217
+ }
218
+ }
219
+ return 0;
220
+ });
221
+ }
222
+ getNextOrder(currentOrder) {
223
+ switch (currentOrder) {
224
+ case undefined:
225
+ return 'asc';
226
+ case 'asc':
227
+ return 'desc';
228
+ case 'desc':
229
+ return undefined;
163
230
  }
164
- }
165
- return sorted;
166
- });
167
- }
168
- getNextOrder(currentOrder) {
169
- switch (currentOrder) {
170
- case undefined:
171
- return 'asc';
172
- case 'asc':
173
- return 'desc';
174
- case 'desc':
175
- return undefined;
176
231
  }
177
- }
178
232
  }
233
+ //# sourceMappingURL=sorting.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sorting.plugin.js","sourceRoot":"","sources":["../../../src/plugins/sorting/sorting.plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import size from 'lodash/size';\nimport debounce from 'lodash/debounce';\nimport range from 'lodash/range';\n\nimport { setStore } from '../../utils/store.utils';\nimport ColumnDataProvider from '../../services/column.data.provider';\nimport { BasePlugin } from '../base.plugin';\nimport {\n ColumnProp,\n Order,\n CellCompareFunc,\n ColumnRegular,\n InitialHeaderClick,\n DataType,\n} from '../..';\nimport { DimensionRows } from '../..';\nimport { PluginProviders } from '../../';\n\nexport type SortingOrder = Record<ColumnProp, Order>;\ntype SortingOrderFunction = Record<ColumnProp, CellCompareFunc | undefined>;\ntype ColumnSetEvent = {\n order: SortingOrder;\n};\n\n/**\n * Lifecycle\n * 1. @event `beforesorting` - Triggered when sorting just starts. Nothing has happened yet. This can be triggered from a column or from the source. If the type is from rows, the column will be undefined.\n * 2. @method `updateColumnSorting` - Updates the column sorting icon on the grid and the column itself, but the data remains untouched.\n * 3. @event `beforesortingapply` - Triggered before the sorting data is applied to the data source. You can prevent this event, and the data will not be sorted. This event is only called from a column sorting click.\n * 4. @event `aftersortingapply` - Triggered after sorting has been applied and completed. This event occurs for both row and column sorting.\n *\n * Note: If you prevent an event, it will not proceed to the subsequent steps.\n */\n\nexport default class SortingPlugin extends BasePlugin {\n // sorting order per column\n private sorting: SortingOrder | null = null;\n\n // sorting function per column, multiple columns sorting supported\n private sortingFunc: SortingOrderFunction | null = null;\n private sortingPromise: (() => void) | null = null;\n private postponeSort = debounce(\n async (order: SortingOrder, comparison: SortingOrderFunction) => this.runSorting(order, comparison),\n 50,\n );\n\n private async runSorting(order: SortingOrder, comparison: SortingOrderFunction) {\n await this.sort(order, comparison);\n this.sortingPromise?.();\n this.sortingPromise = null;\n }\n\n constructor(\n protected revogrid: HTMLRevoGridElement,\n providers: PluginProviders,\n ) {\n super(revogrid, providers);\n\n const beforeanysource = async ({\n detail: { type, },\n }: CustomEvent<{\n type: DimensionRows;\n source: any[];\n }>) => {\n // if sorting was provided - sort data\n if (!!this.sorting && this.sortingFunc) {\n const beforeEvent = this.emit('beforesorting', { type });\n if (beforeEvent.defaultPrevented) {\n return;\n }\n this.startSorting(this.sorting, this.sortingFunc);\n }\n };\n const aftercolumnsset = async ({\n detail: { order },\n }: CustomEvent<ColumnSetEvent>) => {\n const columns = await this.revogrid.getColumns();\n const sortingFunc: SortingOrderFunction = {};\n\n for (let prop in order) {\n const cmp = this.getComparer(\n ColumnDataProvider.getColumnByProp(columns, prop),\n order[prop],\n );\n sortingFunc[prop] = cmp;\n }\n this.runSorting(order, sortingFunc);\n };\n const headerclick = async (e: CustomEvent<InitialHeaderClick>) => {\n if (e.defaultPrevented) {\n return;\n }\n\n if (!e.detail.column.sortable) {\n return;\n }\n\n this.headerclick(\n e.detail.column,\n e.detail.index,\n e.detail?.originalEvent?.shiftKey,\n );\n };\n\n this.addEventListener('beforeanysource', beforeanysource);\n this.addEventListener('aftercolumnsset', aftercolumnsset);\n this.addEventListener('beforeheaderclick', headerclick);\n }\n\n private startSorting(order: SortingOrder, sortingFunc: SortingOrderFunction) {\n if (!this.sortingPromise) {\n this.revogrid.jobsBeforeRender.push(new Promise<void>((resolve) => {\n this.sortingPromise = resolve;\n }));\n }\n this.postponeSort(order, sortingFunc);\n }\n\n private getComparer(column: ColumnRegular, order: Order): CellCompareFunc {\n const cellCmp: CellCompareFunc =\n column?.cellCompare?.bind({ order }) || this.defaultCellCompare;\n if (order == 'asc') {\n return cellCmp;\n }\n if (order == 'desc') {\n return this.descCellCompare(cellCmp);\n }\n return undefined;\n }\n\n /**\n * Apply sorting to data on header click\n * If additive - add to existing sorting, multiple columns can be sorted\n */\n async headerclick(column: ColumnRegular, index: number, additive: boolean) {\n let order: Order = this.getNextOrder(column.order);\n const beforeEvent = this.emit('beforesorting', { column, order, additive });\n if (beforeEvent.defaultPrevented) {\n return;\n }\n order = beforeEvent.detail.order;\n const newCol = await this.revogrid.updateColumnSorting(\n beforeEvent.detail.column,\n index,\n order,\n additive,\n );\n\n // apply sort data\n const beforeApplyEvent = this.emit('beforesortingapply', {\n column: newCol,\n order,\n additive,\n });\n if (beforeApplyEvent.defaultPrevented) {\n return;\n }\n order = beforeApplyEvent.detail.order;\n const cmp = this.getComparer(column, order);\n\n if (additive && this.sorting) {\n const sorting: SortingOrder = {};\n const sortingFunc: SortingOrderFunction = {};\n\n this.sorting = {\n ...this.sorting,\n ...sorting,\n };\n // extend sorting function with new sorting for multiple columns sorting\n this.sortingFunc = {\n ...this.sortingFunc,\n ...sortingFunc,\n };\n\n if (column.prop in sorting && size(sorting) > 1 && order === undefined) {\n delete sorting[column.prop];\n delete sortingFunc[column.prop];\n } else {\n sorting[column.prop] = order;\n sortingFunc[column.prop] = cmp;\n }\n } else {\n if (order) {\n // reset sorting\n this.sorting = { [column.prop]: order };\n this.sortingFunc = { [column.prop]: cmp };\n } else {\n delete this.sorting[column.prop];\n delete this.sortingFunc[column.prop];\n }\n }\n\n this.startSorting(this.sorting, this.sortingFunc);\n }\n\n /**\n * Sort items by sorting function\n * @requires proxyItems applied to row store\n * @requires source applied to row store\n *\n * @param sorting - per column sorting\n * @param data - this.stores['rgRow'].store.get('source')\n */\n async sort(\n sorting: SortingOrder,\n sortingFunc: SortingOrderFunction,\n types: DimensionRows[] = ['rgRow', 'rowPinStart', 'rowPinEnd'],\n ) {\n // if no sorting - reset\n if (!size(sorting)) {\n this.sorting = null;\n this.sortingFunc = null;\n\n for (let type of types) {\n const store = await this.revogrid.getSourceStore(type);\n // row data\n const source = store.get('source');\n // row indexes\n const proxyItems = range(0, source.length);\n setStore(store, {\n proxyItems,\n source: [...source],\n });\n }\n } else {\n // set sorting\n this.sorting = sorting;\n this.sortingFunc = sortingFunc;\n\n // by default it'll sort by rgRow store\n // todo: support multiple stores\n for (let type of types) {\n const store = await this.revogrid.getSourceStore(type);\n // row data\n const source = store.get('source');\n // row indexes\n const proxyItems = store.get('proxyItems');\n const data = this.sortIndexByItems(\n [...proxyItems],\n source,\n sortingFunc,\n );\n setStore(store, {\n proxyItems: data,\n source: [...source],\n });\n }\n }\n this.emit('aftersortingapply');\n }\n\n defaultCellCompare(prop: ColumnProp, a: DataType, b: DataType) {\n const av = a[prop]?.toString().toLowerCase();\n const bv = b[prop]?.toString().toLowerCase();\n\n return av == bv ? 0 : av > bv ? 1 : -1;\n }\n\n descCellCompare(cmp: CellCompareFunc) {\n return (prop: ColumnProp, a: DataType, b: DataType): number => {\n return -1 * cmp(prop, a, b);\n };\n }\n\n sortIndexByItems(\n indexes: number[],\n source: DataType[],\n sortingFunc: SortingOrderFunction,\n ): number[] {\n // if no sorting - return unsorted indexes\n if (Object.entries(sortingFunc).length === 0) {\n // Unsort indexes\n return [...Array(indexes.length).keys()];\n }\n //\n /**\n * go through all indexes and align in new order\n * performs a multi-level sorting by applying multiple comparison functions to determine the order of the items based on different properties.\n */\n return indexes.sort((a, b) => {\n for (const [prop, cmp] of Object.entries(sortingFunc)) {\n const itemA = source[a];\n const itemB = source[b];\n\n /**\n * If the comparison function returns a non-zero value (sorted), it means that the items should be sorted based on the given property. In such a case, the function immediately returns the sorted value, indicating the order in which the items should be arranged.\n * If none of the comparison functions result in a non-zero value, indicating that the items are equal or should remain in the same order, the function eventually returns 0.\n */\n const sorted = cmp(prop, itemA, itemB);\n if (sorted) {\n return sorted;\n }\n }\n return 0;\n });\n }\n\n getNextOrder(currentOrder: Order): Order {\n switch (currentOrder) {\n case undefined:\n return 'asc';\n case 'asc':\n return 'desc';\n case 'desc':\n return undefined;\n }\n }\n}\n"]}
@@ -1,6 +1,10 @@
1
- import { h } from '@stencil/core';
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ import { h } from "@stencil/core";
2
5
  export const FILTER_BUTTON_CLASS = 'rv-filter';
3
6
  export const FILTER_BUTTON_ACTIVE = 'active';
4
7
  export const SortingSign = ({ column }) => {
5
- return h("i", { class: column.order });
8
+ return h("i", { class: column.order });
6
9
  };
10
+ //# sourceMappingURL=sorting.sign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sorting.sign.js","sourceRoot":"","sources":["../../../src/plugins/sorting/sorting.sign.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAGlC,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAK7C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,MAAM,EAAS,EAAE,EAAE;IAC/C,OAAO,SAAG,KAAK,EAAE,MAAM,CAAC,KAAK,GAAI,CAAC;AACpC,CAAC,CAAC","sourcesContent":["import { h } from '@stencil/core';\nimport { ColumnRegular } from '../../types/interfaces';\n\nexport const FILTER_BUTTON_CLASS = 'rv-filter';\nexport const FILTER_BUTTON_ACTIVE = 'active';\n\ntype Props = {\n column: ColumnRegular;\n};\nexport const SortingSign = ({ column }: Props) => {\n return <i class={column.order} />;\n};\n"]}