@pega/lists-react 9.0.0-build.21.0 → 9.0.0-build.21.2
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.
- package/lib/Core/Components/A11y/RepeatingStructureA11y.d.ts.map +1 -1
- package/lib/Core/Components/A11y/RepeatingStructureA11y.js +2 -1
- package/lib/Core/Components/A11y/RepeatingStructureA11y.js.map +1 -1
- package/lib/Core/Components/Filters/AdvanceFilter.js +1 -1
- package/lib/Core/Components/Filters/AdvanceFilter.js.map +1 -1
- package/lib/Core/Components/Filters/SimpleFilter.js +1 -1
- package/lib/Core/Components/Filters/SimpleFilter.js.map +1 -1
- package/lib/Core/Components/Toolbar/ColumnSelector.d.ts +6 -4
- package/lib/Core/Components/Toolbar/ColumnSelector.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/ColumnSelector.js +15 -19
- package/lib/Core/Components/Toolbar/ColumnSelector.js.map +1 -1
- package/lib/Core/Components/Toolbar/FieldSelector.d.ts +1 -1
- package/lib/Core/Components/Toolbar/FieldSelector.js +4 -4
- package/lib/Core/Components/Toolbar/FieldSelector.js.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useFilter.js +1 -1
- package/lib/Core/Components/Toolbar/hooks/useFilter.js.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useGroup/DateFunctionSelector.d.ts +2 -2
- package/lib/Core/Components/Toolbar/hooks/useGroup/DateFunctionSelector.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useGroup/DateFunctionSelector.js +2 -2
- package/lib/Core/Components/Toolbar/hooks/useGroup/DateFunctionSelector.js.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.d.ts +2 -1
- package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.js +4 -4
- package/lib/Core/Components/Toolbar/hooks/useGroup/GroupRenderer.js.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useGroup/useGroup.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useGroup/useGroup.js +12 -4
- package/lib/Core/Components/Toolbar/hooks/useGroup/useGroup.js.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useGroup/utils.d.ts +2 -2
- package/lib/Core/Components/Toolbar/hooks/useGroup/utils.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useGroup/utils.js +5 -5
- package/lib/Core/Components/Toolbar/hooks/useGroup/utils.js.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useMore.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useMore.js +3 -3
- package/lib/Core/Components/Toolbar/hooks/useMore.js.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useSort/Row.d.ts +3 -2
- package/lib/Core/Components/Toolbar/hooks/useSort/Row.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useSort/Row.js +5 -4
- package/lib/Core/Components/Toolbar/hooks/useSort/Row.js.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useSort/SortRenderer.d.ts +3 -2
- package/lib/Core/Components/Toolbar/hooks/useSort/SortRenderer.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useSort/SortRenderer.js +4 -4
- package/lib/Core/Components/Toolbar/hooks/useSort/SortRenderer.js.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useSort/useSort.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useSort/useSort.js +7 -1
- package/lib/Core/Components/Toolbar/hooks/useSort/useSort.js.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useSort/utils.d.ts +1 -1
- package/lib/Core/Components/Toolbar/hooks/useSort/utils.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/hooks/useSort/utils.js +2 -2
- package/lib/Core/Components/Toolbar/hooks/useSort/utils.js.map +1 -1
- package/lib/Core/Components/Toolbar/utils/utils.d.ts +1 -1
- package/lib/Core/Components/Toolbar/utils/utils.d.ts.map +1 -1
- package/lib/Core/Components/Toolbar/utils/utils.js +3 -4
- package/lib/Core/Components/Toolbar/utils/utils.js.map +1 -1
- package/lib/Core/Hooks/useRepeat.d.ts.map +1 -1
- package/lib/Core/Hooks/useRepeat.js +13 -1
- package/lib/Core/Hooks/useRepeat.js.map +1 -1
- package/lib/Core/Test/JUnitMocks.d.ts +12 -0
- package/lib/Core/Test/JUnitMocks.d.ts.map +1 -1
- package/lib/Core/Test/JUnitMocks.js +26 -8
- package/lib/Core/Test/JUnitMocks.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortRenderer.js","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/SortRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nimport type { ChangeEvent } from 'react';\n\nimport { Button, createUID, Flex, Icon, useI18n } from '@pega/cosmos-react-core';\nimport type { Sort } from 'pega-repeating-structures-core/types/State.types';\nimport { REPEATING_STRUCTURE_TEMPLATES } from 'pega-repeating-structures-core';\nimport type { RsCoreTypes } from 'pega-repeating-structures-core';\n\nimport useRowFocus from '../useRowFocus';\nimport useDragDrop from '../../../../Hooks/useDragDrop';\n\nimport { getValidSortColumnsInRow } from './utils';\nimport Row from './Row';\nimport type { SortItem } from './useSort';\n\nconst DropSelector = '[data-drop]';\n\ninterface SortRendererProps {\n sortItems: SortItem[];\n columns: RsCoreTypes.Column[];\n updateSortItems: (sortItems: (Sort | { order: string })[]) => void;\n template: RsCoreTypes.Meta['template'];\n}\n\nconst SortRenderer = ({ sortItems, columns, updateSortItems, template }: SortRendererProps) => {\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\n const updateSortItemSequence = useCallback(\n (srcSequence: Sort['sequence'], destSequence: Sort['sequence']) => {\n const items = sortItems.slice().sort((a, b) => a.sequence - b.sequence);\n items.splice(destSequence - 1, 0, items.splice(srcSequence - 1, 1)[0]);\n items.forEach((item, index) => {\n item.sequence = index + 1;\n });\n updateSortItems(items);\n },\n [sortItems]\n );\n\n const onDrop = useCallback(\n (dest: Element, src: Element) => {\n updateSortItemSequence(\n parseInt(src.getAttribute('data-sequence') ?? '', 10),\n parseInt(dest.getAttribute('data-sequence') ?? '', 10)\n );\n },\n [updateSortItemSequence]\n );\n const { dragProps, dropProps } = useDragDrop({\n context: dragDropRef,\n getAnimationSelector,\n getGhostImageSelector: getAnimationSelector,\n getDraggedObject: getAnimationSelector,\n onDrop\n });\n\n const addSortItem = useCallback(() => {\n const validSortColumnsInRow = getValidSortColumnsInRow(columns, sortItems);\n if (validSortColumnsInRow && validSortColumnsInRow.length) {\n const newRow = {\n id: createUID(),\n columnId: '',\n order: '',\n sequence: sortItems.length + 1\n };\n const newSortItems = [...sortItems, newRow];\n updateSortItems(newSortItems);\n setFocusRowId(newRow.id);\n }\n }, [sortItems, columns, setFocusRowId]);\n\n const updateSortItemId = useCallback(\n (id: Sort['columnId'], sequence: Sort['sequence']) => {\n const index = sortItems.findIndex(s => s.sequence === sequence);\n const items = [...sortItems];\n items[index].columnId = id;\n updateSortItems(items);\n },\n [sortItems]\n );\n\n const updateSortItemOrder = useCallback(\n (e: ChangeEvent, sequence: Sort['sequence'], o: Sort['order']) => {\n const index = sortItems.findIndex(s => s.sequence === sequence);\n const items = [...sortItems];\n items[index].order = o;\n updateSortItems(items);\n },\n [sortItems]\n );\n\n const removeSortItem = useCallback(\n (index: number) => {\n const items = sortItems.map(v => ({ ...v }));\n const { sequence } = items[index];\n items.splice(index, 1);\n items.forEach(item => {\n if (item.sequence > sequence) item.sequence -= 1;\n });\n updateSortItems(items);\n\n if (items.length > 0)\n setFocusRowId(index === sortItems.length - 1 ? items[index - 1].id : items[index].id);\n },\n [sortItems, setFocusRowId]\n );\n\n useEffect(() => {\n if (!sortItems.length) {\n addSortItem();\n }\n }, [sortItems, addSortItem]);\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Flex container={{ direction: 'column', gap: 1 }} ref={dragDropRef}>\n {sortItems\n .slice()\n .sort((a, b) => a.sequence - b.sequence)\n .map((s, i) => (\n <Row\n key={s.id}\n updateSortItemOrder={updateSortItemOrder}\n columns={columns}\n sortItems={sortItems}\n index={i}\n id={s.columnId}\n order={s.order}\n sequence={s.sequence}\n focusRowRef={sortItems[i].id === focusRowId ? focusRowRef : null}\n {...(!(i === 0 && template === REPEATING_STRUCTURE_TEMPLATES.TIMELINE) && {\n updateSortItemId,\n removeSortItem,\n dragProps,\n dropProps\n })}\n />\n ))}\n </Flex>\n <div>\n <Button variant='link' aria-label={t('add_sort')} onClick={addSortItem}>\n <Flex container={{ inline: true, alignItems: 'start', gap: 1 }} as='span'>\n <Icon name='plus' />\n <span>{t('add')}</span>\n </Flex>\n </Button>\n </div>\n </Flex>\n );\n};\n\nexport default SortRenderer;\n"]}
|
|
1
|
+
{"version":3,"file":"SortRenderer.js","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/SortRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nimport type { ChangeEvent } from 'react';\n\nimport { Button, createUID, Flex, Icon, useI18n } from '@pega/cosmos-react-core';\nimport type { Sort } from 'pega-repeating-structures-core/types/State.types';\nimport { REPEATING_STRUCTURE_TEMPLATES, type RsCoreTypes } from 'pega-repeating-structures-core';\n\nimport useRowFocus from '../useRowFocus';\nimport useDragDrop from '../../../../Hooks/useDragDrop';\n\nimport { getValidSortColumnsInRow } from './utils';\nimport Row from './Row';\nimport type { SortItem } from './useSort';\n\nconst DropSelector = '[data-drop]';\n\ninterface SortRendererProps {\n sortItems: SortItem[];\n columns: RsCoreTypes.Column[];\n updateSortItems: (sortItems: (Sort | { order: string })[]) => void;\n template: RsCoreTypes.Meta['template'];\n fieldDefs: RsCoreTypes.Meta['fieldDefs'];\n}\n\nconst SortRenderer = ({\n sortItems,\n columns,\n updateSortItems,\n template,\n fieldDefs\n}: SortRendererProps) => {\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\n const updateSortItemSequence = useCallback(\n (srcSequence: Sort['sequence'], destSequence: Sort['sequence']) => {\n const items = sortItems.slice().sort((a, b) => a.sequence - b.sequence);\n items.splice(destSequence - 1, 0, items.splice(srcSequence - 1, 1)[0]);\n items.forEach((item, index) => {\n item.sequence = index + 1;\n });\n updateSortItems(items);\n },\n [sortItems]\n );\n\n const onDrop = useCallback(\n (dest: Element, src: Element) => {\n updateSortItemSequence(\n parseInt(src.getAttribute('data-sequence') ?? '', 10),\n parseInt(dest.getAttribute('data-sequence') ?? '', 10)\n );\n },\n [updateSortItemSequence]\n );\n const { dragProps, dropProps } = useDragDrop({\n context: dragDropRef,\n getAnimationSelector,\n getGhostImageSelector: getAnimationSelector,\n getDraggedObject: getAnimationSelector,\n onDrop\n });\n\n const addSortItem = useCallback(() => {\n const validSortColumnsInRow = getValidSortColumnsInRow(fieldDefs, sortItems);\n if (validSortColumnsInRow && validSortColumnsInRow.length) {\n const newRow = {\n id: createUID(),\n columnId: '',\n order: '',\n sequence: sortItems.length + 1\n };\n const newSortItems = [...sortItems, newRow];\n updateSortItems(newSortItems);\n setFocusRowId(newRow.id);\n }\n }, [sortItems, columns, setFocusRowId]);\n\n const updateSortItemId = useCallback(\n (id: Sort['columnId'], sequence: Sort['sequence']) => {\n const index = sortItems.findIndex(s => s.sequence === sequence);\n const items = [...sortItems];\n items[index].columnId = id;\n updateSortItems(items);\n },\n [sortItems]\n );\n\n const updateSortItemOrder = useCallback(\n (e: ChangeEvent, sequence: Sort['sequence'], o: Sort['order']) => {\n const index = sortItems.findIndex(s => s.sequence === sequence);\n const items = [...sortItems];\n items[index].order = o;\n updateSortItems(items);\n },\n [sortItems]\n );\n\n const removeSortItem = useCallback(\n (index: number) => {\n const items = sortItems.map(v => ({ ...v }));\n const { sequence } = items[index];\n items.splice(index, 1);\n items.forEach(item => {\n if (item.sequence > sequence) item.sequence -= 1;\n });\n updateSortItems(items);\n\n if (items.length > 0)\n setFocusRowId(index === sortItems.length - 1 ? items[index - 1].id : items[index].id);\n },\n [sortItems, setFocusRowId]\n );\n\n useEffect(() => {\n if (!sortItems.length) {\n addSortItem();\n }\n }, [sortItems, addSortItem]);\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Flex container={{ direction: 'column', gap: 1 }} ref={dragDropRef}>\n {sortItems\n .slice()\n .sort((a, b) => a.sequence - b.sequence)\n .map((s, i) => (\n <Row\n key={s.id}\n updateSortItemOrder={updateSortItemOrder}\n removeSortItem={removeSortItem}\n columns={columns}\n sortItems={sortItems}\n index={i}\n id={s.columnId}\n order={s.order}\n sequence={s.sequence}\n focusRowRef={sortItems[i].id === focusRowId ? focusRowRef : null}\n {...(!(i === 0 && template === REPEATING_STRUCTURE_TEMPLATES.TIMELINE) && {\n updateSortItemId,\n removeSortItem,\n dragProps,\n dropProps\n })}\n fieldDefs={fieldDefs}\n />\n ))}\n </Flex>\n <div>\n <Button variant='link' aria-label={t('add_sort')} onClick={addSortItem}>\n <Flex container={{ inline: true, alignItems: 'start', gap: 1 }} as='span'>\n <Icon name='plus' />\n <span>{t('add')}</span>\n </Flex>\n </Button>\n </div>\n </Flex>\n );\n};\n\nexport default SortRenderer;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSort.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/useSort.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,gBAAgB,EAAe,MAAM,yBAAyB,CAAC;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kDAAkD,CAAC;AAO7E,MAAM,WAAW,QAAS,SAAQ,IAAI;IACpC,EAAE,EAAE,MAAM,CAAC;CACZ;AAKD,QAAA,MAAM,OAAO,GAAI,UAAU;IAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAA;CAAE,KAAG,gBAAgB,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"useSort.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/useSort.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,gBAAgB,EAAe,MAAM,yBAAyB,CAAC;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kDAAkD,CAAC;AAO7E,MAAM,WAAW,QAAS,SAAQ,IAAI;IACpC,EAAE,EAAE,MAAM,CAAC;CACZ;AAKD,QAAA,MAAM,OAAO,GAAI,UAAU;IAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAA;CAAE,KAAG,gBAAgB,CAAC,MAAM,CA+C9E,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -32,7 +32,13 @@ const useSort = ({ view }) => {
|
|
|
32
32
|
return {
|
|
33
33
|
count: sortingOrder.length > 0 ? sortingOrder.length : undefined,
|
|
34
34
|
renderer: SortRenderer,
|
|
35
|
-
rendererProps: {
|
|
35
|
+
rendererProps: {
|
|
36
|
+
sortItems,
|
|
37
|
+
columns,
|
|
38
|
+
updateSortItems,
|
|
39
|
+
template,
|
|
40
|
+
fieldDefs: view.getFieldDefs()
|
|
41
|
+
},
|
|
36
42
|
onSubmit,
|
|
37
43
|
onCancel
|
|
38
44
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSort.js","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/useSort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAyB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAIxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAM1C,MAAM,8BAA8B,GAAG,CAAC,YAAoB,EAAE,EAAE,CAC9D,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAE3D,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAA8B,EAA4B,EAAE;IACjF,MAAM,EACJ,OAAO,GAAG,EAAE,EACZ,KAAK,EAAE,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,EAAE,EACjC,IAAI,EAAE,EAAE,QAAQ,EAAE,EAClB,IAAI,EAAE,EAAE,YAAY,EAAE,EACvB,GAAG,IAAI,CAAC;IACT,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAa,EAAE,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,MAAM,cAAc,GAAG,SAAS;aAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;aACvC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC;aACxC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACnB,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;YAC7B,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;QACL,YAAY,CAAC,cAAc,CAAC,CAAC;IAC/B,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,eAAe,CAAC,QAAQ,CAAC,8BAA8B,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,gBAAgB,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IACnD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE,CAAC;YAC/C,eAAe,CAAC,QAAQ,CAAC,8BAA8B,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAErC,IAAI,CAAC,WAAW;QAAE,OAAO;IAEzB,OAAO;QACL,KAAK,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAChE,QAAQ,EAAE,YAAY;QACtB,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"useSort.js","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/useSort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAyB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAIxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAM1C,MAAM,8BAA8B,GAAG,CAAC,YAAoB,EAAE,EAAE,CAC9D,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAE3D,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAA8B,EAA4B,EAAE;IACjF,MAAM,EACJ,OAAO,GAAG,EAAE,EACZ,KAAK,EAAE,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,EAAE,EACjC,IAAI,EAAE,EAAE,QAAQ,EAAE,EAClB,IAAI,EAAE,EAAE,YAAY,EAAE,EACvB,GAAG,IAAI,CAAC;IACT,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAa,EAAE,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,MAAM,cAAc,GAAG,SAAS;aAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;aACvC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC;aACxC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACnB,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;YAC7B,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;QACL,YAAY,CAAC,cAAc,CAAC,CAAC;IAC/B,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,eAAe,CAAC,QAAQ,CAAC,8BAA8B,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,gBAAgB,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IACnD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE,CAAC;YAC/C,eAAe,CAAC,QAAQ,CAAC,8BAA8B,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAErC,IAAI,CAAC,WAAW;QAAE,OAAO;IAEzB,OAAO;QACL,KAAK,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAChE,QAAQ,EAAE,YAAY;QACtB,aAAa,EAAE;YACb,SAAS;YACT,OAAO;YACP,eAAe;YACf,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;SAC/B;QACD,QAAQ;QACR,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC","sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport { createUID, type ListToolbarProps, usePrevious } from '@pega/cosmos-react-core';\nimport type { RsCoreTypes } from 'pega-repeating-structures-core';\nimport type { Sort } from 'pega-repeating-structures-core/types/State.types';\n\nimport { TOOLBAR_FEATURES } from '../../../../constants';\nimport { deepCopy, deepEqual } from '../../../../Utils/index';\n\nimport SortRenderer from './SortRenderer';\n\nexport interface SortItem extends Sort {\n id: string;\n}\n\nconst convertSortingOrderToSortItems = (sortingOrder: Sort[]) =>\n sortingOrder.map(sort => ({ ...sort, id: createUID() }));\n\nconst useSort = ({ view }: { view: RsCoreTypes.View }): ListToolbarProps['sort'] => {\n const {\n columns = [],\n state: { sortingOrder = [] } = {},\n meta: { template },\n type: { applySorting }\n } = view;\n const displaySort = view.shouldDisplayFeature(TOOLBAR_FEATURES.SORT);\n const [sortItems, updateSortItems] = useState<SortItem[]>([]);\n\n const onSubmit = useCallback(() => {\n const finalSortItems = sortItems\n .sort((a, b) => a.sequence - b.sequence)\n .filter(ele => ele.columnId && ele.order)\n .map((item, index) => {\n const { id, ...rest } = item;\n return { ...rest, sequence: index + 1 };\n });\n applySorting(finalSortItems);\n }, [sortItems, applySorting]);\n\n const onCancel = useCallback(() => {\n updateSortItems(deepCopy(convertSortingOrderToSortItems(sortingOrder)));\n }, [sortingOrder]);\n\n const prevSortingOrder = usePrevious(sortingOrder);\n useEffect(() => {\n if (!deepEqual(sortingOrder, prevSortingOrder)) {\n updateSortItems(deepCopy(convertSortingOrderToSortItems(sortingOrder)));\n }\n }, [sortingOrder, prevSortingOrder]);\n\n if (!displaySort) return;\n\n return {\n count: sortingOrder.length > 0 ? sortingOrder.length : undefined,\n renderer: SortRenderer,\n rendererProps: {\n sortItems,\n columns,\n updateSortItems,\n template,\n fieldDefs: view.getFieldDefs()\n },\n onSubmit,\n onCancel\n };\n};\n\nexport default useSort;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { RsCoreTypes } from 'pega-repeating-structures-core';
|
|
2
2
|
import type { Sort } from 'pega-repeating-structures-core/types/State.types';
|
|
3
|
-
export declare const getValidSortColumnsInRow: (
|
|
3
|
+
export declare const getValidSortColumnsInRow: (fieldDefs: RsCoreTypes.Meta["fieldDefs"], sortItems: Sort[], id?: Sort["columnId"]) => import("pega-repeating-structures-core/lib/types/Meta.types").FieldDef[];
|
|
4
4
|
export declare const getValidSortOrders: () => {
|
|
5
5
|
id: string;
|
|
6
6
|
label: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kDAAkD,CAAC;AAS7E,eAAO,MAAM,wBAAwB,GACnC,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kDAAkD,CAAC;AAS7E,eAAO,MAAM,wBAAwB,GACnC,WAAW,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EACxC,WAAW,IAAI,EAAE,EACjB,KAAK,IAAI,CAAC,UAAU,CAAC,6EAMtB,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;GAK9B,CAAC"}
|
|
@@ -3,12 +3,12 @@ const sortLabels = {
|
|
|
3
3
|
asc: 'Ascending',
|
|
4
4
|
desc: 'Descending'
|
|
5
5
|
};
|
|
6
|
-
export const getValidSortColumnsInRow = (
|
|
6
|
+
export const getValidSortColumnsInRow = (fieldDefs, sortItems, id) => {
|
|
7
7
|
const existingSortItemsId = sortItems.map(s => s.columnId);
|
|
8
8
|
const index = id ? existingSortItemsId.indexOf(id) : -1;
|
|
9
9
|
if (index !== -1)
|
|
10
10
|
existingSortItemsId.splice(index, 1);
|
|
11
|
-
return
|
|
11
|
+
return fieldDefs.filter(c => c.sort && !existingSortItemsId.includes(c.id));
|
|
12
12
|
};
|
|
13
13
|
export const getValidSortOrders = () => {
|
|
14
14
|
return NonNullSortActions.map(o => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,UAAU,GAA8B;IAC5C,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../Core/Components/Toolbar/hooks/useSort/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,UAAU,GAA8B;IAC5C,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,SAAwC,EACxC,SAAiB,EACjB,EAAqB,EACrB,EAAE;IACF,MAAM,mBAAmB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACvD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClC,EAAE,EAAE,CAAC,CAAC,QAAQ;QACd,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;KAC9B,CAAC,CAAC,CAAC;AACN,CAAC,CAAC","sourcesContent":["import type { RsCoreTypes } from 'pega-repeating-structures-core';\nimport type { Sort } from 'pega-repeating-structures-core/types/State.types';\n\nimport { NonNullSortActions } from '../../../../constants';\n\nconst sortLabels: { [key: string]: string } = {\n asc: 'Ascending',\n desc: 'Descending'\n};\n\nexport const getValidSortColumnsInRow = (\n fieldDefs: RsCoreTypes.Meta['fieldDefs'],\n sortItems: Sort[],\n id?: Sort['columnId']\n) => {\n const existingSortItemsId = sortItems.map(s => s.columnId);\n const index = id ? existingSortItemsId.indexOf(id) : -1;\n if (index !== -1) existingSortItemsId.splice(index, 1);\n return fieldDefs.filter(c => c.sort && !existingSortItemsId.includes(c.id));\n};\n\nexport const getValidSortOrders = () => {\n return NonNullSortActions.map(o => ({\n id: o.actionId,\n label: sortLabels[o.actionId]\n }));\n};\n"]}
|
|
@@ -47,5 +47,5 @@ export default getMenuItemsFromColumns;
|
|
|
47
47
|
}
|
|
48
48
|
]
|
|
49
49
|
*/
|
|
50
|
-
declare function getMenuItemsFromColumns(
|
|
50
|
+
declare function getMenuItemsFromColumns(fieldDefs: any, fieldProp: string, selectedField: string, defaultType?: "text"): array;
|
|
51
51
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/utils/utils.js"],"names":[],"mappings":";AAkCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CE;AAEF,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/utils/utils.js"],"names":[],"mappings":";AAkCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CE;AAEF,oEA7CW,MAAM,iBACN,MAAM,yBACJ,KAAK,CAwEjB"}
|
|
@@ -75,14 +75,13 @@ const prepareCategoryItems = (categories, items) => {
|
|
|
75
75
|
}
|
|
76
76
|
]
|
|
77
77
|
*/
|
|
78
|
-
function getMenuItemsFromColumns(
|
|
78
|
+
function getMenuItemsFromColumns(fieldDefs, fieldProp, selectedField, defaultType = FieldType.TEXT) {
|
|
79
79
|
const items = [];
|
|
80
80
|
let categoryArr = [];
|
|
81
|
-
if (!
|
|
81
|
+
if (!fieldDefs) {
|
|
82
82
|
return items;
|
|
83
83
|
}
|
|
84
|
-
|
|
85
|
-
const { field } = column;
|
|
84
|
+
fieldDefs.forEach(field => {
|
|
86
85
|
const leafCategoryItem = {
|
|
87
86
|
id: field[fieldProp],
|
|
88
87
|
primary: field.label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/utils/utils.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE;IACnC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAC,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IAC7C,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;IACjD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QAE3F,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACvE,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,eAAe,GAAG,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,mBAAmB,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CE;AAEF,SAAS,uBAAuB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../Core/Components/Toolbar/utils/utils.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE;IACnC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAC,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IAC7C,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;IACjD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QAE3F,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACvE,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,eAAe,GAAG,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,mBAAmB,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CE;AAEF,SAAS,uBAAuB,CAC9B,SAAS,EACT,SAAS,EACT,aAAa,EACb,WAAW,GAAG,SAAS,CAAC,IAAI;IAE5B,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,MAAM,gBAAgB,GAAG;YACvB,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,KAAK,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC;YAChE,QAAQ,EAAE,KAAK,CAAC,EAAE,KAAK,aAAa;SACrC,CAAC;QAEF,WAAW,GAAG,KAAK,CAAC;QACpB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAClE,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AACD,eAAe,uBAAuB,CAAC","sourcesContent":["import { FieldType } from 'pega-repeating-structures-core';\n\nimport { typeMap } from '../../Filters/config';\n\nconst getCategoryItems = (id, arr) => {\n for (const obj of arr) {\n if (obj.id === id && obj.items) {\n return obj.items;\n }\n }\n};\n\nconst prepareCategoryInfo = (id, label, arr) => {\n const items = [];\n arr.push({ id, primary: label, items });\n return items;\n};\n\nconst prepareCategoryItems = (categories, items) => {\n let curPath = '';\n let leafCategoryArr = items;\n for (let i = 0; i < categories.length; i += 1) {\n curPath = i > 0 ? `${curPath}.${categories[i].label}-${i}` : `${categories[i].label}-${i}`;\n\n const existingCategoryArr = getCategoryItems(curPath, leafCategoryArr);\n if (!existingCategoryArr) {\n leafCategoryArr = prepareCategoryInfo(curPath, categories[i].label, leafCategoryArr);\n } else {\n leafCategoryArr = existingCategoryArr;\n }\n }\n return leafCategoryArr;\n};\n\n/**\n * returns copy of embedded property's leafNode model from store or null\n * @function getMenuItemsFromColumns\n * @param {array} columns columns array containing each column object\n * @param {string} fieldProp value for id prop(either 'name' of 'id')\n * @param {string} selectedField field which is already selected as part of sort/group/filter action\n * @returns {array} returns an array of objects where each object is one category\n *\n * @example <caption>Example for getMenuItemsFromColumns.</caption>\n * We have two fields named ID and Priority where ID does not belong to any category and priority belongs to Bugs class category\n *\n * columns example(fieldDefs) :\n * [\n * {\n filter: true,\n type: 'text',\n name: 'pyID',\n label: 'ID',\n id: '2',\n category: [{ label: 'Profile' }],\n sort: true\n },\n {\n type: 'text',\n name: 'pyLabel',\n label: 'Name',\n id: '3',\n category: [{ label: 'Profile' }],\n sort: true\n }\n ]\n *\n * getMenuItemsFromColumns(columns) returns :\n * [\n {\n id: 'ID',\n primary: ID,\n items: undefined,\n selected: undefined\n },\n {\n id: ‘Bugs Class’,\n primary: ‘Bugs Class’,\n selected: undefined,\n items: [ {id: ‘Priority', primary: ‘Priority’, selected: true, items: undefined}]\n }\n ]\n*/\n\nfunction getMenuItemsFromColumns(\n fieldDefs,\n fieldProp,\n selectedField,\n defaultType = FieldType.TEXT\n) {\n const items = [];\n let categoryArr = [];\n\n if (!fieldDefs) {\n return items;\n }\n\n fieldDefs.forEach(field => {\n const leafCategoryItem = {\n id: field[fieldProp],\n primary: field.label,\n type: typeMap[field.type?.toLowerCase()] || typeMap[defaultType],\n selected: field.id === selectedField\n };\n\n categoryArr = items;\n if (field.category) {\n categoryArr = prepareCategoryItems(field.category, categoryArr);\n }\n categoryArr.push(leafCategoryItem);\n });\n\n return items;\n}\nexport default getMenuItemsFromColumns;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRepeat.d.ts","sourceRoot":"","sources":["../../../Core/Hooks/useRepeat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG5F,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAK1F;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,uGAAuG;IACvG,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;IACnC,8GAA8G;IAC9G,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC;IAC9B,+GAA+G;IAC/G,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC;;;;;SAKK;IACL,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;CACnE;AAOD;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,IAAI,EACJ,UAAU,EACV,OAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,WAAW,EACX,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,uBAAuB,EACxB,EAAE,wBAAwB,GAAG;IAAE,uBAAuB,EAAE,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;CAAE,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"useRepeat.d.ts","sourceRoot":"","sources":["../../../Core/Hooks/useRepeat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG5F,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAK1F;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,uGAAuG;IACvG,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;IACnC,8GAA8G;IAC9G,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC;IAC9B,+GAA+G;IAC/G,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC;;;;;SAKK;IACL,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;CACnE;AAOD;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,IAAI,EACJ,UAAU,EACV,OAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,WAAW,EACX,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,uBAAuB,EACxB,EAAE,wBAAwB,GAAG;IAAE,uBAAuB,EAAE,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;CAAE,GAAG,QAAQ,CAgTjG"}
|
|
@@ -73,6 +73,7 @@ export default function useRepeat({ meta, apiContext, presets = [], persistedInf
|
|
|
73
73
|
};
|
|
74
74
|
/** Compare new payload with current state to avoid unnecessary rerenders */
|
|
75
75
|
// TODO: create separate api for setting visibility state for OOTB columns.
|
|
76
|
+
// TODO: remove setHiddenColumns API when we deprecate hiddenColumns in favor of visibleColumns only.
|
|
76
77
|
const setHiddenColumns = useCallback((hiddenColumns, ootbColumns) => {
|
|
77
78
|
if (hiddenColumns &&
|
|
78
79
|
!ootbColumns &&
|
|
@@ -85,6 +86,14 @@ export default function useRepeat({ meta, apiContext, presets = [], persistedInf
|
|
|
85
86
|
}
|
|
86
87
|
instance.getView().type.applyHiddenColumns(hiddenColumns, ootbColumns);
|
|
87
88
|
}, [instance]);
|
|
89
|
+
const setVisibleColumns = useCallback((visibleColumns) => {
|
|
90
|
+
if (visibleColumns &&
|
|
91
|
+
visibleColumns.length === instance.getView().state.visibleColumns?.length &&
|
|
92
|
+
visibleColumns.every(id => instance.getView().state.visibleColumns?.includes(id))) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
instance.getView().type.applyVisibleColumns(visibleColumns);
|
|
96
|
+
}, [instance]);
|
|
88
97
|
const setColumnOrder = useCallback((colOrder) => {
|
|
89
98
|
if (colOrder && deepEqual(colOrder, instance.getView().state.colOrder)) {
|
|
90
99
|
return;
|
|
@@ -159,6 +168,7 @@ export default function useRepeat({ meta, apiContext, presets = [], persistedInf
|
|
|
159
168
|
deepEqual(conditionalStyleFormats, instance.getView().state.conditionalStyleFormats)) {
|
|
160
169
|
return;
|
|
161
170
|
}
|
|
171
|
+
// TODO: below sanitization should be handled in rs core.
|
|
162
172
|
const sanitizedFormats = sanitizeConditionalStyleFormats(conditionalStyleFormats, fieldDefs);
|
|
163
173
|
instance.getView().type.setConditionalStyleFormats(sanitizedFormats);
|
|
164
174
|
}, []);
|
|
@@ -175,7 +185,6 @@ export default function useRepeat({ meta, apiContext, presets = [], persistedInf
|
|
|
175
185
|
?.removeFormatter();
|
|
176
186
|
}, [instance]);
|
|
177
187
|
// TODO: Move the RsCoreTypes.RsApi's to separate file, maybe useRsApi.ts
|
|
178
|
-
// TODO:
|
|
179
188
|
useImperativeHandle(repeatComponentInstance, () => ({
|
|
180
189
|
refreshView: instance.getView().type.forceRefresh,
|
|
181
190
|
setRecordCount: instance.getView().type.setRecordCount,
|
|
@@ -186,6 +195,9 @@ export default function useRepeat({ meta, apiContext, presets = [], persistedInf
|
|
|
186
195
|
? setHiddenColumns
|
|
187
196
|
: undefined,
|
|
188
197
|
setColumnOrder: instance.getView().meta.reorderFields ? setColumnOrder : undefined,
|
|
198
|
+
setVisibleColumns: instance.getView().meta.toggleFieldVisibility
|
|
199
|
+
? (visibleColumns) => setVisibleColumns(visibleColumns)
|
|
200
|
+
: undefined,
|
|
189
201
|
setFilter,
|
|
190
202
|
setSorting,
|
|
191
203
|
setAliases,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRepeat.js","sourceRoot":"","sources":["../../../Core/Hooks/useRepeat.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useCallback, useRef, useImperativeHandle, type RefObject } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\n\nimport {\n initializeRsCore,\n rowDragDropColumnMeta,\n sanitizeConditionalStyleFormats,\n type RsCoreTypes\n} from 'pega-repeating-structures-core';\n\nimport { deepEqual, isRowReorderFieldEnabled } from '../Utils';\nimport type { RepeatingStructuresProps } from '../../types/RepeatingStructuresBoot.types';\n\nimport useThunkReducer from './useThunkReducer';\nimport useTranslate from './useTranslate';\n\n/**\n * Represents the instance of a repeating structure, containing methods and properties\n * to interact with it.\n */\nexport interface Instance {\n /** A unique identifier for the repeating structure instance. */\n rsID: string;\n /** The API context for interacting with the repeating structure. See {@link RsCoreTypes.ApiContext} */\n apiContext: RsCoreTypes.ApiContext;\n /** The core API for managing the repeating structure's state and behavior. See {@link RsCoreTypes.RsCore}. */\n rsCoreApi: RsCoreTypes.RsCore;\n /** A method to retrieve the current view of the repeating structure. See {@link RsCoreTypes.RsCore.getView} */\n getView: RsCoreTypes.RsCore['getView'];\n /**\n * @deprecated This set of methods is deprecated and will be removed in future versions.\n * Use methods exposed using repeatComponentInstance instead.\n *\n * A set of APIs to interact with the repeating structure. See {@link RsCoreTypes.RsApi}.\n * */\n api: Pick<RsCoreTypes.RsApi, 'dispatchAction' | 'setRecordCount'>;\n}\n\nfunction getRsCoreApi(instance: Instance, opt: RsCoreTypes.RsCoreInitArgs) {\n if (instance.rsCoreApi) return instance.rsCoreApi;\n return initializeRsCore(opt);\n}\n\n/**\n * A custom React hook to manage the lifecycle of repeating structures using `RsCore` library.\n * It provides an RsCoreTypes.RsApi for interacting with the view.\n * Provide additional callbacks to API Context via `addCallbacks` method.\n *\n * @param props - RepeatingStructuresProps required to initialize and manage the repeating structures.\n * @see {@link RepeatingStructuresProps}\n * @returns A singleton instance object that contains methods to interact with repeating structure.\n * @see {@link Instance}\n */\nexport default function useRepeat({\n meta,\n apiContext,\n presets = [],\n persistedInfo,\n onRowClickAction,\n renderFactory,\n renderFormatterTypeMap,\n formatters,\n onViewReady,\n mode,\n toolBarOptions,\n styleFormats,\n repeatComponentInstance\n}: RepeatingStructuresProps & { repeatComponentInstance: RefObject<RsCoreTypes.RsApi> }): Instance {\n // Create the repeat instance\n const instance: Instance = useRef<Instance>({ rsID: uuidV4() } as Instance).current;\n\n // Normalize metadata everytime as you might have added custom column.\n // TODO: refactor this to normalizeMeta when required.\n\n const [, dispatch] = useThunkReducer();\n // FIXME: remove renderFactory from RsApi params\n\n type RsCoreTranslationKeys = keyof NonNullable<RsCoreTypes.RsCoreInitArgs['translations']>;\n const rsCoreTranslationKeys: RsCoreTranslationKeys[] = [\n 'created_view',\n 'created_view_with_default',\n 'deleted_view',\n 'saved_changes',\n 'saved_changes_with_default',\n 'view_marked_app_default',\n 'view_marked_default',\n 'view_navigation_instructions',\n 'Actions',\n 'Select',\n 'Reorder',\n 'Error',\n 'required'\n ];\n\n const [translate] = useTranslate();\n const rsCoreTranslationValues = translate(rsCoreTranslationKeys);\n const rsCoreTranslations = Object.fromEntries(\n rsCoreTranslationKeys.map((key, index) => [key, rsCoreTranslationValues[index]])\n );\n\n Object.assign(instance, {\n apiContext,\n rsCoreApi: getRsCoreApi(instance, {\n formatters,\n renderFormatterTypeMap,\n toolBarOptions,\n meta,\n onRowClickAction,\n apiContext,\n presets,\n persistedInfo,\n dispatch,\n mode,\n renderFactory,\n styleFormats,\n translations: rsCoreTranslations\n })\n });\n\n Object.assign(instance, {\n getView: instance.rsCoreApi.getView\n });\n\n // TODO: enrich this to take meta as well\n instance.rsCoreApi.updateInitArgs({ apiContext, styleFormats });\n\n instance.api = {\n ...(instance.api || {}),\n setRecordCount: instance.getView().type.setRecordCount,\n dispatchAction: instance.getView().type.dispatchAction\n };\n\n /** Compare new payload with current state to avoid unnecessary rerenders */\n // TODO: create separate api for setting visibility state for OOTB columns.\n const setHiddenColumns = useCallback(\n (hiddenColumns: string[], ootbColumns?: { dragHandle?: boolean }) => {\n if (\n hiddenColumns &&\n !ootbColumns &&\n hiddenColumns.length === instance.getView().state.hiddenColumns?.length &&\n hiddenColumns.every(id => instance.getView().state.hiddenColumns?.includes(id))\n ) {\n return;\n }\n if (ootbColumns?.dragHandle && !isRowReorderFieldEnabled(instance.getView().meta)) {\n delete ootbColumns.dragHandle;\n }\n instance.getView().type.applyHiddenColumns(hiddenColumns, ootbColumns);\n },\n [instance]\n );\n\n const setColumnOrder: RsCoreTypes.RsApi['setColumnOrder'] = useCallback(\n (colOrder: string[]) => {\n if (colOrder && deepEqual(colOrder, instance.getView().state.colOrder)) {\n return;\n }\n instance.getView().type.applyOrder(colOrder);\n },\n [instance]\n );\n\n const setAggregations: RsCoreTypes.RsApi['setAggregations'] = useCallback(\n (agg: RsCoreTypes.State['aggregationInfo']) => {\n if (agg && deepEqual(agg, instance.getView().state.aggregationInfo)) {\n return;\n }\n if (agg) instance.getView().type.applyAggregations(agg);\n },\n [instance]\n );\n\n const setFilter: RsCoreTypes.RsApi['setFilter'] = useCallback(\n newFilter => {\n if (newFilter && deepEqual(newFilter, instance.getView().state.filterExpression)) {\n return;\n }\n instance.getView().type.applyFilter({ filterExp: newFilter });\n },\n [instance]\n );\n\n const setAliases: RsCoreTypes.RsApi['setAliases'] = useCallback(\n aliases => {\n if (!aliases) {\n return;\n }\n instance.getView().type.applyAliases({ aliases });\n },\n [instance]\n );\n\n const setSorting: RsCoreTypes.RsApi['setSorting'] = useCallback(\n sortingOrder => {\n if (sortingOrder && deepEqual(sortingOrder, instance.getView().state.sortingOrder)) {\n return;\n }\n instance.getView().type.applySorting(sortingOrder);\n },\n [instance]\n );\n\n const setGrouping: RsCoreTypes.RsApi['setGrouping'] = useCallback(\n (groups: RsCoreTypes.Group[]) => {\n if (groups && deepEqual(groups, instance.getView().state.groups)) {\n return;\n }\n instance.getView().type.applyGrouping(groups);\n },\n [instance]\n );\n\n const setRowReorderFieldVisibility: RsCoreTypes.RsApi['setRowReorderFieldVisibility'] =\n useCallback(\n visibility => {\n if (isRowReorderFieldEnabled(instance.getView().meta)) {\n instance\n .getView()\n .type.updateColumnsVisibility({ [rowDragDropColumnMeta.field.id]: visibility });\n }\n },\n [instance]\n );\n\n const updateColumnsVisibility: RsCoreTypes.RsApi['updateColumnsVisibility'] = useCallback(\n columns => {\n const fieldDefs = instance.getView().meta.fieldDefs.map(field => field.id);\n const columnsToBeToggled: Record<string, boolean> = {};\n Object.keys(columns).forEach(column => {\n if (fieldDefs.includes(column)) {\n columnsToBeToggled[column] = columns[column];\n }\n });\n if (Object.keys(columnsToBeToggled).length) {\n instance.getView().type.updateColumnsVisibility(columnsToBeToggled);\n }\n },\n [instance]\n );\n\n const getActiveViewInfo = useCallback(() => {\n const {\n state: { personalization }\n } = instance.getView();\n\n const activePersonalization = personalization?.active;\n const activePersonalizationName = activePersonalization\n ? personalization?.allPersonalizations?.[activePersonalization]?.name\n : undefined;\n return {\n id: activePersonalization,\n name: activePersonalizationName,\n isDirty: !!personalization?.dirty\n };\n }, [instance]);\n\n const setConditionalStyleFormats: RsCoreTypes.RsApi['setConditionalStyleFormats'] = useCallback(\n conditionalStyleFormats => {\n const {\n meta: { fieldDefs }\n } = instance.getView();\n\n if (\n conditionalStyleFormats &&\n deepEqual(conditionalStyleFormats, instance.getView().state.conditionalStyleFormats)\n ) {\n return;\n }\n\n const sanitizedFormats = sanitizeConditionalStyleFormats(conditionalStyleFormats, fieldDefs);\n instance.getView().type.setConditionalStyleFormats(sanitizedFormats);\n },\n []\n );\n\n const setRenderFormatter: RsCoreTypes.RsApi['setRenderFormatter'] = useCallback(\n (columnId, formatter) => {\n instance\n .getView()\n .columns?.find(c => c.field.id === columnId)\n ?.applyFormatter(formatter);\n },\n [instance]\n );\n\n const removeRenderFormatter: RsCoreTypes.RsApi['removeRenderFormatter'] = useCallback(\n columnId => {\n instance\n .getView()\n .columns?.find(c => c.field.id === columnId)\n ?.removeFormatter();\n },\n [instance]\n );\n\n // TODO: Move the RsCoreTypes.RsApi's to separate file, maybe useRsApi.ts\n // TODO:\n useImperativeHandle(\n repeatComponentInstance,\n () => ({\n refreshView: instance.getView().type.forceRefresh,\n setRecordCount: instance.getView().type.setRecordCount,\n dispatchAction: instance.getView().type.dispatchAction,\n getActiveViewInfo,\n /** Only expose below APIs when those features are enabled */\n setHiddenColumns: instance.getView().meta.toggleFieldVisibility\n ? setHiddenColumns\n : undefined,\n setColumnOrder: instance.getView().meta.reorderFields ? setColumnOrder : undefined,\n setFilter,\n setSorting,\n setAliases,\n setGrouping: instance.getView().meta.grouping ? setGrouping : undefined,\n setAggregations,\n setRenderFormatter,\n removeRenderFormatter,\n setRowReorderFieldVisibility,\n updateColumnsVisibility,\n setConditionalStyleFormats\n }),\n\n []\n );\n\n // When ever component mounts, do this after first render of component\n useEffect(() => {\n instance.getView().type.doBootstrap();\n if (onViewReady) onViewReady(instance.api);\n if (instance.apiContext.addCallbacks && repeatComponentInstance?.current) {\n // add instance APIs as callbacks <setRecordCount> for push communication from Nebula to Client\n instance.apiContext.addCallbacks({\n ...repeatComponentInstance.current,\n forceRefresh: instance.getView().type.forceRefresh\n });\n }\n\n instance.apiContext.setRsID?.(instance.getView().rsID);\n\n instance.rsCoreApi.notifyViewEvent().mount();\n return () => {\n instance.rsCoreApi.notifyViewEvent().unmount();\n // Marking it as ts-ignore. Making these objects take null will increase conditional blocks in code.\n // @ts-ignore\n instance.rsCoreApi = null;\n // @ts-ignore\n instance.getView = null;\n };\n }, [instance]);\n\n useEffect(() => {\n instance.rsCoreApi.notifyViewEvent().afterRender();\n }, [instance, instance.getView().state]);\n\n return instance;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"useRepeat.js","sourceRoot":"","sources":["../../../Core/Hooks/useRepeat.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useCallback, useRef, useImperativeHandle, type RefObject } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\n\nimport {\n initializeRsCore,\n rowDragDropColumnMeta,\n sanitizeConditionalStyleFormats,\n type RsCoreTypes\n} from 'pega-repeating-structures-core';\n\nimport { deepEqual, isRowReorderFieldEnabled } from '../Utils';\nimport type { RepeatingStructuresProps } from '../../types/RepeatingStructuresBoot.types';\n\nimport useThunkReducer from './useThunkReducer';\nimport useTranslate from './useTranslate';\n\n/**\n * Represents the instance of a repeating structure, containing methods and properties\n * to interact with it.\n */\nexport interface Instance {\n /** A unique identifier for the repeating structure instance. */\n rsID: string;\n /** The API context for interacting with the repeating structure. See {@link RsCoreTypes.ApiContext} */\n apiContext: RsCoreTypes.ApiContext;\n /** The core API for managing the repeating structure's state and behavior. See {@link RsCoreTypes.RsCore}. */\n rsCoreApi: RsCoreTypes.RsCore;\n /** A method to retrieve the current view of the repeating structure. See {@link RsCoreTypes.RsCore.getView} */\n getView: RsCoreTypes.RsCore['getView'];\n /**\n * @deprecated This set of methods is deprecated and will be removed in future versions.\n * Use methods exposed using repeatComponentInstance instead.\n *\n * A set of APIs to interact with the repeating structure. See {@link RsCoreTypes.RsApi}.\n * */\n api: Pick<RsCoreTypes.RsApi, 'dispatchAction' | 'setRecordCount'>;\n}\n\nfunction getRsCoreApi(instance: Instance, opt: RsCoreTypes.RsCoreInitArgs) {\n if (instance.rsCoreApi) return instance.rsCoreApi;\n return initializeRsCore(opt);\n}\n\n/**\n * A custom React hook to manage the lifecycle of repeating structures using `RsCore` library.\n * It provides an RsCoreTypes.RsApi for interacting with the view.\n * Provide additional callbacks to API Context via `addCallbacks` method.\n *\n * @param props - RepeatingStructuresProps required to initialize and manage the repeating structures.\n * @see {@link RepeatingStructuresProps}\n * @returns A singleton instance object that contains methods to interact with repeating structure.\n * @see {@link Instance}\n */\nexport default function useRepeat({\n meta,\n apiContext,\n presets = [],\n persistedInfo,\n onRowClickAction,\n renderFactory,\n renderFormatterTypeMap,\n formatters,\n onViewReady,\n mode,\n toolBarOptions,\n styleFormats,\n repeatComponentInstance\n}: RepeatingStructuresProps & { repeatComponentInstance: RefObject<RsCoreTypes.RsApi> }): Instance {\n // Create the repeat instance\n const instance: Instance = useRef<Instance>({ rsID: uuidV4() } as Instance).current;\n\n // Normalize metadata everytime as you might have added custom column.\n // TODO: refactor this to normalizeMeta when required.\n\n const [, dispatch] = useThunkReducer();\n // FIXME: remove renderFactory from RsApi params\n\n type RsCoreTranslationKeys = keyof NonNullable<RsCoreTypes.RsCoreInitArgs['translations']>;\n const rsCoreTranslationKeys: RsCoreTranslationKeys[] = [\n 'created_view',\n 'created_view_with_default',\n 'deleted_view',\n 'saved_changes',\n 'saved_changes_with_default',\n 'view_marked_app_default',\n 'view_marked_default',\n 'view_navigation_instructions',\n 'Actions',\n 'Select',\n 'Reorder',\n 'Error',\n 'required'\n ];\n\n const [translate] = useTranslate();\n const rsCoreTranslationValues = translate(rsCoreTranslationKeys);\n const rsCoreTranslations = Object.fromEntries(\n rsCoreTranslationKeys.map((key, index) => [key, rsCoreTranslationValues[index]])\n );\n\n Object.assign(instance, {\n apiContext,\n rsCoreApi: getRsCoreApi(instance, {\n formatters,\n renderFormatterTypeMap,\n toolBarOptions,\n meta,\n onRowClickAction,\n apiContext,\n presets,\n persistedInfo,\n dispatch,\n mode,\n renderFactory,\n styleFormats,\n translations: rsCoreTranslations\n })\n });\n\n Object.assign(instance, {\n getView: instance.rsCoreApi.getView\n });\n\n // TODO: enrich this to take meta as well\n instance.rsCoreApi.updateInitArgs({ apiContext, styleFormats });\n\n instance.api = {\n ...(instance.api || {}),\n setRecordCount: instance.getView().type.setRecordCount,\n dispatchAction: instance.getView().type.dispatchAction\n };\n\n /** Compare new payload with current state to avoid unnecessary rerenders */\n // TODO: create separate api for setting visibility state for OOTB columns.\n // TODO: remove setHiddenColumns API when we deprecate hiddenColumns in favor of visibleColumns only.\n const setHiddenColumns = useCallback(\n (hiddenColumns: string[], ootbColumns?: { dragHandle?: boolean }) => {\n if (\n hiddenColumns &&\n !ootbColumns &&\n hiddenColumns.length === instance.getView().state.hiddenColumns?.length &&\n hiddenColumns.every(id => instance.getView().state.hiddenColumns?.includes(id))\n ) {\n return;\n }\n if (ootbColumns?.dragHandle && !isRowReorderFieldEnabled(instance.getView().meta)) {\n delete ootbColumns.dragHandle;\n }\n instance.getView().type.applyHiddenColumns(hiddenColumns, ootbColumns);\n },\n [instance]\n );\n\n const setVisibleColumns = useCallback(\n (visibleColumns: string[]) => {\n if (\n visibleColumns &&\n visibleColumns.length === instance.getView().state.visibleColumns?.length &&\n visibleColumns.every(id => instance.getView().state.visibleColumns?.includes(id))\n ) {\n return;\n }\n instance.getView().type.applyVisibleColumns(visibleColumns);\n },\n [instance]\n );\n\n const setColumnOrder: RsCoreTypes.RsApi['setColumnOrder'] = useCallback(\n (colOrder: string[]) => {\n if (colOrder && deepEqual(colOrder, instance.getView().state.colOrder)) {\n return;\n }\n instance.getView().type.applyOrder(colOrder);\n },\n [instance]\n );\n\n const setAggregations: RsCoreTypes.RsApi['setAggregations'] = useCallback(\n (agg: RsCoreTypes.State['aggregationInfo']) => {\n if (agg && deepEqual(agg, instance.getView().state.aggregationInfo)) {\n return;\n }\n if (agg) instance.getView().type.applyAggregations(agg);\n },\n [instance]\n );\n\n const setFilter: RsCoreTypes.RsApi['setFilter'] = useCallback(\n newFilter => {\n if (newFilter && deepEqual(newFilter, instance.getView().state.filterExpression)) {\n return;\n }\n instance.getView().type.applyFilter({ filterExp: newFilter });\n },\n [instance]\n );\n\n const setAliases: RsCoreTypes.RsApi['setAliases'] = useCallback(\n aliases => {\n if (!aliases) {\n return;\n }\n instance.getView().type.applyAliases({ aliases });\n },\n [instance]\n );\n\n const setSorting: RsCoreTypes.RsApi['setSorting'] = useCallback(\n sortingOrder => {\n if (sortingOrder && deepEqual(sortingOrder, instance.getView().state.sortingOrder)) {\n return;\n }\n instance.getView().type.applySorting(sortingOrder);\n },\n [instance]\n );\n\n const setGrouping: RsCoreTypes.RsApi['setGrouping'] = useCallback(\n (groups: RsCoreTypes.Group[]) => {\n if (groups && deepEqual(groups, instance.getView().state.groups)) {\n return;\n }\n instance.getView().type.applyGrouping(groups);\n },\n [instance]\n );\n\n const setRowReorderFieldVisibility: RsCoreTypes.RsApi['setRowReorderFieldVisibility'] =\n useCallback(\n visibility => {\n if (isRowReorderFieldEnabled(instance.getView().meta)) {\n instance\n .getView()\n .type.updateColumnsVisibility({ [rowDragDropColumnMeta.field.id]: visibility });\n }\n },\n [instance]\n );\n\n const updateColumnsVisibility: RsCoreTypes.RsApi['updateColumnsVisibility'] = useCallback(\n columns => {\n const fieldDefs = instance.getView().meta.fieldDefs.map(field => field.id);\n const columnsToBeToggled: Record<string, boolean> = {};\n Object.keys(columns).forEach(column => {\n if (fieldDefs.includes(column)) {\n columnsToBeToggled[column] = columns[column];\n }\n });\n if (Object.keys(columnsToBeToggled).length) {\n instance.getView().type.updateColumnsVisibility(columnsToBeToggled);\n }\n },\n [instance]\n );\n\n const getActiveViewInfo = useCallback(() => {\n const {\n state: { personalization }\n } = instance.getView();\n\n const activePersonalization = personalization?.active;\n const activePersonalizationName = activePersonalization\n ? personalization?.allPersonalizations?.[activePersonalization]?.name\n : undefined;\n return {\n id: activePersonalization,\n name: activePersonalizationName,\n isDirty: !!personalization?.dirty\n };\n }, [instance]);\n\n const setConditionalStyleFormats: RsCoreTypes.RsApi['setConditionalStyleFormats'] = useCallback(\n conditionalStyleFormats => {\n const {\n meta: { fieldDefs }\n } = instance.getView();\n\n if (\n conditionalStyleFormats &&\n deepEqual(conditionalStyleFormats, instance.getView().state.conditionalStyleFormats)\n ) {\n return;\n }\n // TODO: below sanitization should be handled in rs core.\n const sanitizedFormats = sanitizeConditionalStyleFormats(conditionalStyleFormats, fieldDefs);\n instance.getView().type.setConditionalStyleFormats(sanitizedFormats);\n },\n []\n );\n\n const setRenderFormatter: RsCoreTypes.RsApi['setRenderFormatter'] = useCallback(\n (columnId, formatter) => {\n instance\n .getView()\n .columns?.find(c => c.field.id === columnId)\n ?.applyFormatter(formatter);\n },\n [instance]\n );\n\n const removeRenderFormatter: RsCoreTypes.RsApi['removeRenderFormatter'] = useCallback(\n columnId => {\n instance\n .getView()\n .columns?.find(c => c.field.id === columnId)\n ?.removeFormatter();\n },\n [instance]\n );\n\n // TODO: Move the RsCoreTypes.RsApi's to separate file, maybe useRsApi.ts\n useImperativeHandle(\n repeatComponentInstance,\n () => ({\n refreshView: instance.getView().type.forceRefresh,\n setRecordCount: instance.getView().type.setRecordCount,\n dispatchAction: instance.getView().type.dispatchAction,\n getActiveViewInfo,\n /** Only expose below APIs when those features are enabled */\n setHiddenColumns: instance.getView().meta.toggleFieldVisibility\n ? setHiddenColumns\n : undefined,\n setColumnOrder: instance.getView().meta.reorderFields ? setColumnOrder : undefined,\n setVisibleColumns: instance.getView().meta.toggleFieldVisibility\n ? (visibleColumns: string[]) => setVisibleColumns(visibleColumns)\n : undefined,\n setFilter,\n setSorting,\n setAliases,\n setGrouping: instance.getView().meta.grouping ? setGrouping : undefined,\n setAggregations,\n setRenderFormatter,\n removeRenderFormatter,\n setRowReorderFieldVisibility,\n updateColumnsVisibility,\n setConditionalStyleFormats\n }),\n\n []\n );\n\n // When ever component mounts, do this after first render of component\n useEffect(() => {\n instance.getView().type.doBootstrap();\n if (onViewReady) onViewReady(instance.api);\n if (instance.apiContext.addCallbacks && repeatComponentInstance?.current) {\n // add instance APIs as callbacks <setRecordCount> for push communication from Nebula to Client\n instance.apiContext.addCallbacks({\n ...repeatComponentInstance.current,\n forceRefresh: instance.getView().type.forceRefresh\n });\n }\n\n instance.apiContext.setRsID?.(instance.getView().rsID);\n\n instance.rsCoreApi.notifyViewEvent().mount();\n return () => {\n instance.rsCoreApi.notifyViewEvent().unmount();\n // Marking it as ts-ignore. Making these objects take null will increase conditional blocks in code.\n // @ts-ignore\n instance.rsCoreApi = null;\n // @ts-ignore\n instance.getView = null;\n };\n }, [instance]);\n\n useEffect(() => {\n instance.rsCoreApi.notifyViewEvent().afterRender();\n }, [instance, instance.getView().state]);\n\n return instance;\n}\n"]}
|
|
@@ -18,6 +18,7 @@ export declare const fieldDefsMock: ({
|
|
|
18
18
|
resize: boolean;
|
|
19
19
|
show: boolean;
|
|
20
20
|
sort: boolean;
|
|
21
|
+
grouping: boolean;
|
|
21
22
|
category?: undefined;
|
|
22
23
|
showCategoryInHeaderLabel?: undefined;
|
|
23
24
|
filter?: undefined;
|
|
@@ -30,6 +31,7 @@ export declare const fieldDefsMock: ({
|
|
|
30
31
|
resize: boolean;
|
|
31
32
|
show: boolean;
|
|
32
33
|
sort: boolean;
|
|
34
|
+
grouping: boolean;
|
|
33
35
|
minWidth?: undefined;
|
|
34
36
|
category?: undefined;
|
|
35
37
|
showCategoryInHeaderLabel?: undefined;
|
|
@@ -46,6 +48,7 @@ export declare const fieldDefsMock: ({
|
|
|
46
48
|
label: string;
|
|
47
49
|
}[];
|
|
48
50
|
showCategoryInHeaderLabel: boolean;
|
|
51
|
+
grouping: boolean;
|
|
49
52
|
minWidth?: undefined;
|
|
50
53
|
sort?: undefined;
|
|
51
54
|
filter?: undefined;
|
|
@@ -57,6 +60,7 @@ export declare const fieldDefsMock: ({
|
|
|
57
60
|
id: string;
|
|
58
61
|
filter: boolean;
|
|
59
62
|
show: boolean;
|
|
63
|
+
grouping: boolean;
|
|
60
64
|
minWidth?: undefined;
|
|
61
65
|
resize?: undefined;
|
|
62
66
|
sort?: undefined;
|
|
@@ -69,6 +73,7 @@ export declare const fieldDefsMock: ({
|
|
|
69
73
|
width: number;
|
|
70
74
|
id: string;
|
|
71
75
|
show: boolean;
|
|
76
|
+
grouping: boolean;
|
|
72
77
|
minWidth?: undefined;
|
|
73
78
|
resize?: undefined;
|
|
74
79
|
sort?: undefined;
|
|
@@ -84,6 +89,7 @@ export declare const fieldDefsMock: ({
|
|
|
84
89
|
resize: boolean;
|
|
85
90
|
filter: boolean;
|
|
86
91
|
show: boolean;
|
|
92
|
+
grouping: boolean;
|
|
87
93
|
minWidth?: undefined;
|
|
88
94
|
sort?: undefined;
|
|
89
95
|
category?: undefined;
|
|
@@ -117,6 +123,7 @@ export declare const meta: {
|
|
|
117
123
|
resize: boolean;
|
|
118
124
|
show: boolean;
|
|
119
125
|
sort: boolean;
|
|
126
|
+
grouping: boolean;
|
|
120
127
|
category?: undefined;
|
|
121
128
|
showCategoryInHeaderLabel?: undefined;
|
|
122
129
|
filter?: undefined;
|
|
@@ -129,6 +136,7 @@ export declare const meta: {
|
|
|
129
136
|
resize: boolean;
|
|
130
137
|
show: boolean;
|
|
131
138
|
sort: boolean;
|
|
139
|
+
grouping: boolean;
|
|
132
140
|
minWidth?: undefined;
|
|
133
141
|
category?: undefined;
|
|
134
142
|
showCategoryInHeaderLabel?: undefined;
|
|
@@ -145,6 +153,7 @@ export declare const meta: {
|
|
|
145
153
|
label: string;
|
|
146
154
|
}[];
|
|
147
155
|
showCategoryInHeaderLabel: boolean;
|
|
156
|
+
grouping: boolean;
|
|
148
157
|
minWidth?: undefined;
|
|
149
158
|
sort?: undefined;
|
|
150
159
|
filter?: undefined;
|
|
@@ -156,6 +165,7 @@ export declare const meta: {
|
|
|
156
165
|
id: string;
|
|
157
166
|
filter: boolean;
|
|
158
167
|
show: boolean;
|
|
168
|
+
grouping: boolean;
|
|
159
169
|
minWidth?: undefined;
|
|
160
170
|
resize?: undefined;
|
|
161
171
|
sort?: undefined;
|
|
@@ -168,6 +178,7 @@ export declare const meta: {
|
|
|
168
178
|
width: number;
|
|
169
179
|
id: string;
|
|
170
180
|
show: boolean;
|
|
181
|
+
grouping: boolean;
|
|
171
182
|
minWidth?: undefined;
|
|
172
183
|
resize?: undefined;
|
|
173
184
|
sort?: undefined;
|
|
@@ -183,6 +194,7 @@ export declare const meta: {
|
|
|
183
194
|
resize: boolean;
|
|
184
195
|
filter: boolean;
|
|
185
196
|
show: boolean;
|
|
197
|
+
grouping: boolean;
|
|
186
198
|
minWidth?: undefined;
|
|
187
199
|
sort?: undefined;
|
|
188
200
|
category?: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JUnitMocks.d.ts","sourceRoot":"","sources":["../../../Core/Test/JUnitMocks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,eAAO,MAAM,QAAQ;;;;;;;;GAyEpB,CAAC;AAEF,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"JUnitMocks.d.ts","sourceRoot":"","sources":["../../../Core/Test/JUnitMocks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,eAAO,MAAM,QAAQ;;;;;;;;GAyEpB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuFzB,CAAC;AAOF,eAAO,MAAM,OAAO;;;;;;;CAQnB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;CAQxB,CAAC;AAEF,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiEhB,CAAC;AA2CF,eAAO,MAAM,YAAY;;;UAqEP,WAAW,CAAC,IAAI,GAAG;QACjC,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,IAAI,EAAE,WAAW,CAAC,IAAI,GAAG;YAAE,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;SAAE,CAAC;KAC5E;;;;;;;;CAOF,CAAC;AAUF,eAAO,MAAM,UAAU;;;;GAGtB,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;GA2B5B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;CAMlC,CAAC;AAGF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiNxC,CAAC;AAGF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;CAiBhC,CAAC"}
|
|
@@ -83,7 +83,8 @@ export const fieldDefsMock = [
|
|
|
83
83
|
minWidth: 40,
|
|
84
84
|
resize: true,
|
|
85
85
|
show: true,
|
|
86
|
-
sort: true
|
|
86
|
+
sort: true,
|
|
87
|
+
grouping: true
|
|
87
88
|
},
|
|
88
89
|
{
|
|
89
90
|
type: 'text',
|
|
@@ -93,7 +94,8 @@ export const fieldDefsMock = [
|
|
|
93
94
|
id: '2',
|
|
94
95
|
resize: true,
|
|
95
96
|
show: true,
|
|
96
|
-
sort: true
|
|
97
|
+
sort: true,
|
|
98
|
+
grouping: true
|
|
97
99
|
},
|
|
98
100
|
{
|
|
99
101
|
type: 'text',
|
|
@@ -103,7 +105,8 @@ export const fieldDefsMock = [
|
|
|
103
105
|
id: '3',
|
|
104
106
|
resize: true,
|
|
105
107
|
show: true,
|
|
106
|
-
sort: true
|
|
108
|
+
sort: true,
|
|
109
|
+
grouping: true
|
|
107
110
|
},
|
|
108
111
|
{
|
|
109
112
|
type: 'number',
|
|
@@ -114,7 +117,8 @@ export const fieldDefsMock = [
|
|
|
114
117
|
resize: true,
|
|
115
118
|
show: true,
|
|
116
119
|
category: [{ label: 'Update Operator' }],
|
|
117
|
-
showCategoryInHeaderLabel: true
|
|
120
|
+
showCategoryInHeaderLabel: true,
|
|
121
|
+
grouping: true
|
|
118
122
|
},
|
|
119
123
|
{
|
|
120
124
|
type: 'date',
|
|
@@ -123,7 +127,8 @@ export const fieldDefsMock = [
|
|
|
123
127
|
width: 400,
|
|
124
128
|
id: '5',
|
|
125
129
|
filter: true,
|
|
126
|
-
show: true
|
|
130
|
+
show: true,
|
|
131
|
+
grouping: true
|
|
127
132
|
},
|
|
128
133
|
{
|
|
129
134
|
type: 'text',
|
|
@@ -131,7 +136,8 @@ export const fieldDefsMock = [
|
|
|
131
136
|
label: 'Release',
|
|
132
137
|
width: 100,
|
|
133
138
|
id: '7',
|
|
134
|
-
show: true
|
|
139
|
+
show: true,
|
|
140
|
+
grouping: true
|
|
135
141
|
},
|
|
136
142
|
{
|
|
137
143
|
type: 'text',
|
|
@@ -141,7 +147,18 @@ export const fieldDefsMock = [
|
|
|
141
147
|
id: 'F',
|
|
142
148
|
resize: true,
|
|
143
149
|
filter: true,
|
|
144
|
-
show: true
|
|
150
|
+
show: true,
|
|
151
|
+
grouping: true
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
type: 'date',
|
|
155
|
+
name: 'pxCreateDate',
|
|
156
|
+
label: 'Created on Date',
|
|
157
|
+
width: 400,
|
|
158
|
+
id: 'C',
|
|
159
|
+
filter: true,
|
|
160
|
+
show: true,
|
|
161
|
+
grouping: true
|
|
145
162
|
}
|
|
146
163
|
];
|
|
147
164
|
const mockDataRow = {
|
|
@@ -337,7 +354,8 @@ export const instanceMock = {
|
|
|
337
354
|
getContext() {
|
|
338
355
|
return { getRequiredDef: () => undefined, getMeta: () => meta };
|
|
339
356
|
},
|
|
340
|
-
shouldDisplayFeature: () => true
|
|
357
|
+
shouldDisplayFeature: () => true,
|
|
358
|
+
getFieldDefs: () => meta.fieldDefs
|
|
341
359
|
},
|
|
342
360
|
getState() {
|
|
343
361
|
return this.view.state;
|