@pega/lists-core 9.0.0-build.9.9 → 9.0.0

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 (277) hide show
  1. package/lib/index.d.ts +3 -2
  2. package/lib/index.d.ts.map +1 -1
  3. package/lib/index.js +3 -2
  4. package/lib/index.js.map +1 -1
  5. package/lib/src/core/RsCore.d.ts +1 -1
  6. package/lib/src/core/RsCore.js +1 -1
  7. package/lib/src/core/RsCore.js.map +1 -1
  8. package/lib/src/core/RsInternal.d.ts +23 -0
  9. package/lib/src/core/RsInternal.d.ts.map +1 -1
  10. package/lib/src/core/RsInternal.js +18 -2
  11. package/lib/src/core/RsInternal.js.map +1 -1
  12. package/lib/src/core/RsProps.d.ts +0 -7
  13. package/lib/src/core/RsProps.d.ts.map +1 -1
  14. package/lib/src/core/RsProps.js +0 -7
  15. package/lib/src/core/RsProps.js.map +1 -1
  16. package/lib/src/core/RsStore.d.ts +5 -1
  17. package/lib/src/core/RsStore.d.ts.map +1 -1
  18. package/lib/src/core/RsStore.js +12 -0
  19. package/lib/src/core/RsStore.js.map +1 -1
  20. package/lib/src/core/StateResolver.d.ts +0 -1
  21. package/lib/src/core/StateResolver.d.ts.map +1 -1
  22. package/lib/src/core/StateResolver.js +19 -9
  23. package/lib/src/core/StateResolver.js.map +1 -1
  24. package/lib/src/core/a11y/BaseA11y.d.ts +25 -6
  25. package/lib/src/core/a11y/BaseA11y.d.ts.map +1 -1
  26. package/lib/src/core/a11y/BaseA11y.js +39 -8
  27. package/lib/src/core/a11y/BaseA11y.js.map +1 -1
  28. package/lib/src/core/actions/actionConstants.d.ts +7 -4
  29. package/lib/src/core/actions/actionConstants.d.ts.map +1 -1
  30. package/lib/src/core/actions/actionConstants.js +8 -5
  31. package/lib/src/core/actions/actionConstants.js.map +1 -1
  32. package/lib/src/core/actions/actions.d.ts +35 -34
  33. package/lib/src/core/actions/actions.d.ts.map +1 -1
  34. package/lib/src/core/actions/actions.js +47 -40
  35. package/lib/src/core/actions/actions.js.map +1 -1
  36. package/lib/src/core/actions/actions.types.d.ts +34 -27
  37. package/lib/src/core/actions/actions.types.d.ts.map +1 -1
  38. package/lib/src/core/actions/actions.types.js.map +1 -1
  39. package/lib/src/core/config/config.d.ts +1 -1
  40. package/lib/src/core/config/config.d.ts.map +1 -1
  41. package/lib/src/core/config/config.js +5 -2
  42. package/lib/src/core/config/config.js.map +1 -1
  43. package/lib/src/core/constants.d.ts +4 -0
  44. package/lib/src/core/constants.d.ts.map +1 -1
  45. package/lib/src/core/constants.js +22 -5
  46. package/lib/src/core/constants.js.map +1 -1
  47. package/lib/src/core/defaultTranslations.d.ts +6 -1
  48. package/lib/src/core/defaultTranslations.d.ts.map +1 -1
  49. package/lib/src/core/defaultTranslations.js +6 -1
  50. package/lib/src/core/defaultTranslations.js.map +1 -1
  51. package/lib/src/core/features/featureFactory.d.ts +6 -2
  52. package/lib/src/core/features/featureFactory.d.ts.map +1 -1
  53. package/lib/src/core/features/featureFactory.js +9 -8
  54. package/lib/src/core/features/featureFactory.js.map +1 -1
  55. package/lib/src/core/features/uIFeatures/afterRender/animation.d.ts.map +1 -1
  56. package/lib/src/core/features/uIFeatures/afterRender/animation.js +11 -2
  57. package/lib/src/core/features/uIFeatures/afterRender/animation.js.map +1 -1
  58. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/autoSize.d.ts +2 -16
  59. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/autoSize.d.ts.map +1 -1
  60. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/autoSize.js +48 -89
  61. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/autoSize.js.map +1 -1
  62. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/index.d.ts +3 -4
  63. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/index.d.ts.map +1 -1
  64. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/index.js +83 -45
  65. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/index.js.map +1 -1
  66. package/lib/src/core/features/uIFeatures/afterRender/customizeParentContainer/index.d.ts.map +1 -1
  67. package/lib/src/core/features/uIFeatures/afterRender/customizeParentContainer/index.js +2 -2
  68. package/lib/src/core/features/uIFeatures/afterRender/customizeParentContainer/index.js.map +1 -1
  69. package/lib/src/core/features/uIFeatures/beforeRender/adjustHeight.d.ts +4 -1
  70. package/lib/src/core/features/uIFeatures/beforeRender/adjustHeight.d.ts.map +1 -1
  71. package/lib/src/core/features/uIFeatures/beforeRender/adjustHeight.js +15 -14
  72. package/lib/src/core/features/uIFeatures/beforeRender/adjustHeight.js.map +1 -1
  73. package/lib/src/core/features/uIFeatures/beforeRender/adjustHeightToFitRecords.d.ts.map +1 -1
  74. package/lib/src/core/features/uIFeatures/beforeRender/adjustHeightToFitRecords.js +10 -2
  75. package/lib/src/core/features/uIFeatures/beforeRender/adjustHeightToFitRecords.js.map +1 -1
  76. package/lib/src/core/features/uIFeatures/beforeRender/aggregation.d.ts +1 -1
  77. package/lib/src/core/features/uIFeatures/beforeRender/aggregation.js +2 -2
  78. package/lib/src/core/features/uIFeatures/beforeRender/aggregation.js.map +1 -1
  79. package/lib/src/core/features/uIFeatures/beforeRender/animation.d.ts +1 -1
  80. package/lib/src/core/features/uIFeatures/beforeRender/animation.d.ts.map +1 -1
  81. package/lib/src/core/features/uIFeatures/beforeRender/animation.js +5 -4
  82. package/lib/src/core/features/uIFeatures/beforeRender/animation.js.map +1 -1
  83. package/lib/src/core/features/uIFeatures/beforeRender/busyIndicator.d.ts +1 -1
  84. package/lib/src/core/features/uIFeatures/beforeRender/busyIndicator.js +2 -2
  85. package/lib/src/core/features/uIFeatures/beforeRender/busyIndicator.js.map +1 -1
  86. package/lib/src/core/features/uIFeatures/beforeRender/changePersonalisation.js +1 -1
  87. package/lib/src/core/features/uIFeatures/beforeRender/changePersonalisation.js.map +1 -1
  88. package/lib/src/core/features/uIFeatures/beforeRender/changeTemplate.d.ts +13 -0
  89. package/lib/src/core/features/uIFeatures/beforeRender/changeTemplate.d.ts.map +1 -0
  90. package/lib/src/core/features/uIFeatures/beforeRender/changeTemplate.js +40 -0
  91. package/lib/src/core/features/uIFeatures/beforeRender/changeTemplate.js.map +1 -0
  92. package/lib/src/core/features/uIFeatures/beforeRender/columnAlias.d.ts +2 -0
  93. package/lib/src/core/features/uIFeatures/beforeRender/columnAlias.d.ts.map +1 -1
  94. package/lib/src/core/features/uIFeatures/beforeRender/columnAlias.js +14 -1
  95. package/lib/src/core/features/uIFeatures/beforeRender/columnAlias.js.map +1 -1
  96. package/lib/src/core/features/uIFeatures/beforeRender/columnFormatter.d.ts.map +1 -1
  97. package/lib/src/core/features/uIFeatures/beforeRender/columnFormatter.js +7 -5
  98. package/lib/src/core/features/uIFeatures/beforeRender/columnFormatter.js.map +1 -1
  99. package/lib/src/core/features/uIFeatures/beforeRender/columnOrder.d.ts.map +1 -1
  100. package/lib/src/core/features/uIFeatures/beforeRender/columnOrder.js +13 -5
  101. package/lib/src/core/features/uIFeatures/beforeRender/columnOrder.js.map +1 -1
  102. package/lib/src/core/features/uIFeatures/beforeRender/columnReOrder.d.ts +1 -1
  103. package/lib/src/core/features/uIFeatures/beforeRender/columnReOrder.d.ts.map +1 -1
  104. package/lib/src/core/features/uIFeatures/beforeRender/columnReOrder.js +20 -17
  105. package/lib/src/core/features/uIFeatures/beforeRender/columnReOrder.js.map +1 -1
  106. package/lib/src/core/features/uIFeatures/beforeRender/columnSizing/resize.d.ts +2 -4
  107. package/lib/src/core/features/uIFeatures/beforeRender/columnSizing/resize.d.ts.map +1 -1
  108. package/lib/src/core/features/uIFeatures/beforeRender/columnSizing/resize.js +61 -40
  109. package/lib/src/core/features/uIFeatures/beforeRender/columnSizing/resize.js.map +1 -1
  110. package/lib/src/core/features/uIFeatures/beforeRender/columnSort.d.ts.map +1 -1
  111. package/lib/src/core/features/uIFeatures/beforeRender/columnSort.js +1 -1
  112. package/lib/src/core/features/uIFeatures/beforeRender/columnSort.js.map +1 -1
  113. package/lib/src/core/features/uIFeatures/beforeRender/columnToggle.d.ts +2 -2
  114. package/lib/src/core/features/uIFeatures/beforeRender/columnToggle.d.ts.map +1 -1
  115. package/lib/src/core/features/uIFeatures/beforeRender/columnToggle.js +10 -5
  116. package/lib/src/core/features/uIFeatures/beforeRender/columnToggle.js.map +1 -1
  117. package/lib/src/core/features/uIFeatures/beforeRender/columnVisualOrder.d.ts +1 -1
  118. package/lib/src/core/features/uIFeatures/beforeRender/columnVisualOrder.js +4 -4
  119. package/lib/src/core/features/uIFeatures/beforeRender/columnVisualOrder.js.map +1 -1
  120. package/lib/src/core/features/uIFeatures/beforeRender/conditionalStyleFormat.d.ts.map +1 -1
  121. package/lib/src/core/features/uIFeatures/beforeRender/conditionalStyleFormat.js +9 -8
  122. package/lib/src/core/features/uIFeatures/beforeRender/conditionalStyleFormat.js.map +1 -1
  123. package/lib/src/core/features/uIFeatures/beforeRender/customColumn.d.ts +1 -1
  124. package/lib/src/core/features/uIFeatures/beforeRender/customColumn.d.ts.map +1 -1
  125. package/lib/src/core/features/uIFeatures/beforeRender/customColumn.js +22 -8
  126. package/lib/src/core/features/uIFeatures/beforeRender/customColumn.js.map +1 -1
  127. package/lib/src/core/features/uIFeatures/beforeRender/errorColumn.d.ts.map +1 -1
  128. package/lib/src/core/features/uIFeatures/beforeRender/errorColumn.js +9 -6
  129. package/lib/src/core/features/uIFeatures/beforeRender/errorColumn.js.map +1 -1
  130. package/lib/src/core/features/uIFeatures/beforeRender/filter.d.ts +1 -0
  131. package/lib/src/core/features/uIFeatures/beforeRender/filter.d.ts.map +1 -1
  132. package/lib/src/core/features/uIFeatures/beforeRender/filter.js +13 -3
  133. package/lib/src/core/features/uIFeatures/beforeRender/filter.js.map +1 -1
  134. package/lib/src/core/features/uIFeatures/beforeRender/freeze.d.ts +2 -2
  135. package/lib/src/core/features/uIFeatures/beforeRender/freeze.d.ts.map +1 -1
  136. package/lib/src/core/features/uIFeatures/beforeRender/freeze.js +14 -9
  137. package/lib/src/core/features/uIFeatures/beforeRender/freeze.js.map +1 -1
  138. package/lib/src/core/features/uIFeatures/beforeRender/grouping.d.ts.map +1 -1
  139. package/lib/src/core/features/uIFeatures/beforeRender/grouping.js +23 -24
  140. package/lib/src/core/features/uIFeatures/beforeRender/grouping.js.map +1 -1
  141. package/lib/src/core/features/uIFeatures/beforeRender/prepareColumns.d.ts +32 -1
  142. package/lib/src/core/features/uIFeatures/beforeRender/prepareColumns.d.ts.map +1 -1
  143. package/lib/src/core/features/uIFeatures/beforeRender/prepareColumns.js +128 -32
  144. package/lib/src/core/features/uIFeatures/beforeRender/prepareColumns.js.map +1 -1
  145. package/lib/src/core/features/uIFeatures/beforeRender/prepareRows.d.ts.map +1 -1
  146. package/lib/src/core/features/uIFeatures/beforeRender/prepareRows.js +4 -4
  147. package/lib/src/core/features/uIFeatures/beforeRender/prepareRows.js.map +1 -1
  148. package/lib/src/core/features/uIFeatures/beforeRender/rowDragDrop.d.ts.map +1 -1
  149. package/lib/src/core/features/uIFeatures/beforeRender/rowDragDrop.js +14 -10
  150. package/lib/src/core/features/uIFeatures/beforeRender/rowDragDrop.js.map +1 -1
  151. package/lib/src/core/features/uIFeatures/beforeRender/stateHydration.d.ts +16 -4
  152. package/lib/src/core/features/uIFeatures/beforeRender/stateHydration.d.ts.map +1 -1
  153. package/lib/src/core/features/uIFeatures/beforeRender/stateHydration.js +124 -72
  154. package/lib/src/core/features/uIFeatures/beforeRender/stateHydration.js.map +1 -1
  155. package/lib/src/core/features/uIFeatures/beforeRender/stateSanitization.d.ts +2 -2
  156. package/lib/src/core/features/uIFeatures/beforeRender/stateSanitization.d.ts.map +1 -1
  157. package/lib/src/core/features/uIFeatures/beforeRender/stateSanitization.js +116 -37
  158. package/lib/src/core/features/uIFeatures/beforeRender/stateSanitization.js.map +1 -1
  159. package/lib/src/core/features/uIFeatures/index.d.ts +2 -3
  160. package/lib/src/core/features/uIFeatures/index.d.ts.map +1 -1
  161. package/lib/src/core/features/uIFeatures/index.js +2 -4
  162. package/lib/src/core/features/uIFeatures/index.js.map +1 -1
  163. package/lib/src/core/generators/ColumnGenerator.d.ts +15 -21
  164. package/lib/src/core/generators/ColumnGenerator.d.ts.map +1 -1
  165. package/lib/src/core/generators/ColumnGenerator.js +32 -95
  166. package/lib/src/core/generators/ColumnGenerator.js.map +1 -1
  167. package/lib/src/core/generators/ColumnGenerator.types.d.ts +16 -13
  168. package/lib/src/core/generators/ColumnGenerator.types.d.ts.map +1 -1
  169. package/lib/src/core/generators/ColumnGenerator.types.js.map +1 -1
  170. package/lib/src/core/generators/GroupGenerator.d.ts +5 -1
  171. package/lib/src/core/generators/GroupGenerator.d.ts.map +1 -1
  172. package/lib/src/core/generators/GroupGenerator.js +20 -0
  173. package/lib/src/core/generators/GroupGenerator.js.map +1 -1
  174. package/lib/src/core/generators/RowGenerator.d.ts +2 -2
  175. package/lib/src/core/generators/RowGenerator.d.ts.map +1 -1
  176. package/lib/src/core/generators/RowGenerator.js +3 -4
  177. package/lib/src/core/generators/RowGenerator.js.map +1 -1
  178. package/lib/src/core/generators/RowGenerator.types.d.ts +2 -1
  179. package/lib/src/core/generators/RowGenerator.types.d.ts.map +1 -1
  180. package/lib/src/core/generators/RowGenerator.types.js.map +1 -1
  181. package/lib/src/core/generators/ViewGenerator.d.ts +42 -28
  182. package/lib/src/core/generators/ViewGenerator.d.ts.map +1 -1
  183. package/lib/src/core/generators/ViewGenerator.js +101 -61
  184. package/lib/src/core/generators/ViewGenerator.js.map +1 -1
  185. package/lib/src/core/generators/ViewGenerator.types.d.ts +13 -1
  186. package/lib/src/core/generators/ViewGenerator.types.d.ts.map +1 -1
  187. package/lib/src/core/generators/ViewGenerator.types.js.map +1 -1
  188. package/lib/src/core/generators/__tests__/viewUtilityMockSetup.d.ts +3 -0
  189. package/lib/src/core/generators/__tests__/viewUtilityMockSetup.d.ts.map +1 -1
  190. package/lib/src/core/generators/viewUtilityMethods.d.ts +23 -10
  191. package/lib/src/core/generators/viewUtilityMethods.d.ts.map +1 -1
  192. package/lib/src/core/generators/viewUtilityMethods.js +50 -11
  193. package/lib/src/core/generators/viewUtilityMethods.js.map +1 -1
  194. package/lib/src/core/index.d.ts.map +1 -1
  195. package/lib/src/core/index.js +1 -2
  196. package/lib/src/core/index.js.map +1 -1
  197. package/lib/src/core/reducers/changeTemplate.d.ts +5 -0
  198. package/lib/src/core/reducers/changeTemplate.d.ts.map +1 -0
  199. package/lib/src/core/reducers/changeTemplate.js +14 -0
  200. package/lib/src/core/reducers/changeTemplate.js.map +1 -0
  201. package/lib/src/core/reducers/dragDrop.d.ts.map +1 -1
  202. package/lib/src/core/reducers/dragDrop.js +5 -4
  203. package/lib/src/core/reducers/dragDrop.js.map +1 -1
  204. package/lib/src/core/reducers/error.d.ts +8 -4
  205. package/lib/src/core/reducers/error.d.ts.map +1 -1
  206. package/lib/src/core/reducers/{edit.d.ts → galleryView.d.ts} +1 -1
  207. package/lib/src/core/reducers/galleryView.d.ts.map +1 -0
  208. package/lib/src/core/reducers/galleryView.js +11 -0
  209. package/lib/src/core/reducers/galleryView.js.map +1 -0
  210. package/lib/src/core/reducers/grouping.d.ts.map +1 -1
  211. package/lib/src/core/reducers/grouping.js +7 -0
  212. package/lib/src/core/reducers/grouping.js.map +1 -1
  213. package/lib/src/core/reducers/index.d.ts +8 -4
  214. package/lib/src/core/reducers/index.d.ts.map +1 -1
  215. package/lib/src/core/reducers/index.js +5 -3
  216. package/lib/src/core/reducers/index.js.map +1 -1
  217. package/lib/src/core/reducers/personalizationDirtyReducer.d.ts.map +1 -1
  218. package/lib/src/core/reducers/personalizationDirtyReducer.js +8 -4
  219. package/lib/src/core/reducers/personalizationDirtyReducer.js.map +1 -1
  220. package/lib/src/core/reducers/personalizationReducer.d.ts +3 -2
  221. package/lib/src/core/reducers/personalizationReducer.d.ts.map +1 -1
  222. package/lib/src/core/reducers/personalizationReducer.js +12 -4
  223. package/lib/src/core/reducers/personalizationReducer.js.map +1 -1
  224. package/lib/src/core/reducers/renderFormatter.d.ts.map +1 -1
  225. package/lib/src/core/reducers/renderFormatter.js +13 -3
  226. package/lib/src/core/reducers/renderFormatter.js.map +1 -1
  227. package/lib/src/core/reducers/rowSelect.d.ts.map +1 -1
  228. package/lib/src/core/reducers/rowSelect.js +0 -8
  229. package/lib/src/core/reducers/rowSelect.js.map +1 -1
  230. package/lib/src/core/reducers/versioning/index.d.ts +1 -1
  231. package/lib/src/core/reducers/versioning/index.d.ts.map +1 -1
  232. package/lib/src/core/reducers/versioning/index.js +1 -1
  233. package/lib/src/core/reducers/versioning/index.js.map +1 -1
  234. package/lib/src/core/reducers/visibility.d.ts +2 -1
  235. package/lib/src/core/reducers/visibility.d.ts.map +1 -1
  236. package/lib/src/core/reducers/visibility.js +69 -19
  237. package/lib/src/core/reducers/visibility.js.map +1 -1
  238. package/lib/src/core/test/junitMocks.d.ts +1322 -0
  239. package/lib/src/core/test/junitMocks.d.ts.map +1 -1
  240. package/lib/src/core/test/junitMocks.js +32 -51
  241. package/lib/src/core/test/junitMocks.js.map +1 -1
  242. package/lib/src/core/utils/condition-utils.d.ts +1 -1
  243. package/lib/src/core/utils/condition-utils.d.ts.map +1 -1
  244. package/lib/src/core/utils/condition-utils.js +5 -3
  245. package/lib/src/core/utils/condition-utils.js.map +1 -1
  246. package/lib/src/core/utils/util.d.ts +58 -9
  247. package/lib/src/core/utils/util.d.ts.map +1 -1
  248. package/lib/src/core/utils/util.js +151 -18
  249. package/lib/src/core/utils/util.js.map +1 -1
  250. package/lib/types/ApiContext.types.d.ts +69 -7
  251. package/lib/types/ApiContext.types.d.ts.map +1 -1
  252. package/lib/types/ApiContext.types.js.map +1 -1
  253. package/lib/types/Meta.types.d.ts +153 -11
  254. package/lib/types/Meta.types.d.ts.map +1 -1
  255. package/lib/types/Meta.types.js +7 -1
  256. package/lib/types/Meta.types.js.map +1 -1
  257. package/lib/types/RsCoreBootArgs.types.d.ts +11 -13
  258. package/lib/types/RsCoreBootArgs.types.d.ts.map +1 -1
  259. package/lib/types/RsCoreBootArgs.types.js.map +1 -1
  260. package/lib/types/State.types.d.ts +32 -30
  261. package/lib/types/State.types.d.ts.map +1 -1
  262. package/lib/types/State.types.js.map +1 -1
  263. package/lib/types.d.ts +10 -2
  264. package/lib/types.d.ts.map +1 -1
  265. package/lib/types.js.map +1 -1
  266. package/package.json +6 -8
  267. package/lib/src/core/features/uIFeatures/beforeRender/edit.d.ts +0 -12
  268. package/lib/src/core/features/uIFeatures/beforeRender/edit.d.ts.map +0 -1
  269. package/lib/src/core/features/uIFeatures/beforeRender/edit.js +0 -94
  270. package/lib/src/core/features/uIFeatures/beforeRender/edit.js.map +0 -1
  271. package/lib/src/core/features/uIFeatures/beforeRender/toggleSelectAllCheckbox.d.ts +0 -12
  272. package/lib/src/core/features/uIFeatures/beforeRender/toggleSelectAllCheckbox.d.ts.map +0 -1
  273. package/lib/src/core/features/uIFeatures/beforeRender/toggleSelectAllCheckbox.js +0 -51
  274. package/lib/src/core/features/uIFeatures/beforeRender/toggleSelectAllCheckbox.js.map +0 -1
  275. package/lib/src/core/reducers/edit.d.ts.map +0 -1
  276. package/lib/src/core/reducers/edit.js +0 -65
  277. package/lib/src/core/reducers/edit.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"animation.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/animation.ts"],"names":[],"mappings":"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","sourcesContent":["import type RsInternal from '../../../RsInternal';\nimport { BEFORE_FETCH } from '../../../pubSub/events';\nimport { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type { State } from '../../../../../types/State.types';\nimport type RsStore from '../../../RsStore';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nconst rowAnimate = ([{ getState, getRsStore, getView }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const { featuresToAvoid } = getState();\n const rsStore = getRsStore();\n if (featuresToAvoid?.includes('rowAnimation')) {\n return false;\n }\n const pNode = getView().getDomContainer();\n if (!pNode) return false;\n\n const rowContainer = pNode.querySelector('.row-container'); // row container should wrap all the rows.\n // Calculate the bounding box\n if (!rowContainer) return false;\n const boundingBox = new Map();\n rowContainer.childNodes.forEach(n => {\n if (n instanceof Element && n.hasAttribute('data-key'))\n boundingBox.set(n.getAttribute('data-key'), n.getBoundingClientRect());\n });\n rsStore.oldBoundingBox = boundingBox;\n return true;\n};\n\nconst columnAnimate = ([{ getState, getRsStore, getView }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const { featuresToAvoid } = getState();\n const rsStore = getRsStore();\n\n if (featuresToAvoid?.includes('columnAnimation') || rsStore.skipColumnAnimationOnNextRun) {\n return false;\n }\n const columnBoundingBox = new Map();\n if (getView().getItemElement()) {\n getView()\n .getItemElement()!\n .childNodes.forEach(cell => {\n if (cell instanceof Element && cell.hasAttribute('data-col-id')) {\n columnBoundingBox.set(cell.getAttribute('data-col-id'), cell.getBoundingClientRect());\n }\n });\n }\n rsStore.oldColumnBoundingBox = columnBoundingBox;\n // Store that box in the rsStore.\n return true;\n};\n\n// skipping column animation if personalization changes\nfunction skipColumnAnimation([{ getRsStore }]: [featureProps: BeforeRenderFeatureProps]) {\n getRsStore().skipColumnAnimationOnNextRun = true;\n}\n/**\n * Handles animation of rows and column by capturing the `Dom rect` of `rows` and `columns` before render.\n *\n * The animation feature is triggered when any of the following properties is changed:\n *\n * 1. For rows animation :\n * - {@link State.filterExpression}\n * - `query` in {@link State.search}\n * - {@link State.sortingOrder}\n * - {@link State.groups}\n * - {@link State.refresh}\n * - {@link State.selectedHeightOption}\n *\n * 2. For column animation:\n * - {@link State.freezeColumns}\n * - {@link RsStore.skipColumnAnimationOnNextRun}\n * - {@link State.colOrder}\n * - {@link State.hiddenColumns}\n * - {@link State.columnWidths}\n * - {@link State.refresh}\n */\nexport default (rsInternal: RsInternal) => {\n const { getRsStore, getRsStateResolver, getView } = rsInternal;\n const { getState } = getRsStateResolver();\n const memoizedRowAnimate = withMemoization(rowAnimate);\n const memoizedSkipColumnAnimation = withMemoization(skipColumnAnimation);\n const memoizedColumnAnimate = withMemoization(columnAnimate);\n // We are not calling this feature on every action as user action can translate to many\n // internal actions and we don't want animation for pagination as well.\n // So, we will trigger before animation once all queued action are done.\n function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n if (featureProps.getRsStore().isInitialRender) {\n return;\n }\n\n memoizedRowAnimate(\n [featureProps],\n [\n state.filterExpression,\n state.search?.query,\n state.sortingOrder,\n state.groups,\n state.refresh,\n state.selectedHeightOption\n ]\n );\n memoizedSkipColumnAnimation([featureProps], [state.personalization?.active]);\n memoizedColumnAnimate(\n [featureProps],\n [\n state.freezeColumns,\n state.colOrder,\n state.hiddenColumns,\n state.columnWidths,\n state.refresh,\n featureProps.getRsStore().skipColumnAnimationOnNextRun\n ]\n );\n }\n\n rsInternal\n .getPubSubUtils()\n .subscribe(\n BEFORE_FETCH,\n execute.bind(null, { getRsStore, getState, getView } as BeforeRenderFeatureProps)\n );\n};\n"]}
