@pega/cosmos-react-work 8.0.0-build.41.2 → 8.0.0-build.43.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.
@@ -44,6 +44,7 @@ export interface CaseListProps extends NoChildrenProp, ItemsProps {
44
44
  onPreview: LinkProps['onPreview'];
45
45
  href: LinkProps['href'];
46
46
  target?: LinkProps['target'];
47
+ onClick?: (e: MouseEvent<HTMLAnchorElement | HTMLButtonElement>, id: CaseListProps['id']) => void;
47
48
  };
48
49
  }
49
50
  export interface HierarchicalAssignmentProps extends OmitStrict<ItemsProps, 'onToggleCollapsed'>, TestIdProp {
@@ -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,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;KAC9B,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
+ {"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 { 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 };\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"]}
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"]}
@@ -1 +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,iBAAkB;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,4CAOlE,CAAC;gJAeC,mBAAmB;;;AAwMtB,wBAAiE"}
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;AAgC9E,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,iBAAkB;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,4CAOlE,CAAC;gJAeC,mBAAmB;;;AAsNtB,wBAAiE"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useRef, useContext, useCallback } from 'react';
3
3
  import styled from 'styled-components';
4
- import { Grid, Flex, Button, useI18n, withTestIds, useTestIds, cap, useDirection, Text, VisuallyHiddenText, useElement, Tooltip } from '@pega/cosmos-react-core';
4
+ import { Grid, Flex, Button, useI18n, withTestIds, useTestIds, cap, useDirection, Text, VisuallyHiddenText, useElement, Tooltip, formatDateTime, useConfiguration, parseToDate, NoValue } from '@pega/cosmos-react-core';
5
5
  import { StyledAssignmentItem, StyledProcessContainer, StyledActionContainer, StyledAssigneeContainer, StyledLabelContainer, StyledNode, StyledAssigneeText, StyledAssignmentItemMetaList } from '../Assignments.styles';
6
6
  import { getAssignmentTestIds } from '../HierarchicalAssignments.test-ids';
7
7
  import AssignmentTreeContext from '../AssignmentContext';
@@ -29,6 +29,7 @@ const AssignmentItem = ({ name, processName, assigneeName, urgency, sla, depth,
29
29
  });
30
30
  const { start } = useDirection();
31
31
  const t = useI18n();
32
+ const { locale } = useConfiguration();
32
33
  const [assigneeEl, setAssigneeElement] = useElement();
33
34
  const testIds = useTestIds('', getAssignmentTestIds);
34
35
  const navigationHandler = useCallback((e) => {
@@ -97,7 +98,14 @@ const AssignmentItem = ({ name, processName, assigneeName, urgency, sla, depth,
97
98
  _jsxs(_Fragment, { children: [_jsx(StyledAssigneeText, { onClick: (e) => {
98
99
  onAssigneeClick(assigneeId, e);
99
100
  }, variant: 'link', ref: setAssigneeElement, "data-testid": testIds.assignee, tabIndex: childElementsTabIndex, children: _jsx(PauseTextNode, { children: assigneeName }) }), _jsx(Tooltip, { target: assigneeEl, smart: true, children: assigneeName })] }),
100
- sla && (_jsx(Text, { variant: 'secondary', "data-testid": testIds.sla, children: _jsx(PauseTextNode, { children: sla }) })),
101
+ sla && (_jsx(Text, { variant: 'secondary', "data-testid": testIds.sla, children: _jsx(PauseTextNode, { children: Date.parse(sla) ? (t('assignments_sla', [
102
+ formatDateTime(parseToDate(sla), {
103
+ t,
104
+ locale,
105
+ format: 'medium',
106
+ variant: 'relative'
107
+ })
108
+ ])) : (_jsx(NoValue, {})) }) })),
101
109
  _jsxs(_Fragment, { children: [_jsx(Text, { variant: 'secondary', as: StyledLabelContainer, "data-testid": testIds.urgency, children: t('assignment_item_urgency') }), _jsx(Text, { variant: 'secondary', children: _jsx(PauseTextNode, { children: urgency }) })] })
102
110
  ] }) }), _jsx(Flex, { as: StyledActionContainer, container: { justify: 'end' }, isMediumOrAbove: isMediumOrAbove, children: onOpen && (_jsx(Button, { "data-testid": testIds.action, compact: true, variant: 'primary', onClick: (e) => onOpen(id, e), tabIndex: childElementsTabIndex, "aria-label": t('assignments_go_announcement_label', [assignmentDetail]), children: t('go') })) })] }) }));
