@pega/lists-core 9.0.0-build.2.9 → 9.0.0-build.20.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 (169) hide show
  1. package/lib/index.d.ts +2 -2
  2. package/lib/index.d.ts.map +1 -1
  3. package/lib/index.js +2 -2
  4. package/lib/index.js.map +1 -1
  5. package/lib/src/core/StateResolver.d.ts.map +1 -1
  6. package/lib/src/core/StateResolver.js +6 -2
  7. package/lib/src/core/StateResolver.js.map +1 -1
  8. package/lib/src/core/a11y/BaseA11y.d.ts +11 -0
  9. package/lib/src/core/a11y/BaseA11y.d.ts.map +1 -1
  10. package/lib/src/core/a11y/BaseA11y.js +17 -0
  11. package/lib/src/core/a11y/BaseA11y.js.map +1 -1
  12. package/lib/src/core/actions/actionConstants.d.ts +1 -3
  13. package/lib/src/core/actions/actionConstants.d.ts.map +1 -1
  14. package/lib/src/core/actions/actionConstants.js +1 -3
  15. package/lib/src/core/actions/actionConstants.js.map +1 -1
  16. package/lib/src/core/actions/actions.d.ts +6 -18
  17. package/lib/src/core/actions/actions.d.ts.map +1 -1
  18. package/lib/src/core/actions/actions.js +7 -25
  19. package/lib/src/core/actions/actions.js.map +1 -1
  20. package/lib/src/core/actions/actions.types.d.ts +8 -17
  21. package/lib/src/core/actions/actions.types.d.ts.map +1 -1
  22. package/lib/src/core/actions/actions.types.js.map +1 -1
  23. package/lib/src/core/config/config.d.ts.map +1 -1
  24. package/lib/src/core/config/config.js +2 -1
  25. package/lib/src/core/config/config.js.map +1 -1
  26. package/lib/src/core/constants.d.ts +11 -101
  27. package/lib/src/core/constants.d.ts.map +1 -1
  28. package/lib/src/core/constants.js +8 -8
  29. package/lib/src/core/constants.js.map +1 -1
  30. package/lib/src/core/defaultTranslations.d.ts +6 -1
  31. package/lib/src/core/defaultTranslations.d.ts.map +1 -1
  32. package/lib/src/core/defaultTranslations.js +6 -1
  33. package/lib/src/core/defaultTranslations.js.map +1 -1
  34. package/lib/src/core/features/featureFactory.d.ts +1 -1
  35. package/lib/src/core/features/featureFactory.d.ts.map +1 -1
  36. package/lib/src/core/features/featureFactory.js +0 -2
  37. package/lib/src/core/features/featureFactory.js.map +1 -1
  38. package/lib/src/core/features/uIFeatures/afterRender/animation.d.ts.map +1 -1
  39. package/lib/src/core/features/uIFeatures/afterRender/animation.js +6 -0
  40. package/lib/src/core/features/uIFeatures/afterRender/animation.js.map +1 -1
  41. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/autoSize.d.ts +2 -16
  42. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/autoSize.d.ts.map +1 -1
  43. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/autoSize.js +45 -81
  44. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/autoSize.js.map +1 -1
  45. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/index.d.ts.map +1 -1
  46. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/index.js +13 -1
  47. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/index.js.map +1 -1
  48. package/lib/src/core/features/uIFeatures/beforeRender/aggregation.d.ts +1 -0
  49. package/lib/src/core/features/uIFeatures/beforeRender/aggregation.d.ts.map +1 -1
  50. package/lib/src/core/features/uIFeatures/beforeRender/aggregation.js +3 -1
  51. package/lib/src/core/features/uIFeatures/beforeRender/aggregation.js.map +1 -1
  52. package/lib/src/core/features/uIFeatures/beforeRender/busyIndicator.d.ts +1 -0
  53. package/lib/src/core/features/uIFeatures/beforeRender/busyIndicator.d.ts.map +1 -1
  54. package/lib/src/core/features/uIFeatures/beforeRender/busyIndicator.js +3 -1
  55. package/lib/src/core/features/uIFeatures/beforeRender/busyIndicator.js.map +1 -1
  56. package/lib/src/core/features/uIFeatures/beforeRender/columnFormatter.d.ts.map +1 -1
  57. package/lib/src/core/features/uIFeatures/beforeRender/columnFormatter.js +5 -4
  58. package/lib/src/core/features/uIFeatures/beforeRender/columnFormatter.js.map +1 -1
  59. package/lib/src/core/features/uIFeatures/beforeRender/columnReOrder.d.ts.map +1 -1
  60. package/lib/src/core/features/uIFeatures/beforeRender/columnReOrder.js +2 -3
  61. package/lib/src/core/features/uIFeatures/beforeRender/columnReOrder.js.map +1 -1
  62. package/lib/src/core/features/uIFeatures/beforeRender/columnSizing/resize.d.ts +2 -4
  63. package/lib/src/core/features/uIFeatures/beforeRender/columnSizing/resize.d.ts.map +1 -1
  64. package/lib/src/core/features/uIFeatures/beforeRender/columnSizing/resize.js +47 -29
  65. package/lib/src/core/features/uIFeatures/beforeRender/columnSizing/resize.js.map +1 -1
  66. package/lib/src/core/features/uIFeatures/beforeRender/columnToggle.d.ts +1 -1
  67. package/lib/src/core/features/uIFeatures/beforeRender/columnToggle.d.ts.map +1 -1
  68. package/lib/src/core/features/uIFeatures/beforeRender/columnToggle.js +6 -1
  69. package/lib/src/core/features/uIFeatures/beforeRender/columnToggle.js.map +1 -1
  70. package/lib/src/core/features/uIFeatures/beforeRender/grouping.d.ts.map +1 -1
  71. package/lib/src/core/features/uIFeatures/beforeRender/grouping.js +28 -30
  72. package/lib/src/core/features/uIFeatures/beforeRender/grouping.js.map +1 -1
  73. package/lib/src/core/features/uIFeatures/beforeRender/prepareColumns.d.ts +2 -0
  74. package/lib/src/core/features/uIFeatures/beforeRender/prepareColumns.d.ts.map +1 -1
  75. package/lib/src/core/features/uIFeatures/beforeRender/prepareColumns.js +32 -5
  76. package/lib/src/core/features/uIFeatures/beforeRender/prepareColumns.js.map +1 -1
  77. package/lib/src/core/features/uIFeatures/beforeRender/rowDragDrop.d.ts.map +1 -1
  78. package/lib/src/core/features/uIFeatures/beforeRender/rowDragDrop.js +11 -3
  79. package/lib/src/core/features/uIFeatures/beforeRender/rowDragDrop.js.map +1 -1
  80. package/lib/src/core/features/uIFeatures/beforeRender/rowHeight.d.ts.map +1 -1
  81. package/lib/src/core/features/uIFeatures/beforeRender/rowHeight.js +4 -0
  82. package/lib/src/core/features/uIFeatures/beforeRender/rowHeight.js.map +1 -1
  83. package/lib/src/core/features/uIFeatures/beforeRender/stateHydration.d.ts.map +1 -1
  84. package/lib/src/core/features/uIFeatures/beforeRender/stateHydration.js +2 -1
  85. package/lib/src/core/features/uIFeatures/beforeRender/stateHydration.js.map +1 -1
  86. package/lib/src/core/features/uIFeatures/beforeRender/stateSanitization.d.ts.map +1 -1
  87. package/lib/src/core/features/uIFeatures/beforeRender/stateSanitization.js +53 -14
  88. package/lib/src/core/features/uIFeatures/beforeRender/stateSanitization.js.map +1 -1
  89. package/lib/src/core/features/uIFeatures/index.d.ts +0 -3
  90. package/lib/src/core/features/uIFeatures/index.d.ts.map +1 -1
  91. package/lib/src/core/features/uIFeatures/index.js +0 -4
  92. package/lib/src/core/features/uIFeatures/index.js.map +1 -1
  93. package/lib/src/core/generators/ColumnGenerator.d.ts +14 -19
  94. package/lib/src/core/generators/ColumnGenerator.d.ts.map +1 -1
  95. package/lib/src/core/generators/ColumnGenerator.js +28 -88
  96. package/lib/src/core/generators/ColumnGenerator.js.map +1 -1
  97. package/lib/src/core/generators/ColumnGenerator.types.d.ts +17 -14
  98. package/lib/src/core/generators/ColumnGenerator.types.d.ts.map +1 -1
  99. package/lib/src/core/generators/ColumnGenerator.types.js.map +1 -1
  100. package/lib/src/core/generators/GroupGenerator.d.ts +8 -1
  101. package/lib/src/core/generators/GroupGenerator.d.ts.map +1 -1
  102. package/lib/src/core/generators/GroupGenerator.js +24 -1
  103. package/lib/src/core/generators/GroupGenerator.js.map +1 -1
  104. package/lib/src/core/generators/RowGenerator.d.ts +1 -1
  105. package/lib/src/core/generators/RowGenerator.d.ts.map +1 -1
  106. package/lib/src/core/generators/RowGenerator.js +1 -1
  107. package/lib/src/core/generators/RowGenerator.js.map +1 -1
  108. package/lib/src/core/generators/RowGenerator.types.d.ts +2 -1
  109. package/lib/src/core/generators/RowGenerator.types.d.ts.map +1 -1
  110. package/lib/src/core/generators/RowGenerator.types.js.map +1 -1
  111. package/lib/src/core/generators/ViewGenerator.d.ts +6 -1
  112. package/lib/src/core/generators/ViewGenerator.d.ts.map +1 -1
  113. package/lib/src/core/generators/ViewGenerator.js +33 -8
  114. package/lib/src/core/generators/ViewGenerator.js.map +1 -1
  115. package/lib/src/core/generators/ViewGenerator.types.d.ts +3 -1
  116. package/lib/src/core/generators/ViewGenerator.types.d.ts.map +1 -1
  117. package/lib/src/core/generators/ViewGenerator.types.js.map +1 -1
  118. package/lib/src/core/generators/viewUtilityMethods.d.ts.map +1 -1
  119. package/lib/src/core/generators/viewUtilityMethods.js +6 -3
  120. package/lib/src/core/generators/viewUtilityMethods.js.map +1 -1
  121. package/lib/src/core/reducers/error.d.ts +4 -3
  122. package/lib/src/core/reducers/error.d.ts.map +1 -1
  123. package/lib/src/core/reducers/index.d.ts +4 -3
  124. package/lib/src/core/reducers/index.d.ts.map +1 -1
  125. package/lib/src/core/reducers/index.js +0 -2
  126. package/lib/src/core/reducers/index.js.map +1 -1
  127. package/lib/src/core/reducers/personalizationReducer.d.ts +1 -1
  128. package/lib/src/core/reducers/renderFormatter.d.ts.map +1 -1
  129. package/lib/src/core/reducers/renderFormatter.js +13 -3
  130. package/lib/src/core/reducers/renderFormatter.js.map +1 -1
  131. package/lib/src/core/test/junitMocks.d.ts +12 -0
  132. package/lib/src/core/test/junitMocks.d.ts.map +1 -1
  133. package/lib/src/core/test/junitMocks.js +15 -40
  134. package/lib/src/core/test/junitMocks.js.map +1 -1
  135. package/lib/src/core/utils/condition-utils.js +1 -1
  136. package/lib/src/core/utils/condition-utils.js.map +1 -1
  137. package/lib/src/core/utils/util.d.ts +3 -7
  138. package/lib/src/core/utils/util.d.ts.map +1 -1
  139. package/lib/src/core/utils/util.js +36 -15
  140. package/lib/src/core/utils/util.js.map +1 -1
  141. package/lib/types/ApiContext.types.d.ts +82 -6
  142. package/lib/types/ApiContext.types.d.ts.map +1 -1
  143. package/lib/types/ApiContext.types.js.map +1 -1
  144. package/lib/types/Meta.types.d.ts +101 -12
  145. package/lib/types/Meta.types.d.ts.map +1 -1
  146. package/lib/types/Meta.types.js +5 -1
  147. package/lib/types/Meta.types.js.map +1 -1
  148. package/lib/types/RsCoreBootArgs.types.d.ts +11 -0
  149. package/lib/types/RsCoreBootArgs.types.d.ts.map +1 -1
  150. package/lib/types/RsCoreBootArgs.types.js.map +1 -1
  151. package/lib/types/State.types.d.ts +27 -25
  152. package/lib/types/State.types.d.ts.map +1 -1
  153. package/lib/types/State.types.js.map +1 -1
  154. package/lib/types.d.ts +9 -2
  155. package/lib/types.d.ts.map +1 -1
  156. package/lib/types.js.map +1 -1
  157. package/package.json +6 -7
  158. package/lib/src/core/features/uIFeatures/beforeRender/edit.d.ts +0 -12
  159. package/lib/src/core/features/uIFeatures/beforeRender/edit.d.ts.map +0 -1
  160. package/lib/src/core/features/uIFeatures/beforeRender/edit.js +0 -94
  161. package/lib/src/core/features/uIFeatures/beforeRender/edit.js.map +0 -1
  162. package/lib/src/core/features/uIFeatures/beforeRender/resizeGroupedDragDropColumn.d.ts +0 -7
  163. package/lib/src/core/features/uIFeatures/beforeRender/resizeGroupedDragDropColumn.d.ts.map +0 -1
  164. package/lib/src/core/features/uIFeatures/beforeRender/resizeGroupedDragDropColumn.js +0 -24
  165. package/lib/src/core/features/uIFeatures/beforeRender/resizeGroupedDragDropColumn.js.map +0 -1
  166. package/lib/src/core/reducers/edit.d.ts +0 -5
  167. package/lib/src/core/reducers/edit.d.ts.map +0 -1
  168. package/lib/src/core/reducers/edit.js +0 -65
  169. package/lib/src/core/reducers/edit.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"busyIndicator.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/busyIndicator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AA+BrE;;;;;;;;;;;;GAYG;yBACa,YAAY,UAAU,MAGZ,cAAc,wBAAwB;AAHhE,wBAkBE"}
