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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,13 +1,11 @@
1
1
  import type { State } from '../../../../../../types/State.types';
2
- import type Column from '../../../../generators/ColumnGenerator';
3
2
  import type View from '../../../../generators/ViewGenerator';
4
3
  import type { BeforeRenderFeatureProps } from '../../../featureFactory';
5
4
  export declare const COLUMN_RESIZING_CLASS = "column-resizing";
6
5
  export declare function setColumnStyle(domContainer: View['domContainer'], style: string, columnId: number, value: number): void;
7
- export declare const resizedColumnWidth: (column: Column, distanceDragged: number) => number;
8
6
  export declare const getNextFrozenColumns: (columnId: string, freezeColumns?: State["freezeColumns"]) => string[];
9
- export declare const columnResizerProps: ([{ getState, getView, dispatch }]: [featureProps: BeforeRenderFeatureProps]) => {
10
- onMouseDown: (e: MouseEvent) => boolean;
7
+ export declare const columnResizerProps: ([{ getState, getView, dispatch, browserContext }]: [BeforeRenderFeatureProps]) => {
8
+ onMouseDown: (e: MouseEvent) => void;
11
9
  };
12
10
  declare const _default: () => (featureProps: BeforeRenderFeatureProps) => void;
13
11
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"resize.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/features/uIFeatures/beforeRender/columnSizing/resize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAEjE,OAAO,KAAK,MAAM,MAAM,wCAAwC,CAAC;AACjE,OAAO,KAAK,IAAI,MAAM,sCAAsC,CAAC;AAE7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAGxE,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD,wBAAgB,cAAc,CAC5B,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,EAClC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,QAKd;AAED,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,iBAAiB,MAAM,WAOzE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,gBAAe,KAAK,CAAC,eAAe,CAAM,aAU3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,mCAAmC,CACpE,YAAY,EAAE,wBAAwB,CACvC;qBAiEyB,UAAU;CA+BnC,CAAC;+BAKwB,cAAc,wBAAwB;AAHhE,wBAWE"}
1
+ {"version":3,"file":"resize.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/features/uIFeatures/beforeRender/columnSizing/resize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAGjE,OAAO,KAAK,IAAI,MAAM,sCAAsC,CAAC;AAE7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAGxE,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD,wBAAgB,cAAc,CAC5B,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,EAClC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,QAGd;AAqBD,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,gBAAe,KAAK,CAAC,eAAe,CAAM,aAU3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,mDAAmD,CACpF,wBAAwB,CACzB;qBAoFyB,UAAU;CAqCnC,CAAC;+BAKwB,cAAc,wBAAwB;AAHhE,wBAWE"}
@@ -1,17 +1,20 @@
1
+ import { isInstance } from '@pega/cosmos-react-core';
1
2
  import { actionColumnResize, actionColumnAutoSize } from '../../../../actions/actions';
2
3
  import { withMemoization } from '../../../../utils/util';
3
4
  import { calculateFieldLeft } from '../freeze';
4
5
  export const COLUMN_RESIZING_CLASS = 'column-resizing';
5
6
  export function setColumnStyle(domContainer, style, columnId, value) {
6
- if (domContainer && domContainer.style) {
7
- domContainer.style.setProperty(`--col-${style}-${columnId}`, `${value}px`);
8
- }
7
+ domContainer?.style?.setProperty(`--col-${style}-${columnId}`, `${value}px`);
9
8
  }