103
111
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AssignmentItem.js","sourceRoot":"","sources":["../../../../src/components/HierarchicalAssignments/nodeItems/AssignmentItem.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useRef, useContext, useCallback } from 'react';\nimport type { MouseEvent, KeyboardEvent, ReactNode, FocusEvent } from 'react';\nimport styled from 'styled-components';\n\nimport {\n Grid,\n Flex,\n Button,\n useI18n,\n withTestIds,\n useTestIds,\n cap,\n useDirection,\n Text,\n VisuallyHiddenText,\n useElement,\n Tooltip\n} from '@pega/cosmos-react-core';\n\nimport {\n StyledAssignmentItem,\n StyledProcessContainer,\n StyledActionContainer,\n StyledAssigneeContainer,\n StyledLabelContainer,\n StyledNode,\n StyledAssigneeText,\n StyledAssignmentItemMetaList\n} from '../Assignments.styles';\nimport type { AssignmentProps } from '../HierarchicalAssignments.types';\nimport { getAssignmentTestIds } from '../HierarchicalAssignments.test-ids';\nimport AssignmentTreeContext from '../AssignmentContext';\nimport AssignmentDetails from '../AssignmentDetail';\nimport { restrictDepth, initialDepth } from '../helpers';\n\nimport useNodeFocus from './useNodeFocus';\n\ninterface AssignmentItemProps extends AssignmentProps {\n /** Property defines the node's level */\n depth: number;\n /** total the number of items in the current set of treeitems */\n setSize?: number;\n /** the position of the element within the whole set of treeitems */\n posInset?: number;\n}\n\nconst StyledHiddenText = styled(VisuallyHiddenText)`\n width: 0;\n`;\n\nexport const PauseTextNode = ({ children }: { children: ReactNode }) => {\n return (\n <>\n {children}\n <StyledHiddenText>, </StyledHiddenText>\n </>\n );\n};\n\nconst AssignmentItem = ({\n name,\n processName,\n assigneeName,\n urgency,\n sla,\n depth,\n id,\n assigneeId,\n onOpen,\n onAssigneeClick,\n setSize,\n posInset\n}: AssignmentItemProps) => {\n const {\n firstNodeId,\n focusedNodeId,\n lastNodeId,\n changeFocusHandler,\n caseIdExpandList,\n isMediumOrAbove,\n parentRef,\n nodeInternalFocus,\n setNodeInternalFocusHandler,\n reverseTabFlow\n } = useContext(AssignmentTreeContext);\n const assignmentRef = useRef<HTMLLIElement>(null);\n const firstLevelAssignment = depth === initialDepth;\n const styledElementDepth = firstLevelAssignment ? 0 : restrictDepth(depth);\n const childElementsTabIndex = nodeInternalFocus ? 0 : -1;\n\n const { parentNodeTabIndex, lastNode, escapeNodeHandler } = useNodeFocus(\n id,\n assignmentRef,\n parentRef,\n {\n firstNodeId,\n focusedNodeId,\n lastNodeId,\n nodeInternalFocus,\n reverseTabFlow\n }\n );\n\n const { start } = useDirection();\n\n const t = useI18n();\n const [assigneeEl, setAssigneeElement] = useElement<HTMLElement>();\n const testIds = useTestIds('', getAssignmentTestIds);\n\n const navigationHandler = useCallback(\n (e: KeyboardEvent<HTMLElement>) => {\n if (['ArrowUp', 'ArrowDown'].includes(e.key)) e.preventDefault();\n switch (e.key) {\n case 'ArrowUp':\n changeFocusHandler(id, 'up', caseIdExpandList);\n break;\n case 'ArrowDown':\n changeFocusHandler(id, 'down', caseIdExpandList);\n break;\n case `Arrow${cap(start)}`:\n if (!firstLevelAssignment) {\n changeFocusHandler(id, 'left', caseIdExpandList);\n }\n break;\n case 'Home':\n if (firstNodeId) changeFocusHandler(firstNodeId);\n break;\n case 'End':\n if (lastNodeId) changeFocusHandler(lastNodeId);\n break;\n default:\n }\n },\n [id, firstNodeId, lastNodeId, firstLevelAssignment, caseIdExpandList]\n );\n const assignmentDetail = processName ? `${processName} - ${name}` : name;\n\n return (\n <StyledNode\n data-testid={testIds.root}\n role='treeitem'\n aria-selected={parentNodeTabIndex === 0}\n aria-labelledby={id}\n ref={assignmentRef}\n onKeyDown={(e: KeyboardEvent<HTMLElement>) => {\n e.stopPropagation();\n if (e.key === 'Enter' && !nodeInternalFocus) {\n setNodeInternalFocusHandler?.(true);\n reverseTabFlow.current = false;\n return;\n }\n\n if (e.key === 'Escape' && nodeInternalFocus) {\n changeFocusHandler(id);\n setNodeInternalFocusHandler?.(false);\n escapeNodeHandler();\n reverseTabFlow.current = false;\n return;\n }\n\n if (e.shiftKey && e.key === 'Tab' && nodeInternalFocus) {\n reverseTabFlow.current = true;\n } else if (e.key === 'Tab' && nodeInternalFocus) {\n reverseTabFlow.current = false;\n }\n\n if (!nodeInternalFocus) {\n navigationHandler(e);\n }\n }}\n onClick={(e: MouseEvent<HTMLLIElement>) => {\n e.stopPropagation();\n reverseTabFlow.current = false;\n changeFocusHandler(id);\n }}\n tabIndex={nodeInternalFocus ? -1 : parentNodeTabIndex}\n isFocus={nodeInternalFocus ? false : parentNodeTabIndex === 0}\n lastNode={lastNode}\n depth={styledElementDepth}\n onFocus={(e: FocusEvent<HTMLElement>) => {\n e.stopPropagation();\n changeFocusHandler(id);\n }}\n aria-level={depth}\n aria-setsize={setSize}\n aria-posinset={posInset}\n >\n <Grid\n container={{\n alignItems: 'center',\n cols: isMediumOrAbove ? '2fr 2fr auto' : '2fr 0.5fr',\n colGap: isMediumOrAbove ? 3 : 0,\n rows: isMediumOrAbove ? 'repeat(1, auto)' : 'repeat(2, auto)'\n }}\n as={StyledAssignmentItem}\n >\n <VisuallyHiddenText>{`${t('assignment_announcement_label')}`}</VisuallyHiddenText>\n <Flex\n data-testid={testIds.label}\n container={{ alignItems: 'center' }}\n as={StyledProcessContainer}\n depth={styledElementDepth}\n >\n <PauseTextNode>\n <AssignmentDetails processName={processName} name={name} />\n </PauseTextNode>\n </Flex>\n <Flex\n data-testid={testIds.assignee}\n container={{ justify: isMediumOrAbove ? 'end' : 'start' }}\n as={StyledAssigneeContainer}\n depth={styledElementDepth}\n variant='secondary'\n >\n <StyledAssignmentItemMetaList\n wrapItems\n items={[\n <>\n <StyledAssigneeText\n onClick={(e: MouseEvent<HTMLButtonElement>) => {\n onAssigneeClick(assigneeId, e);\n }}\n variant='link'\n ref={setAssigneeElement}\n data-testid={testIds.assignee}\n tabIndex={childElementsTabIndex}\n >\n <PauseTextNode>{assigneeName}</PauseTextNode>\n </StyledAssigneeText>\n <Tooltip target={assigneeEl} smart>\n {assigneeName}\n </Tooltip>\n </>,\n sla && (\n <Text variant='secondary' data-testid={testIds.sla}>\n <PauseTextNode>{sla}</PauseTextNode>\n </Text>\n ),\n <>\n <Text variant='secondary' as={StyledLabelContainer} data-testid={testIds.urgency}>\n {t('assignment_item_urgency')}\n </Text>\n <Text variant='secondary'>\n <PauseTextNode>{urgency}</PauseTextNode>\n </Text>\n </>\n ]}\n />\n </Flex>\n <Flex\n as={StyledActionContainer}\n container={{ justify: 'end' }}\n isMediumOrAbove={isMediumOrAbove}\n >\n {onOpen && (\n <Button\n data-testid={testIds.action}\n compact\n variant='primary'\n onClick={(e: MouseEvent<HTMLButtonElement>) => onOpen(id, e)}\n tabIndex={childElementsTabIndex}\n aria-label={t('assignments_go_announcement_label', [assignmentDetail])}\n >\n {t('go')}\n </Button>\n )}\n </Flex>\n </Grid>\n </StyledNode>\n );\n};\n\nexport default withTestIds(AssignmentItem, getAssignmentTestIds);\n"]}
1
+ {"version":3,"file":"AssignmentItem.js","sourceRoot":"","sources":["../../../../src/components/HierarchicalAssignments/nodeItems/AssignmentItem.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useRef, useContext, useCallback } from 'react';\nimport type { MouseEvent, KeyboardEvent, ReactNode, FocusEvent } from 'react';\nimport styled from 'styled-components';\n\nimport {\n Grid,\n Flex,\n Button,\n useI18n,\n withTestIds,\n useTestIds,\n cap,\n useDirection,\n Text,\n VisuallyHiddenText,\n useElement,\n Tooltip,\n formatDateTime,\n useConfiguration,\n parseToDate,\n NoValue\n} from '@pega/cosmos-react-core';\n\nimport {\n StyledAssignmentItem,\n StyledProcessContainer,\n StyledActionContainer,\n StyledAssigneeContainer,\n StyledLabelContainer,\n StyledNode,\n StyledAssigneeText,\n StyledAssignmentItemMetaList\n} from '../Assignments.styles';\nimport type { AssignmentProps } from '../HierarchicalAssignments.types';\nimport { getAssignmentTestIds } from '../HierarchicalAssignments.test-ids';\nimport AssignmentTreeContext from '../AssignmentContext';\nimport AssignmentDetails from '../AssignmentDetail';\nimport { restrictDepth, initialDepth } from '../helpers';\n\nimport useNodeFocus from './useNodeFocus';\n\ninterface AssignmentItemProps extends AssignmentProps {\n /** Property defines the node's level */\n depth: number;\n /** total the number of items in the current set of treeitems */\n setSize?: number;\n /** the position of the element within the whole set of treeitems */\n posInset?: number;\n}\n\nconst StyledHiddenText = styled(VisuallyHiddenText)`\n width: 0;\n`;\n\nexport const PauseTextNode = ({ children }: { children: ReactNode }) => {\n return (\n <>\n {children}\n <StyledHiddenText>, </StyledHiddenText>\n </>\n );\n};\n\nconst AssignmentItem = ({\n name,\n processName,\n assigneeName,\n urgency,\n sla,\n depth,\n id,\n assigneeId,\n onOpen,\n onAssigneeClick,\n setSize,\n posInset\n}: AssignmentItemProps) => {\n const {\n firstNodeId,\n focusedNodeId,\n lastNodeId,\n changeFocusHandler,\n caseIdExpandList,\n isMediumOrAbove,\n parentRef,\n nodeInternalFocus,\n setNodeInternalFocusHandler,\n reverseTabFlow\n } = useContext(AssignmentTreeContext);\n const assignmentRef = useRef<HTMLLIElement>(null);\n const firstLevelAssignment = depth === initialDepth;\n const styledElementDepth = firstLevelAssignment ? 0 : restrictDepth(depth);\n const childElementsTabIndex = nodeInternalFocus ? 0 : -1;\n\n const { parentNodeTabIndex, lastNode, escapeNodeHandler } = useNodeFocus(\n id,\n assignmentRef,\n parentRef,\n {\n firstNodeId,\n focusedNodeId,\n lastNodeId,\n nodeInternalFocus,\n reverseTabFlow\n }\n );\n\n const { start } = useDirection();\n\n const t = useI18n();\n const { locale } = useConfiguration();\n const [assigneeEl, setAssigneeElement] = useElement<HTMLElement>();\n const testIds = useTestIds('', getAssignmentTestIds);\n\n const navigationHandler = useCallback(\n (e: KeyboardEvent<HTMLElement>) => {\n if (['ArrowUp', 'ArrowDown'].includes(e.key)) e.preventDefault();\n switch (e.key) {\n case 'ArrowUp':\n changeFocusHandler(id, 'up', caseIdExpandList);\n break;\n case 'ArrowDown':\n changeFocusHandler(id, 'down', caseIdExpandList);\n break;\n case `Arrow${cap(start)}`:\n if (!firstLevelAssignment) {\n changeFocusHandler(id, 'left', caseIdExpandList);\n }\n break;\n case 'Home':\n if (firstNodeId) changeFocusHandler(firstNodeId);\n break;\n case 'End':\n if (lastNodeId) changeFocusHandler(lastNodeId);\n break;\n default:\n }\n },\n [id, firstNodeId, lastNodeId, firstLevelAssignment, caseIdExpandList]\n );\n const assignmentDetail = processName ? `${processName} - ${name}` : name;\n\n return (\n <StyledNode\n data-testid={testIds.root}\n role='treeitem'\n aria-selected={parentNodeTabIndex === 0}\n aria-labelledby={id}\n ref={assignmentRef}\n onKeyDown={(e: KeyboardEvent<HTMLElement>) => {\n e.stopPropagation();\n if (e.key === 'Enter' && !nodeInternalFocus) {\n setNodeInternalFocusHandler?.(true);\n reverseTabFlow.current = false;\n return;\n }\n\n if (e.key === 'Escape' && nodeInternalFocus) {\n changeFocusHandler(id);\n setNodeInternalFocusHandler?.(false);\n escapeNodeHandler();\n reverseTabFlow.current = false;\n return;\n }\n\n if (e.shiftKey && e.key === 'Tab' && nodeInternalFocus) {\n reverseTabFlow.current = true;\n } else if (e.key === 'Tab' && nodeInternalFocus) {\n reverseTabFlow.current = false;\n }\n\n if (!nodeInternalFocus) {\n navigationHandler(e);\n }\n }}\n onClick={(e: MouseEvent<HTMLLIElement>) => {\n e.stopPropagation();\n reverseTabFlow.current = false;\n changeFocusHandler(id);\n }}\n tabIndex={nodeInternalFocus ? -1 : parentNodeTabIndex}\n isFocus={nodeInternalFocus ? false : parentNodeTabIndex === 0}\n lastNode={lastNode}\n depth={styledElementDepth}\n onFocus={(e: FocusEvent<HTMLElement>) => {\n e.stopPropagation();\n changeFocusHandler(id);\n }}\n aria-level={depth}\n aria-setsize={setSize}\n aria-posinset={posInset}\n >\n <Grid\n container={{\n alignItems: 'center',\n cols: isMediumOrAbove ? '2fr 2fr auto' : '2fr 0.5fr',\n colGap: isMediumOrAbove ? 3 : 0,\n rows: isMediumOrAbove ? 'repeat(1, auto)' : 'repeat(2, auto)'\n }}\n as={StyledAssignmentItem}\n >\n <VisuallyHiddenText>{`${t('assignment_announcement_label')}`}</VisuallyHiddenText>\n <Flex\n data-testid={testIds.label}\n container={{ alignItems: 'center' }}\n as={StyledProcessContainer}\n depth={styledElementDepth}\n >\n <PauseTextNode>\n <AssignmentDetails processName={processName} name={name} />\n </PauseTextNode>\n </Flex>\n <Flex\n data-testid={testIds.assignee}\n container={{ justify: isMediumOrAbove ? 'end' : 'start' }}\n as={StyledAssigneeContainer}\n depth={styledElementDepth}\n variant='secondary'\n >\n <StyledAssignmentItemMetaList\n wrapItems\n items={[\n <>\n <StyledAssigneeText\n onClick={(e: MouseEvent<HTMLButtonElement>) => {\n onAssigneeClick(assigneeId, e);\n }}\n variant='link'\n ref={setAssigneeElement}\n data-testid={testIds.assignee}\n tabIndex={childElementsTabIndex}\n >\n <PauseTextNode>{assigneeName}</PauseTextNode>\n </StyledAssigneeText>\n <Tooltip target={assigneeEl} smart>\n {assigneeName}\n </Tooltip>\n </>,\n sla && (\n <Text variant='secondary' data-testid={testIds.sla}>\n <PauseTextNode>\n {Date.parse(sla) ? (\n t('assignments_sla', [\n formatDateTime(parseToDate(sla), {\n t,\n locale,\n format: 'medium',\n variant: 'relative'\n })\n ])\n ) : (\n <NoValue />\n )}\n </PauseTextNode>\n </Text>\n ),\n <>\n <Text variant='secondary' as={StyledLabelContainer} data-testid={testIds.urgency}>\n {t('assignment_item_urgency')}\n </Text>\n <Text variant='secondary'>\n <PauseTextNode>{urgency}</PauseTextNode>\n </Text>\n </>\n ]}\n />\n </Flex>\n <Flex\n as={StyledActionContainer}\n container={{ justify: 'end' }}\n isMediumOrAbove={isMediumOrAbove}\n >\n {onOpen && (\n <Button\n data-testid={testIds.action}\n compact\n variant='primary'\n onClick={(e: MouseEvent<HTMLButtonElement>) => onOpen(id, e)}\n tabIndex={childElementsTabIndex}\n aria-label={t('assignments_go_announcement_label', [assignmentDetail])}\n >\n {t('go')}\n </Button>\n )}\n </Flex>\n </Grid>\n </StyledNode>\n );\n};\n\nexport default withTestIds(AssignmentItem, getAssignmentTestIds);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CaseDetail.d.ts","sourceRoot":"","sources":["../../../../src/components/HierarchicalAssignments/nodeItems/CaseDetail.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA6B,SAAS,EAAc,MAAM,OAAO,CAAC;AAgB9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAiBtE,UAAU,gBAAiB,SAAQ,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;IAChE,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB,gDAAgD;IAChD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,sDAAsD;IACtD,IAAI,EAAE,OAAO,CAAC;IACd,qEAAqE;IACrE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;yIAcE,gBAAgB;;;AAsNnB,wBAAuD"}
1
+ {"version":3,"file":"CaseDetail.d.ts","sourceRoot":"","sources":["../../../../src/components/HierarchicalAssignments/nodeItems/CaseDetail.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA6B,SAAS,EAAc,MAAM,OAAO,CAAC;AAgB9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAiBtE,UAAU,gBAAiB,SAAQ,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;IAChE,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB,gDAAgD;IAChD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,sDAAsD;IACtD,IAAI,EAAE,OAAO,CAAC;IACd,qEAAqE;IACrE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;yIAcE,gBAAgB;;;AAyNnB,wBAAuD"}
@@ -62,7 +62,9 @@ const CaseDetail = ({ hasChildren, depth, id, open, onExpandButtonClickHandler,
62
62
  default:
63
63
  }
64
64
  }, [id, firstNodeId, lastNodeId, open, hasChildren, caseIdExpandList]);
65
- const caseDescriptionContainer = useMemo(() => (_jsx(PauseTextNode, { children: _jsx(StyledLinkContainer, { isMediumOrAbove: isMediumOrAbove, children: _jsxs(Link, { "data-testid": testIds.label, href: link.href, previewable: true, onPreview: link.onPreview, target: link?.target, icon: true, tabIndex: childElementsTabIndex, children: [!hasChildren && (_jsx(VisuallyHiddenText, { children: t('case_announcement_label') })), name] }) }, `${id}-caseName`) })), [isMediumOrAbove, name, id, link, testIds, childElementsTabIndex, hasChildren]);
65
+ const caseDescriptionContainer = useMemo(() => (_jsx(PauseTextNode, { children: _jsx(StyledLinkContainer, { isMediumOrAbove: isMediumOrAbove, children: _jsxs(Link, { "data-testid": testIds.label, href: link.href, previewable: true, onPreview: link.onPreview, target: link?.target, icon: true, tabIndex: childElementsTabIndex, onClick: (e) => {
66
+ link.onClick?.(e, id);
67
+ }, children: [!hasChildren && (_jsx(VisuallyHiddenText, { children: t('case_announcement_label') })), name] }) }, `${id}-caseName`) })), [isMediumOrAbove, name, id, link, testIds, childElementsTabIndex, hasChildren]);
66
68
  const caseIdStatusContainer = useMemo(() => (_jsx(StyledMetaIdStatusContainer, { wrapItems: false, items: [
67
69
  _jsx(PauseTextNode, { children: _jsx(Text, { "data-testid": testIds.id, variant: 'secondary', children: id }) }, `${id}-id`),
68
70
  _jsx(PauseTextNode, { children: _jsx(Status, { "data-testid": testIds.status, variant: variant ?? 'info', children: text }) }, `${id}-status`)
@@ -1 +1 @@
1
- {"version":3,"file":"CaseDetail.js","sourceRoot":"","sources":["../../../../src/components/HierarchicalAssignments/nodeItems/CaseDetail.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useContext, useRef, useCallback, useMemo } from 'react';\nimport type { KeyboardEvent, MouseEvent, ReactNode, FocusEvent } from 'react';\n\nimport {\n Flex,\n Icon,\n Text,\n Link,\n Status,\n withTestIds,\n useTestIds,\n cap,\n useDirection,\n VisuallyHiddenText,\n useI18n\n} from '@pega/cosmos-react-core';\n\nimport type { CaseListProps } from '../HierarchicalAssignments.types';\nimport { getCaseTestIds } from '../HierarchicalAssignments.test-ids';\nimport {\n StyledExpandButton,\n StyledHeaderContainer,\n StyledLinkContainer,\n StyledMetaListContainer,\n StyledMetaIdStatusContainer,\n StyledSummaryItem,\n StyledNode\n} from '../Assignments.styles';\nimport AssignmentTreeContext from '../AssignmentContext';\nimport { restrictDepth } from '../helpers';\n\nimport useNodeFocus from './useNodeFocus';\nimport { PauseTextNode } from './AssignmentItem';\n\ninterface CaseDetailsProps extends Omit<CaseListProps, 'children'> {\n /** Property defines the node's depth level */\n depth: number;\n /** Boolean that refers the current case has children or not */\n hasChildren: boolean;\n /** Callback to trigger on case Expand button */\n onExpandButtonClickHandler?: () => void;\n /** Boolean that refers current case expanded state */\n open: boolean;\n /** Renders of Children of Case, List of Assignments or Child Case */\n children?: ReactNode;\n /** total the number of items in the current set of treeitems */\n setSize?: number;\n /** the position of the element within the whole set of treeitems */\n posInset?: number;\n}\n\nconst CaseDetail = ({\n hasChildren,\n depth,\n id,\n open,\n onExpandButtonClickHandler,\n link,\n name,\n status,\n children,\n setSize,\n posInset\n}: CaseDetailsProps) => {\n const { variant, text } = status || {};\n const {\n firstNodeId,\n focusedNodeId,\n lastNodeId,\n changeFocusHandler,\n caseIdExpandList,\n isMediumOrAbove,\n parentRef,\n nodeInternalFocus,\n setNodeInternalFocusHandler,\n reverseTabFlow\n } = useContext(AssignmentTreeContext);\n const testIds = useTestIds('', getCaseTestIds);\n const { start, end } = useDirection();\n const caseHeaderRef = useRef<HTMLLIElement>(null);\n const indent = depth !== 1 && !hasChildren;\n\n const childElementsTabIndex = nodeInternalFocus ? 0 : -1;\n const { parentNodeTabIndex, lastNode, escapeNodeHandler } = useNodeFocus(\n id,\n caseHeaderRef,\n parentRef,\n {\n firstNodeId,\n focusedNodeId,\n lastNodeId,\n nodeInternalFocus,\n reverseTabFlow\n }\n );\n\n const t = useI18n();\n\n const navigationHandler = useCallback(\n (e: KeyboardEvent<HTMLElement>) => {\n if (['ArrowUp', 'ArrowDown'].includes(e.key)) e.preventDefault();\n switch (e.key) {\n case 'ArrowUp':\n changeFocusHandler(id, 'up', caseIdExpandList);\n break;\n case 'ArrowDown':\n changeFocusHandler(id, 'down', caseIdExpandList);\n break;\n case `Arrow${cap(start)}`:\n if (open) {\n onExpandButtonClickHandler?.();\n } else {\n changeFocusHandler(id, 'left', caseIdExpandList);\n }\n break;\n case `Arrow${cap(end)}`:\n if (hasChildren) {\n if (!open) {\n onExpandButtonClickHandler?.();\n } else {\n changeFocusHandler(id, 'right', caseIdExpandList);\n }\n }\n break;\n case 'Home':\n if (firstNodeId) changeFocusHandler(firstNodeId);\n break;\n case 'End':\n if (lastNodeId) changeFocusHandler(lastNodeId);\n break;\n default:\n }\n },\n [id, firstNodeId, lastNodeId, open, hasChildren, caseIdExpandList]\n );\n\n const caseDescriptionContainer = useMemo(\n () => (\n <PauseTextNode>\n <StyledLinkContainer isMediumOrAbove={isMediumOrAbove} key={`${id}-caseName`}>\n <Link\n data-testid={testIds.label}\n href={link.href}\n previewable\n onPreview={link.onPreview}\n target={link?.target}\n icon\n tabIndex={childElementsTabIndex}\n >\n {!hasChildren && (\n <VisuallyHiddenText>{t('case_announcement_label')}</VisuallyHiddenText>\n )}\n {name}\n </Link>\n </StyledLinkContainer>\n </PauseTextNode>\n ),\n [isMediumOrAbove, name, id, link, testIds, childElementsTabIndex, hasChildren]\n );\n\n const caseIdStatusContainer = useMemo(\n () => (\n <StyledMetaIdStatusContainer\n key={`${id}-id-status`}\n wrapItems={false}\n items={[\n <PauseTextNode key={`${id}-id`}>\n <Text data-testid={testIds.id} variant='secondary'>\n {id}\n </Text>\n </PauseTextNode>,\n <PauseTextNode key={`${id}-status`}>\n <Status data-testid={testIds.status} variant={variant ?? 'info'}>\n {text}\n </Status>\n </PauseTextNode>\n ]}\n />\n ),\n [id, variant, text, testIds]\n );\n\n const metaList = useMemo(\n () => [caseDescriptionContainer, caseIdStatusContainer],\n [caseDescriptionContainer, caseIdStatusContainer]\n );\n\n return (\n <StyledNode\n data-testid={testIds.root}\n role='treeitem'\n aria-selected={parentNodeTabIndex === 0}\n aria-expanded={hasChildren && !nodeInternalFocus ? open : undefined}\n tabIndex={nodeInternalFocus ? -1 : parentNodeTabIndex}\n aria-labelledby={id}\n aria-owns={hasChildren ? `${id}-subtree` : undefined}\n ref={caseHeaderRef}\n onKeyDown={(e: KeyboardEvent<HTMLElement>) => {\n e.stopPropagation();\n if (e.key === 'Enter' && !nodeInternalFocus) {\n e.preventDefault();\n setNodeInternalFocusHandler?.(true);\n reverseTabFlow.current = false;\n return;\n }\n\n if (e.key === 'Escape' && nodeInternalFocus) {\n changeFocusHandler(id);\n setNodeInternalFocusHandler?.(false);\n escapeNodeHandler();\n reverseTabFlow.current = false;\n return;\n }\n\n if (e.shiftKey && e.key === 'Tab' && nodeInternalFocus) {\n reverseTabFlow.current = true;\n } else if (e.key === 'Tab' && nodeInternalFocus) {\n reverseTabFlow.current = false;\n }\n\n if (!nodeInternalFocus) {\n navigationHandler(e);\n }\n }}\n onClick={(e: MouseEvent<HTMLLIElement>) => {\n e.stopPropagation();\n reverseTabFlow.current = false;\n changeFocusHandler(id);\n }}\n isFocus={nodeInternalFocus ? false : parentNodeTabIndex === 0}\n lastNode={lastNode}\n isChild\n depth={restrictDepth(depth)}\n onFocus={(e: FocusEvent<HTMLElement>) => {\n e.stopPropagation();\n changeFocusHandler(id);\n }}\n aria-level={depth}\n aria-setsize={setSize}\n aria-posinset={posInset}\n >\n <Flex\n as={StyledHeaderContainer}\n container={{ alignItems: 'center', gap: 1 }}\n depth={restrictDepth(depth)}\n id={id}\n >\n {hasChildren && (\n <StyledExpandButton\n data-testid={testIds.toggleAction}\n type='button'\n variant='text'\n aria-expanded={open}\n onClick={() => onExpandButtonClickHandler?.()}\n tabIndex={childElementsTabIndex}\n aria-label={t('case_announcement_label', [nodeInternalFocus ? name : ''])}\n >\n <Icon name='caret-right' />\n </StyledExpandButton>\n )}\n {isMediumOrAbove ? (\n <StyledMetaListContainer\n role='none'\n isMediumOrAbove={isMediumOrAbove}\n indent={indent}\n wrapItems\n items={metaList}\n />\n ) : (\n <StyledSummaryItem indent={indent} primary={metaList[0]} secondary={metaList[1]} />\n )}\n </Flex>\n {children || null}\n </StyledNode>\n );\n};\n\nexport default withTestIds(CaseDetail, getCaseTestIds);\n"]}
1
+ {"version":3,"file":"CaseDetail.js","sourceRoot":"","sources":["../../../../src/components/HierarchicalAssignments/nodeItems/CaseDetail.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useContext, useRef, useCallback, useMemo } from 'react';\nimport type { KeyboardEvent, MouseEvent, ReactNode, FocusEvent } from 'react';\n\nimport {\n Flex,\n Icon,\n Text,\n Link,\n Status,\n withTestIds,\n useTestIds,\n cap,\n useDirection,\n VisuallyHiddenText,\n useI18n\n} from '@pega/cosmos-react-core';\n\nimport type { CaseListProps } from '../HierarchicalAssignments.types';\nimport { getCaseTestIds } from '../HierarchicalAssignments.test-ids';\nimport {\n StyledExpandButton,\n StyledHeaderContainer,\n StyledLinkContainer,\n StyledMetaListContainer,\n StyledMetaIdStatusContainer,\n StyledSummaryItem,\n StyledNode\n} from '../Assignments.styles';\nimport AssignmentTreeContext from '../AssignmentContext';\nimport { restrictDepth } from '../helpers';\n\nimport useNodeFocus from './useNodeFocus';\nimport { PauseTextNode } from './AssignmentItem';\n\ninterface CaseDetailsProps extends Omit<CaseListProps, 'children'> {\n /** Property defines the node's depth level */\n depth: number;\n /** Boolean that refers the current case has children or not */\n hasChildren: boolean;\n /** Callback to trigger on case Expand button */\n onExpandButtonClickHandler?: () => void;\n /** Boolean that refers current case expanded state */\n open: boolean;\n /** Renders of Children of Case, List of Assignments or Child Case */\n children?: ReactNode;\n /** total the number of items in the current set of treeitems */\n setSize?: number;\n /** the position of the element within the whole set of treeitems */\n posInset?: number;\n}\n\nconst CaseDetail = ({\n hasChildren,\n depth,\n id,\n open,\n onExpandButtonClickHandler,\n link,\n name,\n status,\n children,\n setSize,\n posInset\n}: CaseDetailsProps) => {\n const { variant, text } = status || {};\n const {\n firstNodeId,\n focusedNodeId,\n lastNodeId,\n changeFocusHandler,\n caseIdExpandList,\n isMediumOrAbove,\n parentRef,\n nodeInternalFocus,\n setNodeInternalFocusHandler,\n reverseTabFlow\n } = useContext(AssignmentTreeContext);\n const testIds = useTestIds('', getCaseTestIds);\n const { start, end } = useDirection();\n const caseHeaderRef = useRef<HTMLLIElement>(null);\n const indent = depth !== 1 && !hasChildren;\n\n const childElementsTabIndex = nodeInternalFocus ? 0 : -1;\n const { parentNodeTabIndex, lastNode, escapeNodeHandler } = useNodeFocus(\n id,\n caseHeaderRef,\n parentRef,\n {\n firstNodeId,\n focusedNodeId,\n lastNodeId,\n nodeInternalFocus,\n reverseTabFlow\n }\n );\n\n const t = useI18n();\n\n const navigationHandler = useCallback(\n (e: KeyboardEvent<HTMLElement>) => {\n if (['ArrowUp', 'ArrowDown'].includes(e.key)) e.preventDefault();\n switch (e.key) {\n case 'ArrowUp':\n changeFocusHandler(id, 'up', caseIdExpandList);\n break;\n case 'ArrowDown':\n changeFocusHandler(id, 'down', caseIdExpandList);\n break;\n case `Arrow${cap(start)}`:\n if (open) {\n onExpandButtonClickHandler?.();\n } else {\n changeFocusHandler(id, 'left', caseIdExpandList);\n }\n break;\n case `Arrow${cap(end)}`:\n if (hasChildren) {\n if (!open) {\n onExpandButtonClickHandler?.();\n } else {\n changeFocusHandler(id, 'right', caseIdExpandList);\n }\n }\n break;\n case 'Home':\n if (firstNodeId) changeFocusHandler(firstNodeId);\n break;\n case 'End':\n if (lastNodeId) changeFocusHandler(lastNodeId);\n break;\n default:\n }\n },\n [id, firstNodeId, lastNodeId, open, hasChildren, caseIdExpandList]\n );\n\n const caseDescriptionContainer = useMemo(\n () => (\n <PauseTextNode>\n <StyledLinkContainer isMediumOrAbove={isMediumOrAbove} key={`${id}-caseName`}>\n <Link\n data-testid={testIds.label}\n href={link.href}\n previewable\n onPreview={link.onPreview}\n target={link?.target}\n icon\n tabIndex={childElementsTabIndex}\n onClick={(e: MouseEvent<HTMLAnchorElement | HTMLButtonElement>) => {\n link.onClick?.(e, id);\n }}\n >\n {!hasChildren && (\n <VisuallyHiddenText>{t('case_announcement_label')}</VisuallyHiddenText>\n )}\n {name}\n </Link>\n </StyledLinkContainer>\n </PauseTextNode>\n ),\n [isMediumOrAbove, name, id, link, testIds, childElementsTabIndex, hasChildren]\n );\n\n const caseIdStatusContainer = useMemo(\n () => (\n <StyledMetaIdStatusContainer\n key={`${id}-id-status`}\n wrapItems={false}\n items={[\n <PauseTextNode key={`${id}-id`}>\n <Text data-testid={testIds.id} variant='secondary'>\n {id}\n </Text>\n </PauseTextNode>,\n <PauseTextNode key={`${id}-status`}>\n <Status data-testid={testIds.status} variant={variant ?? 'info'}>\n {text}\n </Status>\n </PauseTextNode>\n ]}\n />\n ),\n [id, variant, text, testIds]\n );\n\n const metaList = useMemo(\n () => [caseDescriptionContainer, caseIdStatusContainer],\n [caseDescriptionContainer, caseIdStatusContainer]\n );\n\n return (\n <StyledNode\n data-testid={testIds.root}\n role='treeitem'\n aria-selected={parentNodeTabIndex === 0}\n aria-expanded={hasChildren && !nodeInternalFocus ? open : undefined}\n tabIndex={nodeInternalFocus ? -1 : parentNodeTabIndex}\n aria-labelledby={id}\n aria-owns={hasChildren ? `${id}-subtree` : undefined}\n ref={caseHeaderRef}\n onKeyDown={(e: KeyboardEvent<HTMLElement>) => {\n e.stopPropagation();\n if (e.key === 'Enter' && !nodeInternalFocus) {\n e.preventDefault();\n setNodeInternalFocusHandler?.(true);\n reverseTabFlow.current = false;\n return;\n }\n\n if (e.key === 'Escape' && nodeInternalFocus) {\n changeFocusHandler(id);\n setNodeInternalFocusHandler?.(false);\n escapeNodeHandler();\n reverseTabFlow.current = false;\n return;\n }\n\n if (e.shiftKey && e.key === 'Tab' && nodeInternalFocus) {\n reverseTabFlow.current = true;\n } else if (e.key === 'Tab' && nodeInternalFocus) {\n reverseTabFlow.current = false;\n }\n\n if (!nodeInternalFocus) {\n navigationHandler(e);\n }\n }}\n onClick={(e: MouseEvent<HTMLLIElement>) => {\n e.stopPropagation();\n reverseTabFlow.current = false;\n changeFocusHandler(id);\n }}\n isFocus={nodeInternalFocus ? false : parentNodeTabIndex === 0}\n lastNode={lastNode}\n isChild\n depth={restrictDepth(depth)}\n onFocus={(e: FocusEvent<HTMLElement>) => {\n e.stopPropagation();\n changeFocusHandler(id);\n }}\n aria-level={depth}\n aria-setsize={setSize}\n aria-posinset={posInset}\n >\n <Flex\n as={StyledHeaderContainer}\n container={{ alignItems: 'center', gap: 1 }}\n depth={restrictDepth(depth)}\n id={id}\n >\n {hasChildren && (\n <StyledExpandButton\n data-testid={testIds.toggleAction}\n type='button'\n variant='text'\n aria-expanded={open}\n onClick={() => onExpandButtonClickHandler?.()}\n tabIndex={childElementsTabIndex}\n aria-label={t('case_announcement_label', [nodeInternalFocus ? name : ''])}\n >\n <Icon name='caret-right' />\n </StyledExpandButton>\n )}\n {isMediumOrAbove ? (\n <StyledMetaListContainer\n role='none'\n isMediumOrAbove={isMediumOrAbove}\n indent={indent}\n wrapItems\n items={metaList}\n />\n ) : (\n <StyledSummaryItem indent={indent} primary={metaList[0]} secondary={metaList[1]} />\n )}\n </Flex>\n {children || null}\n </StyledNode>\n );\n};\n\nexport default withTestIds(CaseDetail, getCaseTestIds);\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pega/cosmos-react-work",
3
- "version": "8.0.0-build.41.2",
3
+ "version": "8.0.0-build.43.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/pegasystems/cosmos-react.git",
@@ -19,8 +19,8 @@
19
19
  "build": "tsc -b tsconfig.build.json"
20
20
  },
21
21
  "dependencies": {
22
- "@pega/cosmos-react-core": "8.0.0-build.41.2",
23
- "@pega/cosmos-react-rte": "8.0.0-build.41.2",
22
+ "@pega/cosmos-react-core": "8.0.0-build.43.0",
23
+ "@pega/cosmos-react-rte": "8.0.0-build.43.0",
24
24
  "@types/react": "^17.0.62 || ^18.3.3",
25
25
  "@types/react-dom": "^17.0.20 || ^18.3.0",
26
26
  "@types/styled-components": "^5.1.26",