@pega/cosmos-react-work 7.5.6 → 7.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/Assignments/Assignments.js +1 -1
- package/lib/components/Assignments/Assignments.js.map +1 -1
- package/lib/components/HierarchicalAssignments/AssignmentContext.d.ts +28 -0
- package/lib/components/HierarchicalAssignments/AssignmentContext.d.ts.map +1 -0
- package/lib/components/HierarchicalAssignments/AssignmentContext.js +14 -0
- package/lib/components/HierarchicalAssignments/AssignmentContext.js.map +1 -0
- package/lib/components/HierarchicalAssignments/AssignmentDetail.d.ts +4 -1
- package/lib/components/HierarchicalAssignments/AssignmentDetail.d.ts.map +1 -1
- package/lib/components/HierarchicalAssignments/AssignmentDetail.js +2 -2
- package/lib/components/HierarchicalAssignments/AssignmentDetail.js.map +1 -1
- package/lib/components/HierarchicalAssignments/AssignmentNode.d.ts +20 -0
- package/lib/components/HierarchicalAssignments/AssignmentNode.d.ts.map +1 -0
- package/lib/components/HierarchicalAssignments/AssignmentNode.js +33 -0
- package/lib/components/HierarchicalAssignments/AssignmentNode.js.map +1 -0
- package/lib/components/HierarchicalAssignments/AssignmentTree.d.ts +15 -0
- package/lib/components/HierarchicalAssignments/AssignmentTree.d.ts.map +1 -0
- package/lib/components/HierarchicalAssignments/AssignmentTree.js +21 -0
- package/lib/components/HierarchicalAssignments/AssignmentTree.js.map +1 -0
- package/lib/components/HierarchicalAssignments/Assignments.styles.d.ts +15 -9
- package/lib/components/HierarchicalAssignments/Assignments.styles.d.ts.map +1 -1
- package/lib/components/HierarchicalAssignments/Assignments.styles.js +84 -47
- package/lib/components/HierarchicalAssignments/Assignments.styles.js.map +1 -1
- package/lib/components/HierarchicalAssignments/HierarchicalAssignments.d.ts +2 -2
- package/lib/components/HierarchicalAssignments/HierarchicalAssignments.d.ts.map +1 -1
- package/lib/components/HierarchicalAssignments/HierarchicalAssignments.js +113 -9
- package/lib/components/HierarchicalAssignments/HierarchicalAssignments.js.map +1 -1
- package/lib/components/HierarchicalAssignments/HierarchicalAssignments.types.d.ts +11 -12
- package/lib/components/HierarchicalAssignments/HierarchicalAssignments.types.d.ts.map +1 -1
- package/lib/components/HierarchicalAssignments/HierarchicalAssignments.types.js.map +1 -1
- package/lib/components/HierarchicalAssignments/helpers.d.ts +23 -0
- package/lib/components/HierarchicalAssignments/helpers.d.ts.map +1 -0
- package/lib/components/HierarchicalAssignments/helpers.js +167 -0
- package/lib/components/HierarchicalAssignments/helpers.js.map +1 -0
- package/lib/components/HierarchicalAssignments/nodeItems/AssignmentItem.d.ts +18 -0
- package/lib/components/HierarchicalAssignments/nodeItems/AssignmentItem.d.ts.map +1 -0
- package/lib/components/HierarchicalAssignments/nodeItems/AssignmentItem.js +105 -0
- package/lib/components/HierarchicalAssignments/nodeItems/AssignmentItem.js.map +1 -0
- package/lib/components/HierarchicalAssignments/nodeItems/CaseDetail.d.ts +23 -0
- package/lib/components/HierarchicalAssignments/nodeItems/CaseDetail.d.ts.map +1 -0
- package/lib/components/HierarchicalAssignments/nodeItems/CaseDetail.js +107 -0
- package/lib/components/HierarchicalAssignments/nodeItems/CaseDetail.js.map +1 -0
- package/lib/components/HierarchicalAssignments/nodeItems/useNodeFocus.d.ts +23 -0
- package/lib/components/HierarchicalAssignments/nodeItems/useNodeFocus.d.ts.map +1 -0
- package/lib/components/HierarchicalAssignments/nodeItems/useNodeFocus.js +42 -0
- package/lib/components/HierarchicalAssignments/nodeItems/useNodeFocus.js.map +1 -0
- package/lib/components/Tasks/TaskList.d.ts +6 -4
- package/lib/components/Tasks/TaskList.d.ts.map +1 -1
- package/lib/components/Tasks/TaskList.js +10 -3
- package/lib/components/Tasks/TaskList.js.map +1 -1
- package/lib/components/Tasks/Tasks.js +1 -1
- package/lib/components/Tasks/Tasks.js.map +1 -1
- package/package.json +3 -3
- package/lib/components/HierarchicalAssignments/AssignmentContainer.d.ts +0 -33
- package/lib/components/HierarchicalAssignments/AssignmentContainer.d.ts.map +0 -1
- package/lib/components/HierarchicalAssignments/AssignmentContainer.js +0 -46
- package/lib/components/HierarchicalAssignments/AssignmentContainer.js.map +0 -1
- package/lib/components/HierarchicalAssignments/AssignmentItem.d.ts +0 -11
- package/lib/components/HierarchicalAssignments/AssignmentItem.d.ts.map +0 -1
- package/lib/components/HierarchicalAssignments/AssignmentItem.js +0 -26
- package/lib/components/HierarchicalAssignments/AssignmentItem.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import type { HierarchicalAssignmentProps } from './HierarchicalAssignments.types';
|
|
3
|
-
declare const _default:
|
|
3
|
+
declare const _default: import("react").ForwardRefExoticComponent<Omit<HierarchicalAssignmentProps, "ref"> & import("react").RefAttributes<HTMLDivElement>> & {
|
|
4
4
|
getTestIds: (testIdProp?: string | null | undefined) => import("@pega/cosmos-react-core").TestIdsRecord<readonly ["toggle-action"]>;
|
|
5
5
|
};
|
|
6
6
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HierarchicalAssignments.d.ts","sourceRoot":"","sources":["../../../src/components/HierarchicalAssignments/HierarchicalAssignments.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HierarchicalAssignments.d.ts","sourceRoot":"","sources":["../../../src/components/HierarchicalAssignments/HierarchicalAssignments.tsx"],"names":[],"mappings":";AAyBA,OAAO,KAAK,EAAE,2BAA2B,EAAiB,MAAM,iCAAiC,CAAC;;;;AA2NlG,wBAAuF"}
|
|
@@ -1,33 +1,137 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef, useRef } from 'react';
|
|
3
|
-
import { CardHeader, useI18n, Icon, Text, Flex, useUID, Progress, useTestIds, withTestIds, useBreakpoint, ExpandCollapse } from '@pega/cosmos-react-core';
|
|
2
|
+
import { useState, forwardRef, useRef, useCallback, useMemo, useEffect } from 'react';
|
|
3
|
+
import { CardHeader, useI18n, Icon, Text, Flex, useUID, Progress, useTestIds, withTestIds, useBreakpoint, ExpandCollapse, useLiveLog, useEvent } from '@pega/cosmos-react-core';
|
|
4
4
|
import { TaskItem } from '../Tasks/TaskList';
|
|
5
|
-
import { StyledAssignments, StyledExpandButton as StyledTitleExpandButton
|
|
6
|
-
import AssignmentContainer from './AssignmentContainer';
|
|
5
|
+
import { StyledAssignments, StyledExpandButton as StyledTitleExpandButton } from './Assignments.styles';
|
|
7
6
|
import { getHierarchicalAssignmentsTestIds } from './HierarchicalAssignments.test-ids';
|
|
7
|
+
import AssignmentTreeContext from './AssignmentContext';
|
|
8
|
+
import AssignmentTree from './AssignmentTree';
|
|
9
|
+
import { getNextNode, getPreviousNode, getParentNode, getFirstChildNode, getDeepestNode } from './helpers';
|
|
8
10
|
const HierarchicalAssignments = forwardRef(({ assignments, childCases, collapsed = false, onToggleCollapsed, openItem, progress, name, testId }, ref) => {
|
|
9
11
|
const t = useI18n();
|
|
10
12
|
const id = useUID();
|
|
13
|
+
const { announcePolite } = useLiveLog();
|
|
11
14
|
const testIds = useTestIds(testId, getHierarchicalAssignmentsTestIds);
|
|
12
15
|
const containerRef = useRef(null);
|
|
13
16
|
const isMediumOrAbove = useBreakpoint('sm', { breakpointRef: containerRef });
|
|
14
17
|
const open = !collapsed;
|
|
18
|
+
const [focusedNodeId, setFocusedNodeId] = useState();
|
|
19
|
+
const parentRef = useRef(null);
|
|
20
|
+
const [caseIdExpandList, setCaseIdExpandList] = useState([]);
|
|
21
|
+
const [nodeInternalFocus, setNodeInternalFocus] = useState(false);
|
|
22
|
+
const reverseTabFlow = useRef(false);
|
|
23
|
+
useEvent('focusin', e => {
|
|
24
|
+
if (e.relatedTarget instanceof Node && parentRef.current?.contains(e.relatedTarget)) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
announcePolite({ message: t('key_navigation_instruction') });
|
|
28
|
+
}, { target: parentRef });
|
|
29
|
+
const setNodeInternalFocusHandler = useCallback((value) => {
|
|
30
|
+
setNodeInternalFocus(value);
|
|
31
|
+
}, []);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (collapsed || progress) {
|
|
34
|
+
setFocusedNodeId(undefined);
|
|
35
|
+
}
|
|
36
|
+
}, [collapsed, progress]);
|
|
15
37
|
const header = (_jsxs(Flex, { container: { alignItems: 'center', gap: 1 }, children: [_jsx(Icon, { name: 'caret-right' }), _jsx(Text, { variant: 'h2', children: name ?? t('assignments') })] }));
|
|
16
|
-
const
|
|
38
|
+
const firstNode = useMemo(() => {
|
|
17
39
|
if (assignments?.length) {
|
|
18
40
|
return assignments[0].id;
|
|
19
41
|
}
|
|
20
42
|
if (childCases?.length) {
|
|
21
43
|
return childCases[0].id;
|
|
22
44
|
}
|
|
23
|
-
};
|
|
45
|
+
}, [assignments, childCases]);
|
|
24
46
|
const showAssignmentList = !!(assignments?.length || childCases?.length);
|
|
47
|
+
const lastNodeId = useMemo(() => {
|
|
48
|
+
const nodeList = {
|
|
49
|
+
assignments: assignments?.length ? assignments : [],
|
|
50
|
+
childCases: childCases?.length ? childCases : []
|
|
51
|
+
};
|
|
52
|
+
const nodes = [...nodeList.assignments, ...nodeList.childCases];
|
|
53
|
+
return getDeepestNode(nodeList, nodes[nodes.length - 1]?.id, caseIdExpandList)?.id;
|
|
54
|
+
}, [assignments, childCases, caseIdExpandList]);
|
|
55
|
+
const changeFocusHandler = useCallback((nodeId, key, expandList) => {
|
|
56
|
+
const nodeList = {
|
|
57
|
+
assignments: assignments?.length ? assignments : [],
|
|
58
|
+
childCases: childCases?.length ? childCases : []
|
|
59
|
+
};
|
|
60
|
+
const expandedChildCase = expandList?.length ? expandList : [];
|
|
61
|
+
switch (key) {
|
|
62
|
+
case 'down': {
|
|
63
|
+
const nextNode = getNextNode(nodeList, nodeId, expandedChildCase);
|
|
64
|
+
if (nextNode) {
|
|
65
|
+
setFocusedNodeId(nextNode?.id);
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
case 'up': {
|
|
70
|
+
const previousNode = getPreviousNode(nodeList, nodeId, expandedChildCase);
|
|
71
|
+
if (previousNode) {
|
|
72
|
+
setFocusedNodeId(previousNode?.id);
|
|
73
|
+
}
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
case 'left': {
|
|
77
|
+
const parentNode = getParentNode(nodeList, nodeId);
|
|
78
|
+
if (parentNode) {
|
|
79
|
+
setFocusedNodeId(parentNode.id);
|
|
80
|
+
}
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
case 'right': {
|
|
84
|
+
const childNode = getFirstChildNode(nodeList, nodeId, expandedChildCase);
|
|
85
|
+
if (childNode) {
|
|
86
|
+
setFocusedNodeId(childNode.id);
|
|
87
|
+
}
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
default: {
|
|
91
|
+
if (nodeId !== focusedNodeId)
|
|
92
|
+
setFocusedNodeId(nodeId);
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}, [assignments, childCases, focusedNodeId]);
|
|
97
|
+
const assignmentContextValue = useMemo(() => {
|
|
98
|
+
return {
|
|
99
|
+
firstNodeId: firstNode,
|
|
100
|
+
lastNodeId,
|
|
101
|
+
focusedNodeId,
|
|
102
|
+
changeFocusHandler,
|
|
103
|
+
caseIdExpandList,
|
|
104
|
+
isMediumOrAbove,
|
|
105
|
+
parentRef,
|
|
106
|
+
nodeInternalFocus,
|
|
107
|
+
setNodeInternalFocusHandler,
|
|
108
|
+
reverseTabFlow
|
|
109
|
+
};
|
|
110
|
+
}, [
|
|
111
|
+
firstNode,
|
|
112
|
+
changeFocusHandler,
|
|
113
|
+
focusedNodeId,
|
|
114
|
+
caseIdExpandList,
|
|
115
|
+
lastNodeId,
|
|
116
|
+
isMediumOrAbove,
|
|
117
|
+
nodeInternalFocus
|
|
118
|
+
]);
|
|
119
|
+
const childCaseToggleHandler = (value, selectedCaseId) => {
|
|
120
|
+
if (value) {
|
|
121
|
+
setCaseIdExpandList(prevState => [...prevState, selectedCaseId]);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
setCaseIdExpandList(prevState => {
|
|
125
|
+
return prevState.filter(caseId => caseId !== selectedCaseId);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
};
|
|
25
129
|
if (openItem?.content) {
|
|
26
|
-
return (_jsx(StyledAssignments, { "data-testid": testIds.root, ref: ref, expanded: true, children: _jsx(TaskItem, { ...openItem }) }));
|
|
130
|
+
return (_jsx(StyledAssignments, { "data-testid": testIds.root, ref: ref, expanded: true, children: _jsx(TaskItem, { ...openItem, headingTag: 'h2' }) }));
|
|
27
131
|
}
|
|
28
|
-
return (_jsx(_Fragment, { children: showAssignmentList && (_jsx(StyledAssignments, { "data-testid": testIds.root, ref: ref, expanded: open, children: _jsxs(_Fragment, { children: [_jsx(CardHeader, { container: { justify: 'start', alignItems: 'center', gap: 1 }, children: _jsx(StyledTitleExpandButton, { "data-testid": testIds.toggleAction, type: 'button', variant: 'text', onClick: () => {
|
|
132
|
+
return (_jsx(_Fragment, { children: showAssignmentList && (_jsx(StyledAssignments, { "data-testid": testIds.root, ref: ref, expanded: open, children: _jsxs(_Fragment, { children: [_jsx(CardHeader, { ref: containerRef, container: { justify: 'start', alignItems: 'center', gap: 1 }, children: _jsx(StyledTitleExpandButton, { "data-testid": testIds.toggleAction, type: 'button', variant: 'text', onClick: () => {
|
|
29
133
|
onToggleCollapsed?.(!collapsed);
|
|
30
|
-
}, "aria-controls": id, "aria-expanded": open, "aria-label": name || t('assignments'), children: header }) }), open && (_jsx(ExpandCollapse, {
|
|
134
|
+
}, "aria-controls": id, "aria-expanded": open, "aria-label": name || t('assignments'), children: header }) }), open && (_jsx(ExpandCollapse, { id: id, collapsed: collapsed, children: progress ? (_jsx(Progress, { delay: true, placement: 'block', message: t('loading') })) : (_jsx(AssignmentTreeContext.Provider, { value: assignmentContextValue, children: _jsx(AssignmentTree, { assignments: assignments, childCases: childCases, childCaseToggleHandler: childCaseToggleHandler, ref: parentRef }) })) }))] }) })) }));
|
|
31
135
|
});
|
|
32
136
|
export default withTestIds(HierarchicalAssignments, getHierarchicalAssignmentsTestIds);
|
|
33
137
|
//# sourceMappingURL=HierarchicalAssignments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HierarchicalAssignments.js","sourceRoot":"","sources":["../../../src/components/HierarchicalAssignments/HierarchicalAssignments.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useRef } from 'react';\nimport type { FC } from 'react';\n\nimport {\n CardHeader,\n useI18n,\n Icon,\n Text,\n Flex,\n useUID,\n Progress,\n useTestIds,\n withTestIds,\n useBreakpoint,\n ExpandCollapse\n} from '@pega/cosmos-react-core';\n\nimport { TaskItem } from '../Tasks/TaskList';\n\nimport {\n StyledAssignments,\n StyledExpandButton as StyledTitleExpandButton,\n StyledParentExpandCollapse\n} from './Assignments.styles';\nimport type { HierarchicalAssignmentProps } from './HierarchicalAssignments.types';\nimport AssignmentContainer from './AssignmentContainer';\nimport { getHierarchicalAssignmentsTestIds } from './HierarchicalAssignments.test-ids';\n\nconst HierarchicalAssignments: FC<HierarchicalAssignmentProps> = forwardRef(\n (\n {\n assignments,\n childCases,\n collapsed = false,\n onToggleCollapsed,\n openItem,\n progress,\n name,\n testId\n },\n ref: HierarchicalAssignmentProps['ref']\n ) => {\n const t = useI18n();\n const id = useUID();\n const testIds = useTestIds(testId, getHierarchicalAssignmentsTestIds);\n const containerRef = useRef<HTMLDivElement>(null);\n const isMediumOrAbove = useBreakpoint('sm', { breakpointRef: containerRef });\n const open = !collapsed;\n\n const header = (\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n <Icon name='caret-right' />\n <Text variant='h2'>{name ?? t('assignments')}</Text>\n </Flex>\n );\n\n const findFirstLeaf = () => {\n if (assignments?.length) {\n return assignments[0].id;\n }\n if (childCases?.length) {\n return childCases[0].id;\n }\n };\n\n const showAssignmentList = !!(assignments?.length || childCases?.length);\n\n if (openItem?.content) {\n return (\n <StyledAssignments data-testid={testIds.root} ref={ref} expanded>\n <TaskItem {...openItem} />\n </StyledAssignments>\n );\n }\n\n return (\n <>\n {showAssignmentList && (\n <StyledAssignments data-testid={testIds.root} ref={ref} expanded={open}>\n <>\n <CardHeader container={{ justify: 'start', alignItems: 'center', gap: 1 }}>\n <StyledTitleExpandButton\n data-testid={testIds.toggleAction}\n type='button'\n variant='text'\n onClick={() => {\n onToggleCollapsed?.(!collapsed);\n }}\n aria-controls={id}\n aria-expanded={open}\n aria-label={name || t('assignments')}\n >\n {header}\n </StyledTitleExpandButton>\n </CardHeader>\n {open && (\n <ExpandCollapse\n as={StyledParentExpandCollapse}\n ref={containerRef}\n collapsed={collapsed}\n role='tree'\n id={id}\n >\n {progress ? (\n <Progress focusOnVisible delay placement='block' message={t('loading')} />\n ) : (\n <AssignmentContainer\n assignments={assignments}\n childCases={childCases}\n depth={0}\n collapsed\n firstItemId={findFirstLeaf()}\n isMediumOrAbove={isMediumOrAbove}\n />\n )}\n </ExpandCollapse>\n )}\n </>\n </StyledAssignments>\n )}\n </>\n );\n }\n);\n\nexport default withTestIds(HierarchicalAssignments, getHierarchicalAssignmentsTestIds);\n"]}
|
|
1
|
+
{"version":3,"file":"HierarchicalAssignments.js","sourceRoot":"","sources":["../../../src/components/HierarchicalAssignments/HierarchicalAssignments.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, forwardRef, useRef, useCallback, useMemo, useEffect } from 'react';\nimport type { PropsWithoutRef } from 'react';\n\nimport {\n CardHeader,\n useI18n,\n Icon,\n Text,\n Flex,\n useUID,\n Progress,\n useTestIds,\n withTestIds,\n useBreakpoint,\n ExpandCollapse,\n useLiveLog,\n useEvent\n} from '@pega/cosmos-react-core';\n\nimport { TaskItem } from '../Tasks/TaskList';\n\nimport {\n StyledAssignments,\n StyledExpandButton as StyledTitleExpandButton\n} from './Assignments.styles';\nimport type { HierarchicalAssignmentProps, CaseListProps } from './HierarchicalAssignments.types';\nimport { getHierarchicalAssignmentsTestIds } from './HierarchicalAssignments.test-ids';\nimport AssignmentTreeContext from './AssignmentContext';\nimport AssignmentTree from './AssignmentTree';\nimport {\n getNextNode,\n getPreviousNode,\n getParentNode,\n getFirstChildNode,\n getDeepestNode\n} from './helpers';\n\nconst HierarchicalAssignments = forwardRef(\n (\n {\n assignments,\n childCases,\n collapsed = false,\n onToggleCollapsed,\n openItem,\n progress,\n name,\n testId\n }: PropsWithoutRef<HierarchicalAssignmentProps>,\n ref: HierarchicalAssignmentProps['ref']\n ) => {\n const t = useI18n();\n const id = useUID();\n const { announcePolite } = useLiveLog();\n const testIds = useTestIds(testId, getHierarchicalAssignmentsTestIds);\n const containerRef = useRef<HTMLDivElement>(null);\n const isMediumOrAbove = useBreakpoint('sm', { breakpointRef: containerRef });\n const open = !collapsed;\n const [focusedNodeId, setFocusedNodeId] = useState<string>();\n const parentRef = useRef<HTMLUListElement>(null);\n const [caseIdExpandList, setCaseIdExpandList] = useState<CaseListProps['id'][]>([]);\n const [nodeInternalFocus, setNodeInternalFocus] = useState(false);\n const reverseTabFlow = useRef(false);\n\n useEvent(\n 'focusin',\n e => {\n if (e.relatedTarget instanceof Node && parentRef.current?.contains(e.relatedTarget)) {\n return;\n }\n announcePolite({ message: t('key_navigation_instruction') });\n },\n { target: parentRef }\n );\n\n const setNodeInternalFocusHandler = useCallback((value: boolean) => {\n setNodeInternalFocus(value);\n }, []);\n\n useEffect(() => {\n if (collapsed || progress) {\n setFocusedNodeId(undefined);\n }\n }, [collapsed, progress]);\n\n const header = (\n <Flex container={{ alignItems: 'center', gap: 1 }}>\n <Icon name='caret-right' />\n <Text variant='h2'>{name ?? t('assignments')}</Text>\n </Flex>\n );\n\n const firstNode = useMemo(() => {\n if (assignments?.length) {\n return assignments[0].id;\n }\n if (childCases?.length) {\n return childCases[0].id;\n }\n }, [assignments, childCases]);\n\n const showAssignmentList = !!(assignments?.length || childCases?.length);\n const lastNodeId = useMemo(() => {\n const nodeList = {\n assignments: assignments?.length ? assignments : [],\n childCases: childCases?.length ? childCases : []\n };\n const nodes = [...nodeList.assignments, ...nodeList.childCases];\n return getDeepestNode(nodeList, nodes[nodes.length - 1]?.id, caseIdExpandList)?.id;\n }, [assignments, childCases, caseIdExpandList]);\n\n const changeFocusHandler = useCallback(\n (nodeId: string, key?: string, expandList?: string[]) => {\n const nodeList = {\n assignments: assignments?.length ? assignments : [],\n childCases: childCases?.length ? childCases : []\n };\n const expandedChildCase = expandList?.length ? expandList : [];\n switch (key) {\n case 'down': {\n const nextNode = getNextNode(nodeList, nodeId, expandedChildCase);\n if (nextNode) {\n setFocusedNodeId(nextNode?.id);\n }\n break;\n }\n case 'up': {\n const previousNode = getPreviousNode(nodeList, nodeId, expandedChildCase);\n if (previousNode) {\n setFocusedNodeId(previousNode?.id);\n }\n break;\n }\n case 'left': {\n const parentNode = getParentNode(nodeList, nodeId);\n if (parentNode) {\n setFocusedNodeId(parentNode.id);\n }\n break;\n }\n case 'right': {\n const childNode = getFirstChildNode(nodeList, nodeId, expandedChildCase);\n if (childNode) {\n setFocusedNodeId(childNode.id);\n }\n break;\n }\n default: {\n if (nodeId !== focusedNodeId) setFocusedNodeId(nodeId);\n break;\n }\n }\n },\n [assignments, childCases, focusedNodeId]\n );\n\n const assignmentContextValue = useMemo(() => {\n return {\n firstNodeId: firstNode,\n lastNodeId,\n focusedNodeId,\n changeFocusHandler,\n caseIdExpandList,\n isMediumOrAbove,\n parentRef,\n nodeInternalFocus,\n setNodeInternalFocusHandler,\n reverseTabFlow\n };\n }, [\n firstNode,\n changeFocusHandler,\n focusedNodeId,\n caseIdExpandList,\n lastNodeId,\n isMediumOrAbove,\n nodeInternalFocus\n ]);\n\n const childCaseToggleHandler = (value: boolean, selectedCaseId: CaseListProps['id']) => {\n if (value) {\n setCaseIdExpandList(prevState => [...prevState, selectedCaseId]);\n } else {\n setCaseIdExpandList(prevState => {\n return prevState.filter(caseId => caseId !== selectedCaseId);\n });\n }\n };\n\n if (openItem?.content) {\n return (\n <StyledAssignments data-testid={testIds.root} ref={ref} expanded>\n <TaskItem {...openItem} headingTag='h2' />\n </StyledAssignments>\n );\n }\n\n return (\n <>\n {showAssignmentList && (\n <StyledAssignments data-testid={testIds.root} ref={ref} expanded={open}>\n <>\n <CardHeader\n ref={containerRef}\n container={{ justify: 'start', alignItems: 'center', gap: 1 }}\n >\n <StyledTitleExpandButton\n data-testid={testIds.toggleAction}\n type='button'\n variant='text'\n onClick={() => {\n onToggleCollapsed?.(!collapsed);\n }}\n aria-controls={id}\n aria-expanded={open}\n aria-label={name || t('assignments')}\n >\n {header}\n </StyledTitleExpandButton>\n </CardHeader>\n {open && (\n <ExpandCollapse id={id} collapsed={collapsed}>\n {progress ? (\n <Progress delay placement='block' message={t('loading')} />\n ) : (\n <AssignmentTreeContext.Provider value={assignmentContextValue}>\n <AssignmentTree\n assignments={assignments}\n childCases={childCases}\n childCaseToggleHandler={childCaseToggleHandler}\n ref={parentRef}\n />\n </AssignmentTreeContext.Provider>\n )}\n </ExpandCollapse>\n )}\n </>\n </StyledAssignments>\n )}\n </>\n );\n }\n);\n\nexport default withTestIds(HierarchicalAssignments, getHierarchicalAssignmentsTestIds);\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { MouseEvent, Ref } from 'react';
|
|
2
2
|
import type { LinkProps, NoChildrenProp, OmitStrict, StatusProps, TestIdProp } from '@pega/cosmos-react-core';
|
|
3
|
-
import type {
|
|
4
|
-
export interface AssignmentProps
|
|
3
|
+
import type { TaskItemProps } from '@pega/cosmos-react-work';
|
|
4
|
+
export interface AssignmentProps {
|
|
5
5
|
/** Unique Id of the assignment */
|
|
6
6
|
id: string;
|
|
7
7
|
/** Assignment name shown in Assignment's description */
|
|
@@ -26,15 +26,10 @@ export interface ItemsProps extends NoChildrenProp {
|
|
|
26
26
|
assignments?: AssignmentProps[];
|
|
27
27
|
/** An array of child cases to be rendered as case details */
|
|
28
28
|
childCases?: CaseListProps[];
|
|
29
|
-
/**
|
|
30
|
-
|
|
31
|
-
* @default false
|
|
32
|
-
*/
|
|
33
|
-
collapsed?: boolean;
|
|
34
|
-
/** Callback on toggle of ExpandCollapseButton of each Case */
|
|
35
|
-
onToggleCollapsed?: (collapsed: boolean, id: string) => void;
|
|
29
|
+
/** Callback on toggle of ExpandCollapseButton of each Case, with arguments current expanded state of toggler and case id */
|
|
30
|
+
onToggleCollapsed?: (value: boolean, id: string) => void;
|
|
36
31
|
}
|
|
37
|
-
export interface CaseListProps extends NoChildrenProp, ItemsProps
|
|
32
|
+
export interface CaseListProps extends NoChildrenProp, ItemsProps {
|
|
38
33
|
/** Name of the task group displayed in the list. */
|
|
39
34
|
name: string;
|
|
40
35
|
/** Unique Id of the childcase */
|
|
@@ -49,6 +44,7 @@ export interface CaseListProps extends NoChildrenProp, ItemsProps, TestIdProp {
|
|
|
49
44
|
onPreview: LinkProps['onPreview'];
|
|
50
45
|
href: LinkProps['href'];
|
|
51
46
|
target?: LinkProps['target'];
|
|
47
|
+
onClick?: (e: MouseEvent<HTMLAnchorElement | HTMLButtonElement>, id: CaseListProps['id']) => void;
|
|
52
48
|
};
|
|
53
49
|
}
|
|
54
50
|
export interface HierarchicalAssignmentProps extends OmitStrict<ItemsProps, 'onToggleCollapsed'>, TestIdProp {
|
|
@@ -61,8 +57,11 @@ export interface HierarchicalAssignmentProps extends OmitStrict<ItemsProps, 'onT
|
|
|
61
57
|
progress?: boolean;
|
|
62
58
|
/** Task Content to be rendered on click of Go Action button */
|
|
63
59
|
openItem?: TaskItemProps;
|
|
64
|
-
/**
|
|
65
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Boolean that refers the state of the ExpandButton.
|
|
62
|
+
* @default false
|
|
63
|
+
*/
|
|
64
|
+
collapsed?: boolean;
|
|
66
65
|
/** Callback on toggle of Top level ExpandCollapseButton */
|
|
67
66
|
onToggleCollapsed: (collapsed: boolean) => void;
|
|
68
67
|
/** Ref placed on the element. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HierarchicalAssignments.types.d.ts","sourceRoot":"","sources":["../../../src/components/HierarchicalAssignments/HierarchicalAssignments.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,UAAU,EACV,WAAW,EACX,UAAU,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"HierarchicalAssignments.types.d.ts","sourceRoot":"","sources":["../../../src/components/HierarchicalAssignments/HierarchicalAssignments.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,UAAU,EACV,WAAW,EACX,UAAU,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,eAAe,EAAE,CACf,UAAU,EAAE,eAAe,CAAC,YAAY,CAAC,EACzC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAC7B,IAAI,CAAC;IACV,wCAAwC;IACxC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CAChF;AAED,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,0EAA0E;IAC1E,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,4HAA4H;IAC5H,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1D;AACD,MAAM,WAAW,aAAc,SAAQ,cAAc,EAAE,UAAU;IAC/D,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;KACjC,CAAC;IACF,mDAAmD;IACnD,IAAI,EAAE;QACJ,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QACxB,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,CAAC,EAAE,CACR,CAAC,EAAE,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,EACpD,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,KACpB,IAAI,CAAC;KACX,CAAC;CACH;AAED,MAAM,WAAW,2BACf,SAAQ,UAAU,CAAC,UAAU,EAAE,mBAAmB,CAAC,EACjD,UAAU;IACZ;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,iBAAiB,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,iCAAiC;IACjC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HierarchicalAssignments.types.js","sourceRoot":"","sources":["../../../src/components/HierarchicalAssignments/HierarchicalAssignments.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { MouseEvent, Ref } from 'react';\n\nimport type {\n LinkProps,\n NoChildrenProp,\n OmitStrict,\n StatusProps,\n TestIdProp\n} from '@pega/cosmos-react-core';\nimport type {
|
|
1
|
+
{"version":3,"file":"HierarchicalAssignments.types.js","sourceRoot":"","sources":["../../../src/components/HierarchicalAssignments/HierarchicalAssignments.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { MouseEvent, Ref } from 'react';\n\nimport type {\n LinkProps,\n NoChildrenProp,\n OmitStrict,\n StatusProps,\n TestIdProp\n} from '@pega/cosmos-react-core';\nimport type { TaskItemProps } from '@pega/cosmos-react-work';\n\nexport interface AssignmentProps {\n /** Unique Id of the assignment */\n id: string;\n /** Assignment name shown in Assignment's description */\n name: string;\n /** Process Name for the assignment. */\n processName?: string;\n /** Service Level Agreement for the assignment. */\n sla?: string;\n /** Number to defined the Urgency of assignment */\n urgency: number;\n /** Assignee's Id, passed on callback of onAssigneeClick */\n assigneeId: string;\n /** Assignee's Name of the assignment */\n assigneeName: string;\n /** Callback fired when click of Assignee Name to show Glimpse component */\n onAssigneeClick: (\n assigneeId: AssignmentProps['assigneeId'],\n e: MouseEvent<HTMLButtonElement>\n ) => void;\n /** Callback fired from the Go button */\n onOpen?: (id: AssignmentProps['id'], e: MouseEvent<HTMLButtonElement>) => void;\n}\n\nexport interface ItemsProps extends NoChildrenProp {\n /** An array of assignment details to be rendered as Assignment details */\n assignments?: AssignmentProps[];\n /** An array of child cases to be rendered as case details */\n childCases?: CaseListProps[];\n /** Callback on toggle of ExpandCollapseButton of each Case, with arguments current expanded state of toggler and case id */\n onToggleCollapsed?: (value: boolean, id: string) => void;\n}\nexport interface CaseListProps extends NoChildrenProp, ItemsProps {\n /** Name of the task group displayed in the list. */\n name: string;\n /** Unique Id of the childcase */\n id: string;\n /** status details for the case */\n status: {\n text: string;\n variant: StatusProps['variant'];\n };\n /** Meta details of link to navigate to the case */\n link: {\n onPreview: LinkProps['onPreview'];\n href: LinkProps['href'];\n target?: LinkProps['target'];\n onClick?: (\n e: MouseEvent<HTMLAnchorElement | HTMLButtonElement>,\n id: CaseListProps['id']\n ) => void;\n };\n}\n\nexport interface HierarchicalAssignmentProps\n extends OmitStrict<ItemsProps, 'onToggleCollapsed'>,\n TestIdProp {\n /**\n * Hierarchical Assignment widget's title\n * @default 'Assignment'\n */\n name?: string;\n /** Boolean refers to state of the progress in assignment widget */\n progress?: boolean;\n /** Task Content to be rendered on click of Go Action button */\n openItem?: TaskItemProps;\n /**\n * Boolean that refers the state of the ExpandButton.\n * @default false\n */\n collapsed?: boolean;\n /** Callback on toggle of Top level ExpandCollapseButton */\n onToggleCollapsed: (collapsed: boolean) => void;\n /** Ref placed on the element. */\n ref?: Ref<HTMLDivElement>;\n}\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
import type { AssignmentProps, CaseListProps } from './HierarchicalAssignments.types';
|
|
3
|
+
export interface AssignmentNodes {
|
|
4
|
+
assignments?: AssignmentProps[];
|
|
5
|
+
childCases?: CaseListProps[];
|
|
6
|
+
}
|
|
7
|
+
type Node = AssignmentProps | CaseListProps | undefined;
|
|
8
|
+
export declare const initialDepth = 1;
|
|
9
|
+
export declare const maxDepth = 5;
|
|
10
|
+
export declare const restrictDepth: (depth: number) => number;
|
|
11
|
+
export declare const isAssignment: (assignment: AssignmentProps | CaseListProps) => assignment is AssignmentProps;
|
|
12
|
+
export declare const isExpandedNode: (expandedList: string[], id: string) => boolean;
|
|
13
|
+
export declare const getNode: (nodes: AssignmentNodes, id: string) => Node;
|
|
14
|
+
export declare const getParentNode: (nodes: AssignmentNodes, id: string, parentItem?: CaseListProps) => Node;
|
|
15
|
+
export declare const getFirstChildNode: (nodes: AssignmentNodes, id: string, expanded: string[]) => Node;
|
|
16
|
+
export declare const getCombinedAdjacentIndex: (combinedNodes: (AssignmentProps | CaseListProps)[], id: string) => number;
|
|
17
|
+
export declare const getAdjacentNode: (nodes: AssignmentNodes, id: string) => AssignmentProps | CaseListProps;
|
|
18
|
+
export declare const getNextNode: ({ assignments, childCases }: AssignmentNodes, id: string, expanded: string[]) => AssignmentProps | CaseListProps;
|
|
19
|
+
export declare const getDeepestNode: ({ assignments, childCases }: AssignmentNodes, id: string, expanded: string[]) => Node;
|
|
20
|
+
export declare const getPreviousNode: ({ assignments, childCases }: AssignmentNodes, id: string, expanded: string[]) => Node;
|
|
21
|
+
export declare const scrollChildIntoView: (parentRef?: RefObject<HTMLUListElement>, childRef?: RefObject<HTMLLIElement>) => void;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/components/HierarchicalAssignments/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEtF,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED,KAAK,IAAI,GAAG,eAAe,GAAG,aAAa,GAAG,SAAS,CAAC;AACxD,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,QAAQ,IAAI,CAAC;AAE1B,eAAO,MAAM,aAAa,UAAW,MAAM,WAA8B,CAAC;AAE1E,eAAO,MAAM,YAAY,eACX,eAAe,GAAG,aAAa,kCAO5C,CAAC;AAEF,eAAO,MAAM,cAAc,iBAAkB,MAAM,EAAE,MAAM,MAAM,YAEhE,CAAC;AAEF,eAAO,MAAM,OAAO,UAAW,eAAe,MAAM,MAAM,SAyBzD,CAAC;AAEF,eAAO,MAAM,aAAa,UAAW,eAAe,MAAM,MAAM,eAAe,aAAa,SA2B3F,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAW,eAAe,MAAM,MAAM,YAAY,MAAM,EAAE,SAevF,CAAC;AAEF,eAAO,MAAM,wBAAwB,kBACpB,CAAC,eAAe,GAAG,aAAa,CAAC,EAAE,MAC9C,MAAM,WAGX,CAAC;AAEF,eAAO,MAAM,eAAe,UACnB,eAAe,MAClB,MAAM,KACT,eAAe,GAAG,aAuBpB,CAAC;AAEF,eAAO,MAAM,WAAW,gCACiB,eAAe,MAClD,MAAM,YACA,MAAM,EAAE,oCAUnB,CAAC;AAEF,eAAO,MAAM,cAAc,gCACc,eAAe,MAClD,MAAM,YACA,MAAM,EAAE,KACjB,IAuBF,CAAC;AAEF,eAAO,MAAM,eAAe,gCACa,eAAe,MAClD,MAAM,YACA,MAAM,EAAE,SAiCnB,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAClB,UAAU,gBAAgB,CAAC,aAC5B,UAAU,aAAa,CAAC,SAkBpC,CAAC"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { hasProp } from '@pega/cosmos-react-core';
|
|
2
|
+
export const initialDepth = 1;
|
|
3
|
+
export const maxDepth = 5;
|
|
4
|
+
export const restrictDepth = (depth) => Math.min(depth, maxDepth);
|
|
5
|
+
export const isAssignment = (assignment) => {
|
|
6
|
+
return (hasProp(assignment, 'name') &&
|
|
7
|
+
hasProp(assignment, 'assigneeName') &&
|
|
8
|
+
hasProp(assignment, 'urgency'));
|
|
9
|
+
};
|
|
10
|
+
export const isExpandedNode = (expandedList, id) => {
|
|
11
|
+
return !!expandedList.find(expandedId => expandedId === id);
|
|
12
|
+
};
|
|
13
|
+
export const getNode = (nodes, id) => {
|
|
14
|
+
let found;
|
|
15
|
+
const assignment = nodes.assignments?.find(node => node.id === id);
|
|
16
|
+
if (assignment) {
|
|
17
|
+
found = assignment;
|
|
18
|
+
}
|
|
19
|
+
if (!found) {
|
|
20
|
+
nodes.childCases?.some(node => {
|
|
21
|
+
if (node.id === id) {
|
|
22
|
+
found = node;
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
if (node.assignments?.length || node.childCases?.length) {
|
|
26
|
+
found = getNode(node, id);
|
|
27
|
+
return !!found;
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return found;
|
|
33
|
+
};
|
|
34
|
+
export const getParentNode = (nodes, id, parentItem) => {
|
|
35
|
+
let found;
|
|
36
|
+
const assignment = nodes.assignments?.find(node => node.id === id);
|
|
37
|
+
if (assignment) {
|
|
38
|
+
found = parentItem;
|
|
39
|
+
}
|
|
40
|
+
if (!found) {
|
|
41
|
+
nodes.childCases?.some(node => {
|
|
42
|
+
if (node.id === id) {
|
|
43
|
+
found = parentItem;
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
if (node.assignments?.length || node.childCases?.length) {
|
|
47
|
+
found = getParentNode({ assignments: node.assignments, childCases: node.childCases }, id, node);
|
|
48
|
+
return !!found;
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return found;
|
|
54
|
+
};
|
|
55
|
+
export const getFirstChildNode = (nodes, id, expanded) => {
|
|
56
|
+
let firstChildNode;
|
|
57
|
+
const node = getNode(nodes, id);
|
|
58
|
+
if (node && !isAssignment(node)) {
|
|
59
|
+
const isNodeExpanded = isExpandedNode(expanded, node.id);
|
|
60
|
+
if (isNodeExpanded && node.assignments?.length) {
|
|
61
|
+
const childNodes = node.assignments;
|
|
62
|
+
firstChildNode = childNodes[0];
|
|
63
|
+
}
|
|
64
|
+
else if (isNodeExpanded && node.childCases?.length) {
|
|
65
|
+
const childNodes = node.childCases;
|
|
66
|
+
firstChildNode = childNodes[0];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return firstChildNode;
|
|
70
|
+
};
|
|
71
|
+
export const getCombinedAdjacentIndex = (combinedNodes, id) => {
|
|
72
|
+
return combinedNodes?.map(nodeEl => nodeEl.id).indexOf(id);
|
|
73
|
+
};
|
|
74
|
+
export const getAdjacentNode = (nodes, id) => {
|
|
75
|
+
let nextNode;
|
|
76
|
+
const parent = getParentNode(nodes, id);
|
|
77
|
+
if (parent &&
|
|
78
|
+
!isAssignment(parent) &&
|
|
79
|
+
(parent?.assignments?.length || parent?.childCases?.length)) {
|
|
80
|
+
const childNodes = [...(parent?.assignments ?? []), ...(parent?.childCases ?? [])];
|
|
81
|
+
const currentIndex = childNodes.map(nodeEl => nodeEl.id).indexOf(id);
|
|
82
|
+
if (currentIndex === childNodes.length - 1) {
|
|
83
|
+
nextNode = getAdjacentNode(nodes, parent?.id);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
nextNode = childNodes[currentIndex + 1];
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
const combinedNodes = [...(nodes.assignments ?? []), ...(nodes.childCases ?? [])];
|
|
91
|
+
const elementsIndex = getCombinedAdjacentIndex(combinedNodes, id);
|
|
92
|
+
nextNode = combinedNodes?.[elementsIndex + 1];
|
|
93
|
+
}
|
|
94
|
+
return nextNode;
|
|
95
|
+
};
|
|
96
|
+
export const getNextNode = ({ assignments = [], childCases = [] }, id, expanded) => {
|
|
97
|
+
let nextNode;
|
|
98
|
+
const firstChildNode = getFirstChildNode({ assignments, childCases }, id, expanded);
|
|
99
|
+
if (firstChildNode) {
|
|
100
|
+
nextNode = firstChildNode;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
nextNode = getAdjacentNode({ assignments, childCases }, id);
|
|
104
|
+
}
|
|
105
|
+
return nextNode;
|
|
106
|
+
};
|
|
107
|
+
export const getDeepestNode = ({ assignments = [], childCases = [] }, id, expanded) => {
|
|
108
|
+
const node = getNode({ assignments, childCases }, id);
|
|
109
|
+
let lastNode = node;
|
|
110
|
+
let isNodeExpanded = false;
|
|
111
|
+
if (node) {
|
|
112
|
+
isNodeExpanded = isExpandedNode(expanded, node.id);
|
|
113
|
+
}
|
|
114
|
+
if (node &&
|
|
115
|
+
!isAssignment(node) &&
|
|
116
|
+
isNodeExpanded &&
|
|
117
|
+
(node.assignments?.length || node.childCases?.length)) {
|
|
118
|
+
const childNodes = [...(node.assignments ?? []), ...(node.childCases ?? [])];
|
|
119
|
+
const lastChildNode = childNodes[childNodes.length - 1];
|
|
120
|
+
const isLastChildNodeExpanded = isExpandedNode(expanded, lastChildNode.id);
|
|
121
|
+
if (isLastChildNodeExpanded) {
|
|
122
|
+
lastNode = getDeepestNode({ assignments, childCases }, lastChildNode.id, expanded);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
lastNode = lastChildNode;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return lastNode;
|
|
129
|
+
};
|
|
130
|
+
export const getPreviousNode = ({ assignments = [], childCases = [] }, id, expanded) => {
|
|
131
|
+
const parent = getParentNode({ assignments, childCases }, id);
|
|
132
|
+
let previousNode;
|
|
133
|
+
if (parent &&
|
|
134
|
+
!isAssignment(parent) &&
|
|
135
|
+
(parent?.assignments?.length || parent?.childCases?.length)) {
|
|
136
|
+
const childNodes = [...(parent?.assignments ?? []), ...(parent?.childCases ?? [])];
|
|
137
|
+
const currentIndex = childNodes.map(nodeEl => nodeEl.id).indexOf(id);
|
|
138
|
+
if (currentIndex === 0) {
|
|
139
|
+
previousNode = parent;
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
previousNode = getDeepestNode({ assignments, childCases }, childNodes[currentIndex - 1].id, expanded);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
const currentNode = [...assignments, ...childCases];
|
|
147
|
+
const index = currentNode.map(node => node.id).indexOf(id);
|
|
148
|
+
if (currentNode[index - 1]) {
|
|
149
|
+
previousNode = getDeepestNode({ assignments, childCases }, currentNode[index - 1].id, expanded);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return previousNode;
|
|
153
|
+
};
|
|
154
|
+
export const scrollChildIntoView = (parentRef, childRef) => {
|
|
155
|
+
const parent = parentRef?.current;
|
|
156
|
+
const child = childRef?.current;
|
|
157
|
+
if (!parent || !child) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const parentRect = parent.getBoundingClientRect();
|
|
161
|
+
const childRect = child.getBoundingClientRect();
|
|
162
|
+
const isViewable = childRect.top >= parentRect.top && childRect.top <= parentRect.top + parent.clientHeight;
|
|
163
|
+
if (!isViewable) {
|
|
164
|
+
parent.scrollTop = childRect.top + parent.scrollTop - parentRect.top;
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/components/HierarchicalAssignments/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RefObject } from 'react';\n\nimport { hasProp } from '@pega/cosmos-react-core';\n\nimport type { AssignmentProps, CaseListProps } from './HierarchicalAssignments.types';\n\nexport interface AssignmentNodes {\n assignments?: AssignmentProps[];\n childCases?: CaseListProps[];\n}\n\ntype Node = AssignmentProps | CaseListProps | undefined;\nexport const initialDepth = 1;\nexport const maxDepth = 5;\n\nexport const restrictDepth = (depth: number) => Math.min(depth, maxDepth);\n\nexport const isAssignment = (\n assignment: AssignmentProps | CaseListProps\n): assignment is AssignmentProps => {\n return (\n hasProp(assignment, 'name') &&\n hasProp(assignment, 'assigneeName') &&\n hasProp(assignment, 'urgency')\n );\n};\n\nexport const isExpandedNode = (expandedList: string[], id: string) => {\n return !!expandedList.find(expandedId => expandedId === id);\n};\n\nexport const getNode = (nodes: AssignmentNodes, id: string) => {\n let found: Node;\n\n const assignment = nodes.assignments?.find(node => node.id === id);\n if (assignment) {\n found = assignment;\n }\n\n if (!found) {\n nodes.childCases?.some(node => {\n if (node.id === id) {\n found = node;\n return true;\n }\n\n if (node.assignments?.length || node.childCases?.length) {\n found = getNode(node, id);\n return !!found;\n }\n\n return false;\n });\n }\n\n return found;\n};\n\nexport const getParentNode = (nodes: AssignmentNodes, id: string, parentItem?: CaseListProps) => {\n let found: Node;\n\n const assignment = nodes.assignments?.find(node => node.id === id);\n if (assignment) {\n found = parentItem;\n }\n\n if (!found) {\n nodes.childCases?.some(node => {\n if (node.id === id) {\n found = parentItem;\n return true;\n }\n if (node.assignments?.length || node.childCases?.length) {\n found = getParentNode(\n { assignments: node.assignments, childCases: node.childCases },\n id,\n node\n );\n return !!found;\n }\n return false;\n });\n }\n\n return found;\n};\n\nexport const getFirstChildNode = (nodes: AssignmentNodes, id: string, expanded: string[]) => {\n let firstChildNode: Node;\n const node = getNode(nodes, id);\n\n if (node && !isAssignment(node)) {\n const isNodeExpanded = isExpandedNode(expanded, node.id);\n if (isNodeExpanded && node.assignments?.length) {\n const childNodes = node.assignments;\n firstChildNode = childNodes[0];\n } else if (isNodeExpanded && node.childCases?.length) {\n const childNodes = node.childCases;\n firstChildNode = childNodes[0];\n }\n }\n return firstChildNode;\n};\n\nexport const getCombinedAdjacentIndex = (\n combinedNodes: (AssignmentProps | CaseListProps)[],\n id: string\n) => {\n return combinedNodes?.map(nodeEl => nodeEl.id).indexOf(id);\n};\n\nexport const getAdjacentNode = (\n nodes: AssignmentNodes,\n id: string\n): AssignmentProps | CaseListProps => {\n let nextNode: AssignmentProps | CaseListProps;\n const parent = getParentNode(nodes, id);\n\n if (\n parent &&\n !isAssignment(parent) &&\n (parent?.assignments?.length || parent?.childCases?.length)\n ) {\n const childNodes = [...(parent?.assignments ?? []), ...(parent?.childCases ?? [])];\n const currentIndex = childNodes.map(nodeEl => nodeEl.id).indexOf(id);\n if (currentIndex === childNodes.length - 1) {\n nextNode = getAdjacentNode(nodes, parent?.id);\n } else {\n nextNode = childNodes[currentIndex + 1];\n }\n } else {\n const combinedNodes = [...(nodes.assignments ?? []), ...(nodes.childCases ?? [])];\n const elementsIndex = getCombinedAdjacentIndex(combinedNodes, id);\n nextNode = combinedNodes?.[elementsIndex + 1];\n }\n\n return nextNode;\n};\n\nexport const getNextNode = (\n { assignments = [], childCases = [] }: AssignmentNodes,\n id: string,\n expanded: string[]\n) => {\n let nextNode: Node;\n const firstChildNode = getFirstChildNode({ assignments, childCases }, id, expanded);\n if (firstChildNode) {\n nextNode = firstChildNode;\n } else {\n nextNode = getAdjacentNode({ assignments, childCases }, id);\n }\n return nextNode;\n};\n\nexport const getDeepestNode = (\n { assignments = [], childCases = [] }: AssignmentNodes,\n id: string,\n expanded: string[]\n): Node => {\n const node = getNode({ assignments, childCases }, id);\n let lastNode = node;\n let isNodeExpanded = false;\n if (node) {\n isNodeExpanded = isExpandedNode(expanded, node.id);\n }\n if (\n node &&\n !isAssignment(node) &&\n isNodeExpanded &&\n (node.assignments?.length || node.childCases?.length)\n ) {\n const childNodes = [...(node.assignments ?? []), ...(node.childCases ?? [])];\n const lastChildNode = childNodes[childNodes.length - 1];\n const isLastChildNodeExpanded = isExpandedNode(expanded, lastChildNode.id);\n if (isLastChildNodeExpanded) {\n lastNode = getDeepestNode({ assignments, childCases }, lastChildNode.id, expanded);\n } else {\n lastNode = lastChildNode;\n }\n }\n return lastNode;\n};\n\nexport const getPreviousNode = (\n { assignments = [], childCases = [] }: AssignmentNodes,\n id: string,\n expanded: string[]\n) => {\n const parent = getParentNode({ assignments, childCases }, id);\n let previousNode;\n\n if (\n parent &&\n !isAssignment(parent) &&\n (parent?.assignments?.length || parent?.childCases?.length)\n ) {\n const childNodes = [...(parent?.assignments ?? []), ...(parent?.childCases ?? [])];\n const currentIndex = childNodes.map(nodeEl => nodeEl.id).indexOf(id);\n if (currentIndex === 0) {\n previousNode = parent;\n } else {\n previousNode = getDeepestNode(\n { assignments, childCases },\n childNodes[currentIndex - 1].id,\n expanded\n );\n }\n } else {\n const currentNode = [...assignments, ...childCases];\n const index = currentNode.map(node => node.id).indexOf(id);\n if (currentNode[index - 1]) {\n previousNode = getDeepestNode(\n { assignments, childCases },\n currentNode[index - 1].id,\n expanded\n );\n }\n }\n return previousNode;\n};\n\nexport const scrollChildIntoView = (\n parentRef?: RefObject<HTMLUListElement>,\n childRef?: RefObject<HTMLLIElement>\n) => {\n const parent = parentRef?.current;\n const child = childRef?.current;\n\n if (!parent || !child) {\n return;\n }\n\n const parentRect = parent.getBoundingClientRect();\n const childRect = child.getBoundingClientRect();\n\n const isViewable =\n childRect.top >= parentRect.top && childRect.top <= parentRect.top + parent.clientHeight;\n\n if (!isViewable) {\n parent.scrollTop = childRect.top + parent.scrollTop - parentRect.top;\n }\n};\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { AssignmentProps } from '../HierarchicalAssignments.types';
|
|
3
|
+
interface AssignmentItemProps extends AssignmentProps {
|
|
4
|
+
/** Property defines the node's level */
|
|
5
|
+
depth: number;
|
|
6
|
+
/** total the number of items in the current set of treeitems */
|
|
7
|
+
setSize?: number;
|
|
8
|
+
/** the position of the element within the whole set of treeitems */
|
|
9
|
+
posInset?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare const PauseTextNode: ({ children }: {
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
}) => JSX.Element;
|
|
14
|
+
declare const _default: (({ name, processName, assigneeName, urgency, sla, depth, id, assigneeId, onOpen, onAssigneeClick, setSize, posInset }: AssignmentItemProps) => JSX.Element) & {
|
|
15
|
+
getTestIds: (testIdProp?: string | null | undefined) => import("@pega/cosmos-react-core").TestIdsRecord<readonly ["label", "assignee", "urgency", "action", "sla"]>;
|
|
16
|
+
};
|
|
17
|
+
export default _default;
|
|
18
|
+
//# sourceMappingURL=AssignmentItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssignmentItem.d.ts","sourceRoot":"","sources":["../../../../src/components/HierarchicalAssignments/nodeItems/AssignmentItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA6B,SAAS,EAAc,MAAM,OAAO,CAAC;AA4B9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAQxE,UAAU,mBAAoB,SAAQ,eAAe;IACnD,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,eAAO,MAAM,aAAa;cAA8B,SAAS;iBAOhE,CAAC;;;;AAuNF,wBAAiE"}
|