10
- export const resizedColumnWidth = (column, distanceDragged) => {
11
- const existingWidth = column.currentWidth || column.field.width || column.field.minWidth;
12
- let width = existingWidth + distanceDragged;
13
- if (width < column.field.minWidth) {
14
- width = column.field.minWidth;
9
+ const getResizedColumnWidth = (column, distanceDragged, currentCell) => {
10
+ const renderedWidth = currentCell?.offsetWidth;
11
+ // Use measured width when available; otherwise use configured/stored width.
12
+ const measuredWidth = renderedWidth && renderedWidth > 0 ? renderedWidth : undefined;
13
+ const currentWidth = measuredWidth ?? column.currentWidth ?? column.field.width ?? column.field.minWidth ?? 0;
14
+ let width = currentWidth + distanceDragged;
15
+ // TODO: confirm with designers if we want to limit the column sizing within the maxWidth(if defined on fieldDef). Currently only minWidth is getting honored.
16
+ if (width < (column.field.minWidth ?? 0)) {
17
+ width = column.field.minWidth ?? 0;
15
18
  }
16
19
  return width;
17
20
  };
@@ -25,17 +28,21 @@ export const getNextFrozenColumns = (columnId, freezeColumns = []) => {
25
28
  }
26
29
  return nextFrozenColumns;
27
30
  };
28
- export const columnResizerProps = ([{ getState, getView, dispatch }]) => {
31
+ export const columnResizerProps = ([{ getState, getView, dispatch, browserContext }]) => {
29
32
  const { freezeColumns, hiddenColumns, columnWidths = {} } = getState();
30
- let column = {};
33
+ let column;
31
34
  let startPosition = 0;
32
35
  let resized = false;
33
36
  let updatedWidth = 0;
34
37
  let currentCell = null;
35
- let nextFrozenColumns = []; // Contains next frozen columns with left positions to apply left on resize
38
+ let currentCellOccupiedWidthBeforeResize = 0;
39
+ let nextFrozenColumns = [];
40
+ const resizeDocument = browserContext.document;
36
41
  const updateWidth = (distance) => {
37
- updatedWidth = resizedColumnWidth({ ...column, currentWidth: column.currentWidth }, distance);
38
- column = column.setProp('currentWidth', updatedWidth); // Updating current width
42
+ if (!column)
43
+ return;
44
+ updatedWidth = getResizedColumnWidth({ ...column, currentWidth: column.currentWidth }, distance, currentCell);
45
+ column = column.setProp('currentWidth', updatedWidth);
39
46
  setColumnStyle(getView().getDomContainer(), 'width', column.field.idHash, updatedWidth);
40
47
  };
41
48
  /**
@@ -43,76 +50,90 @@ export const columnResizerProps = ([{ getState, getView, dispatch }]) => {
43
50
  */
44
51
  const updateLefts = () => {
45
52
  nextFrozenColumns.forEach(colId => {
46
- const left = calculateFieldLeft(colId, getView().columns, freezeColumns, hiddenColumns, { ...columnWidths, [column.field.id]: updatedWidth } // injecting the resized width to current column
53
+ const left = calculateFieldLeft(colId, getView().columns, freezeColumns, hiddenColumns, column ? { ...columnWidths, [column.field.id]: updatedWidth } : columnWidths // injecting the resized width to current column
47
54
  );
48
55
  const nextFrozenColumn = getView().columns?.find(c => `${c.field.id}` === colId);
49
56
  setColumnStyle(getView().getDomContainer(), 'left', nextFrozenColumn.field.idHash, left);
50
57
  });
51
58
  };
52
59
  const resizeHandler = (e) => {
60
+ if (!currentCell || !column)
61
+ return;
53
62
  e.preventDefault();
54
63
  const distance = e.clientX - startPosition;
64
+ const parentContainer = getView().getVirtualizeElement('rootVirtualiser')?.getParentContainer();
65
+ const clientWidth = parentContainer?.clientWidth ?? 0;
66
+ const scrollWidth = parentContainer?.scrollWidth ?? 0;
67
+ // Prevent reducing size for fillAvailableSpace column if the size reduction will introduce empty space in the table.
68
+ const preventSizeReductionForFillAvailableSpaceColumn = column.field.fillAvailableSpace &&
69
+ distance <= 0 &&
70
+ currentCellOccupiedWidthBeforeResize <= (currentCell.offsetWidth ?? 0) &&
71
+ clientWidth === scrollWidth;
72
+ if (preventSizeReductionForFillAvailableSpaceColumn) {
73
+ return;
74
+ }
55
75
  if (distance !== 0) {
56
- column =
57
- getView().columns?.find(c => `${c.field.id}` === currentCell?.dataset.colId) ??
58
- {};
59
76
  updateWidth(distance);
60
77
  updateLefts();
61
78
  resized = true;
62
79
  }
63
80
  startPosition = e.clientX;
64
- return false;
65
81
  };
66
82
  const resizeEndHandler = (e) => {
67
83
  e.preventDefault();
68
- const domContainer = getView().getDomContainer();
69
- domContainer.removeEventListener('mousemove', resizeHandler);
70
- domContainer.removeEventListener('mouseup', resizeEndHandler);
71
- domContainer.removeEventListener('mouseleave', resizeEndHandler);
84
+ if (!currentCell || !column)
85
+ return;
86
+ resizeDocument.removeEventListener('mousemove', resizeHandler);
87
+ resizeDocument.removeEventListener('mouseup', resizeEndHandler);
72
88
  if (resized) {
73
89
  dispatch(actionColumnResize({ [column.field.id]: updatedWidth }));
74
90
  resized = false;
75
91
  }
76
92
  currentCell.style.pointerEvents = 'auto';
77
93
  currentCell.classList.toggle(COLUMN_RESIZING_CLASS);
78
- domContainer.classList.toggle(COLUMN_RESIZING_CLASS);
79
- return false;
94
+ getView().getDomContainer()?.classList.toggle(COLUMN_RESIZING_CLASS);
95
+ // Reset the temporary body cursor override when resize interaction ends.
96
+ resizeDocument.body?.style.setProperty('cursor', '');
80
97
  };
81
98
  const onMouseDown = (e) => {
99
+ if (!isInstance(e.target, HTMLElement))
100
+ return;
82
101
  e.preventDefault();
83
102
  e.stopPropagation();
84
- startPosition = e.clientX;
85
103
  const domContainer = getView().getDomContainer();
86
- domContainer.addEventListener('mousemove', resizeHandler);
87
- domContainer.addEventListener('mouseup', resizeEndHandler);
88
- domContainer.addEventListener('mouseleave', resizeEndHandler);
104
+ if (!domContainer)
105
+ return;
106
+ resizeDocument.addEventListener('mousemove', resizeHandler);
107
+ resizeDocument.addEventListener('mouseup', resizeEndHandler);
89
108
  currentCell = e.target.closest('.cell');
109
+ if (!currentCell)
110
+ return;
90
111
  currentCell.style.pointerEvents = 'none';
91
- if (e.detail >= 2) {
92
- // It is a double click so ask for a resize on column
93
- const col = getView().columns?.find(c => `${c.field.id}` === currentCell.dataset.colId);
94
- if (col?.field?.resize) {
95
- dispatch(actionColumnAutoSize(col, getView().getDomContainer(), true));
96
- }
112
+ column = getView().columns?.find(c => `${c.field.id}` === currentCell?.dataset.colId);
113
+ if (!column)
114
+ return;
115
+ startPosition = e.clientX;
116
+ currentCellOccupiedWidthBeforeResize = currentCell.offsetWidth ?? 0;
117
+ if (e.detail >= 2 && column.field.resize) {
118
+ dispatch(actionColumnAutoSize(column, domContainer, true));
97
119
  }
98
120
  currentCell.classList.toggle(COLUMN_RESIZING_CLASS);
99
121
  domContainer.classList.toggle(COLUMN_RESIZING_CLASS);
122
+ // Keep resize cursor visible even when pointer moves outside the handle.
123
+ resizeDocument.body?.style.setProperty('cursor', 'col-resize');
100
124
  // TODO: getState().freezeColumns should
101
125
  // give latest state after the action triggered from current feature only on above lines. Check this.
102
126
  nextFrozenColumns = getNextFrozenColumns(currentCell.dataset.colId, getState().freezeColumns);
103
- return false;
104
- };
105
- return {
106
- onMouseDown
107
127
  };
128
+ return { onMouseDown };
108
129
  };
109
130
  export default () => {
110
131
  const memoizedColumnResize = withMemoization(columnResizerProps);
111
132
  return function execute(featureProps) {
112
- const { freezeColumns, hiddenColumns, columnWidths } = featureProps.getState();
133
+ const { freezeColumns, visibleColumns, columnWidths } = featureProps.getState();
113
134
  featureProps
114
135
  .getRsStore()
115
- .setColumnResizerProps(memoizedColumnResize([featureProps], [freezeColumns, hiddenColumns, columnWidths]));
136
+ .setColumnResizerProps(memoizedColumnResize([featureProps], [freezeColumns, visibleColumns, columnWidths]));
116
137
  };
117
138
  };
118
139
  //# sourceMappingURL=resize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resize.js","sourceRoot":"","sources":["../../../../../../../src/core/features/uIFeatures/beforeRender/columnSizing/resize.ts"],"names":[],"mappings":"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","sourcesContent":["import type { State } from '../../../../../../types/State.types';\nimport { actionColumnResize, actionColumnAutoSize } from '../../../../actions/actions';\nimport type Column from '../../../../generators/ColumnGenerator';\nimport type View from '../../../../generators/ViewGenerator';\nimport { withMemoization } from '../../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../../featureFactory';\nimport { calculateFieldLeft } from '../freeze';\n\nexport const COLUMN_RESIZING_CLASS = 'column-resizing';\n\nexport function setColumnStyle(\n domContainer: View['domContainer'],\n style: string,\n columnId: number,\n value: number\n) {\n if (domContainer && domContainer.style) {\n domContainer.style.setProperty(`--col-${style}-${columnId}`, `${value}px`);\n }\n}\n\nexport const resizedColumnWidth = (column: Column, distanceDragged: number) => {\n const existingWidth = column.currentWidth || column.field.width || column.field.minWidth;\n let width = existingWidth! + distanceDragged;\n if (width < column.field.minWidth!) {\n width = column.field.minWidth!;\n }\n return width;\n};\n\nexport const getNextFrozenColumns = (\n columnId: string,\n freezeColumns: State['freezeColumns'] = []\n) => {\n const nextFrozenColumns = [];\n const freezeColIndex = freezeColumns.indexOf(columnId); // If current column freezed\n if (freezeColIndex > -1) {\n for (let i = freezeColIndex + 1; i < freezeColumns.length; i += 1) {\n nextFrozenColumns.push(freezeColumns[i]);\n }\n }\n return nextFrozenColumns;\n};\n\nexport const columnResizerProps = ([{ getState, getView, dispatch }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const { freezeColumns, hiddenColumns, columnWidths = {} } = getState();\n let column: Column = {} as Column;\n let startPosition = 0;\n let resized = false;\n let updatedWidth = 0;\n let currentCell: HTMLElement | null = null;\n let nextFrozenColumns: string[] = []; // Contains next frozen columns with left positions to apply left on resize\n const updateWidth = (distance: number) => {\n updatedWidth = resizedColumnWidth(\n { ...column, currentWidth: column.currentWidth } as Column,\n distance\n );\n column = column.setProp('currentWidth', updatedWidth); // Updating current width\n setColumnStyle(getView().getDomContainer(), 'width', column.field.idHash!, updatedWidth);\n };\n\n /**\n * Update left positions to frozen columns or right of this column.\n */\n const updateLefts = () => {\n nextFrozenColumns.forEach(colId => {\n const left = calculateFieldLeft(\n colId,\n getView().columns,\n freezeColumns,\n hiddenColumns,\n { ...columnWidths, [column.field.id]: updatedWidth } // injecting the resized width to current column\n );\n const nextFrozenColumn = getView().columns?.find(c => `${c.field.id}` === colId);\n setColumnStyle(getView().getDomContainer(), 'left', nextFrozenColumn!.field.idHash!, left);\n });\n };\n\n const resizeHandler = (e: MouseEvent) => {\n e.preventDefault();\n const distance = e.clientX - startPosition;\n if (distance !== 0) {\n column =\n getView().columns?.find(c => `${c.field.id}` === currentCell?.dataset.colId) ??\n ({} as Column);\n updateWidth(distance);\n updateLefts();\n resized = true;\n }\n startPosition = e.clientX;\n return false;\n };\n\n const resizeEndHandler = (e: MouseEvent) => {\n e.preventDefault();\n const domContainer = getView().getDomContainer()!;\n domContainer.removeEventListener('mousemove', resizeHandler);\n domContainer.removeEventListener('mouseup', resizeEndHandler);\n domContainer.removeEventListener('mouseleave', resizeEndHandler);\n if (resized) {\n dispatch(actionColumnResize({ [column.field.id]: updatedWidth }));\n resized = false;\n }\n currentCell!.style.pointerEvents = 'auto';\n currentCell!.classList.toggle(COLUMN_RESIZING_CLASS);\n domContainer.classList.toggle(COLUMN_RESIZING_CLASS);\n return false;\n };\n\n const onMouseDown = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n startPosition = e.clientX;\n const domContainer = getView().getDomContainer()!;\n domContainer.addEventListener('mousemove', resizeHandler);\n domContainer.addEventListener('mouseup', resizeEndHandler);\n domContainer.addEventListener('mouseleave', resizeEndHandler);\n currentCell = (e.target as HTMLElement).closest('.cell')!;\n currentCell.style.pointerEvents = 'none';\n\n if (e.detail >= 2) {\n // It is a double click so ask for a resize on column\n const col = getView().columns?.find(c => `${c.field.id}` === currentCell!.dataset.colId);\n if (col?.field?.resize) {\n dispatch(actionColumnAutoSize(col, getView().getDomContainer()!, true));\n }\n }\n\n currentCell.classList.toggle(COLUMN_RESIZING_CLASS);\n domContainer.classList.toggle(COLUMN_RESIZING_CLASS);\n // TODO: getState().freezeColumns should\n // give latest state after the action triggered from current feature only on above lines. Check this.\n nextFrozenColumns = getNextFrozenColumns(currentCell.dataset.colId!, getState().freezeColumns);\n\n return false;\n };\n\n return {\n onMouseDown\n };\n};\n\nexport default () => {\n const memoizedColumnResize = withMemoization(columnResizerProps);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const { freezeColumns, hiddenColumns, columnWidths } = featureProps.getState();\n featureProps\n .getRsStore()\n .setColumnResizerProps(\n memoizedColumnResize([featureProps], [freezeColumns, hiddenColumns, columnWidths])\n );\n };\n};\n"]}
1
+ {"version":3,"file":"resize.js","sourceRoot":"","sources":["../../../../../../../src/core/features/uIFeatures/beforeRender/columnSizing/resize.ts"],"names":[],"mappings":"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","sourcesContent":["import { isInstance } from '@pega/cosmos-react-core';\n\nimport type { State } from '../../../../../../types/State.types';\nimport { actionColumnResize, actionColumnAutoSize } from '../../../../actions/actions';\nimport type Column from '../../../../generators/ColumnGenerator';\nimport type View from '../../../../generators/ViewGenerator';\nimport { withMemoization } from '../../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../../featureFactory';\nimport { calculateFieldLeft } from '../freeze';\n\nexport const COLUMN_RESIZING_CLASS = 'column-resizing';\n\nexport function setColumnStyle(\n domContainer: View['domContainer'],\n style: string,\n columnId: number,\n value: number\n) {\n domContainer?.style?.setProperty(`--col-${style}-${columnId}`, `${value}px`);\n}\n\nconst getResizedColumnWidth = (\n column: Column,\n distanceDragged: number,\n currentCell: HTMLElement | null\n): number => {\n const renderedWidth = currentCell?.offsetWidth;\n // Use measured width when available; otherwise use configured/stored width.\n const measuredWidth = renderedWidth && renderedWidth > 0 ? renderedWidth : undefined;\n const currentWidth =\n measuredWidth ?? column.currentWidth ?? column.field.width ?? column.field.minWidth ?? 0;\n\n let width = currentWidth + distanceDragged;\n // TODO: confirm with designers if we want to limit the column sizing within the maxWidth(if defined on fieldDef). Currently only minWidth is getting honored.\n if (width < (column.field.minWidth ?? 0)) {\n width = column.field.minWidth ?? 0;\n }\n return width;\n};\n\nexport const getNextFrozenColumns = (\n columnId: string,\n freezeColumns: State['freezeColumns'] = []\n) => {\n const nextFrozenColumns = [];\n const freezeColIndex = freezeColumns.indexOf(columnId); // If current column freezed\n if (freezeColIndex > -1) {\n for (let i = freezeColIndex + 1; i < freezeColumns.length; i += 1) {\n nextFrozenColumns.push(freezeColumns[i]);\n }\n }\n return nextFrozenColumns;\n};\n\nexport const columnResizerProps = ([{ getState, getView, dispatch, browserContext }]: [\n BeforeRenderFeatureProps\n]) => {\n const { freezeColumns, hiddenColumns, columnWidths = {} } = getState();\n let column: Column | undefined;\n let startPosition = 0;\n let resized = false;\n let updatedWidth = 0;\n let currentCell: HTMLElement | null = null;\n let currentCellOccupiedWidthBeforeResize = 0;\n let nextFrozenColumns: string[] = [];\n const resizeDocument: Document = browserContext.document;\n\n const updateWidth = (distance: number) => {\n if (!column) return;\n updatedWidth = getResizedColumnWidth(\n { ...column, currentWidth: column.currentWidth } as Column,\n distance,\n currentCell\n );\n column = column.setProp('currentWidth', updatedWidth);\n setColumnStyle(getView().getDomContainer(), 'width', column.field.idHash!, updatedWidth);\n };\n\n /**\n * Update left positions to frozen columns or right of this column.\n */\n const updateLefts = () => {\n nextFrozenColumns.forEach(colId => {\n const left = calculateFieldLeft(\n colId,\n getView().columns,\n freezeColumns,\n hiddenColumns,\n column ? { ...columnWidths, [column.field.id]: updatedWidth } : columnWidths // injecting the resized width to current column\n );\n const nextFrozenColumn = getView().columns?.find(c => `${c.field.id}` === colId);\n setColumnStyle(getView().getDomContainer(), 'left', nextFrozenColumn!.field.idHash!, left);\n });\n };\n\n const resizeHandler = (e: MouseEvent) => {\n if (!currentCell || !column) return;\n e.preventDefault();\n\n const distance = e.clientX - startPosition;\n const parentContainer = getView().getVirtualizeElement('rootVirtualiser')?.getParentContainer();\n const clientWidth = parentContainer?.clientWidth ?? 0;\n const scrollWidth = parentContainer?.scrollWidth ?? 0;\n\n // Prevent reducing size for fillAvailableSpace column if the size reduction will introduce empty space in the table.\n const preventSizeReductionForFillAvailableSpaceColumn =\n column.field.fillAvailableSpace &&\n distance <= 0 &&\n currentCellOccupiedWidthBeforeResize <= (currentCell.offsetWidth ?? 0) &&\n clientWidth === scrollWidth;\n\n if (preventSizeReductionForFillAvailableSpaceColumn) {\n return;\n }\n\n if (distance !== 0) {\n updateWidth(distance);\n updateLefts();\n resized = true;\n }\n startPosition = e.clientX;\n };\n\n const resizeEndHandler = (e: MouseEvent) => {\n e.preventDefault();\n if (!currentCell || !column) return;\n\n resizeDocument.removeEventListener('mousemove', resizeHandler);\n resizeDocument.removeEventListener('mouseup', resizeEndHandler);\n if (resized) {\n dispatch(actionColumnResize({ [column.field.id]: updatedWidth }));\n resized = false;\n }\n currentCell.style.pointerEvents = 'auto';\n currentCell.classList.toggle(COLUMN_RESIZING_CLASS);\n getView().getDomContainer()?.classList.toggle(COLUMN_RESIZING_CLASS);\n // Reset the temporary body cursor override when resize interaction ends.\n resizeDocument.body?.style.setProperty('cursor', '');\n };\n\n const onMouseDown = (e: MouseEvent) => {\n if (!isInstance(e.target, HTMLElement)) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n const domContainer = getView().getDomContainer();\n if (!domContainer) return;\n\n resizeDocument.addEventListener('mousemove', resizeHandler);\n resizeDocument.addEventListener('mouseup', resizeEndHandler);\n\n currentCell = e.target.closest('.cell');\n if (!currentCell) return;\n currentCell.style.pointerEvents = 'none';\n\n column = getView().columns?.find(c => `${c.field.id}` === currentCell?.dataset.colId);\n\n if (!column) return;\n\n startPosition = e.clientX;\n currentCellOccupiedWidthBeforeResize = currentCell.offsetWidth ?? 0;\n\n if (e.detail >= 2 && column.field.resize) {\n dispatch(actionColumnAutoSize(column, domContainer, true));\n }\n\n currentCell.classList.toggle(COLUMN_RESIZING_CLASS);\n domContainer.classList.toggle(COLUMN_RESIZING_CLASS);\n // Keep resize cursor visible even when pointer moves outside the handle.\n resizeDocument.body?.style.setProperty('cursor', 'col-resize');\n // TODO: getState().freezeColumns should\n // give latest state after the action triggered from current feature only on above lines. Check this.\n nextFrozenColumns = getNextFrozenColumns(currentCell.dataset.colId!, getState().freezeColumns);\n };\n\n return { onMouseDown };\n};\n\nexport default () => {\n const memoizedColumnResize = withMemoization(columnResizerProps);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const { freezeColumns, visibleColumns, columnWidths } = featureProps.getState();\n featureProps\n .getRsStore()\n .setColumnResizerProps(\n memoizedColumnResize([featureProps], [freezeColumns, visibleColumns, columnWidths])\n );\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"columnSort.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnSort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AA2BrE;;;;;GAKG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAQE"}
1
+ {"version":3,"file":"columnSort.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnSort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AA2BrE;;;;;GAKG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAWE"}
@@ -30,7 +30,7 @@ export default () => {
30
30
  const memoizedUpdateGroupSort = withMemoization(updateGroupSort);
31
31
  return function execute(featureProps) {
32
32
  const state = featureProps.getState();
33
- memoizedUpdateSort([featureProps], [state.sortingOrder, state?.personalization?.active]);
33
+ memoizedUpdateSort([featureProps], [state.sortingOrder, state?.personalization?.active, state.visibleColumns]);
34
34
  memoizedUpdateGroupSort([featureProps], [state.sortingOrder]);
35
35
  };
36
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"columnSort.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnSort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,qDAAqD;AAErD,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAA2C,EAAE,EAAE;IACvF,MAAM,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC;IACzC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YACtB,MAAM,EAAE,CAAC,CAAC,IAAI;YACd,YAAY,EAAE,IAAI,EAAE,QAAQ;YAC5B,SAAS,EAAE,IAAI,EAAE,KAAK;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAA2C,EAAE,EAAE;IAC7F,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC;IACnC,qHAAqH;IACrH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,kBAAkB,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,uBAAuB,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IACjE,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,kBAAkB,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QACzF,uBAAuB,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAChE,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';\nimport { actionUpdateGroupingSort } from '../../../actions/actions';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nconst updateSort = ([{ getView, getState }]: [featureProps: BeforeRenderFeatureProps]) => {\n const { sortingOrder = [] } = getState();\n getView().columns?.forEach(column => {\n const sort = sortingOrder.find(s => s.columnId.toString() === `${column.field.id}`);\n column = column.setProp({\n sorted: !!sort,\n sortSequence: sort?.sequence,\n sortOrder: sort?.order\n });\n });\n};\n\nconst updateGroupSort = ([{ dispatch, getState }]: [featureProps: BeforeRenderFeatureProps]) => {\n const { groups = [] } = getState();\n // If the sorting order is changed for any of the columns, check and update the sort order of the groups accordingly.\n if (groups.length > 0) {\n dispatch(actionUpdateGroupingSort());\n }\n};\n\n/**\n * 1. Sets the sort properties({@link Column.sorted sorted}, {@link Column.sortSequence sortSequence}, {@link Column.sortOrder sortOrder}) for each column when any of the following properties are changed:\n * - {@link State.sortingOrder}\n * - `active` in {@link State.personalization}\n * 2. Updates the group sort order when {@link State.sortingOrder} is changed.\n */\nexport default () => {\n const memoizedUpdateSort = withMemoization(updateSort);\n const memoizedUpdateGroupSort = withMemoization(updateGroupSort);\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedUpdateSort([featureProps], [state.sortingOrder, state?.personalization?.active]);\n memoizedUpdateGroupSort([featureProps], [state.sortingOrder]);\n };\n};\n"]}
1
+ {"version":3,"file":"columnSort.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnSort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,qDAAqD;AAErD,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAA2C,EAAE,EAAE;IACvF,MAAM,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC;IACzC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YACtB,MAAM,EAAE,CAAC,CAAC,IAAI;YACd,YAAY,EAAE,IAAI,EAAE,QAAQ;YAC5B,SAAS,EAAE,IAAI,EAAE,KAAK;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAA2C,EAAE,EAAE;IAC7F,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC;IACnC,qHAAqH;IACrH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,kBAAkB,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,uBAAuB,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IACjE,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,kBAAkB,CAChB,CAAC,YAAY,CAAC,EACd,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAC3E,CAAC;QACF,uBAAuB,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAChE,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';\nimport { actionUpdateGroupingSort } from '../../../actions/actions';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nconst updateSort = ([{ getView, getState }]: [featureProps: BeforeRenderFeatureProps]) => {\n const { sortingOrder = [] } = getState();\n getView().columns?.forEach(column => {\n const sort = sortingOrder.find(s => s.columnId.toString() === `${column.field.id}`);\n column = column.setProp({\n sorted: !!sort,\n sortSequence: sort?.sequence,\n sortOrder: sort?.order\n });\n });\n};\n\nconst updateGroupSort = ([{ dispatch, getState }]: [featureProps: BeforeRenderFeatureProps]) => {\n const { groups = [] } = getState();\n // If the sorting order is changed for any of the columns, check and update the sort order of the groups accordingly.\n if (groups.length > 0) {\n dispatch(actionUpdateGroupingSort());\n }\n};\n\n/**\n * 1. Sets the sort properties({@link Column.sorted sorted}, {@link Column.sortSequence sortSequence}, {@link Column.sortOrder sortOrder}) for each column when any of the following properties are changed:\n * - {@link State.sortingOrder}\n * - `active` in {@link State.personalization}\n * 2. Updates the group sort order when {@link State.sortingOrder} is changed.\n */\nexport default () => {\n const memoizedUpdateSort = withMemoization(updateSort);\n const memoizedUpdateGroupSort = withMemoization(updateGroupSort);\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedUpdateSort(\n [featureProps],\n [state.sortingOrder, state?.personalization?.active, state.visibleColumns]\n );\n memoizedUpdateGroupSort([featureProps], [state.sortingOrder]);\n };\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import type { BeforeRenderFeatureProps } from '../../featureFactory';
2
2
  export declare const updateFieldDefs: ([{ getView, getState }]: [featureProps: BeforeRenderFeatureProps]) => void;
3
- /** Sets the {@link Column.style display} and {@link Column.hidden hidden} property of each column when any of the following properties are changed:
4
- * - {@link State.hiddenColumns}
3
+ /** Sets the {@link Column.style display} and {@link Column.hidden hidden} property of each column and updates the {@link View.enableGlobalSearch} flag, when any of the following properties are changed:
4
+ * - {@link State.visibleColumns}
5
5
  * - `active` {@link State.personalization}
6
6
  */
7
7
  declare const _default: () => (featureProps: BeforeRenderFeatureProps) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"columnToggle.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnToggle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAMrE,eAAO,MAAM,eAAe,GAAI,yBAAyB,CACvD,YAAY,EAAE,wBAAwB,CACvC,SAWA,CAAC;AAEF;;;GAGG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAOE"}
1
+ {"version":3,"file":"columnToggle.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnToggle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAOrE,eAAO,MAAM,eAAe,GAAI,yBAAyB,CACvD,YAAY,EAAE,wBAAwB,CACvC,SAiBA,CAAC;AAEF;;;GAGG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAUE"}
@@ -1,26 +1,31 @@
1
1
  import { withMemoization } from '../../../utils/util';
2
2
  /* eslint-enable @typescript-eslint/no-unused-vars */
3
3
  export const updateFieldDefs = ([{ getView, getState }]) => {
4
- const { hiddenColumns = [] } = getState();
4
+ const { visibleColumns } = getState();
5
+ let isAnyVisibleSearchableColumn = false;
5
6
  getView().columns?.forEach(column => {
6
7
  const style = { ...column.style };
7
- const hidden = hiddenColumns.includes(`${column.field.id}`);
8
+ const hidden = !visibleColumns?.includes(`${column.field.id}`);
9
+ if (!hidden && column.field.searchable && !isAnyVisibleSearchableColumn) {
10
+ isAnyVisibleSearchableColumn = true;
11
+ }
8
12
  style.display = hidden ? 'none' : 'unset';
9
13
  column = column.setProp({
10
14
  style,
11
15
  hidden
12
16
  });
13
17
  });
18
+ getView().setProp('enableGlobalSearch', isAnyVisibleSearchableColumn);
14
19
  };
15
- /** Sets the {@link Column.style display} and {@link Column.hidden hidden} property of each column when any of the following properties are changed:
16
- * - {@link State.hiddenColumns}
20
+ /** Sets the {@link Column.style display} and {@link Column.hidden hidden} property of each column and updates the {@link View.enableGlobalSearch} flag, when any of the following properties are changed:
21
+ * - {@link State.visibleColumns}
17
22
  * - `active` {@link State.personalization}
18
23
  */
19
24
  export default () => {
20
25
  const memoizedToggleColumns = withMemoization(updateFieldDefs);
21
26
  return function execute(featureProps) {
22
27
  const state = featureProps.getState();
23
- memoizedToggleColumns([featureProps], [state?.hiddenColumns, state?.personalization?.active]);
28
+ memoizedToggleColumns([featureProps], [state?.personalization?.active, state.groups, state.visibleColumns]);
24
29
  };
25
30
  };
26
31
  //# sourceMappingURL=columnToggle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnToggle.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnToggle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,qDAAqD;AAErD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAErD,EAAE,EAAE;IACH,MAAM,EAAE,aAAa,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC1C,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,MAAM,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YACtB,KAAK;YACL,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;GAGG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,qBAAqB,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IAE/D,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,qBAAqB,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IAChG,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\nexport const updateFieldDefs = ([{ getView, getState }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const { hiddenColumns = [] } = getState();\n getView().columns?.forEach(column => {\n const style = { ...column.style };\n const hidden = hiddenColumns.includes(`${column.field.id}`);\n style.display = hidden ? 'none' : 'unset';\n column = column.setProp({\n style,\n hidden\n });\n });\n};\n\n/** Sets the {@link Column.style display} and {@link Column.hidden hidden} property of each column when any of the following properties are changed:\n * - {@link State.hiddenColumns}\n * - `active` {@link State.personalization}\n */\nexport default () => {\n const memoizedToggleColumns = withMemoization(updateFieldDefs);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedToggleColumns([featureProps], [state?.hiddenColumns, state?.personalization?.active]);\n };\n};\n"]}
1
+ {"version":3,"file":"columnToggle.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnToggle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAMtD,qDAAqD;AAErD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAErD,EAAE,EAAE;IACH,MAAM,EAAE,cAAc,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtC,IAAI,4BAA4B,GAAG,KAAK,CAAC;IACzC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,MAAM,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACxE,4BAA4B,GAAG,IAAI,CAAC;QACtC,CAAC;QACD,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YACtB,KAAK;YACL,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAE,4BAA4B,CAAC,CAAC;AACxE,CAAC,CAAC;AAEF;;;GAGG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,qBAAqB,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IAE/D,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,qBAAqB,CACnB,CAAC,YAAY,CAAC,EACd,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CACrE,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 View from '../../../generators/ViewGenerator';\nimport type { State } from '../../../../../types/State.types';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nexport const updateFieldDefs = ([{ getView, getState }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const { visibleColumns } = getState();\n let isAnyVisibleSearchableColumn = false;\n getView().columns?.forEach(column => {\n const style = { ...column.style };\n const hidden = !visibleColumns?.includes(`${column.field.id}`);\n if (!hidden && column.field.searchable && !isAnyVisibleSearchableColumn) {\n isAnyVisibleSearchableColumn = true;\n }\n style.display = hidden ? 'none' : 'unset';\n column = column.setProp({\n style,\n hidden\n });\n });\n\n getView().setProp('enableGlobalSearch', isAnyVisibleSearchableColumn);\n};\n\n/** Sets the {@link Column.style display} and {@link Column.hidden hidden} property of each column and updates the {@link View.enableGlobalSearch} flag, when any of the following properties are changed:\n * - {@link State.visibleColumns}\n * - `active` {@link State.personalization}\n */\nexport default () => {\n const memoizedToggleColumns = withMemoization(updateFieldDefs);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedToggleColumns(\n [featureProps],\n [state?.personalization?.active, state.groups, state.visibleColumns]\n );\n };\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import type { BeforeRenderFeatureProps } from '../../featureFactory';
2
2
  /**
3
3
  * Sets the {@link Column.isFirstVisualColumn isFirstVisualColumn}, {@link Column.isFirstDataColumn isFirstDataColumn}, {@link Column.isLastColumn isLastColumn}, {@link Column.order order} properties of each column when any of the following properties are changed:
4
- * - {@link State.hiddenColumns}
4
+ * - {@link State.visibleColumns}
5
5
  * - {@link State.freezeColumns}
6
6
  * - {@link State.colOrder}
7
7
  * - `active` in {@link State.personalization}
@@ -6,12 +6,12 @@ import { withMemoization } from '../../../utils/util';
6
6
  import { rowActionColumnMeta, rowSelectColumnMeta, rowDragDropColumnMeta, rowErrorColumnMeta } from '../../../constants';
7
7
  /* eslint-enable @typescript-eslint/no-unused-vars */
8
8
  const getVisualColumnOrder = ([{ getView, getState }]) => {
9
- const { hiddenColumns } = getState();
9
+ const { visibleColumns } = getState();
10
10
  const visualColumnOrder = getView()
11
11
  .columns?.map(column => ({ id: column.field.id, order: column.style?.order })) // This map also ensures that we are not sorting fieldDefs in place mutative
12
12
  .sort((a, b) => a.order - b.order) // sort on order... Order should be calculated in columnOrder before this feature
13
13
  .filter(column => {
14
- return !hiddenColumns?.includes(column.id);
14
+ return visibleColumns?.includes(column.id);
15
15
  })
16
16
  .map(column => column.id);
17
17
  const firstVisualColumnId = visualColumnOrder?.[0];
@@ -35,7 +35,7 @@ const getVisualColumnOrder = ([{ getView, getState }]) => {
35
35
  };
36
36
  /**
37
37
  * Sets the {@link Column.isFirstVisualColumn isFirstVisualColumn}, {@link Column.isFirstDataColumn isFirstDataColumn}, {@link Column.isLastColumn isLastColumn}, {@link Column.order order} properties of each column when any of the following properties are changed:
38
- * - {@link State.hiddenColumns}
38
+ * - {@link State.visibleColumns}
39
39
  * - {@link State.freezeColumns}
40
40
  * - {@link State.colOrder}
41
41
  * - `active` in {@link State.personalization}
@@ -46,7 +46,7 @@ export default () => {
46
46
  return function execute(featureProps) {
47
47
  const state = featureProps.getState();
48
48
  memoizedGetVisualColumnOrder([featureProps], [
49
- state.hiddenColumns,
49
+ state.visibleColumns,
50
50
  state.freezeColumns,
51
51
  state.colOrder,
52
52
  state?.personalization?.active,
@@ -1 +1 @@
1
- {"version":3,"file":"columnVisualOrder.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnVisualOrder.ts"],"names":[],"mappings":"AAAA;;;EAGE;AACF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAM5B,qDAAqD;AAErD,MAAM,oBAAoB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAEnD,EAAE,EAAE;IACH,MAAM,EAAE,aAAa,EAAE,GAAG,QAAQ,EAAE,CAAC;IACrC,MAAM,iBAAiB,GAAG,OAAO,EAAE;SAChC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,4EAA4E;SAC1J,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,iFAAiF;SACnH,MAAM,CAAC,MAAM,CAAC,EAAE;QACf,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;SACD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE5B,MAAM,mBAAmB,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnD,MAAM,iBAAiB,GAAG,iBAAiB,EAAE,IAAI,CAC/C,CAAC,CAAC,EAAE,CACF,CAAC;QACC,mBAAmB,CAAC,KAAK,CAAC,EAAE;QAC5B,qBAAqB,CAAC,KAAK,CAAC,EAAE;QAC9B,kBAAkB,CAAC,KAAK,CAAC,EAAE;KAC5B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAChB,CAAC;IACF,IAAI,YAAY,GAAG,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrE,IAAI,YAAY,KAAK,mBAAmB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAClD,YAAY,GAAG,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YACtB,mBAAmB,EAAE,mBAAmB,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;YAC5D,iBAAiB,EAAE,iBAAiB,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;YACxD,YAAY,EAAE,YAAY,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;YAC9C,KAAK,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;SAChE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AACF;;;;;;;GAOG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,4BAA4B,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAE3E,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,4BAA4B,CAC1B,CAAC,YAAY,CAAC,EACd;YACE,KAAK,CAAC,aAAa;YACnB,KAAK,CAAC,aAAa;YACnB,KAAK,CAAC,QAAQ;YACd,KAAK,EAAE,eAAe,EAAE,MAAM;YAC9B,YAAY,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM;SACvC,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/*\nDo not use VisualColumnOrder to loop for creating cells in component so that dom manipulations won't happen\nBut just use actual fieldDefs order and then flex order for creating cells\n*/\nimport { withMemoization } from '../../../utils/util';\nimport {\n rowActionColumnMeta,\n rowSelectColumnMeta,\n rowDragDropColumnMeta,\n rowErrorColumnMeta\n} from '../../../constants';\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 getVisualColumnOrder = ([{ getView, getState }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const { hiddenColumns } = getState();\n const visualColumnOrder = getView()\n .columns?.map(column => ({ id: column.field.id, order: column.style?.order })) // This map also ensures that we are not sorting fieldDefs in place mutative\n .sort((a, b) => a.order - b.order) // sort on order... Order should be calculated in columnOrder before this feature\n .filter(column => {\n return !hiddenColumns?.includes(column.id);\n })\n .map(column => column.id);\n\n const firstVisualColumnId = visualColumnOrder?.[0];\n\n const firstDataColumnId = visualColumnOrder?.find(\n c =>\n ![\n rowSelectColumnMeta.field.id,\n rowDragDropColumnMeta.field.id,\n rowErrorColumnMeta.field.id\n ].includes(c)\n );\n let lastColumnId = visualColumnOrder?.[visualColumnOrder.length - 1];\n if (lastColumnId === rowActionColumnMeta.field.id) {\n lastColumnId = visualColumnOrder?.[visualColumnOrder.length - 2];\n }\n\n getView().columns?.forEach(column => {\n column = column.setProp({\n isFirstVisualColumn: firstVisualColumnId === column.field.id,\n isFirstDataColumn: firstDataColumnId === column.field.id,\n isLastColumn: lastColumnId === column.field.id,\n order: visualColumnOrder?.findIndex(o => o === column.field.id)\n });\n });\n};\n/**\n * Sets the {@link Column.isFirstVisualColumn isFirstVisualColumn}, {@link Column.isFirstDataColumn isFirstDataColumn}, {@link Column.isLastColumn isLastColumn}, {@link Column.order order} properties of each column when any of the following properties are changed:\n * - {@link State.hiddenColumns}\n * - {@link State.freezeColumns}\n * - {@link State.colOrder}\n * - `active` in {@link State.personalization}\n * - `size` of {@link View.columns columns}\n */\nexport default () => {\n const memoizedGetVisualColumnOrder = withMemoization(getVisualColumnOrder);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedGetVisualColumnOrder(\n [featureProps],\n [\n state.hiddenColumns,\n state.freezeColumns,\n state.colOrder,\n state?.personalization?.active,\n featureProps.getView().columns?.length\n ]\n );\n };\n};\n"]}
1
+ {"version":3,"file":"columnVisualOrder.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnVisualOrder.ts"],"names":[],"mappings":"AAAA;;;EAGE;AACF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAM5B,qDAAqD;AAErD,MAAM,oBAAoB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAEnD,EAAE,EAAE;IACH,MAAM,EAAE,cAAc,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtC,MAAM,iBAAiB,GAAG,OAAO,EAAE;SAChC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,4EAA4E;SAC1J,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,iFAAiF;SACnH,MAAM,CAAC,MAAM,CAAC,EAAE;QACf,OAAO,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;SACD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE5B,MAAM,mBAAmB,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnD,MAAM,iBAAiB,GAAG,iBAAiB,EAAE,IAAI,CAC/C,CAAC,CAAC,EAAE,CACF,CAAC;QACC,mBAAmB,CAAC,KAAK,CAAC,EAAE;QAC5B,qBAAqB,CAAC,KAAK,CAAC,EAAE;QAC9B,kBAAkB,CAAC,KAAK,CAAC,EAAE;KAC5B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAChB,CAAC;IACF,IAAI,YAAY,GAAG,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrE,IAAI,YAAY,KAAK,mBAAmB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAClD,YAAY,GAAG,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YACtB,mBAAmB,EAAE,mBAAmB,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;YAC5D,iBAAiB,EAAE,iBAAiB,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;YACxD,YAAY,EAAE,YAAY,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;YAC9C,KAAK,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;SAChE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AACF;;;;;;;GAOG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,4BAA4B,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAE3E,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,4BAA4B,CAC1B,CAAC,YAAY,CAAC,EACd;YACE,KAAK,CAAC,cAAc;YACpB,KAAK,CAAC,aAAa;YACnB,KAAK,CAAC,QAAQ;YACd,KAAK,EAAE,eAAe,EAAE,MAAM;YAC9B,YAAY,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM;SACvC,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/*\nDo not use VisualColumnOrder to loop for creating cells in component so that dom manipulations won't happen\nBut just use actual fieldDefs order and then flex order for creating cells\n*/\nimport { withMemoization } from '../../../utils/util';\nimport {\n rowActionColumnMeta,\n rowSelectColumnMeta,\n rowDragDropColumnMeta,\n rowErrorColumnMeta\n} from '../../../constants';\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 getVisualColumnOrder = ([{ getView, getState }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const { visibleColumns } = getState();\n const visualColumnOrder = getView()\n .columns?.map(column => ({ id: column.field.id, order: column.style?.order })) // This map also ensures that we are not sorting fieldDefs in place mutative\n .sort((a, b) => a.order - b.order) // sort on order... Order should be calculated in columnOrder before this feature\n .filter(column => {\n return visibleColumns?.includes(column.id);\n })\n .map(column => column.id);\n\n const firstVisualColumnId = visualColumnOrder?.[0];\n\n const firstDataColumnId = visualColumnOrder?.find(\n c =>\n ![\n rowSelectColumnMeta.field.id,\n rowDragDropColumnMeta.field.id,\n rowErrorColumnMeta.field.id\n ].includes(c)\n );\n let lastColumnId = visualColumnOrder?.[visualColumnOrder.length - 1];\n if (lastColumnId === rowActionColumnMeta.field.id) {\n lastColumnId = visualColumnOrder?.[visualColumnOrder.length - 2];\n }\n\n getView().columns?.forEach(column => {\n column = column.setProp({\n isFirstVisualColumn: firstVisualColumnId === column.field.id,\n isFirstDataColumn: firstDataColumnId === column.field.id,\n isLastColumn: lastColumnId === column.field.id,\n order: visualColumnOrder?.findIndex(o => o === column.field.id)\n });\n });\n};\n/**\n * Sets the {@link Column.isFirstVisualColumn isFirstVisualColumn}, {@link Column.isFirstDataColumn isFirstDataColumn}, {@link Column.isLastColumn isLastColumn}, {@link Column.order order} properties of each column when any of the following properties are changed:\n * - {@link State.visibleColumns}\n * - {@link State.freezeColumns}\n * - {@link State.colOrder}\n * - `active` in {@link State.personalization}\n * - `size` of {@link View.columns columns}\n */\nexport default () => {\n const memoizedGetVisualColumnOrder = withMemoization(getVisualColumnOrder);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedGetVisualColumnOrder(\n [featureProps],\n [\n state.visibleColumns,\n state.freezeColumns,\n state.colOrder,\n state?.personalization?.active,\n featureProps.getView().columns?.length\n ]\n );\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"conditionalStyleFormat.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/conditionalStyleFormat.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AA+FrE;;;;GAIG;+BAMuB,cAAc,wBAAwB;AALhE,wBAUE"}
1
+ {"version":3,"file":"conditionalStyleFormat.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/conditionalStyleFormat.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AA+FrE;;;;GAIG;+BAMuB,cAAc,wBAAwB;AALhE,wBAcE"}
@@ -7,16 +7,16 @@ const getConditionalStyleFormatsForField = (stateFormats, field) => {
7
7
  .map(format => pickProperties(format, ['condition', 'styleFormatId']));
8
8
  return fieldConditionalStyleFormats.length ? fieldConditionalStyleFormats : undefined;
9
9
  };
10
- const areAdditionalHiddenColumnsReferenced = (column, newConditionalStyleFormats, hiddenColumns) => {
10
+ const areAdditionalHiddenColumnsReferenced = (column, newConditionalStyleFormats, visibleColumns) => {
11
11
  const { field, conditionalStyleFormats: oldConditionalStyleFormats } = column;
12
- if (hiddenColumns?.includes(field.name)) {
12
+ if (!visibleColumns?.includes(field.name)) {
13
13
  return false;
14
14
  }
15
15
  const currentFormatHiddenColumns = newConditionalStyleFormats
16
- ?.flatMap(format => getHiddenColumnsReferredInCondition(format.condition, hiddenColumns))
16
+ ?.flatMap(format => getHiddenColumnsReferredInCondition(format.condition, visibleColumns))
17
17
  .sort() ?? [];
18
18
  const oldFormatHiddenColumns = oldConditionalStyleFormats
19
- ?.flatMap(format => getHiddenColumnsReferredInCondition(format.condition, hiddenColumns))
19
+ ?.flatMap(format => getHiddenColumnsReferredInCondition(format.condition, visibleColumns))
20
20
  .sort() ?? [];
21
21
  // New conditional formats refers hidden columns and it is not same as previous conditional formats.
22
22
  return (currentFormatHiddenColumns.length > 0 &&
@@ -24,7 +24,7 @@ const areAdditionalHiddenColumnsReferenced = (column, newConditionalStyleFormats
24
24
  };
25
25
  const conditionalStyleFormat = ([featureProps]) => {
26
26
  const { getView, getState } = featureProps;
27
- const { conditionalStyleFormats: conditionalStyleFormatsFromState, hiddenColumns } = getState();
27
+ const { conditionalStyleFormats: conditionalStyleFormatsFromState, visibleColumns } = getState();
28
28
  if (!conditionalStyleFormatsFromState)
29
29
  return;
30
30
  let triggerRefresh = false;
@@ -38,7 +38,7 @@ const conditionalStyleFormat = ([featureProps]) => {
38
38
  column.setProp('conditionalStyleFormats', conditionalStyleFormats);
39
39
  if (!triggerRefresh) {
40
40
  // Conditional formats may reference hidden columns, whose data may not have been fetched.
41
- triggerRefresh = areAdditionalHiddenColumnsReferenced(column, conditionalStyleFormats, hiddenColumns);
41
+ triggerRefresh = areAdditionalHiddenColumnsReferenced(column, conditionalStyleFormats, visibleColumns);
42
42
  }
43
43
  });
44
44
  // Trigger a refresh of data if a conditional format refers any hidden column.
@@ -63,8 +63,9 @@ export default () => {
63
63
  const memoizedConditionalFormat = withMemoization(conditionalStyleFormat);
64
64
  const memoizedRefreshConditionalStyleFormatColumns = withMemoization(refreshConditionalStyleFormatColumns);
65
65
  return function execute(featureProps) {
66
- const { getState, getRsProps } = featureProps;
67
- memoizedConditionalFormat([featureProps], [getState().conditionalStyleFormats]);
66
+ const { getRsProps } = featureProps;
67
+ const state = featureProps.getState();
68
+ memoizedConditionalFormat([featureProps], [state.conditionalStyleFormats, state.visibleColumns]);
68
69
  memoizedRefreshConditionalStyleFormatColumns([featureProps], [getRsProps().styleFormats]);
69
70
  };
70
71
  };
@@ -1 +1 @@
1
- {"version":3,"file":"conditionalStyleFormat.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/conditionalStyleFormat.ts"],"names":[],"mappings":"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","sourcesContent":["import type { OmitStrict } from '@pega/cosmos-react-core';\n\nimport { deepEqual, pickProperties, withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\nimport type { State } from '../../../../../types/State.types';\nimport type Column from '../../../generators/ColumnGenerator';\nimport type { ConditionalStyleFormat, FieldDef } from '../../../../../types/Meta.types';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type View from '../../../generators/ViewGenerator';\n/* eslint-enable @typescript-eslint/no-unused-vars */\nimport { getHiddenColumnsReferredInCondition } from '../../../utils/condition-utils';\n\nconst getConditionalStyleFormatsForField = (\n stateFormats: ConditionalStyleFormat[],\n field: FieldDef\n): OmitStrict<ConditionalStyleFormat, 'fieldName'>[] | undefined => {\n const fieldConditionalStyleFormats = stateFormats\n .filter(format => format.fieldName === field.name)\n .map(format => pickProperties(format, ['condition', 'styleFormatId'])!);\n\n return fieldConditionalStyleFormats.length ? fieldConditionalStyleFormats : undefined;\n};\n\nconst areAdditionalHiddenColumnsReferenced = (\n column: Column,\n newConditionalStyleFormats: OmitStrict<ConditionalStyleFormat, 'fieldName'>[] | undefined,\n hiddenColumns: State['hiddenColumns']\n): boolean => {\n const { field, conditionalStyleFormats: oldConditionalStyleFormats } = column;\n if (hiddenColumns?.includes(field.name)) {\n return false;\n }\n\n const currentFormatHiddenColumns =\n newConditionalStyleFormats\n ?.flatMap(format => getHiddenColumnsReferredInCondition(format.condition, hiddenColumns))\n .sort() ?? [];\n const oldFormatHiddenColumns =\n oldConditionalStyleFormats\n ?.flatMap(format => getHiddenColumnsReferredInCondition(format.condition, hiddenColumns))\n .sort() ?? [];\n\n // New conditional formats refers hidden columns and it is not same as previous conditional formats.\n return (\n currentFormatHiddenColumns.length > 0 &&\n !deepEqual(currentFormatHiddenColumns, oldFormatHiddenColumns)\n );\n};\n\nconst conditionalStyleFormat = ([featureProps]: [featureProps: BeforeRenderFeatureProps]) => {\n const { getView, getState } = featureProps;\n const { conditionalStyleFormats: conditionalStyleFormatsFromState, hiddenColumns } = getState();\n\n if (!conditionalStyleFormatsFromState) return;\n\n let triggerRefresh = false;\n\n // Set conditional style formats to column(aka Field).\n getView().columns?.forEach(column => {\n const { conditionalStyleFormats: oldConditionalStyleFormats, field } = column;\n const conditionalStyleFormats = getConditionalStyleFormatsForField(\n conditionalStyleFormatsFromState,\n field\n );\n\n if (deepEqual(oldConditionalStyleFormats, conditionalStyleFormats)) {\n return;\n }\n\n column.setProp('conditionalStyleFormats', conditionalStyleFormats);\n\n if (!triggerRefresh) {\n // Conditional formats may reference hidden columns, whose data may not have been fetched.\n triggerRefresh = areAdditionalHiddenColumnsReferenced(\n column,\n conditionalStyleFormats,\n hiddenColumns\n );\n }\n });\n\n // Trigger a refresh of data if a conditional format refers any hidden column.\n if (triggerRefresh) {\n getView().type.forceRefresh();\n }\n};\n\nconst refreshConditionalStyleFormatColumns = ([featureProps]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const { getView } = featureProps;\n getView().columns?.forEach(column => {\n if (column.conditionalStyleFormats?.length) {\n column.setProp('refresh', Math.random());\n }\n });\n};\n\n/**\n * Sets the {@link Column.conditionalStyleFormats conditionalStyleFormats} to respective generator objects when any of the following properties are changed:\n * - {@link State.conditionalStyleFormats}\n * - {@link View.meta}\n */\nexport default () => {\n const memoizedConditionalFormat = withMemoization(conditionalStyleFormat);\n const memoizedRefreshConditionalStyleFormatColumns = withMemoization(\n refreshConditionalStyleFormatColumns\n );\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const { getState, getRsProps } = featureProps;\n memoizedConditionalFormat([featureProps], [getState().conditionalStyleFormats]);\n memoizedRefreshConditionalStyleFormatColumns([featureProps], [getRsProps().styleFormats]);\n };\n};\n"]}
1
+ {"version":3,"file":"conditionalStyleFormat.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/conditionalStyleFormat.ts"],"names":[],"mappings":"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","sourcesContent":["import type { OmitStrict } from '@pega/cosmos-react-core';\n\nimport { deepEqual, pickProperties, withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\nimport type { State } from '../../../../../types/State.types';\nimport type Column from '../../../generators/ColumnGenerator';\nimport type { ConditionalStyleFormat, FieldDef } from '../../../../../types/Meta.types';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type View from '../../../generators/ViewGenerator';\n/* eslint-enable @typescript-eslint/no-unused-vars */\nimport { getHiddenColumnsReferredInCondition } from '../../../utils/condition-utils';\n\nconst getConditionalStyleFormatsForField = (\n stateFormats: ConditionalStyleFormat[],\n field: FieldDef\n): OmitStrict<ConditionalStyleFormat, 'fieldName'>[] | undefined => {\n const fieldConditionalStyleFormats = stateFormats\n .filter(format => format.fieldName === field.name)\n .map(format => pickProperties(format, ['condition', 'styleFormatId'])!);\n\n return fieldConditionalStyleFormats.length ? fieldConditionalStyleFormats : undefined;\n};\n\nconst areAdditionalHiddenColumnsReferenced = (\n column: Column,\n newConditionalStyleFormats: OmitStrict<ConditionalStyleFormat, 'fieldName'>[] | undefined,\n visibleColumns: State['visibleColumns']\n): boolean => {\n const { field, conditionalStyleFormats: oldConditionalStyleFormats } = column;\n if (!visibleColumns?.includes(field.name)) {\n return false;\n }\n\n const currentFormatHiddenColumns =\n newConditionalStyleFormats\n ?.flatMap(format => getHiddenColumnsReferredInCondition(format.condition, visibleColumns))\n .sort() ?? [];\n const oldFormatHiddenColumns =\n oldConditionalStyleFormats\n ?.flatMap(format => getHiddenColumnsReferredInCondition(format.condition, visibleColumns))\n .sort() ?? [];\n\n // New conditional formats refers hidden columns and it is not same as previous conditional formats.\n return (\n currentFormatHiddenColumns.length > 0 &&\n !deepEqual(currentFormatHiddenColumns, oldFormatHiddenColumns)\n );\n};\n\nconst conditionalStyleFormat = ([featureProps]: [featureProps: BeforeRenderFeatureProps]) => {\n const { getView, getState } = featureProps;\n const { conditionalStyleFormats: conditionalStyleFormatsFromState, visibleColumns } = getState();\n\n if (!conditionalStyleFormatsFromState) return;\n\n let triggerRefresh = false;\n\n // Set conditional style formats to column(aka Field).\n getView().columns?.forEach(column => {\n const { conditionalStyleFormats: oldConditionalStyleFormats, field } = column;\n const conditionalStyleFormats = getConditionalStyleFormatsForField(\n conditionalStyleFormatsFromState,\n field\n );\n\n if (deepEqual(oldConditionalStyleFormats, conditionalStyleFormats)) {\n return;\n }\n\n column.setProp('conditionalStyleFormats', conditionalStyleFormats);\n\n if (!triggerRefresh) {\n // Conditional formats may reference hidden columns, whose data may not have been fetched.\n triggerRefresh = areAdditionalHiddenColumnsReferenced(\n column,\n conditionalStyleFormats,\n visibleColumns\n );\n }\n });\n\n // Trigger a refresh of data if a conditional format refers any hidden column.\n if (triggerRefresh) {\n getView().type.forceRefresh();\n }\n};\n\nconst refreshConditionalStyleFormatColumns = ([featureProps]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const { getView } = featureProps;\n getView().columns?.forEach(column => {\n if (column.conditionalStyleFormats?.length) {\n column.setProp('refresh', Math.random());\n }\n });\n};\n\n/**\n * Sets the {@link Column.conditionalStyleFormats conditionalStyleFormats} to respective generator objects when any of the following properties are changed:\n * - {@link State.conditionalStyleFormats}\n * - {@link View.meta}\n */\nexport default () => {\n const memoizedConditionalFormat = withMemoization(conditionalStyleFormat);\n const memoizedRefreshConditionalStyleFormatColumns = withMemoization(\n refreshConditionalStyleFormatColumns\n );\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const { getRsProps } = featureProps;\n const state = featureProps.getState();\n memoizedConditionalFormat(\n [featureProps],\n [state.conditionalStyleFormats, state.visibleColumns]\n );\n memoizedRefreshConditionalStyleFormatColumns([featureProps], [getRsProps().styleFormats]);\n };\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { BeforeRenderFeatureProps } from '../../featureFactory';
2
2
  /**
3
- * Adds the custom column in current set of{@link View.columns columns} and updates the {@link State.colOrder}, {@link State.hiddenColumns} with {@link State.customFields customFields} information when following properties are changed:
3
+ * Adds the custom column in current set of{@link View.columns columns} and updates the {@link State.colOrder}, {@link State.visibleColumns} with {@link State.customFields customFields} information when following properties are changed:
4
4
  * - {@link State.customFields}
5
5
  * - `active` in {@link State.personalization}
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"customColumn.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/customColumn.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AA2ErE;;;;GAIG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAUE"}
1
+ {"version":3,"file":"customColumn.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/customColumn.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AA4FrE;;;;GAIG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAUE"}