@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":"rowDragDrop.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/rowDragDrop.ts"],"names":[],"mappings":"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","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport { AFTER_FETCH } from '../../../pubSub/events';\nimport type RsInternal from '../../../RsInternal';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\nimport type RsStore from '../../../RsStore';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type View from '../../../generators/ViewGenerator';\n\nconst DropSelector = '[data-drop]';\nconst getSelector = (t: HTMLElement): HTMLElement | null => t.closest(DropSelector);\n\nconst addDragEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n elm.style.opacity = '0.5';\n });\n};\n\nconst removeDragEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n elm.style.opacity = '1';\n });\n};\n\nconst setGhostImage = ({ getView }: BeforeRenderFeatureProps, e: DragEvent) => {\n const dragProxy = document.createElement('div');\n const elem = getSelector(e.currentTarget as HTMLElement)!;\n dragProxy.style.height = `${Math.min(\n elem.offsetHeight,\n getView().getScrollNode()!.offsetHeight\n )}px`;\n dragProxy.style.width = `${Math.min(\n elem.offsetWidth,\n getView().virtualizeElements.rootVirtualiser.getParentContainer().clientWidth\n )}px`;\n dragProxy.style.position = 'absolute';\n dragProxy.style.top = '-1000000px';\n dragProxy.style.left = '-10000000px';\n dragProxy.style.background = 'rgba(0, 0, 0, 0.21)';\n dragProxy.style.zIndex = '-1';\n getView().getDomContainer()!.appendChild(dragProxy);\n if (e.dataTransfer) {\n e.dataTransfer.setDragImage(dragProxy, 0, 0);\n }\n\n setTimeout(() => {\n dragProxy.parentNode!.removeChild(dragProxy);\n }, 1000);\n};\n\nconst isColliding = (x: DOMRect['x'], y: DOMRect['y'], coord: DOMRect) => {\n const smallBuffer = 2;\n return !(\n x < coord.left - smallBuffer ||\n x > coord.right + smallBuffer ||\n y > coord.bottom + smallBuffer ||\n y < coord.top - smallBuffer\n );\n};\n\nconst addDropEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n // Need to handle this in better way.TODO: need clean up as well.\n elm.style.transition = 'transform 0.25s';\n elm.style.transform = 'translate(20px)';\n });\n};\n\nconst removeDropEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n elm.style.transition = null;\n elm.style.transform = null;\n });\n};\n\nconst contextDragOverCb = ({ getRsStore, getView }: BeforeRenderFeatureProps, e: DragEvent) => {\n e.stopPropagation();\n e.preventDefault();\n const rsStore = getRsStore();\n const domContainerCoord = getView().getDomContainer()!.getBoundingClientRect();\n if (\n rsStore.rowDragDropRef.dragLeaveSkipped &&\n rsStore.rowDragDropRef.dropTarget &&\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] &&\n (!isColliding(e.clientX, e.clientY, rsStore.rowDragDropRef.dropTargetCoord!) ||\n // Force trigger drag leave on the drop target when the dragged row moves outside the RS DOM container.\n e.clientX > domContainerCoord.right ||\n e.clientX < domContainerCoord.left)\n ) {\n rsStore.rowDragDropRef.forcedDragLeave = true;\n rsStore.rowDragDropRef.dragLeaveSkipped = false;\n const elm = rsStore.rowDragDropRef.dropTarget.shift()!;\n rsStore.rowDragDropRef.dropTarget = [...rsStore.rowDragDropRef.dropTarget];\n elm.dispatchEvent(\n new MouseEvent('dragleave', {\n bubbles: true,\n cancelable: true,\n view: window\n })\n );\n }\n};\n\nconst contextDropCb = ({ getRsStore, getView }: BeforeRenderFeatureProps, ev: DragEvent) => {\n ev.stopPropagation();\n ev.preventDefault();\n const rsStore = getRsStore();\n const elm = rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1];\n if (\n rsStore.rowDragDropRef.dropTargetCoord &&\n elm !== rsStore.rowDragDropRef.dragTarget &&\n isColliding(ev.clientX, ev.clientY, rsStore.rowDragDropRef.dropTargetCoord)\n ) {\n removeDropEffect(elm);\n elm.classList.remove('dragEnter');\n const destinationKey = elm.closest('.row')!.getAttribute('data-key')!;\n const sourceKey = rsStore.rowDragDropRef.dragTarget?.closest('.row')!.getAttribute('data-key')!;\n rsStore.rowDragDropRef.dragTarget = undefined;\n rsStore.rowDragDropRef.dropTargetCoord = null;\n rsStore.rowDragDropRef.isDragTargetTypeRow = false;\n rsStore.rowDragDropRef.dropTarget = [];\n getView().type.handleRowReorder(sourceKey, destinationKey);\n }\n};\n\nconst dragStartCb = (featureProps: BeforeRenderFeatureProps, ev: DragEvent) => {\n const dragOverCallBack = contextDragOverCb.bind(null, featureProps);\n document.addEventListener('dragover', dragOverCallBack);\n const dropCallBack = contextDropCb.bind(null, featureProps);\n featureProps.getView().getDomContainer()!.addEventListener('drop', dropCallBack);\n\n // We have to keep event handler in reference so that we can remove right handler when drag ends.\n // Handler might change in between because of deps.\n featureProps.getRsStore().rowDragDropRef.contextDropCb = dropCallBack;\n featureProps.getRsStore().rowDragDropRef.contextDragOverCb = dragOverCallBack;\n\n setGhostImage(featureProps, ev);\n if (ev.dataTransfer) {\n ev.dataTransfer.effectAllowed = 'move';\n // Setting up some dummy data(dragged row item key) to make drag drop work in firefox. Refer https://medium.com/%40reiberdatschi/common-pitfalls-with-html5-drag-n-drop-api-9f011a09ee6c\n ev.dataTransfer.setData('text/plain', 'RS_Dragged_Row_Item');\n }\n\n // fail safe reset drag target.\n if (featureProps.getRsStore().rowDragDropRef.dragTarget)\n featureProps.getRsStore().rowDragDropRef.dragTarget = undefined;\n featureProps.getRsStore().rowDragDropRef.isDragTargetTypeRow =\n (ev.currentTarget as HTMLElement).getAttribute('data-drag-type') === 'row';\n featureProps.getRsStore().rowDragDropRef.dragTarget = getSelector(\n ev.currentTarget as HTMLElement\n )!;\n (ev.currentTarget as HTMLElement).classList.add('dragStart');\n addDragEffect(ev.currentTarget as HTMLElement);\n};\n\nconst dragEndCb = ({ getRsStore, getView }: BeforeRenderFeatureProps, ev: DragEvent) => {\n const rsStore = getRsStore();\n document.removeEventListener('dragover', rsStore.rowDragDropRef.contextDragOverCb!);\n getView().getDomContainer()!.removeEventListener('drop', rsStore.rowDragDropRef.contextDropCb!);\n rsStore.rowDragDropRef.dropTarget = [];\n rsStore.rowDragDropRef.dropTargetCoord = null;\n rsStore.rowDragDropRef.forcedDragLeave = false;\n rsStore.rowDragDropRef.dragLeaveSkipped = false;\n rsStore.rowDragDropRef.isDragTargetTypeRow = false;\n (ev.currentTarget as HTMLElement).classList.remove('dragStart');\n removeDragEffect(ev.currentTarget as HTMLElement);\n};\n\nconst isValidDragEnter = (rsStore: RsStore, e: DragEvent) => {\n let isValid = true;\n if (!rsStore.rowDragDropRef.isDragTargetTypeRow) return false;\n if (rsStore.rowDragDropRef.dragTarget === e.currentTarget) isValid = false;\n else if (\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] ===\n e.currentTarget\n )\n isValid = false;\n else if (\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] &&\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] !==\n e.currentTarget\n ) {\n const currentTargetCoord = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const dropTargetCoord =\n rsStore.rowDragDropRef.dropTarget[\n rsStore.rowDragDropRef.dropTarget.length - 1\n ].getBoundingClientRect();\n if (\n !isColliding(e.clientX, e.clientY, currentTargetCoord) &&\n isColliding(e.clientX, e.clientY, dropTargetCoord)\n )\n isValid = false;\n }\n return isValid;\n};\n\nconst dragEnterCb = ({ getRsStore }: BeforeRenderFeatureProps, ev: DragEvent) => {\n ev.stopPropagation();\n const rsStore = getRsStore();\n if (isValidDragEnter(rsStore, ev)) {\n rsStore.rowDragDropRef.dropTarget = rsStore.rowDragDropRef.dropTarget.length\n ? [...rsStore.rowDragDropRef.dropTarget]\n : [];\n rsStore.rowDragDropRef.dropTarget.push(ev.currentTarget as HTMLElement);\n (ev.currentTarget as HTMLElement).classList.add('dragEnter');\n if (ev.dataTransfer) {\n ev.dataTransfer.dropEffect = 'move';\n }\n rsStore.rowDragDropRef.dropTargetCoord = (\n ev.currentTarget as HTMLElement\n ).getBoundingClientRect();\n addDropEffect(ev.currentTarget as HTMLElement);\n\n if (rsStore.rowDragDropRef.dropTarget.length > 1) {\n const elm = rsStore.rowDragDropRef.dropTarget.shift()!;\n rsStore.rowDragDropRef.dropTarget = [...rsStore.rowDragDropRef.dropTarget];\n rsStore.rowDragDropRef.forcedDragLeave = true;\n elm.dispatchEvent(\n new MouseEvent('dragleave', {\n bubbles: true,\n cancelable: true,\n view: window\n })\n );\n }\n }\n};\n\nconst dragLeaveCb = ({ getRsStore }: BeforeRenderFeatureProps, ev: DragEvent) => {\n ev.stopPropagation();\n const rsStore = getRsStore();\n if (rsStore.rowDragDropRef.forcedDragLeave) {\n rsStore.rowDragDropRef.forcedDragLeave = false;\n (ev.currentTarget as HTMLElement).classList.remove('dragEnter');\n removeDropEffect(ev.currentTarget as HTMLElement);\n } else if (\n !(ev.currentTarget as HTMLElement).contains(ev.relatedTarget as HTMLElement) &&\n rsStore.rowDragDropRef.dragTarget !== ev.currentTarget\n ) {\n rsStore.rowDragDropRef.dragLeaveSkipped = true;\n }\n};\n\nconst dragProps = (featureProps: BeforeRenderFeatureProps) => ({\n 'data-drag-type': 'row',\n draggable: true,\n onDragStart: dragStartCb.bind(null, featureProps),\n onDragEnd: dragEndCb.bind(null, featureProps)\n});\n\nconst dropProps = (featureProps: BeforeRenderFeatureProps) => ({\n onDragEnter: dragEnterCb.bind(null, featureProps),\n onDragLeave: dragLeaveCb.bind(null, featureProps),\n 'data-drop': 'dropzone'\n});\n\nfunction addDragDropBehavior([featureProps]: [featureProps: BeforeRenderFeatureProps]) {\n if (!featureProps.getView().meta.reorderItems) {\n return;\n }\n featureProps.getView().rows!.forEach(r => {\n if (!(r.dragProps && r.dropProps)) {\n r.setProp({\n dragProps: dragProps(featureProps),\n dropProps: dropProps(featureProps)\n });\n }\n });\n}\n\n/**\n * Manages drag drop behavior of rows whenever the {@link View.rows rows} are changed in the view on publish of `AFTER_FETCH` event.\n *\n */\nexport default (rsInternal: RsInternal) => {\n rsInternal.getRsStore().rowDragDropRef = {\n dropTarget: [],\n dragTarget: undefined,\n dropZones: []\n };\n const memoizedAddDragDropBehavior = withMemoization(addDragDropBehavior);\n\n // TODO: Move subscription outside execute function\n return function execute(featureProps: BeforeRenderFeatureProps) {\n rsInternal\n .getPubSubUtils()\n .subscribe(AFTER_FETCH, () =>\n memoizedAddDragDropBehavior([featureProps], [featureProps.getView().rows])\n );\n };\n};\n"]}
1
+ {"version":3,"file":"rowDragDrop.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/rowDragDrop.ts"],"names":[],"mappings":"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","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport { AFTER_FETCH } from '../../../pubSub/events';\nimport type RsInternal from '../../../RsInternal';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\nimport type RsStore from '../../../RsStore';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type View from '../../../generators/ViewGenerator';\n\nconst DropSelector = '[data-drop]';\nconst getSelector = (t: HTMLElement): HTMLElement | null => t.closest(DropSelector);\n\nconst addDragEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n elm.style.opacity = '0.5';\n });\n};\n\nconst removeDragEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n elm.style.opacity = '1';\n });\n};\n\nconst setGhostImage = ({ getView, browserContext }: BeforeRenderFeatureProps, e: DragEvent) => {\n const dragProxy = browserContext.document.createElement('div');\n const elem = getSelector(e.currentTarget as HTMLElement)!;\n dragProxy.style.height = `${Math.min(\n elem.offsetHeight,\n getView().getScrollNode()!.offsetHeight\n )}px`;\n dragProxy.style.width = `${Math.min(\n elem.offsetWidth,\n getView().virtualizeElements.rootVirtualiser.getParentContainer().clientWidth\n )}px`;\n dragProxy.style.position = 'absolute';\n dragProxy.style.top = '-1000000px';\n dragProxy.style.left = '-10000000px';\n dragProxy.style.background = 'rgba(0, 0, 0, 0.21)';\n dragProxy.style.zIndex = '-1';\n getView().getDomContainer()!.appendChild(dragProxy);\n if (e.dataTransfer) {\n e.dataTransfer.setDragImage(dragProxy, 0, 0);\n }\n\n setTimeout(() => {\n dragProxy.parentNode!.removeChild(dragProxy);\n }, 1000);\n};\n\nconst isColliding = (x: DOMRect['x'], y: DOMRect['y'], coord: DOMRect) => {\n const smallBuffer = 2;\n return !(\n x < coord.left - smallBuffer ||\n x > coord.right + smallBuffer ||\n y > coord.bottom + smallBuffer ||\n y < coord.top - smallBuffer\n );\n};\n\nconst addDropEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n // Need to handle this in better way.TODO: need clean up as well.\n elm.style.transition = 'transform 0.25s';\n elm.style.transform = 'translate(20px)';\n });\n};\n\nconst removeDropEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n elm.style.transition = null;\n elm.style.transform = null;\n });\n};\n\nconst contextDragOverCb = (\n { getRsStore, getView, browserContext }: BeforeRenderFeatureProps,\n e: DragEvent\n) => {\n e.stopPropagation();\n e.preventDefault();\n const rsStore = getRsStore();\n const domContainerCoord = getView().getDomContainer()!.getBoundingClientRect();\n if (\n rsStore.rowDragDropRef.dragLeaveSkipped &&\n rsStore.rowDragDropRef.dropTarget &&\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] &&\n (!isColliding(e.clientX, e.clientY, rsStore.rowDragDropRef.dropTargetCoord!) ||\n // Force trigger drag leave on the drop target when the dragged row moves outside the RS DOM container.\n e.clientX > domContainerCoord.right ||\n e.clientX < domContainerCoord.left)\n ) {\n rsStore.rowDragDropRef.forcedDragLeave = true;\n rsStore.rowDragDropRef.dragLeaveSkipped = false;\n const elm = rsStore.rowDragDropRef.dropTarget.shift()!;\n rsStore.rowDragDropRef.dropTarget = [...rsStore.rowDragDropRef.dropTarget];\n elm.dispatchEvent(\n new MouseEvent('dragleave', {\n bubbles: true,\n cancelable: true,\n view: browserContext.window\n })\n );\n }\n};\n\nconst contextDropCb = ({ getRsStore, getView }: BeforeRenderFeatureProps, ev: DragEvent) => {\n ev.stopPropagation();\n ev.preventDefault();\n const rsStore = getRsStore();\n const elm = rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1];\n if (\n rsStore.rowDragDropRef.dropTargetCoord &&\n elm !== rsStore.rowDragDropRef.dragTarget &&\n isColliding(ev.clientX, ev.clientY, rsStore.rowDragDropRef.dropTargetCoord)\n ) {\n removeDropEffect(elm);\n elm.classList.remove('dragEnter');\n const destinationKey = elm.closest('.row')!.getAttribute('data-key')!;\n const sourceKey = rsStore.rowDragDropRef.dragTarget?.closest('.row')!.getAttribute('data-key')!;\n rsStore.rowDragDropRef.dragTarget = undefined;\n rsStore.rowDragDropRef.dropTargetCoord = null;\n rsStore.rowDragDropRef.isDragTargetTypeRow = false;\n rsStore.rowDragDropRef.dropTarget = [];\n getView().type.handleRowReorder(sourceKey, destinationKey);\n }\n};\n\nconst dragStartCb = (featureProps: BeforeRenderFeatureProps, ev: DragEvent) => {\n const dragOverCallBack = contextDragOverCb.bind(null, featureProps);\n featureProps.browserContext.document.addEventListener('dragover', dragOverCallBack);\n const dropCallBack = contextDropCb.bind(null, featureProps);\n featureProps.getView().getDomContainer()!.addEventListener('drop', dropCallBack);\n\n // We have to keep event handler in reference so that we can remove right handler when drag ends.\n // Handler might change in between because of deps.\n featureProps.getRsStore().rowDragDropRef.contextDropCb = dropCallBack;\n featureProps.getRsStore().rowDragDropRef.contextDragOverCb = dragOverCallBack;\n\n setGhostImage(featureProps, ev);\n if (ev.dataTransfer) {\n ev.dataTransfer.effectAllowed = 'move';\n // Setting up some dummy data(dragged row item key) to make drag drop work in firefox. Refer https://medium.com/%40reiberdatschi/common-pitfalls-with-html5-drag-n-drop-api-9f011a09ee6c\n ev.dataTransfer.setData('text/plain', 'RS_Dragged_Row_Item');\n }\n\n // fail safe reset drag target.\n if (featureProps.getRsStore().rowDragDropRef.dragTarget)\n featureProps.getRsStore().rowDragDropRef.dragTarget = undefined;\n featureProps.getRsStore().rowDragDropRef.isDragTargetTypeRow =\n (ev.currentTarget as HTMLElement).getAttribute('data-drag-type') === 'row';\n featureProps.getRsStore().rowDragDropRef.dragTarget = getSelector(\n ev.currentTarget as HTMLElement\n )!;\n (ev.currentTarget as HTMLElement).classList.add('dragStart');\n addDragEffect(ev.currentTarget as HTMLElement);\n};\n\nconst dragEndCb = (\n { getRsStore, getView, browserContext }: BeforeRenderFeatureProps,\n ev: DragEvent\n) => {\n const rsStore = getRsStore();\n if (rsStore.rowDragDropRef.contextDragOverCb) {\n browserContext.document.removeEventListener(\n 'dragover',\n rsStore.rowDragDropRef.contextDragOverCb\n );\n }\n if (rsStore.rowDragDropRef.contextDropCb) {\n getView().getDomContainer()?.removeEventListener('drop', rsStore.rowDragDropRef.contextDropCb);\n }\n rsStore.rowDragDropRef.dropTarget = [];\n rsStore.rowDragDropRef.dropTargetCoord = null;\n rsStore.rowDragDropRef.forcedDragLeave = false;\n rsStore.rowDragDropRef.dragLeaveSkipped = false;\n rsStore.rowDragDropRef.isDragTargetTypeRow = false;\n (ev.currentTarget as HTMLElement).classList.remove('dragStart');\n removeDragEffect(ev.currentTarget as HTMLElement);\n};\n\nconst isValidDragEnter = (rsStore: RsStore, e: DragEvent) => {\n let isValid = true;\n if (!rsStore.rowDragDropRef.isDragTargetTypeRow) return false;\n if (rsStore.rowDragDropRef.dragTarget === e.currentTarget) isValid = false;\n else if (\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] ===\n e.currentTarget\n )\n isValid = false;\n else if (\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] &&\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] !==\n e.currentTarget\n ) {\n const currentTargetCoord = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const dropTargetCoord =\n rsStore.rowDragDropRef.dropTarget[\n rsStore.rowDragDropRef.dropTarget.length - 1\n ].getBoundingClientRect();\n if (\n !isColliding(e.clientX, e.clientY, currentTargetCoord) &&\n isColliding(e.clientX, e.clientY, dropTargetCoord)\n )\n isValid = false;\n }\n return isValid;\n};\n\nconst dragEnterCb = ({ getRsStore, browserContext }: BeforeRenderFeatureProps, ev: DragEvent) => {\n ev.stopPropagation();\n const rsStore = getRsStore();\n if (isValidDragEnter(rsStore, ev)) {\n rsStore.rowDragDropRef.dropTarget = rsStore.rowDragDropRef.dropTarget.length\n ? [...rsStore.rowDragDropRef.dropTarget]\n : [];\n rsStore.rowDragDropRef.dropTarget.push(ev.currentTarget as HTMLElement);\n (ev.currentTarget as HTMLElement).classList.add('dragEnter');\n if (ev.dataTransfer) {\n ev.dataTransfer.dropEffect = 'move';\n }\n rsStore.rowDragDropRef.dropTargetCoord = (\n ev.currentTarget as HTMLElement\n ).getBoundingClientRect();\n addDropEffect(ev.currentTarget as HTMLElement);\n\n if (rsStore.rowDragDropRef.dropTarget.length > 1) {\n const elm = rsStore.rowDragDropRef.dropTarget.shift()!;\n rsStore.rowDragDropRef.dropTarget = [...rsStore.rowDragDropRef.dropTarget];\n rsStore.rowDragDropRef.forcedDragLeave = true;\n elm.dispatchEvent(\n new MouseEvent('dragleave', {\n bubbles: true,\n cancelable: true,\n view: browserContext.window\n })\n );\n }\n }\n};\n\nconst dragLeaveCb = ({ getRsStore }: BeforeRenderFeatureProps, ev: DragEvent) => {\n ev.stopPropagation();\n const rsStore = getRsStore();\n if (rsStore.rowDragDropRef.forcedDragLeave) {\n rsStore.rowDragDropRef.forcedDragLeave = false;\n (ev.currentTarget as HTMLElement).classList.remove('dragEnter');\n removeDropEffect(ev.currentTarget as HTMLElement);\n } else if (\n !(ev.currentTarget as HTMLElement).contains(ev.relatedTarget as HTMLElement) &&\n rsStore.rowDragDropRef.dragTarget !== ev.currentTarget\n ) {\n rsStore.rowDragDropRef.dragLeaveSkipped = true;\n }\n};\n\nconst dragProps = (featureProps: BeforeRenderFeatureProps) => ({\n 'data-drag-type': 'row',\n draggable: true,\n onDragStart: dragStartCb.bind(null, featureProps),\n onDragEnd: dragEndCb.bind(null, featureProps)\n});\n\nconst dropProps = (featureProps: BeforeRenderFeatureProps) => ({\n onDragEnter: dragEnterCb.bind(null, featureProps),\n onDragLeave: dragLeaveCb.bind(null, featureProps),\n 'data-drop': 'dropzone'\n});\n\nfunction addDragDropBehavior([featureProps]: [featureProps: BeforeRenderFeatureProps]) {\n if (!featureProps.getView().meta.reorderItems) {\n return;\n }\n featureProps.getView().rows!.forEach(r => {\n if (!(r.dragProps && r.dropProps)) {\n r.setProp({\n dragProps: dragProps(featureProps),\n dropProps: dropProps(featureProps)\n });\n }\n });\n}\n\n/**\n * Manages drag drop behavior of rows whenever the {@link View.rows rows} are changed in the view on publish of `AFTER_FETCH` event.\n *\n */\nexport default (rsInternal: RsInternal) => {\n rsInternal.getRsStore().rowDragDropRef = {\n dropTarget: [],\n dragTarget: undefined,\n dropZones: []\n };\n const memoizedAddDragDropBehavior = withMemoization(addDragDropBehavior);\n\n // TODO: Move subscription outside execute function\n return function execute(featureProps: BeforeRenderFeatureProps) {\n rsInternal\n .getPubSubUtils()\n .subscribe(AFTER_FETCH, () =>\n memoizedAddDragDropBehavior([featureProps], [featureProps.getView().rows])\n );\n };\n};\n"]}
@@ -1,12 +1,24 @@
1
1
  import type { BeforeRenderFeatureProps } from '../../featureFactory';