1
+ {"version":3,"file":"busyIndicator.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/busyIndicator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AA+BrE;;;;;;;;;;;;;GAaG;yBACa,YAAY,UAAU,MAGZ,cAAc,wBAAwB;AAHhE,wBAmBE"}
@@ -34,6 +34,7 @@ const busyIndicator = ([{ getRsStore, getView, dispatch }]) => {
34
34
  * - {@link State.groups}
35
35
  * - {@link State.aggregationInfo}
36
36
  * - {@link State.refresh}
37
+ * - {@link State.hiddenColumns}
37
38
  *
38
39
  * `isLoading` is reset on publish of `AFTER_FETCH` event.
39
40
  */
@@ -49,7 +50,8 @@ export default (rsInternal) => {
49
50
  state.groupToggle,
50
51
  state.groups,
51
52
  state.aggregationInfo,
52
- state.refresh
53
+ state.refresh,
54
+ state.hiddenColumns
53
55
  ]);
54
56
  };
55
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"busyIndicator.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/busyIndicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAM7D,SAAS,kBAAkB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAc;IACjF,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAC1C,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACzC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACtC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAExD,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,mIAAmI;IACnI,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzC,OAAO,CAAC,kBAAkB,GAAG,UAAU,CAAC,GAAG,EAAE;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACrC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAe,CAAC,UAAsB,EAAE,EAAE;IACxC,MAAM,qBAAqB,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAC7D,UAAU,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9F,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,qBAAqB,CACnB,CAAC,YAAY,CAAC,EACd;YACE,KAAK,CAAC,gBAAgB;YACtB,KAAK,CAAC,MAAM,EAAE,KAAK;YACnB,KAAK,CAAC,YAAY;YAClB,KAAK,CAAC,WAAW;YACjB,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,eAAe;YACrB,KAAK,CAAC,OAAO;SACd,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport { AFTER_FETCH } from '../../../pubSub/events';\nimport { actionForceUpdate } from '../../../actions/actions';\nimport type RsInternal from '../../../RsInternal';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { State } from '../../../../../types/State.types';\n\nfunction closeBusyIndicator({ getRsStore, getView, getRsStateResolver }: RsInternal) {\n const rsStore = getRsStore();\n const { dispatch } = getRsStateResolver();\n if (rsStore.busyIndicatorTimer) {\n clearTimeout(rsStore.busyIndicatorTimer);\n rsStore.busyIndicatorTimer = null;\n if (getView().isLoading) {\n getView().setProp('isLoading', false);\n dispatch(actionForceUpdate());\n }\n }\n}\n\nconst busyIndicator = ([{ getRsStore, getView, dispatch }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const rsStore = getRsStore();\n // @ts-expect-error clearTimeout expects either number or undefined but `rsStore.busyIndicatorTimer` is set to null too on line 12.\n clearTimeout(rsStore.busyIndicatorTimer);\n rsStore.busyIndicatorTimer = setTimeout(() => {\n if (!getView().isLoading) {\n getView().setProp('isLoading', true);\n dispatch(actionForceUpdate());\n }\n }, 1000);\n};\n\n/**\n * Toggles {@link View.isLoading isLoading} flag in the `View`.\n *\n * `isLoading` is set to true(if not already), when any of the following properties is changed:\n * - {@link State.filterExpression}\n * - `query` in {@link State.search}\n * - {@link State.groupToggle}\n * - {@link State.groups}\n * - {@link State.aggregationInfo}\n * - {@link State.refresh}\n *\n * `isLoading` is reset on publish of `AFTER_FETCH` event.\n */\nexport default (rsInternal: RsInternal) => {\n const memoizedBusyIndicator = withMemoization(busyIndicator);\n rsInternal.getPubSubUtils().subscribe(AFTER_FETCH, closeBusyIndicator.bind(null, rsInternal));\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedBusyIndicator(\n [featureProps],\n [\n state.filterExpression,\n state.search?.query,\n state.sortingOrder,\n state.groupToggle,\n state.groups,\n state.aggregationInfo,\n state.refresh\n ]\n );\n };\n};\n"]}
1
+ {"version":3,"file":"busyIndicator.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/busyIndicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAM7D,SAAS,kBAAkB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAc;IACjF,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAC1C,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACzC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACtC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAExD,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,mIAAmI;IACnI,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzC,OAAO,CAAC,kBAAkB,GAAG,UAAU,CAAC,GAAG,EAAE;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACrC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAe,CAAC,UAAsB,EAAE,EAAE;IACxC,MAAM,qBAAqB,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAC7D,UAAU,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9F,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,qBAAqB,CACnB,CAAC,YAAY,CAAC,EACd;YACE,KAAK,CAAC,gBAAgB;YACtB,KAAK,CAAC,MAAM,EAAE,KAAK;YACnB,KAAK,CAAC,YAAY;YAClB,KAAK,CAAC,WAAW;YACjB,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,eAAe;YACrB,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,aAAa;SACpB,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport { AFTER_FETCH } from '../../../pubSub/events';\nimport { actionForceUpdate } from '../../../actions/actions';\nimport type RsInternal from '../../../RsInternal';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { State } from '../../../../../types/State.types';\n\nfunction closeBusyIndicator({ getRsStore, getView, getRsStateResolver }: RsInternal) {\n const rsStore = getRsStore();\n const { dispatch } = getRsStateResolver();\n if (rsStore.busyIndicatorTimer) {\n clearTimeout(rsStore.busyIndicatorTimer);\n rsStore.busyIndicatorTimer = null;\n if (getView().isLoading) {\n getView().setProp('isLoading', false);\n dispatch(actionForceUpdate());\n }\n }\n}\n\nconst busyIndicator = ([{ getRsStore, getView, dispatch }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const rsStore = getRsStore();\n // @ts-expect-error clearTimeout expects either number or undefined but `rsStore.busyIndicatorTimer` is set to null too on line 12.\n clearTimeout(rsStore.busyIndicatorTimer);\n rsStore.busyIndicatorTimer = setTimeout(() => {\n if (!getView().isLoading) {\n getView().setProp('isLoading', true);\n dispatch(actionForceUpdate());\n }\n }, 1000);\n};\n\n/**\n * Toggles {@link View.isLoading isLoading} flag in the `View`.\n *\n * `isLoading` is set to true(if not already), when any of the following properties is changed:\n * - {@link State.filterExpression}\n * - `query` in {@link State.search}\n * - {@link State.groupToggle}\n * - {@link State.groups}\n * - {@link State.aggregationInfo}\n * - {@link State.refresh}\n * - {@link State.hiddenColumns}\n *\n * `isLoading` is reset on publish of `AFTER_FETCH` event.\n */\nexport default (rsInternal: RsInternal) => {\n const memoizedBusyIndicator = withMemoization(busyIndicator);\n rsInternal.getPubSubUtils().subscribe(AFTER_FETCH, closeBusyIndicator.bind(null, rsInternal));\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedBusyIndicator(\n [featureProps],\n [\n state.filterExpression,\n state.search?.query,\n state.sortingOrder,\n state.groupToggle,\n state.groups,\n state.aggregationInfo,\n state.refresh,\n state.hiddenColumns\n ]\n );\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"columnFormatter.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnFormatter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAqBrE;;;;GAIG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAUE"}
1
+ {"version":3,"file":"columnFormatter.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnFormatter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAyBrE;;;;GAIG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAUE"}
@@ -5,12 +5,13 @@ const getColumnFormatter = ([{ getView, getState }]) => {
5
5
  const { renderFormatter } = getState();
6
6
  getView().columns?.forEach(column => {
7
7
  const { id, formatter, cellRenderer } = column.field;
8
- const formatterName = renderFormatter?.[id] || formatter;
9
- const formatterFunc = getView().formatters?.[formatterName];
8
+ const formatterVal = renderFormatter?.[id] || formatter;
9
+ const cellValue = renderFormatter?.[id] || cellRenderer;
10
+ const formatterFunc = getView().formatters?.[typeof formatterVal === 'string' ? formatterVal : formatterVal?.type || ''];
10
11
  column = column.setProp({
11
12
  formatter: formatterFunc,
12
- formatterName,
13
- cellRenderer: renderFormatter?.[id] || cellRenderer
13
+ formatterConfig: formatterVal,
14
+ cellRenderer: typeof cellValue === 'string' ? cellValue : cellValue?.type
14
15
  });
15
16
  });
16
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"columnFormatter.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,qDAAqD;AAErD,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAA2C,EAAE,EAAE;IAC/F,wDAAwD;IACxD,MAAM,EAAE,eAAe,EAAE,GAAG,QAAQ,EAAE,CAAC;IACvC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QACrD,MAAM,aAAa,GAAG,eAAe,EAAE,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC;QACzD,MAAM,aAAa,GAAG,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC,aAAc,CAAC,CAAC;QAC7D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YACtB,SAAS,EAAE,aAAa;YACxB,aAAa;YACb,YAAY,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,IAAI,YAAY;SACpD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,0BAA0B,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAEvE,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,0BAA0B,CACxB,CAAC,YAAY,CAAC,EACd,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,CACxD,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type Column from '../../../generators/ColumnGenerator';\nimport type { State } from '../../../../../types/State.types';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nconst getColumnFormatter = ([{ getView, getState }]: [featureProps: BeforeRenderFeatureProps]) => {\n // formatter and renderer is common for RF configurator.\n const { renderFormatter } = getState();\n getView().columns?.forEach(column => {\n const { id, formatter, cellRenderer } = column.field;\n const formatterName = renderFormatter?.[id] || formatter;\n const formatterFunc = getView().formatters?.[formatterName!];\n column = column.setProp({\n formatter: formatterFunc,\n formatterName,\n cellRenderer: renderFormatter?.[id] || cellRenderer\n });\n });\n};\n\n/**\n * Sets the {@link Column.formatter formatter}, {@link Column.formatterName formatterName}, {@link Column.cellRenderer cellRenderer} of each column when any of the following properties are changed:\n * - {@link State.renderFormatter}\n * - `active` in {@link State.personalization}\n */\nexport default () => {\n const memoizedGetColumnFormatter = withMemoization(getColumnFormatter);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedGetColumnFormatter(\n [featureProps],\n [state.renderFormatter, state?.personalization?.active]\n );\n };\n};\n"]}
1
+ {"version":3,"file":"columnFormatter.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,qDAAqD;AAErD,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAA2C,EAAE,EAAE;IAC/F,wDAAwD;IACxD,MAAM,EAAE,eAAe,EAAE,GAAG,QAAQ,EAAE,CAAC;IACvC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QACrD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC;QACxD,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC;QACxD,MAAM,aAAa,GACjB,OAAO,EAAE,CAAC,UAAU,EAAE,CACpB,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,IAAI,EAAE,CAC3E,CAAC;QACJ,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YACtB,SAAS,EAAE,aAAa;YACxB,eAAe,EAAE,YAAY;YAC7B,YAAY,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI;SAC1E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACH,eAAe,GAAG,EAAE;IAClB,MAAM,0BAA0B,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAEvE,OAAO,SAAS,OAAO,CAAC,YAAsC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,0BAA0B,CACxB,CAAC,YAAY,CAAC,EACd,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,CACxD,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type Column from '../../../generators/ColumnGenerator';\nimport type { State } from '../../../../../types/State.types';\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nconst getColumnFormatter = ([{ getView, getState }]: [featureProps: BeforeRenderFeatureProps]) => {\n // formatter and renderer is common for RF configurator.\n const { renderFormatter } = getState();\n getView().columns?.forEach(column => {\n const { id, formatter, cellRenderer } = column.field;\n const formatterVal = renderFormatter?.[id] || formatter;\n const cellValue = renderFormatter?.[id] || cellRenderer;\n const formatterFunc =\n getView().formatters?.[\n typeof formatterVal === 'string' ? formatterVal : formatterVal?.type || ''\n ];\n column = column.setProp({\n formatter: formatterFunc,\n formatterConfig: formatterVal,\n cellRenderer: typeof cellValue === 'string' ? cellValue : cellValue?.type\n });\n });\n};\n\n/**\n * Sets the {@link Column.formatter formatter}, {@link Column.formatterName formatterName}, {@link Column.cellRenderer cellRenderer} of each column when any of the following properties are changed:\n * - {@link State.renderFormatter}\n * - `active` in {@link State.personalization}\n */\nexport default () => {\n const memoizedGetColumnFormatter = withMemoization(getColumnFormatter);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n memoizedGetColumnFormatter(\n [featureProps],\n [state.renderFormatter, state?.personalization?.active]\n );\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"columnReOrder.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnReOrder.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AA+OrE;;;;;;GAMG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAcE"}
1
+ {"version":3,"file":"columnReOrder.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnReOrder.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AA8OrE;;;;;;GAMG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAcE"}
@@ -83,9 +83,8 @@ const columnReOrder = ([{ getView, getState, dispatch }]) => {
83
83
  document.body.appendChild(emptyImg);
84
84
  if (e.dataTransfer) {
85
85
  e.dataTransfer.setDragImage(emptyImg, 0, 0);
86
- // e.dataTransfer.setDragImage(new Image(0, 0), 0, 0);
87
- e.dataTransfer.effectAllowed = 'none';
88
- e.dataTransfer.dropEffect = 'none';
86
+ e.dataTransfer.effectAllowed = 'move';
87
+ e.dataTransfer.setData('text/plain', sourceElem?.dataset.colId || '');
89
88
  }
90
89
  document.addEventListener('dragover', documentDragOver);
91
90
  fieldDragHelper.virtualizeOffsetLeft = virtualizeEle.getBoundingClientRect().left;
@@ -1 +1 @@
1
- {"version":3,"file":"columnReOrder.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnReOrder.ts"],"names":[],"mappings":"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","sourcesContent":["import { actionColumnDragDrop } from '../../../actions/actions';\nimport {\n rowActionColumnMeta,\n rowDragDropColumnMeta,\n rowSelectColumnMeta\n} from '../../../constants';\nimport type RsStore from '../../../RsStore';\nimport { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { State } from '../../../../../types/State.types';\n\ntype FieldDragHelper = {\n mouseX: number;\n mouseY: number;\n dragLineNode: HTMLElement;\n dragProxyNode: HTMLElement;\n sourceElemIndex: number;\n dragProxyOffset: number;\n virtualizeOffsetLeft: number;\n dropTarget: string;\n};\n\nconst ColIdSelector = '[data-col-id]';\nconst SomeNegativeBigOffset = `${Number.MIN_SAFE_INTEGER}px`;\n\n// Todo: comeback and see if there is any other way to just have no drag image\nconst emptyImg = document.createElement('img');\nemptyImg.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n\nfunction createElement(type: string, className: string): HTMLElement {\n const domNode = document.createElement(type);\n domNode.classList.add(className);\n return domNode;\n}\n\nconst columnReOrder = ([{ getView, getState, dispatch }]: [\n featureProps: BeforeRenderFeatureProps\n]): RsStore['fieldReorderProps'] => {\n if (!getView().meta.reorderFields) {\n return null;\n }\n const { columnWidths, freezeColumns = [] } = getState();\n let fieldDragHelper: FieldDragHelper = {} as FieldDragHelper;\n const allPositions = (() => {\n const allWidths: {\n width: number;\n order: number;\n offset?: number;\n id: string;\n }[] = getView()\n .columns!.filter(column => !column.hidden) // Take all visible columns\n .map(column => ({\n width: (columnWidths?.[column.field.id] ?? column.field.width)!,\n order: column.style?.order,\n id: column.field.id\n }));\n // Bail out when AllWidths/Visible columns is empty\n if (allWidths.length === 0) {\n return {\n allWidths,\n freezeColumnsWidth: 0\n };\n }\n\n allWidths.sort((a, b) => a.order - b.order);\n\n let previousColOffset = 0;\n allWidths.forEach(column => {\n column.offset = previousColOffset;\n previousColOffset += column.width;\n });\n allWidths.push({\n width: 0,\n order: allWidths[allWidths.length - 1].order + 1,\n offset: allWidths[allWidths.length - 1].offset! + allWidths[allWidths.length - 1].width,\n id: 'last$'\n });\n const visibleFreezeColumns = getView().columns!.filter(col => col.frozen && !col.hidden);\n const freezeColumnsWidth = allWidths[visibleFreezeColumns.length]?.offset;\n return {\n allWidths,\n freezeColumnsWidth\n };\n })();\n\n const { allWidths, freezeColumnsWidth } = allPositions;\n\n // https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n // This DragOver on document is the hack for the above bug as clientX is not proper in firefox\n const documentDragOver = (e: DragEvent) => {\n fieldDragHelper.mouseX = e.clientX;\n fieldDragHelper.mouseY = e.clientY;\n };\n\n const onDragStart = (e: DragEvent) => {\n fieldDragHelper = {} as FieldDragHelper;\n const domContainer = getView().getDomContainer();\n const scrollNode = getView().getScrollNode();\n const virtualizeEle = getView()\n .getVirtualizeElement('rootVirtualiser')\n ?.getParentContainer?.()!;\n fieldDragHelper.dragLineNode = createElement('div', 'table-drag-line');\n fieldDragHelper.dragProxyNode = createElement('div', 'table-drag-proxy');\n const container = domContainer?.getElementsByClassName('container')[0]!;\n const Header = domContainer?.getElementsByClassName('sticky-header')[0]!;\n container.appendChild(fieldDragHelper.dragProxyNode);\n virtualizeEle.appendChild(fieldDragHelper.dragLineNode);\n fieldDragHelper.dragLineNode.style.height = `${\n // eslint-disable-next-line no-unsafe-optional-chaining\n scrollNode?.clientHeight! + Header.clientHeight\n }px`;\n\n const sourceElem = (e.target as HTMLElement).closest(ColIdSelector) as HTMLElement;\n fieldDragHelper.sourceElemIndex = allWidths.findIndex(xCol => {\n return `${xCol.id}` === sourceElem.dataset.colId;\n });\n\n if (!sourceElem) return;\n\n document.body.appendChild(emptyImg);\n if (e.dataTransfer) {\n e.dataTransfer.setDragImage(emptyImg, 0, 0);\n // e.dataTransfer.setDragImage(new Image(0, 0), 0, 0);\n e.dataTransfer.effectAllowed = 'none';\n e.dataTransfer.dropEffect = 'none';\n }\n document.addEventListener('dragover', documentDragOver);\n\n fieldDragHelper.virtualizeOffsetLeft = virtualizeEle.getBoundingClientRect().left;\n fieldDragHelper.dragProxyOffset =\n sourceElem.offsetLeft -\n (virtualizeEle.scrollLeft + fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft);\n fieldDragHelper.dragProxyNode.style.width = sourceElem.style.width;\n fieldDragHelper.dragProxyNode.style.marginLeft = `${fieldDragHelper.dragProxyOffset}px`;\n fieldDragHelper.dragProxyNode.style.left = SomeNegativeBigOffset;\n fieldDragHelper.dragLineNode.style.left = SomeNegativeBigOffset;\n fieldDragHelper.dragProxyNode.style.display = 'block';\n fieldDragHelper.dragLineNode.style.display = 'block';\n\n return false; // required for browser allowing image drag out of container\n };\n\n const onDrag = (e: DragEvent) => {\n e.preventDefault();\n const virtualizeEle = getView()\n .getVirtualizeElement('rootVirtualiser')\n ?.getParentContainer?.()!;\n const distanceFromFreezeB =\n fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft - freezeColumnsWidth!;\n // is our cursor pointer near to freeze columBoundary?\n if (\n freezeColumnsWidth !== 0 &&\n distanceFromFreezeB < 100 &&\n distanceFromFreezeB > 0 &&\n virtualizeEle.scrollLeft > 0\n ) {\n // is something there to scroll?\n if (distanceFromFreezeB > 50) {\n virtualizeEle.scrollLeft -= 1;\n } else {\n virtualizeEle.scrollLeft -= 3;\n }\n fieldDragHelper.dragProxyNode.style.left = `${\n fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft\n }px`;\n fieldDragHelper.dropTarget = allWidths[freezeColumns.length].id;\n fieldDragHelper.dragLineNode.style.left = SomeNegativeBigOffset;\n return false;\n }\n\n fieldDragHelper.dragProxyNode.style.left = `${\n fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft\n }px`;\n let currentDragLeftOffset = parseInt(\n // @ts-expect-error parseInt expects string.\n virtualizeEle.scrollLeft + fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft,\n 10\n );\n\n if (distanceFromFreezeB < 0) {\n // if we are in freezeZone do not consider scrollLeft for targetColLine calc\n currentDragLeftOffset -= virtualizeEle.scrollLeft;\n }\n\n let xColIndex = allWidths.findIndex(xCol => {\n return currentDragLeftOffset < xCol.offset! + xCol.width / 2;\n });\n\n if (xColIndex === -1) {\n xColIndex = allWidths.length - 1;\n }\n fieldDragHelper.dragLineNode.style.left = `${allWidths[xColIndex].offset}px`;\n\n if (distanceFromFreezeB < 0) {\n // if we are in freezeZone consider scrollLeft for dragLine calculation\n fieldDragHelper.dragLineNode.style.left = `${\n allWidths[xColIndex].offset! + virtualizeEle.scrollLeft\n }px`;\n }\n\n if (xColIndex <= fieldDragHelper.sourceElemIndex) {\n fieldDragHelper.dropTarget = allWidths[xColIndex].id;\n } else {\n fieldDragHelper.dropTarget = allWidths[xColIndex - 1].id;\n }\n\n // Edge Case to not show dragLine when the col is under frozen area\n if (\n distanceFromFreezeB > 0 &&\n allWidths[xColIndex].offset! < virtualizeEle.scrollLeft + freezeColumnsWidth!\n ) {\n fieldDragHelper.dragLineNode.style.left = SomeNegativeBigOffset;\n }\n\n return false;\n };\n\n const onDragEnd = (e: DragEvent) => {\n e.preventDefault();\n fieldDragHelper.dragProxyNode.style.display = 'none';\n fieldDragHelper.dragLineNode.style.display = 'none';\n const sourceElem: HTMLElement | null = (e.target as HTMLElement).closest(ColIdSelector);\n if (\n rowSelectColumnMeta.field.id !== fieldDragHelper.dropTarget &&\n rowDragDropColumnMeta.field.id !== fieldDragHelper.dropTarget &&\n rowActionColumnMeta.field.id !== fieldDragHelper.dropTarget &&\n sourceElem &&\n `${sourceElem.dataset.colId}` !== `${fieldDragHelper.dropTarget}`\n ) {\n dispatch(actionColumnDragDrop(sourceElem.dataset.colId!, fieldDragHelper.dropTarget));\n }\n document.body.removeChild(emptyImg);\n fieldDragHelper.dragLineNode.remove();\n fieldDragHelper.dragProxyNode.remove();\n document.removeEventListener('dragover', documentDragOver);\n fieldDragHelper = {} as FieldDragHelper;\n return false;\n };\n\n return {\n onDragStart,\n onDrag,\n onDragEnd\n };\n};\n\n/**\n * Sets the column {@link RsStore. getFieldReorderProps reorder} props (onDragStart, onDrag, onDragEnd). This feature is executed when any of the following state slices are changed:\n * - {@link State.columnWidths}\n * - {@link State.freezeColumns}\n * - {@link State.colOrder}\n * - {@link State.hiddenColumns}\n */\nexport default () => {\n const memoizedColReOrder = withMemoization(columnReOrder);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n featureProps\n .getRsStore()\n .setFieldReorderProps(\n memoizedColReOrder(\n [featureProps],\n [state.columnWidths, state.freezeColumns, state.colOrder, state.hiddenColumns]\n )\n );\n };\n};\n"]}
1
+ {"version":3,"file":"columnReOrder.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/columnReOrder.ts"],"names":[],"mappings":"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","sourcesContent":["import { actionColumnDragDrop } from '../../../actions/actions';\nimport {\n rowActionColumnMeta,\n rowDragDropColumnMeta,\n rowSelectColumnMeta\n} from '../../../constants';\nimport type RsStore from '../../../RsStore';\nimport { withMemoization } from '../../../utils/util';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { State } from '../../../../../types/State.types';\n\ntype FieldDragHelper = {\n mouseX: number;\n mouseY: number;\n dragLineNode: HTMLElement;\n dragProxyNode: HTMLElement;\n sourceElemIndex: number;\n dragProxyOffset: number;\n virtualizeOffsetLeft: number;\n dropTarget: string;\n};\n\nconst ColIdSelector = '[data-col-id]';\nconst SomeNegativeBigOffset = `${Number.MIN_SAFE_INTEGER}px`;\n\n// Todo: comeback and see if there is any other way to just have no drag image\nconst emptyImg = document.createElement('img');\nemptyImg.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n\nfunction createElement(type: string, className: string): HTMLElement {\n const domNode = document.createElement(type);\n domNode.classList.add(className);\n return domNode;\n}\n\nconst columnReOrder = ([{ getView, getState, dispatch }]: [\n featureProps: BeforeRenderFeatureProps\n]): RsStore['fieldReorderProps'] => {\n if (!getView().meta.reorderFields) {\n return null;\n }\n const { columnWidths, freezeColumns = [] } = getState();\n let fieldDragHelper: FieldDragHelper = {} as FieldDragHelper;\n const allPositions = (() => {\n const allWidths: {\n width: number;\n order: number;\n offset?: number;\n id: string;\n }[] = getView()\n .columns!.filter(column => !column.hidden) // Take all visible columns\n .map(column => ({\n width: (columnWidths?.[column.field.id] ?? column.field.width)!,\n order: column.style?.order,\n id: column.field.id\n }));\n // Bail out when AllWidths/Visible columns is empty\n if (allWidths.length === 0) {\n return {\n allWidths,\n freezeColumnsWidth: 0\n };\n }\n\n allWidths.sort((a, b) => a.order - b.order);\n\n let previousColOffset = 0;\n allWidths.forEach(column => {\n column.offset = previousColOffset;\n previousColOffset += column.width;\n });\n allWidths.push({\n width: 0,\n order: allWidths[allWidths.length - 1].order + 1,\n offset: allWidths[allWidths.length - 1].offset! + allWidths[allWidths.length - 1].width,\n id: 'last$'\n });\n const visibleFreezeColumns = getView().columns!.filter(col => col.frozen && !col.hidden);\n const freezeColumnsWidth = allWidths[visibleFreezeColumns.length]?.offset;\n return {\n allWidths,\n freezeColumnsWidth\n };\n })();\n\n const { allWidths, freezeColumnsWidth } = allPositions;\n\n // https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n // This DragOver on document is the hack for the above bug as clientX is not proper in firefox\n const documentDragOver = (e: DragEvent) => {\n fieldDragHelper.mouseX = e.clientX;\n fieldDragHelper.mouseY = e.clientY;\n };\n\n const onDragStart = (e: DragEvent) => {\n fieldDragHelper = {} as FieldDragHelper;\n const domContainer = getView().getDomContainer();\n const scrollNode = getView().getScrollNode();\n const virtualizeEle = getView()\n .getVirtualizeElement('rootVirtualiser')\n ?.getParentContainer?.()!;\n fieldDragHelper.dragLineNode = createElement('div', 'table-drag-line');\n fieldDragHelper.dragProxyNode = createElement('div', 'table-drag-proxy');\n const container = domContainer?.getElementsByClassName('container')[0]!;\n const Header = domContainer?.getElementsByClassName('sticky-header')[0]!;\n container.appendChild(fieldDragHelper.dragProxyNode);\n virtualizeEle.appendChild(fieldDragHelper.dragLineNode);\n fieldDragHelper.dragLineNode.style.height = `${\n // eslint-disable-next-line no-unsafe-optional-chaining\n scrollNode?.clientHeight! + Header.clientHeight\n }px`;\n\n const sourceElem = (e.target as HTMLElement).closest(ColIdSelector) as HTMLElement;\n fieldDragHelper.sourceElemIndex = allWidths.findIndex(xCol => {\n return `${xCol.id}` === sourceElem.dataset.colId;\n });\n\n if (!sourceElem) return;\n\n document.body.appendChild(emptyImg);\n if (e.dataTransfer) {\n e.dataTransfer.setDragImage(emptyImg, 0, 0);\n e.dataTransfer.effectAllowed = 'move';\n e.dataTransfer.setData('text/plain', sourceElem?.dataset.colId || '');\n }\n document.addEventListener('dragover', documentDragOver);\n\n fieldDragHelper.virtualizeOffsetLeft = virtualizeEle.getBoundingClientRect().left;\n fieldDragHelper.dragProxyOffset =\n sourceElem.offsetLeft -\n (virtualizeEle.scrollLeft + fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft);\n fieldDragHelper.dragProxyNode.style.width = sourceElem.style.width;\n fieldDragHelper.dragProxyNode.style.marginLeft = `${fieldDragHelper.dragProxyOffset}px`;\n fieldDragHelper.dragProxyNode.style.left = SomeNegativeBigOffset;\n fieldDragHelper.dragLineNode.style.left = SomeNegativeBigOffset;\n fieldDragHelper.dragProxyNode.style.display = 'block';\n fieldDragHelper.dragLineNode.style.display = 'block';\n\n return false; // required for browser allowing image drag out of container\n };\n\n const onDrag = (e: DragEvent) => {\n e.preventDefault();\n const virtualizeEle = getView()\n .getVirtualizeElement('rootVirtualiser')\n ?.getParentContainer?.()!;\n const distanceFromFreezeB =\n fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft - freezeColumnsWidth!;\n // is our cursor pointer near to freeze columBoundary?\n if (\n freezeColumnsWidth !== 0 &&\n distanceFromFreezeB < 100 &&\n distanceFromFreezeB > 0 &&\n virtualizeEle.scrollLeft > 0\n ) {\n // is something there to scroll?\n if (distanceFromFreezeB > 50) {\n virtualizeEle.scrollLeft -= 1;\n } else {\n virtualizeEle.scrollLeft -= 3;\n }\n fieldDragHelper.dragProxyNode.style.left = `${\n fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft\n }px`;\n fieldDragHelper.dropTarget = allWidths[freezeColumns.length].id;\n fieldDragHelper.dragLineNode.style.left = SomeNegativeBigOffset;\n return false;\n }\n\n fieldDragHelper.dragProxyNode.style.left = `${\n fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft\n }px`;\n let currentDragLeftOffset = parseInt(\n // @ts-expect-error parseInt expects string.\n virtualizeEle.scrollLeft + fieldDragHelper.mouseX - fieldDragHelper.virtualizeOffsetLeft,\n 10\n );\n\n if (distanceFromFreezeB < 0) {\n // if we are in freezeZone do not consider scrollLeft for targetColLine calc\n currentDragLeftOffset -= virtualizeEle.scrollLeft;\n }\n\n let xColIndex = allWidths.findIndex(xCol => {\n return currentDragLeftOffset < xCol.offset! + xCol.width / 2;\n });\n\n if (xColIndex === -1) {\n xColIndex = allWidths.length - 1;\n }\n fieldDragHelper.dragLineNode.style.left = `${allWidths[xColIndex].offset}px`;\n\n if (distanceFromFreezeB < 0) {\n // if we are in freezeZone consider scrollLeft for dragLine calculation\n fieldDragHelper.dragLineNode.style.left = `${\n allWidths[xColIndex].offset! + virtualizeEle.scrollLeft\n }px`;\n }\n\n if (xColIndex <= fieldDragHelper.sourceElemIndex) {\n fieldDragHelper.dropTarget = allWidths[xColIndex].id;\n } else {\n fieldDragHelper.dropTarget = allWidths[xColIndex - 1].id;\n }\n\n // Edge Case to not show dragLine when the col is under frozen area\n if (\n distanceFromFreezeB > 0 &&\n allWidths[xColIndex].offset! < virtualizeEle.scrollLeft + freezeColumnsWidth!\n ) {\n fieldDragHelper.dragLineNode.style.left = SomeNegativeBigOffset;\n }\n\n return false;\n };\n\n const onDragEnd = (e: DragEvent) => {\n e.preventDefault();\n fieldDragHelper.dragProxyNode.style.display = 'none';\n fieldDragHelper.dragLineNode.style.display = 'none';\n const sourceElem: HTMLElement | null = (e.target as HTMLElement).closest(ColIdSelector);\n if (\n rowSelectColumnMeta.field.id !== fieldDragHelper.dropTarget &&\n rowDragDropColumnMeta.field.id !== fieldDragHelper.dropTarget &&\n rowActionColumnMeta.field.id !== fieldDragHelper.dropTarget &&\n sourceElem &&\n `${sourceElem.dataset.colId}` !== `${fieldDragHelper.dropTarget}`\n ) {\n dispatch(actionColumnDragDrop(sourceElem.dataset.colId!, fieldDragHelper.dropTarget));\n }\n document.body.removeChild(emptyImg);\n fieldDragHelper.dragLineNode.remove();\n fieldDragHelper.dragProxyNode.remove();\n document.removeEventListener('dragover', documentDragOver);\n fieldDragHelper = {} as FieldDragHelper;\n return false;\n };\n\n return {\n onDragStart,\n onDrag,\n onDragEnd\n };\n};\n\n/**\n * Sets the column {@link RsStore. getFieldReorderProps reorder} props (onDragStart, onDrag, onDragEnd). This feature is executed when any of the following state slices are changed:\n * - {@link State.columnWidths}\n * - {@link State.freezeColumns}\n * - {@link State.colOrder}\n * - {@link State.hiddenColumns}\n */\nexport default () => {\n const memoizedColReOrder = withMemoization(columnReOrder);\n\n return function execute(featureProps: BeforeRenderFeatureProps) {\n const state = featureProps.getState();\n featureProps\n .getRsStore()\n .setFieldReorderProps(\n memoizedColReOrder(\n [featureProps],\n [state.columnWidths, state.freezeColumns, state.colOrder, state.hiddenColumns]\n )\n );\n };\n};\n"]}
@@ -1,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 }]: [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;AAmBD,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,gBAAe,KAAK,CAAC,eAAe,CAAM,aAU3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,mCAAmC,CACpE,wBAAwB,CACzB;qBAmFyB,UAAU;CAmCnC,CAAC;+BAKwB,cAAc,wBAAwB;AAHhE,wBAWE"}
@@ -1,17 +1,19 @@
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 currentWidth = column.field.fillAvailableSpace
11
+ ? currentCell?.offsetWidth ?? 0
12
+ : column.currentWidth ?? column.field.width ?? column.field.minWidth ?? 0;
13
+ let width = currentWidth + distanceDragged;
14
+ // 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.
15
+ if (width < (column.field.minWidth ?? 0)) {
16
+ width = column.field.minWidth ?? 0;
15
17
  }
16
18
  return width;
17
19
  };
