@pega/lists-react 8.8.0 → 9.0.0-build.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/lib/Core/Components/A11y/RepeatingStructureA11y.d.ts +10 -5
  2. package/lib/Core/Components/A11y/RepeatingStructureA11y.d.ts.map +1 -1
  3. package/lib/Core/Components/A11y/RepeatingStructureA11y.js +27 -2
  4. package/lib/Core/Components/A11y/RepeatingStructureA11y.js.map +1 -1
  5. package/lib/Core/Components/AggregateMenu.d.ts +1 -0
  6. package/lib/Core/Components/AggregateMenu.d.ts.map +1 -1
  7. package/lib/Core/Components/AggregateMenu.js +26 -16
  8. package/lib/Core/Components/AggregateMenu.js.map +1 -1
  9. package/lib/Core/Components/ContextMenu/ContextMenuContainer.d.ts.map +1 -1
  10. package/lib/Core/Components/ContextMenu/ContextMenuContainer.js +4 -2
  11. package/lib/Core/Components/ContextMenu/ContextMenuContainer.js.map +1 -1
  12. package/lib/Core/Components/ContextMenu/QuickFilter.js +6 -6
  13. package/lib/Core/Components/ContextMenu/QuickFilter.js.map +1 -1
  14. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.d.ts.map +1 -1
  15. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.js +3 -2
  16. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.js.map +1 -1
  17. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.d.ts.map +1 -1
  18. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.js +3 -2
  19. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.js.map +1 -1
  20. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/index.d.ts.map +1 -1
  21. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/index.js +7 -6
  22. package/lib/Core/Components/DefaultComponents/CellRenderers/EditComponents/index.js.map +1 -1
  23. package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.d.ts +2 -1
  24. package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.d.ts.map +1 -1
  25. package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.js +9 -21
  26. package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.js.map +1 -1
  27. package/lib/Core/Components/DefaultComponents/CellRenderers/RowDragDropHandle.d.ts +2 -1
  28. package/lib/Core/Components/DefaultComponents/CellRenderers/RowDragDropHandle.d.ts.map +1 -1
  29. package/lib/Core/Components/DefaultComponents/CellRenderers/RowDragDropHandle.js +4 -3
  30. package/lib/Core/Components/DefaultComponents/CellRenderers/RowDragDropHandle.js.map +1 -1
  31. package/lib/Core/Components/DefaultComponents/CellRenderers/RowError.d.ts +2 -1
  32. package/lib/Core/Components/DefaultComponents/CellRenderers/RowError.d.ts.map +1 -1
  33. package/lib/Core/Components/DefaultComponents/CellRenderers/RowError.js +4 -3
  34. package/lib/Core/Components/DefaultComponents/CellRenderers/RowError.js.map +1 -1
  35. package/lib/Core/Components/DefaultComponents/EmptyContainer.d.ts +3 -1
  36. package/lib/Core/Components/DefaultComponents/EmptyContainer.d.ts.map +1 -1
  37. package/lib/Core/Components/DefaultComponents/EmptyContainer.js +2 -4
  38. package/lib/Core/Components/DefaultComponents/EmptyContainer.js.map +1 -1
  39. package/lib/Core/Components/DefaultComponents/index.d.ts +3 -1
  40. package/lib/Core/Components/DefaultComponents/index.d.ts.map +1 -1
  41. package/lib/Core/Components/Filters/CommonFilter.d.ts.map +1 -1
  42. package/lib/Core/Components/Filters/CommonFilter.js +2 -2
  43. package/lib/Core/Components/Filters/CommonFilter.js.map +1 -1
  44. package/lib/Core/Components/Filters/FilterType.js +5 -5
  45. package/lib/Core/Components/Filters/FilterType.js.map +1 -1
  46. package/lib/Core/Components/Filters/SelectFilter.d.ts.map +1 -1
  47. package/lib/Core/Components/Filters/SelectFilter.js +2 -2
  48. package/lib/Core/Components/Filters/SelectFilter.js.map +1 -1
  49. package/lib/Core/Components/GroupRenderer.d.ts +16 -0
  50. package/lib/Core/Components/GroupRenderer.d.ts.map +1 -1
  51. package/lib/Core/Components/GroupRenderer.js +120 -5
  52. package/lib/Core/Components/GroupRenderer.js.map +1 -1
  53. package/lib/Core/Components/Grouping/GroupingMenu.js +3 -3
  54. package/lib/Core/Components/Grouping/GroupingMenu.js.map +1 -1
  55. package/lib/Core/Components/HeaderCell.d.ts.map +1 -1
  56. package/lib/Core/Components/HeaderCell.js +5 -2
  57. package/lib/Core/Components/HeaderCell.js.map +1 -1
  58. package/lib/Core/Components/HeaderMenu/actions.d.ts.map +1 -1
  59. package/lib/Core/Components/HeaderMenu/actions.js +4 -3
  60. package/lib/Core/Components/HeaderMenu/actions.js.map +1 -1
  61. package/lib/Core/Components/HeaderMenu/index.d.ts.map +1 -1
  62. package/lib/Core/Components/HeaderMenu/index.js +2 -2
  63. package/lib/Core/Components/HeaderMenu/index.js.map +1 -1
  64. package/lib/Core/Components/RenderingEngine/RenderCell.d.ts +1 -1
  65. package/lib/Core/Components/RenderingEngine/RenderCell.d.ts.map +1 -1
  66. package/lib/Core/Components/RenderingEngine/RenderCell.js +4 -1
  67. package/lib/Core/Components/RenderingEngine/RenderCell.js.map +1 -1
  68. package/lib/Core/Components/Toolbar/AdvanceToolbar.d.ts.map +1 -1
  69. package/lib/Core/Components/Toolbar/AdvanceToolbar.js +4 -17
  70. package/lib/Core/Components/Toolbar/AdvanceToolbar.js.map +1 -1
  71. package/lib/Core/Components/Toolbar/AnnounceRowsCount.d.ts +1 -1
  72. package/lib/Core/Components/Toolbar/AnnounceRowsCount.js +1 -1
  73. package/lib/Core/Components/Toolbar/AnnounceRowsCount.js.map +1 -1
  74. package/lib/Core/Components/Toolbar/ColumnSelector.d.ts +20 -9
  75. package/lib/Core/Components/Toolbar/ColumnSelector.d.ts.map +1 -1
  76. package/lib/Core/Components/Toolbar/ColumnSelector.js +89 -65
  77. package/lib/Core/Components/Toolbar/ColumnSelector.js.map +1 -1
  78. package/lib/Core/Components/Toolbar/SimpleToolbar.d.ts.map +1 -1
  79. package/lib/Core/Components/Toolbar/SimpleToolbar.js +4 -2
  80. package/lib/Core/Components/Toolbar/SimpleToolbar.js.map +1 -1
  81. package/lib/Core/Components/Toolbar/Timeline/TimelineToolbar.d.ts +2 -3
  82. package/lib/Core/Components/Toolbar/Timeline/TimelineToolbar.d.ts.map +1 -1
  83. package/lib/Core/Components/Toolbar/Timeline/TimelineToolbar.js +92 -44
  84. package/lib/Core/Components/Toolbar/Timeline/TimelineToolbar.js.map +1 -1
  85. package/lib/Core/Components/Toolbar/hooks/useGroup/DateFunctionSelector.js +3 -3
  86. package/lib/Core/Components/Toolbar/hooks/useGroup/DateFunctionSelector.js.map +1 -1
  87. package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.d.ts +1 -1
  88. package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.d.ts.map +1 -1
  89. package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.js +3 -2
  90. package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.js.map +1 -1
  91. package/lib/Core/Components/Toolbar/hooks/useGroup/utils.d.ts +2 -2
  92. package/lib/Core/Components/Toolbar/hooks/useGroup/utils.d.ts.map +1 -1
  93. package/lib/Core/Components/Toolbar/hooks/useGroup/utils.js +3 -2
  94. package/lib/Core/Components/Toolbar/hooks/useGroup/utils.js.map +1 -1
  95. package/lib/Core/Components/Toolbar/hooks/useMore.d.ts.map +1 -1
  96. package/lib/Core/Components/Toolbar/hooks/useMore.js +2 -2
  97. package/lib/Core/Components/Toolbar/hooks/useMore.js.map +1 -1
  98. package/lib/Core/Components/Toolbar/hooks/useSearch.js +4 -4
  99. package/lib/Core/Components/Toolbar/hooks/useSearch.js.map +1 -1
  100. package/lib/Core/Components/Toolbar/hooks/useSort/Row.js +1 -1
  101. package/lib/Core/Components/Toolbar/hooks/useSort/Row.js.map +1 -1
  102. package/lib/Core/Components/Toolbar/hooks/useWrapAction.d.ts +6 -0
  103. package/lib/Core/Components/Toolbar/hooks/useWrapAction.d.ts.map +1 -0
  104. package/lib/Core/Components/Toolbar/hooks/useWrapAction.js +17 -0
  105. package/lib/Core/Components/Toolbar/hooks/useWrapAction.js.map +1 -0
  106. package/lib/Core/Components/Toolbar/utils/utils.d.ts +1 -1
  107. package/lib/Core/Components/Toolbar/utils/utils.d.ts.map +1 -1
  108. package/lib/Core/Components/Toolbar/utils/utils.js +2 -1
  109. package/lib/Core/Components/Toolbar/utils/utils.js.map +1 -1
  110. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/VariableHeightVirtualizer.d.ts +97 -0
  111. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/VariableHeightVirtualizer.d.ts.map +1 -0
  112. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/VariableHeightVirtualizer.js +251 -0
  113. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/VariableHeightVirtualizer.js.map +1 -0
  114. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useChildrenHeightResizeObserver.d.ts +22 -0
  115. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useChildrenHeightResizeObserver.d.ts.map +1 -0
  116. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useChildrenHeightResizeObserver.js +38 -0
  117. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useChildrenHeightResizeObserver.js.map +1 -0
  118. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useLoaderPositioning.d.ts +22 -0
  119. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useLoaderPositioning.d.ts.map +1 -0
  120. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useLoaderPositioning.js +45 -0
  121. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useLoaderPositioning.js.map +1 -0
  122. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/usePagination.d.ts +49 -0
  123. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/usePagination.d.ts.map +1 -0
  124. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/usePagination.js +55 -0
  125. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/usePagination.js.map +1 -0
  126. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useScroll.d.ts +21 -0
  127. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useScroll.d.ts.map +1 -0
  128. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useScroll.js +39 -0
  129. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useScroll.js.map +1 -0
  130. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useVirtualizerItemCount.d.ts +38 -0
  131. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useVirtualizerItemCount.d.ts.map +1 -0
  132. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useVirtualizerItemCount.js +62 -0
  133. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/useVirtualizerItemCount.js.map +1 -0
  134. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/utils.d.ts +112 -0
  135. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/utils.d.ts.map +1 -0
  136. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/utils.js +214 -0
  137. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/utils.js.map +1 -0
  138. package/lib/Core/Components/Virtualise/VirtualizeInfinite.js +8 -5
  139. package/lib/Core/Components/Virtualise/VirtualizeInfinite.js.map +1 -1
  140. package/lib/Core/Components/Virtualise/index.js +9 -16
  141. package/lib/Core/Components/Virtualise/index.js.map +1 -1
  142. package/lib/Core/Components/Virtualise/utility.d.ts +1 -1
  143. package/lib/Core/Components/Virtualise/utility.d.ts.map +1 -1
  144. package/lib/Core/Components/Virtualise/utility.js +3 -2
  145. package/lib/Core/Components/Virtualise/utility.js.map +1 -1
  146. package/lib/Core/Hooks/a11y/useAnnounce.d.ts +19 -0
  147. package/lib/Core/Hooks/a11y/useAnnounce.d.ts.map +1 -0
  148. package/lib/Core/Hooks/a11y/useAnnounce.js +49 -0
  149. package/lib/Core/Hooks/a11y/useAnnounce.js.map +1 -0
  150. package/lib/Core/Hooks/useDragDrop.d.ts.map +1 -1
  151. package/lib/Core/Hooks/useDragDrop.js +2 -0
  152. package/lib/Core/Hooks/useDragDrop.js.map +1 -1
  153. package/lib/Core/Hooks/useRepeat.d.ts.map +1 -1
  154. package/lib/Core/Hooks/useRepeat.js +7 -0
  155. package/lib/Core/Hooks/useRepeat.js.map +1 -1
  156. package/lib/Core/Localization/defaultTranslations.d.ts +7 -49
  157. package/lib/Core/Localization/defaultTranslations.d.ts.map +1 -1
  158. package/lib/Core/Localization/defaultTranslations.js +8 -50
  159. package/lib/Core/Localization/defaultTranslations.js.map +1 -1
  160. package/lib/Core/Test/JUnitMocks.d.ts +6 -617
  161. package/lib/Core/Test/JUnitMocks.d.ts.map +1 -1
  162. package/lib/Core/Test/JUnitMocks.js +5 -4
  163. package/lib/Core/Test/JUnitMocks.js.map +1 -1
  164. package/lib/Core/Utils/index.d.ts +11 -0
  165. package/lib/Core/Utils/index.d.ts.map +1 -1
  166. package/lib/Core/Utils/index.js +20 -8
  167. package/lib/Core/Utils/index.js.map +1 -1
  168. package/lib/Core/Views/Gallery/StyledGalleryContainer.d.ts.map +1 -1
  169. package/lib/Core/Views/Gallery/StyledGalleryContainer.js +1 -0
  170. package/lib/Core/Views/Gallery/StyledGalleryContainer.js.map +1 -1
  171. package/lib/Core/Views/Gallery/index.d.ts.map +1 -1
  172. package/lib/Core/Views/Gallery/index.js +7 -4
  173. package/lib/Core/Views/Gallery/index.js.map +1 -1
  174. package/lib/Core/Views/Map/index.d.ts.map +1 -1
  175. package/lib/Core/Views/Map/index.js +9 -3
  176. package/lib/Core/Views/Map/index.js.map +1 -1
  177. package/lib/Core/Views/Table/Row.d.ts +3 -1
  178. package/lib/Core/Views/Table/Row.d.ts.map +1 -1
  179. package/lib/Core/Views/Table/Row.js +5 -3
  180. package/lib/Core/Views/Table/Row.js.map +1 -1
  181. package/lib/Core/Views/Table/StyledTableContainer.d.ts.map +1 -1
  182. package/lib/Core/Views/Table/StyledTableContainer.js +7 -11
  183. package/lib/Core/Views/Table/StyledTableContainer.js.map +1 -1
  184. package/lib/Core/Views/Table/VirtualizeWrapper.d.ts +3 -1
  185. package/lib/Core/Views/Table/VirtualizeWrapper.d.ts.map +1 -1
  186. package/lib/Core/Views/Table/VirtualizeWrapper.js +27 -4
  187. package/lib/Core/Views/Table/VirtualizeWrapper.js.map +1 -1
  188. package/lib/Core/Views/Table/index.d.ts.map +1 -1
  189. package/lib/Core/Views/Table/index.js +2 -2
  190. package/lib/Core/Views/Table/index.js.map +1 -1
  191. package/lib/Core/Views/Table/useCountChange.d.ts +10 -0
  192. package/lib/Core/Views/Table/useCountChange.d.ts.map +1 -0
  193. package/lib/Core/Views/Table/useCountChange.js +39 -0
  194. package/lib/Core/Views/Table/useCountChange.js.map +1 -0
  195. package/lib/Core/Views/Timeline/Timeline.d.ts +5 -0
  196. package/lib/Core/Views/Timeline/Timeline.d.ts.map +1 -0
  197. package/lib/Core/Views/Timeline/Timeline.js +28 -0
  198. package/lib/Core/Views/Timeline/Timeline.js.map +1 -0
  199. package/lib/Core/Views/Timeline/Timeline.styles.d.ts +24 -0
  200. package/lib/Core/Views/Timeline/Timeline.styles.d.ts.map +1 -0
  201. package/lib/Core/Views/Timeline/Timeline.styles.js +182 -0
  202. package/lib/Core/Views/Timeline/Timeline.styles.js.map +1 -0
  203. package/lib/Core/Views/Timeline/Timeline.types.d.ts +50 -0
  204. package/lib/Core/Views/Timeline/Timeline.types.d.ts.map +1 -0
  205. package/lib/Core/Views/Timeline/Timeline.types.js +2 -0
  206. package/lib/Core/Views/Timeline/Timeline.types.js.map +1 -0
  207. package/lib/Core/Views/Timeline/TimelineItem.d.ts +12 -0
  208. package/lib/Core/Views/Timeline/TimelineItem.d.ts.map +1 -0
  209. package/lib/Core/Views/Timeline/TimelineItem.js +43 -0
  210. package/lib/Core/Views/Timeline/TimelineItem.js.map +1 -0
  211. package/lib/Core/Views/Timeline/__tests__/Timeline.mocks.d.ts +4 -0
  212. package/lib/Core/Views/Timeline/__tests__/Timeline.mocks.d.ts.map +1 -0
  213. package/lib/Core/Views/Timeline/__tests__/Timeline.mocks.js +141 -0
  214. package/lib/Core/Views/Timeline/__tests__/Timeline.mocks.js.map +1 -0
  215. package/lib/Core/Views/Timeline/index.d.ts.map +1 -1
  216. package/lib/Core/Views/Timeline/index.js +12 -6
  217. package/lib/Core/Views/Timeline/index.js.map +1 -1
  218. package/lib/Core/Views/Timeline/utility.d.ts +1 -1
  219. package/lib/Core/Views/Timeline/utility.d.ts.map +1 -1
  220. package/lib/Core/Views/Timeline/utility.js.map +1 -1
  221. package/lib/Core/Views/Timeline/utils.d.ts +12 -0
  222. package/lib/Core/Views/Timeline/utils.d.ts.map +1 -0
  223. package/lib/Core/Views/Timeline/utils.js +66 -0
  224. package/lib/Core/Views/Timeline/utils.js.map +1 -0
  225. package/package.json +7 -8
  226. package/lib/Core/Components/EmptyContainer.d.ts +0 -5
  227. package/lib/Core/Components/EmptyContainer.d.ts.map +0 -1
  228. package/lib/Core/Components/EmptyContainer.js +0 -12
  229. package/lib/Core/Components/EmptyContainer.js.map +0 -1
  230. package/lib/Core/Hooks/useSelect.d.ts +0 -9
  231. package/lib/Core/Hooks/useSelect.d.ts.map +0 -1
  232. package/lib/Core/Hooks/useSelect.js +0 -24
  233. package/lib/Core/Hooks/useSelect.js.map +0 -1
