@pega/lists-react 9.0.0-build.21.0 → 9.0.0-build.21.10

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 (112) hide show
  1. package/lib/Core/Components/A11y/RepeatingStructureA11y.d.ts.map +1 -1
  2. package/lib/Core/Components/A11y/RepeatingStructureA11y.js +2 -1
  3. package/lib/Core/Components/A11y/RepeatingStructureA11y.js.map +1 -1
  4. package/lib/Core/Components/Filters/AdvanceFilter.d.ts.map +1 -1
  5. package/lib/Core/Components/Filters/AdvanceFilter.js +5 -2
  6. package/lib/Core/Components/Filters/AdvanceFilter.js.map +1 -1
  7. package/lib/Core/Components/Filters/SelectFilter.d.ts.map +1 -1
  8. package/lib/Core/Components/Filters/SelectFilter.js +2 -2
  9. package/lib/Core/Components/Filters/SelectFilter.js.map +1 -1
  10. package/lib/Core/Components/Filters/SimpleFilter.js +1 -1
  11. package/lib/Core/Components/Filters/SimpleFilter.js.map +1 -1
  12. package/lib/Core/Components/Toolbar/ColumnSelector.d.ts +6 -4
  13. package/lib/Core/Components/Toolbar/ColumnSelector.d.ts.map +1 -1
  14. package/lib/Core/Components/Toolbar/ColumnSelector.js +15 -19
  15. package/lib/Core/Components/Toolbar/ColumnSelector.js.map +1 -1
  16. package/lib/Core/Components/Toolbar/FieldSelector.d.ts +1 -1
  17. package/lib/Core/Components/Toolbar/FieldSelector.js +4 -4
  18. package/lib/Core/Components/Toolbar/FieldSelector.js.map +1 -1
  19. package/lib/Core/Components/Toolbar/hooks/useFilter.d.ts.map +1 -1
  20. package/lib/Core/Components/Toolbar/hooks/useFilter.js +4 -1
  21. package/lib/Core/Components/Toolbar/hooks/useFilter.js.map +1 -1
  22. package/lib/Core/Components/Toolbar/hooks/useGroup/DateFunctionSelector.d.ts +2 -2
  23. package/lib/Core/Components/Toolbar/hooks/useGroup/DateFunctionSelector.d.ts.map +1 -1
  24. package/lib/Core/Components/Toolbar/hooks/useGroup/DateFunctionSelector.js +2 -2
  25. package/lib/Core/Components/Toolbar/hooks/useGroup/DateFunctionSelector.js.map +1 -1
  26. package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.d.ts +2 -1
  27. package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.d.ts.map +1 -1
  28. package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.js +4 -4
  29. package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.js.map +1 -1
  30. package/lib/Core/Components/Toolbar/hooks/useGroup/useGroup.d.ts.map +1 -1
  31. package/lib/Core/Components/Toolbar/hooks/useGroup/useGroup.js +12 -4
  32. package/lib/Core/Components/Toolbar/hooks/useGroup/useGroup.js.map +1 -1
  33. package/lib/Core/Components/Toolbar/hooks/useGroup/utils.d.ts +2 -2
  34. package/lib/Core/Components/Toolbar/hooks/useGroup/utils.d.ts.map +1 -1
  35. package/lib/Core/Components/Toolbar/hooks/useGroup/utils.js +5 -5
  36. package/lib/Core/Components/Toolbar/hooks/useGroup/utils.js.map +1 -1
  37. package/lib/Core/Components/Toolbar/hooks/useMore.d.ts.map +1 -1
  38. package/lib/Core/Components/Toolbar/hooks/useMore.js +3 -3
  39. package/lib/Core/Components/Toolbar/hooks/useMore.js.map +1 -1
  40. package/lib/Core/Components/Toolbar/hooks/useSort/Row.d.ts +3 -2
  41. package/lib/Core/Components/Toolbar/hooks/useSort/Row.d.ts.map +1 -1
  42. package/lib/Core/Components/Toolbar/hooks/useSort/Row.js +5 -4
  43. package/lib/Core/Components/Toolbar/hooks/useSort/Row.js.map +1 -1
  44. package/lib/Core/Components/Toolbar/hooks/useSort/SortRenderer.d.ts +3 -2
  45. package/lib/Core/Components/Toolbar/hooks/useSort/SortRenderer.d.ts.map +1 -1
  46. package/lib/Core/Components/Toolbar/hooks/useSort/SortRenderer.js +4 -4
  47. package/lib/Core/Components/Toolbar/hooks/useSort/SortRenderer.js.map +1 -1
  48. package/lib/Core/Components/Toolbar/hooks/useSort/useSort.d.ts.map +1 -1
  49. package/lib/Core/Components/Toolbar/hooks/useSort/useSort.js +7 -1
  50. package/lib/Core/Components/Toolbar/hooks/useSort/useSort.js.map +1 -1
  51. package/lib/Core/Components/Toolbar/hooks/useSort/utils.d.ts +1 -1
  52. package/lib/Core/Components/Toolbar/hooks/useSort/utils.d.ts.map +1 -1
  53. package/lib/Core/Components/Toolbar/hooks/useSort/utils.js +2 -2
  54. package/lib/Core/Components/Toolbar/hooks/useSort/utils.js.map +1 -1
  55. package/lib/Core/Components/Toolbar/utils/utils.d.ts +28 -7
  56. package/lib/Core/Components/Toolbar/utils/utils.d.ts.map +1 -1
  57. package/lib/Core/Components/Toolbar/utils/utils.js +43 -11
  58. package/lib/Core/Components/Toolbar/utils/utils.js.map +1 -1
  59. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/utils.d.ts +1 -1
  60. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/utils.js +1 -1
  61. package/lib/Core/Components/Virtualise/VariableHeightVirtualizer/utils.js.map +1 -1
  62. package/lib/Core/Components/WarningBanner.d.ts +11 -0
  63. package/lib/Core/Components/WarningBanner.d.ts.map +1 -0
  64. package/lib/Core/Components/WarningBanner.js +23 -0
  65. package/lib/Core/Components/WarningBanner.js.map +1 -0
  66. package/lib/Core/Hooks/a11y/useAnnounce.d.ts +3 -4
  67. package/lib/Core/Hooks/a11y/useAnnounce.d.ts.map +1 -1
  68. package/lib/Core/Hooks/a11y/useAnnounce.js +3 -4
  69. package/lib/Core/Hooks/a11y/useAnnounce.js.map +1 -1
  70. package/lib/Core/Hooks/useDragDrop.d.ts +2 -2
  71. package/lib/Core/Hooks/useDragDrop.js +2 -2
  72. package/lib/Core/Hooks/useDragDrop.js.map +1 -1
  73. package/lib/Core/Hooks/useRepeat.d.ts.map +1 -1
  74. package/lib/Core/Hooks/useRepeat.js +13 -1
  75. package/lib/Core/Hooks/useRepeat.js.map +1 -1
  76. package/lib/Core/Test/JUnitMocks.d.ts +12 -0
  77. package/lib/Core/Test/JUnitMocks.d.ts.map +1 -1
  78. package/lib/Core/Test/JUnitMocks.js +26 -8
  79. package/lib/Core/Test/JUnitMocks.js.map +1 -1
  80. package/lib/Core/Test/TestUtils.d.ts +0 -1
  81. package/lib/Core/Test/TestUtils.d.ts.map +1 -1
  82. package/lib/Core/Test/TestUtils.js +3 -7
  83. package/lib/Core/Test/TestUtils.js.map +1 -1
  84. package/lib/Core/Views/Gallery/index.d.ts.map +1 -1
  85. package/lib/Core/Views/Gallery/index.js +2 -1
  86. package/lib/Core/Views/Gallery/index.js.map +1 -1
  87. package/lib/Core/Views/Table/index.d.ts.map +1 -1
  88. package/lib/Core/Views/Table/index.js +2 -1
  89. package/lib/Core/Views/Table/index.js.map +1 -1
  90. package/lib/Core/Views/Timeline/Timeline.d.ts.map +1 -1
  91. package/lib/Core/Views/Timeline/Timeline.js +11 -16
  92. package/lib/Core/Views/Timeline/Timeline.js.map +1 -1
  93. package/lib/Core/Views/Timeline/Timeline.styles.d.ts +17 -9
  94. package/lib/Core/Views/Timeline/Timeline.styles.d.ts.map +1 -1
  95. package/lib/Core/Views/Timeline/Timeline.styles.js +32 -25
  96. package/lib/Core/Views/Timeline/Timeline.styles.js.map +1 -1
  97. package/lib/Core/Views/Timeline/Timeline.types.d.ts +6 -0
  98. package/lib/Core/Views/Timeline/Timeline.types.d.ts.map +1 -1
  99. package/lib/Core/Views/Timeline/Timeline.types.js.map +1 -1
  100. package/lib/Core/Views/Timeline/TimelineGroup.d.ts +13 -0
  101. package/lib/Core/Views/Timeline/TimelineGroup.d.ts.map +1 -0
  102. package/lib/Core/Views/Timeline/TimelineGroup.js +21 -0
  103. package/lib/Core/Views/Timeline/TimelineGroup.js.map +1 -0
  104. package/lib/Core/Views/Timeline/TimelineItem.d.ts +1 -3
  105. package/lib/Core/Views/Timeline/TimelineItem.d.ts.map +1 -1
  106. package/lib/Core/Views/Timeline/TimelineItem.js +7 -6
  107. package/lib/Core/Views/Timeline/TimelineItem.js.map +1 -1
  108. package/lib/index.d.ts +1 -1
  109. package/lib/index.d.ts.map +1 -1
  110. package/lib/index.js +1 -1
  111. package/lib/index.js.map +1 -1
  112. package/package.json +7 -7
@@ -11,7 +11,8 @@ interface GroupRendererProps {
11
11
  columns: RsCoreTypes.Column[];
12
12
  dateFunctions: RsCoreTypes.Meta['dateFunctions'];
13
13
  template: RsCoreTypes.Meta['template'];
14
+ fieldDefs: RsCoreTypes.Meta['fieldDefs'];
14
15
  }
15
- declare const GroupRenderer: ({ appliedGroups, groupingOptions, setGroups, columns, dateFunctions, template }: GroupRendererProps) => import("react/jsx-runtime").JSX.Element;
16
+ declare const GroupRenderer: ({ appliedGroups, groupingOptions, setGroups, columns, dateFunctions, template, fieldDefs }: GroupRendererProps) => import("react/jsx-runtime").JSX.Element;
16
17
  export default GroupRenderer;
17
18
  //# sourceMappingURL=GroupRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GroupRenderer.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useGroup/GroupRenderer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kDAAkD,CAAC;AAK9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ/C,UAAU,kBAAkB;IAC1B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IACxD,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjD,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;CACxC;AAED,QAAA,MAAM,aAAa,GAAI,iFAOpB,kBAAkB,4CA+LpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"GroupRenderer.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useGroup/GroupRenderer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kDAAkD,CAAC;AAK9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ/C,UAAU,kBAAkB;IAC1B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IACxD,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjD,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;CAC1C;AAED,QAAA,MAAM,aAAa,GAAI,4FAQpB,kBAAkB,4CA+LpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -13,7 +13,7 @@ const DropSelector = '[data-drop]';
13
13
  const StyledDragHandle = styled(Button) `
14
14
  cursor: grab;
15
15
  `;
