@pega/lists-react 10.0.0-build.1.9 → 10.0.0-build.10.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 (252) hide show
  1. package/README.md +284 -83
  2. package/lib/Core/Components/AggregateMenu.d.ts.map +1 -1
  3. package/lib/Core/Components/AggregateMenu.js +2 -1
  4. package/lib/Core/Components/AggregateMenu.js.map +1 -1
  5. package/lib/Core/Components/Card/CardFieldValue.d.ts +8 -0
  6. package/lib/Core/Components/Card/CardFieldValue.d.ts.map +1 -0
  7. package/lib/Core/Components/Card/CardFieldValue.js +8 -0
  8. package/lib/Core/Components/Card/CardFieldValue.js.map +1 -0
  9. package/lib/Core/Components/Card/CardHeader.d.ts +9 -0
  10. package/lib/Core/Components/Card/CardHeader.d.ts.map +1 -0
  11. package/lib/Core/{Views/Gallery/Components/GalleryHeader.js → Components/Card/CardHeader.js} +6 -5
  12. package/lib/Core/Components/Card/CardHeader.js.map +1 -0
  13. package/lib/Core/Components/Card/CardSubHeading.d.ts +10 -0
  14. package/lib/Core/Components/Card/CardSubHeading.d.ts.map +1 -0
  15. package/lib/Core/Components/Card/CardSubHeading.js +9 -0
  16. package/lib/Core/Components/Card/CardSubHeading.js.map +1 -0
  17. package/lib/Core/Components/Card/cardData.d.ts +48 -0
  18. package/lib/Core/Components/Card/cardData.d.ts.map +1 -0
  19. package/lib/Core/{Views/Gallery/utils.js → Components/Card/cardData.js} +55 -52
  20. package/lib/Core/Components/Card/cardData.js.map +1 -0
  21. package/lib/Core/Components/Card/index.d.ts +4 -0
  22. package/lib/Core/Components/Card/index.d.ts.map +1 -0
  23. package/lib/Core/Components/Card/index.js +4 -0
  24. package/lib/Core/Components/Card/index.js.map +1 -0
  25. package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.d.ts.map +1 -1
  26. package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.js +6 -53
  27. package/lib/Core/Components/DefaultComponents/CellRenderers/RowActionMenu.js.map +1 -1
  28. package/lib/Core/Components/DefaultComponents/CellRenderers/RowDeleteAction.d.ts.map +1 -1
  29. package/lib/Core/Components/DefaultComponents/CellRenderers/RowDeleteAction.js +12 -2
  30. package/lib/Core/Components/DefaultComponents/CellRenderers/RowDeleteAction.js.map +1 -1
  31. package/lib/Core/Components/DefaultComponents/CellRenderers/RowSelectHandle.js +9 -2
  32. package/lib/Core/Components/DefaultComponents/CellRenderers/RowSelectHandle.js.map +1 -1
  33. package/lib/Core/Components/DefaultComponents/EmptyContainer.d.ts +2 -1
  34. package/lib/Core/Components/DefaultComponents/EmptyContainer.d.ts.map +1 -1
  35. package/lib/Core/Components/DefaultComponents/EmptyContainer.js +3 -3
  36. package/lib/Core/Components/DefaultComponents/EmptyContainer.js.map +1 -1
  37. package/lib/Core/Components/DefaultComponents/PersonalizationCreateEdit.d.ts.map +1 -1
  38. package/lib/Core/Components/DefaultComponents/PersonalizationCreateEdit.js +5 -4
  39. package/lib/Core/Components/DefaultComponents/PersonalizationCreateEdit.js.map +1 -1
  40. package/lib/Core/Components/DefaultComponents/index.d.ts +2 -1
  41. package/lib/Core/Components/DefaultComponents/index.d.ts.map +1 -1
  42. package/lib/Core/Components/DynamicFieldConfiguration.d.ts +3 -1
  43. package/lib/Core/Components/DynamicFieldConfiguration.d.ts.map +1 -1
  44. package/lib/Core/Components/DynamicFieldConfiguration.js +7 -4
  45. package/lib/Core/Components/DynamicFieldConfiguration.js.map +1 -1
  46. package/lib/Core/Components/Filters/AdvanceFilter.d.ts.map +1 -1
  47. package/lib/Core/Components/Filters/AdvanceFilter.js +5 -5
  48. package/lib/Core/Components/Filters/AdvanceFilter.js.map +1 -1
  49. package/lib/Core/Components/Filters/BooleanFilter.js +2 -2
  50. package/lib/Core/Components/Filters/BooleanFilter.js.map +1 -1
  51. package/lib/Core/Components/Filters/CommonFilter.js +1 -1
  52. package/lib/Core/Components/Filters/CommonFilter.js.map +1 -1
  53. package/lib/Core/Components/Filters/SelectFilter.d.ts.map +1 -1
  54. package/lib/Core/Components/Filters/SelectFilter.js +24 -5
  55. package/lib/Core/Components/Filters/SelectFilter.js.map +1 -1
  56. package/lib/Core/Components/Filters/SimpleFilter.js +2 -3
  57. package/lib/Core/Components/Filters/SimpleFilter.js.map +1 -1
  58. package/lib/Core/Components/GroupRenderer/index.d.ts.map +1 -1
  59. package/lib/Core/Components/GroupRenderer/index.js +7 -2
  60. package/lib/Core/Components/GroupRenderer/index.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 -3
  63. package/lib/Core/Components/HeaderMenu/index.js.map +1 -1
  64. package/lib/Core/Components/NotificationManager.js +1 -1
  65. package/lib/Core/Components/NotificationManager.js.map +1 -1
  66. package/lib/Core/Components/RFColumnConfigurator.d.ts +1 -1
  67. package/lib/Core/Components/RFColumnConfigurator.d.ts.map +1 -1
  68. package/lib/Core/Components/RFColumnConfigurator.js +9 -6
  69. package/lib/Core/Components/RFColumnConfigurator.js.map +1 -1
  70. package/lib/Core/Components/RSWrapper/index.d.ts.map +1 -1
  71. package/lib/Core/Components/RSWrapper/index.js +4 -0
  72. package/lib/Core/Components/RSWrapper/index.js.map +1 -1
  73. package/lib/Core/Components/RenderingEngine/ComponentResolverFactory.d.ts +1 -0
  74. package/lib/Core/Components/RenderingEngine/ComponentResolverFactory.d.ts.map +1 -1
  75. package/lib/Core/Components/RenderingEngine/ComponentResolverFactory.js +6 -1
  76. package/lib/Core/Components/RenderingEngine/ComponentResolverFactory.js.map +1 -1
  77. package/lib/Core/Components/Toolbar/AdvanceToolbar.d.ts.map +1 -1
  78. package/lib/Core/Components/Toolbar/AdvanceToolbar.js +13 -4
  79. package/lib/Core/Components/Toolbar/AdvanceToolbar.js.map +1 -1
  80. package/lib/Core/Components/Toolbar/ColumnSelector.d.ts.map +1 -1
  81. package/lib/Core/Components/Toolbar/ColumnSelector.js +13 -3
  82. package/lib/Core/Components/Toolbar/ColumnSelector.js.map +1 -1
  83. package/lib/Core/Components/Toolbar/FieldSelector.js +1 -1
  84. package/lib/Core/Components/Toolbar/FieldSelector.js.map +1 -1
  85. package/lib/Core/Components/Toolbar/Map/MapToolbar.d.ts +2 -2
  86. package/lib/Core/Components/Toolbar/Map/MapToolbar.d.ts.map +1 -1
  87. package/lib/Core/Components/Toolbar/Map/MapToolbar.js +17 -18
  88. package/lib/Core/Components/Toolbar/Map/MapToolbar.js.map +1 -1
  89. package/lib/Core/Components/Toolbar/RefreshBanner.d.ts +5 -1
  90. package/lib/Core/Components/Toolbar/RefreshBanner.d.ts.map +1 -1
  91. package/lib/Core/Components/Toolbar/RefreshBanner.js +22 -6
  92. package/lib/Core/Components/Toolbar/RefreshBanner.js.map +1 -1
  93. package/lib/Core/Components/Toolbar/SimpleToolbar.d.ts.map +1 -1
  94. package/lib/Core/Components/Toolbar/SimpleToolbar.js +2 -2
  95. package/lib/Core/Components/Toolbar/SimpleToolbar.js.map +1 -1
  96. package/lib/Core/Components/Toolbar/hooks/useFilter.d.ts.map +1 -1
  97. package/lib/Core/Components/Toolbar/hooks/useFilter.js +1 -1
  98. package/lib/Core/Components/Toolbar/hooks/useFilter.js.map +1 -1
  99. package/lib/Core/Components/Toolbar/hooks/useMore.d.ts.map +1 -1
  100. package/lib/Core/Components/Toolbar/hooks/useMore.js +23 -5
  101. package/lib/Core/Components/Toolbar/hooks/useMore.js.map +1 -1
  102. package/lib/Core/Components/Toolbar/hooks/usePersonalization.d.ts +1 -0
  103. package/lib/Core/Components/Toolbar/hooks/usePersonalization.d.ts.map +1 -1
  104. package/lib/Core/Components/Toolbar/hooks/usePersonalization.js +4 -2
  105. package/lib/Core/Components/Toolbar/hooks/usePersonalization.js.map +1 -1
  106. package/lib/Core/Components/Toolbar/utils/utils.d.ts +3 -3
  107. package/lib/Core/Components/Toolbar/utils/utils.d.ts.map +1 -1
  108. package/lib/Core/Components/Toolbar/utils/utils.js +16 -10
  109. package/lib/Core/Components/Toolbar/utils/utils.js.map +1 -1
  110. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/VariableHeightVirtualizer.d.ts.map +1 -1
  111. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/VariableHeightVirtualizer.js +2 -2
  112. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/VariableHeightVirtualizer.js.map +1 -1
  113. package/lib/Core/Components/Virtualise/VirtualizeInfinite.js +6 -4
  114. package/lib/Core/Components/Virtualise/VirtualizeInfinite.js.map +1 -1
  115. package/lib/Core/Components/Virtualise/index.js +7 -5
  116. package/lib/Core/Components/Virtualise/index.js.map +1 -1
  117. package/lib/Core/Utils/fetchRowActions.d.ts +16 -0
  118. package/lib/Core/Utils/fetchRowActions.d.ts.map +1 -0
  119. package/lib/Core/Utils/fetchRowActions.js +60 -0
  120. package/lib/Core/Utils/fetchRowActions.js.map +1 -0
  121. package/lib/Core/Utils/styles.d.ts +9 -0
  122. package/lib/Core/Utils/styles.d.ts.map +1 -1
  123. package/lib/Core/Utils/styles.js +8 -3
  124. package/lib/Core/Utils/styles.js.map +1 -1
  125. package/lib/Core/Views/Gallery/Components/GalleryCard.d.ts +1 -1
  126. package/lib/Core/Views/Gallery/Components/GalleryCard.d.ts.map +1 -1
  127. package/lib/Core/Views/Gallery/Components/GalleryCard.js +13 -9
  128. package/lib/Core/Views/Gallery/Components/GalleryCard.js.map +1 -1
  129. package/lib/Core/Views/Gallery/Components/GalleryCheckboxCard.d.ts.map +1 -1
  130. package/lib/Core/Views/Gallery/Components/GalleryCheckboxCard.js +8 -5
  131. package/lib/Core/Views/Gallery/Components/GalleryCheckboxCard.js.map +1 -1
  132. package/lib/Core/Views/Gallery/Gallery.types.d.ts +1 -0
  133. package/lib/Core/Views/Gallery/Gallery.types.d.ts.map +1 -1
  134. package/lib/Core/Views/Gallery/Gallery.types.js.map +1 -1
  135. package/lib/Core/Views/Gallery/GalleryContainer.d.ts.map +1 -1
  136. package/lib/Core/Views/Gallery/GalleryContainer.js +1 -1
  137. package/lib/Core/Views/Gallery/GalleryContainer.js.map +1 -1
  138. package/lib/Core/Views/Gallery/index.d.ts +1 -1
  139. package/lib/Core/Views/Gallery/index.d.ts.map +1 -1
  140. package/lib/Core/Views/Gallery/index.js +6 -9
  141. package/lib/Core/Views/Gallery/index.js.map +1 -1
  142. package/lib/Core/Views/Kanban/Kanban.styles.d.ts +16 -0
  143. package/lib/Core/Views/Kanban/Kanban.styles.d.ts.map +1 -0
  144. package/lib/Core/Views/Kanban/Kanban.styles.js +58 -0
  145. package/lib/Core/Views/Kanban/Kanban.styles.js.map +1 -0
  146. package/lib/Core/Views/Kanban/Kanban.types.d.ts +10 -0
  147. package/lib/Core/Views/Kanban/Kanban.types.d.ts.map +1 -0
  148. package/lib/Core/Views/Kanban/Kanban.types.js +2 -0
  149. package/lib/Core/Views/Kanban/Kanban.types.js.map +1 -0
  150. package/lib/Core/Views/Kanban/KanbanCard.d.ts +7 -0
  151. package/lib/Core/Views/Kanban/KanbanCard.d.ts.map +1 -0
  152. package/lib/Core/Views/Kanban/KanbanCard.js +23 -0
  153. package/lib/Core/Views/Kanban/KanbanCard.js.map +1 -0
  154. package/lib/Core/Views/Kanban/KanbanLane.d.ts +23 -0
  155. package/lib/Core/Views/Kanban/KanbanLane.d.ts.map +1 -0
  156. package/lib/Core/Views/Kanban/KanbanLane.js +21 -0
  157. package/lib/Core/Views/Kanban/KanbanLane.js.map +1 -0
  158. package/lib/Core/Views/Kanban/KanbanLaneHeader.d.ts +12 -0
  159. package/lib/Core/Views/Kanban/KanbanLaneHeader.d.ts.map +1 -0
  160. package/lib/Core/Views/Kanban/KanbanLaneHeader.js +16 -0
  161. package/lib/Core/Views/Kanban/KanbanLaneHeader.js.map +1 -0
  162. package/lib/Core/Views/Kanban/KanbanLaneVirtualizer.d.ts +20 -0
  163. package/lib/Core/Views/Kanban/KanbanLaneVirtualizer.d.ts.map +1 -0
  164. package/lib/Core/Views/Kanban/KanbanLaneVirtualizer.js +37 -0
  165. package/lib/Core/Views/Kanban/KanbanLaneVirtualizer.js.map +1 -0
  166. package/lib/Core/Views/Kanban/hooks/useKanbanLanesVirtualization.d.ts +19 -0
  167. package/lib/Core/Views/Kanban/hooks/useKanbanLanesVirtualization.d.ts.map +1 -0
  168. package/lib/Core/Views/Kanban/hooks/useKanbanLanesVirtualization.js +32 -0
  169. package/lib/Core/Views/Kanban/hooks/useKanbanLanesVirtualization.js.map +1 -0
  170. package/lib/Core/Views/Kanban/index.d.ts +9 -0
  171. package/lib/Core/Views/Kanban/index.d.ts.map +1 -0
  172. package/lib/Core/Views/Kanban/index.js +63 -0
  173. package/lib/Core/Views/Kanban/index.js.map +1 -0
  174. package/lib/Core/Views/Table/CellWrapper.d.ts +3 -1
  175. package/lib/Core/Views/Table/CellWrapper.d.ts.map +1 -1
  176. package/lib/Core/Views/Table/CellWrapper.js +4 -3
  177. package/lib/Core/Views/Table/CellWrapper.js.map +1 -1
  178. package/lib/Core/Views/Table/Row.d.ts.map +1 -1
  179. package/lib/Core/Views/Table/Row.js +22 -10
  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 +110 -32
  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 +6 -5
  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 +15 -6
  190. package/lib/Core/Views/Table/index.js.map +1 -1
  191. package/lib/Core/Views/Table/useMasterDetailCleanup.d.ts +11 -0
  192. package/lib/Core/Views/Table/useMasterDetailCleanup.d.ts.map +1 -0
  193. package/lib/Core/Views/Table/useMasterDetailCleanup.js +27 -0
  194. package/lib/Core/Views/Table/useMasterDetailCleanup.js.map +1 -0
  195. package/lib/Core/Views/Table/useMasterDetailHost.d.ts +14 -0
  196. package/lib/Core/Views/Table/useMasterDetailHost.d.ts.map +1 -0
  197. package/lib/Core/Views/Table/useMasterDetailHost.js +56 -0
  198. package/lib/Core/Views/Table/useMasterDetailHost.js.map +1 -0
  199. package/lib/Core/Views/Table/useMasterDetailRenderer.d.ts +13 -0
  200. package/lib/Core/Views/Table/useMasterDetailRenderer.d.ts.map +1 -0
  201. package/lib/Core/Views/Table/useMasterDetailRenderer.js +23 -0
  202. package/lib/Core/Views/Table/useMasterDetailRenderer.js.map +1 -0
  203. package/lib/Core/Views/Table/useMasterDetailRow.d.ts +9 -0
  204. package/lib/Core/Views/Table/useMasterDetailRow.d.ts.map +1 -0
  205. package/lib/Core/Views/Table/useMasterDetailRow.js +55 -0
  206. package/lib/Core/Views/Table/useMasterDetailRow.js.map +1 -0
  207. package/lib/Core/Views/Table/useMasterDetailState.d.ts +21 -0
  208. package/lib/Core/Views/Table/useMasterDetailState.d.ts.map +1 -0
  209. package/lib/Core/Views/Table/useMasterDetailState.js +33 -0
  210. package/lib/Core/Views/Table/useMasterDetailState.js.map +1 -0
  211. package/lib/Core/Views/Timeline/Timeline.d.ts.map +1 -1
  212. package/lib/Core/Views/Timeline/Timeline.js +2 -2
  213. package/lib/Core/Views/Timeline/Timeline.js.map +1 -1
  214. package/lib/Core/Views/Timeline/Timeline.styles.d.ts +2 -2
  215. package/lib/Core/Views/Timeline/Timeline.types.d.ts +9 -10
  216. package/lib/Core/Views/Timeline/Timeline.types.d.ts.map +1 -1
  217. package/lib/Core/Views/Timeline/Timeline.types.js.map +1 -1
  218. package/lib/Core/Views/Timeline/TimelineGroup.d.ts +4 -10
  219. package/lib/Core/Views/Timeline/TimelineGroup.d.ts.map +1 -1
  220. package/lib/Core/Views/Timeline/TimelineGroup.js +5 -6
  221. package/lib/Core/Views/Timeline/TimelineGroup.js.map +1 -1
  222. package/lib/Core/Views/Timeline/index.d.ts.map +1 -1
  223. package/lib/Core/Views/Timeline/index.js +38 -10
  224. package/lib/Core/Views/Timeline/index.js.map +1 -1
  225. package/lib/Core/Views/Timeline/utils.d.ts.map +1 -1
  226. package/lib/Core/Views/Timeline/utils.js +2 -1
  227. package/lib/Core/Views/Timeline/utils.js.map +1 -1
  228. package/lib/Core/constants.d.ts +4 -0
  229. package/lib/Core/constants.d.ts.map +1 -1
  230. package/lib/Core/constants.js +4 -0
  231. package/lib/Core/constants.js.map +1 -1
  232. package/lib/Core/templateFeatureSupport.js +2 -2
  233. package/lib/Core/templateFeatureSupport.js.map +1 -1
  234. package/package.json +9 -8
  235. package/lib/Core/Hooks/a11y/useAnnounceGroup.d.ts +0 -11
  236. package/lib/Core/Hooks/a11y/useAnnounceGroup.d.ts.map +0 -1
  237. package/lib/Core/Hooks/a11y/useAnnounceGroup.js +0 -52
  238. package/lib/Core/Hooks/a11y/useAnnounceGroup.js.map +0 -1
  239. package/lib/Core/Views/Gallery/Components/GalleryFieldValue.d.ts +0 -8
  240. package/lib/Core/Views/Gallery/Components/GalleryFieldValue.d.ts.map +0 -1
  241. package/lib/Core/Views/Gallery/Components/GalleryFieldValue.js +0 -8
  242. package/lib/Core/Views/Gallery/Components/GalleryFieldValue.js.map +0 -1
  243. package/lib/Core/Views/Gallery/Components/GalleryHeader.d.ts +0 -8
  244. package/lib/Core/Views/Gallery/Components/GalleryHeader.d.ts.map +0 -1
  245. package/lib/Core/Views/Gallery/Components/GalleryHeader.js.map +0 -1
  246. package/lib/Core/Views/Gallery/hooks/useRowActions.d.ts +0 -9
  247. package/lib/Core/Views/Gallery/hooks/useRowActions.d.ts.map +0 -1
  248. package/lib/Core/Views/Gallery/hooks/useRowActions.js +0 -25
  249. package/lib/Core/Views/Gallery/hooks/useRowActions.js.map +0 -1
  250. package/lib/Core/Views/Gallery/utils.d.ts +0 -36
  251. package/lib/Core/Views/Gallery/utils.d.ts.map +0 -1
  252. package/lib/Core/Views/Gallery/utils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RFColumnConfigurator.js","sourceRoot":"","sources":["../../../Core/Components/RFColumnConfigurator.jsx"],"names":[],"mappings":"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","sourcesContent":["import { memo, useState, useCallback, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\nimport { Input, Button, Select, Option, FormDialog } from '@pega/cosmos-react-core';\n\nimport useTranslate from '../Hooks/useTranslate';\nimport { DEFAULT_FORMAT } from '../constants';\n\nconst StyledRow = styled.div`\n margin: 0.625rem 0;\n`;\n\n// Returns user friendly label from field information\nfunction getFieldLabel(field) {\n // Add category information (if applicable)\n if (field.category && field.category.length) {\n const combinedCategories = field.category\n .map(currentCategory => currentCategory.label)\n .join('.');\n return `${combinedCategories}.${field.label}`;\n }\n\n return `${field.label}`;\n}\n\nconst Footer = memo(({ cancel, submit }) => {\n const [translate] = useTranslate();\n return (\n <footer>\n <Button onClick={cancel} data-test-id='cancel'>\n {translate('Cancel')}\n </Button>\n <Button variant='primary' onClick={submit} data-test-id='submit'>\n {translate('Submit')}\n </Button>\n </footer>\n );\n});\n\nFooter.displayName = 'Footer';\n\nFooter.propTypes = {\n cancel: PropTypes.func.isRequired,\n submit: PropTypes.func.isRequired\n};\n\nconst defaultDisplayMode = 'Normal';\nconst displayModes = [defaultDisplayMode, 'Hierarchical'];\n\nconst Body = memo(\n ({\n column,\n rfName,\n columnAlias,\n displayMode,\n onRFChange,\n setRFConfig,\n rfConfig,\n oncolumnAliasChange,\n onDisplayModeChange,\n formatterRef\n }) => {\n const renderFormatters = column.getRenderFormatters();\n const componentName = renderFormatters?.find(f => f.value === rfName)?.component;\n const Component = componentName && column.renderFactory?.(componentName);\n const isDefaultFormatterExist = renderFormatters?.find(\n formatter => formatter.isDefault || formatter.label === DEFAULT_FORMAT\n );\n const renderDisplayMode = column.renderDisplayMode();\n const [translate] = useTranslate();\n const label = getFieldLabel(column.field);\n const showFormatter =\n column.formatterName !== 'UserReference' && !column.field.disableFormatting;\n return (\n <>\n <StyledRow>\n <Input type='text' label={translate('Field')} value={label} readOnly />\n </StyledRow>\n <StyledRow>\n <Input\n id='customise-label'\n type='text'\n label={translate('Alias')}\n onChange={oncolumnAliasChange}\n placeholder={translate('Enter alias')}\n value={columnAlias}\n data-test-id='Customise label'\n />\n </StyledRow>\n\n {showFormatter && renderFormatters && (\n <StyledRow>\n <Select\n id='select-customised-format'\n label={translate('Format')}\n onChange={onRFChange}\n value={rfName || ''}\n data-test-id='Customise format'\n >\n {!isDefaultFormatterExist && (\n <Option key={DEFAULT_FORMAT} value={DEFAULT_FORMAT}>\n {translate(DEFAULT_FORMAT)}\n </Option>\n )}\n {renderFormatters?.map(v => (\n <Option key={v.value} value={v.value}>\n {translate(v.label)}\n </Option>\n ))}\n </Select>\n </StyledRow>\n )}\n {Component && (\n <Component\n ref={formatterRef}\n formatting={{ type: rfName, config: rfConfig }}\n onChange={setRFConfig}\n />\n )}\n {renderDisplayMode && (\n <StyledRow>\n <Select\n id='select-customised-display'\n label={translate('Display')}\n onChange={onDisplayModeChange}\n value={displayMode || defaultDisplayMode}\n data-test-id='Customise display'\n >\n {displayModes.map(mode => (\n <Option key={mode} value={mode}>\n {translate(mode)}\n </Option>\n ))}\n </Select>\n </StyledRow>\n )}\n </>\n );\n }\n);\n\nBody.displayName = 'Body';\n\nBody.propTypes = {\n column: PropTypes.objectOf(PropTypes.any),\n rfName: PropTypes.string,\n columnAlias: PropTypes.string,\n onRFChange: PropTypes.func,\n oncolumnAliasChange: PropTypes.func,\n displayMode: PropTypes.string,\n onDisplayModeChange: PropTypes.func\n};\n\nBody.defaultProps = {\n column: {},\n rfName: '',\n columnAlias: '',\n onRFChange: () => {},\n oncolumnAliasChange: () => {},\n displayMode: defaultDisplayMode,\n onDisplayModeChange: () => {}\n};\n\nexport default function RFColumnConfigurator({\n column,\n onCancel,\n onSubmit,\n finishPopOver,\n popoverButtonRef\n}) {\n const [columnAlias, setColumnAlias] = useState(column.alias || '');\n const renderFormatters = column.getRenderFormatters();\n const [rfName, setRFName] = useState(\n (typeof column.formatterConfig === 'string'\n ? column.formatterConfig\n : column.formatterConfig?.type) || DEFAULT_FORMAT\n );\n const [rfConfig, setRFConfig] = useState(\n column.formatterConfig?.config !== undefined\n ? column.formatterConfig?.config\n : renderFormatters?.find(f => f.value === rfName)?.defaultConfig\n );\n const formatterRef = useRef(null);\n\n const [displayMode, setDisplayMode] = useState(column.displayMode);\n const [translate] = useTranslate();\n const onSubmitChanges = useCallback(() => {\n // Validating whether formatter settings are valid or not\n if (formatterRef.current?.validate && !formatterRef.current.validate()) return;\n\n const isRFNameChanged =\n rfName !==\n (typeof column.formatterConfig === 'string'\n ? column.formatterConfig\n : column.formatterConfig?.type);\n const isRFConfigChanged = !fastDeepEqual(rfConfig, column.formatterConfig?.config); // can be undefined\n const isRFChanged = isRFNameChanged || isRFConfigChanged;\n const isLableChanged = columnAlias.trim() !== column.alias?.trim(); // can be undefined\n const isDisplayChanged = displayMode !== column.displayMode;\n\n if (isRFChanged || isLableChanged || isDisplayChanged) {\n onSubmit(\n // eslint-disable-next-line no-nested-ternary\n isRFChanged ? (rfConfig ? { type: rfName, config: rfConfig } : rfName) : undefined,\n columnAlias,\n isDisplayChanged ? displayMode : undefined\n );\n }\n finishPopOver();\n }, [column, onSubmit, rfName, columnAlias, finishPopOver, displayMode, rfConfig]);\n\n return (\n <>\n {popoverButtonRef.current ? (\n <FormDialog\n heading={translate('Format')}\n onSubmit={onSubmitChanges}\n onCancel={onCancel}\n target={popoverButtonRef.current}\n >\n <Body\n column={column}\n rfName={rfName}\n columnAlias={columnAlias}\n displayMode={displayMode}\n onRFChange={e => {\n setRFName(e.target.value);\n setRFConfig(renderFormatters?.find(f => f.value === e.target.value)?.defaultConfig);\n }}\n setRFConfig={setRFConfig}\n rfConfig={rfConfig}\n oncolumnAliasChange={e => setColumnAlias(e.target.value)}\n onDisplayModeChange={e => setDisplayMode(e.target.value)}\n formatterRef={formatterRef}\n />\n </FormDialog>\n ) : null}\n </>\n );\n}\n\nRFColumnConfigurator.propTypes = {\n column: PropTypes.objectOf(PropTypes.any).isRequired,\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n finishPopOver: PropTypes.func.isRequired\n};\n"]}
1
+ {"version":3,"file":"RFColumnConfigurator.js","sourceRoot":"","sources":["../../../Core/Components/RFColumnConfigurator.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEpF,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA;;CAE3B,CAAC;AAEF,qDAAqD;AACrD,SAAS,aAAa,CAAC,KAAK;IAC1B,2CAA2C;IAC3C,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC5C,MAAM,kBAAkB,GAAG,KAAK,CAAC,QAAQ;aACtC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;aAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,GAAG,kBAAkB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;IACzC,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;IACnC,OAAO,CACL,6BACE,KAAC,MAAM,IAAC,OAAO,EAAE,MAAM,kBAAe,QAAQ,YAC3C,SAAS,CAAC,QAAQ,CAAC,GACb,EACT,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,MAAM,kBAAe,QAAQ,YAC7D,SAAS,CAAC,QAAQ,CAAC,GACb,IACF,CACV,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,MAAM,CAAC,SAAS,GAAG;IACjB,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACjC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;CAClC,CAAC;AAEF,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AACpC,MAAM,YAAY,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;AAE1D,MAAM,IAAI,GAAG,IAAI,CACf,CAAC,EACC,MAAM,EACN,MAAM,EACN,WAAW,EACX,WAAW,EACX,UAAU,EACV,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACb,EAAE,EAAE;IACH,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;IACtD,MAAM,aAAa,GAAG,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE,SAAS,CAAC;IACjF,MAAM,SAAS,GAAG,aAAa,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,CAAC;IACzE,MAAM,uBAAuB,GAAG,gBAAgB,EAAE,IAAI,CACpD,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,cAAc,CACvE,CAAC;IACF,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;IACrD,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,aAAa,GACjB,MAAM,CAAC,aAAa,KAAK,eAAe,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAC9E,OAAO,CACL,8BACE,KAAC,SAAS,cACR,KAAC,KAAK,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,SAAG,GAC7D,EACZ,KAAC,SAAS,cACR,KAAC,KAAK,IACJ,EAAE,EAAC,iBAAiB,EACpB,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EACzB,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,EAAE,SAAS,CAAC,aAAa,CAAC,EACrC,KAAK,EAAE,WAAW,kBACL,iBAAiB,GAC9B,GACQ,EAEX,aAAa,IAAI,gBAAgB,IAAI,CACpC,KAAC,SAAS,cACR,MAAC,MAAM,IACL,EAAE,EAAC,0BAA0B,EAC7B,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,EAC1B,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,MAAM,IAAI,EAAE,kBACN,kBAAkB,aAE9B,CAAC,uBAAuB,IAAI,CAC3B,KAAC,MAAM,IAAsB,KAAK,EAAE,cAAc,YAC/C,SAAS,CAAC,cAAc,CAAC,IADf,cAAc,CAElB,CACV,EACA,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAC1B,KAAC,MAAM,IAAe,KAAK,EAAE,CAAC,CAAC,KAAK,YACjC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IADR,CAAC,CAAC,KAAK,CAEX,CACV,CAAC,IACK,GACC,CACb,EACA,SAAS,IAAI,CACZ,KAAC,SAAS,IACR,GAAG,EAAE,YAAY,EACjB,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAC9C,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,MAAM,CAAC,KAAK,GACnB,CACH,EACA,iBAAiB,IAAI,CACpB,KAAC,SAAS,cACR,KAAC,MAAM,IACL,EAAE,EAAC,2BAA2B,EAC9B,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,EAC3B,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,WAAW,IAAI,kBAAkB,kBAC3B,mBAAmB,YAE/B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACxB,KAAC,MAAM,IAAY,KAAK,EAAE,IAAI,YAC3B,SAAS,CAAC,IAAI,CAAC,IADL,IAAI,CAER,CACV,CAAC,GACK,GACC,CACb,IACA,CACJ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAE1B,IAAI,CAAC,SAAS,GAAG;IACf,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC;IACzC,MAAM,EAAE,SAAS,CAAC,MAAM;IACxB,WAAW,EAAE,SAAS,CAAC,MAAM;IAC7B,UAAU,EAAE,SAAS,CAAC,IAAI;IAC1B,mBAAmB,EAAE,SAAS,CAAC,IAAI;IACnC,WAAW,EAAE,SAAS,CAAC,MAAM;IAC7B,mBAAmB,EAAE,SAAS,CAAC,IAAI;CACpC,CAAC;AAEF,IAAI,CAAC,YAAY,GAAG;IAClB,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;IACpB,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC7B,WAAW,EAAE,kBAAkB;IAC/B,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,gBAAgB,EACjB;IACC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;IACtD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAClC,CAAC,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ;QACzC,CAAC,CAAC,MAAM,CAAC,eAAe;QACxB,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,cAAc,CACpD,CAAC;IACF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CACtC,MAAM,CAAC,eAAe,EAAE,MAAM,KAAK,SAAS;QAC1C,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM;QAChC,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE,aAAa,CACnE,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;IACnC,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,yDAAyD;QACzD,IAAI,YAAY,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE;YAAE,OAAO,KAAK,CAAC;QAErF,MAAM,eAAe,GACnB,MAAM;YACN,CAAC,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ;gBACzC,CAAC,CAAC,MAAM,CAAC,eAAe;gBACxB,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,iBAAiB,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,mBAAmB;QACvG,MAAM,WAAW,GAAG,eAAe,IAAI,iBAAiB,CAAC;QACzD,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,mBAAmB;QACvF,MAAM,gBAAgB,GAAG,WAAW,KAAK,MAAM,CAAC,WAAW,CAAC;QAE5D,IAAI,WAAW,IAAI,cAAc,IAAI,gBAAgB,EAAE,CAAC;YACtD,QAAQ;YACN,6CAA6C;YAC7C,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAClF,WAAW,EACX,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEnE,OAAO,CACL,4BACG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAC1B,KAAC,UAAU,IACT,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,EAC5B,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,GAAG,EAAE;gBACb,QAAQ,EAAE,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC;YACd,CAAC,EACD,YAAY,EAAE,aAAa,EAC3B,MAAM,EAAE,gBAAgB,CAAC,OAAO,YAEhC,KAAC,IAAI,IACH,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,CAAC,CAAC,EAAE;oBACd,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC1B,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC;gBACtF,CAAC,EACD,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACxD,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACxD,YAAY,EAAE,YAAY,GAC1B,GACS,CACd,CAAC,CAAC,CAAC,IAAI,GACP,CACJ,CAAC;AACJ,CAAC;AAED,oBAAoB,CAAC,SAAS,GAAG;IAC/B,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU;IACpD,QAAQ,EAAE,SAAS,CAAC,IAAI;IACxB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;CACzC,CAAC","sourcesContent":["import { memo, useState, useCallback, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\nimport { Input, Button, Select, Option, FormDialog } from '@pega/cosmos-react-core';\n\nimport useTranslate from '../Hooks/useTranslate';\nimport { DEFAULT_FORMAT } from '../constants';\n\nconst StyledRow = styled.div`\n margin: 0.625rem 0;\n`;\n\n// Returns user friendly label from field information\nfunction getFieldLabel(field) {\n // Add category information (if applicable)\n if (field.category && field.category.length) {\n const combinedCategories = field.category\n .map(currentCategory => currentCategory.label)\n .join('.');\n return `${combinedCategories}.${field.label}`;\n }\n\n return `${field.label}`;\n}\n\nconst Footer = memo(({ cancel, submit }) => {\n const [translate] = useTranslate();\n return (\n <footer>\n <Button onClick={cancel} data-test-id='cancel'>\n {translate('Cancel')}\n </Button>\n <Button variant='primary' onClick={submit} data-test-id='submit'>\n {translate('Submit')}\n </Button>\n </footer>\n );\n});\n\nFooter.displayName = 'Footer';\n\nFooter.propTypes = {\n cancel: PropTypes.func.isRequired,\n submit: PropTypes.func.isRequired\n};\n\nconst defaultDisplayMode = 'Normal';\nconst displayModes = [defaultDisplayMode, 'Hierarchical'];\n\nconst Body = memo(\n ({\n column,\n rfName,\n columnAlias,\n displayMode,\n onRFChange,\n setRFConfig,\n rfConfig,\n oncolumnAliasChange,\n onDisplayModeChange,\n formatterRef\n }) => {\n const renderFormatters = column.getRenderFormatters();\n const componentName = renderFormatters?.find(f => f.value === rfName)?.component;\n const Component = componentName && column.renderFactory?.(componentName);\n const isDefaultFormatterExist = renderFormatters?.find(\n formatter => formatter.isDefault || formatter.label === DEFAULT_FORMAT\n );\n const renderDisplayMode = column.renderDisplayMode();\n const [translate] = useTranslate();\n const label = getFieldLabel(column.field);\n const showFormatter =\n column.formatterName !== 'UserReference' && !column.field.disableFormatting;\n return (\n <>\n <StyledRow>\n <Input type='text' label={translate('Field')} value={label} readOnly />\n </StyledRow>\n <StyledRow>\n <Input\n id='customise-label'\n type='text'\n label={translate('Alias')}\n onChange={oncolumnAliasChange}\n placeholder={translate('Enter alias')}\n value={columnAlias}\n data-test-id='Customise label'\n />\n </StyledRow>\n\n {showFormatter && renderFormatters && (\n <StyledRow>\n <Select\n id='select-customised-format'\n label={translate('Format')}\n onChange={onRFChange}\n value={rfName || ''}\n data-test-id='Customise format'\n >\n {!isDefaultFormatterExist && (\n <Option key={DEFAULT_FORMAT} value={DEFAULT_FORMAT}>\n {translate(DEFAULT_FORMAT)}\n </Option>\n )}\n {renderFormatters?.map(v => (\n <Option key={v.value} value={v.value}>\n {translate(v.label)}\n </Option>\n ))}\n </Select>\n </StyledRow>\n )}\n {Component && (\n <Component\n ref={formatterRef}\n formatting={{ type: rfName, config: rfConfig }}\n onChange={setRFConfig}\n field={column.field}\n />\n )}\n {renderDisplayMode && (\n <StyledRow>\n <Select\n id='select-customised-display'\n label={translate('Display')}\n onChange={onDisplayModeChange}\n value={displayMode || defaultDisplayMode}\n data-test-id='Customise display'\n >\n {displayModes.map(mode => (\n <Option key={mode} value={mode}>\n {translate(mode)}\n </Option>\n ))}\n </Select>\n </StyledRow>\n )}\n </>\n );\n }\n);\n\nBody.displayName = 'Body';\n\nBody.propTypes = {\n column: PropTypes.objectOf(PropTypes.any),\n rfName: PropTypes.string,\n columnAlias: PropTypes.string,\n onRFChange: PropTypes.func,\n oncolumnAliasChange: PropTypes.func,\n displayMode: PropTypes.string,\n onDisplayModeChange: PropTypes.func\n};\n\nBody.defaultProps = {\n column: {},\n rfName: '',\n columnAlias: '',\n onRFChange: () => {},\n oncolumnAliasChange: () => {},\n displayMode: defaultDisplayMode,\n onDisplayModeChange: () => {}\n};\n\nexport default function RFColumnConfigurator({\n column,\n onCancel,\n onSubmit,\n finishPopOver,\n popoverButtonRef\n}) {\n const [columnAlias, setColumnAlias] = useState(column.alias || '');\n const renderFormatters = column.getRenderFormatters();\n const [rfName, setRFName] = useState(\n (typeof column.formatterConfig === 'string'\n ? column.formatterConfig\n : column.formatterConfig?.type) || DEFAULT_FORMAT\n );\n const [rfConfig, setRFConfig] = useState(\n column.formatterConfig?.config !== undefined\n ? column.formatterConfig?.config\n : renderFormatters?.find(f => f.value === rfName)?.defaultConfig\n );\n const formatterRef = useRef(null);\n\n const [displayMode, setDisplayMode] = useState(column.displayMode);\n const [translate] = useTranslate();\n const onSubmitChanges = useCallback(() => {\n // Validating whether formatter settings are valid or not\n if (formatterRef.current?.validate && !formatterRef.current.validate()) return false;\n\n const isRFNameChanged =\n rfName !==\n (typeof column.formatterConfig === 'string'\n ? column.formatterConfig\n : column.formatterConfig?.type);\n const isRFConfigChanged = !fastDeepEqual(rfConfig, column.formatterConfig?.config); // can be undefined\n const isRFChanged = isRFNameChanged || isRFConfigChanged;\n const isLableChanged = columnAlias.trim() !== column.alias?.trim(); // can be undefined\n const isDisplayChanged = displayMode !== column.displayMode;\n\n if (isRFChanged || isLableChanged || isDisplayChanged) {\n onSubmit(\n // eslint-disable-next-line no-nested-ternary\n isRFChanged ? (rfConfig ? { type: rfName, config: rfConfig } : rfName) : undefined,\n columnAlias,\n isDisplayChanged ? displayMode : undefined\n );\n }\n return true;\n }, [column, onSubmit, rfName, columnAlias, displayMode, rfConfig]);\n\n return (\n <>\n {popoverButtonRef.current ? (\n <FormDialog\n heading={translate('Format')}\n onSubmit={onSubmitChanges}\n onCancel={() => {\n onCancel?.();\n return true;\n }}\n onAfterClose={finishPopOver}\n target={popoverButtonRef.current}\n >\n <Body\n column={column}\n rfName={rfName}\n columnAlias={columnAlias}\n displayMode={displayMode}\n onRFChange={e => {\n setRFName(e.target.value);\n setRFConfig(renderFormatters?.find(f => f.value === e.target.value)?.defaultConfig);\n }}\n setRFConfig={setRFConfig}\n rfConfig={rfConfig}\n oncolumnAliasChange={e => setColumnAlias(e.target.value)}\n onDisplayModeChange={e => setDisplayMode(e.target.value)}\n formatterRef={formatterRef}\n />\n </FormDialog>\n ) : null}\n </>\n );\n}\n\nRFColumnConfigurator.propTypes = {\n column: PropTypes.objectOf(PropTypes.any).isRequired,\n onCancel: PropTypes.func,\n onSubmit: PropTypes.func.isRequired,\n finishPopOver: PropTypes.func.isRequired\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../Core/Components/RSWrapper/index.jsx"],"names":[],"mappings":"AA+BO;;4CAEN"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../Core/Components/RSWrapper/index.jsx"],"names":[],"mappings":"AAgCO;;4CAEN"}
@@ -7,6 +7,7 @@ import { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';
7
7
  import styles from '../../Views/rs-styles';
8
8
  import Table from '../../Views/Table';
9
9
  import Gallery from '../../Views/Gallery';
10
+ import Kanban from '../../Views/Kanban';
10
11
  import Timeline from '../../Views/Timeline';
11
12
  import Map from '../../Views/Map';
12
13
  import repeatComponent from '../../index';
@@ -36,6 +37,9 @@ const RSWrapper = ({ view }) => {
36
37
  case REPEATING_STRUCTURE_TEMPLATES.GALLERY:
37
38
  Component = Gallery;
38
39
  break;
40
+ case REPEATING_STRUCTURE_TEMPLATES.KANBAN:
41
+ Component = Kanban;
42
+ break;
39
43
  case REPEATING_STRUCTURE_TEMPLATES.TIMELINE:
40
44
  Component = Timeline;
41
45
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Core/Components/RSWrapper/index.jsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, memo, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport { Fullscreen, useFullscreenContext } from '@pega/cosmos-react-core';\nimport { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\n\nimport styles from '../../Views/rs-styles';\nimport Table from '../../Views/Table';\nimport Gallery from '../../Views/Gallery';\nimport Timeline from '../../Views/Timeline';\nimport Map from '../../Views/Map';\nimport repeatComponent from '../../index';\nimport useConfirmationModal from '../../Hooks/useConfirmationModal';\nimport useSmallScreen from '../../Hooks/useSmallScreen';\nimport { LocalizationProvider } from '../../Context/LocalizationContext';\n\nconst StyledRSContainer = styled(forwardRef((props, ref) => <div ref={ref} {...props} />))(() => {\n const fullscreen = useFullscreenContext();\n\n return css`\n ${styles}\n\n ${fullscreen &&\n fullscreen[0] &&\n css`\n height: 100%;\n `}\n `;\n});\n\nexport const CosmosProviders = ({ children }) => {\n return <Fullscreen>{children}</Fullscreen>;\n};\n\nconst RSWrapper = ({ view }) => {\n /** Read template from view, as changeTemplate feature can mutate the template */\n const { template, setDomContainer, columns } = view;\n\n let Component;\n switch (template) {\n case REPEATING_STRUCTURE_TEMPLATES.GALLERY:\n Component = Gallery;\n break;\n case REPEATING_STRUCTURE_TEMPLATES.TIMELINE:\n Component = Timeline;\n break;\n case REPEATING_STRUCTURE_TEMPLATES.MAP:\n Component = Map;\n break;\n default:\n Component = Table;\n }\n\n useConfirmationModal({ view });\n\n /**\n * Adding all column level styles into columnStyles on DOMContainer.\n * Since domContainer is the only ref available across the features.\n * If some feature want to override something (say Resize the width), that only refelects if we add styles here.\n * Other wise fall into specificity/precedence of local CSS variables.\n * This won't effect other RS views, since these styles are generated through features.\n * If a feature is not applicable it won't add styles to this object.\n */\n const columnStyles = columns?.reduce((acc, column) => {\n const { style, field, hidden } = column;\n if (hidden) return acc;\n Object.entries(style).forEach(([s, v]) => {\n acc[`--col-${s}-${field.idHash}`] = v;\n });\n return acc;\n }, {});\n\n const domContainerRef = useRef();\n useSmallScreen(view, domContainerRef);\n\n return (\n <CosmosProviders>\n <StyledRSContainer\n ref={r => {\n setDomContainer(r);\n domContainerRef.current = r;\n }}\n style={columnStyles}\n className='rs-wrapper'\n >\n <Component view={view} />\n </StyledRSContainer>\n </CosmosProviders>\n );\n};\n\nRSWrapper.displayName = 'RSWrapper';\n\nRSWrapper.propTypes = {\n view: PropTypes.objectOf(PropTypes.any).isRequired\n};\n\nconst RepeatComponent = memo(forwardRef(repeatComponent(RSWrapper)));\n\nconst WithLocalization = (props, ref) => {\n return (\n <LocalizationProvider>\n <RepeatComponent {...props} ref={ref} />\n </LocalizationProvider>\n );\n};\n\nexport default memo(forwardRef(WithLocalization));\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Core/Components/RSWrapper/index.jsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, memo, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport { Fullscreen, useFullscreenContext } from '@pega/cosmos-react-core';\nimport { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\n\nimport styles from '../../Views/rs-styles';\nimport Table from '../../Views/Table';\nimport Gallery from '../../Views/Gallery';\nimport Kanban from '../../Views/Kanban';\nimport Timeline from '../../Views/Timeline';\nimport Map from '../../Views/Map';\nimport repeatComponent from '../../index';\nimport useConfirmationModal from '../../Hooks/useConfirmationModal';\nimport useSmallScreen from '../../Hooks/useSmallScreen';\nimport { LocalizationProvider } from '../../Context/LocalizationContext';\n\nconst StyledRSContainer = styled(forwardRef((props, ref) => <div ref={ref} {...props} />))(() => {\n const fullscreen = useFullscreenContext();\n\n return css`\n ${styles}\n\n ${fullscreen &&\n fullscreen[0] &&\n css`\n height: 100%;\n `}\n `;\n});\n\nexport const CosmosProviders = ({ children }) => {\n return <Fullscreen>{children}</Fullscreen>;\n};\n\nconst RSWrapper = ({ view }) => {\n /** Read template from view, as changeTemplate feature can mutate the template */\n const { template, setDomContainer, columns } = view;\n\n let Component;\n switch (template) {\n case REPEATING_STRUCTURE_TEMPLATES.GALLERY:\n Component = Gallery;\n break;\n case REPEATING_STRUCTURE_TEMPLATES.KANBAN:\n Component = Kanban;\n break;\n case REPEATING_STRUCTURE_TEMPLATES.TIMELINE:\n Component = Timeline;\n break;\n case REPEATING_STRUCTURE_TEMPLATES.MAP:\n Component = Map;\n break;\n default:\n Component = Table;\n }\n\n useConfirmationModal({ view });\n\n /**\n * Adding all column level styles into columnStyles on DOMContainer.\n * Since domContainer is the only ref available across the features.\n * If some feature want to override something (say Resize the width), that only refelects if we add styles here.\n * Other wise fall into specificity/precedence of local CSS variables.\n * This won't effect other RS views, since these styles are generated through features.\n * If a feature is not applicable it won't add styles to this object.\n */\n const columnStyles = columns?.reduce((acc, column) => {\n const { style, field, hidden } = column;\n if (hidden) return acc;\n Object.entries(style).forEach(([s, v]) => {\n acc[`--col-${s}-${field.idHash}`] = v;\n });\n return acc;\n }, {});\n\n const domContainerRef = useRef();\n useSmallScreen(view, domContainerRef);\n\n return (\n <CosmosProviders>\n <StyledRSContainer\n ref={r => {\n setDomContainer(r);\n domContainerRef.current = r;\n }}\n style={columnStyles}\n className='rs-wrapper'\n >\n <Component view={view} />\n </StyledRSContainer>\n </CosmosProviders>\n );\n};\n\nRSWrapper.displayName = 'RSWrapper';\n\nRSWrapper.propTypes = {\n view: PropTypes.objectOf(PropTypes.any).isRequired\n};\n\nconst RepeatComponent = memo(forwardRef(repeatComponent(RSWrapper)));\n\nconst WithLocalization = (props, ref) => {\n return (\n <LocalizationProvider>\n <RepeatComponent {...props} ref={ref} />\n </LocalizationProvider>\n );\n};\n\nexport default memo(forwardRef(WithLocalization));\n"]}
@@ -1,3 +1,4 @@
1
1
  export function resolveCellComponent(type: any, renderFactory: any, props?: {}): false | import("react/jsx-runtime").JSX.Element | null;
2
2
  export function resolveViewComponent(type: any, renderFactory: any, props?: {}): import("react/jsx-runtime").JSX.Element | null;
3
+ export function resolveComponent(type: any, renderFactory: any, props?: {}): import("react/jsx-runtime").JSX.Element | null;
3
4
  //# sourceMappingURL=ComponentResolverFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentResolverFactory.d.ts","sourceRoot":"","sources":["../../../../Core/Components/RenderingEngine/ComponentResolverFactory.js"],"names":[],"mappings":"AAgDA,wIAmBC;AAED,gIAKC"}
1
+ {"version":3,"file":"ComponentResolverFactory.d.ts","sourceRoot":"","sources":["../../../../Core/Components/RenderingEngine/ComponentResolverFactory.js"],"names":[],"mappings":"AAiDA,wIAmBC;AAED,gIAKC;AAED,4HAEC"}
@@ -13,7 +13,9 @@ function findValueWhichEqualsKey(obj, type, comp) {
13
13
  return obj[k];
14
14
  }
15
15
  function externalRendererResolution(comp, renderFactory, field) {
16
- return renderFactory && typeof renderFactory === 'function' ? renderFactory(comp, field) : comp;
16
+ if (!renderFactory || typeof renderFactory !== 'function')
17
+ return comp;
18
+ return field === undefined ? renderFactory(comp) : renderFactory(comp, field);
17
19
  }
18
20
  function render(comp, props, renderFactory, type, defaultComps) {
19
21
  // For cell renderer , we have a special case as there is only one way to change formatter / renderer from UI.
@@ -62,4 +64,7 @@ export function resolveViewComponent(type, renderFactory, props = {}) {
62
64
  const comp = meta[type];
63
65
  return render(comp, props, renderFactory, type, defaultComponents);
64
66
  }
67
+ export function resolveComponent(type, renderFactory, props = {}) {
68
+ return render(type, props, renderFactory, type, defaultComponents);
69
+ }
65
70
  //# sourceMappingURL=ComponentResolverFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentResolverFactory.js","sourceRoot":"","sources":["../../../../Core/Components/RenderingEngine/ComponentResolverFactory.js"],"names":[],"mappings":"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","sourcesContent":["import defaultComponents, { defaultRenderer, extRenderer } from '../DefaultComponents';\n// TODO: check imports dependency cycle.\nfunction findValueWhichEqualsKey(obj, type, comp) {\n // As we are providing default set of cell renderers as well\n // First check for specific comp , if not present fallback to type.\n let k;\n if (comp) {\n k = Object.keys(obj).find(ki => comp.toLowerCase() === ki.toLowerCase());\n }\n if (!k) {\n k = Object.keys(obj).find(ki => type.toLowerCase() === ki.toLowerCase());\n }\n return obj[k];\n}\n\nfunction externalRendererResolution(comp, renderFactory, field) {\n return renderFactory && typeof renderFactory === 'function' ? renderFactory(comp, field) : comp;\n}\n\nfunction render(comp, props, renderFactory, type, defaultComps) {\n // For cell renderer , we have a special case as there is only one way to change formatter / renderer from UI.\n // So, If column renderer is not defined then fall back to field meta level renderer if any.\n const defComp = findValueWhichEqualsKey(defaultComps, type, comp);\n const field = props.getField?.();\n if (!comp) {\n return defaultRenderer(defComp, props);\n }\n\n let extComp;\n if (typeof comp === 'function') {\n extComp = comp;\n } else {\n extComp = externalRendererResolution(comp, renderFactory, field);\n }\n // UI List lib is now accepting extraProps from renderFactory, in case consumer wants to send extraProps to their cellRenderers.\n // renderFactory return type can either be a function or object that contains { component, props }.\n // Props passed in the object should be stamped to the cell renderer.\n if (\n typeof extComp === 'function' ||\n (extComp && typeof extComp === 'object' && typeof extComp.component === 'function')\n ) {\n const { component, props: extraProps = {} } =\n typeof extComp === 'object' ? extComp : { component: extComp };\n return extRenderer(component, { ...props, ...extraProps });\n }\n return defaultRenderer(defComp, props);\n}\n\nexport function resolveCellComponent(type, renderFactory, props = {}) {\n const { getField } = props;\n const field = getField();\n if (\n (type === 'pinRenderer' && !field.isPinningEnabled) ||\n (type === 'sortRenderer' && !field.sort) ||\n (type === 'columnResizer' && !field.resizable)\n ) {\n return false;\n }\n\n if (props.value === undefined && type === 'cellRenderer') {\n props.value = props.getFormattedValue?.();\n props.title = props.getToolTipValue?.();\n }\n // If any cell renderer is defined on props , prioritize it.\n const comp = (props && type === 'cellRenderer' && props.getCellRenderer?.()) || field[type];\n\n return render(comp, props, renderFactory, type, defaultComponents);\n}\n\nexport function resolveViewComponent(type, renderFactory, props = {}) {\n const { getMeta } = props;\n const meta = getMeta();\n const comp = meta[type];\n return render(comp, props, renderFactory, type, defaultComponents);\n}\n"]}
1
+ {"version":3,"file":"ComponentResolverFactory.js","sourceRoot":"","sources":["../../../../Core/Components/RenderingEngine/ComponentResolverFactory.js"],"names":[],"mappings":"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","sourcesContent":["import defaultComponents, { defaultRenderer, extRenderer } from '../DefaultComponents';\n// TODO: check imports dependency cycle.\nfunction findValueWhichEqualsKey(obj, type, comp) {\n // As we are providing default set of cell renderers as well\n // First check for specific comp , if not present fallback to type.\n let k;\n if (comp) {\n k = Object.keys(obj).find(ki => comp.toLowerCase() === ki.toLowerCase());\n }\n if (!k) {\n k = Object.keys(obj).find(ki => type.toLowerCase() === ki.toLowerCase());\n }\n return obj[k];\n}\n\nfunction externalRendererResolution(comp, renderFactory, field) {\n if (!renderFactory || typeof renderFactory !== 'function') return comp;\n return field === undefined ? renderFactory(comp) : renderFactory(comp, field);\n}\n\nfunction render(comp, props, renderFactory, type, defaultComps) {\n // For cell renderer , we have a special case as there is only one way to change formatter / renderer from UI.\n // So, If column renderer is not defined then fall back to field meta level renderer if any.\n const defComp = findValueWhichEqualsKey(defaultComps, type, comp);\n const field = props.getField?.();\n if (!comp) {\n return defaultRenderer(defComp, props);\n }\n\n let extComp;\n if (typeof comp === 'function') {\n extComp = comp;\n } else {\n extComp = externalRendererResolution(comp, renderFactory, field);\n }\n // UI List lib is now accepting extraProps from renderFactory, in case consumer wants to send extraProps to their cellRenderers.\n // renderFactory return type can either be a function or object that contains { component, props }.\n // Props passed in the object should be stamped to the cell renderer.\n if (\n typeof extComp === 'function' ||\n (extComp && typeof extComp === 'object' && typeof extComp.component === 'function')\n ) {\n const { component, props: extraProps = {} } =\n typeof extComp === 'object' ? extComp : { component: extComp };\n return extRenderer(component, { ...props, ...extraProps });\n }\n return defaultRenderer(defComp, props);\n}\n\nexport function resolveCellComponent(type, renderFactory, props = {}) {\n const { getField } = props;\n const field = getField();\n if (\n (type === 'pinRenderer' && !field.isPinningEnabled) ||\n (type === 'sortRenderer' && !field.sort) ||\n (type === 'columnResizer' && !field.resizable)\n ) {\n return false;\n }\n\n if (props.value === undefined && type === 'cellRenderer') {\n props.value = props.getFormattedValue?.();\n props.title = props.getToolTipValue?.();\n }\n // If any cell renderer is defined on props , prioritize it.\n const comp = (props && type === 'cellRenderer' && props.getCellRenderer?.()) || field[type];\n\n return render(comp, props, renderFactory, type, defaultComponents);\n}\n\nexport function resolveViewComponent(type, renderFactory, props = {}) {\n const { getMeta } = props;\n const meta = getMeta();\n const comp = meta[type];\n return render(comp, props, renderFactory, type, defaultComponents);\n}\n\nexport function resolveComponent(type, renderFactory, props = {}) {\n return render(type, props, renderFactory, type, defaultComponents);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AdvanceToolbar.d.ts","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/AdvanceToolbar.jsx"],"names":[],"mappings":"AAwBA;;4CA4GC;;;;;;;;;sBApIqB,YAAY"}
1
+ {"version":3,"file":"AdvanceToolbar.d.ts","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/AdvanceToolbar.jsx"],"names":[],"mappings":"AAyBA;;4CAiIC;;;;;;;;;sBA1JqB,YAAY"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import PropTypes from 'prop-types';
3
- import { ListToolbar } from '@pega/cosmos-react-core';
3
+ import { useRef } from 'react';
4
+ import { ListToolbar, useBreakpoint } from '@pega/cosmos-react-core';
4
5
  import { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';
5
6
  import { SELECTION_MODES } from '../../constants';
6
7
  import showFeatureForTemplate from '../../templateFeatureSupport';
@@ -20,7 +21,11 @@ import ValidateMessage from './ValidateMessage';
20
21
  import useFormControlProps from './hooks/useFormControlProps';
21
22
  import useWrapAction from './hooks/useWrapAction';
22
23
  export default function AdvanceToolbar({ view }) {
23
- const { selectedRecordsCount, meta: { basicMode, selectionMode, title, showTitle, toolbarActions, allowBulkActions, mapFieldIds } = {}, rows, state, getContext, isLoading, showCount, refreshNotification, type: { forceRefresh }, announceCount, template } = view;
24
+ const toolbarRef = useRef(null);
25
+ // additionalActions (bulk actions/toolbar actions) should stay hidden on mobile until a
26
+ // selection is active; that decision lives here, in the parent, not in ListToolbar.
27
+ const isSmallOrAbove = useBreakpoint('sm', { breakpointRef: toolbarRef });
28
+ const { selectedRecordsCount, meta: { basicMode, selectionMode, title, showTitle, headingTag, toolbarActions, allowBulkActions, allowRefresh, mapFieldIds } = {}, rows, state, getContext, isLoading, showCount, refreshNotification, type: { forceRefresh }, announceCount, template } = view;
24
29
  const { getRequiredDef } = getContext();
25
30
  const { validatemessage } = getRequiredDef() || {};
26
31
  const { viewSelector, createEditViewContent } = usePersonalization({ view });
@@ -31,9 +36,13 @@ export default function AdvanceToolbar({ view }) {
31
36
  const sort = useSort({ view });
32
37
  const { actions, actionsButtonRef, selectedActionContent } = useMore({ view });
33
38
  const enableActionsMenu = selectionMode === SELECTION_MODES.multi && selectedRecordsCount !== 0;
39
+ const activePersonalization = state.personalization?.active;
40
+ const activePersonalizationName = state.personalization?.allPersonalizations?.[activePersonalization]?.name;
41
+ const viewName = activePersonalizationName ? `${title}: ${activePersonalizationName}` : title;
34
42
  const formControlProps = useFormControlProps(view);
35
43
  const wrapAction = useWrapAction(view);
36
44
  const additionalActions = (_jsxs(_Fragment, { children: [basicMode && (_jsx(ToolbarActions, { toolbarActions: toolbarActions?.filter(action => !action.id.startsWith('Add')) })), allowBulkActions && template !== REPEATING_STRUCTURE_TEMPLATES.TIMELINE && (_jsx(ActionsMenu, { enableActionsMenu: enableActionsMenu, view: view }))] }));
45
+ const responsiveAdditionalActions = isSmallOrAbove || enableActionsMenu ? additionalActions : undefined;
37
46
  const createNewAction = toolbarActions?.find(action => action.id.startsWith('Add'));
38
47
  const createNew = createNewAction && basicMode
39
48
  ? {
@@ -41,8 +50,8 @@ export default function AdvanceToolbar({ view }) {
41
50
  onClick: createNewAction.onClick
42
51
  }
43
52
  : undefined;
44
- const Toolbar = template === REPEATING_STRUCTURE_TEMPLATES.MAP ? (_jsx(MapToolbar, { locationFieldId: mapFieldIds?.location, name: title, showName: showTitle, formControlProps: formControlProps, rows: rows, count: count, createNew: createNew, additionalActions: additionalActions })) : (_jsxs(_Fragment, { children: [_jsx(ListToolbar, { name: title, showName: showTitle, formControlProps: formControlProps, viewSelector: viewSelector, search: search, count: count, additionalActions: additionalActions, filter: filter, group: showFeatureForTemplate(template, 'group') && group, sort: sort, actions: actions, actionsButtonRef: actionsButtonRef, createNew: createNew, wrap: wrapAction }), selectedActionContent, createEditViewContent] }));
45
- return (_jsxs(AnnounceRowsCount, { state: state, count: count, isLoading: isLoading, announceCount: announceCount, children: [_jsx(ValidateMessage, { message: validatemessage, children: Toolbar }), refreshNotification && (_jsx(RefreshBanner, { refreshNotification: refreshNotification, forceRefresh: forceRefresh }))] }));
53
+ const Toolbar = template === REPEATING_STRUCTURE_TEMPLATES.MAP ? (_jsx(MapToolbar, { locationFieldId: mapFieldIds?.location, name: title, showName: showTitle, headingTag: headingTag, formControlProps: formControlProps, rows: rows, count: count, createNew: createNew, additionalActions: responsiveAdditionalActions, ref: toolbarRef })) : (_jsxs(_Fragment, { children: [_jsx(ListToolbar, { name: title, showName: showTitle, headingTag: headingTag, formControlProps: formControlProps, viewSelector: viewSelector, search: search, count: count, additionalActions: responsiveAdditionalActions, filter: filter, group: showFeatureForTemplate(template, 'group') && group, sort: sort, actions: actions, actionsButtonRef: actionsButtonRef, createNew: createNew, wrap: wrapAction, ref: toolbarRef }), selectedActionContent, createEditViewContent] }));
54
+ return (_jsxs(AnnounceRowsCount, { state: state, count: count, isLoading: isLoading, announceCount: announceCount, children: [_jsx(ValidateMessage, { message: validatemessage, children: Toolbar }), refreshNotification && (_jsx(RefreshBanner, { refreshNotification: refreshNotification, forceRefresh: forceRefresh, viewName: viewName, allowRefresh: allowRefresh }))] }));
46
55
  }
47
56
  AdvanceToolbar.propTypes = {
48
57
  view: PropTypes.objectOf(PropTypes.any).isRequired
@@ -1 +1 @@
1
- {"version":3,"file":"AdvanceToolbar.js","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/AdvanceToolbar.jsx"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,sBAAsB,MAAM,8BAA8B,CAAC;AAElE,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,OAAO,MAAM,iBAAiB,CAAC;AACtC,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,mBAAmB,MAAM,6BAA6B,CAAC;AAC9D,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAElD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE;IAC7C,MAAM,EACJ,oBAAoB,EACpB,IAAI,EAAE,EACJ,SAAS,EACT,aAAa,EACb,KAAK,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,WAAW,EACZ,GAAG,EAAE,EACN,IAAI,EACJ,KAAK,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,IAAI,EAAE,EAAE,YAAY,EAAE,EACtB,aAAa,EACb,QAAQ,EACT,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,CAAC;IACxC,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,EAAE,IAAI,EAAE,CAAC;IACnD,MAAM,EAAE,YAAY,EAAE,qBAAqB,EAAE,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/B,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,MAAM,iBAAiB,GAAG,aAAa,KAAK,eAAe,CAAC,KAAK,IAAI,oBAAoB,KAAK,CAAC,CAAC;IAChG,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,iBAAiB,GAAG,CACxB,8BACG,SAAS,IAAI,CACZ,KAAC,cAAc,IACb,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAC9E,CACH,EACA,gBAAgB,IAAI,QAAQ,KAAK,6BAA6B,CAAC,QAAQ,IAAI,CAC1E,KAAC,WAAW,IAAC,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,GAAI,CAClE,IACA,CACJ,CAAC;IAEF,MAAM,eAAe,GAAG,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACpF,MAAM,SAAS,GACb,eAAe,IAAI,SAAS;QAC1B,CAAC,CAAC;YACE,KAAK,EAAE,eAAe,EAAE,IAAI;YAC5B,OAAO,EAAE,eAAe,CAAC,OAAO;SACjC;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,OAAO,GACX,QAAQ,KAAK,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC,CAC/C,KAAC,UAAU,IACT,eAAe,EAAE,WAAW,EAAE,QAAQ,EACtC,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,SAAS,EACnB,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,iBAAiB,GACpC,CACH,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,WAAW,IACV,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,SAAS,EACnB,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,EACzD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,UAAU,GAChB,EACD,qBAAqB,EACrB,qBAAqB,IACrB,CACJ,CAAC;IAEJ,OAAO,CACL,MAAC,iBAAiB,IAChB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,aAE5B,KAAC,eAAe,IAAC,OAAO,EAAE,eAAe,YACtC,OAAO,GAEQ,EACjB,mBAAmB,IAAI,CACtB,KAAC,aAAa,IAAC,mBAAmB,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,GAAI,CACxF,IACiB,CACrB,CAAC;AACJ,CAAC;AAED,cAAc,CAAC,SAAS,GAAG;IACzB,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU;CACnD,CAAC","sourcesContent":["import PropTypes from 'prop-types';\n\nimport { ListToolbar } from '@pega/cosmos-react-core';\nimport { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\n\nimport { SELECTION_MODES } from '../../constants';\nimport showFeatureForTemplate from '../../templateFeatureSupport';\n\nimport ActionsMenu from './ActionsMenu';\nimport MapToolbar from './Map/MapToolbar';\nimport ToolbarActions from './ToolbarActions';\nimport useSearch from './hooks/useSearch';\nimport useFilter from './hooks/useFilter';\nimport usePersonalization from './hooks/usePersonalization';\nimport useMore from './hooks/useMore';\nimport useGroup from './hooks/useGroup/useGroup';\nimport useSort from './hooks/useSort/useSort';\nimport getCount from './utils/getCount';\nimport RefreshBanner from './RefreshBanner';\nimport AnnounceRowsCount from './AnnounceRowsCount';\nimport ValidateMessage from './ValidateMessage';\nimport useFormControlProps from './hooks/useFormControlProps';\nimport useWrapAction from './hooks/useWrapAction';\n\nexport default function AdvanceToolbar({ view }) {\n const {\n selectedRecordsCount,\n meta: {\n basicMode,\n selectionMode,\n title,\n showTitle,\n toolbarActions,\n allowBulkActions,\n mapFieldIds\n } = {},\n rows,\n state,\n getContext,\n isLoading,\n showCount,\n refreshNotification,\n type: { forceRefresh },\n announceCount,\n template\n } = view;\n const { getRequiredDef } = getContext();\n const { validatemessage } = getRequiredDef() || {};\n const { viewSelector, createEditViewContent } = usePersonalization({ view });\n const search = useSearch({ view });\n const count = showCount ? getCount({ view }) : undefined;\n const filter = useFilter({ view });\n const group = useGroup({ view });\n const sort = useSort({ view });\n const { actions, actionsButtonRef, selectedActionContent } = useMore({ view });\n const enableActionsMenu = selectionMode === SELECTION_MODES.multi && selectedRecordsCount !== 0;\n const formControlProps = useFormControlProps(view);\n const wrapAction = useWrapAction(view);\n\n const additionalActions = (\n <>\n {basicMode && (\n <ToolbarActions\n toolbarActions={toolbarActions?.filter(action => !action.id.startsWith('Add'))}\n />\n )}\n {allowBulkActions && template !== REPEATING_STRUCTURE_TEMPLATES.TIMELINE && (\n <ActionsMenu enableActionsMenu={enableActionsMenu} view={view} />\n )}\n </>\n );\n\n const createNewAction = toolbarActions?.find(action => action.id.startsWith('Add'));\n const createNew =\n createNewAction && basicMode\n ? {\n label: createNewAction?.text,\n onClick: createNewAction.onClick\n }\n : undefined;\n\n const Toolbar =\n template === REPEATING_STRUCTURE_TEMPLATES.MAP ? (\n <MapToolbar\n locationFieldId={mapFieldIds?.location}\n name={title}\n showName={showTitle}\n formControlProps={formControlProps}\n rows={rows}\n count={count}\n createNew={createNew}\n additionalActions={additionalActions}\n />\n ) : (\n <>\n <ListToolbar\n name={title}\n showName={showTitle}\n formControlProps={formControlProps}\n viewSelector={viewSelector}\n search={search}\n count={count}\n additionalActions={additionalActions}\n filter={filter}\n group={showFeatureForTemplate(template, 'group') && group}\n sort={sort}\n actions={actions}\n actionsButtonRef={actionsButtonRef}\n createNew={createNew}\n wrap={wrapAction}\n />\n {selectedActionContent}\n {createEditViewContent}\n </>\n );\n\n return (\n <AnnounceRowsCount\n state={state}\n count={count}\n isLoading={isLoading}\n announceCount={announceCount}\n >\n <ValidateMessage message={validatemessage}>\n {Toolbar}\n {/* FIXME: This implementation of error status should be considered temporary until an official, and properly accessible, spec is determined. */}\n </ValidateMessage>\n {refreshNotification && (\n <RefreshBanner refreshNotification={refreshNotification} forceRefresh={forceRefresh} />\n )}\n </AnnounceRowsCount>\n );\n}\n\nAdvanceToolbar.propTypes = {\n view: PropTypes.objectOf(PropTypes.any).isRequired\n};\n"]}
1
+ {"version":3,"file":"AdvanceToolbar.js","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/AdvanceToolbar.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport { useRef } from 'react';\n\nimport { ListToolbar, useBreakpoint } from '@pega/cosmos-react-core';\nimport { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\n\nimport { SELECTION_MODES } from '../../constants';\nimport showFeatureForTemplate from '../../templateFeatureSupport';\n\nimport ActionsMenu from './ActionsMenu';\nimport MapToolbar from './Map/MapToolbar';\nimport ToolbarActions from './ToolbarActions';\nimport useSearch from './hooks/useSearch';\nimport useFilter from './hooks/useFilter';\nimport usePersonalization from './hooks/usePersonalization';\nimport useMore from './hooks/useMore';\nimport useGroup from './hooks/useGroup/useGroup';\nimport useSort from './hooks/useSort/useSort';\nimport getCount from './utils/getCount';\nimport RefreshBanner from './RefreshBanner';\nimport AnnounceRowsCount from './AnnounceRowsCount';\nimport ValidateMessage from './ValidateMessage';\nimport useFormControlProps from './hooks/useFormControlProps';\nimport useWrapAction from './hooks/useWrapAction';\n\nexport default function AdvanceToolbar({ view }) {\n const toolbarRef = useRef(null);\n // additionalActions (bulk actions/toolbar actions) should stay hidden on mobile until a\n // selection is active; that decision lives here, in the parent, not in ListToolbar.\n const isSmallOrAbove = useBreakpoint('sm', { breakpointRef: toolbarRef });\n const {\n selectedRecordsCount,\n meta: {\n basicMode,\n selectionMode,\n title,\n showTitle,\n headingTag,\n toolbarActions,\n allowBulkActions,\n allowRefresh,\n mapFieldIds\n } = {},\n rows,\n state,\n getContext,\n isLoading,\n showCount,\n refreshNotification,\n type: { forceRefresh },\n announceCount,\n template\n } = view;\n const { getRequiredDef } = getContext();\n const { validatemessage } = getRequiredDef() || {};\n const { viewSelector, createEditViewContent } = usePersonalization({ view });\n const search = useSearch({ view });\n const count = showCount ? getCount({ view }) : undefined;\n const filter = useFilter({ view });\n const group = useGroup({ view });\n const sort = useSort({ view });\n const { actions, actionsButtonRef, selectedActionContent } = useMore({ view });\n const enableActionsMenu = selectionMode === SELECTION_MODES.multi && selectedRecordsCount !== 0;\n const activePersonalization = state.personalization?.active;\n const activePersonalizationName =\n state.personalization?.allPersonalizations?.[activePersonalization]?.name;\n const viewName = activePersonalizationName ? `${title}: ${activePersonalizationName}` : title;\n const formControlProps = useFormControlProps(view);\n const wrapAction = useWrapAction(view);\n\n const additionalActions = (\n <>\n {basicMode && (\n <ToolbarActions\n toolbarActions={toolbarActions?.filter(action => !action.id.startsWith('Add'))}\n />\n )}\n {allowBulkActions && template !== REPEATING_STRUCTURE_TEMPLATES.TIMELINE && (\n <ActionsMenu enableActionsMenu={enableActionsMenu} view={view} />\n )}\n </>\n );\n const responsiveAdditionalActions =\n isSmallOrAbove || enableActionsMenu ? additionalActions : undefined;\n\n const createNewAction = toolbarActions?.find(action => action.id.startsWith('Add'));\n const createNew =\n createNewAction && basicMode\n ? {\n label: createNewAction?.text,\n onClick: createNewAction.onClick\n }\n : undefined;\n\n const Toolbar =\n template === REPEATING_STRUCTURE_TEMPLATES.MAP ? (\n <MapToolbar\n locationFieldId={mapFieldIds?.location}\n name={title}\n showName={showTitle}\n headingTag={headingTag}\n formControlProps={formControlProps}\n rows={rows}\n count={count}\n createNew={createNew}\n additionalActions={responsiveAdditionalActions}\n ref={toolbarRef}\n />\n ) : (\n <>\n <ListToolbar\n name={title}\n showName={showTitle}\n headingTag={headingTag}\n formControlProps={formControlProps}\n viewSelector={viewSelector}\n search={search}\n count={count}\n additionalActions={responsiveAdditionalActions}\n filter={filter}\n group={showFeatureForTemplate(template, 'group') && group}\n sort={sort}\n actions={actions}\n actionsButtonRef={actionsButtonRef}\n createNew={createNew}\n wrap={wrapAction}\n ref={toolbarRef}\n />\n {selectedActionContent}\n {createEditViewContent}\n </>\n );\n\n return (\n <AnnounceRowsCount\n state={state}\n count={count}\n isLoading={isLoading}\n announceCount={announceCount}\n >\n <ValidateMessage message={validatemessage}>\n {Toolbar}\n {/* FIXME: This implementation of error status should be considered temporary until an official, and properly accessible, spec is determined. */}\n </ValidateMessage>\n {refreshNotification && (\n <RefreshBanner\n refreshNotification={refreshNotification}\n forceRefresh={forceRefresh}\n viewName={viewName}\n allowRefresh={allowRefresh}\n />\n )}\n </AnnounceRowsCount>\n );\n}\n\nAdvanceToolbar.propTypes = {\n view: PropTypes.objectOf(PropTypes.any).isRequired\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSelector.d.ts","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/ColumnSelector.jsx"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,yCAHW,MAAM,GACJ,GAAG,CAAC,OAAO,CAKvB;AAeD;;;;;GAKG;AACH,kEAHW,MAAM,SAsDhB;AA2BD,2FA0EC;;;;;;;;;AAzLD,6BAA8B,mBAAmB,CAAC;AAClD,sBAAuB,gBAAgB,CAAC;;;sBAlBlB,YAAY;AAmNlC;;;;;;4CAwBC"}
1
+ {"version":3,"file":"ColumnSelector.d.ts","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/ColumnSelector.jsx"],"names":[],"mappings":"AAsBA;;;;;GAKG;AACH,yCAHW,MAAM,GACJ,GAAG,CAAC,OAAO,CAKvB;AAeD;;;;;GAKG;AACH,kEAHW,MAAM,SAsDhB;AAqCD,2FA0EC;;;;;;;;;AAnMD,6BAA8B,mBAAmB,CAAC;AAClD,sBAAuB,gBAAgB,CAAC;;;sBAnBlB,YAAY;AA8NlC;;;;;;4CAwBC"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { memo, useCallback, useEffect, useState, useMemo } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import styled from 'styled-components';
5
- import { Icon, SearchInput, Menu, menuHelpers, useElement, Flex, Button, useI18n } from '@pega/cosmos-react-core';
5
+ import { Icon, isTouchDevice, SearchInput, Menu, menuHelpers, useElement, Flex, Button, useI18n } from '@pega/cosmos-react-core';
6
6
  import { getFieldIcon } from '../../Utils';
7
7
  import useTranslate from '../../Hooks/useTranslate';
8
8
  export const colsVisibility = 'Show/hide columns';
@@ -96,7 +96,17 @@ Footer.propTypes = {
96
96
  disabled: PropTypes.bool.isRequired
97
97
  };
98
98
  const StyledMenu = styled(Menu) `
99
- width: 16rem;
99
+ width: ${isTouchDevice ? 'auto' : '16rem'};
100
+
101
+ ${isTouchDevice &&
102
+ `
103
+ height: 100%;
104
+
105
+ > div {
106
+ flex: 1;
107
+ min-height: 0;
108
+ }
109
+ `}
100
110
  `;
101
111
  export function ColumnSelectorControl(props) {
102
112
  const { data, onSubmit, onCancel, action } = props;
@@ -110,7 +120,7 @@ export function ColumnSelectorControl(props) {
110
120
  const [items, setItems] = useState(data);
111
121
  const selectedColumns = useMemo(() => new Set(menuHelpers.getSelected(items).map(item => item.id)), [items]);
112
122
  useEffect(() => {
113
- if (searchRef) {
123
+ if (!isTouchDevice && searchRef) {
114
124
  searchRef.focus();
115
125
  }
116
126
  }, [searchRef]);
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSelector.js","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/ColumnSelector.jsx"],"names":[],"mappings":"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","sourcesContent":["import { memo, useCallback, useEffect, useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport {\n Icon,\n SearchInput,\n Menu,\n menuHelpers,\n useElement,\n Flex,\n Button,\n useI18n\n} from '@pega/cosmos-react-core';\n\nimport { getFieldIcon } from '../../Utils';\nimport useTranslate from '../../Hooks/useTranslate';\n\nexport const colsVisibility = 'Show/hide columns';\nexport const pinning = 'Freeze columns';\n\n/**\n * Returns an Icon component based on the field type.\n *\n * @param {string} type - The type of the field for which the icon is required.\n * @returns {JSX.Element} - A React Icon component with the appropriate icon name.\n */\nexport function getIconByFieldType(type) {\n const iconName = getFieldIcon(type);\n return <Icon data-test-id={iconName} data-testid={iconName} name={iconName} />;\n}\n\n/**\n * Determines the list of changed column IDs.\n *\n * @param {Set<string>} initialSelectedColumns - The initial set of selected column IDs.\n * @param {Set<string>} currentSelectedColumns - The current set of selected column IDs.\n * @returns {string[]} - Array of modified column IDs.\n */\nfunction getModifiedColumns(initialSelectedColumns, currentSelectedColumns) {\n const addedColumns = [...currentSelectedColumns].filter(id => !initialSelectedColumns.has(id));\n const removedColumns = [...initialSelectedColumns].filter(id => !currentSelectedColumns.has(id));\n return [...addedColumns, ...removedColumns];\n}\n\n/**\n * Transforms the columns array into array of columns grouped by category\n * @param {Array} columns - The array of column objects to be transformed.\n * @param {string} action - The action to perform, either 'Show/hide columns' or 'Freeze columns'.\n * @returns Arrays of columns nested by category\n */\nexport function transformData(fieldDefs, state, action) {\n const result = [];\n if (!fieldDefs?.length) return result;\n\n const categoryObj = {};\n\n fieldDefs\n ?.filter(c => c.toggle)\n .forEach(field => {\n const { id, category = [], type, label } = field;\n const visible = state.visibleColumns?.includes(id);\n const frozen = state.freezeColumns?.includes(id);\n const lastCategoryLabel = category.length ? category[category.length - 1].label : undefined;\n if (categoryObj[lastCategoryLabel])\n categoryObj[lastCategoryLabel].items.push({\n id,\n primary: label,\n label,\n selected: action === colsVisibility ? visible : frozen,\n type,\n visual: getIconByFieldType(type)\n });\n else {\n categoryObj[lastCategoryLabel] = {\n id: `category:${lastCategoryLabel}`,\n primary: lastCategoryLabel,\n items: [\n {\n id,\n primary: label,\n selected: action === colsVisibility ? visible : frozen,\n label,\n type,\n visual: getIconByFieldType(type)\n }\n ]\n };\n }\n });\n // Items with no category attribute are set in the root of returned array\n if (categoryObj[undefined] && categoryObj[undefined].items) {\n result.push(...categoryObj[undefined].items);\n delete categoryObj[undefined];\n }\n const keys = Object.keys(categoryObj);\n // Items with category attribute are grouped inside the nested category object\n keys.forEach(key => {\n result.push(categoryObj[key]);\n });\n\n return result;\n}\n\nconst Footer = memo(({ onCancel, onSubmit, disabled }) => {\n const [translate] = useTranslate();\n return (\n <Flex container={{ justify: 'between' }}>\n <Button onClick={onCancel} data-testid='cancel'>\n {translate('Cancel')}\n </Button>\n <Button variant='primary' onClick={onSubmit} disabled={disabled} data-testid='submit'>\n {translate('Submit')}\n </Button>\n </Flex>\n );\n});\n\nFooter.displayName = 'Footer';\n\nFooter.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired\n};\n\nconst StyledMenu = styled(Menu)`\n width: 16rem;\n`;\nexport function ColumnSelectorControl(props) {\n const { data, onSubmit, onCancel, action } = props;\n const t = useI18n();\n\n const initialSelectedColumns = useMemo(\n () =>\n new Set(\n menuHelpers\n .flatten(data)\n .filter(item => item.selected)\n .map(item => item.id)\n ),\n [data]\n );\n\n const [searchText, setSearchText] = useState('');\n const [searchRef, setSearchRef] = useElement(null);\n const [items, setItems] = useState(data);\n const selectedColumns = useMemo(\n () => new Set(menuHelpers.getSelected(items).map(item => item.id)),\n [items]\n );\n\n useEffect(() => {\n if (searchRef) {\n searchRef.focus();\n }\n }, [searchRef]);\n\n const itemsToRender = useMemo(() => {\n return menuHelpers.mapTree(\n searchText\n ? menuHelpers\n .flatten(items)\n .filter(({ primary }) => primary.toLowerCase().includes(searchText.toLowerCase()))\n : items,\n item => {\n return {\n ...item,\n visual: item.visual,\n selected: item.items ? undefined : item.selected,\n disabled: item.selected && action === colsVisibility && selectedColumns.size <= 1\n };\n }\n );\n }, [searchText, items]);\n\n const modifiedColumns = useMemo(\n () => getModifiedColumns(initialSelectedColumns, selectedColumns),\n [initialSelectedColumns, selectedColumns, action]\n );\n\n const isSubmitEnabled =\n !(action === colsVisibility && selectedColumns.size === 0) && modifiedColumns.length > 0;\n return (\n <StyledMenu\n aria-label={t('columns')}\n items={itemsToRender}\n mode='multi-select'\n onItemClick={(id, args) => {\n setItems(cur => menuHelpers.toggleSelected(cur, id, args.mode));\n }}\n role='listbox'\n focusControlEl={searchRef || undefined}\n header={<SearchInput value={searchText} onSearchChange={setSearchText} ref={setSearchRef} />}\n footer={\n <Footer\n onCancel={onCancel}\n onSubmit={() => onSubmit(modifiedColumns)}\n disabled={!isSubmitEnabled}\n />\n }\n />\n );\n}\n\nColumnSelectorControl.propTypes = {\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n action: PropTypes.string.isRequired\n};\n\nfunction ColumnSelector({ dispatch, fieldDefs, state, action, finishPopOver }) {\n const transformed = useMemo(\n () => transformData(fieldDefs, state, action),\n [fieldDefs, state, action]\n );\n\n const onSubmitHandler = useCallback(\n changedCols => {\n if (changedCols.length > 0) {\n dispatch(changedCols);\n }\n finishPopOver();\n },\n [dispatch]\n );\n\n return (\n <ColumnSelectorControl\n data={transformed}\n onSubmit={onSubmitHandler}\n onCancel={finishPopOver}\n action={action}\n />\n );\n}\n\nColumnSelector.propTypes = {\n dispatch: PropTypes.func.isRequired,\n fieldDefs: PropTypes.arrayOf(PropTypes.object).isRequired,\n state: PropTypes.arrayOf(PropTypes.object).isRequired,\n action: PropTypes.string.isRequired,\n finishPopOver: PropTypes.func.isRequired\n};\n\nexport default memo(ColumnSelector);\n"]}
1
+ {"version":3,"file":"ColumnSelector.js","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/ColumnSelector.jsx"],"names":[],"mappings":"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","sourcesContent":["import { memo, useCallback, useEffect, useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport {\n Icon,\n isTouchDevice,\n SearchInput,\n Menu,\n menuHelpers,\n useElement,\n Flex,\n Button,\n useI18n\n} from '@pega/cosmos-react-core';\n\nimport { getFieldIcon } from '../../Utils';\nimport useTranslate from '../../Hooks/useTranslate';\n\nexport const colsVisibility = 'Show/hide columns';\nexport const pinning = 'Freeze columns';\n\n/**\n * Returns an Icon component based on the field type.\n *\n * @param {string} type - The type of the field for which the icon is required.\n * @returns {JSX.Element} - A React Icon component with the appropriate icon name.\n */\nexport function getIconByFieldType(type) {\n const iconName = getFieldIcon(type);\n return <Icon data-test-id={iconName} data-testid={iconName} name={iconName} />;\n}\n\n/**\n * Determines the list of changed column IDs.\n *\n * @param {Set<string>} initialSelectedColumns - The initial set of selected column IDs.\n * @param {Set<string>} currentSelectedColumns - The current set of selected column IDs.\n * @returns {string[]} - Array of modified column IDs.\n */\nfunction getModifiedColumns(initialSelectedColumns, currentSelectedColumns) {\n const addedColumns = [...currentSelectedColumns].filter(id => !initialSelectedColumns.has(id));\n const removedColumns = [...initialSelectedColumns].filter(id => !currentSelectedColumns.has(id));\n return [...addedColumns, ...removedColumns];\n}\n\n/**\n * Transforms the columns array into array of columns grouped by category\n * @param {Array} columns - The array of column objects to be transformed.\n * @param {string} action - The action to perform, either 'Show/hide columns' or 'Freeze columns'.\n * @returns Arrays of columns nested by category\n */\nexport function transformData(fieldDefs, state, action) {\n const result = [];\n if (!fieldDefs?.length) return result;\n\n const categoryObj = {};\n\n fieldDefs\n ?.filter(c => c.toggle)\n .forEach(field => {\n const { id, category = [], type, label } = field;\n const visible = state.visibleColumns?.includes(id);\n const frozen = state.freezeColumns?.includes(id);\n const lastCategoryLabel = category.length ? category[category.length - 1].label : undefined;\n if (categoryObj[lastCategoryLabel])\n categoryObj[lastCategoryLabel].items.push({\n id,\n primary: label,\n label,\n selected: action === colsVisibility ? visible : frozen,\n type,\n visual: getIconByFieldType(type)\n });\n else {\n categoryObj[lastCategoryLabel] = {\n id: `category:${lastCategoryLabel}`,\n primary: lastCategoryLabel,\n items: [\n {\n id,\n primary: label,\n selected: action === colsVisibility ? visible : frozen,\n label,\n type,\n visual: getIconByFieldType(type)\n }\n ]\n };\n }\n });\n // Items with no category attribute are set in the root of returned array\n if (categoryObj[undefined] && categoryObj[undefined].items) {\n result.push(...categoryObj[undefined].items);\n delete categoryObj[undefined];\n }\n const keys = Object.keys(categoryObj);\n // Items with category attribute are grouped inside the nested category object\n keys.forEach(key => {\n result.push(categoryObj[key]);\n });\n\n return result;\n}\n\nconst Footer = memo(({ onCancel, onSubmit, disabled }) => {\n const [translate] = useTranslate();\n return (\n <Flex container={{ justify: 'between' }}>\n <Button onClick={onCancel} data-testid='cancel'>\n {translate('Cancel')}\n </Button>\n <Button variant='primary' onClick={onSubmit} disabled={disabled} data-testid='submit'>\n {translate('Submit')}\n </Button>\n </Flex>\n );\n});\n\nFooter.displayName = 'Footer';\n\nFooter.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired\n};\n\nconst StyledMenu = styled(Menu)`\n width: ${isTouchDevice ? 'auto' : '16rem'};\n\n ${isTouchDevice &&\n `\n height: 100%;\n\n > div {\n flex: 1;\n min-height: 0;\n }\n `}\n`;\nexport function ColumnSelectorControl(props) {\n const { data, onSubmit, onCancel, action } = props;\n const t = useI18n();\n\n const initialSelectedColumns = useMemo(\n () =>\n new Set(\n menuHelpers\n .flatten(data)\n .filter(item => item.selected)\n .map(item => item.id)\n ),\n [data]\n );\n\n const [searchText, setSearchText] = useState('');\n const [searchRef, setSearchRef] = useElement(null);\n const [items, setItems] = useState(data);\n const selectedColumns = useMemo(\n () => new Set(menuHelpers.getSelected(items).map(item => item.id)),\n [items]\n );\n\n useEffect(() => {\n if (!isTouchDevice && searchRef) {\n searchRef.focus();\n }\n }, [searchRef]);\n\n const itemsToRender = useMemo(() => {\n return menuHelpers.mapTree(\n searchText\n ? menuHelpers\n .flatten(items)\n .filter(({ primary }) => primary.toLowerCase().includes(searchText.toLowerCase()))\n : items,\n item => {\n return {\n ...item,\n visual: item.visual,\n selected: item.items ? undefined : item.selected,\n disabled: item.selected && action === colsVisibility && selectedColumns.size <= 1\n };\n }\n );\n }, [searchText, items]);\n\n const modifiedColumns = useMemo(\n () => getModifiedColumns(initialSelectedColumns, selectedColumns),\n [initialSelectedColumns, selectedColumns, action]\n );\n\n const isSubmitEnabled =\n !(action === colsVisibility && selectedColumns.size === 0) && modifiedColumns.length > 0;\n return (\n <StyledMenu\n aria-label={t('columns')}\n items={itemsToRender}\n mode='multi-select'\n onItemClick={(id, args) => {\n setItems(cur => menuHelpers.toggleSelected(cur, id, args.mode));\n }}\n role='listbox'\n focusControlEl={searchRef || undefined}\n header={<SearchInput value={searchText} onSearchChange={setSearchText} ref={setSearchRef} />}\n footer={\n <Footer\n onCancel={onCancel}\n onSubmit={() => onSubmit(modifiedColumns)}\n disabled={!isSubmitEnabled}\n />\n }\n />\n );\n}\n\nColumnSelectorControl.propTypes = {\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n action: PropTypes.string.isRequired\n};\n\nfunction ColumnSelector({ dispatch, fieldDefs, state, action, finishPopOver }) {\n const transformed = useMemo(\n () => transformData(fieldDefs, state, action),\n [fieldDefs, state, action]\n );\n\n const onSubmitHandler = useCallback(\n changedCols => {\n if (changedCols.length > 0) {\n dispatch(changedCols);\n }\n finishPopOver();\n },\n [dispatch]\n );\n\n return (\n <ColumnSelectorControl\n data={transformed}\n onSubmit={onSubmitHandler}\n onCancel={finishPopOver}\n action={action}\n />\n );\n}\n\nColumnSelector.propTypes = {\n dispatch: PropTypes.func.isRequired,\n fieldDefs: PropTypes.arrayOf(PropTypes.object).isRequired,\n state: PropTypes.arrayOf(PropTypes.object).isRequired,\n action: PropTypes.string.isRequired,\n finishPopOver: PropTypes.func.isRequired\n};\n\nexport default memo(ColumnSelector);\n"]}
@@ -7,7 +7,7 @@ import getMenuItemsFromColumns from './utils/utils';
7
7
  function FieldSelector(props) {
8
8
  const { value, onChange, disabled = false, readOnly, fieldProp, label, labelHidden, fieldDefs } = props;
9
9
  const [translate] = useTranslate();
10
- const items = useMemo(() => getMenuItemsFromColumns(fieldDefs, fieldProp, { selectedField: value }), [fieldDefs, value, fieldProp]);
10
+ const items = useMemo(() => getMenuItemsFromColumns(fieldDefs, fieldProp, undefined, { selectedField: value }), [fieldDefs, value, fieldProp]);
11
11
  const selected = useMemo(() => {
12
12
  const selectedItem = menuHelpers.getItem(items, value);
13
13
  return selectedItem ? { id: selectedItem.id, text: selectedItem.primary } : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"FieldSelector.js","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/FieldSelector.jsx"],"names":[],"mappings":"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","sourcesContent":["import { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ComboBox, menuHelpers } from '@pega/cosmos-react-core';\n\nimport useTranslate from '../../Hooks/useTranslate';\n\nimport getMenuItemsFromColumns from './utils/utils';\n\nfunction FieldSelector(props) {\n const {\n value,\n onChange,\n disabled = false,\n readOnly,\n fieldProp,\n label,\n labelHidden,\n fieldDefs\n } = props;\n const [translate] = useTranslate();\n\n const items = useMemo(\n () => getMenuItemsFromColumns(fieldDefs, fieldProp, { selectedField: value }),\n [fieldDefs, value, fieldProp]\n );\n const selected = useMemo(() => {\n const selectedItem = menuHelpers.getItem(items, value);\n return selectedItem ? { id: selectedItem.id, text: selectedItem.primary } : undefined;\n }, [items, value]);\n\n const [filterValue, setFilterValue] = useState(undefined); // NOTE: `undefined` is needed to show the current selection\n const filterRegex = useMemo(() => {\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n // Literal string match from input, not user regex input.\n return filterValue\n ? new RegExp(filterValue.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&'), 'i')\n : undefined;\n }, [filterValue]);\n\n const filteredItems = useMemo(() => {\n return filterRegex\n ? menuHelpers.flatten(items).filter(({ primary }) => filterRegex.test(primary))\n : items;\n }, [filterRegex, items]);\n\n return (\n <ComboBox\n label={label}\n labelHidden={labelHidden}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={translate('Select field')}\n mode='single-select'\n value={filterValue ?? ''}\n testId='FieldSelector'\n onChange={ev => {\n const newValue = ev.target.value;\n if (!newValue) {\n onChange('');\n }\n setFilterValue(newValue);\n }}\n onBlur={() => {\n setFilterValue(undefined);\n }}\n selected={selected ? { items: selected } : undefined}\n menu={{\n items: filteredItems,\n mode: 'single-select',\n accent: filterRegex,\n emptyText: 'No items',\n onItemClick: id => {\n if (disabled) return;\n onChange(id);\n setFilterValue(undefined); // To show the selected value in the input\n }\n }}\n onDropdownButtonClick={() => {}}\n />\n );\n}\n\nFieldSelector.propTypes = {\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n fieldProp: PropTypes.string,\n label: PropTypes.string.isRequired,\n labelHidden: PropTypes.bool,\n fieldDefs: PropTypes.arrayOf(PropTypes.object).isRequired\n};\n\nexport default FieldSelector;\n"]}
1
+ {"version":3,"file":"FieldSelector.js","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/FieldSelector.jsx"],"names":[],"mappings":"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","sourcesContent":["import { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ComboBox, menuHelpers } from '@pega/cosmos-react-core';\n\nimport useTranslate from '../../Hooks/useTranslate';\n\nimport getMenuItemsFromColumns from './utils/utils';\n\nfunction FieldSelector(props) {\n const {\n value,\n onChange,\n disabled = false,\n readOnly,\n fieldProp,\n label,\n labelHidden,\n fieldDefs\n } = props;\n const [translate] = useTranslate();\n\n const items = useMemo(\n () => getMenuItemsFromColumns(fieldDefs, fieldProp, undefined, { selectedField: value }),\n [fieldDefs, value, fieldProp]\n );\n const selected = useMemo(() => {\n const selectedItem = menuHelpers.getItem(items, value);\n return selectedItem ? { id: selectedItem.id, text: selectedItem.primary } : undefined;\n }, [items, value]);\n\n const [filterValue, setFilterValue] = useState(undefined); // NOTE: `undefined` is needed to show the current selection\n const filterRegex = useMemo(() => {\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n // Literal string match from input, not user regex input.\n return filterValue\n ? new RegExp(filterValue.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&'), 'i')\n : undefined;\n }, [filterValue]);\n\n const filteredItems = useMemo(() => {\n return filterRegex\n ? menuHelpers.flatten(items).filter(({ primary }) => filterRegex.test(primary))\n : items;\n }, [filterRegex, items]);\n\n return (\n <ComboBox\n label={label}\n labelHidden={labelHidden}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={translate('Select field')}\n mode='single-select'\n value={filterValue ?? ''}\n testId='FieldSelector'\n onChange={ev => {\n const newValue = ev.target.value;\n if (!newValue) {\n onChange('');\n }\n setFilterValue(newValue);\n }}\n onBlur={() => {\n setFilterValue(undefined);\n }}\n selected={selected ? { items: selected } : undefined}\n menu={{\n items: filteredItems,\n mode: 'single-select',\n accent: filterRegex,\n emptyText: 'No items',\n onItemClick: id => {\n if (disabled) return;\n onChange(id);\n setFilterValue(undefined); // To show the selected value in the input\n }\n }}\n onDropdownButtonClick={() => {}}\n />\n );\n}\n\nFieldSelector.propTypes = {\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n fieldProp: PropTypes.string,\n label: PropTypes.string.isRequired,\n labelHidden: PropTypes.bool,\n fieldDefs: PropTypes.arrayOf(PropTypes.object).isRequired\n};\n\nexport default FieldSelector;\n"]}
@@ -1,9 +1,9 @@
1
- import type { ListToolbarProps } from '@pega/cosmos-react-core';
1
+ import type { ForwardRefForwardPropsComponent, ListToolbarProps } from '@pega/cosmos-react-core';
2
2
  import type { RsCoreTypes } from 'pega-repeating-structures-core';
3
3
  interface MapToolbarProps extends ListToolbarProps {
4
4
  locationFieldId: NonNullable<RsCoreTypes.View['meta']['mapFieldIds']>['location'];
5
5
  rows: RsCoreTypes.View['rows'];
6
6
  }
7
- declare const MapToolbar: ({ locationFieldId, rows, ...restProps }: MapToolbarProps) => import("react/jsx-runtime").JSX.Element;
7
+ declare const MapToolbar: ForwardRefForwardPropsComponent<MapToolbarProps>;
8
8
  export default MapToolbar;
9
9
  //# sourceMappingURL=MapToolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapToolbar.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/Map/MapToolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAIlE,UAAU,eAAgB,SAAQ,gBAAgB;IAChD,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAClF,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CAChC;AAED,QAAA,MAAM,UAAU,GAAI,yCAAyC,eAAe,4CA4B3E,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"MapToolbar.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/Map/MapToolbar.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,+BAA+B,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAIlE,UAAU,eAAgB,SAAQ,gBAAgB;IAChD,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAClF,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CAChC;AAMD,QAAA,MAAM,UAAU,EAAE,+BAA+B,CAAC,eAAe,CA2C/D,CAAC;AAEH,eAAe,UAAU,CAAC"}
@@ -1,27 +1,26 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useMemo } from 'react';
3
- import { getGoogleMapsDirHref, ListToolbar, useI18n } from '@pega/cosmos-react-core';
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { forwardRef, useMemo } from 'react';
3
+ import { Button, Flex, getGoogleMapsDirHref, Icon, ListToolbar, useI18n } from '@pega/cosmos-react-core';
4
4
  import getValue from '../../../Views/Map/utils';
5
- const MapToolbar = ({ locationFieldId, rows, ...restProps }) => {
5
+ // getValue stringifies missing/nullish field values (e.g. to 'undefined' or 'null'), so those must be filtered out explicitly.
6
+ const isValidLocation = (location) => Boolean(location) && location !== 'undefined' && location !== 'null';
7
+ const MapToolbar = forwardRef(function MapToolbar({ locationFieldId, rows, additionalActions, ...restProps }, ref) {
6
8
  const t = useI18n();
7
9
  const routeHref = useMemo(() => {
8
10
  if (!rows || rows.length < 1 || !locationFieldId)
9
11
  return '';
10
- const waypoints = rows.map(({ rowData }) => getValue(rowData, locationFieldId));
11
- const [destination] = waypoints.splice(-1, 1);
12
+ const locations = rows
13
+ .map(({ rowData }) => getValue(rowData, locationFieldId))
14
+ .filter(isValidLocation);
15
+ if (locations.length < 1)
16
+ return '';
17
+ const waypoints = locations.slice(0, -1);
18
+ const [destination] = locations.slice(-1);
12
19
  return getGoogleMapsDirHref(destination, waypoints);
13
20
  }, [rows, locationFieldId]);
14
- return (_jsx(ListToolbar, { ...restProps, actions: [
15
- {
16
- id: 'view_in_google_maps',
17
- text: t('view_in_google_maps'),
18
- href: routeHref,
19
- onClick: (id, e) => {
20
- e.preventDefault();
21
- window.open(routeHref, '_blank');
22
- }
23
- }
24
- ] }));
25
- };
21
+ return (_jsx(ListToolbar, { ...restProps, ref: ref, additionalActions: _jsxs(_Fragment, { children: [additionalActions, _jsx(Button, { disabled: !routeHref, ...(routeHref
22
+ ? { href: routeHref, target: '_blank', rel: 'noopener noreferrer' }
23
+ : {}), children: _jsxs(Flex, { container: { alignItems: 'center', gap: 0.5 }, as: 'span', children: [_jsx(Icon, { name: 'route' }), t('get_directions')] }) })] }) }));
24
+ });
26
25
  export default MapToolbar;
27
26
  //# sourceMappingURL=MapToolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapToolbar.js","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/Map/MapToolbar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIrF,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAOhD,MAAM,UAAU,GAAG,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,SAAS,EAAmB,EAAE,EAAE;IAC9E,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,EAAE,CAAC;QAE5D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE9C,OAAO,oBAAoB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAE5B,OAAO,CACL,KAAC,WAAW,OACN,SAAS,EACb,OAAO,EAAE;YACP;gBACE,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,CAAC,CAAC,qBAAqB,CAAC;gBAC9B,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;oBACjB,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACnC,CAAC;aACF;SACF,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","sourcesContent":["import { useMemo } from 'react';\n\nimport { getGoogleMapsDirHref, ListToolbar, useI18n } from '@pega/cosmos-react-core';\nimport type { ListToolbarProps } from '@pega/cosmos-react-core';\nimport type { RsCoreTypes } from 'pega-repeating-structures-core';\n\nimport getValue from '../../../Views/Map/utils';\n\ninterface MapToolbarProps extends ListToolbarProps {\n locationFieldId: NonNullable<RsCoreTypes.View['meta']['mapFieldIds']>['location'];\n rows: RsCoreTypes.View['rows'];\n}\n\nconst MapToolbar = ({ locationFieldId, rows, ...restProps }: MapToolbarProps) => {\n const t = useI18n();\n\n const routeHref = useMemo(() => {\n if (!rows || rows.length < 1 || !locationFieldId) return '';\n\n const waypoints = rows.map(({ rowData }) => getValue(rowData, locationFieldId));\n const [destination] = waypoints.splice(-1, 1);\n\n return getGoogleMapsDirHref(destination, waypoints);\n }, [rows, locationFieldId]);\n\n return (\n <ListToolbar\n {...restProps}\n actions={[\n {\n id: 'view_in_google_maps',\n text: t('view_in_google_maps'),\n href: routeHref,\n onClick: (id, e) => {\n e.preventDefault();\n window.open(routeHref, '_blank');\n }\n }\n ]}\n />\n );\n};\n\nexport default MapToolbar;\n"]}
1
+ {"version":3,"file":"MapToolbar.js","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/Map/MapToolbar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EACL,MAAM,EACN,IAAI,EACJ,oBAAoB,EACpB,IAAI,EACJ,WAAW,EACX,OAAO,EACR,MAAM,yBAAyB,CAAC;AAIjC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAOhD,+HAA+H;AAC/H,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAW,EAAE,CACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,MAAM,CAAC;AAEvE,MAAM,UAAU,GAAqD,UAAU,CAAC,SAAS,UAAU,CACjG,EAAE,eAAe,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,SAAS,EAAmB,EAC3E,GAA2B;IAE3B,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,EAAE,CAAC;QAE5D,MAAM,SAAS,GAAG,IAAI;aACnB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;aACxD,MAAM,CAAC,eAAe,CAAC,CAAC;QAE3B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1C,OAAO,oBAAoB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAE5B,OAAO,CACL,KAAC,WAAW,OACN,SAAS,EACb,GAAG,EAAE,GAAG,EACR,iBAAiB,EACf,8BACG,iBAAiB,EAClB,KAAC,MAAM,IACL,QAAQ,EAAE,CAAC,SAAS,KAChB,CAAC,SAAS;wBACZ,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,qBAAqB,EAAE;wBACnE,CAAC,CAAC,EAAE,CAAC,YAEP,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAC,MAAM,aAC5D,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG,EACpB,CAAC,CAAC,gBAAgB,CAAC,IACf,GACA,IACR,GAEL,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,UAAU,CAAC","sourcesContent":["import { forwardRef, useMemo } from 'react';\n\nimport {\n Button,\n Flex,\n getGoogleMapsDirHref,\n Icon,\n ListToolbar,\n useI18n\n} from '@pega/cosmos-react-core';\nimport type { ForwardRefForwardPropsComponent, ListToolbarProps } from '@pega/cosmos-react-core';\nimport type { RsCoreTypes } from 'pega-repeating-structures-core';\n\nimport getValue from '../../../Views/Map/utils';\n\ninterface MapToolbarProps extends ListToolbarProps {\n locationFieldId: NonNullable<RsCoreTypes.View['meta']['mapFieldIds']>['location'];\n rows: RsCoreTypes.View['rows'];\n}\n\n// getValue stringifies missing/nullish field values (e.g. to 'undefined' or 'null'), so those must be filtered out explicitly.\nconst isValidLocation = (location: string): boolean =>\n Boolean(location) && location !== 'undefined' && location !== 'null';\n\nconst MapToolbar: ForwardRefForwardPropsComponent<MapToolbarProps> = forwardRef(function MapToolbar(\n { locationFieldId, rows, additionalActions, ...restProps }: MapToolbarProps,\n ref: MapToolbarProps['ref']\n) {\n const t = useI18n();\n\n const routeHref = useMemo(() => {\n if (!rows || rows.length < 1 || !locationFieldId) return '';\n\n const locations = rows\n .map(({ rowData }) => getValue(rowData, locationFieldId))\n .filter(isValidLocation);\n\n if (locations.length < 1) return '';\n\n const waypoints = locations.slice(0, -1);\n const [destination] = locations.slice(-1);\n\n return getGoogleMapsDirHref(destination, waypoints);\n }, [rows, locationFieldId]);\n\n return (\n <ListToolbar\n {...restProps}\n ref={ref}\n additionalActions={\n <>\n {additionalActions}\n <Button\n disabled={!routeHref}\n {...(routeHref\n ? { href: routeHref, target: '_blank', rel: 'noopener noreferrer' }\n : {})}\n >\n <Flex container={{ alignItems: 'center', gap: 0.5 }} as='span'>\n <Icon name='route' />\n {t('get_directions')}\n </Flex>\n </Button>\n </>\n }\n />\n );\n});\n\nexport default MapToolbar;\n"]}
@@ -1,6 +1,8 @@
1
- declare function RefreshBanner({ refreshNotification, forceRefresh }: {
1
+ declare function RefreshBanner({ refreshNotification, forceRefresh, viewName, allowRefresh }: {
2
2
  refreshNotification: any;
3
3
  forceRefresh: any;
4
+ viewName: any;
5
+ allowRefresh: any;
4
6
  }): import("react/jsx-runtime").JSX.Element;
5
7
  declare namespace RefreshBanner {
6
8
  namespace propTypes {
@@ -8,6 +10,8 @@ declare namespace RefreshBanner {
8
10
  [x: string]: any;
9
11
  }>;
10
12
  let forceRefresh: PropTypes.Validator<(...args: any[]) => any>;
13
+ let viewName: PropTypes.Validator<string>;
14
+ let allowRefresh: PropTypes.Requireable<boolean>;
11
15
  }
12
16
  }
13
17
  export default RefreshBanner;
@@ -1 +1 @@
1
- {"version":3,"file":"RefreshBanner.d.ts","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/RefreshBanner.jsx"],"names":[],"mappings":"AAmBA;;;4CA4BC;;;;;;;;;;sBA/CqB,YAAY"}
1
+ {"version":3,"file":"RefreshBanner.d.ts","sourceRoot":"","sources":["../../../../Core/Components/Toolbar/RefreshBanner.jsx"],"names":[],"mappings":"AAmBA;;;;;4CAsDC;;;;;;;;;;;;sBAzEqB,YAAY"}