2
2
  import type { Meta } from '../../../../../types/Meta.types';
3
3
  import type { State } from '../../../../../types/State.types';
4
- import type Column from '../../../generators/ColumnGenerator';
5
4
  /**
6
- * @param {import('../../../../../types/Meta.types').Meta} meta
7
- * @returns {import('../../../../../types/State.types').State}
5
+ * Returns visible OOTB column IDs.
6
+ *
7
+ * @param meta - View meta containing field configuration.
8
+ * @returns Array of visible OOTB column IDs.
8
9
  */
9
- export declare function convertMetaIntoState(meta: Meta, columns: Column[]): State;
10
+ export declare function getVisibleOotbColumns(meta: Meta): string[];
11
+ /**
12
+ * Resolves `visibleColumns` from state and appends enabled OOTB columns.
13
+ *
14
+ * @param meta - View meta containing fieldDefs and OOTB field config.
15
+ * @param state - Current state to hydrate into.
16
+ */
17
+ export declare function hydrateVisibleColumnsStateSlice(meta: Meta, state: State): State;
18
+ /**
19
+ * Converts given meta into the state structure.
20
+ */
21
+ export declare function convertMetaIntoState(meta: Meta): State;
10
22
  /**
11
23
  * Hydrates the repeating structure state on bootstrap, following this priority order:
12
24
  * 1. {@link RsProps.persistedInfo}
@@ -1 +1 @@
1
- {"version":3,"file":"stateHydration.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/stateHydration.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAI9D,OAAO,KAAK,MAAM,MAAM,qCAAqC,CAAC;AAG9D;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAkEzE;AA0FD;;;;;;GAMG;+BAKuB,cAAc,wBAAwB;AAJhE,wBAQE"}
1
+ {"version":3,"file":"stateHydration.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/stateHydration.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAO9D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,CAU1D;AACD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAuB/E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAqFtD;AA+ED;;;;;;GAMG;+BAKuB,cAAc,wBAAwB;AAJhE,wBAQE"}
@@ -1,62 +1,122 @@
1
1
  import { actionHydrateState } from '../../../actions/actions';
2
- import { withMemoization, pickProperties, isEmpty } from '../../../utils/util';
2
+ import { withMemoization, pickProperties, isEmpty, isRowDeleteFieldVisible, isRowSelectFieldEnabled, getVisibleColumnsFromHidden, getVisibleColumnsFromFieldDefs, isRowReorderFieldVisible, isRowErrorFieldVisible, isRowActionFieldEnabled } from '../../../utils/util';
3
3
  import { personalizationProps } from '../../../reducers/personalizationReducer';
4
- import { TEMPLATES } from '../../../constants';
4
+ import { rowActionColumnMeta, rowDeleteColumnMeta, rowDragDropColumnMeta, rowErrorColumnMeta, rowSelectColumnMeta, TEMPLATES } from '../../../constants';
5
+ import { getCurrentVersionedState } from '../../../reducers/versioning';
5
6
  /* eslint-enable @typescript-eslint/no-unused-vars */