16
- const GroupRenderer = ({ appliedGroups, groupingOptions, setGroups, columns, dateFunctions, template }) => {
16
+ const GroupRenderer = ({ appliedGroups, groupingOptions, setGroups, columns, dateFunctions, template, fieldDefs }) => {
17
17
  const t = useI18n();
18
18
  const { focusRowRef, focusRowId, setFocusRowId } = useRowFocus();
19
19
  const dragDropRef = useRef(null);
@@ -101,9 +101,9 @@ const GroupRenderer = ({ appliedGroups, groupingOptions, setGroups, columns, dat
101
101
  direction: 'row',
102
102
  wrap: 'nowrap',
103
103
  itemGap: 0.5
104
- }, children: [_jsx(StyledDragHandle, { forwardedAs: 'div', role: 'button', icon: true, variant: 'simple', compact: true, ...dragProps, children: _jsx(Icon, { name: 'drag' }) }), _jsx(Flex, { item: { grow: 1 }, children: _jsx(FieldSelector, { label: t('field'), labelHidden: true, columns: columns?.filter(c => c.field.grouping &&
105
- (c.field.id.toString() === group.columnId.toString() ||
106
- !groupingOptions.exhaustedFields.has(c.field.id))), value: group.columnId, disabled: !!group.customFunction, onChange: (newID) => handleColumnChange(group, index, newID), fieldProp: 'id' }) }), _jsx(DateFunctionSelector, { template: template, group: group, groupingOptions: groupingOptions, dateFunctions: dateFunctions, columns: columns, onChange: (newFunc) => handleDateFuncChange(group, index, newFunc) })] }) }), _jsx(Button, { icon: true, variant: 'simple', onClick: () => removeGroup(index), label: t('delete_group'), children: _jsx(Icon, { name: 'trash' }) })] })))) }), template !== REPEATING_STRUCTURE_TEMPLATES.TIMELINE && (_jsx("div", { children: _jsx(Button, { variant: 'link', "aria-label": t('add_group'), onClick: addRow, children: _jsxs(Flex, { container: {
104
+ }, children: [_jsx(StyledDragHandle, { forwardedAs: 'div', role: 'button', icon: true, variant: 'simple', compact: true, ...dragProps, children: _jsx(Icon, { name: 'drag' }) }), _jsx(Flex, { item: { grow: 1 }, children: _jsx(FieldSelector, { label: t('field'), labelHidden: true, value: group.columnId, disabled: !!group.customFunction, onChange: (newID) => handleColumnChange(group, index, newID), fieldProp: 'id', fieldDefs: fieldDefs?.filter(fieldDef => fieldDef.grouping &&
105
+ (fieldDef.id.toString() === group.columnId.toString() ||
106
+ !groupingOptions.exhaustedFields.has(fieldDef.id))) }) }), _jsx(DateFunctionSelector, { template: template, group: group, groupingOptions: groupingOptions, dateFunctions: dateFunctions, fieldDefs: fieldDefs, onChange: (newFunc) => handleDateFuncChange(group, index, newFunc) })] }) }), _jsx(Button, { icon: true, variant: 'simple', onClick: () => removeGroup(index), label: t('delete_group'), children: _jsx(Icon, { name: 'trash' }) })] })))) }), template !== REPEATING_STRUCTURE_TEMPLATES.TIMELINE && (_jsx("div", { children: _jsx(Button, { variant: 'link', "aria-label": t('add_group'), onClick: addRow, children: _jsxs(Flex, { container: {
107
107
  inline: true,
108
108
  alignItems: 'start',
109
109
  gap: 1
@@ -1 +1 @@
1
- {"version":3,"file":"GroupRenderer.js","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useGroup/GroupRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["import styled from 'styled-components';\nimport { useCallback, useEffect, useRef } from 'react';\n\nimport { Button, createUID, Flex, Icon, useI18n } from '@pega/cosmos-react-core';\nimport { FieldType, REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\nimport type { RsCoreTypes } from 'pega-repeating-structures-core';\nimport type { Group } from 'pega-repeating-structures-core/types/State.types';\n\nimport useRowFocus from '../useRowFocus';\nimport useDragDrop from '../../../../Hooks/useDragDrop';\nimport FieldSelector from '../../FieldSelector';\nimport type { GroupingOptions } from '../../Grouping.types';\n\nimport { getColumnById } from './utils';\nimport DateFunctionSelector from './DateFunctionSelector';\nimport type { AppliedGroup } from './useGroup';\n\nconst DropSelector = '[data-drop]';\n\nconst StyledDragHandle = styled(Button)`\n cursor: grab;\n`;\n\ninterface GroupRendererProps {\n appliedGroups: AppliedGroup[];\n groupingOptions: GroupingOptions;\n setGroups: (groups: (Group | { id: string })[]) => void;\n columns: RsCoreTypes.Column[];\n dateFunctions: RsCoreTypes.Meta['dateFunctions'];\n template: RsCoreTypes.Meta['template'];\n}\n\nconst GroupRenderer = ({\n appliedGroups,\n groupingOptions,\n setGroups,\n columns,\n dateFunctions,\n template\n}: GroupRendererProps) => {\n const t = useI18n();\n const { focusRowRef, focusRowId, setFocusRowId } = useRowFocus();\n\n const dragDropRef = useRef<HTMLDivElement>(null);\n const getAnimationSelector = useCallback((target: Element) => target.closest(DropSelector), []);\n const onDrop = useCallback(\n (dest: Element, src: Element) => {\n const dropIndex = Number(dest.getAttribute('data-index'));\n const dragIndex = Number(src.getAttribute('data-index'));\n if (dragIndex !== dropIndex) {\n const existingGroups = appliedGroups.map(v => ({ ...v }));\n const dragGroup = existingGroups.splice(dragIndex, 1)[0];\n existingGroups.splice(dropIndex, 0, dragGroup);\n setGroups(existingGroups);\n }\n },\n [appliedGroups, setGroups]\n );\n const { dragProps, dropProps } = useDragDrop({\n context: dragDropRef,\n getAnimationSelector,\n getGhostImageSelector: getAnimationSelector,\n getDraggedObject: getAnimationSelector,\n onDrop\n });\n\n const removeGroup = useCallback(\n (index: number) => {\n const existingGroups = appliedGroups.map(v => ({ ...v }));\n existingGroups.splice(index, 1);\n setGroups(existingGroups);\n\n if (existingGroups.length > 0)\n setFocusRowId(\n index === appliedGroups.length - 1\n ? existingGroups[index - 1].id\n : existingGroups[index].id\n );\n },\n [appliedGroups, setGroups, setFocusRowId]\n );\n\n const handleColumnChange = useCallback(\n (group: Group, index: number, newID: string) => {\n if (newID === group.columnId) return; // Ignore re-selecting the same\n const groupedColumn = getColumnById(newID, columns);\n const updatedGroup: Group = {\n ...group,\n columnId: newID,\n dateFunction: undefined, // Reset for non-date/time fields,\n order: groupedColumn?.sortOrder || 'asc' // Set sort order from column else default to 'asc'\n };\n\n // For date/datetime field, pick a date function by default (if enabled)\n const fieldType = groupedColumn?.field.type;\n if (dateFunctions && (fieldType === FieldType.DATE || fieldType === FieldType.DATE_TIME)) {\n updatedGroup.dateFunction = groupingOptions.dateFuncs[newID]\n ? groupingOptions.dateFuncs[newID].available[0] // If the field is already picked before\n : groupingOptions.dateGroupVariants[fieldType][0]; // When picking the field for the first time\n }\n\n setGroups([\n ...appliedGroups.slice(0, index),\n updatedGroup,\n ...appliedGroups.slice(index + 1)\n ]);\n },\n [appliedGroups, groupingOptions, setGroups, dateFunctions, columns]\n );\n\n const handleDateFuncChange = useCallback(\n (group: Group, index: number, newFunc: Group['dateFunction']) => {\n if (newFunc === group.dateFunction) return; // Ignore re-selecting the same\n const updatedGroup = { ...group, dateFunction: newFunc };\n setGroups([\n ...appliedGroups.slice(0, index),\n updatedGroup,\n ...appliedGroups.slice(index + 1)\n ]);\n },\n [setGroups, appliedGroups]\n );\n\n const addRow = useCallback(() => {\n const newRow = { id: createUID(), columnId: '', order: 'asc' };\n const existingGroups = [...appliedGroups, newRow];\n setGroups(existingGroups);\n setFocusRowId(newRow.id);\n }, [appliedGroups, setGroups, setFocusRowId]);\n\n useEffect(() => {\n if (!appliedGroups.length) {\n addRow();\n }\n }, [appliedGroups, addRow]);\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }} key='grouping'>\n <Flex container={{ direction: 'column', gap: 1 }} className='group-content' ref={dragDropRef}>\n {appliedGroups.map((group, index) => (\n <div {...dropProps} data-index={index} key={group.id}>\n <Flex\n container={{\n justify: 'between',\n alignItems: 'center',\n direction: 'row',\n wrap: 'nowrap',\n itemGap: 0.5\n }}\n ref={appliedGroups[index].id === focusRowId ? focusRowRef : null}\n >\n <Flex item={{ grow: 1 }}>\n <Flex\n container={{\n justify: 'start',\n alignItems: 'center',\n direction: 'row',\n wrap: 'nowrap',\n itemGap: 0.5\n }}\n >\n <StyledDragHandle\n forwardedAs='div'\n role='button'\n icon\n variant='simple'\n compact\n {...dragProps}\n >\n <Icon name='drag' />\n </StyledDragHandle>\n <Flex item={{ grow: 1 }}>\n <FieldSelector\n label={t('field')}\n labelHidden\n columns={columns?.filter(\n c =>\n c.field.grouping &&\n (c.field.id.toString() === group.columnId.toString() ||\n !groupingOptions.exhaustedFields.has(c.field.id))\n )}\n value={group.columnId}\n disabled={!!group.customFunction}\n onChange={(newID: string) => handleColumnChange(group, index, newID)}\n fieldProp='id'\n />\n </Flex>\n <DateFunctionSelector\n template={template}\n group={group}\n groupingOptions={groupingOptions}\n dateFunctions={dateFunctions}\n columns={columns}\n onChange={(newFunc: Group['dateFunction']) =>\n handleDateFuncChange(group, index, newFunc)\n }\n />\n </Flex>\n </Flex>\n <Button\n icon\n variant='simple'\n onClick={() => removeGroup(index)}\n label={t('delete_group')}\n >\n <Icon name='trash' />\n </Button>\n </Flex>\n </div>\n ))}\n </Flex>\n {template !== REPEATING_STRUCTURE_TEMPLATES.TIMELINE && (\n <div>\n <Button variant='link' aria-label={t('add_group')} onClick={addRow}>\n <Flex\n container={{\n inline: true,\n alignItems: 'start',\n gap: 1\n }}\n as='span'\n >\n <Icon name='plus' />\n <span>{t('add')}</span>\n </Flex>\n </Button>\n </div>\n )}\n </Flex>\n );\n};\n\nexport default GroupRenderer;\n"]}
1
+ {"version":3,"file":"GroupRenderer.js","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useGroup/GroupRenderer.tsx"],"names":[],"mappings":";;AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAI1F,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAG1D,MAAM,YAAY,GAAG,aAAa,CAAC;AAEnC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;;CAEtC,CAAC;AAYF,MAAM,aAAa,GAAG,CAAC,EACrB,aAAa,EACb,eAAe,EACf,SAAS,EACT,OAAO,EACP,aAAa,EACb,QAAQ,EACR,SAAS,EACU,EAAE,EAAE;IACvB,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,WAAW,EAAE,CAAC;IAEjE,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACjD,MAAM,oBAAoB,GAAG,WAAW,CAAC,CAAC,MAAe,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;IAChG,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,IAAa,EAAE,GAAY,EAAE,EAAE;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;QACzD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;YAC/C,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,EACD,CAAC,aAAa,EAAE,SAAS,CAAC,CAC3B,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;QAC3C,OAAO,EAAE,WAAW;QACpB,oBAAoB;QACpB,qBAAqB,EAAE,oBAAoB;QAC3C,gBAAgB,EAAE,oBAAoB;QACtC,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,KAAa,EAAE,EAAE;QAChB,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChC,SAAS,CAAC,cAAc,CAAC,CAAC;QAE1B,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;YAC3B,aAAa,CACX,KAAK,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC;gBAChC,CAAC,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC9B,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAC7B,CAAC;IACN,CAAC,EACD,CAAC,aAAa,EAAE,SAAS,EAAE,aAAa,CAAC,CAC1C,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,KAAY,EAAE,KAAa,EAAE,KAAa,EAAE,EAAE;QAC7C,IAAI,KAAK,KAAK,KAAK,CAAC,QAAQ;YAAE,OAAO,CAAC,+BAA+B;QACrE,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,YAAY,GAAU;YAC1B,GAAG,KAAK;YACR,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,SAAS,EAAE,kCAAkC;YAC3D,KAAK,EAAE,aAAa,EAAE,SAAS,IAAI,KAAK,CAAC,mDAAmD;SAC7F,CAAC;QAEF,wEAAwE;QACxE,MAAM,SAAS,GAAG,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC;QAC5C,IAAI,aAAa,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,IAAI,SAAS,KAAK,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YACzF,YAAY,CAAC,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC1D,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,wCAAwC;gBACxF,CAAC,CAAC,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4CAA4C;QACnG,CAAC;QAED,SAAS,CAAC;YACR,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;YAChC,YAAY;YACZ,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;SAClC,CAAC,CAAC;IACL,CAAC,EACD,CAAC,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CACpE,CAAC;IAEF,MAAM,oBAAoB,GAAG,WAAW,CACtC,CAAC,KAAY,EAAE,KAAa,EAAE,OAA8B,EAAE,EAAE;QAC9D,IAAI,OAAO,KAAK,KAAK,CAAC,YAAY;YAAE,OAAO,CAAC,+BAA+B;QAC3E,MAAM,YAAY,GAAG,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;QACzD,SAAS,CAAC;YACR,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;YAChC,YAAY;YACZ,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;SAClC,CAAC,CAAC;IACL,CAAC,EACD,CAAC,SAAS,EAAE,aAAa,CAAC,CAC3B,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC/D,MAAM,cAAc,GAAG,CAAC,GAAG,aAAa,EAAE,MAAM,CAAC,CAAC;QAClD,SAAS,CAAC,cAAc,CAAC,CAAC;QAC1B,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5B,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aAC9C,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,SAAS,EAAC,eAAe,EAAC,GAAG,EAAE,WAAW,YACzF,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACnC,2BAAS,SAAS,gBAAc,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE;oBAClD,MAAC,IAAI,IACH,SAAS,EAAE;4BACT,OAAO,EAAE,SAAS;4BAClB,UAAU,EAAE,QAAQ;4BACpB,SAAS,EAAE,KAAK;4BAChB,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,GAAG;yBACb,EACD,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,aAEhE,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YACrB,MAAC,IAAI,IACH,SAAS,EAAE;wCACT,OAAO,EAAE,OAAO;wCAChB,UAAU,EAAE,QAAQ;wCACpB,SAAS,EAAE,KAAK;wCAChB,IAAI,EAAE,QAAQ;wCACd,OAAO,EAAE,GAAG;qCACb,aAED,KAAC,gBAAgB,IACf,WAAW,EAAC,KAAK,EACjB,IAAI,EAAC,QAAQ,EACb,IAAI,QACJ,OAAO,EAAC,QAAQ,EAChB,OAAO,WACH,SAAS,YAEb,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,GACH,EACnB,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YACrB,KAAC,aAAa,IACZ,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,EACjB,WAAW,QACX,KAAK,EAAE,KAAK,CAAC,QAAQ,EACrB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,EAChC,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EACpE,SAAS,EAAC,IAAI,EACd,SAAS,EAAE,SAAS,EAAE,MAAM,CAC1B,QAAQ,CAAC,EAAE,CACT,QAAQ,CAAC,QAAQ;oDACjB,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE;wDACnD,CAAC,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CACvD,GACD,GACG,EACP,KAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,OAA8B,EAAE,EAAE,CAC3C,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,GAE7C,IACG,GACF,EACP,KAAC,MAAM,IACL,IAAI,QACJ,OAAO,EAAC,QAAQ,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EACjC,KAAK,EAAE,CAAC,CAAC,cAAc,CAAC,YAExB,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG,GACd,IACJ,CACH,CACP,CAAC,GACG,EACN,QAAQ,KAAK,6BAA6B,CAAC,QAAQ,IAAI,CACtD,wBACE,KAAC,MAAM,IAAC,OAAO,EAAC,MAAM,gBAAa,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,YAChE,MAAC,IAAI,IACH,SAAS,EAAE;4BACT,MAAM,EAAE,IAAI;4BACZ,UAAU,EAAE,OAAO;4BACnB,GAAG,EAAE,CAAC;yBACP,EACD,EAAE,EAAC,MAAM,aAET,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,EACpB,yBAAO,CAAC,CAAC,KAAK,CAAC,GAAQ,IAClB,GACA,GACL,CACP,KA1FmD,UAAU,CA2FzD,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import styled from 'styled-components';\nimport { useCallback, useEffect, useRef } from 'react';\n\nimport { Button, createUID, Flex, Icon, useI18n } from '@pega/cosmos-react-core';\nimport { FieldType, REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\nimport type { RsCoreTypes } from 'pega-repeating-structures-core';\nimport type { Group } from 'pega-repeating-structures-core/types/State.types';\n\nimport useRowFocus from '../useRowFocus';\nimport useDragDrop from '../../../../Hooks/useDragDrop';\nimport FieldSelector from '../../FieldSelector';\nimport type { GroupingOptions } from '../../Grouping.types';\n\nimport { getColumnById } from './utils';\nimport DateFunctionSelector from './DateFunctionSelector';\nimport type { AppliedGroup } from './useGroup';\n\nconst DropSelector = '[data-drop]';\n\nconst StyledDragHandle = styled(Button)`\n cursor: grab;\n`;\n\ninterface GroupRendererProps {\n appliedGroups: AppliedGroup[];\n groupingOptions: GroupingOptions;\n setGroups: (groups: (Group | { id: string })[]) => void;\n columns: RsCoreTypes.Column[];\n dateFunctions: RsCoreTypes.Meta['dateFunctions'];\n template: RsCoreTypes.Meta['template'];\n fieldDefs: RsCoreTypes.Meta['fieldDefs'];\n}\n\nconst GroupRenderer = ({\n appliedGroups,\n groupingOptions,\n setGroups,\n columns,\n dateFunctions,\n template,\n fieldDefs\n}: GroupRendererProps) => {\n const t = useI18n();\n const { focusRowRef, focusRowId, setFocusRowId } = useRowFocus();\n\n const dragDropRef = useRef<HTMLDivElement>(null);\n const getAnimationSelector = useCallback((target: Element) => target.closest(DropSelector), []);\n const onDrop = useCallback(\n (dest: Element, src: Element) => {\n const dropIndex = Number(dest.getAttribute('data-index'));\n const dragIndex = Number(src.getAttribute('data-index'));\n if (dragIndex !== dropIndex) {\n const existingGroups = appliedGroups.map(v => ({ ...v }));\n const dragGroup = existingGroups.splice(dragIndex, 1)[0];\n existingGroups.splice(dropIndex, 0, dragGroup);\n setGroups(existingGroups);\n }\n },\n [appliedGroups, setGroups]\n );\n const { dragProps, dropProps } = useDragDrop({\n context: dragDropRef,\n getAnimationSelector,\n getGhostImageSelector: getAnimationSelector,\n getDraggedObject: getAnimationSelector,\n onDrop\n });\n\n const removeGroup = useCallback(\n (index: number) => {\n const existingGroups = appliedGroups.map(v => ({ ...v }));\n existingGroups.splice(index, 1);\n setGroups(existingGroups);\n\n if (existingGroups.length > 0)\n setFocusRowId(\n index === appliedGroups.length - 1\n ? existingGroups[index - 1].id\n : existingGroups[index].id\n );\n },\n [appliedGroups, setGroups, setFocusRowId]\n );\n\n const handleColumnChange = useCallback(\n (group: Group, index: number, newID: string) => {\n if (newID === group.columnId) return; // Ignore re-selecting the same\n const groupedColumn = getColumnById(newID, columns);\n const updatedGroup: Group = {\n ...group,\n columnId: newID,\n dateFunction: undefined, // Reset for non-date/time fields,\n order: groupedColumn?.sortOrder || 'asc' // Set sort order from column else default to 'asc'\n };\n\n // For date/datetime field, pick a date function by default (if enabled)\n const fieldType = groupedColumn?.field.type;\n if (dateFunctions && (fieldType === FieldType.DATE || fieldType === FieldType.DATE_TIME)) {\n updatedGroup.dateFunction = groupingOptions.dateFuncs[newID]\n ? groupingOptions.dateFuncs[newID].available[0] // If the field is already picked before\n : groupingOptions.dateGroupVariants[fieldType][0]; // When picking the field for the first time\n }\n\n setGroups([\n ...appliedGroups.slice(0, index),\n updatedGroup,\n ...appliedGroups.slice(index + 1)\n ]);\n },\n [appliedGroups, groupingOptions, setGroups, dateFunctions, columns]\n );\n\n const handleDateFuncChange = useCallback(\n (group: Group, index: number, newFunc: Group['dateFunction']) => {\n if (newFunc === group.dateFunction) return; // Ignore re-selecting the same\n const updatedGroup = { ...group, dateFunction: newFunc };\n setGroups([\n ...appliedGroups.slice(0, index),\n updatedGroup,\n ...appliedGroups.slice(index + 1)\n ]);\n },\n [setGroups, appliedGroups]\n );\n\n const addRow = useCallback(() => {\n const newRow = { id: createUID(), columnId: '', order: 'asc' };\n const existingGroups = [...appliedGroups, newRow];\n setGroups(existingGroups);\n setFocusRowId(newRow.id);\n }, [appliedGroups, setGroups, setFocusRowId]);\n\n useEffect(() => {\n if (!appliedGroups.length) {\n addRow();\n }\n }, [appliedGroups, addRow]);\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }} key='grouping'>\n <Flex container={{ direction: 'column', gap: 1 }} className='group-content' ref={dragDropRef}>\n {appliedGroups.map((group, index) => (\n <div {...dropProps} data-index={index} key={group.id}>\n <Flex\n container={{\n justify: 'between',\n alignItems: 'center',\n direction: 'row',\n wrap: 'nowrap',\n itemGap: 0.5\n }}\n ref={appliedGroups[index].id === focusRowId ? focusRowRef : null}\n >\n <Flex item={{ grow: 1 }}>\n <Flex\n container={{\n justify: 'start',\n alignItems: 'center',\n direction: 'row',\n wrap: 'nowrap',\n itemGap: 0.5\n }}\n >\n <StyledDragHandle\n forwardedAs='div'\n role='button'\n icon\n variant='simple'\n compact\n {...dragProps}\n >\n <Icon name='drag' />\n </StyledDragHandle>\n <Flex item={{ grow: 1 }}>\n <FieldSelector\n label={t('field')}\n labelHidden\n value={group.columnId}\n disabled={!!group.customFunction}\n onChange={(newID: string) => handleColumnChange(group, index, newID)}\n fieldProp='id'\n fieldDefs={fieldDefs?.filter(\n fieldDef =>\n fieldDef.grouping &&\n (fieldDef.id.toString() === group.columnId.toString() ||\n !groupingOptions.exhaustedFields.has(fieldDef.id))\n )}\n />\n </Flex>\n <DateFunctionSelector\n template={template}\n group={group}\n groupingOptions={groupingOptions}\n dateFunctions={dateFunctions}\n fieldDefs={fieldDefs}\n onChange={(newFunc: Group['dateFunction']) =>\n handleDateFuncChange(group, index, newFunc)\n }\n />\n </Flex>\n </Flex>\n <Button\n icon\n variant='simple'\n onClick={() => removeGroup(index)}\n label={t('delete_group')}\n >\n <Icon name='trash' />\n </Button>\n </Flex>\n </div>\n ))}\n </Flex>\n {template !== REPEATING_STRUCTURE_TEMPLATES.TIMELINE && (\n <div>\n <Button variant='link' aria-label={t('add_group')} onClick={addRow}>\n <Flex\n container={{\n inline: true,\n alignItems: 'start',\n gap: 1\n }}\n as='span'\n >\n <Icon name='plus' />\n <span>{t('add')}</span>\n </Flex>\n </Button>\n </div>\n )}\n </Flex>\n );\n};\n\nexport default GroupRenderer;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useGroup.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useGroup/useGroup.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,gBAAgB,EAAe,MAAM,yBAAyB,CAAC;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kDAAkD,CAAC;AAQ9E,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,EAAE,EAAE,MAAM,CAAC;CACZ;AAKD,QAAA,MAAM,QAAQ,GAAI,UAAU;IAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAA;CAAE,KAAG,gBAAgB,CAAC,OAAO,CA2FhF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"useGroup.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useGroup/useGroup.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,gBAAgB,EAAe,MAAM,yBAAyB,CAAC;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kDAAkD,CAAC;AAQ9E,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,EAAE,EAAE,MAAM,CAAC;CACZ;AAKD,QAAA,MAAM,QAAQ,GAAI,UAAU;IAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAA;CAAE,KAAG,gBAAgB,CAAC,OAAO,CAmGhF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -10,10 +10,10 @@ const useGroup = ({ view }) => {
10
10
  const { state: { groups = [] } = {}, meta: { grouping, dateFunctions, template }, type: { applyGrouping }, columns = [] } = view;
11
11
  const displayGrouping = view.shouldDisplayFeature(TOOLBAR_FEATURES.GROUPING);
12
12
  const [appliedGroups, setAppliedGroups] = useState([]);
13
- const [groupingOptions, setGroupingOptions] = useState(() => getGroupingOptions(groups, columns, dateFunctions));
13
+ const [groupingOptions, setGroupingOptions] = useState(() => getGroupingOptions(groups, view.getFieldDefs(), dateFunctions));
14
14
  const setGroups = useCallback((newGroups) => {
15
15
  setAppliedGroups(newGroups);
16
- setGroupingOptions(getGroupingOptions(newGroups, columns, dateFunctions));
16
+ setGroupingOptions(getGroupingOptions(newGroups, view.getFieldDefs(), dateFunctions));
17
17
  }, [columns, dateFunctions]);
18
18
  // BUG-758989 This useEffect should run only once when the columns are populated on view
19
19
  // as getGroupingOptions function has dependency on column to form dateFunc object
@@ -22,7 +22,7 @@ const useGroup = ({ view }) => {
22
22
  if (!columns || !prevColumns)
23
23
  return;
24
24
  if (columns.length !== prevColumns.length) {
25
- setGroupingOptions(getGroupingOptions(appliedGroups, columns, dateFunctions));
25
+ setGroupingOptions(getGroupingOptions(appliedGroups, view.getFieldDefs(), dateFunctions));
26
26
  }
27
27
  }, [columns]);
28
28
  const onSubmit = useCallback(() => {
@@ -69,7 +69,15 @@ const useGroup = ({ view }) => {
69
69
  return {
70
70
  count: groups.length > 0 ? groups.length : undefined,
71
71
  renderer: GroupRenderer,
72
- rendererProps: { appliedGroups, columns, dateFunctions, groupingOptions, setGroups, template },
72
+ rendererProps: {
73
+ appliedGroups,
74
+ columns,
75
+ dateFunctions,
76
+ groupingOptions,
77
+ setGroups,
78
+ template,
79
+ fieldDefs: view.getFieldDefs()
80
+ },
73
81
  onSubmit,
74
82
  onCancel
75
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useGroup.js","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useGroup/useGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\nimport { createUID, type ListToolbarProps, usePrevious } from '@pega/cosmos-react-core';\nimport type { RsCoreTypes } from 'pega-repeating-structures-core';\nimport type { Group } from 'pega-repeating-structures-core/types/State.types';\n\nimport { TOOLBAR_FEATURES } from '../../../../constants';\nimport { deepEqual } from '../../../../Utils';\n\nimport { getGroupingOptions } from './utils';\nimport GroupRenderer from './GroupRenderer';\n\nexport interface AppliedGroup extends Group {\n id: string;\n}\n\nconst convertGroupsToAppliedGroups = (groups: Group[]) =>\n groups.map(group => ({ ...group, id: createUID() }));\n\nconst useGroup = ({ view }: { view: RsCoreTypes.View }): ListToolbarProps['group'] => {\n const {\n state: { groups = [] } = {},\n meta: { grouping, dateFunctions, template },\n type: { applyGrouping },\n columns = []\n } = view;\n\n const displayGrouping = view.shouldDisplayFeature(TOOLBAR_FEATURES.GROUPING);\n const [appliedGroups, setAppliedGroups] = useState<AppliedGroup[]>([]);\n const [groupingOptions, setGroupingOptions] = useState(() =>\n getGroupingOptions(groups, columns, dateFunctions)\n );\n\n const setGroups = useCallback(\n (newGroups: AppliedGroup[]) => {\n setAppliedGroups(newGroups);\n setGroupingOptions(getGroupingOptions(newGroups, columns, dateFunctions));\n },\n [columns, dateFunctions]\n );\n\n // BUG-758989 This useEffect should run only once when the columns are populated on view\n // as getGroupingOptions function has dependency on column to form dateFunc object\n const prevColumns = usePrevious(columns);\n useEffect(() => {\n if (!columns || !prevColumns) return;\n if (columns.length !== prevColumns.length) {\n setGroupingOptions(getGroupingOptions(appliedGroups, columns, dateFunctions));\n }\n }, [columns]);\n\n const onSubmit = useCallback(() => {\n const groupsToSet = appliedGroups\n .filter(e => e.columnId)\n .map((group, index) => {\n const { id, ...rest } = group;\n return { ...rest, level: index };\n });\n applyGrouping(groupsToSet);\n }, [applyGrouping, setGroups, appliedGroups]);\n\n const onCancel = useCallback(() => {\n setGroups(convertGroupsToAppliedGroups(groups));\n }, [groups, setGroups]);\n\n /*\n * The usePrevious hook is used in conjunction with the effect below...\n * ...to determine if the groups prop has in essence changed in value as it is always referentially different [] === [] // false.\n * This workaround is necessary to render proper state within the group popover content.\n * The conditional logic avoids many excessive renders.\n * The overall hook/grouping implementation may be able to be modified to avoid this.\n */\n const prevGroups = usePrevious(groups);\n useEffect(() => {\n if (!view.columns) return;\n if (!groups || !prevGroups || !deepEqual(groups, prevGroups)) {\n setGroups(convertGroupsToAppliedGroups(groups));\n return;\n }\n\n // This is obviously not extensive comparison but may be effective enough for the group object type. Enhance as needed.\n const groupsChanged =\n groups.length !== prevGroups.length ||\n groups.some(\n (group, i) =>\n group.columnId !== prevGroups[i].columnId ||\n group.order !== prevGroups[i].order ||\n !deepEqual(group.dateFunction, prevGroups[i].dateFunction) ||\n !deepEqual(group.customFunction, prevGroups[i].customFunction)\n );\n\n if (groupsChanged) {\n setGroups(convertGroupsToAppliedGroups(groups));\n }\n }, [groups, prevGroups, setGroups, view.columns]);\n\n if (\n !grouping ||\n (view.hierarchicalGroupEnabled && template !== REPEATING_STRUCTURE_TEMPLATES.TIMELINE) ||\n !displayGrouping\n )\n return;\n\n return {\n count: groups.length > 0 ? groups.length : undefined,\n renderer: GroupRenderer,\n rendererProps: { appliedGroups, columns, dateFunctions, groupingOptions, setGroups, template },\n onSubmit,\n onCancel\n };\n};\n\nexport default useGroup;\n"]}
1
+ {"version":3,"file":"useGroup.js","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useGroup/useGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\nimport { createUID, type ListToolbarProps, usePrevious } from '@pega/cosmos-react-core';\nimport type { RsCoreTypes } from 'pega-repeating-structures-core';\nimport type { Group } from 'pega-repeating-structures-core/types/State.types';\n\nimport { TOOLBAR_FEATURES } from '../../../../constants';\nimport { deepEqual } from '../../../../Utils';\n\nimport { getGroupingOptions } from './utils';\nimport GroupRenderer from './GroupRenderer';\n\nexport interface AppliedGroup extends Group {\n id: string;\n}\n\nconst convertGroupsToAppliedGroups = (groups: Group[]) =>\n groups.map(group => ({ ...group, id: createUID() }));\n\nconst useGroup = ({ view }: { view: RsCoreTypes.View }): ListToolbarProps['group'] => {\n const {\n state: { groups = [] } = {},\n meta: { grouping, dateFunctions, template },\n type: { applyGrouping },\n columns = []\n } = view;\n\n const displayGrouping = view.shouldDisplayFeature(TOOLBAR_FEATURES.GROUPING);\n const [appliedGroups, setAppliedGroups] = useState<AppliedGroup[]>([]);\n const [groupingOptions, setGroupingOptions] = useState(() =>\n getGroupingOptions(groups, view.getFieldDefs(), dateFunctions)\n );\n\n const setGroups = useCallback(\n (newGroups: AppliedGroup[]) => {\n setAppliedGroups(newGroups);\n setGroupingOptions(getGroupingOptions(newGroups, view.getFieldDefs(), dateFunctions));\n },\n [columns, dateFunctions]\n );\n\n // BUG-758989 This useEffect should run only once when the columns are populated on view\n // as getGroupingOptions function has dependency on column to form dateFunc object\n const prevColumns = usePrevious(columns);\n useEffect(() => {\n if (!columns || !prevColumns) return;\n if (columns.length !== prevColumns.length) {\n setGroupingOptions(getGroupingOptions(appliedGroups, view.getFieldDefs(), dateFunctions));\n }\n }, [columns]);\n\n const onSubmit = useCallback(() => {\n const groupsToSet = appliedGroups\n .filter(e => e.columnId)\n .map((group, index) => {\n const { id, ...rest } = group;\n return { ...rest, level: index };\n });\n applyGrouping(groupsToSet);\n }, [applyGrouping, setGroups, appliedGroups]);\n\n const onCancel = useCallback(() => {\n setGroups(convertGroupsToAppliedGroups(groups));\n }, [groups, setGroups]);\n\n /*\n * The usePrevious hook is used in conjunction with the effect below...\n * ...to determine if the groups prop has in essence changed in value as it is always referentially different [] === [] // false.\n * This workaround is necessary to render proper state within the group popover content.\n * The conditional logic avoids many excessive renders.\n * The overall hook/grouping implementation may be able to be modified to avoid this.\n */\n const prevGroups = usePrevious(groups);\n useEffect(() => {\n if (!view.columns) return;\n if (!groups || !prevGroups || !deepEqual(groups, prevGroups)) {\n setGroups(convertGroupsToAppliedGroups(groups));\n return;\n }\n\n // This is obviously not extensive comparison but may be effective enough for the group object type. Enhance as needed.\n const groupsChanged =\n groups.length !== prevGroups.length ||\n groups.some(\n (group, i) =>\n group.columnId !== prevGroups[i].columnId ||\n group.order !== prevGroups[i].order ||\n !deepEqual(group.dateFunction, prevGroups[i].dateFunction) ||\n !deepEqual(group.customFunction, prevGroups[i].customFunction)\n );\n\n if (groupsChanged) {\n setGroups(convertGroupsToAppliedGroups(groups));\n }\n }, [groups, prevGroups, setGroups, view.columns]);\n\n if (\n !grouping ||\n (view.hierarchicalGroupEnabled && template !== REPEATING_STRUCTURE_TEMPLATES.TIMELINE) ||\n !displayGrouping\n )\n return;\n\n return {\n count: groups.length > 0 ? groups.length : undefined,\n renderer: GroupRenderer,\n rendererProps: {\n appliedGroups,\n columns,\n dateFunctions,\n groupingOptions,\n setGroups,\n template,\n fieldDefs: view.getFieldDefs()\n },\n onSubmit,\n onCancel\n };\n};\n\nexport default useGroup;\n"]}
@@ -10,7 +10,7 @@ export declare function getColumnById(id: string, columns: RsCoreTypes.Column[])
10
10
  * Finds the matching column for the given columnId and returns its field type.
11
11
  * Returns `undefined` if no match found
12
12
  */
13
- export declare function getFieldType(columnId: string, columns: RsCoreTypes.Column[]): "number" | "boolean" | "object" | "text" | "time" | "action" | "date" | "custom" | "currency" | "datetime" | "URL" | "Date" | "Date only" | undefined;
13
+ export declare function getFieldType(columnId: string, fieldDefs: RsCoreTypes.Meta['fieldDefs']): "number" | "boolean" | "object" | "text" | "time" | "action" | "date" | "custom" | "currency" | "datetime" | "URL" | "Date" | "Date only" | undefined;
14
14
  /** Returns metadata to identify which fields and which date functions are/aren't available for selection */
15
- export declare function getGroupingOptions(groups: Group[], columns: RsCoreTypes.Column[], dateFunctions: RsCoreTypes.Meta['dateFunctions']): GroupingOptions;
15
+ export declare function getGroupingOptions(groups: Group[], fieldDefs: RsCoreTypes.Meta['fieldDefs'], dateFunctions: RsCoreTypes.Meta['dateFunctions']): GroupingOptions;
16
16
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useGroup/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kDAAkD,CAAC;AAE9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,wGAEtE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,yJAE3E;AAED,4GAA4G;AAC5G,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,EAC7B,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,GAC/C,eAAe,CA2DjB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useGroup/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kDAAkD,CAAC;AAE9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,wGAEtE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,yJAEtF;AAED,4GAA4G;AAC5G,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,KAAK,EAAE,EACf,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EACxC,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,GAC/C,eAAe,CA2DjB"}
@@ -10,11 +10,11 @@ export function getColumnById(id, columns) {
10
10
  * Finds the matching column for the given columnId and returns its field type.
11
11
  * Returns `undefined` if no match found
12
12
  */
13
- export function getFieldType(columnId, columns) {
14
- return getColumnById(columnId, columns)?.field.type;
13
+ export function getFieldType(columnId, fieldDefs) {
14
+ return fieldDefs.find(f => f.id === columnId)?.type;
15
15
  }
16
16
  /** Returns metadata to identify which fields and which date functions are/aren't available for selection */
17
- export function getGroupingOptions(groups, columns, dateFunctions) {
17
+ export function getGroupingOptions(groups, fieldDefs, dateFunctions) {
18
18
  const groupingOptions = {
19
19
  // Set of fields that are already exhausted in grouping
20
20
  // NOTE: For date/datetime fields, when dateFunctions are enabled, it doesn't mark a field as exhausted until all the date-function variants are used against that field
@@ -31,7 +31,7 @@ export function getGroupingOptions(groups, columns, dateFunctions) {
31
31
  groups.forEach(({ columnId, dateFunction }) => {
32
32
  if (columnId === '')
33
33
  return; // Ignore empty groups
34
- const fieldType = getFieldType(columnId, columns);
34
+ const fieldType = getFieldType(columnId, fieldDefs);
35
35
  // If date functions are enabled, and it's a date/datetime field, track the functions used
36
36
  if (dateFunctions && (fieldType === FieldType.DATE || fieldType === FieldType.DATE_TIME)) {
37
37
  groupingOptions.dateFuncs[columnId] = groupingOptions.dateFuncs[columnId] || {
@@ -55,7 +55,7 @@ export function getGroupingOptions(groups, columns, dateFunctions) {
55
55
  };
56
56
  // For each date/datetime field, set up which variants are yet to be used. Also determine if all the variants are exhausted
57
57
  Object.entries(groupingOptions.dateFuncs).forEach(([columnId, obj]) => {
58
- const fieldType = getFieldType(columnId, columns);
58
+ const fieldType = getFieldType(columnId, fieldDefs);
59
59
  if (fieldType === FieldType.DATE || fieldType === FieldType.DATE_TIME) {
60
60
  obj.available = groupingOptions.dateGroupVariants[fieldType].filter(v => !obj.exhausted.includes(v));
61
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useGroup/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { FieldType, type RsCoreTypes } from 'pega-repeating-structures-core';\nimport type { Group } from 'pega-repeating-structures-core/types/State.types';\n\nimport type { GroupingOptions } from '../../Grouping.types';\n\n/**\n * Finds the matching column for the given id.\n * Returns `undefined` if no match found\n */\nexport function getColumnById(id: string, columns: RsCoreTypes.Column[]) {\n return columns.find(c => c.field.id === id);\n}\n\n/**\n * Finds the matching column for the given columnId and returns its field type.\n * Returns `undefined` if no match found\n */\nexport function getFieldType(columnId: string, columns: RsCoreTypes.Column[]) {\n return getColumnById(columnId, columns)?.field.type;\n}\n\n/** Returns metadata to identify which fields and which date functions are/aren't available for selection */\nexport function getGroupingOptions(\n groups: Group[],\n columns: RsCoreTypes.Column[],\n dateFunctions: RsCoreTypes.Meta['dateFunctions']\n): GroupingOptions {\n const groupingOptions: GroupingOptions = {\n // Set of fields that are already exhausted in grouping\n // NOTE: For date/datetime fields, when dateFunctions are enabled, it doesn't mark a field as exhausted until all the date-function variants are used against that field\n exhaustedFields: new Set(),\n\n // Contains field-wise lookups with values of structure { exhausted, available }\n dateFuncs: {},\n\n // Possible `dateFunction` choices by field type\n dateGroupVariants: {\n date: [],\n datetime: []\n }\n };\n\n // Traverse all the groups and mark which all fields and date functions are exhausted already\n groups.forEach(({ columnId, dateFunction }) => {\n if (columnId === '') return; // Ignore empty groups\n const fieldType = getFieldType(columnId, columns);\n\n // If date functions are enabled, and it's a date/datetime field, track the functions used\n if (dateFunctions && (fieldType === FieldType.DATE || fieldType === FieldType.DATE_TIME)) {\n groupingOptions.dateFuncs[columnId] = groupingOptions.dateFuncs[columnId] || {\n exhausted: [],\n available: []\n };\n groupingOptions.dateFuncs[columnId].exhausted.push(dateFunction); // `dateFunction` could be undefined\n } else {\n // Otherwise, simply mark the columns as exhausted\n groupingOptions.exhaustedFields.add(columnId);\n }\n });\n\n // When dateFunctions are enabled, determine which date/datetime fields are fully exhausted and also note which functions are available for each field\n if (dateFunctions) {\n // Identify all possible variants for a given field type\n // The `undefined` variant is applied when we group data directly by a field's values without any date function\n groupingOptions.dateGroupVariants = {\n date: [...dateFunctions.DATE_ONLY, undefined],\n datetime: [...dateFunctions.DATE_TIME, undefined]\n };\n\n // For each date/datetime field, set up which variants are yet to be used. Also determine if all the variants are exhausted\n Object.entries(groupingOptions.dateFuncs).forEach(([columnId, obj]) => {\n const fieldType = getFieldType(columnId, columns);\n if (fieldType === FieldType.DATE || fieldType === FieldType.DATE_TIME) {\n obj.available = groupingOptions.dateGroupVariants[fieldType].filter(\n v => !obj.exhausted.includes(v)\n );\n }\n\n if (obj.available.length === 0) {\n groupingOptions.exhaustedFields.add(columnId);\n }\n });\n }\n\n return groupingOptions;\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useGroup/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { FieldType, type RsCoreTypes } from 'pega-repeating-structures-core';\nimport type { Group } from 'pega-repeating-structures-core/types/State.types';\n\nimport type { GroupingOptions } from '../../Grouping.types';\n\n/**\n * Finds the matching column for the given id.\n * Returns `undefined` if no match found\n */\nexport function getColumnById(id: string, columns: RsCoreTypes.Column[]) {\n return columns.find(c => c.field.id === id);\n}\n\n/**\n * Finds the matching column for the given columnId and returns its field type.\n * Returns `undefined` if no match found\n */\nexport function getFieldType(columnId: string, fieldDefs: RsCoreTypes.Meta['fieldDefs']) {\n return fieldDefs.find(f => f.id === columnId)?.type;\n}\n\n/** Returns metadata to identify which fields and which date functions are/aren't available for selection */\nexport function getGroupingOptions(\n groups: Group[],\n fieldDefs: RsCoreTypes.Meta['fieldDefs'],\n dateFunctions: RsCoreTypes.Meta['dateFunctions']\n): GroupingOptions {\n const groupingOptions: GroupingOptions = {\n // Set of fields that are already exhausted in grouping\n // NOTE: For date/datetime fields, when dateFunctions are enabled, it doesn't mark a field as exhausted until all the date-function variants are used against that field\n exhaustedFields: new Set(),\n\n // Contains field-wise lookups with values of structure { exhausted, available }\n dateFuncs: {},\n\n // Possible `dateFunction` choices by field type\n dateGroupVariants: {\n date: [],\n datetime: []\n }\n };\n\n // Traverse all the groups and mark which all fields and date functions are exhausted already\n groups.forEach(({ columnId, dateFunction }) => {\n if (columnId === '') return; // Ignore empty groups\n const fieldType = getFieldType(columnId, fieldDefs);\n\n // If date functions are enabled, and it's a date/datetime field, track the functions used\n if (dateFunctions && (fieldType === FieldType.DATE || fieldType === FieldType.DATE_TIME)) {\n groupingOptions.dateFuncs[columnId] = groupingOptions.dateFuncs[columnId] || {\n exhausted: [],\n available: []\n };\n groupingOptions.dateFuncs[columnId].exhausted.push(dateFunction); // `dateFunction` could be undefined\n } else {\n // Otherwise, simply mark the columns as exhausted\n groupingOptions.exhaustedFields.add(columnId);\n }\n });\n\n // When dateFunctions are enabled, determine which date/datetime fields are fully exhausted and also note which functions are available for each field\n if (dateFunctions) {\n // Identify all possible variants for a given field type\n // The `undefined` variant is applied when we group data directly by a field's values without any date function\n groupingOptions.dateGroupVariants = {\n date: [...dateFunctions.DATE_ONLY, undefined],\n datetime: [...dateFunctions.DATE_TIME, undefined]\n };\n\n // For each date/datetime field, set up which variants are yet to be used. Also determine if all the variants are exhausted\n Object.entries(groupingOptions.dateFuncs).forEach(([columnId, obj]) => {\n const fieldType = getFieldType(columnId, fieldDefs);\n if (fieldType === FieldType.DATE || fieldType === FieldType.DATE_TIME) {\n obj.available = groupingOptions.dateGroupVariants[fieldType].filter(\n v => !obj.exhausted.includes(v)\n );\n }\n\n if (obj.available.length === 0) {\n groupingOptions.exhaustedFields.add(columnId);\n }\n });\n }\n\n return groupingOptions;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useMore.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/hooks/useMore.jsx"],"names":[],"mappings":";AA6BA;;;;;;EAmZC"}
1
+ {"version":3,"file":"useMore.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/hooks/useMore.jsx"],"names":[],"mappings":";AA6BA;;;;;;EAoZC"}
@@ -24,7 +24,7 @@ const ExportToExcel = 'Export to Excel';
24
24
  const ExportToCSV = 'Export to CSV';
25
25
  const Refresh = 'Refresh';
26
26
  const useMore = ({ view }) => {
27
- const { meta: { displayDensity, toggleFieldVisibility, freezeFields, personalization, headerBar, enableAppDefault, enableFreezeColumns, autoSizeColumns, showQueryInfo, resetColumnWidths, rowDensity, showHeaderIcons: isHeaderIcons, showImportDataOption, showExportToExcelOption, showExportToCSVOption, allowRefresh, template }, state: { showHeaderIcons, personalization: personalizationState, responsive: { sm: isSmallOrAbove } = {} } = {}, type: { applyToggleVisibility, applyFreeze }, toolBarOptions = [], columns, defaultPresetId, renderFactory, getContext } = view;
27
+ const { meta: { displayDensity, toggleFieldVisibility, freezeFields, personalization, headerBar, enableAppDefault, enableFreezeColumns, autoSizeColumns, showQueryInfo, resetColumnWidths, rowDensity, showHeaderIcons: isHeaderIcons, showImportDataOption, showExportToExcelOption, showExportToCSVOption, allowRefresh, template }, state: { showHeaderIcons, personalization: personalizationState, responsive: { sm: isSmallOrAbove } = {} } = {}, type: { applyToggleVisibility, applyFreeze }, toolBarOptions = [], defaultPresetId, renderFactory, getContext } = view;
28
28
  const [popperRef, setPopperRef] = useElement();
29
29
  const actionsButtonRef = useRef(null);
30
30
  const [translate] = useTranslate();
@@ -276,10 +276,10 @@ const useMore = ({ view }) => {
276
276
  if (forceShowMenu) {
277
277
  switch (moreContent) {
278
278
  case colsVisibility:
279
- component = (_jsx(ColumnSelector, { dispatch: applyToggleVisibility, columns: columns, action: moreContent, finishPopOver: finishPopOver }));
279
+ component = (_jsx(ColumnSelector, { dispatch: applyToggleVisibility, fieldDefs: view.getFieldDefs(), state: view.state, action: moreContent, finishPopOver: finishPopOver }));
280
280
  break;
281
281
  case pinning:
282
- component = (_jsx(ColumnSelector, { dispatch: applyFreeze, columns: columns, action: moreContent, finishPopOver: finishPopOver }));
282
+ component = (_jsx(ColumnSelector, { dispatch: applyFreeze, fieldDefs: view.getFieldDefs(), state: view.state, action: moreContent, finishPopOver: finishPopOver }));
283
283
  break;
284
284
  case RowDensity:
285
285
  component = resolveViewComponent('rowHeightRenderer', renderFactory, {
@@ -1 +1 @@
1
- {"version":3,"file":"useMore.js","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/hooks/useMore.jsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { Popover, useElement, useModalManager } from '@pega/cosmos-react-core';\n\nimport useTranslate from '../../../Hooks/useTranslate';\nimport PersonalizationDeleteConfirmation from '../../DefaultComponents/PersonalizationDeleteConfirmation';\nimport ColumnSelector, { colsVisibility, pinning } from '../ColumnSelector';\nimport DebugInfo from '../DebugInfo';\nimport { useKeyboardA11y } from '../../../Hooks/a11y';\nimport { resolveViewComponent } from '../../RenderingEngine/ComponentResolverFactory';\nimport showFeatureForTemplate from '../../../templateFeatureSupport';\n\nconst RowDensity = 'Row density';\n\nconst SaveViewChanges = 'Save changes';\nconst ViewAs = 'View as...';\nconst EditCustomizedView = 'Edit customized view';\nconst SetAsDefault = 'Set as default';\nconst MarkAsAppDefault = 'Mark as app default';\nconst DeleteCustomizedView = 'Delete customized view';\nconst ResetColumnWidths = 'Reset column widths';\nconst AutoSizeColumns = 'Auto size columns';\nconst ShowHeaderIcons = 'ShowHeaderIcons';\nconst Info = 'Query info';\nconst ImportCSVData = 'Import CSV data';\nconst ExportToExcel = 'Export to Excel';\nconst ExportToCSV = 'Export to CSV';\nconst Refresh = 'Refresh';\n\nconst useMore = ({ view }) => {\n const {\n meta: {\n displayDensity,\n toggleFieldVisibility,\n freezeFields,\n personalization,\n headerBar,\n enableAppDefault,\n enableFreezeColumns,\n autoSizeColumns,\n showQueryInfo,\n resetColumnWidths,\n rowDensity,\n showHeaderIcons: isHeaderIcons,\n showImportDataOption,\n showExportToExcelOption,\n showExportToCSVOption,\n allowRefresh,\n template\n },\n state: {\n showHeaderIcons,\n personalization: personalizationState,\n responsive: { sm: isSmallOrAbove } = {}\n } = {},\n type: { applyToggleVisibility, applyFreeze },\n toolBarOptions = [],\n columns,\n defaultPresetId,\n renderFactory,\n getContext\n } = view;\n\n const [popperRef, setPopperRef] = useElement();\n\n const actionsButtonRef = useRef(null);\n const [translate] = useTranslate();\n const { create } = useModalManager();\n const [moreContent, setMoreContent] = useState('default');\n const currentActiveView = personalizationState?.active;\n const currentDefaultView = personalizationState?.defaultPersonalization;\n const isAppDefaultView = currentActiveView === 'APP_DEFAULT';\n const isViewDirty = personalizationState?.dirty;\n const currentActiveViewName =\n personalizationState?.allPersonalizations?.[currentActiveView]?.name;\n const isPreset = !!personalizationState?.allPersonalizations?.[currentActiveView]?.isPreset;\n\n const onDeletePersonalization = useCallback(() => {\n create(\n PersonalizationDeleteConfirmation,\n {\n onSubmit: () => {\n view.type.deletePersonalization(currentActiveView);\n },\n currentActiveViewName,\n translate\n },\n {\n alert: true\n }\n );\n }, [create, currentActiveViewName, view.type, currentActiveView]);\n\n const [forceShowMenu, setForceShowMenu] = useState(false);\n\n const actions = useMemo(\n () => [\n [\n {\n id: colsVisibility,\n icon: 'eye-off',\n text: translate(colsVisibility),\n show: showFeatureForTemplate(template, 'showHideColumns') && !!toggleFieldVisibility,\n onClick: () => {\n setMoreContent(colsVisibility);\n setForceShowMenu(true);\n }\n },\n {\n id: RowDensity,\n icon: 'row-insert',\n text: translate(RowDensity),\n show:\n showFeatureForTemplate(template, 'rowDensity') &&\n displayDensity.length > 0 &&\n rowDensity,\n onClick: () => {\n setMoreContent(RowDensity);\n setForceShowMenu(true);\n }\n },\n {\n id: pinning,\n icon: 'freeze-column',\n text: translate(pinning),\n show:\n showFeatureForTemplate(template, 'freezeColumns') &&\n !!freezeFields &&\n !!enableFreezeColumns &&\n isSmallOrAbove,\n onClick: () => {\n setMoreContent(pinning);\n setForceShowMenu(true);\n }\n },\n {\n id: ShowHeaderIcons,\n icon: 'picture',\n text: showHeaderIcons ? translate('Hide header icons') : translate('Show header icons'),\n show: showFeatureForTemplate(template, 'showHeaderIcons') && isHeaderIcons,\n onClick: () => {\n view.type.updateHeaderIconsVisibility(!showHeaderIcons);\n }\n },\n {\n id: AutoSizeColumns,\n icon: 'scale-up',\n text: translate(AutoSizeColumns),\n show: showFeatureForTemplate(template, 'autoSizeColumns') && autoSizeColumns,\n onClick: () => {\n view.applyColumnsAutoSize(false);\n }\n },\n {\n id: ResetColumnWidths,\n icon: 'scale-down',\n text: translate(ResetColumnWidths),\n show: showFeatureForTemplate(template, 'resetColumnWidths') && resetColumnWidths,\n onClick: () => {\n view.applyColumnsAutoSize(true);\n }\n },\n {\n id: Info,\n icon: 'information',\n text: translate(Info),\n show: showFeatureForTemplate(template, 'info') && showQueryInfo,\n onClick: () => {\n setMoreContent(Info);\n setForceShowMenu(true);\n }\n }\n ],\n [\n {\n id: ViewAs,\n icon: 'columns',\n text: translate(ViewAs),\n show: Boolean(personalization && !headerBar),\n onClick: () => {\n setMoreContent(ViewAs);\n setForceShowMenu(true);\n }\n },\n {\n id: SaveViewChanges,\n icon: 'clipboard-plus',\n text: translate(SaveViewChanges),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization &&\n currentActiveView !== defaultPresetId &&\n (!isPreset || (isAppDefaultView && enableAppDefault)) &&\n isViewDirty\n ),\n onClick: () => {\n view.type.updatePersonalization(\n currentActiveView,\n currentDefaultView === currentActiveView,\n isAppDefaultView\n );\n }\n },\n {\n id: EditCustomizedView,\n icon: 'pencil',\n text: translate(EditCustomizedView),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization &&\n (!isPreset || (isAppDefaultView && enableAppDefault)) &&\n currentActiveView !== defaultPresetId\n ),\n onClick: () => {\n setMoreContent(EditCustomizedView);\n setForceShowMenu(true);\n }\n },\n {\n id: DeleteCustomizedView,\n icon: 'trash',\n text: translate(DeleteCustomizedView),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization &&\n !isPreset &&\n currentActiveView !== defaultPresetId &&\n !isAppDefaultView\n ),\n onClick: onDeletePersonalization\n },\n {\n id: SetAsDefault,\n icon: 'clipboard-check',\n text: translate(SetAsDefault),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization && currentDefaultView !== currentActiveView && !isAppDefaultView\n ),\n onClick: () => view.type.setDefaultPersonalization(currentActiveView)\n },\n {\n id: MarkAsAppDefault,\n icon: 'clipboard-check',\n text: translate(MarkAsAppDefault),\n show: Boolean(isPreset && enableAppDefault && personalization && !isAppDefaultView),\n onClick: () =>\n view.type.setAppDefaultPersonalization('APP_DEFAULT', currentActiveViewName)\n },\n {\n id: ImportCSVData,\n icon: 'document-xls',\n text: translate(ImportCSVData),\n show: Boolean(showImportDataOption),\n onClick: () => view.type.importCSVData(create)\n },\n {\n id: ExportToExcel,\n testId: 'export-to-excel',\n icon: 'document-xls',\n text: translate(ExportToExcel),\n show: Boolean(showExportToExcelOption),\n onClick: () => view.type.exportToExcel()\n },\n {\n id: ExportToCSV,\n icon: 'document-xls',\n text: translate(ExportToCSV),\n show: Boolean(showExportToCSVOption),\n onClick: () => view.type.exportToCSV()\n },\n {\n id: Refresh,\n testId: 'refresh',\n icon: 'reset',\n text: translate(Refresh),\n show: showFeatureForTemplate(template, 'refresh') && Boolean(allowRefresh),\n onClick: () => {\n view.type.forceRefresh();\n }\n }\n ],\n ...toolBarOptions\n ],\n [\n translate,\n template,\n toggleFieldVisibility,\n displayDensity.length,\n rowDensity,\n freezeFields,\n enableFreezeColumns,\n showHeaderIcons,\n isHeaderIcons,\n autoSizeColumns,\n showQueryInfo,\n resetColumnWidths,\n personalization,\n headerBar,\n currentActiveView,\n defaultPresetId,\n isPreset,\n isViewDirty,\n isAppDefaultView,\n showExportToExcelOption,\n showExportToCSVOption,\n onDeletePersonalization,\n currentDefaultView,\n toolBarOptions,\n currentActiveViewName,\n view,\n enableAppDefault,\n isSmallOrAbove\n ]\n );\n\n const filteredActions = useMemo(\n () =>\n actions\n .flat()\n .map(action => ({\n ...action,\n id: action.id.replaceAll(' ', '-')\n }))\n .filter(({ show = true }) => show),\n [actions]\n );\n\n const finishPopOver = () => {\n if (forceShowMenu) {\n setForceShowMenu(false);\n }\n };\n\n // setting focus on action button in different rendering cycle otherwise it will get lost due to re-render of toolbar\n useEffect(() => {\n if (!forceShowMenu && popperRef) {\n actionsButtonRef.current?.focus();\n }\n }, [forceShowMenu]);\n\n useKeyboardA11y({\n container: popperRef && forceShowMenu ? popperRef : null,\n onClose: popperRef && forceShowMenu ? finishPopOver : () => {}\n });\n\n let component;\n\n if (forceShowMenu) {\n switch (moreContent) {\n case colsVisibility:\n component = (\n <ColumnSelector\n dispatch={applyToggleVisibility}\n columns={columns}\n action={moreContent}\n finishPopOver={finishPopOver}\n />\n );\n break;\n\n case pinning:\n component = (\n <ColumnSelector\n dispatch={applyFreeze}\n columns={columns}\n action={moreContent}\n finishPopOver={finishPopOver}\n />\n );\n break;\n\n case RowDensity:\n component = resolveViewComponent('rowHeightRenderer', renderFactory, {\n ...getContext(),\n view,\n onClose: finishPopOver\n });\n break;\n\n case ViewAs:\n component = resolveViewComponent(\n 'personalizationSelectorRenderer',\n renderFactory,\n getContext()\n );\n break;\n\n case EditCustomizedView:\n component = actionsButtonRef.current\n ? resolveViewComponent('personalizationCreateEditRenderer', renderFactory, {\n onFinish: finishPopOver,\n editing: true,\n target: actionsButtonRef.current,\n ...getContext(),\n view\n })\n : null;\n break;\n\n case Info:\n component = actionsButtonRef.current ? (\n <DebugInfo view={view} target={actionsButtonRef.current} onClose={finishPopOver} />\n ) : null;\n break;\n\n default:\n component = null;\n break;\n }\n }\n // ColVisibility, pinning, RowDensity, ViewAs are all returning Menu, so popover is needed for them\n const selectedActionContent =\n component && [colsVisibility, pinning, RowDensity, ViewAs].includes(moreContent) ? (\n <Popover\n className='popper'\n arrow\n ref={setPopperRef}\n target={actionsButtonRef.current}\n placement='bottom-end'\n >\n {component}\n </Popover>\n ) : (\n component\n );\n\n return { actions: filteredActions, actionsButtonRef, selectedActionContent };\n};\n\nexport default useMore;\n"]}
1
+ {"version":3,"file":"useMore.js","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/hooks/useMore.jsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { Popover, useElement, useModalManager } from '@pega/cosmos-react-core';\n\nimport useTranslate from '../../../Hooks/useTranslate';\nimport PersonalizationDeleteConfirmation from '../../DefaultComponents/PersonalizationDeleteConfirmation';\nimport ColumnSelector, { colsVisibility, pinning } from '../ColumnSelector';\nimport DebugInfo from '../DebugInfo';\nimport { useKeyboardA11y } from '../../../Hooks/a11y';\nimport { resolveViewComponent } from '../../RenderingEngine/ComponentResolverFactory';\nimport showFeatureForTemplate from '../../../templateFeatureSupport';\n\nconst RowDensity = 'Row density';\n\nconst SaveViewChanges = 'Save changes';\nconst ViewAs = 'View as...';\nconst EditCustomizedView = 'Edit customized view';\nconst SetAsDefault = 'Set as default';\nconst MarkAsAppDefault = 'Mark as app default';\nconst DeleteCustomizedView = 'Delete customized view';\nconst ResetColumnWidths = 'Reset column widths';\nconst AutoSizeColumns = 'Auto size columns';\nconst ShowHeaderIcons = 'ShowHeaderIcons';\nconst Info = 'Query info';\nconst ImportCSVData = 'Import CSV data';\nconst ExportToExcel = 'Export to Excel';\nconst ExportToCSV = 'Export to CSV';\nconst Refresh = 'Refresh';\n\nconst useMore = ({ view }) => {\n const {\n meta: {\n displayDensity,\n toggleFieldVisibility,\n freezeFields,\n personalization,\n headerBar,\n enableAppDefault,\n enableFreezeColumns,\n autoSizeColumns,\n showQueryInfo,\n resetColumnWidths,\n rowDensity,\n showHeaderIcons: isHeaderIcons,\n showImportDataOption,\n showExportToExcelOption,\n showExportToCSVOption,\n allowRefresh,\n template\n },\n state: {\n showHeaderIcons,\n personalization: personalizationState,\n responsive: { sm: isSmallOrAbove } = {}\n } = {},\n type: { applyToggleVisibility, applyFreeze },\n toolBarOptions = [],\n defaultPresetId,\n renderFactory,\n getContext\n } = view;\n\n const [popperRef, setPopperRef] = useElement();\n\n const actionsButtonRef = useRef(null);\n const [translate] = useTranslate();\n const { create } = useModalManager();\n const [moreContent, setMoreContent] = useState('default');\n const currentActiveView = personalizationState?.active;\n const currentDefaultView = personalizationState?.defaultPersonalization;\n const isAppDefaultView = currentActiveView === 'APP_DEFAULT';\n const isViewDirty = personalizationState?.dirty;\n const currentActiveViewName =\n personalizationState?.allPersonalizations?.[currentActiveView]?.name;\n const isPreset = !!personalizationState?.allPersonalizations?.[currentActiveView]?.isPreset;\n\n const onDeletePersonalization = useCallback(() => {\n create(\n PersonalizationDeleteConfirmation,\n {\n onSubmit: () => {\n view.type.deletePersonalization(currentActiveView);\n },\n currentActiveViewName,\n translate\n },\n {\n alert: true\n }\n );\n }, [create, currentActiveViewName, view.type, currentActiveView]);\n\n const [forceShowMenu, setForceShowMenu] = useState(false);\n\n const actions = useMemo(\n () => [\n [\n {\n id: colsVisibility,\n icon: 'eye-off',\n text: translate(colsVisibility),\n show: showFeatureForTemplate(template, 'showHideColumns') && !!toggleFieldVisibility,\n onClick: () => {\n setMoreContent(colsVisibility);\n setForceShowMenu(true);\n }\n },\n {\n id: RowDensity,\n icon: 'row-insert',\n text: translate(RowDensity),\n show:\n showFeatureForTemplate(template, 'rowDensity') &&\n displayDensity.length > 0 &&\n rowDensity,\n onClick: () => {\n setMoreContent(RowDensity);\n setForceShowMenu(true);\n }\n },\n {\n id: pinning,\n icon: 'freeze-column',\n text: translate(pinning),\n show:\n showFeatureForTemplate(template, 'freezeColumns') &&\n !!freezeFields &&\n !!enableFreezeColumns &&\n isSmallOrAbove,\n onClick: () => {\n setMoreContent(pinning);\n setForceShowMenu(true);\n }\n },\n {\n id: ShowHeaderIcons,\n icon: 'picture',\n text: showHeaderIcons ? translate('Hide header icons') : translate('Show header icons'),\n show: showFeatureForTemplate(template, 'showHeaderIcons') && isHeaderIcons,\n onClick: () => {\n view.type.updateHeaderIconsVisibility(!showHeaderIcons);\n }\n },\n {\n id: AutoSizeColumns,\n icon: 'scale-up',\n text: translate(AutoSizeColumns),\n show: showFeatureForTemplate(template, 'autoSizeColumns') && autoSizeColumns,\n onClick: () => {\n view.applyColumnsAutoSize(false);\n }\n },\n {\n id: ResetColumnWidths,\n icon: 'scale-down',\n text: translate(ResetColumnWidths),\n show: showFeatureForTemplate(template, 'resetColumnWidths') && resetColumnWidths,\n onClick: () => {\n view.applyColumnsAutoSize(true);\n }\n },\n {\n id: Info,\n icon: 'information',\n text: translate(Info),\n show: showFeatureForTemplate(template, 'info') && showQueryInfo,\n onClick: () => {\n setMoreContent(Info);\n setForceShowMenu(true);\n }\n }\n ],\n [\n {\n id: ViewAs,\n icon: 'columns',\n text: translate(ViewAs),\n show: Boolean(personalization && !headerBar),\n onClick: () => {\n setMoreContent(ViewAs);\n setForceShowMenu(true);\n }\n },\n {\n id: SaveViewChanges,\n icon: 'clipboard-plus',\n text: translate(SaveViewChanges),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization &&\n currentActiveView !== defaultPresetId &&\n (!isPreset || (isAppDefaultView && enableAppDefault)) &&\n isViewDirty\n ),\n onClick: () => {\n view.type.updatePersonalization(\n currentActiveView,\n currentDefaultView === currentActiveView,\n isAppDefaultView\n );\n }\n },\n {\n id: EditCustomizedView,\n icon: 'pencil',\n text: translate(EditCustomizedView),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization &&\n (!isPreset || (isAppDefaultView && enableAppDefault)) &&\n currentActiveView !== defaultPresetId\n ),\n onClick: () => {\n setMoreContent(EditCustomizedView);\n setForceShowMenu(true);\n }\n },\n {\n id: DeleteCustomizedView,\n icon: 'trash',\n text: translate(DeleteCustomizedView),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization &&\n !isPreset &&\n currentActiveView !== defaultPresetId &&\n !isAppDefaultView\n ),\n onClick: onDeletePersonalization\n },\n {\n id: SetAsDefault,\n icon: 'clipboard-check',\n text: translate(SetAsDefault),\n show:\n showFeatureForTemplate(template, 'personalization') &&\n Boolean(\n personalization && currentDefaultView !== currentActiveView && !isAppDefaultView\n ),\n onClick: () => view.type.setDefaultPersonalization(currentActiveView)\n },\n {\n id: MarkAsAppDefault,\n icon: 'clipboard-check',\n text: translate(MarkAsAppDefault),\n show: Boolean(isPreset && enableAppDefault && personalization && !isAppDefaultView),\n onClick: () =>\n view.type.setAppDefaultPersonalization('APP_DEFAULT', currentActiveViewName)\n },\n {\n id: ImportCSVData,\n icon: 'document-xls',\n text: translate(ImportCSVData),\n show: Boolean(showImportDataOption),\n onClick: () => view.type.importCSVData(create)\n },\n {\n id: ExportToExcel,\n testId: 'export-to-excel',\n icon: 'document-xls',\n text: translate(ExportToExcel),\n show: Boolean(showExportToExcelOption),\n onClick: () => view.type.exportToExcel()\n },\n {\n id: ExportToCSV,\n icon: 'document-xls',\n text: translate(ExportToCSV),\n show: Boolean(showExportToCSVOption),\n onClick: () => view.type.exportToCSV()\n },\n {\n id: Refresh,\n testId: 'refresh',\n icon: 'reset',\n text: translate(Refresh),\n show: showFeatureForTemplate(template, 'refresh') && Boolean(allowRefresh),\n onClick: () => {\n view.type.forceRefresh();\n }\n }\n ],\n ...toolBarOptions\n ],\n [\n translate,\n template,\n toggleFieldVisibility,\n displayDensity.length,\n rowDensity,\n freezeFields,\n enableFreezeColumns,\n showHeaderIcons,\n isHeaderIcons,\n autoSizeColumns,\n showQueryInfo,\n resetColumnWidths,\n personalization,\n headerBar,\n currentActiveView,\n defaultPresetId,\n isPreset,\n isViewDirty,\n isAppDefaultView,\n showExportToExcelOption,\n showExportToCSVOption,\n onDeletePersonalization,\n currentDefaultView,\n toolBarOptions,\n currentActiveViewName,\n view,\n enableAppDefault,\n isSmallOrAbove\n ]\n );\n\n const filteredActions = useMemo(\n () =>\n actions\n .flat()\n .map(action => ({\n ...action,\n id: action.id.replaceAll(' ', '-')\n }))\n .filter(({ show = true }) => show),\n [actions]\n );\n\n const finishPopOver = () => {\n if (forceShowMenu) {\n setForceShowMenu(false);\n }\n };\n\n // setting focus on action button in different rendering cycle otherwise it will get lost due to re-render of toolbar\n useEffect(() => {\n if (!forceShowMenu && popperRef) {\n actionsButtonRef.current?.focus();\n }\n }, [forceShowMenu]);\n\n useKeyboardA11y({\n container: popperRef && forceShowMenu ? popperRef : null,\n onClose: popperRef && forceShowMenu ? finishPopOver : () => {}\n });\n\n let component;\n\n if (forceShowMenu) {\n switch (moreContent) {\n case colsVisibility:\n component = (\n <ColumnSelector\n dispatch={applyToggleVisibility}\n fieldDefs={view.getFieldDefs()}\n state={view.state}\n action={moreContent}\n finishPopOver={finishPopOver}\n />\n );\n break;\n\n case pinning:\n component = (\n <ColumnSelector\n dispatch={applyFreeze}\n fieldDefs={view.getFieldDefs()}\n state={view.state}\n action={moreContent}\n finishPopOver={finishPopOver}\n />\n );\n break;\n\n case RowDensity:\n component = resolveViewComponent('rowHeightRenderer', renderFactory, {\n ...getContext(),\n view,\n onClose: finishPopOver\n });\n break;\n\n case ViewAs:\n component = resolveViewComponent(\n 'personalizationSelectorRenderer',\n renderFactory,\n getContext()\n );\n break;\n\n case EditCustomizedView:\n component = actionsButtonRef.current\n ? resolveViewComponent('personalizationCreateEditRenderer', renderFactory, {\n onFinish: finishPopOver,\n editing: true,\n target: actionsButtonRef.current,\n ...getContext(),\n view\n })\n : null;\n break;\n\n case Info:\n component = actionsButtonRef.current ? (\n <DebugInfo view={view} target={actionsButtonRef.current} onClose={finishPopOver} />\n ) : null;\n break;\n\n default:\n component = null;\n break;\n }\n }\n // ColVisibility, pinning, RowDensity, ViewAs are all returning Menu, so popover is needed for them\n const selectedActionContent =\n component && [colsVisibility, pinning, RowDensity, ViewAs].includes(moreContent) ? (\n <Popover\n className='popper'\n arrow\n ref={setPopperRef}\n target={actionsButtonRef.current}\n placement='bottom-end'\n >\n {component}\n </Popover>\n ) : (\n component\n );\n\n return { actions: filteredActions, actionsButtonRef, selectedActionContent };\n};\n\nexport default useMore;\n"]}
@@ -1,8 +1,7 @@
1
1
  export default Row;
2
- declare function Row({ updateSortItemId, updateSortItemOrder, columns, removeSortItem, sortItems, index, id, order, sequence, dragProps, dropProps, focusRowRef }: {
2
+ declare function Row({ updateSortItemId, updateSortItemOrder, removeSortItem, sortItems, index, id, order, sequence, dragProps, dropProps, focusRowRef, fieldDefs }: {
3
3
  updateSortItemId: any;
4
4
  updateSortItemOrder: any;
5
- columns: any;
6
5
  removeSortItem: any;
7
6
  sortItems: any;
8
7
  index: any;
@@ -12,6 +11,7 @@ declare function Row({ updateSortItemId, updateSortItemOrder, columns, removeSor
12
11
  dragProps: any;
13
12
  dropProps: any;
14
13
  focusRowRef: any;
14
+ fieldDefs: any;
15
15
  }): import("react/jsx-runtime").JSX.Element | null;
16
16
  declare namespace Row {
17
17
  namespace propTypes {
@@ -33,6 +33,7 @@ declare namespace Row {
33
33
  let focusRowRef: PropTypes.Requireable<{
34
34
  [x: string]: any;
35
35
  }>;
36
+ let fieldDefs: PropTypes.Validator<any[]>;
36
37
  }
37
38
  let displayName: string;
38
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Row.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/Row.jsx"],"names":[],"mappings":";AAwBA;;;;;;;;;;;;;mDAwFC;;;;;;;;;;;;;;;;;;;;;;;;sBAhHqB,YAAY"}
1
+ {"version":3,"file":"Row.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/Row.jsx"],"names":[],"mappings":";AAwBA;;;;;;;;;;;;;mDAwFC;;;;;;;;;;;;;;;;;;;;;;;;;sBAhHqB,YAAY"}
@@ -17,9 +17,9 @@ const StyledDragHandle = styled(Button)(({ theme }) => {
17
17
  `;
18
18
  });
19
19
  StyledDragHandle.defaultProps = defaultThemeProp;
20
- const Row = ({ updateSortItemId, updateSortItemOrder, columns, removeSortItem, sortItems, index, id, order, sequence, dragProps, dropProps, focusRowRef }) => {
20
+ const Row = ({ updateSortItemId, updateSortItemOrder, removeSortItem, sortItems, index, id, order, sequence, dragProps, dropProps, focusRowRef, fieldDefs }) => {
21
21
  const [translate] = useTranslate();
22
- const validSortColumnsInRow = getValidSortColumnsInRow(columns, sortItems, id);
22
+ const validSortColumnsInRow = getValidSortColumnsInRow(fieldDefs, sortItems, id);
23
23
  if (!validSortColumnsInRow || !validSortColumnsInRow.length)
24
24
  return null;
25
25
  const validSortOrders = getValidSortOrders();
@@ -30,7 +30,7 @@ const Row = ({ updateSortItemId, updateSortItemOrder, columns, removeSortItem, s
30
30
  direction: 'row',
31
31
  wrap: 'no-wrap',
32
32
  itemGap: 0.5
33
- }, ref: focusRowRef, children: [_jsx(StyledDragHandle, { forwardedAs: 'div', role: 'button', icon: true, variant: 'simple', compact: true, disabled: !dragProps, ...dragProps, children: _jsx(Icon, { name: 'drag' }) }), _jsx(Flex, { item: { grow: 1, basis: '0' }, children: _jsx(FieldSelector, { label: translate('Field'), columns: validSortColumnsInRow, value: id, onChange: newID => updateSortItemId(newID, sequence), fieldProp: 'id', readOnly: !updateSortItemId }) }), _jsx(Flex, { item: { grow: 1, basis: '0' }, children: _jsxs(Select, { label: translate('Sort order'), className: 'select-sorts', "data-testid": 'SortSelector', value: label, onChange: e => {
33
+ }, ref: focusRowRef, children: [_jsx(StyledDragHandle, { forwardedAs: 'div', role: 'button', icon: true, variant: 'simple', compact: true, disabled: !dragProps, ...dragProps, children: _jsx(Icon, { name: 'drag' }) }), _jsx(Flex, { item: { grow: 1, basis: '0' }, children: _jsx(FieldSelector, { label: translate('Field'), fieldDefs: fieldDefs, value: id, onChange: newID => updateSortItemId(newID, sequence), fieldProp: 'id', readOnly: !updateSortItemId }) }), _jsx(Flex, { item: { grow: 1, basis: '0' }, children: _jsxs(Select, { label: translate('Sort order'), className: 'select-sorts', "data-testid": 'SortSelector', value: label, onChange: e => {
34
34
  const o = validSortOrders.find(v => v.label === e.target.value);
35
35
  if (o) {
36
36
  updateSortItemOrder(e, sequence, o.id);
@@ -49,7 +49,8 @@ Row.propTypes = {
49
49
  sequence: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
50
50
  dragProps: PropTypes.objectOf(PropTypes.any),
51
51
  dropProps: PropTypes.objectOf(PropTypes.any),
52
- focusRowRef: PropTypes.objectOf(PropTypes.any)
52
+ focusRowRef: PropTypes.objectOf(PropTypes.any),
53
+ fieldDefs: PropTypes.arrayOf(PropTypes.any).isRequired
53
54
  };
54
55
  Row.displayName = 'Row';
55
56
  export default Row;
@@ -1 +1 @@
1
- {"version":3,"file":"Row.js","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/Row.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport { Button, defaultThemeProp, Flex, Icon, Option, Select } from '@pega/cosmos-react-core';\n\nimport FieldSelector from '../../FieldSelector';\nimport { keyFrom } from '../../../../Utils';\nimport useTranslate from '../../../../Hooks/useTranslate';\n\nimport { getValidSortColumnsInRow, getValidSortOrders } from './utils';\n\nconst StyledDragHandle = styled(Button)(({ theme }) => {\n return css`\n cursor: grab;\n margin-block: calc(${theme.base.spacing} * 0.5);\n\n @media (pointer: coarse) {\n margin-block: calc(${theme.base.spacing} * 1.25);\n }\n `;\n});\n\nStyledDragHandle.defaultProps = defaultThemeProp;\n\nconst Row = ({\n updateSortItemId,\n updateSortItemOrder,\n columns,\n removeSortItem,\n sortItems,\n index,\n id,\n order,\n sequence,\n dragProps,\n dropProps,\n focusRowRef\n}) => {\n const [translate] = useTranslate();\n const validSortColumnsInRow = getValidSortColumnsInRow(columns, sortItems, id);\n if (!validSortColumnsInRow || !validSortColumnsInRow.length) return null;\n const validSortOrders = getValidSortOrders();\n const { label } = validSortOrders.find(v => v.id === order) || {};\n\n return (\n <div {...dropProps} data-sequence={sequence}>\n <Flex\n container={{\n justify: 'between',\n alignItems: 'end',\n direction: 'row',\n wrap: 'no-wrap',\n itemGap: 0.5\n }}\n ref={focusRowRef}\n >\n <StyledDragHandle\n forwardedAs='div'\n role='button'\n icon\n variant='simple'\n compact\n disabled={!dragProps}\n {...dragProps}\n >\n <Icon name='drag' />\n </StyledDragHandle>\n <Flex item={{ grow: 1, basis: '0' }}>\n <FieldSelector\n label={translate('Field')}\n columns={validSortColumnsInRow}\n value={id}\n onChange={newID => updateSortItemId(newID, sequence)}\n fieldProp='id'\n readOnly={!updateSortItemId}\n />\n </Flex>\n <Flex item={{ grow: 1, basis: '0' }}>\n <Select\n label={translate('Sort order')}\n className='select-sorts'\n data-testid='SortSelector'\n value={label}\n onChange={e => {\n const o = validSortOrders.find(v => v.label === e.target.value);\n if (o) {\n updateSortItemOrder(e, sequence, o.id);\n }\n }}\n >\n <option value=''>{translate('Select...')}</option>\n {validSortOrders.map((v, i) => (\n <Option key={keyFrom(v.label, i)} value={v.label}>\n {translate(v.label)}\n </Option>\n ))}\n </Select>\n </Flex>\n <Flex item>\n <Button\n icon\n variant='simple'\n onClick={() => removeSortItem(index, order)}\n label={translate('Remove sort')}\n disabled={!removeSortItem}\n >\n <Icon name='trash' />\n </Button>\n </Flex>\n </Flex>\n </div>\n );\n};\n\nRow.propTypes = {\n updateSortItemId: PropTypes.func,\n updateSortItemOrder: PropTypes.func.isRequired,\n columns: PropTypes.arrayOf(PropTypes.any).isRequired,\n removeSortItem: PropTypes.func,\n sortItems: PropTypes.arrayOf(PropTypes.any).isRequired,\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n index: PropTypes.number.isRequired,\n order: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n sequence: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n dragProps: PropTypes.objectOf(PropTypes.any),\n dropProps: PropTypes.objectOf(PropTypes.any),\n focusRowRef: PropTypes.objectOf(PropTypes.any)\n};\n\nRow.displayName = 'Row';\n\nexport default Row;\n"]}
1
+ {"version":3,"file":"Row.js","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/Row.jsx"],"names":[],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport { Button, defaultThemeProp, Flex, Icon, Option, Select } from '@pega/cosmos-react-core';\n\nimport FieldSelector from '../../FieldSelector';\nimport { keyFrom } from '../../../../Utils';\nimport useTranslate from '../../../../Hooks/useTranslate';\n\nimport { getValidSortColumnsInRow, getValidSortOrders } from './utils';\n\nconst StyledDragHandle = styled(Button)(({ theme }) => {\n return css`\n cursor: grab;\n margin-block: calc(${theme.base.spacing} * 0.5);\n\n @media (pointer: coarse) {\n margin-block: calc(${theme.base.spacing} * 1.25);\n }\n `;\n});\n\nStyledDragHandle.defaultProps = defaultThemeProp;\n\nconst Row = ({\n updateSortItemId,\n updateSortItemOrder,\n removeSortItem,\n sortItems,\n index,\n id,\n order,\n sequence,\n dragProps,\n dropProps,\n focusRowRef,\n fieldDefs\n}) => {\n const [translate] = useTranslate();\n const validSortColumnsInRow = getValidSortColumnsInRow(fieldDefs, sortItems, id);\n if (!validSortColumnsInRow || !validSortColumnsInRow.length) return null;\n const validSortOrders = getValidSortOrders();\n const { label } = validSortOrders.find(v => v.id === order) || {};\n\n return (\n <div {...dropProps} data-sequence={sequence}>\n <Flex\n container={{\n justify: 'between',\n alignItems: 'end',\n direction: 'row',\n wrap: 'no-wrap',\n itemGap: 0.5\n }}\n ref={focusRowRef}\n >\n <StyledDragHandle\n forwardedAs='div'\n role='button'\n icon\n variant='simple'\n compact\n disabled={!dragProps}\n {...dragProps}\n >\n <Icon name='drag' />\n </StyledDragHandle>\n <Flex item={{ grow: 1, basis: '0' }}>\n <FieldSelector\n label={translate('Field')}\n fieldDefs={fieldDefs}\n value={id}\n onChange={newID => updateSortItemId(newID, sequence)}\n fieldProp='id'\n readOnly={!updateSortItemId}\n />\n </Flex>\n <Flex item={{ grow: 1, basis: '0' }}>\n <Select\n label={translate('Sort order')}\n className='select-sorts'\n data-testid='SortSelector'\n value={label}\n onChange={e => {\n const o = validSortOrders.find(v => v.label === e.target.value);\n if (o) {\n updateSortItemOrder(e, sequence, o.id);\n }\n }}\n >\n <option value=''>{translate('Select...')}</option>\n {validSortOrders.map((v, i) => (\n <Option key={keyFrom(v.label, i)} value={v.label}>\n {translate(v.label)}\n </Option>\n ))}\n </Select>\n </Flex>\n <Flex item>\n <Button\n icon\n variant='simple'\n onClick={() => removeSortItem(index, order)}\n label={translate('Remove sort')}\n disabled={!removeSortItem}\n >\n <Icon name='trash' />\n </Button>\n </Flex>\n </Flex>\n </div>\n );\n};\n\nRow.propTypes = {\n updateSortItemId: PropTypes.func,\n updateSortItemOrder: PropTypes.func.isRequired,\n columns: PropTypes.arrayOf(PropTypes.any).isRequired,\n removeSortItem: PropTypes.func,\n sortItems: PropTypes.arrayOf(PropTypes.any).isRequired,\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n index: PropTypes.number.isRequired,\n order: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n sequence: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n dragProps: PropTypes.objectOf(PropTypes.any),\n dropProps: PropTypes.objectOf(PropTypes.any),\n focusRowRef: PropTypes.objectOf(PropTypes.any),\n fieldDefs: PropTypes.arrayOf(PropTypes.any).isRequired\n};\n\nRow.displayName = 'Row';\n\nexport default Row;\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { Sort } from 'pega-repeating-structures-core/types/State.types';
2
- import type { RsCoreTypes } from 'pega-repeating-structures-core';
2
+ import { type RsCoreTypes } from 'pega-repeating-structures-core';
3
3
  import type { SortItem } from './useSort';
4
4
  interface SortRendererProps {
5
5
  sortItems: SortItem[];
@@ -8,7 +8,8 @@ interface SortRendererProps {
8
8
  order: string;
9
9
  })[]) => void;
10
10
  template: RsCoreTypes.Meta['template'];
11
+ fieldDefs: RsCoreTypes.Meta['fieldDefs'];
11
12
  }
12
- declare const SortRenderer: ({ sortItems, columns, updateSortItems, template }: SortRendererProps) => import("react/jsx-runtime").JSX.Element;
13
+ declare const SortRenderer: ({ sortItems, columns, updateSortItems, template, fieldDefs }: SortRendererProps) => import("react/jsx-runtime").JSX.Element;
13
14
  export default SortRenderer;
14
15
  //# sourceMappingURL=SortRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SortRenderer.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/SortRenderer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kDAAkD,CAAC;AAE7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAOlE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAI1C,UAAU,iBAAiB;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IACnE,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;CACxC;AAED,QAAA,MAAM,YAAY,GAAI,mDAAmD,iBAAiB,4CAiIzF,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"SortRenderer.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/SortRenderer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kDAAkD,CAAC;AAC7E,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAOjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAI1C,UAAU,iBAAiB;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IACnE,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;CAC1C;AAED,QAAA,MAAM,YAAY,GAAI,8DAMnB,iBAAiB,4CAmInB,CAAC;AAEF,eAAe,YAAY,CAAC"}