1
+ {"version":3,"file":"animation.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/animation.ts"],"names":[],"mappings":"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","sourcesContent":["import { isInstance } from '@pega/cosmos-react-core';\n\nimport type RsInternal from '../../../RsInternal';\nimport { BEFORE_FETCH } from '../../../pubSub/events';\nimport { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type { State } from '../../../../../types/State.types';\nimport type RsStore from '../../../RsStore';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nconst rowAnimate = ([{ getState, getRsStore, getView }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const { featuresToAvoid } = getState();\n const rsStore = getRsStore();\n if (featuresToAvoid?.includes('rowAnimation')) {\n return false;\n }\n const pNode = getView().getDomContainer();\n if (!pNode) return false;\n\n const rowContainer = pNode.querySelector('.row-container'); // row container should wrap all the rows.\n // Calculate the bounding box\n if (!rowContainer) return false;\n const boundingBox = new Map();\n rowContainer.childNodes.forEach(n => {\n if (isInstance(n, Element) && n.hasAttribute('data-key'))\n boundingBox.set(n.getAttribute('data-key'), n.getBoundingClientRect());\n });\n rsStore.oldBoundingBox = boundingBox;\n return true;\n};\n\nconst columnAnimate = ([{ getState, getRsStore, getView }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const { featuresToAvoid } = getState();\n const rsStore = getRsStore();\n\n if (featuresToAvoid?.includes('columnAnimation') || rsStore.skipColumnAnimationOnNextRun) {\n return false;\n }\n const columnBoundingBox = new Map();\n if (getView().getItemElement()) {\n getView()\n .getItemElement()!\n .childNodes.forEach(cell => {\n if (isInstance(cell, Element) && cell.hasAttribute('data-col-id')) {\n columnBoundingBox.set(cell.getAttribute('data-col-id'), cell.getBoundingClientRect());\n }\n });\n }\n rsStore.oldColumnBoundingBox = columnBoundingBox;\n // Store that box in the rsStore.\n return true;\n};\n\n// skipping column animation if personalization changes\nfunction skipColumnAnimation([{ getRsStore }]: [featureProps: BeforeRenderFeatureProps]) {\n getRsStore().skipColumnAnimationOnNextRun = true;\n}\n/**\n * Handles animation of rows and column by capturing the `Dom rect` of `rows` and `columns` before render.\n *\n * The animation feature is triggered when any of the following properties is changed:\n *\n * 1. For rows animation :\n * - {@link State.filterExpression}\n * - `query` in {@link State.search}\n * - {@link State.sortingOrder}\n * - {@link State.groups}\n * - {@link State.refresh}\n * - {@link State.selectedHeightOption}\n *\n * 2. For column animation:\n * - {@link State.freezeColumns}\n * - {@link RsStore.skipColumnAnimationOnNextRun}\n * - {@link State.colOrder}\n * - {@link State.visibleColumns}\n * - {@link State.columnWidths}\n * - {@link State.refresh}\n */\nexport default (rsInternal: RsInternal) => {\n const { getRsStore, getRsStateResolver, getView } = rsInternal;\n const { getState } = getRsStateResolver();\n const memoizedRowAnimate = withMemoization(rowAnimate);\n const memoizedSkipColumnAnimation = withMemoization(skipColumnAnimation);\n const memoizedColumnAnimate = withMemoization(columnAnimate);\n // We are not calling this feature on every action as user action can translate to many\n // internal actions and we don't want animation for pagination as well.\n // So, we will trigger before animation once all queued action are done.\n function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n if (featureProps.getRsStore().isInitialRender) {\n return;\n }\n\n memoizedRowAnimate(\n [featureProps],\n [\n state.filterExpression,\n state.search?.query,\n state.sortingOrder,\n state.groups,\n state.refresh,\n state.selectedHeightOption\n ]\n );\n memoizedSkipColumnAnimation([featureProps], [state.personalization?.active]);\n memoizedColumnAnimate(\n [featureProps],\n [\n state.freezeColumns,\n state.colOrder,\n state.visibleColumns,\n state.columnWidths,\n state.refresh,\n featureProps.getRsStore().skipColumnAnimationOnNextRun\n ]\n );\n }\n\n rsInternal\n .getPubSubUtils()\n .subscribe(\n BEFORE_FETCH,\n execute.bind(null, { getRsStore, getState, getView } as BeforeRenderFeatureProps)\n );\n};\n"]}
@@ -10,7 +10,7 @@ import type { BeforeRenderFeatureProps } from '../../featureFactory';
10
10
  * - {@link State.groups}