@@ -1,8 +1,13 @@
1
- declare function RepeatingStructureA11y({ children, a11yRef, view }: {
2
- children: any;
3
- a11yRef: any;
4
- view: any;
5
- }): import("react/jsx-runtime").JSX.Element;
1
+ /**
2
+ * Provides accessibility features for repeating structures, including focus boundary handling
3
+ * and announcing changes in the view's state for accessibility purposes.
4
+ *
5
+ * @param {Object} props.a11yRef - A reference object containing accessibility-related handlers.
6
+ * @param {Object} props.view - The view object containing the current state of the repeating structure.
7
+ *
8
+ * @returns {JSX.Element} The rendered structure with accessibility features.
9
+ */
10
+ declare function RepeatingStructureA11y({ children, a11yRef, view }: Object): JSX.Element;
6
11
  declare namespace RepeatingStructureA11y {
7
12
  namespace propTypes {
8
13
  let children: PropTypes.Requireable<object>;
@@ -1 +1 @@
1
- {"version":3,"file":"RepeatingStructureA11y.d.ts","sourceRoot":"","sources":["../../../../Core/Components/A11y/RepeatingStructureA11y.jsx"],"names":[],"mappings":"AAeA;;;;4CAgBC;;;;;;;;;;;;;;;;;sBA9BqB,YAAY"}
1
+ {"version":3,"file":"RepeatingStructureA11y.d.ts","sourceRoot":"","sources":["../../../../Core/Components/A11y/RepeatingStructureA11y.jsx"],"names":[],"mappings":"AAgBA;;;;;;;;GAQG;AACH,qEALW,MAAM,GAGJ,GAAG,CAAC,OAAO,CAgDvB;;;;;;;;;;;;;;;;;sBAtEqB,YAAY"}
@@ -2,7 +2,8 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
2
2
  import { useCallback } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import styled from 'styled-components';
5
- import useAnnounceGroup from '../../Hooks/a11y/useAnnounceGroup';
5
+ import useAnnounce from '../../Hooks/a11y/useAnnounce';
6
+ import useTranslate from '../../Hooks/useTranslate';
6
7
  const StyledInput = styled.input `
7
8
  width: 0;
8
9
  height: 0;
@@ -11,12 +12,36 @@ const StyledInput = styled.input `
11
12
  outline: none;
12
13
  opacity: 0;
13
14
  `;
15
+ /**
16
+ * Provides accessibility features for repeating structures, including focus boundary handling
17
+ * and announcing changes in the view's state for accessibility purposes.
18
+ *
19
+ * @param {Object} props.a11yRef - A reference object containing accessibility-related handlers.
20
+ * @param {Object} props.view - The view object containing the current state of the repeating structure.
21
+ *
22
+ * @returns {JSX.Element} The rendered structure with accessibility features.
23
+ */
14
24
  export default function RepeatingStructureA11y({ children, a11yRef, view }) {
25
+ const [translate] = useTranslate();
15
26
  const onFocusHandler = useCallback(e => {
16
27
  a11yRef.current.boundaryElementsFocusHandler(e);
17
28
  }, [a11yRef]);
18
29
  const { state } = view;
19
- useAnnounceGroup(state);
30
+ // For show/hide columns, we only use the 'modified' message because there is always at least one column present.
31
+ // Any change—whether adding or removing a column is considered a modification for accessibility announcement.
32
+ useAnnounce(state.hiddenColumns, {
33
+ modified: translate('Show/Hide modified')
34
+ }, state.personalization?.active);
35
+ useAnnounce(state.freezeColumns, {
36
+ added: translate('Freeze applied'),
37
+ modified: translate('Freeze modified'),
38
+ removed: translate('Freeze removed')
39
+ }, state.personalization?.active);
40
+ useAnnounce(state.groups, {
41
+ added: translate('Group applied'),
42
+ modified: translate('Group modified'),
43
+ removed: translate('Group removed')
44
+ }, state.personalization?.active);
20
45
  return (_jsxs(_Fragment, { children: [_jsx(StyledInput, { className: 'top', type: 'text', "aria-hidden": true, onFocus: onFocusHandler }), children, _jsx(StyledInput, { className: 'bottom', type: 'text', "aria-hidden": true, onFocus: onFocusHandler })] }));
21
46
  }
22
47
  RepeatingStructureA11y.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"file":"RepeatingStructureA11y.js","sourceRoot":"","sources":["../../../../Core/Components/A11y/RepeatingStructureA11y.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,gBAAgB,MAAM,mCAAmC,CAAC;AAEjE,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAA;;;;;;;CAO/B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IACxE,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,CAAC,EAAE;QACF,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,CACL,8BACE,KAAC,WAAW,IAAC,SAAS,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,uBAAa,OAAO,EAAE,cAAc,GAAI,EAC/E,QAAQ,EACT,KAAC,WAAW,IAAC,SAAS,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,uBAAa,OAAO,EAAE,cAAc,GAAI,IAClF,CACJ,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC,SAAS,GAAG;IACjC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAClE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,UAAU;IAC1D,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU;CACnD,CAAC;AAEF,sBAAsB,CAAC,YAAY,GAAG;IACpC,QAAQ,EAAE,EAAE;CACb,CAAC","sourcesContent":["import { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport useAnnounceGroup from '../../Hooks/a11y/useAnnounceGroup';\n\nconst StyledInput = styled.input`\n width: 0;\n height: 0;\n border-width: 0;\n position: absolute;\n outline: none;\n opacity: 0;\n`;\n\nexport default function RepeatingStructureA11y({ children, a11yRef, view }) {\n const onFocusHandler = useCallback(\n e => {\n a11yRef.current.boundaryElementsFocusHandler(e);\n },\n [a11yRef]\n );\n const { state } = view;\n useAnnounceGroup(state);\n return (\n <>\n <StyledInput className='top' type='text' aria-hidden onFocus={onFocusHandler} />\n {children}\n <StyledInput className='bottom' type='text' aria-hidden onFocus={onFocusHandler} />\n </>\n );\n}\n\nRepeatingStructureA11y.propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n a11yRef: PropTypes.objectOf(PropTypes.objectOf).isRequired,\n view: PropTypes.objectOf(PropTypes.any).isRequired\n};\n\nRepeatingStructureA11y.defaultProps = {\n children: []\n};\n"]}
1
+ {"version":3,"file":"RepeatingStructureA11y.js","sourceRoot":"","sources":["../../../../Core/Components/A11y/RepeatingStructureA11y.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAA;;;;;;;CAO/B,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IACxE,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,CAAC,EAAE;QACF,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,iHAAiH;IACjH,8GAA8G;IAC9G,WAAW,CACT,KAAK,CAAC,aAAa,EACnB;QACE,QAAQ,EAAE,SAAS,CAAC,oBAAoB,CAAC;KAC1C,EACD,KAAK,CAAC,eAAe,EAAE,MAAM,CAC9B,CAAC;IAEF,WAAW,CACT,KAAK,CAAC,aAAa,EACnB;QACE,KAAK,EAAE,SAAS,CAAC,gBAAgB,CAAC;QAClC,QAAQ,EAAE,SAAS,CAAC,iBAAiB,CAAC;QACtC,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC;KACrC,EACD,KAAK,CAAC,eAAe,EAAE,MAAM,CAC9B,CAAC;IAEF,WAAW,CACT,KAAK,CAAC,MAAM,EACZ;QACE,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC;QACjC,QAAQ,EAAE,SAAS,CAAC,gBAAgB,CAAC;QACrC,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC;KACpC,EACD,KAAK,CAAC,eAAe,EAAE,MAAM,CAC9B,CAAC;IAEF,OAAO,CACL,8BACE,KAAC,WAAW,IAAC,SAAS,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,uBAAa,OAAO,EAAE,cAAc,GAAI,EAC/E,QAAQ,EACT,KAAC,WAAW,IAAC,SAAS,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,uBAAa,OAAO,EAAE,cAAc,GAAI,IAClF,CACJ,CAAC;AACJ,CAAC;AAED,sBAAsB,CAAC,SAAS,GAAG;IACjC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAClE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,UAAU;IAC1D,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU;CACnD,CAAC;AAEF,sBAAsB,CAAC,YAAY,GAAG;IACpC,QAAQ,EAAE,EAAE;CACb,CAAC","sourcesContent":["import { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport useAnnounce from '../../Hooks/a11y/useAnnounce';\nimport useTranslate from '../../Hooks/useTranslate';\n\nconst StyledInput = styled.input`\n width: 0;\n height: 0;\n border-width: 0;\n position: absolute;\n outline: none;\n opacity: 0;\n`;\n\n/**\n * Provides accessibility features for repeating structures, including focus boundary handling\n * and announcing changes in the view's state for accessibility purposes.\n *\n * @param {Object} props.a11yRef - A reference object containing accessibility-related handlers.\n * @param {Object} props.view - The view object containing the current state of the repeating structure.\n *\n * @returns {JSX.Element} The rendered structure with accessibility features.\n */\nexport default function RepeatingStructureA11y({ children, a11yRef, view }) {\n const [translate] = useTranslate();\n const onFocusHandler = useCallback(\n e => {\n a11yRef.current.boundaryElementsFocusHandler(e);\n },\n [a11yRef]\n );\n const { state } = view;\n // For show/hide columns, we only use the 'modified' message because there is always at least one column present.\n // Any change—whether adding or removing a column is considered a modification for accessibility announcement.\n useAnnounce(\n state.hiddenColumns,\n {\n modified: translate('Show/Hide modified')\n },\n state.personalization?.active\n );\n\n useAnnounce(\n state.freezeColumns,\n {\n added: translate('Freeze applied'),\n modified: translate('Freeze modified'),\n removed: translate('Freeze removed')\n },\n state.personalization?.active\n );\n\n useAnnounce(\n state.groups,\n {\n added: translate('Group applied'),\n modified: translate('Group modified'),\n removed: translate('Group removed')\n },\n state.personalization?.active\n );\n\n return (\n <>\n <StyledInput className='top' type='text' aria-hidden onFocus={onFocusHandler} />\n {children}\n <StyledInput className='bottom' type='text' aria-hidden onFocus={onFocusHandler} />\n </>\n );\n}\n\nRepeatingStructureA11y.propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n a11yRef: PropTypes.objectOf(PropTypes.objectOf).isRequired,\n view: PropTypes.objectOf(PropTypes.any).isRequired\n};\n\nRepeatingStructureA11y.defaultProps = {\n children: []\n};\n"]}
@@ -19,5 +19,6 @@ declare namespace AggregateMenu {
19
19
  }
20
20
  }
21
21
  export default AggregateMenu;
22
+ export function getFormattedAggregationValue(rawAggregationValue: number | string, aggregationType: string, column: import("pega-repeating-structures-core").RsCoreTypes.Column): string | number;
22
23
  import PropTypes from 'prop-types';
23
24
  //# sourceMappingURL=AggregateMenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AggregateMenu.d.ts","sourceRoot":"","sources":["../../../Core/Components/AggregateMenu.jsx"],"names":[],"mappings":"AAuCA;;;mDAmEC;;;;;;;;;;;;;;;;;;sBAzGqB,YAAY"}
1
+ {"version":3,"file":"AggregateMenu.d.ts","sourceRoot":"","sources":["../../../Core/Components/AggregateMenu.jsx"],"names":[],"mappings":"AAkEA;;;mDAwDC;;;;;;;;;;;;;;;;;;AA3EM,kEALI,MAAM,GAAC,MAAM,mBACb,MAAM,UACN,OAAO,gCAAgC,EAAE,WAAW,CAAC,MAAM,GACzD,MAAM,GAAC,MAAM,CAmBzB;sBA/DqB,YAAY"}
@@ -25,8 +25,32 @@ const StyledCell = styled.div `
25
25
  const StyledAggregationValue = styled.div `
26
26
  font-weight: ${props => props.theme.base['font-weight']['semi-bold']};
27
27
  `;
28
+ /**
29
+ * Formats the aggregation value based on the aggregation type and column context.
30
+ *
31
+ * @param {number|string} rawAggregationValue - The raw aggregation value to format.
32
+ * @param {string} aggregationType - The type of aggregation (e.g., 'Avg').
33
+ * @param {import('pega-repeating-structures-core').RsCoreTypes.Column} column - The column object.
34
+ * @returns {string|number} The formatted aggregation value or the raw value if no formatter is available.
35
+ */
36
+ export const getFormattedAggregationValue = (rawAggregationValue, aggregationType, column) => {
37
+ const formatter = column.getContext().getFormatter();
38
+ const fieldDef = column.getContext().getField();
39
+ const { fieldType } = fieldDef;
40
+ const { locale, timezone } = column.parent.meta;
41
+ if (!formatter)
42
+ return rawAggregationValue;
43
+ if (aggregationType === 'Avg' && fieldType === 'Integer') {
44
+ return formatNumber(Number(rawAggregationValue), {
45
+ locale,
46
+ useGrouping: true,
47
+ maximumFractionDigits: 2
48
+ });
49
+ }
50
+ return formatter(rawAggregationValue, { locale, timezone, fieldDef });
51
+ };
28
52
  export default function AggregateMenu({ column, context }) {
29
- const { aggregateOptions, locale, timezone } = column.parent.meta;
53
+ const { aggregateOptions } = column.parent.meta;
30
54
  const { aggregationType } = column;
31
55
  const uid = createUID();
32
56
  const [translate] = useTranslate();
@@ -39,21 +63,7 @@ export default function AggregateMenu({ column, context }) {
39
63
  if (!actions)
40
64
  return null;
41
65
  const rawAggregationValue = context.getValue();
42
- const formatter = column.getContext().getFormatter();
43
- const fieldDef = column.getContext().getField();
44
- const { fieldType } = fieldDef;
45
- const aggregationValue = (() => {
46
- if (!formatter)
47
- return rawAggregationValue;
48
- if (aggregationType === 'Avg' && fieldType === 'Integer') {
49
- return formatNumber(Number(rawAggregationValue), {
50
- locale,
51
- useGrouping: true,
52
- maximumFractionDigits: 2
53
- });
54
- }
55
- return formatter(rawAggregationValue, { locale, timezone, fieldDef });
56
- })();
66
+ const aggregationValue = getFormattedAggregationValue(rawAggregationValue, aggregationType, column);
57
67
  const buttonText = translate('Aggregate options');
58
68
  return (_jsxs(StyledCell, { children: [_jsx("span", { children: translate(aggregationType) }), _jsx(StyledMenuButton, { className: 'aggregate-button', menu: {
59
69
  items: actions,
@@ -1 +1 @@
1
- {"version":3,"file":"AggregateMenu.js","sourceRoot":"","sources":["../../../Core/Components/AggregateMenu.jsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EACL,IAAI,EACJ,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,YAAY,EACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,YAAY,MAAM,uBAAuB,CAAC;AAEjD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;WAChC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;;;;;CAK/D,CAAC;AAEF,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;CAU5B,CAAC;AAEF,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAA;iBACxB,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC;CACrE,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IACvD,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAClE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IACnC,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;IAEnC,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;QACzB,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAC7C,QAAQ,EAAE,eAAe,KAAK,KAAK;KACpC,CAAC,CAAC,CAAC;IACJ,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,mBAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,YAAY,EAAE,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;IAChD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;IAE/B,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE;QAC7B,IAAI,CAAC,SAAS;YAAE,OAAO,mBAAmB,CAAC;QAE3C,IAAI,eAAe,KAAK,KAAK,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACzD,OAAO,YAAY,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE;gBAC/C,MAAM;gBACN,WAAW,EAAE,IAAI;gBACjB,qBAAqB,EAAE,CAAC;aACzB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxE,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,UAAU,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAElD,OAAO,CACL,MAAC,UAAU,eACT,yBAAO,SAAS,CAAC,eAAe,CAAC,GAAQ,EACzC,KAAC,gBAAgB,IACf,SAAS,EAAC,kBAAkB,EAC5B,IAAI,EAAE;oBACJ,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,eAAe;iBACtB,EACD,OAAO,EAAE;oBACP,MAAM,EAAE,IAAI;iBACb,EACD,IAAI,EAAC,kBAAkB,EACvB,QAAQ,QACR,OAAO,EAAC,QAAQ,EAChB,OAAO,QACP,IAAI,EAAE,UAAU,qBACC,GAAG,GAAG,QAAQ,GAC/B,EACF,KAAC,IAAI,IACH,SAAS,QACT,EAAE,EAAE,sBAAsB,EAC1B,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,iBACN,eAAe,CAAC,qBAAqB,YAEjD,gBAAgB,GACZ,EACP,KAAC,kBAAkB,IAAC,EAAE,EAAE,GAAG,GAAG,QAAQ,iCACnC,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,UAAU,EAAE,GACjD,IACV,CACd,CAAC;AACJ,CAAC;AAED,aAAa,CAAC,SAAS,GAAG;IACxB,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC;IACzC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC;CAC3C,CAAC;AAEF,aAAa,CAAC,YAAY,GAAG;IAC3B,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;CACZ,CAAC","sourcesContent":["import styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport {\n Flex,\n MenuButton,\n VisuallyHiddenText,\n createUID,\n formatNumber\n} from '@pega/cosmos-react-core';\n\nimport useTranslate from '../Hooks/useTranslate';\n\nimport TestIdConstants from './TestIdConstants';\n\nconst StyledMenuButton = styled(MenuButton)`\n color: ${props => props.theme.base.palette['foreground-color']};\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n`;\n\nconst StyledCell = styled.div`\n display: flex;\n text-align: right;\n justify-content: flex-end;\n align-items: center;\n margin-inline-end: var(--cell-padding);\n\n &:hover {\n background-clip: padding-box;\n }\n`;\n\nconst StyledAggregationValue = styled.div`\n font-weight: ${props => props.theme.base['font-weight']['semi-bold']};\n`;\n\nexport default function AggregateMenu({ column, context }) {\n const { aggregateOptions, locale, timezone } = column.parent.meta;\n const { aggregationType } = column;\n const uid = createUID();\n const [translate] = useTranslate();\n\n const actions = aggregateOptions[column.field.type]?.map(label => ({\n primary: translate(label),\n id: label,\n onClick: () => column.applyAggregation(label),\n selected: aggregationType === label\n }));\n if (!actions) return null;\n\n const rawAggregationValue = context.getValue();\n const formatter = column.getContext().getFormatter();\n const fieldDef = column.getContext().getField();\n const { fieldType } = fieldDef;\n\n const aggregationValue = (() => {\n if (!formatter) return rawAggregationValue;\n\n if (aggregationType === 'Avg' && fieldType === 'Integer') {\n return formatNumber(Number(rawAggregationValue), {\n locale,\n useGrouping: true,\n maximumFractionDigits: 2\n });\n }\n\n return formatter(rawAggregationValue, { locale, timezone, fieldDef });\n })();\n\n const buttonText = translate('Aggregate options');\n\n return (\n <StyledCell>\n <span>{translate(aggregationType)}</span>\n <StyledMenuButton\n className='aggregate-button'\n menu={{\n items: actions,\n mode: 'single-select'\n }}\n popover={{\n portal: true\n }}\n icon='arrow-micro-down'\n iconOnly\n variant='simple'\n compact\n text={buttonText} // Text property to display tooltip on hover\n aria-labelledby={`${uid}_label`}\n />\n <Flex\n container\n as={StyledAggregationValue}\n item={{ shrink: 0 }}\n data-testid={TestIdConstants.aggregateDisplayValue}\n >\n {aggregationValue}\n </Flex>\n <VisuallyHiddenText id={`${uid}_label`} aria-hidden>\n {`${translate(aggregationType)} ${context.getValue()} ${buttonText}`}\n </VisuallyHiddenText>\n </StyledCell>\n );\n}\n\nAggregateMenu.propTypes = {\n column: PropTypes.objectOf(PropTypes.any),\n context: PropTypes.objectOf(PropTypes.any)\n};\n\nAggregateMenu.defaultProps = {\n column: {},\n context: {}\n};\n"]}
1
+ {"version":3,"file":"AggregateMenu.js","sourceRoot":"","sources":["../../../Core/Components/AggregateMenu.jsx"],"names":[],"mappings":"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","sourcesContent":["import styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport {\n Flex,\n MenuButton,\n VisuallyHiddenText,\n createUID,\n formatNumber\n} from '@pega/cosmos-react-core';\n\nimport useTranslate from '../Hooks/useTranslate';\n\nimport TestIdConstants from './TestIdConstants';\n\nconst StyledMenuButton = styled(MenuButton)`\n color: ${props => props.theme.base.palette['foreground-color']};\n svg {\n width: 1.5rem;\n height: 1.5rem;\n }\n`;\n\nconst StyledCell = styled.div`\n display: flex;\n text-align: right;\n justify-content: flex-end;\n align-items: center;\n margin-inline-end: var(--cell-padding);\n\n &:hover {\n background-clip: padding-box;\n }\n`;\n\nconst StyledAggregationValue = styled.div`\n font-weight: ${props => props.theme.base['font-weight']['semi-bold']};\n`;\n\n/**\n * Formats the aggregation value based on the aggregation type and column context.\n *\n * @param {number|string} rawAggregationValue - The raw aggregation value to format.\n * @param {string} aggregationType - The type of aggregation (e.g., 'Avg').\n * @param {import('pega-repeating-structures-core').RsCoreTypes.Column} column - The column object.\n * @returns {string|number} The formatted aggregation value or the raw value if no formatter is available.\n */\nexport const getFormattedAggregationValue = (rawAggregationValue, aggregationType, column) => {\n const formatter = column.getContext().getFormatter();\n const fieldDef = column.getContext().getField();\n const { fieldType } = fieldDef;\n const { locale, timezone } = column.parent.meta;\n\n if (!formatter) return rawAggregationValue;\n\n if (aggregationType === 'Avg' && fieldType === 'Integer') {\n return formatNumber(Number(rawAggregationValue), {\n locale,\n useGrouping: true,\n maximumFractionDigits: 2\n });\n }\n\n return formatter(rawAggregationValue, { locale, timezone, fieldDef });\n};\n\nexport default function AggregateMenu({ column, context }) {\n const { aggregateOptions } = column.parent.meta;\n const { aggregationType } = column;\n const uid = createUID();\n const [translate] = useTranslate();\n\n const actions = aggregateOptions[column.field.type]?.map(label => ({\n primary: translate(label),\n id: label,\n onClick: () => column.applyAggregation(label),\n selected: aggregationType === label\n }));\n if (!actions) return null;\n\n const rawAggregationValue = context.getValue();\n\n const aggregationValue = getFormattedAggregationValue(\n rawAggregationValue,\n aggregationType,\n column\n );\n\n const buttonText = translate('Aggregate options');\n\n return (\n <StyledCell>\n <span>{translate(aggregationType)}</span>\n <StyledMenuButton\n className='aggregate-button'\n menu={{\n items: actions,\n mode: 'single-select'\n }}\n popover={{\n portal: true\n }}\n icon='arrow-micro-down'\n iconOnly\n variant='simple'\n compact\n text={buttonText} // Text property to display tooltip on hover\n aria-labelledby={`${uid}_label`}\n />\n <Flex\n container\n as={StyledAggregationValue}\n item={{ shrink: 0 }}\n data-testid={TestIdConstants.aggregateDisplayValue}\n >\n {aggregationValue}\n </Flex>\n <VisuallyHiddenText id={`${uid}_label`} aria-hidden>\n {`${translate(aggregationType)} ${context.getValue()} ${buttonText}`}\n </VisuallyHiddenText>\n </StyledCell>\n );\n}\n\nAggregateMenu.propTypes = {\n column: PropTypes.objectOf(PropTypes.any),\n context: PropTypes.objectOf(PropTypes.any)\n};\n\nAggregateMenu.defaultProps = {\n column: {},\n context: {}\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuContainer.d.ts","sourceRoot":"","sources":["../../../../Core/Components/ContextMenu/ContextMenuContainer.jsx"],"names":[],"mappings":"AAwMA;;;mDA+GC;;;;;;;;;;;;sBAvTqB,YAAY"}
1
+ {"version":3,"file":"ContextMenuContainer.d.ts","sourceRoot":"","sources":["../../../../Core/Components/ContextMenu/ContextMenuContainer.jsx"],"names":[],"mappings":"AA4MA;;;mDA+GC;;;;;;;;;;;;sBA3TqB,YAAY"}
@@ -2,7 +2,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import PropTypes from 'prop-types';
3
3
  import { useRef, useState, useMemo, useEffect, useCallback } from 'react';
4
4
  import styled, { css } from 'styled-components';
5
- import { Popover, Icon, useElement, useOuterEvent } from '@pega/cosmos-react-core';
5
+ import { mix } from 'polished';
6
+ import { Popover, Icon, useElement, useOuterEvent, tryCatch } from '@pega/cosmos-react-core';
6
7
  import { getRowContextData, getScrollerElem, isFilterApplied } from 'pega-repeating-structures-core';
7
8
  import { createClassName as cx } from '../../Utils';
8
9
  import useTranslate from '../../Hooks/useTranslate';
@@ -13,6 +14,7 @@ const StyledPopover = styled.div `
13
14
  width: 10rem;
14
15
  `;
15
16
  const StyledContent = styled.div(({ theme }) => {
17
+ const hoverColor = tryCatch(() => mix(0.95, theme.base.palette['primary-background'], theme.base.palette.interactive));
16
18
  return css `
17
19
  white-space: nowrap;
18
20
  overflow: hidden;
@@ -24,7 +26,7 @@ const StyledContent = styled.div(({ theme }) => {
24
26
  margin-top: 0.125rem;
25
27
  margin-bottom: 0.125rem;
26
28
  :hover {
27
- background-color: ${theme.base.colors.blue['extra-light']};
29
+ background-color: ${hoverColor};
28
30
  box-shadow: ${theme.base.shadow['focus-inset']};
29
31
  }
30
32
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuContainer.js","sourceRoot":"","sources":["../../../../Core/Components/ContextMenu/ContextMenuContainer.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport { useRef, useState, useMemo, useEffect, useCallback } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Popover, Icon, useElement, useOuterEvent } from '@pega/cosmos-react-core';\nimport {\n getRowContextData,\n getScrollerElem,\n isFilterApplied\n} from 'pega-repeating-structures-core';\n\nimport { createClassName as cx } from '../../Utils';\nimport useTranslate from '../../Hooks/useTranslate';\nimport useScrollAway from '../../Hooks/useScrollAway';\n\nimport { applyFilter, quickFilterEnabled, removeFilter } from './QuickFilter';\nimport copyText from './CopyPaste';\n\nconst StyledPopover = styled.div`\n width: 10rem;\n`;\n\nconst StyledContent = styled.div(({ theme }) => {\n return css`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0.25rem;\n border-radius: 0.156rem;\n box-sizing: border-box;\n cursor: pointer;\n margin-top: 0.125rem;\n margin-bottom: 0.125rem;\n :hover {\n background-color: ${theme.base.colors.blue['extra-light']};\n box-shadow: ${theme.base.shadow['focus-inset']};\n }\n `;\n});\n\nconst StyledListItem = styled.div(({ theme }) => {\n return css`\n button {\n display: flex;\n align-items: center;\n /* stylelint-disable unit-allowed-list */\n padding: 4px 8px;\n }\n .label {\n padding-left: 14px;\n vertical-align: text-top;\n }\n .disabled {\n padding-left: 14px;\n vertical-align: text-top;\n opacity: ${theme.base['disabled-opacity']};\n }\n `;\n});\n\nconst StyledButton = styled.button`\n display: block;\n text-align: start;\n background: none;\n border: none;\n line-height: 1;\n outline: none;\n cursor: pointer;\n color: ${props => props.theme.base.palette['foreground-color']};\n border-radius: 0;\n`;\n\nconst getDefaultMenuItems = (\n column,\n rowContextData,\n targetCell,\n columns,\n filterExpression,\n actionColumnFiltering,\n actionClearFiltering,\n translate\n) => {\n const isFiltered = isFilterApplied(column, filterExpression);\n return [\n {\n id: 'quickFilter',\n icon: isFiltered ? 'times' : 'filter',\n label: isFiltered ? translate('Remove filter') : translate('Filter by this'),\n show: !!quickFilterEnabled(columns, column.field.id),\n disabled: false,\n onClick: () => {\n if (isFiltered) {\n return removeFilter(\n filterExpression,\n targetCell,\n actionColumnFiltering,\n actionClearFiltering\n );\n }\n return applyFilter(\n columns,\n targetCell,\n rowContextData,\n filterExpression,\n actionColumnFiltering\n );\n }\n },\n {\n id: 'copyText',\n icon: 'copy',\n label: translate('Copy text'),\n show: true,\n disabled: false,\n onClick: () => copyText(targetCell)\n },\n {\n id: 'pasteText',\n icon: 'documents',\n label: translate('Paste text'),\n show: true,\n disabled: true,\n onClick: () => {}\n }\n ];\n};\n\nconst getMenuItems = (\n targetCell,\n column,\n rowContextData,\n columns,\n filterExpression,\n actionColumnFiltering,\n actionClearFiltering,\n translate\n) => {\n const fieldContextOptions = column.field?.contextMenuOptions || [];\n return [\n ...getDefaultMenuItems(\n column,\n rowContextData,\n targetCell,\n columns,\n filterExpression,\n actionColumnFiltering,\n actionClearFiltering,\n translate\n ),\n ...fieldContextOptions\n ];\n};\n\nconst shouldOverrideContextMenu = (targetCell, columns) => {\n if (!targetCell) {\n return false;\n }\n const { colId } = targetCell.dataset;\n\n const { field } = columns.find(col => col.field.id.toString() === colId?.toString()) || {};\n return !(!field || field?.noContextMenu);\n};\n\nconst MenuItem = ({\n menu = {},\n target = {},\n column = {},\n rowContextData = {},\n onMenuItemClick = () => {}\n}) => {\n const { onClick = () => {}, icon, disabled = false, show = true, label } = menu;\n if (!show) {\n return null;\n }\n\n return (\n <StyledContent\n onClick={() => {\n onMenuItemClick();\n onClick(target, column, rowContextData);\n }}\n >\n <StyledListItem>\n <StyledButton>\n {icon && <Icon name={icon} />}\n <span className={cx('label', { disabled })}>{label}</span>\n </StyledButton>\n </StyledListItem>\n </StyledContent>\n );\n};\n\nMenuItem.propTypes = {\n menu: PropTypes.objectOf(PropTypes.any),\n target: PropTypes.objectOf(PropTypes.any),\n column: PropTypes.objectOf(PropTypes.any),\n rowContextData: PropTypes.objectOf(PropTypes.any),\n onMenuItemClick: PropTypes.func\n};\n\nexport default function ContextMenuContainer({ view, selector }) {\n const {\n columns,\n data,\n state: { paginationOptions, filterExpression } = {},\n domContainer,\n type: { applyFilter: applyViewFilter, clearFilter }\n } = view;\n const [translate] = useTranslate();\n const contextMenuRef = useRef({}).current;\n const [showMenu, setShowMenu] = useState(false);\n const [menuItems, setMenuItems] = useState([]);\n const [popperRef, setPopperRef] = useElement();\n const scrollerElem = useMemo(() => getScrollerElem(view), [view]);\n\n useOuterEvent('mousedown', [popperRef], () => {\n setShowMenu(false);\n });\n\n useScrollAway(popperRef, scrollerElem, () => {\n setShowMenu(false);\n });\n\n const onMenuItemClick = useCallback(event => {\n if (event && event.key !== 'Escape') {\n return;\n }\n setShowMenu(false);\n }, []);\n\n const contextMenuListener = useCallback(\n e => {\n const targetElement = selector ? e.target.closest(selector.query.toString()) : e.target;\n if (\n shouldOverrideContextMenu(targetElement, columns) &&\n // TODO: We will add \"Open link in new tab\" option in context menu once the custom context menu is made accessible.\n !e.target.closest('a')\n ) {\n e.stopPropagation();\n e.preventDefault();\n contextMenuRef.targetCell = targetElement;\n const { colId } = contextMenuRef.targetCell.dataset;\n contextMenuRef.column = columns.find(col => col.field.id.toString() === colId?.toString());\n contextMenuRef.rowContextData = getRowContextData(data, paginationOptions, targetElement);\n targetElement.classList.add('selection-border', 'disable-select');\n const options = getMenuItems(\n targetElement,\n contextMenuRef.column,\n contextMenuRef.rowContextData,\n columns,\n filterExpression,\n applyViewFilter,\n clearFilter,\n translate\n );\n setShowMenu(true);\n setMenuItems(options);\n }\n },\n\n [\n selector,\n columns,\n contextMenuRef.targetCell,\n contextMenuRef.column,\n contextMenuRef.rowContextData,\n data,\n paginationOptions,\n filterExpression,\n applyViewFilter,\n clearFilter,\n translate\n ]\n );\n\n useEffect(() => {\n if (domContainer) {\n domContainer.addEventListener('contextmenu', contextMenuListener);\n domContainer.addEventListener('keydown', onMenuItemClick);\n }\n return () => {\n if (domContainer) {\n domContainer.removeEventListener('contextmenu', contextMenuListener);\n domContainer.removeEventListener('keydown', onMenuItemClick);\n }\n };\n }, [domContainer, contextMenuListener, onMenuItemClick]);\n\n if (!contextMenuRef.targetCell || !showMenu || !domContainer) {\n if (contextMenuRef.targetCell && selector) {\n contextMenuRef.targetCell.classList.remove('selection-border', 'disable-select');\n }\n return null;\n }\n\n return (\n <Popover portal ref={setPopperRef} target={contextMenuRef.targetCell}>\n <StyledPopover>\n {menuItems.map(menu => (\n <MenuItem\n key={menu.id}\n onMenuItemClick={onMenuItemClick}\n target={contextMenuRef.targetCell}\n column={contextMenuRef.column}\n rowContextData={contextMenuRef.rowContextData}\n menu={menu}\n />\n ))}\n </StyledPopover>\n </Popover>\n );\n}\n\nContextMenuContainer.propTypes = {\n view: PropTypes.objectOf(PropTypes.any).isRequired,\n selector: PropTypes.objectOf(PropTypes.any).isRequired\n};\n"]}
1
+ {"version":3,"file":"ContextMenuContainer.js","sourceRoot":"","sources":["../../../../Core/Components/ContextMenu/ContextMenuContainer.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport { useRef, useState, useMemo, useEffect, useCallback } from 'react';\nimport styled, { css } from 'styled-components';\nimport { mix } from 'polished';\n\nimport { Popover, Icon, useElement, useOuterEvent, tryCatch } from '@pega/cosmos-react-core';\nimport {\n getRowContextData,\n getScrollerElem,\n isFilterApplied\n} from 'pega-repeating-structures-core';\n\nimport { createClassName as cx } from '../../Utils';\nimport useTranslate from '../../Hooks/useTranslate';\nimport useScrollAway from '../../Hooks/useScrollAway';\n\nimport { applyFilter, quickFilterEnabled, removeFilter } from './QuickFilter';\nimport copyText from './CopyPaste';\n\nconst StyledPopover = styled.div`\n width: 10rem;\n`;\n\nconst StyledContent = styled.div(({ theme }) => {\n const hoverColor = tryCatch(() =>\n mix(0.95, theme.base.palette['primary-background'], theme.base.palette.interactive)\n );\n return css`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0.25rem;\n border-radius: 0.156rem;\n box-sizing: border-box;\n cursor: pointer;\n margin-top: 0.125rem;\n margin-bottom: 0.125rem;\n :hover {\n background-color: ${hoverColor};\n box-shadow: ${theme.base.shadow['focus-inset']};\n }\n `;\n});\n\nconst StyledListItem = styled.div(({ theme }) => {\n return css`\n button {\n display: flex;\n align-items: center;\n /* stylelint-disable unit-allowed-list */\n padding: 4px 8px;\n }\n .label {\n padding-left: 14px;\n vertical-align: text-top;\n }\n .disabled {\n padding-left: 14px;\n vertical-align: text-top;\n opacity: ${theme.base['disabled-opacity']};\n }\n `;\n});\n\nconst StyledButton = styled.button`\n display: block;\n text-align: start;\n background: none;\n border: none;\n line-height: 1;\n outline: none;\n cursor: pointer;\n color: ${props => props.theme.base.palette['foreground-color']};\n border-radius: 0;\n`;\n\nconst getDefaultMenuItems = (\n column,\n rowContextData,\n targetCell,\n columns,\n filterExpression,\n actionColumnFiltering,\n actionClearFiltering,\n translate\n) => {\n const isFiltered = isFilterApplied(column, filterExpression);\n return [\n {\n id: 'quickFilter',\n icon: isFiltered ? 'times' : 'filter',\n label: isFiltered ? translate('Remove filter') : translate('Filter by this'),\n show: !!quickFilterEnabled(columns, column.field.id),\n disabled: false,\n onClick: () => {\n if (isFiltered) {\n return removeFilter(\n filterExpression,\n targetCell,\n actionColumnFiltering,\n actionClearFiltering\n );\n }\n return applyFilter(\n columns,\n targetCell,\n rowContextData,\n filterExpression,\n actionColumnFiltering\n );\n }\n },\n {\n id: 'copyText',\n icon: 'copy',\n label: translate('Copy text'),\n show: true,\n disabled: false,\n onClick: () => copyText(targetCell)\n },\n {\n id: 'pasteText',\n icon: 'documents',\n label: translate('Paste text'),\n show: true,\n disabled: true,\n onClick: () => {}\n }\n ];\n};\n\nconst getMenuItems = (\n targetCell,\n column,\n rowContextData,\n columns,\n filterExpression,\n actionColumnFiltering,\n actionClearFiltering,\n translate\n) => {\n const fieldContextOptions = column.field?.contextMenuOptions || [];\n return [\n ...getDefaultMenuItems(\n column,\n rowContextData,\n targetCell,\n columns,\n filterExpression,\n actionColumnFiltering,\n actionClearFiltering,\n translate\n ),\n ...fieldContextOptions\n ];\n};\n\nconst shouldOverrideContextMenu = (targetCell, columns) => {\n if (!targetCell) {\n return false;\n }\n const { colId } = targetCell.dataset;\n\n const { field } = columns.find(col => col.field.id.toString() === colId?.toString()) || {};\n return !(!field || field?.noContextMenu);\n};\n\nconst MenuItem = ({\n menu = {},\n target = {},\n column = {},\n rowContextData = {},\n onMenuItemClick = () => {}\n}) => {\n const { onClick = () => {}, icon, disabled = false, show = true, label } = menu;\n if (!show) {\n return null;\n }\n\n return (\n <StyledContent\n onClick={() => {\n onMenuItemClick();\n onClick(target, column, rowContextData);\n }}\n >\n <StyledListItem>\n <StyledButton>\n {icon && <Icon name={icon} />}\n <span className={cx('label', { disabled })}>{label}</span>\n </StyledButton>\n </StyledListItem>\n </StyledContent>\n );\n};\n\nMenuItem.propTypes = {\n menu: PropTypes.objectOf(PropTypes.any),\n target: PropTypes.objectOf(PropTypes.any),\n column: PropTypes.objectOf(PropTypes.any),\n rowContextData: PropTypes.objectOf(PropTypes.any),\n onMenuItemClick: PropTypes.func\n};\n\nexport default function ContextMenuContainer({ view, selector }) {\n const {\n columns,\n data,\n state: { paginationOptions, filterExpression } = {},\n domContainer,\n type: { applyFilter: applyViewFilter, clearFilter }\n } = view;\n const [translate] = useTranslate();\n const contextMenuRef = useRef({}).current;\n const [showMenu, setShowMenu] = useState(false);\n const [menuItems, setMenuItems] = useState([]);\n const [popperRef, setPopperRef] = useElement();\n const scrollerElem = useMemo(() => getScrollerElem(view), [view]);\n\n useOuterEvent('mousedown', [popperRef], () => {\n setShowMenu(false);\n });\n\n useScrollAway(popperRef, scrollerElem, () => {\n setShowMenu(false);\n });\n\n const onMenuItemClick = useCallback(event => {\n if (event && event.key !== 'Escape') {\n return;\n }\n setShowMenu(false);\n }, []);\n\n const contextMenuListener = useCallback(\n e => {\n const targetElement = selector ? e.target.closest(selector.query.toString()) : e.target;\n if (\n shouldOverrideContextMenu(targetElement, columns) &&\n // TODO: We will add \"Open link in new tab\" option in context menu once the custom context menu is made accessible.\n !e.target.closest('a')\n ) {\n e.stopPropagation();\n e.preventDefault();\n contextMenuRef.targetCell = targetElement;\n const { colId } = contextMenuRef.targetCell.dataset;\n contextMenuRef.column = columns.find(col => col.field.id.toString() === colId?.toString());\n contextMenuRef.rowContextData = getRowContextData(data, paginationOptions, targetElement);\n targetElement.classList.add('selection-border', 'disable-select');\n const options = getMenuItems(\n targetElement,\n contextMenuRef.column,\n contextMenuRef.rowContextData,\n columns,\n filterExpression,\n applyViewFilter,\n clearFilter,\n translate\n );\n setShowMenu(true);\n setMenuItems(options);\n }\n },\n\n [\n selector,\n columns,\n contextMenuRef.targetCell,\n contextMenuRef.column,\n contextMenuRef.rowContextData,\n data,\n paginationOptions,\n filterExpression,\n applyViewFilter,\n clearFilter,\n translate\n ]\n );\n\n useEffect(() => {\n if (domContainer) {\n domContainer.addEventListener('contextmenu', contextMenuListener);\n domContainer.addEventListener('keydown', onMenuItemClick);\n }\n return () => {\n if (domContainer) {\n domContainer.removeEventListener('contextmenu', contextMenuListener);\n domContainer.removeEventListener('keydown', onMenuItemClick);\n }\n };\n }, [domContainer, contextMenuListener, onMenuItemClick]);\n\n if (!contextMenuRef.targetCell || !showMenu || !domContainer) {\n if (contextMenuRef.targetCell && selector) {\n contextMenuRef.targetCell.classList.remove('selection-border', 'disable-select');\n }\n return null;\n }\n\n return (\n <Popover portal ref={setPopperRef} target={contextMenuRef.targetCell}>\n <StyledPopover>\n {menuItems.map(menu => (\n <MenuItem\n key={menu.id}\n onMenuItemClick={onMenuItemClick}\n target={contextMenuRef.targetCell}\n column={contextMenuRef.column}\n rowContextData={contextMenuRef.rowContextData}\n menu={menu}\n />\n ))}\n </StyledPopover>\n </Popover>\n );\n}\n\nContextMenuContainer.propTypes = {\n view: PropTypes.objectOf(PropTypes.any).isRequired,\n selector: PropTypes.objectOf(PropTypes.any).isRequired\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import get from 'lodash.get';
2
- import { addFilter, getFilters, comparatorMap } from 'pega-repeating-structures-core';
2
+ import { addFilter, getFilters, comparatorMap, FieldType } from 'pega-repeating-structures-core';
3
3
  import { TOOLBAR_FEATURES } from '../../constants';
4
4
  const getBooleanComparator = inputValue => {
5
5
  let comparator;
@@ -21,21 +21,21 @@ export const quickFilterEnabled = (columns, colId) => {
21
21
  const column = columns.find(col => col.field.id.toString() === colId.toString());
22
22
  return (column &&
23
23
  column.parent.shouldDisplayFeature(TOOLBAR_FEATURES.FILTER, column) &&
24
- !(column.field.type === 'date' || column.field.type === 'datetime'));
24
+ !(column.field.type === FieldType.DATE || column.field.type === FieldType.DATE_TIME));
25
25
  };
26
26
  export const applyFilter = (columns, targetCell, rowContextData, filterExpression, actionColumnFiltering) => {
27
27
  // preparing filter object to apply equals filter
28
28
  const { colId } = targetCell.dataset;
29
29
  const column = columns.find(col => col.field.id.toString() === colId.toString());
30
30
  const inputValue = get(rowContextData, column.field.name);
31
- const isPickList = column.field.type === 'text' && column.field.filterPickList;
31
+ const isPickList = column.field.type === FieldType.TEXT && column.field.filterPickList;
32
32
  let comparator;
33
33
  let input;
34
34
  // decide the comparator based on filtered value or column type
35
35
  if (inputValue === null || inputValue === undefined) {
36
36
  comparator = comparatorMap.isNull;
37
37
  }
38
- else if (column.field.type === 'boolean') {
38
+ else if (column.field.type === FieldType.BOOLEAN) {
39
39
  comparator = getBooleanComparator(inputValue);
40
40
  }
41
41
  else if (isPickList) {
@@ -45,10 +45,10 @@ export const applyFilter = (columns, targetCell, rowContextData, filterExpressio
45
45
  comparator = comparatorMap.equals;
46
46
  }
47
47
  // decide input value for expression rhs
48
- if (column.field.type === 'number') {
48
+ if (column.field.type === FieldType.NUMBER) {
49
49
  input = inputValue && parseFloat(inputValue);
50
50
  }
51
- else if (column.field.type === 'boolean') {
51
+ else if (column.field.type === FieldType.BOOLEAN) {
52
52
  input = null;
53
53
  }
54
54
  else if (isPickList) {
@@ -1 +1 @@
1
- {"version":3,"file":"QuickFilter.js","sourceRoot":"","sources":["../../../../Core/Components/ContextMenu/QuickFilter.js"],"names":[],"mappings":"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","sourcesContent":["import get from 'lodash.get';\n\nimport { addFilter, getFilters, comparatorMap } from 'pega-repeating-structures-core';\n\nimport { TOOLBAR_FEATURES } from '../../constants';\n\nconst getBooleanComparator = inputValue => {\n let comparator;\n if (inputValue?.toString().toLowerCase() === 'true') {\n comparator = comparatorMap.isTrue;\n } else if (inputValue?.toString().toLowerCase() === 'false') {\n comparator = comparatorMap.isFalse;\n } else {\n comparator = comparatorMap.isNull;\n }\n return comparator;\n};\n\nexport const quickFilterEnabled = (columns, colId) => {\n if (!colId) {\n return false;\n }\n const column = columns.find(col => col.field.id.toString() === colId.toString());\n return (\n column &&\n column.parent.shouldDisplayFeature(TOOLBAR_FEATURES.FILTER, column) &&\n !(column.field.type === 'date' || column.field.type === 'datetime')\n );\n};\n\nexport const applyFilter = (\n columns,\n targetCell,\n rowContextData,\n filterExpression,\n actionColumnFiltering\n) => {\n // preparing filter object to apply equals filter\n const { colId } = targetCell.dataset;\n const column = columns.find(col => col.field.id.toString() === colId.toString());\n const inputValue = get(rowContextData, column.field.name);\n const isPickList = column.field.type === 'text' && column.field.filterPickList;\n let comparator;\n let input;\n\n // decide the comparator based on filtered value or column type\n if (inputValue === null || inputValue === undefined) {\n comparator = comparatorMap.isNull;\n } else if (column.field.type === 'boolean') {\n comparator = getBooleanComparator(inputValue);\n } else if (isPickList) {\n comparator = comparatorMap.in;\n } else {\n comparator = comparatorMap.equals;\n }\n\n // decide input value for expression rhs\n if (column.field.type === 'number') {\n input = inputValue && parseFloat(inputValue);\n } else if (column.field.type === 'boolean') {\n input = null;\n } else if (isPickList) {\n input = inputValue && [inputValue];\n } else {\n input = inputValue;\n }\n\n const localFilterExpression = addFilter({\n comparator,\n input,\n filterExpression,\n column\n });\n actionColumnFiltering({\n filterExp: localFilterExpression\n });\n};\n\nexport const removeFilter = (\n filterExpression,\n targetCell,\n actionColumnFiltering,\n actionClearFiltering\n) => {\n const filters = getFilters({ filterExpression });\n if (filters.length > 1) {\n // removing equals filter applied on current column\n actionClearFiltering(targetCell.dataset.colId);\n } else {\n actionColumnFiltering({\n filterExp: null\n });\n }\n};\n"]}
1
+ {"version":3,"file":"QuickFilter.js","sourceRoot":"","sources":["../../../../Core/Components/ContextMenu/QuickFilter.js"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,oBAAoB,GAAG,UAAU,CAAC,EAAE;IACxC,IAAI,UAAU,CAAC;IACf,IAAI,UAAU,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;QACpD,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;IACpC,CAAC;SAAM,IAAI,UAAU,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC;QAC5D,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;IACpC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;IACnD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjF,OAAO,CACL,MAAM;QACN,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC;QACnE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,CACrF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,OAAO,EACP,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,EAAE;IACF,iDAAiD;IACjD,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;IACvF,IAAI,UAAU,CAAC;IACf,IAAI,KAAK,CAAC;IAEV,+DAA+D;IAC/D,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACpD,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;IACpC,CAAC;SAAM,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;QACnD,UAAU,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,wCAAwC;IACxC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QAC3C,KAAK,GAAG,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;QACnD,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,KAAK,GAAG,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,UAAU,CAAC;IACrB,CAAC;IAED,MAAM,qBAAqB,GAAG,SAAS,CAAC;QACtC,UAAU;QACV,KAAK;QACL,gBAAgB;QAChB,MAAM;KACP,CAAC,CAAC;IACH,qBAAqB,CAAC;QACpB,SAAS,EAAE,qBAAqB;KACjC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACrB,oBAAoB,EACpB,EAAE;IACF,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,mDAAmD;QACnD,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,qBAAqB,CAAC;YACpB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC","sourcesContent":["import get from 'lodash.get';\n\nimport { addFilter, getFilters, comparatorMap, FieldType } from 'pega-repeating-structures-core';\n\nimport { TOOLBAR_FEATURES } from '../../constants';\n\nconst getBooleanComparator = inputValue => {\n let comparator;\n if (inputValue?.toString().toLowerCase() === 'true') {\n comparator = comparatorMap.isTrue;\n } else if (inputValue?.toString().toLowerCase() === 'false') {\n comparator = comparatorMap.isFalse;\n } else {\n comparator = comparatorMap.isNull;\n }\n return comparator;\n};\n\nexport const quickFilterEnabled = (columns, colId) => {\n if (!colId) {\n return false;\n }\n const column = columns.find(col => col.field.id.toString() === colId.toString());\n return (\n column &&\n column.parent.shouldDisplayFeature(TOOLBAR_FEATURES.FILTER, column) &&\n !(column.field.type === FieldType.DATE || column.field.type === FieldType.DATE_TIME)\n );\n};\n\nexport const applyFilter = (\n columns,\n targetCell,\n rowContextData,\n filterExpression,\n actionColumnFiltering\n) => {\n // preparing filter object to apply equals filter\n const { colId } = targetCell.dataset;\n const column = columns.find(col => col.field.id.toString() === colId.toString());\n const inputValue = get(rowContextData, column.field.name);\n const isPickList = column.field.type === FieldType.TEXT && column.field.filterPickList;\n let comparator;\n let input;\n\n // decide the comparator based on filtered value or column type\n if (inputValue === null || inputValue === undefined) {\n comparator = comparatorMap.isNull;\n } else if (column.field.type === FieldType.BOOLEAN) {\n comparator = getBooleanComparator(inputValue);\n } else if (isPickList) {\n comparator = comparatorMap.in;\n } else {\n comparator = comparatorMap.equals;\n }\n\n // decide input value for expression rhs\n if (column.field.type === FieldType.NUMBER) {\n input = inputValue && parseFloat(inputValue);\n } else if (column.field.type === FieldType.BOOLEAN) {\n input = null;\n } else if (isPickList) {\n input = inputValue && [inputValue];\n } else {\n input = inputValue;\n }\n\n const localFilterExpression = addFilter({\n comparator,\n input,\n filterExpression,\n column\n });\n actionColumnFiltering({\n filterExp: localFilterExpression\n });\n};\n\nexport const removeFilter = (\n filterExpression,\n targetCell,\n actionColumnFiltering,\n actionClearFiltering\n) => {\n const filters = getFilters({ filterExpression });\n if (filters.length > 1) {\n // removing equals filter applied on current column\n actionClearFiltering(targetCell.dataset.colId);\n } else {\n actionColumnFiltering({\n filterExp: null\n });\n }\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DateTime.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.jsx"],"names":[],"mappings":";AASA,+EAkCC;;;;;;;;;sBA1CqB,YAAY"}
1
+ {"version":3,"file":"DateTime.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.jsx"],"names":[],"mappings":";AAUA,+EAoCC;;;;;;;;;sBA7CqB,YAAY"}
@@ -2,6 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useState, useRef, useEffect } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import { Input } from '@pega/cosmos-react-core';
5
+ import { FieldType } from 'pega-repeating-structures-core';
5
6
  const styles = {
6
7
  input: { width: '100%' }
7
8
  };
@@ -9,7 +10,7 @@ function DateTime(props) {
9
10
  const { getField, getValue } = props;
10
11
  const { type } = getField();
11
12
  const oldValue = getValue();
12
- const [value, setValue] = useState(type === 'datetime' ? oldValue?.slice(0, -1) : oldValue);
13
+ const [value, setValue] = useState(type === FieldType.DATE_TIME ? oldValue?.slice(0, -1) : oldValue);
13
14
  const inputRef = useRef(null);
14
15
  const onChange = event => setValue(event.target.value);
15
16
  const onEscape = event => {
@@ -21,7 +22,7 @@ function DateTime(props) {
21
22
  useEffect(() => {
22
23
  inputRef.current?.focus();
23
24
  }, [inputRef]);
24
- return (_jsx(Input, { ...props, type: type === 'datetime' ? 'datetime-local' : type, value: value, style: styles.input, ref: ref => {
25
+ return (_jsx(Input, { ...props, type: type === FieldType.DATE_TIME ? 'datetime-local' : type, value: value, style: styles.input, ref: ref => {
25
26
  inputRef.current = ref;
26
27
  }, onChange: onChange, onBlur: onBlur, onKeyDown: onEscape }));
27
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;CACzB,CAAC;AAEF,SAAS,QAAQ,CAAC,KAAK;IACrB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAC5B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC5F,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE;QACvB,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC3B,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,KAAC,KAAK,OACA,KAAK,EACT,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EACnD,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,GAAG,EAAE,GAAG,CAAC,EAAE;YACT,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC;QACzB,CAAC,EACD,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,GACnB,CACH,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,SAAS,GAAG;IACnB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;CACpC,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Input } from '@pega/cosmos-react-core';\n\nconst styles = {\n input: { width: '100%' }\n};\n\nfunction DateTime(props) {\n const { getField, getValue } = props;\n const { type } = getField();\n const oldValue = getValue();\n const [value, setValue] = useState(type === 'datetime' ? oldValue?.slice(0, -1) : oldValue);\n const inputRef = useRef(null);\n\n const onChange = event => setValue(event.target.value);\n\n const onEscape = event => {\n if (event.key === 'Escape') {\n props.onCancel();\n }\n };\n\n const onBlur = () => props.onSubmit({ oldValue, newValue: value });\n useEffect(() => {\n inputRef.current?.focus();\n }, [inputRef]);\n\n return (\n <Input\n {...props}\n type={type === 'datetime' ? 'datetime-local' : type}\n value={value}\n style={styles.input}\n ref={ref => {\n inputRef.current = ref;\n }}\n onChange={onChange}\n onBlur={onBlur}\n onKeyDown={onEscape}\n />\n );\n}\n\nDateTime.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n getField: PropTypes.func.isRequired,\n getValue: PropTypes.func.isRequired\n};\n\nexport default DateTime;\n"]}
1
+ {"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/DateTime.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;CACzB,CAAC;AAEF,SAAS,QAAQ,CAAC,KAAK;IACrB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAC5B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAChC,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CACjE,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE;QACvB,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC3B,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,KAAC,KAAK,OACA,KAAK,EACT,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAC5D,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,GAAG,EAAE,GAAG,CAAC,EAAE;YACT,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC;QACzB,CAAC,EACD,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,GACnB,CACH,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,SAAS,GAAG;IACnB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;CACpC,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Input } from '@pega/cosmos-react-core';\nimport { FieldType } from 'pega-repeating-structures-core';\n\nconst styles = {\n input: { width: '100%' }\n};\n\nfunction DateTime(props) {\n const { getField, getValue } = props;\n const { type } = getField();\n const oldValue = getValue();\n const [value, setValue] = useState(\n type === FieldType.DATE_TIME ? oldValue?.slice(0, -1) : oldValue\n );\n const inputRef = useRef(null);\n\n const onChange = event => setValue(event.target.value);\n\n const onEscape = event => {\n if (event.key === 'Escape') {\n props.onCancel();\n }\n };\n\n const onBlur = () => props.onSubmit({ oldValue, newValue: value });\n useEffect(() => {\n inputRef.current?.focus();\n }, [inputRef]);\n\n return (\n <Input\n {...props}\n type={type === FieldType.DATE_TIME ? 'datetime-local' : type}\n value={value}\n style={styles.input}\n ref={ref => {\n inputRef.current = ref;\n }}\n onChange={onChange}\n onBlur={onBlur}\n onKeyDown={onEscape}\n />\n );\n}\n\nDateTime.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n getField: PropTypes.func.isRequired,\n getValue: PropTypes.func.isRequired\n};\n\nexport default DateTime;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.jsx"],"names":[],"mappings":";AAQA,iFA+CC;;;;;;;;;;;;sBAtDqB,YAAY"}
1
+ {"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.jsx"],"names":[],"mappings":";AASA,iFA+CC;;;;;;;;;;;;sBAvDqB,YAAY"}
@@ -3,6 +3,7 @@ import { useState } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import styled from 'styled-components';
5
5
  import { RadioButton, RadioCheckGroup } from '@pega/cosmos-react-core';
6
+ import { FieldType } from 'pega-repeating-structures-core';
6
7
  const StyledRadioGroup = styled.div ``;
7
8
  function RadioGroup(props) {
8
9
  const { getField, getValue, getFormatter, renderFactory, resolveCellComponent } = props;
@@ -13,11 +14,11 @@ function RadioGroup(props) {
13
14
  ? 'Empty'
14
15
  : oldValue;
15
16
  const [value, setValue] = useState(translatedValue);
16
- const radioOptions = field.type === 'boolean' ? [true, false, 'Empty'] : field.filterPickListOptions;
17
+ const radioOptions = field.type === FieldType.BOOLEAN ? [true, false, 'Empty'] : field.filterPickListOptions;
17
18
  const onChange = event => {
18
19
  setValue(event.target.id);
19
20
  let newValue = event.target.id;
20
- if (field.type === 'boolean') {
21
+ if (field.type === FieldType.BOOLEAN) {
21
22
  if (event.target.id === 'Empty')
22
23
  newValue = null;
23
24
  else
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.js","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.jsx"],"names":[],"mappings":"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","sourcesContent":["import { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { RadioButton, RadioCheckGroup } from '@pega/cosmos-react-core';\n\nconst StyledRadioGroup = styled.div``;\n\nfunction RadioGroup(props) {\n const { getField, getValue, getFormatter, renderFactory, resolveCellComponent } = props;\n const field = getField();\n const { id } = field;\n const oldValue = getValue();\n const translatedValue =\n oldValue === 'null' || oldValue === '' || oldValue === null || typeof oldValue === 'undefined'\n ? 'Empty'\n : oldValue;\n const [value, setValue] = useState(translatedValue);\n const radioOptions =\n field.type === 'boolean' ? [true, false, 'Empty'] : field.filterPickListOptions;\n const onChange = event => {\n setValue(event.target.id);\n let newValue = event.target.id;\n if (field.type === 'boolean') {\n if (event.target.id === 'Empty') newValue = null;\n else newValue = event.target.id === 'true';\n }\n props.onSubmit({ oldValue, newValue });\n };\n\n return (\n <StyledRadioGroup>\n <RadioCheckGroup name={id}>\n {radioOptions.map(item => {\n const checkedProp = {};\n if (item === value) checkedProp.defaultChecked = true;\n\n return (\n <RadioButton\n key={`${item}`}\n id={`${item}`}\n name={`${item}`}\n onClick={onChange}\n label={resolveCellComponent('cellRenderer', renderFactory, {\n ...props,\n getValue: () => item.toString(),\n getFormattedValue: () => getFormatter?.()?.(item) || item.toString()\n })}\n {...checkedProp}\n />\n );\n })}\n </RadioCheckGroup>\n </StyledRadioGroup>\n );\n}\n\nRadioGroup.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n getField: PropTypes.func.isRequired,\n getValue: PropTypes.func.isRequired,\n getFormatter: PropTypes.func.isRequired,\n renderFactory: PropTypes.func.isRequired,\n resolveCellComponent: PropTypes.func.isRequired\n};\n\nexport default RadioGroup;\n"]}
1
+ {"version":3,"file":"Radio.js","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/Radio.jsx"],"names":[],"mappings":"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","sourcesContent":["import { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { RadioButton, RadioCheckGroup } from '@pega/cosmos-react-core';\nimport { FieldType } from 'pega-repeating-structures-core';\n\nconst StyledRadioGroup = styled.div``;\n\nfunction RadioGroup(props) {\n const { getField, getValue, getFormatter, renderFactory, resolveCellComponent } = props;\n const field = getField();\n const { id } = field;\n const oldValue = getValue();\n const translatedValue =\n oldValue === 'null' || oldValue === '' || oldValue === null || typeof oldValue === 'undefined'\n ? 'Empty'\n : oldValue;\n const [value, setValue] = useState(translatedValue);\n const radioOptions =\n field.type === FieldType.BOOLEAN ? [true, false, 'Empty'] : field.filterPickListOptions;\n const onChange = event => {\n setValue(event.target.id);\n let newValue = event.target.id;\n if (field.type === FieldType.BOOLEAN) {\n if (event.target.id === 'Empty') newValue = null;\n else newValue = event.target.id === 'true';\n }\n props.onSubmit({ oldValue, newValue });\n };\n\n return (\n <StyledRadioGroup>\n <RadioCheckGroup name={id}>\n {radioOptions.map(item => {\n const checkedProp = {};\n if (item === value) checkedProp.defaultChecked = true;\n\n return (\n <RadioButton\n key={`${item}`}\n id={`${item}`}\n name={`${item}`}\n onClick={onChange}\n label={resolveCellComponent('cellRenderer', renderFactory, {\n ...props,\n getValue: () => item.toString(),\n getFormattedValue: () => getFormatter?.()?.(item) || item.toString()\n })}\n {...checkedProp}\n />\n );\n })}\n </RadioCheckGroup>\n </StyledRadioGroup>\n );\n}\n\nRadioGroup.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n getField: PropTypes.func.isRequired,\n getValue: PropTypes.func.isRequired,\n getFormatter: PropTypes.func.isRequired,\n renderFactory: PropTypes.func.isRequired,\n resolveCellComponent: PropTypes.func.isRequired\n};\n\nexport default RadioGroup;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/index.jsx"],"names":[],"mappings":";AAaA,6EA8DC;;;;;;;;;;;;;sBA3EqB,YAAY"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/index.jsx"],"names":[],"mappings":";AAcA,6EA8DC;;;;;;;;;;;;;sBA5EqB,YAAY"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
2
2
  import PropTypes from 'prop-types';
3
3
  import styled from 'styled-components';
4
4
  import { Popover, useElement, useOuterEvent } from '@pega/cosmos-react-core';
5
+ import { FieldType } from 'pega-repeating-structures-core';
5
6
  import TextInput from './TextInput';
6
7
  import DateTime from './DateTime';
7
8
  import Radio from './Radio';
@@ -13,7 +14,7 @@ function Editor(props) {
13
14
  const { getField, onCancel, getElement, setEditContext, getFormatter, getValue, renderFactory, resolveCellComponent } = props;
14
15
  setEditContext();
15
16
  const { type, filterPickList, filterPickListOptions } = getField();
16
- const showInPopOver = type === 'boolean' || (filterPickList && filterPickListOptions);
17
+ const showInPopOver = type === FieldType.BOOLEAN || (filterPickList && filterPickListOptions);
17
18
  const [popperRef, setPopperRef] = useElement();
18
19
  const [popperTarget, setPopperTarget] = useElement(getElement());
19
20
  useOuterEvent('mousedown', [popperRef], () => {
@@ -23,15 +24,15 @@ function Editor(props) {
23
24
  });
24
25
  let Component = null;
25
26
  switch (type) {
26
- case 'text':
27
- case 'number':
27
+ case FieldType.TEXT:
28
+ case FieldType.NUMBER:
28
29
  Component = TextInput;
29
30
  break;
30
- case 'date':
31
- case 'datetime':
31
+ case FieldType.DATE:
32
+ case FieldType.DATE_TIME:
32
33
  Component = DateTime;
33
34
  break;
34
- case 'boolean':
35
+ case FieldType.BOOLEAN:
35
36
  Component = Radio;
36
37
  break;
37
38
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/index.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Popover, useElement, useOuterEvent } from '@pega/cosmos-react-core';\n\nimport TextInput from './TextInput';\nimport DateTime from './DateTime';\nimport Radio from './Radio';\n\nconst StyledPopover = styled.div`\n padding: 1rem;\n min-width: 7rem;\n`;\nfunction Editor(props) {\n const {\n getField,\n onCancel,\n getElement,\n setEditContext,\n getFormatter,\n getValue,\n renderFactory,\n resolveCellComponent\n } = props;\n setEditContext();\n\n const { type, filterPickList, filterPickListOptions } = getField();\n const showInPopOver = type === 'boolean' || (filterPickList && filterPickListOptions);\n const [popperRef, setPopperRef] = useElement();\n const [popperTarget, setPopperTarget] = useElement(getElement());\n\n useOuterEvent('mousedown', [popperRef], () => {\n setPopperTarget(null);\n if (showInPopOver) onCancel();\n });\n let Component = null;\n switch (type) {\n case 'text':\n case 'number':\n Component = TextInput;\n break;\n case 'date':\n case 'datetime':\n Component = DateTime;\n break;\n case 'boolean':\n Component = Radio;\n break;\n\n default:\n Component = TextInput;\n break;\n }\n if (filterPickList && filterPickListOptions) {\n Component = Radio;\n }\n\n if (!showInPopOver) return <Component {...props} />;\n const value = getValue();\n return (\n <>\n {resolveCellComponent('cellRenderer', renderFactory, {\n ...props,\n getFormattedValue: () => getFormatter?.()?.(value) || value\n })}\n\n {showInPopOver && (\n <Popover ref={setPopperRef} className='editpopper' target={popperTarget}>\n <StyledPopover>\n <Component {...props} />\n </StyledPopover>\n </Popover>\n )}\n </>\n );\n}\n\nEditor.propTypes = {\n getField: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n getElement: PropTypes.func.isRequired,\n setEditContext: PropTypes.func.isRequired,\n getFormatter: PropTypes.func.isRequired,\n getValue: PropTypes.func.isRequired,\n renderFactory: PropTypes.func.isRequired,\n resolveCellComponent: PropTypes.func.isRequired\n};\n\nexport default Editor;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../Core/Components/DefaultComponents/CellRenderers/EditComponents/index.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Popover, useElement, useOuterEvent } from '@pega/cosmos-react-core';\nimport { FieldType } from 'pega-repeating-structures-core';\n\nimport TextInput from './TextInput';\nimport DateTime from './DateTime';\nimport Radio from './Radio';\n\nconst StyledPopover = styled.div`\n padding: 1rem;\n min-width: 7rem;\n`;\nfunction Editor(props) {\n const {\n getField,\n onCancel,\n getElement,\n setEditContext,\n getFormatter,\n getValue,\n renderFactory,\n resolveCellComponent\n } = props;\n setEditContext();\n\n const { type, filterPickList, filterPickListOptions } = getField();\n const showInPopOver = type === FieldType.BOOLEAN || (filterPickList && filterPickListOptions);\n const [popperRef, setPopperRef] = useElement();\n const [popperTarget, setPopperTarget] = useElement(getElement());\n\n useOuterEvent('mousedown', [popperRef], () => {\n setPopperTarget(null);\n if (showInPopOver) onCancel();\n });\n let Component = null;\n switch (type) {\n case FieldType.TEXT:\n case FieldType.NUMBER:\n Component = TextInput;\n break;\n case FieldType.DATE:\n case FieldType.DATE_TIME:\n Component = DateTime;\n break;\n case FieldType.BOOLEAN:\n Component = Radio;\n break;\n\n default:\n Component = TextInput;\n break;\n }\n if (filterPickList && filterPickListOptions) {\n Component = Radio;\n }\n\n if (!showInPopOver) return <Component {...props} />;\n const value = getValue();\n return (\n <>\n {resolveCellComponent('cellRenderer', renderFactory, {\n ...props,\n getFormattedValue: () => getFormatter?.()?.(value) || value\n })}\n\n {showInPopOver && (\n <Popover ref={setPopperRef} className='editpopper' target={popperTarget}>\n <StyledPopover>\n <Component {...props} />\n </StyledPopover>\n </Popover>\n )}\n </>\n );\n}\n\nEditor.propTypes = {\n getField: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n getElement: PropTypes.func.isRequired,\n setEditContext: PropTypes.func.isRequired,\n getFormatter: PropTypes.func.isRequired,\n getValue: PropTypes.func.isRequired,\n renderFactory: PropTypes.func.isRequired,\n resolveCellComponent: PropTypes.func.isRequired\n};\n\nexport default Editor;\n"]}
@@ -1,7 +1,8 @@
1
1
  export default RowActionMenu;
2
- declare function RowActionMenu({ getRsMeta, getExecutionContext }: {
2
+ declare function RowActionMenu({ getRsMeta, getExecutionContext, getParentContext }: {
3
3
  getRsMeta: any;
4
4
  getExecutionContext: any;
5
+ getParentContext: any;
5
6
  }): import("react/jsx-runtime").JSX.Element;
6
7
  declare namespace RowActionMenu {
7
8
  namespace propTypes {
@@ -1 +1 @@
1
- {"version":3,"file":"RowActionMenu.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/DefaultComponents/CellRenderers/RowActionMenu.jsx"],"names":[],"mappings":";AA6BA;;;4CA8DC;;;;;;;sBAzFqB,YAAY"}
1
+ {"version":3,"file":"RowActionMenu.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/DefaultComponents/CellRenderers/RowActionMenu.jsx"],"names":[],"mappings":";AAkBA;;;;4CA0DC;;;;;;;sBA3EqB,YAAY"}