@@ -27,15 +29,18 @@ export const getNextFrozenColumns = (columnId, freezeColumns = []) => {
27
29
  };
28
30
  export const columnResizerProps = ([{ getState, getView, dispatch }]) => {
29
31
  const { freezeColumns, hiddenColumns, columnWidths = {} } = getState();
30
- let column = {};
32
+ let column;
31
33
  let startPosition = 0;
32
34
  let resized = false;
33
35
  let updatedWidth = 0;
34
36
  let currentCell = null;
35
- let nextFrozenColumns = []; // Contains next frozen columns with left positions to apply left on resize
37
+ let currentCellOccupiedWidthBeforeResize = 0;
38
+ let nextFrozenColumns = [];
36
39
  const updateWidth = (distance) => {
37
- updatedWidth = resizedColumnWidth({ ...column, currentWidth: column.currentWidth }, distance);
38
- column = column.setProp('currentWidth', updatedWidth); // Updating current width
40
+ if (!column)
41
+ return;
42
+ updatedWidth = getResizedColumnWidth({ ...column, currentWidth: column.currentWidth }, distance, currentCell);
43
+ column = column.setProp('currentWidth', updatedWidth);
39
44
  setColumnStyle(getView().getDomContainer(), 'width', column.field.idHash, updatedWidth);
40
45
  };
41
46
  /**
@@ -43,29 +48,40 @@ export const columnResizerProps = ([{ getState, getView, dispatch }]) => {
43
48
  */
44
49
  const updateLefts = () => {
45
50
  nextFrozenColumns.forEach(colId => {
46
- const left = calculateFieldLeft(colId, getView().columns, freezeColumns, hiddenColumns, { ...columnWidths, [column.field.id]: updatedWidth } // injecting the resized width to current column
51
+ const left = calculateFieldLeft(colId, getView().columns, freezeColumns, hiddenColumns, column ? { ...columnWidths, [column.field.id]: updatedWidth } : columnWidths // injecting the resized width to current column
47
52
  );
48
53
  const nextFrozenColumn = getView().columns?.find(c => `${c.field.id}` === colId);
49
54
  setColumnStyle(getView().getDomContainer(), 'left', nextFrozenColumn.field.idHash, left);
50
55
  });
51
56
  };
52
57
  const resizeHandler = (e) => {
58
+ if (!currentCell || !column)
59
+ return;
53
60
  e.preventDefault();
54
61
  const distance = e.clientX - startPosition;
62
+ const parentContainer = getView().getVirtualizeElement('rootVirtualiser')?.getParentContainer();
63
+ const clientWidth = parentContainer?.clientWidth ?? 0;
64
+ const scrollWidth = parentContainer?.scrollWidth ?? 0;
65
+ // Prevent reducing size for fillAvailableSpace column if the size reduction will introduce empty space in the table.
66
+ const preventSizeReductionForFillAvailableSpaceColumn = column.field.fillAvailableSpace &&
67
+ distance <= 0 &&
68
+ currentCellOccupiedWidthBeforeResize <= (currentCell.offsetWidth ?? 0) &&
69
+ clientWidth === scrollWidth;
70
+ if (preventSizeReductionForFillAvailableSpaceColumn) {
71
+ return;
72
+ }
55
73
  if (distance !== 0) {
56
- column =
57
- getView().columns?.find(c => `${c.field.id}` === currentCell?.dataset.colId) ??
58
- {};
59
74
  updateWidth(distance);
60
75
  updateLefts();
61
76
  resized = true;
62
77
  }
63
78
  startPosition = e.clientX;
64
- return false;
65
79
  };
66
80
  const resizeEndHandler = (e) => {
67
81
  e.preventDefault();
68
82
  const domContainer = getView().getDomContainer();
83
+ if (!domContainer || !currentCell || !column)
84
+ return;
69
85
  domContainer.removeEventListener('mousemove', resizeHandler);
70
86
  domContainer.removeEventListener('mouseup', resizeEndHandler);
71
87
  domContainer.removeEventListener('mouseleave', resizeEndHandler);
@@ -76,35 +92,37 @@ export const columnResizerProps = ([{ getState, getView, dispatch }]) => {
76
92
  currentCell.style.pointerEvents = 'auto';
77
93
  currentCell.classList.toggle(COLUMN_RESIZING_CLASS);
78
94
  domContainer.classList.toggle(COLUMN_RESIZING_CLASS);
79
- return false;
80
95
  };
81
96
  const onMouseDown = (e) => {
97
+ if (!isInstance(e.target, HTMLElement))
98
+ return;
82
99
  e.preventDefault();
83
100
  e.stopPropagation();
84
- startPosition = e.clientX;
85
101
  const domContainer = getView().getDomContainer();
102
+ if (!domContainer)
103
+ return;
86
104
  domContainer.addEventListener('mousemove', resizeHandler);
87
105
  domContainer.addEventListener('mouseup', resizeEndHandler);
88
106
  domContainer.addEventListener('mouseleave', resizeEndHandler);
89
107
  currentCell = e.target.closest('.cell');
108
+ if (!currentCell)
109
+ return;
90
110
  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
- }
111
+ column = getView().columns?.find(c => `${c.field.id}` === currentCell?.dataset.colId);
112
+ if (!column)
113
+ return;
114
+ startPosition = e.clientX;
115
+ currentCellOccupiedWidthBeforeResize = currentCell.offsetWidth ?? 0;
116
+ if (e.detail >= 2 && column.field.resize) {
117
+ dispatch(actionColumnAutoSize(column, domContainer, true));
97
118
  }
98
119
  currentCell.classList.toggle(COLUMN_RESIZING_CLASS);
99
120
  domContainer.classList.toggle(COLUMN_RESIZING_CLASS);
100
121
  // TODO: getState().freezeColumns should
101
122
  // give latest state after the action triggered from current feature only on above lines. Check this.
102
123
  nextFrozenColumns = getNextFrozenColumns(currentCell.dataset.colId, getState().freezeColumns);
103
- return false;
104
- };
105
- return {
106
- onMouseDown
107
124
  };
125
+ return { onMouseDown };
108
126
  };
109
127
  export default () => {
110
128
  const memoizedColumnResize = withMemoization(columnResizerProps);
@@ -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 currentWidth = column.field.fillAvailableSpace\n ? currentCell?.offsetWidth ?? 0\n : 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 }]: [\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\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 const domContainer = getView().getDomContainer();\n if (!domContainer || !currentCell || !column) return;\n\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 };\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 domContainer.addEventListener('mousemove', resizeHandler);\n domContainer.addEventListener('mouseup', resizeEndHandler);\n domContainer.addEventListener('mouseleave', 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 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 // 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, hiddenColumns, columnWidths } = featureProps.getState();\n featureProps\n .getRsStore()\n .setColumnResizerProps(\n memoizedColumnResize([featureProps], [freezeColumns, hiddenColumns, columnWidths])\n );\n };\n};\n"]}
@@ -1,6 +1,6 @@
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:
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
4
  * - {@link State.hiddenColumns}
5
5
  * - `active` {@link State.personalization}
6
6
  */
@@ -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,wBAOE"}
@@ -2,17 +2,22 @@ import { withMemoization } from '../../../utils/util';
2
2
  /* eslint-enable @typescript-eslint/no-unused-vars */
3
3
  export const updateFieldDefs = ([{ getView, getState }]) => {
4
4
  const { hiddenColumns = [] } = getState();
5
+ let isAnyVisibleSearchableColumn = false;
5
6
  getView().columns?.forEach(column => {
6
7
  const style = { ...column.style };
7
8
  const hidden = hiddenColumns.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:
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:
16
21
  * - {@link State.hiddenColumns}
17
22
  * - `active` {@link State.personalization}
18
23
  */
@@ -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,aAAa,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC1C,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,aAAa,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,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,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 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 { hiddenColumns = [] } = getState();\n let isAnyVisibleSearchableColumn = false;\n getView().columns?.forEach(column => {\n const style = { ...column.style };\n const hidden = hiddenColumns.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.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 +1 @@
1
- {"version":3,"file":"grouping.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/grouping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAa1D,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAOrE,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EAGxB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,GAC5D,kBAAkB,GAAG;IACnB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B,CAAC;AAEJ,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,uBAAuB,EAAE,UAAU,CAAC,GACpF,kBAAkB,GAAG;IACnB,QAAQ,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CAChD,CAAC;AAoiBJ;;;;;;;;GAQG;yBACa,YAAY,UAAU,qBAYC,wBAAwB;AAZ/D,wBAmEE"}
1
+ {"version":3,"file":"grouping.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/grouping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAa1D,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAOrE,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EAGxB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,GAC5D,kBAAkB,GAAG;IACnB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B,CAAC;AAEJ,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,uBAAuB,EAAE,UAAU,CAAC,GACpF,kBAAkB,GAAG;IACnB,QAAQ,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CAChD,CAAC;AA8hBJ;;;;;;;;GAQG;yBACa,YAAY,UAAU,qBAYC,wBAAwB;AAZ/D,wBAoEE"}