6
7
  /**
7
- * @param {import('../../../../../types/Meta.types').Meta} meta
8
- * @returns {import('../../../../../types/State.types').State}
8
+ * Returns visible OOTB column IDs.
9
+ *
10
+ * @param meta - View meta containing field configuration.
11
+ * @returns Array of visible OOTB column IDs.
9
12
  */
10
- export function convertMetaIntoState(meta, columns) {
13
+ export function getVisibleOotbColumns(meta) {
14
+ const ootbColumns = [
15
+ { enabled: isRowErrorFieldVisible(meta), id: rowErrorColumnMeta.field.id },
16
+ { enabled: isRowReorderFieldVisible(meta), id: rowDragDropColumnMeta.field.id },
17
+ { enabled: isRowSelectFieldEnabled(meta), id: rowSelectColumnMeta.field.id },
18
+ { enabled: isRowActionFieldEnabled(meta), id: rowActionColumnMeta.field.id },
19
+ { enabled: isRowDeleteFieldVisible(meta), id: rowDeleteColumnMeta.field.id }
20
+ ];
21
+ return ootbColumns.filter(({ enabled }) => enabled).map(({ id }) => id);
22
+ }
23
+ /**
24
+ * Resolves `visibleColumns` from state and appends enabled OOTB columns.
25
+ *
26
+ * @param meta - View meta containing fieldDefs and OOTB field config.
27
+ * @param state - Current state to hydrate into.
28
+ */
29
+ export function hydrateVisibleColumnsStateSlice(meta, state) {
30
+ let visibleColumns;
31
+ if (state.visibleColumns !== undefined) {
32
+ // Use explicitly saved visibleColumns as-is.
33
+ visibleColumns = [...state.visibleColumns];
34
+ }
35
+ else if (state.hiddenColumns !== undefined) {
36
+ // Derive visibleColumns from fieldDefs minus hiddenColumns.
37
+ visibleColumns = getVisibleColumnsFromHidden(meta, state.hiddenColumns);
38
+ }
39
+ else {
40
+ // Fall back to fieldDefs where show is true.
41
+ visibleColumns = getVisibleColumnsFromFieldDefs(meta);
42
+ }
43
+ // Append enabled OOTB columns that are not hidden.
44
+ const ootbColumnIds = getVisibleOotbColumns(meta);
45
+ visibleColumns.push(...ootbColumnIds);
46
+ // TODO OOTB columns should not be part of the state.
47
+ return {
48
+ ...state,
49
+ visibleColumns
50
+ };
51
+ }
52
+ /**
53
+ * Converts given meta into the state structure.
54
+ */
55
+ export function convertMetaIntoState(meta) {
11
56
  const sortingOrder = [];
12
57
  const hiddenColumns = [];
13
- const groups = [];
58
+ const visibleColumns = [];
59
+ let groups = [];
14
60
  const aggregationInfo = [];
15
- let conditionalStyleFormats = [];
61
+ const conditionalStyleFormats = [];
16
62
  const { filterExpression, showHeaderIcons, defaultRowHeight } = meta;
17
63
  // default RowHeight as short
18
64
  // update selectedHeightOption if defaultRowHeight is set in meta
19
65
  const selectedHeightOption = meta.template === TEMPLATES.TABLE ? defaultRowHeight : undefined;
20
- columns.forEach(({ field: col }) => {
66
+ // hydrate state with meta.fieldDefs
67
+ meta.fieldDefs.forEach(fieldDef => {
21
68
  // hydrating sorting
22
- if (col.sort && col.sortPriority && col.sortDirection)
69
+ if (fieldDef.sort && fieldDef.sortPriority && fieldDef.sortDirection)
23
70
  sortingOrder.push({
24
- columnId: col.id,
25
- order: col.sortDirection,
26
- sequence: col.sortPriority
71
+ columnId: fieldDef.id,
72
+ order: fieldDef.sortDirection,
73
+ sequence: fieldDef.sortPriority
27
74
  });
28
75
  // hydrating column visibility
29
- if (!col.show)
30
- hiddenColumns.push(`${col.id}`);
76
+ // TODO: when hiddenColumns is deprecated removed it.
77
+ if (!fieldDef.show)
78
+ hiddenColumns.push(fieldDef.id);
79
+ // hydrating visible columns
80
+ if (fieldDef.show)
81
+ visibleColumns.push(fieldDef.id);
31
82
  // hydrating aggregated Fields
32
- if (col.aggregated && (col.type === 'number' || col.type === 'currency'))
33
- aggregationInfo.push({
34
- columnId: col.id,
35
- type: meta.aggregateOptions?.[col.type]?.[0]
36
- });
83
+ if (fieldDef.aggregated && (fieldDef.type === 'number' || fieldDef.type === 'currency')) {
84
+ const aggregationType = meta.aggregateOptions?.[fieldDef.type]?.[0];
85
+ if (aggregationType) {
86
+ aggregationInfo.push({
87
+ columnId: fieldDef.id,
88
+ type: aggregationType
89
+ });
90
+ }
91
+ }
37
92
  // hydrating grouping
38
93
  // consider sort direction of column for group order if its provided otherwise default to ascending.
39
- if (meta.grouping && col.grouping && col.grouped) {
40
- const level = 'groupOrder' in col ? col.groupOrder : groups.length;
41
- const order = col.sort && col.sortDirection ? col.sortDirection : 'asc';
94
+ if (meta.grouping && fieldDef.grouping && fieldDef.grouped) {
95
+ const level = fieldDef.groupOrder ?? groups.length;
96
+ const order = fieldDef.sort && fieldDef.sortDirection ? fieldDef.sortDirection : 'asc';
42
97
  groups.splice(level, 0, {
43
- columnId: col.id,
98
+ columnId: fieldDef.id,
44
99
  order,
45
100
  level,
46
- dateFunction: col.groupedDateFunction,
47
- additionalFields: col.groupedAdditionalFields
101
+ dateFunction: fieldDef.groupedDateFunction,
102
+ additionalFields: fieldDef.groupedAdditionalFields
48
103
  });
49
104
  }
50
- if (col.conditionalStyleFormats) {
51
- conditionalStyleFormats = col.conditionalStyleFormats.map(conditionalStyleFormat => ({
105
+ if (fieldDef.conditionalStyleFormats) {
106
+ conditionalStyleFormats.push(...fieldDef.conditionalStyleFormats.map(conditionalStyleFormat => ({
52
107
  ...conditionalStyleFormat,
53
- fieldName: col.name
54
- }));
108
+ fieldName: fieldDef.name
109
+ })));
55
110
  }
56
111
  });
57
112
  // BUG-752261 Maintaining sort sequence in state
58
113
  sortingOrder.sort((col1, col2) => col1.sequence - col2.sequence);
114
+ if (meta.grouping === undefined)
115
+ groups = [];
59
116
  return {
117
+ ...(meta.template === TEMPLATES.GALLERY && {
118
+ galleryLayout: meta.galleryConfig?.layout
119
+ }),
60
120
  sortingOrder,
61
121
  hiddenColumns,
62
122
  groups,
@@ -64,10 +124,11 @@ export function convertMetaIntoState(meta, columns) {
64
124
  filterExpression,
65
125
  showHeaderIcons,
66
126
  selectedHeightOption,
67
- conditionalStyleFormats
127
+ conditionalStyleFormats,
128
+ visibleColumns
68
129
  };
69
130
  }
70
- const hydrateComponentState = async ([{ getRsProps, getRsStore, dispatch, getState }]) => {
131
+ const hydrateComponentState = async ([{ getRsProps, getRsStore, dispatch, getState, getView }]) => {
71
132
  let componentState;
72
133
  const rsProps = getRsProps();
73
134
  const rsStore = getRsStore();
@@ -77,19 +138,22 @@ const hydrateComponentState = async ([{ getRsProps, getRsStore, dispatch, getSta
77
138
  }
78
139
  const { personalization } = getState();
79
140
  // if client set component state somewhere for persisting changes
80
- if (componentState && Object.keys(componentState).length) {
141
+ if (componentState &&
142
+ Object.keys(componentState).length &&
143
+ personalization &&
144
+ componentState.activePersonalization) {
81
145
  rsStore.componentState = componentState;
82
- const activeComponentPersonalization = componentState.activePersonalization;
83
146
  const activeComponentState = pickProperties(componentState, personalizationProps);
84
- const payload = {
147
+ let hydratedState = {
85
148
  personalization: {
86
149
  ...personalization,
87
- active: activeComponentPersonalization
150
+ active: componentState.activePersonalization
88
151
  },
89
152
  ...activeComponentState
90
153
  };
91
- // @ts-expect-error Check this.
92
- dispatch(actionHydrateState(payload));
154
+ // Resolve visible columns then apply OOTB column visibility.
155
+ hydratedState = hydrateVisibleColumnsStateSlice(getView().meta, hydratedState);
156
+ dispatch(actionHydrateState(hydratedState));
93
157
  }
94
158
  };
95
159
  // Todo: onLoad sorting, filterBy, GroupBy, Freeze, HiddenColumn,
@@ -98,47 +162,35 @@ const hydrate = ([{ getRsStore, getRsProps, getView, dispatch, getState }]) => {
98
162
  const state = getState();
99
163
  const rsStore = getRsStore();
100
164
  const rsProps = getRsProps();
101
- const payload = {};
165
+ const activePersonalization = state.personalization?.allPersonalizations?.[state.personalization?.active];
166
+ let hydratedState = {};
102
167
  if (rsProps.persistedInfo && rsStore.presets[0].id === state.personalization?.active) {
103
- if (!getView().meta.grouping)
104
- rsProps.persistedInfo.groups = [];
105
- return dispatch(actionHydrateState(rsProps.persistedInfo));
168
+ // Hydrate from persisted info.
169
+ hydratedState = rsProps.persistedInfo;
106
170
  }
107
- if (rsStore.componentState) {
171
+ else if (rsStore.componentState) {
172
+ // Component state already applied by hydrateComponentState ,clear and skip.
108
173
  rsStore.componentState = null;
109
174
  return null;
110
175
  }
111
- if (!rsProps.persistedInfo &&
112
- !rsStore.componentState &&
113
- state.personalization?.allPersonalizations?.[state.personalization?.active]?.isPreset) {
114
- // If preset has its own personalization state then pick it else derive from meta
115
- const presetPersonalizationState = state.personalization.allPersonalizations[state.personalization.active]
116
- .personalizationState || {};
117
- if (!isEmpty(presetPersonalizationState)) {
118
- return dispatch(actionHydrateState(presetPersonalizationState));
119
- }
120
- const { sortingOrder, hiddenColumns, groups, aggregationInfo, filterExpression, showHeaderIcons, selectedHeightOption, conditionalStyleFormats } = convertMetaIntoState(getView().meta, getView().columns);
121
- if (showHeaderIcons !== undefined)
122
- payload.showHeaderIcons = showHeaderIcons;
123
- if (filterExpression)
124
- payload.filterExpression = filterExpression;
125
- if (sortingOrder)
126
- payload.sortingOrder = sortingOrder;
127
- if (hiddenColumns)
128
- payload.hiddenColumns = hiddenColumns;
129
- if (aggregationInfo)
130
- payload.aggregationInfo = aggregationInfo;
131
- if (groups && getView().meta.grouping)
132
- payload.groups = groups;
133
- if (selectedHeightOption)
134
- payload.selectedHeightOption = selectedHeightOption;
135
- if (conditionalStyleFormats)
136
- payload.conditionalStyleFormats = conditionalStyleFormats;
137
- payload.template = getView().meta.template;
138
- payload.presetId = getView().meta.id;
176
+ else if (activePersonalization?.isPreset &&
177
+ !isEmpty(activePersonalization.personalizationState ?? {})) {
178
+ // Preset has its own saved personalization,use it directly.
179
+ hydratedState = activePersonalization.personalizationState ?? {};
180
+ }
181
+ else if (activePersonalization?.isPreset) {
182
+ // If Preset has no saved personalization, derive initial state from meta.
183
+ hydratedState = {
184
+ template: getView().meta.template,
185
+ presetId: getView().meta.id,
186
+ ...convertMetaIntoState(getView().meta)
187
+ };
188
+ }
189
+ else {
190
+ return null;
139
191
  }
140
- dispatch(actionHydrateState(payload));
141
- return null;
192
+ hydratedState = getCurrentVersionedState(hydrateVisibleColumnsStateSlice(getView().meta, hydratedState));
193
+ return dispatch(actionHydrateState(hydratedState));
142
194
  };
143
195
  /**
144
196
  * Hydrates the repeating structure state on bootstrap, following this priority order:
@@ -1 +1 @@
1
- {"version":3,"file":"stateHydration.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/stateHydration.ts"],"names":[],"mappings":"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","sourcesContent":["import { actionHydrateState } from '../../../actions/actions';\nimport { withMemoization, pickProperties, isEmpty } from '../../../utils/util';\nimport { personalizationProps } from '../../../reducers/personalizationReducer';\nimport { TEMPLATES } from '../../../constants';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\nimport type { Meta } from '../../../../../types/Meta.types';\nimport type { State } from '../../../../../types/State.types';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type RsProps from '../../../RsProps';\nimport type { ApiContext } from '../../../../../types/ApiContext.types';\nimport type Column from '../../../generators/ColumnGenerator';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\n/**\n * @param {import('../../../../../types/Meta.types').Meta} meta\n * @returns {import('../../../../../types/State.types').State}\n */\nexport function convertMetaIntoState(meta: Meta, columns: Column[]): State {\n const sortingOrder: State['sortingOrder'] = [];\n const hiddenColumns: State['hiddenColumns'] = [];\n const groups: State['groups'] = [];\n const aggregationInfo: State['aggregationInfo'] = [];\n let conditionalStyleFormats: State['conditionalStyleFormats'] = [];\n const { filterExpression, showHeaderIcons, defaultRowHeight } = meta;\n\n // default RowHeight as short\n // update selectedHeightOption if defaultRowHeight is set in meta\n const selectedHeightOption = meta.template === TEMPLATES.TABLE ? defaultRowHeight : undefined;\n\n columns.forEach(({ field: col }) => {\n // hydrating sorting\n if (col.sort && col.sortPriority && col.sortDirection)\n sortingOrder.push({\n columnId: col.id,\n order: col.sortDirection,\n sequence: col.sortPriority\n });\n\n // hydrating column visibility\n if (!col.show) hiddenColumns.push(`${col.id}`);\n\n // hydrating aggregated Fields\n if (col.aggregated && (col.type === 'number' || col.type === 'currency'))\n aggregationInfo.push({\n columnId: col.id,\n type: meta.aggregateOptions?.[col.type]?.[0]!\n });\n\n // hydrating grouping\n // consider sort direction of column for group order if its provided otherwise default to ascending.\n if (meta.grouping && col.grouping && col.grouped) {\n const level = 'groupOrder' in col ? col.groupOrder! : groups.length;\n const order = col.sort && col.sortDirection ? col.sortDirection : 'asc';\n groups.splice(level, 0, {\n columnId: col.id,\n order,\n level,\n dateFunction: col.groupedDateFunction,\n additionalFields: col.groupedAdditionalFields\n });\n }\n\n if (col.conditionalStyleFormats) {\n conditionalStyleFormats = col.conditionalStyleFormats.map(conditionalStyleFormat => ({\n ...conditionalStyleFormat,\n fieldName: col.name\n }));\n }\n });\n\n // BUG-752261 Maintaining sort sequence in state\n sortingOrder.sort((col1, col2) => col1.sequence - col2.sequence);\n\n return {\n sortingOrder,\n hiddenColumns,\n groups,\n aggregationInfo,\n filterExpression,\n showHeaderIcons,\n selectedHeightOption,\n conditionalStyleFormats\n };\n}\n\nconst hydrateComponentState = async ([{ getRsProps, getRsStore, dispatch, getState }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n let componentState;\n const rsProps = getRsProps();\n const rsStore = getRsStore();\n rsStore.componentState = null;\n if (rsProps?.apiContext?.getComponentState) {\n componentState = await rsProps?.apiContext?.getComponentState();\n }\n const { personalization } = getState();\n // if client set component state somewhere for persisting changes\n if (componentState && Object.keys(componentState).length) {\n rsStore.componentState = componentState;\n const activeComponentPersonalization = componentState.activePersonalization;\n const activeComponentState = pickProperties(componentState, personalizationProps);\n const payload = {\n personalization: {\n ...personalization,\n active: activeComponentPersonalization\n },\n ...activeComponentState\n };\n // @ts-expect-error Check this.\n dispatch(actionHydrateState(payload));\n }\n};\n\n// Todo: onLoad sorting, filterBy, GroupBy, Freeze, HiddenColumn,\n// the structure in meta and hydration of state from it\nconst hydrate = ([{ getRsStore, getRsProps, getView, dispatch, getState }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const state = getState();\n const rsStore = getRsStore();\n const rsProps = getRsProps();\n const payload: State = {};\n\n if (rsProps.persistedInfo && rsStore.presets[0].id === state.personalization?.active) {\n if (!getView().meta.grouping) rsProps.persistedInfo.groups = [];\n return dispatch(actionHydrateState(rsProps.persistedInfo));\n }\n\n if (rsStore.componentState) {\n rsStore.componentState = null;\n return null;\n }\n\n if (\n !rsProps.persistedInfo &&\n !rsStore.componentState &&\n state.personalization?.allPersonalizations?.[state.personalization?.active]?.isPreset\n ) {\n // If preset has its own personalization state then pick it else derive from meta\n const presetPersonalizationState =\n state.personalization.allPersonalizations[state.personalization.active]\n .personalizationState || {};\n if (!isEmpty(presetPersonalizationState)) {\n return dispatch(actionHydrateState(presetPersonalizationState));\n }\n\n const {\n sortingOrder,\n hiddenColumns,\n groups,\n aggregationInfo,\n filterExpression,\n showHeaderIcons,\n selectedHeightOption,\n conditionalStyleFormats\n } = convertMetaIntoState(getView().meta, getView().columns!);\n\n if (showHeaderIcons !== undefined) payload.showHeaderIcons = showHeaderIcons;\n if (filterExpression) payload.filterExpression = filterExpression;\n if (sortingOrder) payload.sortingOrder = sortingOrder;\n if (hiddenColumns) payload.hiddenColumns = hiddenColumns;\n if (aggregationInfo) payload.aggregationInfo = aggregationInfo;\n if (groups && getView().meta.grouping) payload.groups = groups;\n if (selectedHeightOption) payload.selectedHeightOption = selectedHeightOption;\n if (conditionalStyleFormats) payload.conditionalStyleFormats = conditionalStyleFormats;\n\n payload.template = getView().meta.template;\n payload.presetId = getView().meta.id;\n }\n dispatch(actionHydrateState(payload));\n return null;\n};\n\n/**\n * Hydrates the repeating structure state on bootstrap, following this priority order:\n * 1. {@link RsProps.persistedInfo}\n * 2. Component state from {@link ApiContext.getComponentState}\n * 3. Personalized state from the preset\n * 4. {@link Meta}\n */\nexport default () => {\n const memoizedHydrateComponentState = withMemoization(hydrateComponentState);\n const memoizedHydrate = withMemoization(hydrate);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n memoizedHydrateComponentState([featureProps], []);\n memoizedHydrate([featureProps], [featureProps.getView().meta]);\n };\n};\n"]}
1
+ {"version":3,"file":"stateHydration.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/stateHydration.ts"],"names":[],"mappings":"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","sourcesContent":["import { actionHydrateState } from '../../../actions/actions';\nimport {\n withMemoization,\n pickProperties,\n isEmpty,\n isRowDeleteFieldVisible,\n isRowSelectFieldEnabled,\n getVisibleColumnsFromHidden,\n getVisibleColumnsFromFieldDefs,\n isRowReorderFieldVisible,\n isRowErrorFieldVisible,\n isRowActionFieldEnabled\n} from '../../../utils/util';\nimport { personalizationProps } from '../../../reducers/personalizationReducer';\nimport {\n rowActionColumnMeta,\n rowDeleteColumnMeta,\n rowDragDropColumnMeta,\n rowErrorColumnMeta,\n rowSelectColumnMeta,\n TEMPLATES\n} from '../../../constants';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\nimport type { Meta } from '../../../../../types/Meta.types';\nimport type { State } from '../../../../../types/State.types';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type RsProps from '../../../RsProps';\nimport type { ApiContext } from '../../../../../types/ApiContext.types';\nimport { getCurrentVersionedState } from '../../../reducers/versioning';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\n/**\n * Returns visible OOTB column IDs.\n *\n * @param meta - View meta containing field configuration.\n * @returns Array of visible OOTB column IDs.\n */\nexport function getVisibleOotbColumns(meta: Meta): string[] {\n const ootbColumns = [\n { enabled: isRowErrorFieldVisible(meta), id: rowErrorColumnMeta.field.id },\n { enabled: isRowReorderFieldVisible(meta), id: rowDragDropColumnMeta.field.id },\n { enabled: isRowSelectFieldEnabled(meta), id: rowSelectColumnMeta.field.id },\n { enabled: isRowActionFieldEnabled(meta), id: rowActionColumnMeta.field.id },\n { enabled: isRowDeleteFieldVisible(meta), id: rowDeleteColumnMeta.field.id }\n ] as const;\n\n return ootbColumns.filter(({ enabled }) => enabled).map(({ id }) => id);\n}\n/**\n * Resolves `visibleColumns` from state and appends enabled OOTB columns.\n *\n * @param meta - View meta containing fieldDefs and OOTB field config.\n * @param state - Current state to hydrate into.\n */\nexport function hydrateVisibleColumnsStateSlice(meta: Meta, state: State): State {\n let visibleColumns: string[];\n\n if (state.visibleColumns !== undefined) {\n // Use explicitly saved visibleColumns as-is.\n visibleColumns = [...state.visibleColumns];\n } else if (state.hiddenColumns !== undefined) {\n // Derive visibleColumns from fieldDefs minus hiddenColumns.\n visibleColumns = getVisibleColumnsFromHidden(meta, state.hiddenColumns);\n } else {\n // Fall back to fieldDefs where show is true.\n visibleColumns = getVisibleColumnsFromFieldDefs(meta);\n }\n\n // Append enabled OOTB columns that are not hidden.\n const ootbColumnIds = getVisibleOotbColumns(meta);\n visibleColumns.push(...ootbColumnIds);\n\n // TODO OOTB columns should not be part of the state.\n return {\n ...state,\n visibleColumns\n };\n}\n\n/**\n * Converts given meta into the state structure.\n */\nexport function convertMetaIntoState(meta: Meta): State {\n const sortingOrder: State['sortingOrder'] = [];\n const hiddenColumns: State['hiddenColumns'] = [];\n const visibleColumns: State['visibleColumns'] = [];\n let groups: NonNullable<State['groups']> = [];\n const aggregationInfo: State['aggregationInfo'] = [];\n const conditionalStyleFormats: State['conditionalStyleFormats'] = [];\n const { filterExpression, showHeaderIcons, defaultRowHeight } = meta;\n\n // default RowHeight as short\n // update selectedHeightOption if defaultRowHeight is set in meta\n const selectedHeightOption = meta.template === TEMPLATES.TABLE ? defaultRowHeight : undefined;\n\n // hydrate state with meta.fieldDefs\n meta.fieldDefs.forEach(fieldDef => {\n // hydrating sorting\n if (fieldDef.sort && fieldDef.sortPriority && fieldDef.sortDirection)\n sortingOrder.push({\n columnId: fieldDef.id,\n order: fieldDef.sortDirection,\n sequence: fieldDef.sortPriority\n });\n\n // hydrating column visibility\n // TODO: when hiddenColumns is deprecated removed it.\n if (!fieldDef.show) hiddenColumns.push(fieldDef.id);\n\n // hydrating visible columns\n if (fieldDef.show) visibleColumns.push(fieldDef.id);\n\n // hydrating aggregated Fields\n if (fieldDef.aggregated && (fieldDef.type === 'number' || fieldDef.type === 'currency')) {\n const aggregationType = meta.aggregateOptions?.[fieldDef.type]?.[0];\n\n if (aggregationType) {\n aggregationInfo.push({\n columnId: fieldDef.id,\n type: aggregationType\n });\n }\n }\n\n // hydrating grouping\n // consider sort direction of column for group order if its provided otherwise default to ascending.\n if (meta.grouping && fieldDef.grouping && fieldDef.grouped) {\n const level = fieldDef.groupOrder ?? groups.length;\n const order = fieldDef.sort && fieldDef.sortDirection ? fieldDef.sortDirection : 'asc';\n groups.splice(level, 0, {\n columnId: fieldDef.id,\n order,\n level,\n dateFunction: fieldDef.groupedDateFunction,\n additionalFields: fieldDef.groupedAdditionalFields\n });\n }\n\n if (fieldDef.conditionalStyleFormats) {\n conditionalStyleFormats.push(\n ...fieldDef.conditionalStyleFormats.map(conditionalStyleFormat => ({\n ...conditionalStyleFormat,\n fieldName: fieldDef.name\n }))\n );\n }\n });\n\n // BUG-752261 Maintaining sort sequence in state\n sortingOrder.sort((col1, col2) => col1.sequence - col2.sequence);\n\n if (meta.grouping === undefined) groups = [];\n\n return {\n ...(meta.template === TEMPLATES.GALLERY && {\n galleryLayout: meta.galleryConfig?.layout\n }),\n sortingOrder,\n hiddenColumns,\n groups,\n aggregationInfo,\n filterExpression,\n showHeaderIcons,\n selectedHeightOption,\n conditionalStyleFormats,\n visibleColumns\n };\n}\n\nconst hydrateComponentState = async ([{ getRsProps, getRsStore, dispatch, getState, getView }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n let componentState;\n const rsProps = getRsProps();\n const rsStore = getRsStore();\n rsStore.componentState = null;\n if (rsProps?.apiContext?.getComponentState) {\n componentState = await rsProps?.apiContext?.getComponentState();\n }\n const { personalization } = getState();\n // if client set component state somewhere for persisting changes\n if (\n componentState &&\n Object.keys(componentState).length &&\n personalization &&\n componentState.activePersonalization\n ) {\n rsStore.componentState = componentState;\n const activeComponentState = pickProperties(componentState, personalizationProps);\n let hydratedState: State = {\n personalization: {\n ...personalization,\n active: componentState.activePersonalization\n },\n ...activeComponentState\n };\n\n // Resolve visible columns then apply OOTB column visibility.\n hydratedState = hydrateVisibleColumnsStateSlice(getView().meta, hydratedState);\n dispatch(actionHydrateState(hydratedState));\n }\n};\n\n// Todo: onLoad sorting, filterBy, GroupBy, Freeze, HiddenColumn,\n// the structure in meta and hydration of state from it\nconst hydrate = ([{ getRsStore, getRsProps, getView, dispatch, getState }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const state = getState();\n const rsStore = getRsStore();\n const rsProps = getRsProps();\n const activePersonalization =\n state.personalization?.allPersonalizations?.[state.personalization?.active];\n\n let hydratedState: State = {};\n\n if (rsProps.persistedInfo && rsStore.presets[0].id === state.personalization?.active) {\n // Hydrate from persisted info.\n hydratedState = rsProps.persistedInfo;\n } else if (rsStore.componentState) {\n // Component state already applied by hydrateComponentState ,clear and skip.\n rsStore.componentState = null;\n return null;\n } else if (\n activePersonalization?.isPreset &&\n !isEmpty(activePersonalization.personalizationState ?? {})\n ) {\n // Preset has its own saved personalization,use it directly.\n hydratedState = activePersonalization.personalizationState ?? {};\n } else if (activePersonalization?.isPreset) {\n // If Preset has no saved personalization, derive initial state from meta.\n hydratedState = {\n template: getView().meta.template,\n presetId: getView().meta.id,\n ...convertMetaIntoState(getView().meta)\n };\n } else {\n return null;\n }\n\n hydratedState = getCurrentVersionedState(\n hydrateVisibleColumnsStateSlice(getView().meta, hydratedState)\n );\n return dispatch(actionHydrateState(hydratedState));\n};\n\n/**\n * Hydrates the repeating structure state on bootstrap, following this priority order:\n * 1. {@link RsProps.persistedInfo}\n * 2. Component state from {@link ApiContext.getComponentState}\n * 3. Personalized state from the preset\n * 4. {@link Meta}\n */\nexport default () => {\n const memoizedHydrateComponentState = withMemoization(hydrateComponentState);\n const memoizedHydrate = withMemoization(hydrate);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n memoizedHydrateComponentState([featureProps], []);\n memoizedHydrate([featureProps], [featureProps.getView().meta]);\n };\n};\n"]}
@@ -4,7 +4,7 @@ export declare function findInvalidFieldInFilterRecursively(obj: Record<string,
4
4
  /**
5
5
  * Filter out the conditional style formats that are referencing invalid fields which are not present in {@link Meta.fieldDefs}.
6
6
  * @param conditionalStyleFormats formats to sanitize
7
- * @param fieldDefs valid {@link Meta.fieldDefs}
7
+ * @param fieldDefs valid {@link fieldDefs}
8
8
  * @returns sanitized formats.
9
9
  */
10
10
  export declare function sanitizeConditionalStyleFormats(conditionalStyleFormats: ConditionalStyleFormat[], fieldDefs: FieldDef[]): ConditionalStyleFormat[];
@@ -12,7 +12,7 @@ export declare function sanitizeConditionalStyleFormats(conditionalStyleFormats:
12
12
  * Sanitizes the RS state using the preset {@link Meta} information. Fields defined in {@link FieldDef} that are not included in the preset {@link Meta} but are part of the following {@link State} slices are removed:
13
13
  * - {@link State.sortingOrder}
14
14
  * - {@link State.freezeColumns}
15
- * - {@link State.hiddenColumns}
15
+ * - {@link State.visibleColumns}
16
16
  * - {@link State.columnWidths}
17
17
  * - {@link State.colOrder}
18
18
  * - {@link State.aggregationInfo}
@@ -1 +1 @@
1
- {"version":3,"file":"stateSanitization.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/stateSanitization.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,KAAK,EACV,sBAAsB,EACtB,QAAQ,EAGT,MAAM,iCAAiC,CAAC;AAoBzC,wBAAgB,mCAAmC,CACjD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAmBT;AACD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,uBAAuB,EAAE,sBAAsB,EAAE,EACjD,SAAS,EAAE,QAAQ,EAAE,4BAQtB;AAoLD;;;;;;;;;;;;;;;GAeG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAOE"}
1
+ {"version":3,"file":"stateSanitization.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/stateSanitization.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,KAAK,EACV,sBAAsB,EACtB,QAAQ,EAGT,MAAM,iCAAiC,CAAC;AAyDzC,wBAAgB,mCAAmC,CACjD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAwBT;AAcD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,uBAAuB,EAAE,sBAAsB,EAAE,EACjD,SAAS,EAAE,QAAQ,EAAE,4BAStB;AAqPD;;;;;;;;;;;;;;;GAeG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAOE"}