11
11
  * - {@link State.aggregationInfo}
12
12
  * - {@link State.refresh}
13
- * - {@link State.hiddenColumns}
13
+ * - {@link State.visibleColumns}
14
14
  *
15
15
  * `isLoading` is reset on publish of `AFTER_FETCH` event.
16
16
  */
@@ -34,7 +34,7 @@ const busyIndicator = ([{ getRsStore, getView, dispatch }]) => {
34
34
  * - {@link State.groups}
35
35
  * - {@link State.aggregationInfo}
36
36
  * - {@link State.refresh}
37
- * - {@link State.hiddenColumns}
37
+ * - {@link State.visibleColumns}
38
38
  *
39
39
  * `isLoading` is reset on publish of `AFTER_FETCH` event.
40
40
  */
@@ -51,7 +51,7 @@ export default (rsInternal) => {
51
51
  state.groups,
52
52
  state.aggregationInfo,
53
53
  state.refresh,
54
- state.hiddenColumns
54
+ state.visibleColumns
55
55
  ]);
56
56
  };
57
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"busyIndicator.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/busyIndicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAM7D,SAAS,kBAAkB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAc;IACjF,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAC1C,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACzC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACtC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAExD,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,mIAAmI;IACnI,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzC,OAAO,CAAC,kBAAkB,GAAG,UAAU,CAAC,GAAG,EAAE;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACrC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAe,CAAC,UAAsB,EAAE,EAAE;IACxC,MAAM,qBAAqB,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAC7D,UAAU,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9F,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,qBAAqB,CACnB,CAAC,YAAY,CAAC,EACd;YACE,KAAK,CAAC,gBAAgB;YACtB,KAAK,CAAC,MAAM,EAAE,KAAK;YACnB,KAAK,CAAC,YAAY;YAClB,KAAK,CAAC,WAAW;YACjB,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,eAAe;YACrB,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,aAAa;SACpB,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport { AFTER_FETCH } from '../../../pubSub/events';\nimport { actionForceUpdate } from '../../../actions/actions';\nimport type RsInternal from '../../../RsInternal';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { State } from '../../../../../types/State.types';\n\nfunction closeBusyIndicator({ getRsStore, getView, getRsStateResolver }: RsInternal) {\n const rsStore = getRsStore();\n const { dispatch } = getRsStateResolver();\n if (rsStore.busyIndicatorTimer) {\n clearTimeout(rsStore.busyIndicatorTimer);\n rsStore.busyIndicatorTimer = null;\n if (getView().isLoading) {\n getView().setProp('isLoading', false);\n dispatch(actionForceUpdate());\n }\n }\n}\n\nconst busyIndicator = ([{ getRsStore, getView, dispatch }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const rsStore = getRsStore();\n // @ts-expect-error clearTimeout expects either number or undefined but `rsStore.busyIndicatorTimer` is set to null too on line 12.\n clearTimeout(rsStore.busyIndicatorTimer);\n rsStore.busyIndicatorTimer = setTimeout(() => {\n if (!getView().isLoading) {\n getView().setProp('isLoading', true);\n dispatch(actionForceUpdate());\n }\n }, 1000);\n};\n\n/**\n * Toggles {@link View.isLoading isLoading} flag in the `View`.\n *\n * `isLoading` is set to true(if not already), when any of the following properties is changed:\n * - {@link State.filterExpression}\n * - `query` in {@link State.search}\n * - {@link State.groupToggle}\n * - {@link State.groups}\n * - {@link State.aggregationInfo}\n * - {@link State.refresh}\n * - {@link State.hiddenColumns}\n *\n * `isLoading` is reset on publish of `AFTER_FETCH` event.\n */\nexport default (rsInternal: RsInternal) => {\n const memoizedBusyIndicator = withMemoization(busyIndicator);\n rsInternal.getPubSubUtils().subscribe(AFTER_FETCH, closeBusyIndicator.bind(null, rsInternal));\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedBusyIndicator(\n [featureProps],\n [\n state.filterExpression,\n state.search?.query,\n state.sortingOrder,\n state.groupToggle,\n state.groups,\n state.aggregationInfo,\n state.refresh,\n state.hiddenColumns\n ]\n );\n };\n};\n"]}
1
+ {"version":3,"file":"busyIndicator.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/busyIndicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAM7D,SAAS,kBAAkB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAc;IACjF,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAC1C,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACzC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACtC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAExD,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,mIAAmI;IACnI,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzC,OAAO,CAAC,kBAAkB,GAAG,UAAU,CAAC,GAAG,EAAE;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACrC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAe,CAAC,UAAsB,EAAE,EAAE;IACxC,MAAM,qBAAqB,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAC7D,UAAU,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9F,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,qBAAqB,CACnB,CAAC,YAAY,CAAC,EACd;YACE,KAAK,CAAC,gBAAgB;YACtB,KAAK,CAAC,MAAM,EAAE,KAAK;YACnB,KAAK,CAAC,YAAY;YAClB,KAAK,CAAC,WAAW;YACjB,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,eAAe;YACrB,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,cAAc;SACrB,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport { AFTER_FETCH } from '../../../pubSub/events';\nimport { actionForceUpdate } from '../../../actions/actions';\nimport type RsInternal from '../../../RsInternal';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { State } from '../../../../../types/State.types';\n\nfunction closeBusyIndicator({ getRsStore, getView, getRsStateResolver }: RsInternal) {\n const rsStore = getRsStore();\n const { dispatch } = getRsStateResolver();\n if (rsStore.busyIndicatorTimer) {\n clearTimeout(rsStore.busyIndicatorTimer);\n rsStore.busyIndicatorTimer = null;\n if (getView().isLoading) {\n getView().setProp('isLoading', false);\n dispatch(actionForceUpdate());\n }\n }\n}\n\nconst busyIndicator = ([{ getRsStore, getView, dispatch }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const rsStore = getRsStore();\n // @ts-expect-error clearTimeout expects either number or undefined but `rsStore.busyIndicatorTimer` is set to null too on line 12.\n clearTimeout(rsStore.busyIndicatorTimer);\n rsStore.busyIndicatorTimer = setTimeout(() => {\n if (!getView().isLoading) {\n getView().setProp('isLoading', true);\n dispatch(actionForceUpdate());\n }\n }, 1000);\n};\n\n/**\n * Toggles {@link View.isLoading isLoading} flag in the `View`.\n *\n * `isLoading` is set to true(if not already), when any of the following properties is changed:\n * - {@link State.filterExpression}\n * - `query` in {@link State.search}\n * - {@link State.groupToggle}\n * - {@link State.groups}\n * - {@link State.aggregationInfo}\n * - {@link State.refresh}\n * - {@link State.visibleColumns}\n *\n * `isLoading` is reset on publish of `AFTER_FETCH` event.\n */\nexport default (rsInternal: RsInternal) => {\n const memoizedBusyIndicator = withMemoization(busyIndicator);\n rsInternal.getPubSubUtils().subscribe(AFTER_FETCH, closeBusyIndicator.bind(null, rsInternal));\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedBusyIndicator(\n [featureProps],\n [\n state.filterExpression,\n state.search?.query,\n state.sortingOrder,\n state.groupToggle,\n state.groups,\n state.aggregationInfo,\n state.refresh,\n state.visibleColumns\n ]\n );\n };\n};\n"]}
@@ -16,7 +16,7 @@ const changePersonalisation = ([{ getRsStore, getView, getState }]) => {
16
16
  const activePreset = rsStore.presets.find(preset => preset.id === presetId) ||
17
17
  rsStore.presets[defaultPresetIdIndex];
18
18
  const newMeta = normalizeMeta(activePreset, defaultConfig);
19
- rsStore.meta = newMeta;
19
+ rsStore.setMeta(newMeta);
20
20
  getView().setProp('meta', newMeta);
21
21
  rsStore.columnSizingTriggerdOnRowsAvailable = false;
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"changePersonalisation.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/changePersonalisation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAK1D,qDAAqD;AAErD,MAAM,qBAAqB,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAEhE,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC;IAElE,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,GAAG,QAAQ,CAAC;QACxB,mDAAmD;QACnD,MAAM,QAAQ,GACZ,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ;gBACN,QAAQ,EAAE,CAAC,eAAgB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,QAAS,CAAC;QAC7F,CAAC;QAED,MAAM,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC;YACtD,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAExC,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;QACvB,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,CAAC,mCAAmC,GAAG,KAAK,CAAC;IACtD,CAAC;AACH,CAAC,CAAC;AACF;;GAEG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,6BAA6B,GAAG,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAE7E,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,6BAA6B,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { withMemoization, normalizeMeta } from '../../../utils/util';\nimport defaultConfig from '../../../config/config';\nimport { defaultPresetIdIndex } from '../../../constants';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type { Meta } from '../../../../../types/Meta.types';\nimport type { State } from '../../../../../types/State.types';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nconst changePersonalisation = ([{ getRsStore, getView, getState }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const rsStore = getRsStore();\n const { personalization: { active: activeId } = {} } = getState();\n\n if (activeId) {\n let presetId = activeId;\n // FIXME: remove usage of constellation conventions\n const isPreset =\n activeId.startsWith('P_') || activeId === rsStore.presets[defaultPresetIdIndex].id;\n if (!isPreset) {\n presetId =\n getState().personalization!.allPersonalizations[activeId].personalizationState.presetId!;\n }\n\n const activePreset =\n rsStore.presets.find(preset => preset.id === presetId) ||\n rsStore.presets[defaultPresetIdIndex];\n\n const newMeta = normalizeMeta(activePreset, defaultConfig);\n rsStore.meta = newMeta;\n getView().setProp('meta', newMeta);\n rsStore.columnSizingTriggerdOnRowsAvailable = false;\n }\n};\n/**\n * Switches the {@link Meta} of RS to current active personalization `preset meta`. It is triggered when `active` {@link State.personalization personalization} is changed.\n */\nexport default () => {\n const memoizedChangePersonalisation = withMemoization(changePersonalisation);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedChangePersonalisation([featureProps], [state.personalization?.active]);\n };\n};\n"]}
1
+ {"version":3,"file":"changePersonalisation.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/changePersonalisation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAK1D,qDAAqD;AAErD,MAAM,qBAAqB,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAEhE,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC;IAElE,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,GAAG,QAAQ,CAAC;QACxB,mDAAmD;QACnD,MAAM,QAAQ,GACZ,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ;gBACN,QAAQ,EAAE,CAAC,eAAgB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,QAAS,CAAC;QAC7F,CAAC;QAED,MAAM,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC;YACtD,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAExC,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAC3D,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,CAAC,mCAAmC,GAAG,KAAK,CAAC;IACtD,CAAC;AACH,CAAC,CAAC;AACF;;GAEG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,6BAA6B,GAAG,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAE7E,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,6BAA6B,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { withMemoization, normalizeMeta } from '../../../utils/util';\nimport defaultConfig from '../../../config/config';\nimport { defaultPresetIdIndex } from '../../../constants';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type { Meta } from '../../../../../types/Meta.types';\nimport type { State } from '../../../../../types/State.types';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nconst changePersonalisation = ([{ getRsStore, getView, getState }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const rsStore = getRsStore();\n const { personalization: { active: activeId } = {} } = getState();\n\n if (activeId) {\n let presetId = activeId;\n // FIXME: remove usage of constellation conventions\n const isPreset =\n activeId.startsWith('P_') || activeId === rsStore.presets[defaultPresetIdIndex].id;\n if (!isPreset) {\n presetId =\n getState().personalization!.allPersonalizations[activeId].personalizationState.presetId!;\n }\n\n const activePreset =\n rsStore.presets.find(preset => preset.id === presetId) ||\n rsStore.presets[defaultPresetIdIndex];\n\n const newMeta = normalizeMeta(activePreset, defaultConfig);\n rsStore.setMeta(newMeta);\n getView().setProp('meta', newMeta);\n rsStore.columnSizingTriggerdOnRowsAvailable = false;\n }\n};\n/**\n * Switches the {@link Meta} of RS to current active personalization `preset meta`. It is triggered when `active` {@link State.personalization personalization} is changed.\n */\nexport default () => {\n const memoizedChangePersonalisation = withMemoization(changePersonalisation);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedChangePersonalisation([featureProps], [state.personalization?.active]);\n };\n};\n"]}
@@ -0,0 +1,13 @@
1
+ import type { BeforeRenderFeatureProps } from '../../featureFactory';
2
+ /**
3
+ * Synchronizes the runtime-only {@link State.currentTemplate currentTemplate} state slice
4
+ * onto the {@link View.template view.template} property.
5
+ *
6
+ * Gallery does not support grouping; on transition into Gallery any active
7
+ * {@link State.groups groups} are snapshotted into {@link State._groupsSnapshot _groupsSnapshot}
8
+ * and cleared, then restored when the user switches back to a grouping-capable template
9
+ * (e.g. Table).
10
+ */
11
+ declare const _default: () => (featureProps: BeforeRenderFeatureProps) => void;
12
+ export default _default;
13
+ //# sourceMappingURL=changeTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeTemplate.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/changeTemplate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErE;;;;;;;;GAQG;+BA4BuB,cAAc,wBAAwB;AA3BhE,wBA+BE"}
@@ -0,0 +1,40 @@
1
+ import { REPEATING_STRUCTURE_TEMPLATES } from '../../../../../types/Meta.types';
2
+ import { actionAddGroups, actionSetGroupSnapshot } from '../../../actions/actions';
3
+ import { withMemoization } from '../../../utils/util';
4
+ /**
5
+ * Synchronizes the runtime-only {@link State.currentTemplate currentTemplate} state slice
6
+ * onto the {@link View.template view.template} property.
7
+ *
8
+ * Gallery does not support grouping; on transition into Gallery any active
9
+ * {@link State.groups groups} are snapshotted into {@link State._groupsSnapshot _groupsSnapshot}
10
+ * and cleared, then restored when the user switches back to a grouping-capable template
11
+ * (e.g. Table).
12
+ */
13
+ export default () => {
14
+ const changeTemplate = ([{ getView, getState, dispatch }]) => {
15
+ // eslint-disable-next-line @typescript-eslint/naming-convention
16
+ const { currentTemplate, groups, _groupsSnapshot } = getState();
17
+ const resolved = !getView().meta.allowSwitchTemplate
18
+ ? getView().meta.template
19
+ : currentTemplate ?? getView().meta.template;
20
+ if (resolved === REPEATING_STRUCTURE_TEMPLATES.GALLERY) {
21
+ if (groups?.length) {
22
+ dispatch(actionSetGroupSnapshot(groups));
23
+ dispatch(actionAddGroups([]));
24
+ }
25
+ }
26
+ else if (_groupsSnapshot?.length && resolved === REPEATING_STRUCTURE_TEMPLATES.TABLE) {
27
+ dispatch(actionAddGroups(_groupsSnapshot));
28
+ dispatch(actionSetGroupSnapshot(undefined));
29
+ }
30
+ if (resolved !== getView().template) {
31
+ getView().setProp('template', resolved);
32
+ }
33
+ };
34
+ const memoizedChangeTemplate = withMemoization(changeTemplate);
35
+ return function execute(featureProps) {
36
+ const state = featureProps.getState();
37
+ memoizedChangeTemplate([featureProps], [state.currentTemplate, state?.personalization?.active]);
38
+ };
39
+ };
40
+ //# sourceMappingURL=changeTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeTemplate.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/changeTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD;;;;;;;;GAQG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAEvD,EAAE,EAAE;QACH,gEAAgE;QAChE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,QAAQ,EAAE,CAAC;QAChE,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,mBAAmB;YAClD,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ;YACzB,CAAC,CAAC,eAAe,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;QAE/C,IAAI,QAAQ,KAAK,6BAA6B,CAAC,OAAO,EAAE,CAAC;YACvD,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;gBACnB,QAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;aAAM,IAAI,eAAe,EAAE,MAAM,IAAI,QAAQ,KAAK,6BAA6B,CAAC,KAAK,EAAE,CAAC;YACvF,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;YAC3C,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAE/D,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,sBAAsB,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IAClG,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { REPEATING_STRUCTURE_TEMPLATES } from '../../../../../types/Meta.types';\nimport { actionAddGroups, actionSetGroupSnapshot } from '../../../actions/actions';\nimport { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n\n/**\n * Synchronizes the runtime-only {@link State.currentTemplate currentTemplate} state slice\n * onto the {@link View.template view.template} property.\n *\n * Gallery does not support grouping; on transition into Gallery any active\n * {@link State.groups groups} are snapshotted into {@link State._groupsSnapshot _groupsSnapshot}\n * and cleared, then restored when the user switches back to a grouping-capable template\n * (e.g. Table).\n */\nexport default () => {\n const changeTemplate = ([{ getView, getState, dispatch }]: [\n featureProps: BeforeRenderFeatureProps\n ]) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { currentTemplate, groups, _groupsSnapshot } = getState();\n const resolved = !getView().meta.allowSwitchTemplate\n ? getView().meta.template\n : currentTemplate ?? getView().meta.template;\n\n if (resolved === REPEATING_STRUCTURE_TEMPLATES.GALLERY) {\n if (groups?.length) {\n dispatch(actionSetGroupSnapshot(groups));\n dispatch(actionAddGroups([]));\n }\n } else if (_groupsSnapshot?.length && resolved === REPEATING_STRUCTURE_TEMPLATES.TABLE) {\n dispatch(actionAddGroups(_groupsSnapshot));\n dispatch(actionSetGroupSnapshot(undefined));\n }\n\n if (resolved !== getView().template) {\n getView().setProp('template', resolved);\n }\n };\n\n const memoizedChangeTemplate = withMemoization(changeTemplate);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedChangeTemplate([featureProps], [state.currentTemplate, state?.personalization?.active]);\n };\n};\n"]}
@@ -3,6 +3,8 @@ import type { BeforeRenderFeatureProps } from '../../featureFactory';
3
3
  * Sets {@link Column.label label}, {@link Column.alias alias}, {@link Column.categorizedHeaderLabel categorizedHeaderLabel} for each column. It is triggered when any of the following properties are changed:
4
4
  * - {@link State.columnAlias}
5
5
  * - {@link State.customFields}
6
+ * - {@link State.visibleColumns}
7
+ * - {@link State.groups}
6
8
  * - `active` is {@link State.personalization}
7
9
  */
8
10
  declare const _default: () => (featureProps: BeforeRenderFeatureProps) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"columnAlias.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnAlias.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAoErE;;;;;GAKG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAUE"}
1
+ {"version":3,"file":"columnAlias.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnAlias.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAyErE;;;;;;;GAOG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAgBE"}
@@ -49,6 +49,11 @@ const getColumnAlias = ([{ getView, getState }]) => {
49
49
  const combinedCategories = category.map(currentCategory => currentCategory.label).join('.');
50
50
  categorizedHeaderLabel = `${combinedCategories}.${label}`;
51
51
  }
52
+ /*
53
+ Updating the label within the fieldDef mutatively.
54
+ This will ensure that the label is updated in all places where the fieldDef is referenced(view.meta.fieldDefs, rsStore.fieldDefsMap).
55
+ */
56
+ column.field.label = alias || label;
52
57
  column = column.setProp({
53
58
  label: alias || label,
54
59
  alias,
@@ -60,13 +65,21 @@ const getColumnAlias = ([{ getView, getState }]) => {
60
65
  * Sets {@link Column.label label}, {@link Column.alias alias}, {@link Column.categorizedHeaderLabel categorizedHeaderLabel} for each column. It is triggered when any of the following properties are changed:
61
66
  * - {@link State.columnAlias}
62
67
  * - {@link State.customFields}
68
+ * - {@link State.visibleColumns}
69
+ * - {@link State.groups}
63
70
  * - `active` is {@link State.personalization}
64
71
  */
65
72
  export default () => {
66
73
  const memoizedColumnAlias = withMemoization(getColumnAlias);
67
74
  return function execute(featureProps) {
68
75
  const state = featureProps.getState();
69
- memoizedColumnAlias([featureProps], [state?.columnAlias, state?.customFields, state?.personalization?.active]);
76
+ memoizedColumnAlias([featureProps], [
77
+ state?.columnAlias,
78
+ state?.customFields,
79
+ state?.personalization?.active,
80
+ state.visibleColumns,
81
+ state.groups
82
+ ]);
70
83
  };
71
84
  };
72
85
  //# sourceMappingURL=columnAlias.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnAlias.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnAlias.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,qDAAqD;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAA2C,EAAE,EAAE;IAC3F,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEnC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,MAAM,EACJ,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,EAAE,yBAAyB,EAAE,EAC/D,GAAG,MAAM,CAAC;QACX,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,sBAAsB,GAAG,KAAK,CAAC;QAEnC,IAAI,KAAK,EAAE,CAAC;YACV,sBAAsB,GAAG,KAAK,CAAC;QACjC,CAAC;aAAM,IAAI,yBAAyB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5F,sBAAsB,GAAG,GAAG,kBAAkB,IAAI,KAAK,EAAE,CAAC;QAC5D,CAAC;QAED,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YACtB,KAAK,EAAE,KAAK,IAAI,KAAK;YACrB,KAAK;YACL,sBAAsB;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;GAKG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,mBAAmB,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAE5D,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,mBAAmB,CACjB,CAAC,YAAY,CAAC,EACd,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,CAC1E,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type { State } from '../../../../../types/State.types';\nimport type Column from '../../../generators/ColumnGenerator';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\n/**\n * Prepares label and categorizedHeaderLabel for column\n * columns:[\n * {\n * field: {\n * label: 'Priority',\n * category: [{label: 'sprint'}, {label: 'bugs'}],\n * showCategoryInHeaderLabel: true\n * }\n * }\n * ]\n *\n * state: {\n * columnAlias: {\n * Priority: 'Priority-Column'\n * }\n * }\n *\n * @example\n * 1) If columnAlias in state is not defined\n * 1.a) If showCategoryInHeaderLabel is true and category is defined,\n * then it prepares \"label: 'Priority'\", alias: undefined, and \"categorizedHeaderLabel: 'sprint.bugs.Priority'\"\n * 1.b) If showCategoryInHeaderLabel is \"false\" or category is empty [],\n * then it prepares \"label: 'Priority'\" and \"categorizedHeaderLabel: 'Priority'\"\n *\n * 2) If columnAlias in state is defined\n * 1.a) If showCategoryInHeaderLabel is true , columnAlias is Id and category is defined,\n * then it prepares \"label: 'Priority-Column'\" , \"alias: 'Id'\" and \"categorizedHeaderLabel: 'Id'\n *\n * 1.b) If showCategoryInHeaderLabel is true , columnAlias is '' , and category is defined,\n * then it prepares \"label: 'Priority'\" , \"alias: ''\" and \"categorizedHeaderLabel: 'sprint.bugs.Priority'\"\n *\n * 1.c) If showCategoryInHeaderLabel is \"false\" or category is empty [],\n * then it prepares \"label: 'Priority-Column'\", \"alias: 'Id'\", and \"categorizedHeaderLabel: 'Id'\"\n *\n */\n\nconst getColumnAlias = ([{ getView, getState }]: [featureProps: BeforeRenderFeatureProps]) => {\n const { columnAlias } = getState();\n\n getView().columns?.forEach(column => {\n const {\n field: { id, label, category = [], showCategoryInHeaderLabel }\n } = column;\n const alias = columnAlias?.[id];\n let categorizedHeaderLabel = label;\n\n if (alias) {\n categorizedHeaderLabel = alias;\n } else if (showCategoryInHeaderLabel && category.length) {\n const combinedCategories = category.map(currentCategory => currentCategory.label).join('.');\n categorizedHeaderLabel = `${combinedCategories}.${label}`;\n }\n\n column = column.setProp({\n label: alias || label,\n alias,\n categorizedHeaderLabel\n });\n });\n};\n\n/**\n * Sets {@link Column.label label}, {@link Column.alias alias}, {@link Column.categorizedHeaderLabel categorizedHeaderLabel} for each column. It is triggered when any of the following properties are changed:\n * - {@link State.columnAlias}\n * - {@link State.customFields}\n * - `active` is {@link State.personalization}\n */\nexport default () => {\n const memoizedColumnAlias = withMemoization(getColumnAlias);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedColumnAlias(\n [featureProps],\n [state?.columnAlias, state?.customFields, state?.personalization?.active]\n );\n };\n};\n"]}
1
+ {"version":3,"file":"columnAlias.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnAlias.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,qDAAqD;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAA2C,EAAE,EAAE;IAC3F,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEnC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,MAAM,EACJ,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,EAAE,yBAAyB,EAAE,EAC/D,GAAG,MAAM,CAAC;QACX,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,sBAAsB,GAAG,KAAK,CAAC;QAEnC,IAAI,KAAK,EAAE,CAAC;YACV,sBAAsB,GAAG,KAAK,CAAC;QACjC,CAAC;aAAM,IAAI,yBAAyB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5F,sBAAsB,GAAG,GAAG,kBAAkB,IAAI,KAAK,EAAE,CAAC;QAC5D,CAAC;QAED;;;WAGG;QACH,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC;QACpC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YACtB,KAAK,EAAE,KAAK,IAAI,KAAK;YACrB,KAAK;YACL,sBAAsB;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,mBAAmB,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAE5D,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,mBAAmB,CACjB,CAAC,YAAY,CAAC,EACd;YACE,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,eAAe,EAAE,MAAM;YAC9B,KAAK,CAAC,cAAc;YACpB,KAAK,CAAC,MAAM;SACb,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type { State } from '../../../../../types/State.types';\nimport type Column from '../../../generators/ColumnGenerator';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\n/**\n * Prepares label and categorizedHeaderLabel for column\n * columns:[\n * {\n * field: {\n * label: 'Priority',\n * category: [{label: 'sprint'}, {label: 'bugs'}],\n * showCategoryInHeaderLabel: true\n * }\n * }\n * ]\n *\n * state: {\n * columnAlias: {\n * Priority: 'Priority-Column'\n * }\n * }\n *\n * @example\n * 1) If columnAlias in state is not defined\n * 1.a) If showCategoryInHeaderLabel is true and category is defined,\n * then it prepares \"label: 'Priority'\", alias: undefined, and \"categorizedHeaderLabel: 'sprint.bugs.Priority'\"\n * 1.b) If showCategoryInHeaderLabel is \"false\" or category is empty [],\n * then it prepares \"label: 'Priority'\" and \"categorizedHeaderLabel: 'Priority'\"\n *\n * 2) If columnAlias in state is defined\n * 1.a) If showCategoryInHeaderLabel is true , columnAlias is Id and category is defined,\n * then it prepares \"label: 'Priority-Column'\" , \"alias: 'Id'\" and \"categorizedHeaderLabel: 'Id'\n *\n * 1.b) If showCategoryInHeaderLabel is true , columnAlias is '' , and category is defined,\n * then it prepares \"label: 'Priority'\" , \"alias: ''\" and \"categorizedHeaderLabel: 'sprint.bugs.Priority'\"\n *\n * 1.c) If showCategoryInHeaderLabel is \"false\" or category is empty [],\n * then it prepares \"label: 'Priority-Column'\", \"alias: 'Id'\", and \"categorizedHeaderLabel: 'Id'\"\n *\n */\n\nconst getColumnAlias = ([{ getView, getState }]: [featureProps: BeforeRenderFeatureProps]) => {\n const { columnAlias } = getState();\n\n getView().columns?.forEach(column => {\n const {\n field: { id, label, category = [], showCategoryInHeaderLabel }\n } = column;\n const alias = columnAlias?.[id];\n let categorizedHeaderLabel = label;\n\n if (alias) {\n categorizedHeaderLabel = alias;\n } else if (showCategoryInHeaderLabel && category.length) {\n const combinedCategories = category.map(currentCategory => currentCategory.label).join('.');\n categorizedHeaderLabel = `${combinedCategories}.${label}`;\n }\n\n /*\n Updating the label within the fieldDef mutatively.\n This will ensure that the label is updated in all places where the fieldDef is referenced(view.meta.fieldDefs, rsStore.fieldDefsMap).\n */\n column.field.label = alias || label;\n column = column.setProp({\n label: alias || label,\n alias,\n categorizedHeaderLabel\n });\n });\n};\n\n/**\n * Sets {@link Column.label label}, {@link Column.alias alias}, {@link Column.categorizedHeaderLabel categorizedHeaderLabel} for each column. It is triggered when any of the following properties are changed:\n * - {@link State.columnAlias}\n * - {@link State.customFields}\n * - {@link State.visibleColumns}\n * - {@link State.groups}\n * - `active` is {@link State.personalization}\n */\nexport default () => {\n const memoizedColumnAlias = withMemoization(getColumnAlias);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedColumnAlias(\n [featureProps],\n [\n state?.columnAlias,\n state?.customFields,\n state?.personalization?.active,\n state.visibleColumns,\n state.groups\n ]\n );\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"columnFormatter.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnFormatter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAqBrE;;;;GAIG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAUE"}
1
+ {"version":3,"file":"columnFormatter.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnFormatter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAyBrE;;;;GAIG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAWE"}
@@ -5,12 +5,13 @@ const getColumnFormatter = ([{ getView, getState }]) => {
5
5
  const { renderFormatter } = getState();
6
6
  getView().columns?.forEach(column => {
7
7
  const { id, formatter, cellRenderer } = column.field;
8
- const formatterName = renderFormatter?.[id] || formatter;
9
- const formatterFunc = getView().formatters?.[formatterName];
8
+ const formatterVal = renderFormatter?.[id] || formatter;
9
+ const cellValue = renderFormatter?.[id] || cellRenderer;
10
+ const formatterFunc = getView().formatters?.[typeof formatterVal === 'string' ? formatterVal : formatterVal?.type || ''];
10
11
  column = column.setProp({
11
12
  formatter: formatterFunc,
12
- formatterName,
13
- cellRenderer: renderFormatter?.[id] || cellRenderer
13
+ formatterConfig: formatterVal,
14
+ cellRenderer: typeof cellValue === 'string' ? cellValue : cellValue?.type
14
15
  });
15
16
  });
16
17
  };
@@ -23,7 +24,8 @@ export default () => {
23
24
  const memoizedGetColumnFormatter = withMemoization(getColumnFormatter);
24
25
  return function execute(featureProps) {
25
26
  const state = featureProps.getState();
26
- memoizedGetColumnFormatter([featureProps], [state.renderFormatter, state?.personalization?.active]);
27
+ // Include state.visibleColumns and state.groups as dependencies to ensure newly added or grouped columns get a correct formatter.
28
+ memoizedGetColumnFormatter([featureProps], [state.renderFormatter, state?.personalization?.active, state.visibleColumns, state.groups]);
27
29
  };
28
30
  };
29
31
  //# sourceMappingURL=columnFormatter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnFormatter.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,qDAAqD;AAErD,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAA2C,EAAE,EAAE;IAC/F,wDAAwD;IACxD,MAAM,EAAE,eAAe,EAAE,GAAG,QAAQ,EAAE,CAAC;IACvC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QACrD,MAAM,aAAa,GAAG,eAAe,EAAE,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC;QACzD,MAAM,aAAa,GAAG,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC,aAAc,CAAC,CAAC;QAC7D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YACtB,SAAS,EAAE,aAAa;YACxB,aAAa;YACb,YAAY,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,IAAI,YAAY;SACpD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,0BAA0B,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAEvE,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,0BAA0B,CACxB,CAAC,YAAY,CAAC,EACd,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,CACxD,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type Column from '../../../generators/ColumnGenerator';\nimport type { State } from '../../../../../types/State.types';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nconst getColumnFormatter = ([{ getView, getState }]: [featureProps: BeforeRenderFeatureProps]) => {\n // formatter and renderer is common for RF configurator.\n const { renderFormatter } = getState();\n getView().columns?.forEach(column => {\n const { id, formatter, cellRenderer } = column.field;\n const formatterName = renderFormatter?.[id] || formatter;\n const formatterFunc = getView().formatters?.[formatterName!];\n column = column.setProp({\n formatter: formatterFunc,\n formatterName,\n cellRenderer: renderFormatter?.[id] || cellRenderer\n });\n });\n};\n\n/**\n * Sets the {@link Column.formatter formatter}, {@link Column.formatterName formatterName}, {@link Column.cellRenderer cellRenderer} of each column when any of the following properties are changed:\n * - {@link State.renderFormatter}\n * - `active` in {@link State.personalization}\n */\nexport default () => {\n const memoizedGetColumnFormatter = withMemoization(getColumnFormatter);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedGetColumnFormatter(\n [featureProps],\n [state.renderFormatter, state?.personalization?.active]\n );\n };\n};\n"]}
1
+ {"version":3,"file":"columnFormatter.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,qDAAqD;AAErD,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAA2C,EAAE,EAAE;IAC/F,wDAAwD;IACxD,MAAM,EAAE,eAAe,EAAE,GAAG,QAAQ,EAAE,CAAC;IACvC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QACrD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC;QACxD,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC;QACxD,MAAM,aAAa,GACjB,OAAO,EAAE,CAAC,UAAU,EAAE,CACpB,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,IAAI,EAAE,CAC3E,CAAC;QACJ,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YACtB,SAAS,EAAE,aAAa;YACxB,eAAe,EAAE,YAAY;YAC7B,YAAY,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI;SAC1E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,0BAA0B,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAEvE,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,kIAAkI;QAClI,0BAA0B,CACxB,CAAC,YAAY,CAAC,EACd,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAC5F,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type Column from '../../../generators/ColumnGenerator';\nimport type { State } from '../../../../../types/State.types';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nconst getColumnFormatter = ([{ getView, getState }]: [featureProps: BeforeRenderFeatureProps]) => {\n // formatter and renderer is common for RF configurator.\n const { renderFormatter } = getState();\n getView().columns?.forEach(column => {\n const { id, formatter, cellRenderer } = column.field;\n const formatterVal = renderFormatter?.[id] || formatter;\n const cellValue = renderFormatter?.[id] || cellRenderer;\n const formatterFunc =\n getView().formatters?.[\n typeof formatterVal === 'string' ? formatterVal : formatterVal?.type || ''\n ];\n column = column.setProp({\n formatter: formatterFunc,\n formatterConfig: formatterVal,\n cellRenderer: typeof cellValue === 'string' ? cellValue : cellValue?.type\n });\n });\n};\n\n/**\n * Sets the {@link Column.formatter formatter}, {@link Column.formatterName formatterName}, {@link Column.cellRenderer cellRenderer} of each column when any of the following properties are changed:\n * - {@link State.renderFormatter}\n * - `active` in {@link State.personalization}\n */\nexport default () => {\n const memoizedGetColumnFormatter = withMemoization(getColumnFormatter);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n // Include state.visibleColumns and state.groups as dependencies to ensure newly added or grouped columns get a correct formatter.\n memoizedGetColumnFormatter(\n [featureProps],\n [state.renderFormatter, state?.personalization?.active, state.visibleColumns, state.groups]\n );\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"columnOrder.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnOrder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAwBrE;;;;;;GAMG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAeE"}
1
+ {"version":3,"file":"columnOrder.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnOrder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAiCrE;;;;;;GAMG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAeE"}
@@ -1,4 +1,5 @@
1
1
  import { withMemoization } from '../../../utils/util';
2
+ import { rowActionColumnMeta } from '../../../constants';
2
3
  /* eslint-enable @typescript-eslint/no-unused-vars */
3
4
  const getColumnOrder = ([{ getView, getState }]) => {
4
5
  const { colOrder = [], freezeColumns = [] } = getState();
@@ -7,11 +8,18 @@ const getColumnOrder = ([{ getView, getState }]) => {
7
8
  getView().columns?.forEach((column, index) => {
8
9
  const { id } = column.field;
9
10
  const style = { ...column.style };
10
- const existingOrder = colOrder.indexOf(`${id}`);
11
- style.order =
12
- freezeColumnsCount + totalColumnsCount + (existingOrder > -1 ? existingOrder : index);
13
- if (freezeColumns.includes(`${id}`)) {
14
- style.order = freezeColumns.indexOf(`${id}`);
11
+ if (id === rowActionColumnMeta.field.id) {
12
+ // Action Menu column should always be last.
13
+ style.order = Number.MAX_SAFE_INTEGER;
14
+ }
15
+ else if (freezeColumns.includes(id)) {
16
+ // Frozen columns OOTB frozen columns and normal columns.
17
+ style.order = freezeColumns.indexOf(id);
18
+ }
19
+ else {
20
+ const existingOrder = colOrder.indexOf(id);
21
+ style.order =
22
+ freezeColumnsCount + totalColumnsCount + (existingOrder > -1 ? existingOrder : index);
15
23
  }
16
24
  column = column.setProp('style', style);
17
25
  });
@@ -1 +1 @@
1
- {"version":3,"file":"columnOrder.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAMtD,qDAAqD;AAErD,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAA2C,EAAE,EAAE;IAC3F,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC;IACzD,MAAM,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAAC;IAChD,MAAM,iBAAiB,GAAG,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;IACzD,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC3C,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,MAAM,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,KAAK;YACT,kBAAkB,GAAG,iBAAiB,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxF,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,sBAAsB,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAE/D,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,sBAAsB,CACpB,CAAC,YAAY,CAAC,EACd;YACE,KAAK,CAAC,QAAQ;YACd,KAAK,CAAC,aAAa;YACnB,KAAK,EAAE,eAAe,EAAE,MAAM;YAC9B,YAAY,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM;SACvC,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type View from '../../../generators/ViewGenerator';\nimport type Column from '../../../generators/ColumnGenerator';\nimport type { State } from '../../../../../types/State.types';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nconst getColumnOrder = ([{ getView, getState }]: [featureProps: BeforeRenderFeatureProps]) => {\n const { colOrder = [], freezeColumns = [] } = getState();\n const freezeColumnsCount = freezeColumns.length;\n const totalColumnsCount = getView().columns?.length ?? 0;\n getView().columns?.forEach((column, index) => {\n const { id } = column.field;\n const style = { ...column.style };\n const existingOrder = colOrder.indexOf(`${id}`);\n style.order =\n freezeColumnsCount + totalColumnsCount + (existingOrder > -1 ? existingOrder : index);\n if (freezeColumns.includes(`${id}`)) {\n style.order = freezeColumns.indexOf(`${id}`);\n }\n column = column.setProp('style', style);\n });\n};\n\n/**\n * Sets the {@link Column.style style} prop for each column when any of the following properties are changed:\n * - {@link State.colOrder}\n * - {@link State.freezeColumns}\n * - `active` in {@link State.personalization}\n * - `size` of {@link View.columns columns}.\n */\nexport default () => {\n const memoizedGetColumnOrder = withMemoization(getColumnOrder);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedGetColumnOrder(\n [featureProps],\n [\n state.colOrder,\n state.freezeColumns,\n state?.personalization?.active,\n featureProps.getView().columns?.length\n ]\n );\n };\n};\n"]}
1
+ {"version":3,"file":"columnOrder.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAMtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,qDAAqD;AAErD,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAA2C,EAAE,EAAE;IAC3F,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC;IACzD,MAAM,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAAC;IAChD,MAAM,iBAAiB,GAAG,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;IAEzD,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC3C,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,MAAM,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAElC,IAAI,EAAE,KAAK,mBAAmB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACxC,4CAA4C;YAC5C,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACxC,CAAC;aAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACtC,yDAAyD;YACzD,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3C,KAAK,CAAC,KAAK;gBACT,kBAAkB,GAAG,iBAAiB,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,sBAAsB,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAE/D,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,sBAAsB,CACpB,CAAC,YAAY,CAAC,EACd;YACE,KAAK,CAAC,QAAQ;YACd,KAAK,CAAC,aAAa;YACnB,KAAK,EAAE,eAAe,EAAE,MAAM;YAC9B,YAAY,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM;SACvC,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type View from '../../../generators/ViewGenerator';\nimport type Column from '../../../generators/ColumnGenerator';\nimport type { State } from '../../../../../types/State.types';\nimport { rowActionColumnMeta } from '../../../constants';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nconst getColumnOrder = ([{ getView, getState }]: [featureProps: BeforeRenderFeatureProps]) => {\n const { colOrder = [], freezeColumns = [] } = getState();\n const freezeColumnsCount = freezeColumns.length;\n const totalColumnsCount = getView().columns?.length ?? 0;\n\n getView().columns?.forEach((column, index) => {\n const { id } = column.field;\n const style = { ...column.style };\n\n if (id === rowActionColumnMeta.field.id) {\n // Action Menu column should always be last.\n style.order = Number.MAX_SAFE_INTEGER;\n } else if (freezeColumns.includes(id)) {\n // Frozen columns OOTB frozen columns and normal columns.\n style.order = freezeColumns.indexOf(id);\n } else {\n const existingOrder = colOrder.indexOf(id);\n style.order =\n freezeColumnsCount + totalColumnsCount + (existingOrder > -1 ? existingOrder : index);\n }\n\n column = column.setProp('style', style);\n });\n};\n\n/**\n * Sets the {@link Column.style style} prop for each column when any of the following properties are changed:\n * - {@link State.colOrder}\n * - {@link State.freezeColumns}\n * - `active` in {@link State.personalization}\n * - `size` of {@link View.columns columns}.\n */\nexport default () => {\n const memoizedGetColumnOrder = withMemoization(getColumnOrder);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedGetColumnOrder(\n [featureProps],\n [\n state.colOrder,\n state.freezeColumns,\n state?.personalization?.active,\n featureProps.getView().columns?.length\n ]\n );\n };\n};\n"]}
@@ -4,7 +4,7 @@ import type { BeforeRenderFeatureProps } from '../../featureFactory';
4
4
  * - {@link State.columnWidths}
5
5
  * - {@link State.freezeColumns}
6
6
  * - {@link State.colOrder}
7
- * - {@link State.hiddenColumns}
7
+ * - {@link State.visibleColumns}
8
8
  */
9
9
  declare const _default: () => (featureProps: BeforeRenderFeatureProps) => void;
10
10
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"columnReOrder.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnReOrder.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AA8OrE;;;;;;GAMG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAcE"}
1
+ {"version":3,"file":"columnReOrder.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnReOrder.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAoPrE;;;;;;GAMG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAcE"}
@@ -1,17 +1,15 @@
1
+ import { isInstance } from '@pega/cosmos-react-core';
1
2
  import { actionColumnDragDrop } from '../../../actions/actions';
2
3
  import { rowActionColumnMeta, rowDragDropColumnMeta, rowSelectColumnMeta } from '../../../constants';
3
4
  import { withMemoization } from '../../../utils/util';
4
5
  const ColIdSelector = '[data-col-id]';
5
6
  const SomeNegativeBigOffset = `${Number.MIN_SAFE_INTEGER}px`;
6
- // Todo: comeback and see if there is any other way to just have no drag image
7
- const emptyImg = document.createElement('img');
8
- emptyImg.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
9
- function createElement(type, className) {
10
- const domNode = document.createElement(type);
7
+ function createElement(type, className, ownerDocument) {
8
+ const domNode = ownerDocument.createElement(type);
11
9
  domNode.classList.add(className);
12
10
  return domNode;
13
11
  }
14
- const columnReOrder = ([{ getView, getState, dispatch }]) => {
12
+ const columnReOrder = ([{ getView, getState, dispatch, browserContext }]) => {
15
13
  if (!getView().meta.reorderFields) {
16
14
  return null;
17
15
  }
@@ -65,8 +63,8 @@ const columnReOrder = ([{ getView, getState, dispatch }]) => {
65
63
  const virtualizeEle = getView()
66
64
  .getVirtualizeElement('rootVirtualiser')
67
65
  ?.getParentContainer?.();
68
- fieldDragHelper.dragLineNode = createElement('div', 'table-drag-line');
69
- fieldDragHelper.dragProxyNode = createElement('div', 'table-drag-proxy');
66
+ fieldDragHelper.dragLineNode = createElement('div', 'table-drag-line', browserContext.document);
67
+ fieldDragHelper.dragProxyNode = createElement('div', 'table-drag-proxy', browserContext.document);
70
68
  const container = domContainer?.getElementsByClassName('container')[0];
71
69
  const Header = domContainer?.getElementsByClassName('sticky-header')[0];
72
70
  container.appendChild(fieldDragHelper.dragProxyNode);
@@ -74,19 +72,24 @@ const columnReOrder = ([{ getView, getState, dispatch }]) => {
74
72
  fieldDragHelper.dragLineNode.style.height = `${
75
73
  // eslint-disable-next-line no-unsafe-optional-chaining
76
74
  scrollNode?.clientHeight + Header.clientHeight}px`;
77
- const sourceElem = e.target.closest(ColIdSelector);
75
+ const sourceElem = isInstance(e.target, Element)
76
+ ? e.target.closest(ColIdSelector)
77
+ : null;
78
+ if (!sourceElem)
79
+ return;
78
80
  fieldDragHelper.sourceElemIndex = allWidths.findIndex(xCol => {
79
81
  return `${xCol.id}` === sourceElem.dataset.colId;
80
82
  });
81
- if (!sourceElem)
82
- return;
83
- document.body.appendChild(emptyImg);
83
+ const emptyImg = browserContext.document.createElement('img');
84
+ emptyImg.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
85
+ fieldDragHelper.emptyImg = emptyImg;
86
+ browserContext.document.body.appendChild(emptyImg);
84
87
  if (e.dataTransfer) {
85
88
  e.dataTransfer.setDragImage(emptyImg, 0, 0);
86
89
  e.dataTransfer.effectAllowed = 'move';
87
90
  e.dataTransfer.setData('text/plain', sourceElem?.dataset.colId || '');
88
91
  }
89
- document.addEventListener('dragover', documentDragOver);
92
+ browserContext.document.addEventListener('dragover', documentDragOver);
90
93
  fieldDragHelper.virtualizeOffsetLeft = virtualizeEle.getBoundingClientRect().left;
91
94
  fieldDragHelper.dragProxyOffset =
92
95
  sourceElem.offsetLeft -
@@ -166,10 +169,10 @@ const columnReOrder = ([{ getView, getState, dispatch }]) => {
166
169
  `${sourceElem.dataset.colId}` !== `${fieldDragHelper.dropTarget}`) {
167
170
  dispatch(actionColumnDragDrop(sourceElem.dataset.colId, fieldDragHelper.dropTarget));
168
171
  }
169
- document.body.removeChild(emptyImg);
172
+ fieldDragHelper.emptyImg?.remove();
170
173
  fieldDragHelper.dragLineNode.remove();
171
174
  fieldDragHelper.dragProxyNode.remove();
172
- document.removeEventListener('dragover', documentDragOver);
175
+ browserContext.document.removeEventListener('dragover', documentDragOver);
173
176
  fieldDragHelper = {};
174
177
  return false;
175
178
  };
@@ -184,7 +187,7 @@ const columnReOrder = ([{ getView, getState, dispatch }]) => {
184
187
  * - {@link State.columnWidths}
185
188
  * - {@link State.freezeColumns}
186
189
  * - {@link State.colOrder}
187
- * - {@link State.hiddenColumns}
190
+ * - {@link State.visibleColumns}
188
191
  */
189
192
  export default () => {
190
193
  const memoizedColReOrder = withMemoization(columnReOrder);
@@ -192,7 +195,7 @@ export default () => {
192
195
  const state = featureProps.getState();
193
196
  featureProps
194
197
  .getRsStore()
195
- .setFieldReorderProps(memoizedColReOrder([featureProps], [state.columnWidths, state.freezeColumns, state.colOrder, state.hiddenColumns]));
198
+ .setFieldReorderProps(memoizedColReOrder([featureProps], [state.columnWidths, state.freezeColumns, state.colOrder, state.visibleColumns]));
196
199
  };
197
200
  };
198
201
  //# sourceMappingURL=columnReOrder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnReOrder.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnReOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAgBtD,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,MAAM,qBAAqB,GAAG,GAAG,MAAM,CAAC,gBAAgB,IAAI,CAAC;AAE7D,8EAA8E;AAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/C,QAAQ,CAAC,GAAG,GAAG,4EAA4E,CAAC;AAE5F,SAAS,aAAa,CAAC,IAAY,EAAE,SAAiB;IACpD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAEtD,EAAgC,EAAE;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,YAAY,EAAE,aAAa,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC;IACxD,IAAI,eAAe,GAAoB,EAAqB,CAAC;IAC7D,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;QACzB,MAAM,SAAS,GAKT,OAAO,EAAE;aACZ,OAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,2BAA2B;aACrE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACd,KAAK,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAE;YAC/D,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK;YAC1B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;SACpB,CAAC,CAAC,CAAC;QACN,mDAAmD;QACnD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,SAAS;gBACT,kBAAkB,EAAE,CAAC;aACtB,CAAC;QACJ,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAE5C,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC;YAClC,iBAAiB,IAAI,MAAM,CAAC,KAAK,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;YAChD,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAO,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK;YACvF,EAAE,EAAE,OAAO;SACZ,CAAC,CAAC;QACH,MAAM,oBAAoB,GAAG,OAAO,EAAE,CAAC,OAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzF,MAAM,kBAAkB,GAAG,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAC1E,OAAO;YACL,SAAS;YACT,kBAAkB;SACnB,CAAC;IACJ,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,YAAY,CAAC;IAEvD,sDAAsD;IACtD,8FAA8F;IAC9F,MAAM,gBAAgB,GAAG,CAAC,CAAY,EAAE,EAAE;QACxC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;QACnC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;IACrC,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,CAAY,EAAE,EAAE;QACnC,eAAe,GAAG,EAAqB,CAAC;QACxC,MAAM,YAAY,GAAG,OAAO,EAAE,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,OAAO,EAAE;aAC5B,oBAAoB,CAAC,iBAAiB,CAAC;YACxC,EAAE,kBAAkB,EAAE,EAAG,CAAC;QAC5B,eAAe,CAAC,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACvE,eAAe,CAAC,aAAa,GAAG,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,YAAY,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAE,CAAC;QACxE,MAAM,MAAM,GAAG,YAAY,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAE,CAAC;QACzE,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QACrD,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACxD,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;QAC7C,uDAAuD;QACvD,UAAU,EAAE,YAAa,GAAG,MAAM,CAAC,YACrC,IAAI,CAAC;QAEL,MAAM,UAAU,GAAI,CAAC,CAAC,MAAsB,CAAC,OAAO,CAAC,aAAa,CAAgB,CAAC;QACnF,eAAe,CAAC,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3D,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YACnB,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC;YACtC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAExD,eAAe,CAAC,oBAAoB,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC;QAClF,eAAe,CAAC,eAAe;YAC7B,UAAU,CAAC,UAAU;gBACrB,CAAC,aAAa,CAAC,UAAU,GAAG,eAAe,CAAC,MAAM,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAC;QAC7F,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;QACnE,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,eAAe,CAAC,eAAe,IAAI,CAAC;QACxF,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,qBAAqB,CAAC;QACjE,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAChE,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QACtD,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAErD,OAAO,KAAK,CAAC,CAAC,4DAA4D;IAC5E,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,CAAY,EAAE,EAAE;QAC9B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,aAAa,GAAG,OAAO,EAAE;aAC5B,oBAAoB,CAAC,iBAAiB,CAAC;YACxC,EAAE,kBAAkB,EAAE,EAAG,CAAC;QAC5B,MAAM,mBAAmB,GACvB,eAAe,CAAC,MAAM,GAAG,eAAe,CAAC,oBAAoB,GAAG,kBAAmB,CAAC;QACtF,sDAAsD;QACtD,IACE,kBAAkB,KAAK,CAAC;YACxB,mBAAmB,GAAG,GAAG;YACzB,mBAAmB,GAAG,CAAC;YACvB,aAAa,CAAC,UAAU,GAAG,CAAC,EAC5B,CAAC;YACD,gCAAgC;YAChC,IAAI,mBAAmB,GAAG,EAAE,EAAE,CAAC;gBAC7B,aAAa,CAAC,UAAU,IAAI,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,UAAU,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,GACzC,eAAe,CAAC,MAAM,GAAG,eAAe,CAAC,oBAC3C,IAAI,CAAC;YACL,eAAe,CAAC,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAChE,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,qBAAqB,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,GACzC,eAAe,CAAC,MAAM,GAAG,eAAe,CAAC,oBAC3C,IAAI,CAAC;QACL,IAAI,qBAAqB,GAAG,QAAQ;QAClC,4CAA4C;QAC5C,aAAa,CAAC,UAAU,GAAG,eAAe,CAAC,MAAM,GAAG,eAAe,CAAC,oBAAoB,EACxF,EAAE,CACH,CAAC;QAEF,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;YAC5B,4EAA4E;YAC5E,qBAAqB,IAAI,aAAa,CAAC,UAAU,CAAC;QACpD,CAAC;QAED,IAAI,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzC,OAAO,qBAAqB,GAAG,IAAI,CAAC,MAAO,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,CAAC;QAE7E,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;YAC5B,uEAAuE;YACvE,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,GACxC,SAAS,CAAC,SAAS,CAAC,CAAC,MAAO,GAAG,aAAa,CAAC,UAC/C,IAAI,CAAC;QACP,CAAC;QAED,IAAI,SAAS,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC;YACjD,eAAe,CAAC,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,UAAU,GAAG,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC;QAED,mEAAmE;QACnE,IACE,mBAAmB,GAAG,CAAC;YACvB,SAAS,CAAC,SAAS,CAAC,CAAC,MAAO,GAAG,aAAa,CAAC,UAAU,GAAG,kBAAmB,EAC7E,CAAC;YACD,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClE,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAY,EAAE,EAAE;QACjC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACrD,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACpD,MAAM,UAAU,GAAwB,CAAC,CAAC,MAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxF,IACE,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,eAAe,CAAC,UAAU;YAC3D,qBAAqB,CAAC,KAAK,CAAC,EAAE,KAAK,eAAe,CAAC,UAAU;YAC7D,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,eAAe,CAAC,UAAU;YAC3D,UAAU;YACV,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,EACjE,CAAC;YACD,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,KAAM,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpC,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QACtC,eAAe,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QACvC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC3D,eAAe,GAAG,EAAqB,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO;QACL,WAAW;QACX,MAAM;QACN,SAAS;KACV,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,kBAAkB,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAE1D,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,YAAY;aACT,UAAU,EAAE;aACZ,oBAAoB,CACnB,kBAAkB,CAChB,CAAC,YAAY,CAAC,EACd,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,CAC/E,CACF,CAAC;IACN,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { actionColumnDragDrop } from '../../../actions/actions';\nimport {\n rowActionColumnMeta,\n rowDragDropColumnMeta,\n rowSelectColumnMeta\n} from '../../../constants';\nimport type RsStore from '../../../RsStore';\nimport { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { State } from '../../../../../types/State.types';\n\ntype FieldDragHelper = {\n mouseX: number;\n mouseY: number;\n dragLineNode: HTMLElement;\n dragProxyNode: HTMLElement;\n sourceElemIndex: number;\n dragProxyOffset: number;\n virtualizeOffsetLeft: number;\n dropTarget: string;\n};\n\nconst ColIdSelector = '[data-col-id]';\nconst SomeNegativeBigOffset = `${Number.MIN_SAFE_INTEGER}px`;\n\n// Todo: comeback and see if there is any other way to just have no drag image\nconst emptyImg = document.createElement('img');\nemptyImg.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n\nfunction createElement(type: string, className: string): HTMLElement {\n const domNode = document.createElement(type);\n domNode.classList.add(className);\n return domNode;\n}\n\nconst columnReOrder = ([{ getView, getState, dispatch }]: [\n featureProps: BeforeRenderFeatureProps\n]): RsStore['fieldReorderProps'] => {\n if (!getView().meta.reorderFields) {\n return null;\n }\n const { columnWidths, freezeColumns = [] } = getState();\n let fieldDragHelper: FieldDragHelper = {} as FieldDragHelper;\n const allPositions = (() => {\n const allWidths: {\n width: number;\n order: number;\n offset?: number;\n id: string;\n }[] = getView()\n .columns!.filter(column => !column.hidden) // Take all visible columns\n .map(column => ({\n width: (columnWidths?.[column.field.id] ?? column.field.width)!,\n order: column.style?.order,\n id: column.field.id\n }));\n // Bail out when AllWidths/Visible columns is empty\n if (allWidths.length === 0) {\n return {\n allWidths,\n freezeColumnsWidth: 0\n };\n }\n\n allWidths.sort((a, b) => a.order - b.order);\n\n let previousColOffset = 0;\n allWidths.forEach(column => {\n column.offset = previousColOffset;\n previousColOffset += column.width;\n });\n allWidths.push({\n width: 0,\n order: allWidths[allWidths.length - 1].order + 1,\n offset: allWidths[allWidths.length - 1].offset! + allWidths[allWidths.length - 1].width,\n id: 'last$'\n });\n const visibleFreezeColumns = getView().columns!.filter(col => col.frozen && !col.hidden);\n const freezeColumnsWidth = allWidths[visibleFreezeColumns.length]?.offset;\n return {\n allWidths,\n freezeColumnsWidth\n };\n })();\n\n const { allWidths, freezeColumnsWidth } = allPositions;\n\n // https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n // This DragOver on document is the hack for the above bug as clientX is not proper in firefox\n const documentDragOver = (e: DragEvent) => {\n fieldDragHelper.mouseX = e.clientX;\n fieldDragHelper.mouseY = e.clientY;\n };\n\n const onDragStart = (e: DragEvent) => {\n fieldDragHelper = {} as FieldDragHelper;\n const domContainer = getView().getDomContainer();\n const scrollNode = getView().getScrollNode();\n const virtualizeEle = getView()\n .getVirtualizeElement('rootVirtualiser')\n ?.getParentContainer?.()!;\n fieldDragHelper.dragLineNode = createElement('div', 'table-drag-line');\n fieldDragHelper.dragProxyNode = createElement('div', 'table-drag-proxy');\n const container = domContainer?.getElementsByClassName('container')[0]!;\n const Header = domContainer?.getElementsByClassName('sticky-header')[0]!;\n container.appendChild(fieldDragHelper.dragProxyNode);\n virtualizeEle.appendChild(fieldDragHelper.dragLineNode);\n fieldDragHelper.dragLineNode.style.height = `${\n // eslint-disable-next-line no-unsafe-optional-chaining\n scrollNode?.clientHeight! + Header.clientHeight\n }px`;\n\n const sourceElem = (e.target as HTMLElement).closest(ColIdSelector) as HTMLElement;\n fieldDragHelper.sourceElemIndex = allWidths.findIndex(xCol => {\n return `${xCol.id}` === sourceElem.dataset.colId;\n });\n\n if (!sourceElem) return;\n\n document.body.appendChild(emptyImg);\n if (e.dataTransfer) {\n e.dataTransfer.setDragImage(emptyImg, 0, 0);\n e.dataTransfer.effectAllowed = 'move';\n e.dataTransfer.setData('text/plain', sourceElem?.dataset.colId || '');\n }\n document.addEventListener('dragover', documentDragOver);\n\n fieldDragHelper.virtualizeOffsetLeft = virtualizeEle.getBoundingClientRect().left;\n fieldDragHelper.dragProxyOffset =\n sourceElem.offsetLeft -\n (virtualizeEle.scrollLeft + fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft);\n fieldDragHelper.dragProxyNode.style.width = sourceElem.style.width;\n fieldDragHelper.dragProxyNode.style.marginLeft = `${fieldDragHelper.dragProxyOffset}px`;\n fieldDragHelper.dragProxyNode.style.left = SomeNegativeBigOffset;\n fieldDragHelper.dragLineNode.style.left = SomeNegativeBigOffset;\n fieldDragHelper.dragProxyNode.style.display = 'block';\n fieldDragHelper.dragLineNode.style.display = 'block';\n\n return false; // required for browser allowing image drag out of container\n };\n\n const onDrag = (e: DragEvent) => {\n e.preventDefault();\n const virtualizeEle = getView()\n .getVirtualizeElement('rootVirtualiser')\n ?.getParentContainer?.()!;\n const distanceFromFreezeB =\n fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft - freezeColumnsWidth!;\n // is our cursor pointer near to freeze columBoundary?\n if (\n freezeColumnsWidth !== 0 &&\n distanceFromFreezeB < 100 &&\n distanceFromFreezeB > 0 &&\n virtualizeEle.scrollLeft > 0\n ) {\n // is something there to scroll?\n if (distanceFromFreezeB > 50) {\n virtualizeEle.scrollLeft -= 1;\n } else {\n virtualizeEle.scrollLeft -= 3;\n }\n fieldDragHelper.dragProxyNode.style.left = `${\n fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft\n }px`;\n fieldDragHelper.dropTarget = allWidths[freezeColumns.length].id;\n fieldDragHelper.dragLineNode.style.left = SomeNegativeBigOffset;\n return false;\n }\n\n fieldDragHelper.dragProxyNode.style.left = `${\n fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft\n }px`;\n let currentDragLeftOffset = parseInt(\n // @ts-expect-error parseInt expects string.\n virtualizeEle.scrollLeft + fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft,\n 10\n );\n\n if (distanceFromFreezeB < 0) {\n // if we are in freezeZone do not consider scrollLeft for targetColLine calc\n currentDragLeftOffset -= virtualizeEle.scrollLeft;\n }\n\n let xColIndex = allWidths.findIndex(xCol => {\n return currentDragLeftOffset < xCol.offset! + xCol.width / 2;\n });\n\n if (xColIndex === -1) {\n xColIndex = allWidths.length - 1;\n }\n fieldDragHelper.dragLineNode.style.left = `${allWidths[xColIndex].offset}px`;\n\n if (distanceFromFreezeB < 0) {\n // if we are in freezeZone consider scrollLeft for dragLine calculation\n fieldDragHelper.dragLineNode.style.left = `${\n allWidths[xColIndex].offset! + virtualizeEle.scrollLeft\n }px`;\n }\n\n if (xColIndex <= fieldDragHelper.sourceElemIndex) {\n fieldDragHelper.dropTarget = allWidths[xColIndex].id;\n } else {\n fieldDragHelper.dropTarget = allWidths[xColIndex - 1].id;\n }\n\n // Edge Case to not show dragLine when the col is under frozen area\n if (\n distanceFromFreezeB > 0 &&\n allWidths[xColIndex].offset! < virtualizeEle.scrollLeft + freezeColumnsWidth!\n ) {\n fieldDragHelper.dragLineNode.style.left = SomeNegativeBigOffset;\n }\n\n return false;\n };\n\n const onDragEnd = (e: DragEvent) => {\n e.preventDefault();\n fieldDragHelper.dragProxyNode.style.display = 'none';\n fieldDragHelper.dragLineNode.style.display = 'none';\n const sourceElem: HTMLElement | null = (e.target as HTMLElement).closest(ColIdSelector);\n if (\n rowSelectColumnMeta.field.id !== fieldDragHelper.dropTarget &&\n rowDragDropColumnMeta.field.id !== fieldDragHelper.dropTarget &&\n rowActionColumnMeta.field.id !== fieldDragHelper.dropTarget &&\n sourceElem &&\n `${sourceElem.dataset.colId}` !== `${fieldDragHelper.dropTarget}`\n ) {\n dispatch(actionColumnDragDrop(sourceElem.dataset.colId!, fieldDragHelper.dropTarget));\n }\n document.body.removeChild(emptyImg);\n fieldDragHelper.dragLineNode.remove();\n fieldDragHelper.dragProxyNode.remove();\n document.removeEventListener('dragover', documentDragOver);\n fieldDragHelper = {} as FieldDragHelper;\n return false;\n };\n\n return {\n onDragStart,\n onDrag,\n onDragEnd\n };\n};\n\n/**\n * Sets the column {@link RsStore. getFieldReorderProps reorder} props (onDragStart, onDrag, onDragEnd). This feature is executed when any of the following state slices are changed:\n * - {@link State.columnWidths}\n * - {@link State.freezeColumns}\n * - {@link State.colOrder}\n * - {@link State.hiddenColumns}\n */\nexport default () => {\n const memoizedColReOrder = withMemoization(columnReOrder);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n featureProps\n .getRsStore()\n .setFieldReorderProps(\n memoizedColReOrder(\n [featureProps],\n [state.columnWidths, state.freezeColumns, state.colOrder, state.hiddenColumns]\n )\n );\n };\n};\n"]}
1
+ {"version":3,"file":"columnReOrder.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnReOrder.ts"],"names":[],"mappings":"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","sourcesContent":["import { isInstance } from '@pega/cosmos-react-core';\n\nimport { actionColumnDragDrop } from '../../../actions/actions';\nimport {\n rowActionColumnMeta,\n rowDragDropColumnMeta,\n rowSelectColumnMeta\n} from '../../../constants';\nimport type RsStore from '../../../RsStore';\nimport { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { State } from '../../../../../types/State.types';\n\ntype FieldDragHelper = {\n mouseX: number;\n mouseY: number;\n dragLineNode: HTMLElement;\n dragProxyNode: HTMLElement;\n emptyImg: HTMLImageElement;\n sourceElemIndex: number;\n dragProxyOffset: number;\n virtualizeOffsetLeft: number;\n dropTarget: string;\n};\n\nconst ColIdSelector = '[data-col-id]';\nconst SomeNegativeBigOffset = `${Number.MIN_SAFE_INTEGER}px`;\n\nfunction createElement(type: string, className: string, ownerDocument: Document): HTMLElement {\n const domNode = ownerDocument.createElement(type);\n domNode.classList.add(className);\n return domNode;\n}\n\nconst columnReOrder = ([{ getView, getState, dispatch, browserContext }]: [\n featureProps: BeforeRenderFeatureProps\n]): RsStore['fieldReorderProps'] => {\n if (!getView().meta.reorderFields) {\n return null;\n }\n const { columnWidths, freezeColumns = [] } = getState();\n let fieldDragHelper: FieldDragHelper = {} as FieldDragHelper;\n const allPositions = (() => {\n const allWidths: {\n width: number;\n order: number;\n offset?: number;\n id: string;\n }[] = getView()\n .columns!.filter(column => !column.hidden) // Take all visible columns\n .map(column => ({\n width: (columnWidths?.[column.field.id] ?? column.field.width)!,\n order: column.style?.order,\n id: column.field.id\n }));\n // Bail out when AllWidths/Visible columns is empty\n if (allWidths.length === 0) {\n return {\n allWidths,\n freezeColumnsWidth: 0\n };\n }\n\n allWidths.sort((a, b) => a.order - b.order);\n\n let previousColOffset = 0;\n allWidths.forEach(column => {\n column.offset = previousColOffset;\n previousColOffset += column.width;\n });\n allWidths.push({\n width: 0,\n order: allWidths[allWidths.length - 1].order + 1,\n offset: allWidths[allWidths.length - 1].offset! + allWidths[allWidths.length - 1].width,\n id: 'last$'\n });\n const visibleFreezeColumns = getView().columns!.filter(col => col.frozen && !col.hidden);\n const freezeColumnsWidth = allWidths[visibleFreezeColumns.length]?.offset;\n return {\n allWidths,\n freezeColumnsWidth\n };\n })();\n\n const { allWidths, freezeColumnsWidth } = allPositions;\n\n // https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n // This DragOver on document is the hack for the above bug as clientX is not proper in firefox\n const documentDragOver = (e: DragEvent) => {\n fieldDragHelper.mouseX = e.clientX;\n fieldDragHelper.mouseY = e.clientY;\n };\n\n const onDragStart = (e: DragEvent) => {\n fieldDragHelper = {} as FieldDragHelper;\n const domContainer = getView().getDomContainer();\n const scrollNode = getView().getScrollNode();\n const virtualizeEle = getView()\n .getVirtualizeElement('rootVirtualiser')\n ?.getParentContainer?.()!;\n fieldDragHelper.dragLineNode = createElement('div', 'table-drag-line', browserContext.document);\n fieldDragHelper.dragProxyNode = createElement(\n 'div',\n 'table-drag-proxy',\n browserContext.document\n );\n const container = domContainer?.getElementsByClassName('container')[0]!;\n const Header = domContainer?.getElementsByClassName('sticky-header')[0]!;\n container.appendChild(fieldDragHelper.dragProxyNode);\n virtualizeEle.appendChild(fieldDragHelper.dragLineNode);\n fieldDragHelper.dragLineNode.style.height = `${\n // eslint-disable-next-line no-unsafe-optional-chaining\n scrollNode?.clientHeight! + Header.clientHeight\n }px`;\n\n const sourceElem = isInstance(e.target, Element)\n ? e.target.closest<HTMLElement>(ColIdSelector)\n : null;\n if (!sourceElem) return;\n\n fieldDragHelper.sourceElemIndex = allWidths.findIndex(xCol => {\n return `${xCol.id}` === sourceElem.dataset.colId;\n });\n\n const emptyImg = browserContext.document.createElement('img');\n emptyImg.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n fieldDragHelper.emptyImg = emptyImg;\n browserContext.document.body.appendChild(emptyImg);\n if (e.dataTransfer) {\n e.dataTransfer.setDragImage(emptyImg, 0, 0);\n e.dataTransfer.effectAllowed = 'move';\n e.dataTransfer.setData('text/plain', sourceElem?.dataset.colId || '');\n }\n browserContext.document.addEventListener('dragover', documentDragOver);\n\n fieldDragHelper.virtualizeOffsetLeft = virtualizeEle.getBoundingClientRect().left;\n fieldDragHelper.dragProxyOffset =\n sourceElem.offsetLeft -\n (virtualizeEle.scrollLeft + fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft);\n fieldDragHelper.dragProxyNode.style.width = sourceElem.style.width;\n fieldDragHelper.dragProxyNode.style.marginLeft = `${fieldDragHelper.dragProxyOffset}px`;\n fieldDragHelper.dragProxyNode.style.left = SomeNegativeBigOffset;\n fieldDragHelper.dragLineNode.style.left = SomeNegativeBigOffset;\n fieldDragHelper.dragProxyNode.style.display = 'block';\n fieldDragHelper.dragLineNode.style.display = 'block';\n\n return false; // required for browser allowing image drag out of container\n };\n\n const onDrag = (e: DragEvent) => {\n e.preventDefault();\n const virtualizeEle = getView()\n .getVirtualizeElement('rootVirtualiser')\n ?.getParentContainer?.()!;\n const distanceFromFreezeB =\n fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft - freezeColumnsWidth!;\n // is our cursor pointer near to freeze columBoundary?\n if (\n freezeColumnsWidth !== 0 &&\n distanceFromFreezeB < 100 &&\n distanceFromFreezeB > 0 &&\n virtualizeEle.scrollLeft > 0\n ) {\n // is something there to scroll?\n if (distanceFromFreezeB > 50) {\n virtualizeEle.scrollLeft -= 1;\n } else {\n virtualizeEle.scrollLeft -= 3;\n }\n fieldDragHelper.dragProxyNode.style.left = `${\n fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft\n }px`;\n fieldDragHelper.dropTarget = allWidths[freezeColumns.length].id;\n fieldDragHelper.dragLineNode.style.left = SomeNegativeBigOffset;\n return false;\n }\n\n fieldDragHelper.dragProxyNode.style.left = `${\n fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft\n }px`;\n let currentDragLeftOffset = parseInt(\n // @ts-expect-error parseInt expects string.\n virtualizeEle.scrollLeft + fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft,\n 10\n );\n\n if (distanceFromFreezeB < 0) {\n // if we are in freezeZone do not consider scrollLeft for targetColLine calc\n currentDragLeftOffset -= virtualizeEle.scrollLeft;\n }\n\n let xColIndex = allWidths.findIndex(xCol => {\n return currentDragLeftOffset < xCol.offset! + xCol.width / 2;\n });\n\n if (xColIndex === -1) {\n xColIndex = allWidths.length - 1;\n }\n fieldDragHelper.dragLineNode.style.left = `${allWidths[xColIndex].offset}px`;\n\n if (distanceFromFreezeB < 0) {\n // if we are in freezeZone consider scrollLeft for dragLine calculation\n fieldDragHelper.dragLineNode.style.left = `${\n allWidths[xColIndex].offset! + virtualizeEle.scrollLeft\n }px`;\n }\n\n if (xColIndex <= fieldDragHelper.sourceElemIndex) {\n fieldDragHelper.dropTarget = allWidths[xColIndex].id;\n } else {\n fieldDragHelper.dropTarget = allWidths[xColIndex - 1].id;\n }\n\n // Edge Case to not show dragLine when the col is under frozen area\n if (\n distanceFromFreezeB > 0 &&\n allWidths[xColIndex].offset! < virtualizeEle.scrollLeft + freezeColumnsWidth!\n ) {\n fieldDragHelper.dragLineNode.style.left = SomeNegativeBigOffset;\n }\n\n return false;\n };\n\n const onDragEnd = (e: DragEvent) => {\n e.preventDefault();\n fieldDragHelper.dragProxyNode.style.display = 'none';\n fieldDragHelper.dragLineNode.style.display = 'none';\n const sourceElem: HTMLElement | null = (e.target as HTMLElement).closest(ColIdSelector);\n if (\n rowSelectColumnMeta.field.id !== fieldDragHelper.dropTarget &&\n rowDragDropColumnMeta.field.id !== fieldDragHelper.dropTarget &&\n rowActionColumnMeta.field.id !== fieldDragHelper.dropTarget &&\n sourceElem &&\n `${sourceElem.dataset.colId}` !== `${fieldDragHelper.dropTarget}`\n ) {\n dispatch(actionColumnDragDrop(sourceElem.dataset.colId!, fieldDragHelper.dropTarget));\n }\n fieldDragHelper.emptyImg?.remove();\n fieldDragHelper.dragLineNode.remove();\n fieldDragHelper.dragProxyNode.remove();\n browserContext.document.removeEventListener('dragover', documentDragOver);\n fieldDragHelper = {} as FieldDragHelper;\n return false;\n };\n\n return {\n onDragStart,\n onDrag,\n onDragEnd\n };\n};\n\n/**\n * Sets the column {@link RsStore. getFieldReorderProps reorder} props (onDragStart, onDrag, onDragEnd). This feature is executed when any of the following state slices are changed:\n * - {@link State.columnWidths}\n * - {@link State.freezeColumns}\n * - {@link State.colOrder}\n * - {@link State.visibleColumns}\n */\nexport default () => {\n const memoizedColReOrder = withMemoization(columnReOrder);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n featureProps\n .getRsStore()\n .setFieldReorderProps(\n memoizedColReOrder(\n [featureProps],\n [state.columnWidths, state.freezeColumns, state.colOrder, state.visibleColumns]\n )\n );\n };\n};\n"]}