@pega/cosmos-react-demos 5.0.0-dev.4.3 → 5.0.0-dev.4.5
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/jsx/work/CaseView/CaseView.mocks.d.ts +12 -1
- package/jsx/work/CaseView/CaseView.mocks.d.ts.map +1 -1
- package/jsx/work/CaseView/CaseView.mocks.jsx +63 -9
- package/jsx/work/CaseView/CaseView.mocks.jsx.map +1 -1
- package/lib/work/CaseView/CaseView.mocks.d.ts +12 -1
- package/lib/work/CaseView/CaseView.mocks.d.ts.map +1 -1
- package/lib/work/CaseView/CaseView.mocks.js +61 -9
- package/lib/work/CaseView/CaseView.mocks.js.map +1 -1
- package/package.json +7 -7
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Dispatch, SetStateAction } from 'react';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
2
3
|
import { SummaryListProps } from '@pega/cosmos-react-core';
|
|
3
4
|
import type { Tab } from '@pega/cosmos-react-core/lib/components/Tabs/Tabs.types';
|
|
4
5
|
import { CaseViewProps } from '@pega/cosmos-react-work';
|
|
@@ -84,8 +85,18 @@ interface UtilitiesArgs {
|
|
|
84
85
|
followers?: CaseViewMockProps['followers'];
|
|
85
86
|
tags?: CaseViewMockProps['tags'];
|
|
86
87
|
}
|
|
88
|
+
interface UtilitySummaryItemsArgs {
|
|
89
|
+
predictions?: CaseViewMockProps['predictions'];
|
|
90
|
+
attachments?: CaseViewMockProps['attachments'];
|
|
91
|
+
stakeholders?: CaseViewMockProps['stakeholders'];
|
|
92
|
+
followers?: CaseViewMockProps['followers'];
|
|
93
|
+
tags?: CaseViewMockProps['tags'];
|
|
94
|
+
setDialogTarget: (instance: HTMLElement | null) => void;
|
|
95
|
+
setDialogContent: React.Dispatch<React.SetStateAction<ReactNode>>;
|
|
96
|
+
setShowDialog: React.Dispatch<React.SetStateAction<boolean>>;
|
|
97
|
+
}
|
|
87
98
|
export declare const Utilities: ({ predictions, attachments, stakeholders, followers, tags }: UtilitiesArgs) => import("react").JSX.Element;
|
|
88
|
-
export declare const getUtilitiesSummaryItems: ({ predictions, attachments, stakeholders, followers, tags }:
|
|
99
|
+
export declare const getUtilitiesSummaryItems: ({ predictions, attachments, stakeholders, followers, tags, setDialogTarget, setDialogContent, setShowDialog }: UtilitySummaryItemsArgs) => NonNullable<CaseViewProps['utilitiesSummaryItems']>;
|
|
89
100
|
export declare const getCaseActions: () => {
|
|
90
101
|
text: string;
|
|
91
102
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseView.mocks.d.ts","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.mocks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAiC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CaseView.mocks.d.ts","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.mocks.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { useMemo, useState } from 'react';
|
|
|
2
2
|
import createDOMPurify from 'dompurify';
|
|
3
3
|
import styled, { css } from 'styled-components';
|
|
4
4
|
import { Button, Link, createStringMatcher, Modal, SummaryList, useModalManager, useElement, ViewAll, Status, Flex, Grid, registerIcon, Banner, createUID, useBreakpoint, Avatar, Tabs, TabPanel, Card, CardHeader, Text } from '@pega/cosmos-react-core';
|
|
5
|
-
import { Glimpse, CaseView, CasePreview } from '@pega/cosmos-react-work';
|
|
5
|
+
import { Glimpse, CaseView, CasePreview, UtilitySummaryItemDialog } from '@pega/cosmos-react-work';
|
|
6
6
|
import { RichTextViewer } from '@pega/cosmos-react-rte';
|
|
7
7
|
import * as userSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/user-solid.icon';
|
|
8
8
|
import { PredictionsDemo } from '../Predictions/Predictions.stories';
|
|
@@ -381,18 +381,62 @@ export const Utilities = ({ predictions, attachments, stakeholders, followers, t
|
|
|
381
381
|
{tags && <TagsDemo />}
|
|
382
382
|
</>);
|
|
383
383
|
};
|
|
384
|
-
export const getUtilitiesSummaryItems = ({ predictions, attachments, stakeholders, followers, tags }) => {
|
|
384
|
+
export const getUtilitiesSummaryItems = ({ predictions, attachments, stakeholders, followers, tags, setDialogTarget, setDialogContent, setShowDialog }) => {
|
|
385
385
|
const items = [];
|
|
386
386
|
if (predictions)
|
|
387
|
-
items.push({
|
|
387
|
+
items.push({
|
|
388
|
+
iconName: 'polaris',
|
|
389
|
+
name: 'Predictions',
|
|
390
|
+
onClick: e => {
|
|
391
|
+
setDialogTarget(e.currentTarget);
|
|
392
|
+
setDialogContent(<PredictionsDemo />);
|
|
393
|
+
setShowDialog(true);
|
|
394
|
+
}
|
|
395
|
+
});
|
|
388
396
|
if (attachments)
|
|
389
|
-
items.push({
|
|
397
|
+
items.push({
|
|
398
|
+
iconName: 'paper-clip',
|
|
399
|
+
count: 4,
|
|
400
|
+
name: 'Attachments',
|
|
401
|
+
onClick: e => {
|
|
402
|
+
setDialogTarget(e.currentTarget);
|
|
403
|
+
setDialogContent(<AttachmentsMock />);
|
|
404
|
+
setShowDialog(true);
|
|
405
|
+
}
|
|
406
|
+
});
|
|
390
407
|
if (stakeholders)
|
|
391
|
-
items.push({
|
|
408
|
+
items.push({
|
|
409
|
+
iconName: 'user-search-solid',
|
|
410
|
+
count: 10,
|
|
411
|
+
name: 'Stakeholders',
|
|
412
|
+
onClick: e => {
|
|
413
|
+
setDialogTarget(e.currentTarget);
|
|
414
|
+
setDialogContent(<StakeHoldersDemo />);
|
|
415
|
+
setShowDialog(true);
|
|
416
|
+
}
|
|
417
|
+
});
|
|
392
418
|
if (followers)
|
|
393
|
-
items.push({
|
|
419
|
+
items.push({
|
|
420
|
+
iconName: 'user-star-solid',
|
|
421
|
+
count: 5,
|
|
422
|
+
name: 'Followers',
|
|
423
|
+
onClick: e => {
|
|
424
|
+
setDialogTarget(e.currentTarget);
|
|
425
|
+
setDialogContent(<MockSummaryList icon='user-star' name='Followers'/>);
|
|
426
|
+
setShowDialog(true);
|
|
427
|
+
}
|
|
428
|
+
});
|
|
394
429
|
if (tags)
|
|
395
|
-
items.push({
|
|
430
|
+
items.push({
|
|
431
|
+
iconName: 'tag',
|
|
432
|
+
count: 10,
|
|
433
|
+
name: 'Tags',
|
|
434
|
+
onClick: e => {
|
|
435
|
+
setDialogTarget(e.currentTarget);
|
|
436
|
+
setDialogContent(<TagsDemo />);
|
|
437
|
+
setShowDialog(true);
|
|
438
|
+
}
|
|
439
|
+
});
|
|
396
440
|
return items;
|
|
397
441
|
};
|
|
398
442
|
export const getCaseActions = () => {
|
|
@@ -456,6 +500,9 @@ export const CaseViewMock = ({ caseId: caseIdProp, heading, subheading, parentCa
|
|
|
456
500
|
const [previewCurrentTabId, setPreviewCurrentTabId] = useState(baseCaseTabs[0].id);
|
|
457
501
|
const isMediumOrAbove = useBreakpoint('md');
|
|
458
502
|
const [demoCurrentTabId, setDemoCurrentTabId] = useState(isMediumOrAbove ? tabs?.currentTabId ?? baseCaseTabs[0].id : `summary-${caseIdProp}`);
|
|
503
|
+
const [dialogContent, setDialogContent] = useState();
|
|
504
|
+
const [dialogTarget, setDialogTarget] = useElement();
|
|
505
|
+
const [showDialog, setShowDialog] = useState(false);
|
|
459
506
|
const demoTabs = tabs ?? {
|
|
460
507
|
items: baseCaseTabs,
|
|
461
508
|
currentTabId: demoCurrentTabId,
|
|
@@ -492,7 +539,11 @@ export const CaseViewMock = ({ caseId: caseIdProp, heading, subheading, parentCa
|
|
|
492
539
|
}} stages={demoStages} tasks={<AssignmentsDemo count={4}/>} tabs={previewTabs} tabContent={tabContent} utilities={<Grid container={{ rowGap: 2 }}>
|
|
493
540
|
<Utilities predictions={predictions} attachments={attachments} stakeholders={stakeholders} followers={followers} tags={tags}/>
|
|
494
541
|
</Grid>}/>)}
|
|
495
|
-
|
|
542
|
+
{dialogTarget && showDialog && (<UtilitySummaryItemDialog target={dialogTarget} onDismiss={() => {
|
|
543
|
+
setShowDialog(false);
|
|
544
|
+
}}>
|
|
545
|
+
{dialogContent}
|
|
546
|
+
</UtilitySummaryItemDialog>)}
|
|
496
547
|
<CaseView caseId={caseIdProp} parentCases={parentCases
|
|
497
548
|
? getParentCases({
|
|
498
549
|
caseId: caseIdProp,
|
|
@@ -525,7 +576,10 @@ export const CaseViewMock = ({ caseId: caseIdProp, heading, subheading, parentCa
|
|
|
525
576
|
attachments,
|
|
526
577
|
stakeholders,
|
|
527
578
|
followers,
|
|
528
|
-
tags
|
|
579
|
+
tags,
|
|
580
|
+
setDialogTarget,
|
|
581
|
+
setDialogContent,
|
|
582
|
+
setShowDialog
|
|
529
583
|
})} utilitiesExpanded={utilitiesExpanded} onToggleUtilities={() => {
|
|
530
584
|
setUtilitiesExpanded(cur => !cur);
|
|
531
585
|
}} intelligentGuidance={intelligentGuidance} banners={banner ? (<Banner variant='urgent' messages={[
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseView.mocks.jsx","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.mocks.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Dispatch, SetStateAction, useMemo, useState, MouseEvent } from 'react';\nimport createDOMPurify from 'dompurify';\nimport styled, { css } from 'styled-components';\n\nimport {\n Button,\n Link,\n createStringMatcher,\n Modal,\n SummaryList,\n SummaryListProps,\n useModalManager,\n useElement,\n ViewAll,\n Status,\n Flex,\n Grid,\n registerIcon,\n Banner,\n createUID,\n useBreakpoint,\n Avatar,\n Tabs,\n TabPanel,\n Card,\n CardHeader,\n Text\n} from '@pega/cosmos-react-core';\nimport type { Tab } from '@pega/cosmos-react-core/lib/components/Tabs/Tabs.types';\nimport { Glimpse, CaseViewProps, CaseView, CasePreview } from '@pega/cosmos-react-work';\nimport { TokenMap, RichTextViewer } from '@pega/cosmos-react-rte';\nimport * as userSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/user-solid.icon';\nimport { FeedProps } from '@pega/cosmos-react-social';\n\nimport { PredictionsDemo } from '../Predictions/Predictions.stories';\nimport { useMockListData } from '../../core/SummaryList/SummaryList.mocks';\nimport { StakeHoldersDemo } from '../Stakeholders/Stakeholders.stories';\nimport { TagsDemo } from '../Tags/Tags.stories';\nimport { StagesDemo } from '../Stages/Stages.stories';\nimport { AssignmentsDemo } from '../Assignments/Assignments.stories';\n\nimport { PulseMock } from './Pulse.mocks';\nimport { Details } from './Details.mocks';\nimport { AttachmentsMock } from './Attachments.mocks';\n\nregisterIcon(userSolidIcon);\n\nconst DOMPurify = createDOMPurify();\n\nexport interface CaseViewMockProps {\n caseId: CaseViewProps['caseId'];\n heading: CaseViewProps['heading'];\n subheading?: CaseViewProps['subheading'];\n parentCases?: boolean;\n summaryFields?: 'All' | 'Primary only' | 'Secondary only';\n tabs?: CaseViewProps['tabs'];\n stages?: boolean;\n tasks?: boolean | CaseViewProps['tasks'];\n taskCount?: number;\n predictions?: boolean;\n attachments?: boolean;\n stakeholders?: boolean;\n followers?: boolean;\n tags?: boolean;\n persistentUtility?: boolean | CaseViewProps['persistentUtility'];\n intelligentGuidance?: CaseViewProps['intelligentGuidance'];\n banner?: boolean;\n utilitiesExpanded?: boolean;\n promotedActions?: 0 | 1 | 2 | 3 | 4 | 5;\n headingLength?: 'short' | 'medium' | 'long';\n defaultExpanded?: boolean;\n}\n\ninterface PreviewSetters {\n setPreviewCaseId: Dispatch<SetStateAction<string | null>>;\n setPreviewCurrentTabId: Dispatch<SetStateAction<string>>;\n}\n\nconst StyledRSWrapper = styled.div(\n ({ theme }) => css`\n display: grid;\n place-items: center;\n border: 0.1875rem dashed ${theme.base.palette['border-line']};\n min-height: 6rem;\n height: var(--content-height-in-view);\n border-radius: calc(${theme.components.card['border-radius']});\n `\n);\n\n// This is a mini mock of the Constellation table component aka Repeating Structures\nconst RSTable = () => {\n return (\n <article style={{ display: 'block' }}>\n <StyledRSWrapper className='rs-wrapper'>\n <Text variant='secondary'>Table goes here</Text>\n </StyledRSWrapper>\n </article>\n );\n};\n\nconst TableSizingTabs = ({ tabCount = 3 }: { tabCount?: number }) => {\n const [currentTabId, setCurrentTabId] = useState('1');\n\n const tabs = [\n { name: 'Tab 1', id: '1' },\n { name: 'Tab 2', id: '2' },\n { name: 'Tab 3', id: '3' }\n ].slice(0, tabCount);\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Tabs\n tabs={tabs}\n type='horizontal'\n onTabClick={id => {\n setCurrentTabId(id);\n }}\n currentTabId={currentTabId}\n />\n {tabs.map(tab => (\n <TabPanel tabId={tab.id} currentTabId={currentTabId} key={tab.id}>\n <Flex container={{ direction: 'column', gap: 1 }}>\n {(() => {\n switch (tab.id) {\n case '1':\n return <RSTable />;\n\n case '2':\n return (\n <>\n <RSTable />\n <p>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\n cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat\n non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n </p>\n </>\n );\n\n case '3':\n return <TableSizingTabs tabCount={2} />;\n\n default:\n return null;\n }\n })()}\n </Flex>\n </TabPanel>\n ))}\n </Flex>\n );\n};\n\nexport const caseId = 'C-123456';\n\nexport const createDate = new Date(2016, 1, 8);\nconst msInYear = 1000 * 60 * 60 * 24 * 365;\nconst diffInYears = Math.floor((Date.now() - createDate.getTime()) / msInYear);\n\nexport const tabLabels = ['Details', 'Pulse', 'Single table', 'Sub tab table', 'Multiple tables'];\n\nexport const baseCaseTabs = tabLabels.map((name): Tab => {\n return {\n name,\n id: name\n };\n});\n\nconst singularize = (s = '') => s.replace(/s$/i, '').toLowerCase();\n\nexport const MockSummaryListViewAllModal = ({ name, count }: any) => {\n const [search, setSearch] = useState('');\n const [loading, setLoading] = useState(true);\n const [items] = useMockListData(\n () => {\n setLoading(false);\n },\n {\n count\n }\n );\n\n const onSearchChange = (value: string) => {\n setSearch(value.trim());\n };\n\n const itemsToRender = useMemo(() => {\n if (search) {\n const regEx = createStringMatcher(search, 'boundary');\n return items.filter(({ primary, id }) => regEx.test(primary) || regEx.test(id));\n }\n\n return items;\n }, [items, search]);\n\n return (\n <Modal heading={name}>\n <ViewAll\n loading={loading}\n items={itemsToRender}\n actions={[\n {\n id: 'addNew',\n text: `Add ${singularize(name)}`\n }\n ]}\n searchInputProps={{ onSearchChange }}\n />\n </Modal>\n );\n};\n\nexport const MockSummaryList = ({\n icon,\n name,\n actions,\n limit\n}: Pick<SummaryListProps, 'icon' | 'name'> & { actions?: null; limit?: number }) => {\n const { create: createModal } = useModalManager();\n const [loading, setLoading] = useState(true);\n const count = 50;\n\n const [items] = useMockListData(\n () => {\n setLoading(false);\n },\n { count: limit }\n );\n\n return (\n <SummaryList\n loading={loading}\n items={items}\n icon={icon}\n name={name}\n headingTag='h3'\n count={loading ? undefined : count}\n actions={\n actions !== null\n ? [\n {\n text: 'Add',\n id: `${name}:addNew`,\n icon: 'plus',\n onClick() {\n createModal(() => {\n const singularName = singularize(name);\n return (\n <Modal heading={`Add new ${singularName}`}>\n {`Content for adding a new ${singularName} goes here…`}\n </Modal>\n );\n });\n }\n }\n ]\n : undefined\n }\n onViewAll={() => {\n createModal(MockSummaryListViewAllModal, {\n name,\n count\n });\n }}\n />\n );\n};\n\nexport const MockOperatorFieldValue = () => {\n const [target, setTarget] = useElement<HTMLButtonElement>(null);\n\n return (\n <>\n <Button\n variant='link'\n onClick={(e: MouseEvent<HTMLButtonElement>) => {\n setTarget(e.currentTarget);\n }}\n >\n constellation@pega.com\n </Button>\n {target && (\n <Glimpse\n id='constellation'\n target={target}\n onDismiss={() => setTarget(null)}\n heading={{\n primary: 'Constellation Operator',\n secondary: 'Director of the stars',\n visual: <Avatar name='Constellation Operator' />\n }}\n fields={[\n {\n id: '1',\n name: 'Department',\n value: 'Space Travel'\n },\n {\n id: '2',\n name: 'Manager',\n value: 'Captain Galaxy'\n },\n {\n id: '3',\n name: 'Location',\n value: 'A galaxy far away'\n },\n {\n id: '4',\n name: 'Email',\n value: <Link href='mailto:constellation@pega.com'>constellation@pega.com</Link>\n },\n {\n id: '5',\n name: 'Telephone',\n value: <Link href='tel:555-123-4567'>555-123-4567</Link>\n }\n ]}\n onViewProfile={() => {}}\n />\n )}\n </>\n );\n};\n\nexport const PreviewLinkComponent = ({\n token: linkToken,\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: { token: TokenMap['link'] } & PreviewSetters) => {\n return (\n <Link\n href={linkToken.href}\n previewable\n onPreview={() => {\n setPreviewCaseId(linkToken.href);\n setPreviewCurrentTabId(`summary-${linkToken.href}`);\n }}\n >\n {linkToken.text}\n </Link>\n );\n};\n\nexport const getPulseMarkdownMap = ({\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: PreviewSetters): FeedProps['markdownMap'] => {\n return {\n link: (linkToken: TokenMap['link']) => {\n if (linkToken.href?.startsWith('C-')) {\n return () => (\n <PreviewLinkComponent\n token={linkToken}\n setPreviewCaseId={setPreviewCaseId}\n setPreviewCurrentTabId={setPreviewCurrentTabId}\n />\n );\n }\n }\n };\n};\n\nexport const onMentionPreview = ({\n id,\n type,\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: {\n id: string;\n type: string;\n} & PreviewSetters) => {\n if (type === 'case') {\n setPreviewCaseId(id);\n setPreviewCurrentTabId(`summary-${id}`);\n }\n};\n\nexport const getTabContent = ({ setPreviewCaseId, setPreviewCurrentTabId }: PreviewSetters) => {\n return [\n {\n id: 'Details',\n content: <Details />\n },\n {\n id: 'Pulse',\n content: (\n <PulseMock\n markdownMap={getPulseMarkdownMap({ setPreviewCaseId, setPreviewCurrentTabId })}\n onMentionPreview={({ id, type }) => {\n onMentionPreview({ id, type, setPreviewCaseId, setPreviewCurrentTabId });\n }}\n />\n )\n },\n {\n id: 'Single table',\n content: <RSTable />\n },\n {\n id: 'Sub tab table',\n content: <TableSizingTabs />\n },\n {\n id: 'Multiple tables',\n content: (\n <Card>\n <CardHeader>\n <Text variant='h2'>Multiple tables</Text>\n </CardHeader>\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RSTable />\n <RSTable />\n </Flex>\n </Card>\n )\n },\n {\n id: 'not found',\n content: <h2>Not Found</h2>\n }\n ];\n};\n\nexport const previewTabContent = [\n {\n id: 'Details',\n content: <Details />\n },\n {\n id: 'Pulse',\n content: <PulseMock />\n },\n {\n id: 'Single table',\n content: <RSTable />\n },\n {\n id: 'Sub tab table',\n content: <TableSizingTabs />\n },\n {\n id: 'Multiple tables',\n content: (\n <Card>\n <CardHeader>\n <Text variant='h2'>Multiple tables</Text>\n </CardHeader>\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RSTable />\n <RSTable />\n </Flex>\n </Card>\n )\n },\n {\n id: 'not found',\n content: <h2>Not Found</h2>\n }\n];\n\nexport const getPrimaryFields = () => {\n return [\n {\n name: 'Create date',\n value: createDate.toDateString()\n },\n {\n name: 'Member ID',\n value: 'M205435569FD1234567890'\n },\n {\n name: 'Assigned to',\n value: 'Dean Thomas'\n },\n {\n name: 'Priority',\n value: '95'\n }\n ].map((f, i) => ({ ...f, id: `p-${i}` }));\n};\n\nconst baseSecondaryFields: CaseViewProps['summaryFields']['secondary'] = [\n {\n name: 'Status',\n value: <Status variant='info'>New</Status>\n },\n {\n name: 'Update date',\n value: `${diffInYears} years ago`\n },\n {\n name: 'Description',\n value: (\n <RichTextViewer\n content='<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse commodo nulla vitae mi bibendum, a fringilla nisl efficitur. Praesent vitae nulla lobortis, finibus felis ultricies, fermentum mi. Nunc lorem ligula, placerat nec elit id, auctor pellentesque est.</p> </br> <p>Pellentesque pharetra justo augue, non maximus nulla venenatis et. Sed laoreet ultricies ullamcorper. Mauris ac nulla quis ipsum semper fringilla in eget risus. Fusce cursus sollicitudin nibh molestie volutpat.</p>'\n type='html'\n />\n ),\n simpleValue: DOMPurify.sanitize(\n '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse commodo nulla vitae mi bibendum, a fringilla nisl efficitur. Praesent vitae nulla lobortis, finibus felis ultricies, fermentum mi. Nunc lorem ligula, placerat nec elit id, auctor pellentesque est.</p> </br> <p>Pellentesque pharetra justo augue, non maximus nulla venenatis et. Sed laoreet ultricies ullamcorper. Mauris ac nulla quis ipsum semper fringilla in eget risus. Fusce cursus sollicitudin nibh molestie volutpat.</p>',\n {\n ALLOWED_TAGS: [],\n ALLOWED_ATTR: [],\n KEEP_CONTENT: true\n }\n ),\n variant: 'stacked'\n }\n];\n\nexport const getSecondaryFields = ({\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: PreviewSetters) => {\n return [\n ...baseSecondaryFields,\n {\n name: 'Created by',\n value: <MockOperatorFieldValue />\n },\n {\n name: 'Previewable case',\n value: (\n <Link\n href='/cases/C-456'\n previewable\n onPreview={() => {\n setPreviewCaseId('C-456');\n setPreviewCurrentTabId('summary-C-456');\n }}\n >\n Previewable Case - C-456\n </Link>\n )\n }\n ];\n};\n\nexport const casePreviewPrimaryFields = [\n {\n name: 'Member ID',\n value: 'M204859F438G'\n },\n {\n name: 'Priority',\n value: '95'\n }\n];\n\nexport const casePreviewSecondaryFields = baseSecondaryFields;\n\nexport const getParentCases = ({\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: {\n caseId: CaseViewProps['caseId'];\n} & PreviewSetters) => {\n let ids: number[] = [];\n\n /** random-ish number from 100000 to 999999 */\n const randomId = (seed = 1) => {\n const x = Math.sin(seed);\n let rand = x - Math.floor(x);\n\n if (rand < 0.1) {\n rand += 0.1;\n }\n\n return Math.floor(rand * 1000000);\n };\n\n for (let i = 0; i < 5; i += 1) {\n ids.push(randomId(i + 1));\n }\n\n ids = ids.sort((a, b) => a - b);\n\n return ids.map(num => {\n const id = `C-${num}`;\n return {\n id,\n primary: id,\n href: `/cases/${id}`,\n previewable: true,\n onPreview: () => {\n setPreviewCaseId(id);\n setPreviewCurrentTabId(`summary-${id}`);\n }\n };\n });\n};\n\ninterface UtilitiesArgs {\n predictions?: CaseViewMockProps['predictions'];\n attachments?: CaseViewMockProps['attachments'];\n stakeholders?: CaseViewMockProps['stakeholders'];\n followers?: CaseViewMockProps['followers'];\n tags?: CaseViewMockProps['tags'];\n}\n\nexport const Utilities = ({\n predictions,\n attachments,\n stakeholders,\n followers,\n tags\n}: UtilitiesArgs) => {\n return (\n <>\n {predictions && <PredictionsDemo />}\n {attachments && <AttachmentsMock />}\n {stakeholders && <StakeHoldersDemo />}\n {followers && <MockSummaryList icon='user-star' name='Followers' />}\n {tags && <TagsDemo />}\n </>\n );\n};\n\nexport const getUtilitiesSummaryItems = ({\n predictions,\n attachments,\n stakeholders,\n followers,\n tags\n}: UtilitiesArgs): CaseViewProps['utilitiesSummaryItems'] => {\n const items = [];\n\n if (predictions) items.push({ iconName: 'polaris', count: 4, name: 'Predictions' });\n if (attachments) items.push({ iconName: 'paper-clip', count: 4, name: 'Attachments' });\n if (stakeholders) items.push({ iconName: 'user-search-solid', count: 10, name: 'Stakeholders' });\n if (followers) items.push({ iconName: 'user-star-solid', count: 5, name: 'Followers' });\n if (tags) items.push({ iconName: 'tag', count: 10, name: 'Tags' });\n\n return items;\n};\n\nexport const getCaseActions = () => {\n return Array.from({ length: 12 }, (_, i) => {\n return {\n text: `Action ${i + 1}`,\n id: `${i + 1}`,\n onClick: () => {}\n };\n });\n};\n\nconst getHeading = (size: 'short' | 'medium' | 'long') => {\n return {\n short: 'Constellation',\n medium: 'Complicated constellation demo case of some distinction',\n long: 'The scenario in this case is almost too obscure to put into words and so the title is quite long'\n }[size];\n};\n\nexport const getPromotedActions = (count: number) => {\n return [\n {\n id: createUID(),\n text: 'Reassign',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Add dependency',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Clone',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Move',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Withdraw',\n onClick: () => {}\n }\n ].slice(0, count);\n};\n\nconst StyledPersistentUtilityContent = styled.div(({ theme }) => {\n return css`\n height: 100%;\n border-inline: 0.0625rem dashed ${theme.base.palette['border-line']};\n `;\n});\n\nexport const PersistentUtilityContent = () => {\n return (\n <Flex\n container={{ justify: 'center', alignItems: 'center' }}\n as={StyledPersistentUtilityContent}\n >\n Persistent utility content\n </Flex>\n );\n};\n\nexport const CaseViewMock = ({\n caseId: caseIdProp,\n heading,\n subheading,\n parentCases = false,\n promotedActions = 1,\n summaryFields = 'All',\n tabs,\n stages = true,\n tasks = true,\n taskCount = 4,\n utilitiesExpanded: utilitiesExpandedProp = true,\n predictions = true,\n attachments = true,\n stakeholders = true,\n followers = true,\n tags = true,\n persistentUtility = false,\n intelligentGuidance = false,\n banner = false,\n headingLength,\n defaultExpanded\n}: CaseViewMockProps) => {\n const [previewCaseId, setPreviewCaseId] = useState<null | string>(null);\n const [previewCurrentTabId, setPreviewCurrentTabId] = useState(baseCaseTabs[0].id);\n const isMediumOrAbove = useBreakpoint('md');\n const [demoCurrentTabId, setDemoCurrentTabId] = useState(\n isMediumOrAbove ? tabs?.currentTabId ?? baseCaseTabs[0].id : `summary-${caseIdProp}`\n );\n\n const demoTabs = tabs ?? {\n items: baseCaseTabs,\n currentTabId: demoCurrentTabId,\n onClick: setDemoCurrentTabId\n };\n\n const previewTabs = {\n items: baseCaseTabs,\n currentTabId: previewCurrentTabId,\n onClick: setPreviewCurrentTabId\n };\n\n const parentCasesContent = getParentCases({\n caseId: caseIdProp,\n setPreviewCaseId,\n setPreviewCurrentTabId\n });\n\n const demoStages = <StagesDemo currentStage={3} />;\n\n const [followed, setFollowed] = useState(false);\n\n const [summaryExpanded, setSummaryExpanded] = useState(!!defaultExpanded);\n const [utilitiesExpanded, setUtilitiesExpanded] = useState(utilitiesExpandedProp);\n const tabContent = getTabContent({\n setPreviewCaseId,\n setPreviewCurrentTabId\n });\n\n return (\n <>\n {previewCaseId && (\n <CasePreview\n open\n onAfterClose={() => {\n setPreviewCaseId(null);\n }}\n caseId={previewCaseId}\n parentCases={\n Math.random() > 0.5\n ? [...parentCasesContent]\n .filter(c => c.id !== previewCaseId)\n .map(c => ({ ...c, id: `preview-${c.id}` }))\n : undefined\n }\n heading='Previewable demo case'\n subheading={previewCaseId}\n caseLink={{ href: `/cases/${previewCaseId}`, target: '_blank' }}\n icon='user-solid'\n followed={!followed}\n onEdit={() => {}}\n actions={getCaseActions()}\n promotedActions={getPromotedActions(2)}\n summaryFields={{\n primary: casePreviewPrimaryFields,\n secondary: casePreviewSecondaryFields\n }}\n stages={demoStages}\n tasks={<AssignmentsDemo count={4} />}\n tabs={previewTabs}\n tabContent={tabContent}\n utilities={\n <Grid container={{ rowGap: 2 }}>\n <Utilities\n predictions={predictions}\n attachments={attachments}\n stakeholders={stakeholders}\n followers={followers}\n tags={tags}\n />\n </Grid>\n }\n />\n )}\n\n <CaseView\n caseId={caseIdProp}\n parentCases={\n parentCases\n ? getParentCases({\n caseId: caseIdProp,\n setPreviewCaseId,\n setPreviewCurrentTabId\n })\n : undefined\n }\n heading={headingLength ? getHeading(headingLength) : heading}\n subheading={subheading}\n icon='user-solid'\n followed={followed}\n onFollowedChange={setFollowed}\n actions={getCaseActions()}\n promotedActions={promotedActions ? getPromotedActions(promotedActions) : undefined}\n onEdit={() => {}}\n summaryFields={(() => {\n const obj: CaseViewProps['summaryFields'] = {\n primary: getPrimaryFields(),\n secondary: getSecondaryFields({ setPreviewCaseId, setPreviewCurrentTabId })\n };\n\n if (summaryFields === 'Primary only') {\n obj.secondary = undefined;\n }\n\n if (summaryFields === 'Secondary only') {\n obj.primary = undefined;\n }\n\n return obj;\n })()}\n summaryExpanded={summaryExpanded}\n onToggleSummary={() => {\n setSummaryExpanded(cur => !cur);\n }}\n tabs={demoTabs}\n persistentUtility={(() => {\n if (typeof persistentUtility === 'boolean') {\n return persistentUtility\n ? { title: 'Persistent utility', content: <PersistentUtilityContent /> }\n : undefined;\n }\n\n return persistentUtility;\n })()}\n stages={stages ? demoStages : undefined}\n tasks={tasks ? <AssignmentsDemo count={taskCount} /> : undefined}\n tabContent={tabContent}\n utilities={\n <Utilities\n predictions={predictions}\n attachments={attachments}\n stakeholders={stakeholders}\n followers={followers}\n tags={tags}\n />\n }\n utilitiesSummaryItems={getUtilitiesSummaryItems({\n predictions,\n attachments,\n stakeholders,\n followers,\n tags\n })}\n utilitiesExpanded={utilitiesExpanded}\n onToggleUtilities={() => {\n setUtilitiesExpanded(cur => !cur);\n }}\n intelligentGuidance={intelligentGuidance}\n banners={\n banner ? (\n <Banner\n variant='urgent'\n messages={[\n {\n label: 'An error occurred',\n description:\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',\n action: {\n text: 'Take acton'\n }\n }\n ]}\n />\n ) : undefined\n }\n />\n </>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"CaseView.mocks.jsx","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.mocks.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Dispatch, SetStateAction, useMemo, useState, MouseEvent } from 'react';\nimport type { ReactNode } from 'react';\nimport createDOMPurify from 'dompurify';\nimport styled, { css } from 'styled-components';\n\nimport {\n Button,\n Link,\n createStringMatcher,\n Modal,\n SummaryList,\n SummaryListProps,\n useModalManager,\n useElement,\n ViewAll,\n Status,\n Flex,\n Grid,\n registerIcon,\n Banner,\n createUID,\n useBreakpoint,\n Avatar,\n Tabs,\n TabPanel,\n Card,\n CardHeader,\n Text\n} from '@pega/cosmos-react-core';\nimport type { Tab } from '@pega/cosmos-react-core/lib/components/Tabs/Tabs.types';\nimport {\n Glimpse,\n CaseViewProps,\n CaseView,\n CasePreview,\n UtilitySummaryItemDialog\n} from '@pega/cosmos-react-work';\nimport { TokenMap, RichTextViewer } from '@pega/cosmos-react-rte';\nimport * as userSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/user-solid.icon';\nimport { FeedProps } from '@pega/cosmos-react-social';\n\nimport { PredictionsDemo } from '../Predictions/Predictions.stories';\nimport { useMockListData } from '../../core/SummaryList/SummaryList.mocks';\nimport { StakeHoldersDemo } from '../Stakeholders/Stakeholders.stories';\nimport { TagsDemo } from '../Tags/Tags.stories';\nimport { StagesDemo } from '../Stages/Stages.stories';\nimport { AssignmentsDemo } from '../Assignments/Assignments.stories';\n\nimport { PulseMock } from './Pulse.mocks';\nimport { Details } from './Details.mocks';\nimport { AttachmentsMock } from './Attachments.mocks';\n\nregisterIcon(userSolidIcon);\n\nconst DOMPurify = createDOMPurify();\n\nexport interface CaseViewMockProps {\n caseId: CaseViewProps['caseId'];\n heading: CaseViewProps['heading'];\n subheading?: CaseViewProps['subheading'];\n parentCases?: boolean;\n summaryFields?: 'All' | 'Primary only' | 'Secondary only';\n tabs?: CaseViewProps['tabs'];\n stages?: boolean;\n tasks?: boolean | CaseViewProps['tasks'];\n taskCount?: number;\n predictions?: boolean;\n attachments?: boolean;\n stakeholders?: boolean;\n followers?: boolean;\n tags?: boolean;\n persistentUtility?: boolean | CaseViewProps['persistentUtility'];\n intelligentGuidance?: CaseViewProps['intelligentGuidance'];\n banner?: boolean;\n utilitiesExpanded?: boolean;\n promotedActions?: 0 | 1 | 2 | 3 | 4 | 5;\n headingLength?: 'short' | 'medium' | 'long';\n defaultExpanded?: boolean;\n}\n\ninterface PreviewSetters {\n setPreviewCaseId: Dispatch<SetStateAction<string | null>>;\n setPreviewCurrentTabId: Dispatch<SetStateAction<string>>;\n}\n\nconst StyledRSWrapper = styled.div(\n ({ theme }) => css`\n display: grid;\n place-items: center;\n border: 0.1875rem dashed ${theme.base.palette['border-line']};\n min-height: 6rem;\n height: var(--content-height-in-view);\n border-radius: calc(${theme.components.card['border-radius']});\n `\n);\n\n// This is a mini mock of the Constellation table component aka Repeating Structures\nconst RSTable = () => {\n return (\n <article style={{ display: 'block' }}>\n <StyledRSWrapper className='rs-wrapper'>\n <Text variant='secondary'>Table goes here</Text>\n </StyledRSWrapper>\n </article>\n );\n};\n\nconst TableSizingTabs = ({ tabCount = 3 }: { tabCount?: number }) => {\n const [currentTabId, setCurrentTabId] = useState('1');\n\n const tabs = [\n { name: 'Tab 1', id: '1' },\n { name: 'Tab 2', id: '2' },\n { name: 'Tab 3', id: '3' }\n ].slice(0, tabCount);\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Tabs\n tabs={tabs}\n type='horizontal'\n onTabClick={id => {\n setCurrentTabId(id);\n }}\n currentTabId={currentTabId}\n />\n {tabs.map(tab => (\n <TabPanel tabId={tab.id} currentTabId={currentTabId} key={tab.id}>\n <Flex container={{ direction: 'column', gap: 1 }}>\n {(() => {\n switch (tab.id) {\n case '1':\n return <RSTable />;\n\n case '2':\n return (\n <>\n <RSTable />\n <p>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\n cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat\n non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n </p>\n </>\n );\n\n case '3':\n return <TableSizingTabs tabCount={2} />;\n\n default:\n return null;\n }\n })()}\n </Flex>\n </TabPanel>\n ))}\n </Flex>\n );\n};\n\nexport const caseId = 'C-123456';\n\nexport const createDate = new Date(2016, 1, 8);\nconst msInYear = 1000 * 60 * 60 * 24 * 365;\nconst diffInYears = Math.floor((Date.now() - createDate.getTime()) / msInYear);\n\nexport const tabLabels = ['Details', 'Pulse', 'Single table', 'Sub tab table', 'Multiple tables'];\n\nexport const baseCaseTabs = tabLabels.map((name): Tab => {\n return {\n name,\n id: name\n };\n});\n\nconst singularize = (s = '') => s.replace(/s$/i, '').toLowerCase();\n\nexport const MockSummaryListViewAllModal = ({ name, count }: any) => {\n const [search, setSearch] = useState('');\n const [loading, setLoading] = useState(true);\n const [items] = useMockListData(\n () => {\n setLoading(false);\n },\n {\n count\n }\n );\n\n const onSearchChange = (value: string) => {\n setSearch(value.trim());\n };\n\n const itemsToRender = useMemo(() => {\n if (search) {\n const regEx = createStringMatcher(search, 'boundary');\n return items.filter(({ primary, id }) => regEx.test(primary) || regEx.test(id));\n }\n\n return items;\n }, [items, search]);\n\n return (\n <Modal heading={name}>\n <ViewAll\n loading={loading}\n items={itemsToRender}\n actions={[\n {\n id: 'addNew',\n text: `Add ${singularize(name)}`\n }\n ]}\n searchInputProps={{ onSearchChange }}\n />\n </Modal>\n );\n};\n\nexport const MockSummaryList = ({\n icon,\n name,\n actions,\n limit\n}: Pick<SummaryListProps, 'icon' | 'name'> & { actions?: null; limit?: number }) => {\n const { create: createModal } = useModalManager();\n const [loading, setLoading] = useState(true);\n const count = 50;\n\n const [items] = useMockListData(\n () => {\n setLoading(false);\n },\n { count: limit }\n );\n\n return (\n <SummaryList\n loading={loading}\n items={items}\n icon={icon}\n name={name}\n headingTag='h3'\n count={loading ? undefined : count}\n actions={\n actions !== null\n ? [\n {\n text: 'Add',\n id: `${name}:addNew`,\n icon: 'plus',\n onClick() {\n createModal(() => {\n const singularName = singularize(name);\n return (\n <Modal heading={`Add new ${singularName}`}>\n {`Content for adding a new ${singularName} goes here…`}\n </Modal>\n );\n });\n }\n }\n ]\n : undefined\n }\n onViewAll={() => {\n createModal(MockSummaryListViewAllModal, {\n name,\n count\n });\n }}\n />\n );\n};\n\nexport const MockOperatorFieldValue = () => {\n const [target, setTarget] = useElement<HTMLButtonElement>(null);\n\n return (\n <>\n <Button\n variant='link'\n onClick={(e: MouseEvent<HTMLButtonElement>) => {\n setTarget(e.currentTarget);\n }}\n >\n constellation@pega.com\n </Button>\n {target && (\n <Glimpse\n id='constellation'\n target={target}\n onDismiss={() => setTarget(null)}\n heading={{\n primary: 'Constellation Operator',\n secondary: 'Director of the stars',\n visual: <Avatar name='Constellation Operator' />\n }}\n fields={[\n {\n id: '1',\n name: 'Department',\n value: 'Space Travel'\n },\n {\n id: '2',\n name: 'Manager',\n value: 'Captain Galaxy'\n },\n {\n id: '3',\n name: 'Location',\n value: 'A galaxy far away'\n },\n {\n id: '4',\n name: 'Email',\n value: <Link href='mailto:constellation@pega.com'>constellation@pega.com</Link>\n },\n {\n id: '5',\n name: 'Telephone',\n value: <Link href='tel:555-123-4567'>555-123-4567</Link>\n }\n ]}\n onViewProfile={() => {}}\n />\n )}\n </>\n );\n};\n\nexport const PreviewLinkComponent = ({\n token: linkToken,\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: { token: TokenMap['link'] } & PreviewSetters) => {\n return (\n <Link\n href={linkToken.href}\n previewable\n onPreview={() => {\n setPreviewCaseId(linkToken.href);\n setPreviewCurrentTabId(`summary-${linkToken.href}`);\n }}\n >\n {linkToken.text}\n </Link>\n );\n};\n\nexport const getPulseMarkdownMap = ({\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: PreviewSetters): FeedProps['markdownMap'] => {\n return {\n link: (linkToken: TokenMap['link']) => {\n if (linkToken.href?.startsWith('C-')) {\n return () => (\n <PreviewLinkComponent\n token={linkToken}\n setPreviewCaseId={setPreviewCaseId}\n setPreviewCurrentTabId={setPreviewCurrentTabId}\n />\n );\n }\n }\n };\n};\n\nexport const onMentionPreview = ({\n id,\n type,\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: {\n id: string;\n type: string;\n} & PreviewSetters) => {\n if (type === 'case') {\n setPreviewCaseId(id);\n setPreviewCurrentTabId(`summary-${id}`);\n }\n};\n\nexport const getTabContent = ({ setPreviewCaseId, setPreviewCurrentTabId }: PreviewSetters) => {\n return [\n {\n id: 'Details',\n content: <Details />\n },\n {\n id: 'Pulse',\n content: (\n <PulseMock\n markdownMap={getPulseMarkdownMap({ setPreviewCaseId, setPreviewCurrentTabId })}\n onMentionPreview={({ id, type }) => {\n onMentionPreview({ id, type, setPreviewCaseId, setPreviewCurrentTabId });\n }}\n />\n )\n },\n {\n id: 'Single table',\n content: <RSTable />\n },\n {\n id: 'Sub tab table',\n content: <TableSizingTabs />\n },\n {\n id: 'Multiple tables',\n content: (\n <Card>\n <CardHeader>\n <Text variant='h2'>Multiple tables</Text>\n </CardHeader>\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RSTable />\n <RSTable />\n </Flex>\n </Card>\n )\n },\n {\n id: 'not found',\n content: <h2>Not Found</h2>\n }\n ];\n};\n\nexport const previewTabContent = [\n {\n id: 'Details',\n content: <Details />\n },\n {\n id: 'Pulse',\n content: <PulseMock />\n },\n {\n id: 'Single table',\n content: <RSTable />\n },\n {\n id: 'Sub tab table',\n content: <TableSizingTabs />\n },\n {\n id: 'Multiple tables',\n content: (\n <Card>\n <CardHeader>\n <Text variant='h2'>Multiple tables</Text>\n </CardHeader>\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RSTable />\n <RSTable />\n </Flex>\n </Card>\n )\n },\n {\n id: 'not found',\n content: <h2>Not Found</h2>\n }\n];\n\nexport const getPrimaryFields = () => {\n return [\n {\n name: 'Create date',\n value: createDate.toDateString()\n },\n {\n name: 'Member ID',\n value: 'M205435569FD1234567890'\n },\n {\n name: 'Assigned to',\n value: 'Dean Thomas'\n },\n {\n name: 'Priority',\n value: '95'\n }\n ].map((f, i) => ({ ...f, id: `p-${i}` }));\n};\n\nconst baseSecondaryFields: CaseViewProps['summaryFields']['secondary'] = [\n {\n name: 'Status',\n value: <Status variant='info'>New</Status>\n },\n {\n name: 'Update date',\n value: `${diffInYears} years ago`\n },\n {\n name: 'Description',\n value: (\n <RichTextViewer\n content='<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse commodo nulla vitae mi bibendum, a fringilla nisl efficitur. Praesent vitae nulla lobortis, finibus felis ultricies, fermentum mi. Nunc lorem ligula, placerat nec elit id, auctor pellentesque est.</p> </br> <p>Pellentesque pharetra justo augue, non maximus nulla venenatis et. Sed laoreet ultricies ullamcorper. Mauris ac nulla quis ipsum semper fringilla in eget risus. Fusce cursus sollicitudin nibh molestie volutpat.</p>'\n type='html'\n />\n ),\n simpleValue: DOMPurify.sanitize(\n '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse commodo nulla vitae mi bibendum, a fringilla nisl efficitur. Praesent vitae nulla lobortis, finibus felis ultricies, fermentum mi. Nunc lorem ligula, placerat nec elit id, auctor pellentesque est.</p> </br> <p>Pellentesque pharetra justo augue, non maximus nulla venenatis et. Sed laoreet ultricies ullamcorper. Mauris ac nulla quis ipsum semper fringilla in eget risus. Fusce cursus sollicitudin nibh molestie volutpat.</p>',\n {\n ALLOWED_TAGS: [],\n ALLOWED_ATTR: [],\n KEEP_CONTENT: true\n }\n ),\n variant: 'stacked'\n }\n];\n\nexport const getSecondaryFields = ({\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: PreviewSetters) => {\n return [\n ...baseSecondaryFields,\n {\n name: 'Created by',\n value: <MockOperatorFieldValue />\n },\n {\n name: 'Previewable case',\n value: (\n <Link\n href='/cases/C-456'\n previewable\n onPreview={() => {\n setPreviewCaseId('C-456');\n setPreviewCurrentTabId('summary-C-456');\n }}\n >\n Previewable Case - C-456\n </Link>\n )\n }\n ];\n};\n\nexport const casePreviewPrimaryFields = [\n {\n name: 'Member ID',\n value: 'M204859F438G'\n },\n {\n name: 'Priority',\n value: '95'\n }\n];\n\nexport const casePreviewSecondaryFields = baseSecondaryFields;\n\nexport const getParentCases = ({\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: {\n caseId: CaseViewProps['caseId'];\n} & PreviewSetters) => {\n let ids: number[] = [];\n\n /** random-ish number from 100000 to 999999 */\n const randomId = (seed = 1) => {\n const x = Math.sin(seed);\n let rand = x - Math.floor(x);\n\n if (rand < 0.1) {\n rand += 0.1;\n }\n\n return Math.floor(rand * 1000000);\n };\n\n for (let i = 0; i < 5; i += 1) {\n ids.push(randomId(i + 1));\n }\n\n ids = ids.sort((a, b) => a - b);\n\n return ids.map(num => {\n const id = `C-${num}`;\n return {\n id,\n primary: id,\n href: `/cases/${id}`,\n previewable: true,\n onPreview: () => {\n setPreviewCaseId(id);\n setPreviewCurrentTabId(`summary-${id}`);\n }\n };\n });\n};\n\ninterface UtilitiesArgs {\n predictions?: CaseViewMockProps['predictions'];\n attachments?: CaseViewMockProps['attachments'];\n stakeholders?: CaseViewMockProps['stakeholders'];\n followers?: CaseViewMockProps['followers'];\n tags?: CaseViewMockProps['tags'];\n}\n\ninterface UtilitySummaryItemsArgs {\n predictions?: CaseViewMockProps['predictions'];\n attachments?: CaseViewMockProps['attachments'];\n stakeholders?: CaseViewMockProps['stakeholders'];\n followers?: CaseViewMockProps['followers'];\n tags?: CaseViewMockProps['tags'];\n setDialogTarget: (instance: HTMLElement | null) => void;\n setDialogContent: React.Dispatch<React.SetStateAction<ReactNode>>;\n setShowDialog: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport const Utilities = ({\n predictions,\n attachments,\n stakeholders,\n followers,\n tags\n}: UtilitiesArgs) => {\n return (\n <>\n {predictions && <PredictionsDemo />}\n {attachments && <AttachmentsMock />}\n {stakeholders && <StakeHoldersDemo />}\n {followers && <MockSummaryList icon='user-star' name='Followers' />}\n {tags && <TagsDemo />}\n </>\n );\n};\n\nexport const getUtilitiesSummaryItems = ({\n predictions,\n attachments,\n stakeholders,\n followers,\n tags,\n setDialogTarget,\n setDialogContent,\n setShowDialog\n}: UtilitySummaryItemsArgs): NonNullable<CaseViewProps['utilitiesSummaryItems']> => {\n const items: NonNullable<CaseViewProps['utilitiesSummaryItems']> = [];\n\n if (predictions)\n items.push({\n iconName: 'polaris',\n name: 'Predictions',\n onClick: e => {\n setDialogTarget(e.currentTarget);\n setDialogContent(<PredictionsDemo />);\n setShowDialog(true);\n }\n });\n if (attachments)\n items.push({\n iconName: 'paper-clip',\n count: 4,\n name: 'Attachments',\n onClick: e => {\n setDialogTarget(e.currentTarget);\n setDialogContent(<AttachmentsMock />);\n setShowDialog(true);\n }\n });\n if (stakeholders)\n items.push({\n iconName: 'user-search-solid',\n count: 10,\n name: 'Stakeholders',\n onClick: e => {\n setDialogTarget(e.currentTarget);\n setDialogContent(<StakeHoldersDemo />);\n setShowDialog(true);\n }\n });\n if (followers)\n items.push({\n iconName: 'user-star-solid',\n count: 5,\n name: 'Followers',\n onClick: e => {\n setDialogTarget(e.currentTarget);\n setDialogContent(<MockSummaryList icon='user-star' name='Followers' />);\n setShowDialog(true);\n }\n });\n if (tags)\n items.push({\n iconName: 'tag',\n count: 10,\n name: 'Tags',\n onClick: e => {\n setDialogTarget(e.currentTarget);\n setDialogContent(<TagsDemo />);\n setShowDialog(true);\n }\n });\n\n return items;\n};\n\nexport const getCaseActions = () => {\n return Array.from({ length: 12 }, (_, i) => {\n return {\n text: `Action ${i + 1}`,\n id: `${i + 1}`,\n onClick: () => {}\n };\n });\n};\n\nconst getHeading = (size: 'short' | 'medium' | 'long') => {\n return {\n short: 'Constellation',\n medium: 'Complicated constellation demo case of some distinction',\n long: 'The scenario in this case is almost too obscure to put into words and so the title is quite long'\n }[size];\n};\n\nexport const getPromotedActions = (count: number) => {\n return [\n {\n id: createUID(),\n text: 'Reassign',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Add dependency',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Clone',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Move',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Withdraw',\n onClick: () => {}\n }\n ].slice(0, count);\n};\n\nconst StyledPersistentUtilityContent = styled.div(({ theme }) => {\n return css`\n height: 100%;\n border-inline: 0.0625rem dashed ${theme.base.palette['border-line']};\n `;\n});\n\nexport const PersistentUtilityContent = () => {\n return (\n <Flex\n container={{ justify: 'center', alignItems: 'center' }}\n as={StyledPersistentUtilityContent}\n >\n Persistent utility content\n </Flex>\n );\n};\n\nexport const CaseViewMock = ({\n caseId: caseIdProp,\n heading,\n subheading,\n parentCases = false,\n promotedActions = 1,\n summaryFields = 'All',\n tabs,\n stages = true,\n tasks = true,\n taskCount = 4,\n utilitiesExpanded: utilitiesExpandedProp = true,\n predictions = true,\n attachments = true,\n stakeholders = true,\n followers = true,\n tags = true,\n persistentUtility = false,\n intelligentGuidance = false,\n banner = false,\n headingLength,\n defaultExpanded\n}: CaseViewMockProps) => {\n const [previewCaseId, setPreviewCaseId] = useState<null | string>(null);\n const [previewCurrentTabId, setPreviewCurrentTabId] = useState(baseCaseTabs[0].id);\n const isMediumOrAbove = useBreakpoint('md');\n const [demoCurrentTabId, setDemoCurrentTabId] = useState(\n isMediumOrAbove ? tabs?.currentTabId ?? baseCaseTabs[0].id : `summary-${caseIdProp}`\n );\n\n const [dialogContent, setDialogContent] = useState<ReactNode>();\n const [dialogTarget, setDialogTarget] = useElement<HTMLElement>();\n const [showDialog, setShowDialog] = useState(false);\n\n const demoTabs = tabs ?? {\n items: baseCaseTabs,\n currentTabId: demoCurrentTabId,\n onClick: setDemoCurrentTabId\n };\n\n const previewTabs = {\n items: baseCaseTabs,\n currentTabId: previewCurrentTabId,\n onClick: setPreviewCurrentTabId\n };\n\n const parentCasesContent = getParentCases({\n caseId: caseIdProp,\n setPreviewCaseId,\n setPreviewCurrentTabId\n });\n\n const demoStages = <StagesDemo currentStage={3} />;\n\n const [followed, setFollowed] = useState(false);\n\n const [summaryExpanded, setSummaryExpanded] = useState(!!defaultExpanded);\n const [utilitiesExpanded, setUtilitiesExpanded] = useState(utilitiesExpandedProp);\n const tabContent = getTabContent({\n setPreviewCaseId,\n setPreviewCurrentTabId\n });\n\n return (\n <>\n {previewCaseId && (\n <CasePreview\n open\n onAfterClose={() => {\n setPreviewCaseId(null);\n }}\n caseId={previewCaseId}\n parentCases={\n Math.random() > 0.5\n ? [...parentCasesContent]\n .filter(c => c.id !== previewCaseId)\n .map(c => ({ ...c, id: `preview-${c.id}` }))\n : undefined\n }\n heading='Previewable demo case'\n subheading={previewCaseId}\n caseLink={{ href: `/cases/${previewCaseId}`, target: '_blank' }}\n icon='user-solid'\n followed={!followed}\n onEdit={() => {}}\n actions={getCaseActions()}\n promotedActions={getPromotedActions(2)}\n summaryFields={{\n primary: casePreviewPrimaryFields,\n secondary: casePreviewSecondaryFields\n }}\n stages={demoStages}\n tasks={<AssignmentsDemo count={4} />}\n tabs={previewTabs}\n tabContent={tabContent}\n utilities={\n <Grid container={{ rowGap: 2 }}>\n <Utilities\n predictions={predictions}\n attachments={attachments}\n stakeholders={stakeholders}\n followers={followers}\n tags={tags}\n />\n </Grid>\n }\n />\n )}\n {dialogTarget && showDialog && (\n <UtilitySummaryItemDialog\n target={dialogTarget}\n onDismiss={() => {\n setShowDialog(false);\n }}\n >\n {dialogContent}\n </UtilitySummaryItemDialog>\n )}\n <CaseView\n caseId={caseIdProp}\n parentCases={\n parentCases\n ? getParentCases({\n caseId: caseIdProp,\n setPreviewCaseId,\n setPreviewCurrentTabId\n })\n : undefined\n }\n heading={headingLength ? getHeading(headingLength) : heading}\n subheading={subheading}\n icon='user-solid'\n followed={followed}\n onFollowedChange={setFollowed}\n actions={getCaseActions()}\n promotedActions={promotedActions ? getPromotedActions(promotedActions) : undefined}\n onEdit={() => {}}\n summaryFields={(() => {\n const obj: CaseViewProps['summaryFields'] = {\n primary: getPrimaryFields(),\n secondary: getSecondaryFields({ setPreviewCaseId, setPreviewCurrentTabId })\n };\n\n if (summaryFields === 'Primary only') {\n obj.secondary = undefined;\n }\n\n if (summaryFields === 'Secondary only') {\n obj.primary = undefined;\n }\n\n return obj;\n })()}\n summaryExpanded={summaryExpanded}\n onToggleSummary={() => {\n setSummaryExpanded(cur => !cur);\n }}\n tabs={demoTabs}\n persistentUtility={(() => {\n if (typeof persistentUtility === 'boolean') {\n return persistentUtility\n ? { title: 'Persistent utility', content: <PersistentUtilityContent /> }\n : undefined;\n }\n\n return persistentUtility;\n })()}\n stages={stages ? demoStages : undefined}\n tasks={tasks ? <AssignmentsDemo count={taskCount} /> : undefined}\n tabContent={tabContent}\n utilities={\n <Utilities\n predictions={predictions}\n attachments={attachments}\n stakeholders={stakeholders}\n followers={followers}\n tags={tags}\n />\n }\n utilitiesSummaryItems={getUtilitiesSummaryItems({\n predictions,\n attachments,\n stakeholders,\n followers,\n tags,\n setDialogTarget,\n setDialogContent,\n setShowDialog\n })}\n utilitiesExpanded={utilitiesExpanded}\n onToggleUtilities={() => {\n setUtilitiesExpanded(cur => !cur);\n }}\n intelligentGuidance={intelligentGuidance}\n banners={\n banner ? (\n <Banner\n variant='urgent'\n messages={[\n {\n label: 'An error occurred',\n description:\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',\n action: {\n text: 'Take acton'\n }\n }\n ]}\n />\n ) : undefined\n }\n />\n </>\n );\n};\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Dispatch, SetStateAction } from 'react';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
2
3
|
import { SummaryListProps } from '@pega/cosmos-react-core';
|
|
3
4
|
import type { Tab } from '@pega/cosmos-react-core/lib/components/Tabs/Tabs.types';
|
|
4
5
|
import { CaseViewProps } from '@pega/cosmos-react-work';
|
|
@@ -84,8 +85,18 @@ interface UtilitiesArgs {
|
|
|
84
85
|
followers?: CaseViewMockProps['followers'];
|
|
85
86
|
tags?: CaseViewMockProps['tags'];
|
|
86
87
|
}
|
|
88
|
+
interface UtilitySummaryItemsArgs {
|
|
89
|
+
predictions?: CaseViewMockProps['predictions'];
|
|
90
|
+
attachments?: CaseViewMockProps['attachments'];
|
|
91
|
+
stakeholders?: CaseViewMockProps['stakeholders'];
|
|
92
|
+
followers?: CaseViewMockProps['followers'];
|
|
93
|
+
tags?: CaseViewMockProps['tags'];
|
|
94
|
+
setDialogTarget: (instance: HTMLElement | null) => void;
|
|
95
|
+
setDialogContent: React.Dispatch<React.SetStateAction<ReactNode>>;
|
|
96
|
+
setShowDialog: React.Dispatch<React.SetStateAction<boolean>>;
|
|
97
|
+
}
|
|
87
98
|
export declare const Utilities: ({ predictions, attachments, stakeholders, followers, tags }: UtilitiesArgs) => JSX.Element;
|
|
88
|
-
export declare const getUtilitiesSummaryItems: ({ predictions, attachments, stakeholders, followers, tags }:
|
|
99
|
+
export declare const getUtilitiesSummaryItems: ({ predictions, attachments, stakeholders, followers, tags, setDialogTarget, setDialogContent, setShowDialog }: UtilitySummaryItemsArgs) => NonNullable<CaseViewProps['utilitiesSummaryItems']>;
|
|
89
100
|
export declare const getCaseActions: () => {
|
|
90
101
|
text: string;
|
|
91
102
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseView.mocks.d.ts","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.mocks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAiC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CaseView.mocks.d.ts","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.mocks.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { useMemo, useState } from 'react';
|
|
|
3
3
|
import createDOMPurify from 'dompurify';
|
|
4
4
|
import styled, { css } from 'styled-components';
|
|
5
5
|
import { Button, Link, createStringMatcher, Modal, SummaryList, useModalManager, useElement, ViewAll, Status, Flex, Grid, registerIcon, Banner, createUID, useBreakpoint, Avatar, Tabs, TabPanel, Card, CardHeader, Text } from '@pega/cosmos-react-core';
|
|
6
|
-
import { Glimpse, CaseView, CasePreview } from '@pega/cosmos-react-work';
|
|
6
|
+
import { Glimpse, CaseView, CasePreview, UtilitySummaryItemDialog } from '@pega/cosmos-react-work';
|
|
7
7
|
import { RichTextViewer } from '@pega/cosmos-react-rte';
|
|
8
8
|
import * as userSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/user-solid.icon';
|
|
9
9
|
import { PredictionsDemo } from '../Predictions/Predictions.stories';
|
|
@@ -328,18 +328,62 @@ export const getParentCases = ({ setPreviewCaseId, setPreviewCurrentTabId }) =>
|
|
|
328
328
|
export const Utilities = ({ predictions, attachments, stakeholders, followers, tags }) => {
|
|
329
329
|
return (_jsxs(_Fragment, { children: [predictions && _jsx(PredictionsDemo, {}), attachments && _jsx(AttachmentsMock, {}), stakeholders && _jsx(StakeHoldersDemo, {}), followers && _jsx(MockSummaryList, { icon: 'user-star', name: 'Followers' }), tags && _jsx(TagsDemo, {})] }));
|
|
330
330
|
};
|
|
331
|
-
export const getUtilitiesSummaryItems = ({ predictions, attachments, stakeholders, followers, tags }) => {
|
|
331
|
+
export const getUtilitiesSummaryItems = ({ predictions, attachments, stakeholders, followers, tags, setDialogTarget, setDialogContent, setShowDialog }) => {
|
|
332
332
|
const items = [];
|
|
333
333
|
if (predictions)
|
|
334
|
-
items.push({
|
|
334
|
+
items.push({
|
|
335
|
+
iconName: 'polaris',
|
|
336
|
+
name: 'Predictions',
|
|
337
|
+
onClick: e => {
|
|
338
|
+
setDialogTarget(e.currentTarget);
|
|
339
|
+
setDialogContent(_jsx(PredictionsDemo, {}));
|
|
340
|
+
setShowDialog(true);
|
|
341
|
+
}
|
|
342
|
+
});
|
|
335
343
|
if (attachments)
|
|
336
|
-
items.push({
|
|
344
|
+
items.push({
|
|
345
|
+
iconName: 'paper-clip',
|
|
346
|
+
count: 4,
|
|
347
|
+
name: 'Attachments',
|
|
348
|
+
onClick: e => {
|
|
349
|
+
setDialogTarget(e.currentTarget);
|
|
350
|
+
setDialogContent(_jsx(AttachmentsMock, {}));
|
|
351
|
+
setShowDialog(true);
|
|
352
|
+
}
|
|
353
|
+
});
|
|
337
354
|
if (stakeholders)
|
|
338
|
-
items.push({
|
|
355
|
+
items.push({
|
|
356
|
+
iconName: 'user-search-solid',
|
|
357
|
+
count: 10,
|
|
358
|
+
name: 'Stakeholders',
|
|
359
|
+
onClick: e => {
|
|
360
|
+
setDialogTarget(e.currentTarget);
|
|
361
|
+
setDialogContent(_jsx(StakeHoldersDemo, {}));
|
|
362
|
+
setShowDialog(true);
|
|
363
|
+
}
|
|
364
|
+
});
|
|
339
365
|
if (followers)
|
|
340
|
-
items.push({
|
|
366
|
+
items.push({
|
|
367
|
+
iconName: 'user-star-solid',
|
|
368
|
+
count: 5,
|
|
369
|
+
name: 'Followers',
|
|
370
|
+
onClick: e => {
|
|
371
|
+
setDialogTarget(e.currentTarget);
|
|
372
|
+
setDialogContent(_jsx(MockSummaryList, { icon: 'user-star', name: 'Followers' }));
|
|
373
|
+
setShowDialog(true);
|
|
374
|
+
}
|
|
375
|
+
});
|
|
341
376
|
if (tags)
|
|
342
|
-
items.push({
|
|
377
|
+
items.push({
|
|
378
|
+
iconName: 'tag',
|
|
379
|
+
count: 10,
|
|
380
|
+
name: 'Tags',
|
|
381
|
+
onClick: e => {
|
|
382
|
+
setDialogTarget(e.currentTarget);
|
|
383
|
+
setDialogContent(_jsx(TagsDemo, {}));
|
|
384
|
+
setShowDialog(true);
|
|
385
|
+
}
|
|
386
|
+
});
|
|
343
387
|
return items;
|
|
344
388
|
};
|
|
345
389
|
export const getCaseActions = () => {
|
|
@@ -401,6 +445,9 @@ export const CaseViewMock = ({ caseId: caseIdProp, heading, subheading, parentCa
|
|
|
401
445
|
const [previewCurrentTabId, setPreviewCurrentTabId] = useState(baseCaseTabs[0].id);
|
|
402
446
|
const isMediumOrAbove = useBreakpoint('md');
|
|
403
447
|
const [demoCurrentTabId, setDemoCurrentTabId] = useState(isMediumOrAbove ? tabs?.currentTabId ?? baseCaseTabs[0].id : `summary-${caseIdProp}`);
|
|
448
|
+
const [dialogContent, setDialogContent] = useState();
|
|
449
|
+
const [dialogTarget, setDialogTarget] = useElement();
|
|
450
|
+
const [showDialog, setShowDialog] = useState(false);
|
|
404
451
|
const demoTabs = tabs ?? {
|
|
405
452
|
items: baseCaseTabs,
|
|
406
453
|
currentTabId: demoCurrentTabId,
|
|
@@ -433,7 +480,9 @@ export const CaseViewMock = ({ caseId: caseIdProp, heading, subheading, parentCa
|
|
|
433
480
|
: undefined, heading: 'Previewable demo case', subheading: previewCaseId, caseLink: { href: `/cases/${previewCaseId}`, target: '_blank' }, icon: 'user-solid', followed: !followed, onEdit: () => { }, actions: getCaseActions(), promotedActions: getPromotedActions(2), summaryFields: {
|
|
434
481
|
primary: casePreviewPrimaryFields,
|
|
435
482
|
secondary: casePreviewSecondaryFields
|
|
436
|
-
}, stages: demoStages, tasks: _jsx(AssignmentsDemo, { count: 4 }), tabs: previewTabs, tabContent: tabContent, utilities: _jsx(Grid, { container: { rowGap: 2 }, children: _jsx(Utilities, { predictions: predictions, attachments: attachments, stakeholders: stakeholders, followers: followers, tags: tags }) }) })), _jsx(
|
|
483
|
+
}, stages: demoStages, tasks: _jsx(AssignmentsDemo, { count: 4 }), tabs: previewTabs, tabContent: tabContent, utilities: _jsx(Grid, { container: { rowGap: 2 }, children: _jsx(Utilities, { predictions: predictions, attachments: attachments, stakeholders: stakeholders, followers: followers, tags: tags }) }) })), dialogTarget && showDialog && (_jsx(UtilitySummaryItemDialog, { target: dialogTarget, onDismiss: () => {
|
|
484
|
+
setShowDialog(false);
|
|
485
|
+
}, children: dialogContent })), _jsx(CaseView, { caseId: caseIdProp, parentCases: parentCases
|
|
437
486
|
? getParentCases({
|
|
438
487
|
caseId: caseIdProp,
|
|
439
488
|
setPreviewCaseId,
|
|
@@ -465,7 +514,10 @@ export const CaseViewMock = ({ caseId: caseIdProp, heading, subheading, parentCa
|
|
|
465
514
|
attachments,
|
|
466
515
|
stakeholders,
|
|
467
516
|
followers,
|
|
468
|
-
tags
|
|
517
|
+
tags,
|
|
518
|
+
setDialogTarget,
|
|
519
|
+
setDialogContent,
|
|
520
|
+
setShowDialog
|
|
469
521
|
}), utilitiesExpanded: utilitiesExpanded, onToggleUtilities: () => {
|
|
470
522
|
setUtilitiesExpanded(cur => !cur);
|
|
471
523
|
}, intelligentGuidance: intelligentGuidance, banners: banner ? (_jsx(Banner, { variant: 'urgent', messages: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseView.mocks.js","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.mocks.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Dispatch, SetStateAction, useMemo, useState, MouseEvent } from 'react';\nimport createDOMPurify from 'dompurify';\nimport styled, { css } from 'styled-components';\n\nimport {\n Button,\n Link,\n createStringMatcher,\n Modal,\n SummaryList,\n SummaryListProps,\n useModalManager,\n useElement,\n ViewAll,\n Status,\n Flex,\n Grid,\n registerIcon,\n Banner,\n createUID,\n useBreakpoint,\n Avatar,\n Tabs,\n TabPanel,\n Card,\n CardHeader,\n Text\n} from '@pega/cosmos-react-core';\nimport type { Tab } from '@pega/cosmos-react-core/lib/components/Tabs/Tabs.types';\nimport { Glimpse, CaseViewProps, CaseView, CasePreview } from '@pega/cosmos-react-work';\nimport { TokenMap, RichTextViewer } from '@pega/cosmos-react-rte';\nimport * as userSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/user-solid.icon';\nimport { FeedProps } from '@pega/cosmos-react-social';\n\nimport { PredictionsDemo } from '../Predictions/Predictions.stories';\nimport { useMockListData } from '../../core/SummaryList/SummaryList.mocks';\nimport { StakeHoldersDemo } from '../Stakeholders/Stakeholders.stories';\nimport { TagsDemo } from '../Tags/Tags.stories';\nimport { StagesDemo } from '../Stages/Stages.stories';\nimport { AssignmentsDemo } from '../Assignments/Assignments.stories';\n\nimport { PulseMock } from './Pulse.mocks';\nimport { Details } from './Details.mocks';\nimport { AttachmentsMock } from './Attachments.mocks';\n\nregisterIcon(userSolidIcon);\n\nconst DOMPurify = createDOMPurify();\n\nexport interface CaseViewMockProps {\n caseId: CaseViewProps['caseId'];\n heading: CaseViewProps['heading'];\n subheading?: CaseViewProps['subheading'];\n parentCases?: boolean;\n summaryFields?: 'All' | 'Primary only' | 'Secondary only';\n tabs?: CaseViewProps['tabs'];\n stages?: boolean;\n tasks?: boolean | CaseViewProps['tasks'];\n taskCount?: number;\n predictions?: boolean;\n attachments?: boolean;\n stakeholders?: boolean;\n followers?: boolean;\n tags?: boolean;\n persistentUtility?: boolean | CaseViewProps['persistentUtility'];\n intelligentGuidance?: CaseViewProps['intelligentGuidance'];\n banner?: boolean;\n utilitiesExpanded?: boolean;\n promotedActions?: 0 | 1 | 2 | 3 | 4 | 5;\n headingLength?: 'short' | 'medium' | 'long';\n defaultExpanded?: boolean;\n}\n\ninterface PreviewSetters {\n setPreviewCaseId: Dispatch<SetStateAction<string | null>>;\n setPreviewCurrentTabId: Dispatch<SetStateAction<string>>;\n}\n\nconst StyledRSWrapper = styled.div(\n ({ theme }) => css`\n display: grid;\n place-items: center;\n border: 0.1875rem dashed ${theme.base.palette['border-line']};\n min-height: 6rem;\n height: var(--content-height-in-view);\n border-radius: calc(${theme.components.card['border-radius']});\n `\n);\n\n// This is a mini mock of the Constellation table component aka Repeating Structures\nconst RSTable = () => {\n return (\n <article style={{ display: 'block' }}>\n <StyledRSWrapper className='rs-wrapper'>\n <Text variant='secondary'>Table goes here</Text>\n </StyledRSWrapper>\n </article>\n );\n};\n\nconst TableSizingTabs = ({ tabCount = 3 }: { tabCount?: number }) => {\n const [currentTabId, setCurrentTabId] = useState('1');\n\n const tabs = [\n { name: 'Tab 1', id: '1' },\n { name: 'Tab 2', id: '2' },\n { name: 'Tab 3', id: '3' }\n ].slice(0, tabCount);\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Tabs\n tabs={tabs}\n type='horizontal'\n onTabClick={id => {\n setCurrentTabId(id);\n }}\n currentTabId={currentTabId}\n />\n {tabs.map(tab => (\n <TabPanel tabId={tab.id} currentTabId={currentTabId} key={tab.id}>\n <Flex container={{ direction: 'column', gap: 1 }}>\n {(() => {\n switch (tab.id) {\n case '1':\n return <RSTable />;\n\n case '2':\n return (\n <>\n <RSTable />\n <p>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\n cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat\n non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n </p>\n </>\n );\n\n case '3':\n return <TableSizingTabs tabCount={2} />;\n\n default:\n return null;\n }\n })()}\n </Flex>\n </TabPanel>\n ))}\n </Flex>\n );\n};\n\nexport const caseId = 'C-123456';\n\nexport const createDate = new Date(2016, 1, 8);\nconst msInYear = 1000 * 60 * 60 * 24 * 365;\nconst diffInYears = Math.floor((Date.now() - createDate.getTime()) / msInYear);\n\nexport const tabLabels = ['Details', 'Pulse', 'Single table', 'Sub tab table', 'Multiple tables'];\n\nexport const baseCaseTabs = tabLabels.map((name): Tab => {\n return {\n name,\n id: name\n };\n});\n\nconst singularize = (s = '') => s.replace(/s$/i, '').toLowerCase();\n\nexport const MockSummaryListViewAllModal = ({ name, count }: any) => {\n const [search, setSearch] = useState('');\n const [loading, setLoading] = useState(true);\n const [items] = useMockListData(\n () => {\n setLoading(false);\n },\n {\n count\n }\n );\n\n const onSearchChange = (value: string) => {\n setSearch(value.trim());\n };\n\n const itemsToRender = useMemo(() => {\n if (search) {\n const regEx = createStringMatcher(search, 'boundary');\n return items.filter(({ primary, id }) => regEx.test(primary) || regEx.test(id));\n }\n\n return items;\n }, [items, search]);\n\n return (\n <Modal heading={name}>\n <ViewAll\n loading={loading}\n items={itemsToRender}\n actions={[\n {\n id: 'addNew',\n text: `Add ${singularize(name)}`\n }\n ]}\n searchInputProps={{ onSearchChange }}\n />\n </Modal>\n );\n};\n\nexport const MockSummaryList = ({\n icon,\n name,\n actions,\n limit\n}: Pick<SummaryListProps, 'icon' | 'name'> & { actions?: null; limit?: number }) => {\n const { create: createModal } = useModalManager();\n const [loading, setLoading] = useState(true);\n const count = 50;\n\n const [items] = useMockListData(\n () => {\n setLoading(false);\n },\n { count: limit }\n );\n\n return (\n <SummaryList\n loading={loading}\n items={items}\n icon={icon}\n name={name}\n headingTag='h3'\n count={loading ? undefined : count}\n actions={\n actions !== null\n ? [\n {\n text: 'Add',\n id: `${name}:addNew`,\n icon: 'plus',\n onClick() {\n createModal(() => {\n const singularName = singularize(name);\n return (\n <Modal heading={`Add new ${singularName}`}>\n {`Content for adding a new ${singularName} goes here…`}\n </Modal>\n );\n });\n }\n }\n ]\n : undefined\n }\n onViewAll={() => {\n createModal(MockSummaryListViewAllModal, {\n name,\n count\n });\n }}\n />\n );\n};\n\nexport const MockOperatorFieldValue = () => {\n const [target, setTarget] = useElement<HTMLButtonElement>(null);\n\n return (\n <>\n <Button\n variant='link'\n onClick={(e: MouseEvent<HTMLButtonElement>) => {\n setTarget(e.currentTarget);\n }}\n >\n constellation@pega.com\n </Button>\n {target && (\n <Glimpse\n id='constellation'\n target={target}\n onDismiss={() => setTarget(null)}\n heading={{\n primary: 'Constellation Operator',\n secondary: 'Director of the stars',\n visual: <Avatar name='Constellation Operator' />\n }}\n fields={[\n {\n id: '1',\n name: 'Department',\n value: 'Space Travel'\n },\n {\n id: '2',\n name: 'Manager',\n value: 'Captain Galaxy'\n },\n {\n id: '3',\n name: 'Location',\n value: 'A galaxy far away'\n },\n {\n id: '4',\n name: 'Email',\n value: <Link href='mailto:constellation@pega.com'>constellation@pega.com</Link>\n },\n {\n id: '5',\n name: 'Telephone',\n value: <Link href='tel:555-123-4567'>555-123-4567</Link>\n }\n ]}\n onViewProfile={() => {}}\n />\n )}\n </>\n );\n};\n\nexport const PreviewLinkComponent = ({\n token: linkToken,\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: { token: TokenMap['link'] } & PreviewSetters) => {\n return (\n <Link\n href={linkToken.href}\n previewable\n onPreview={() => {\n setPreviewCaseId(linkToken.href);\n setPreviewCurrentTabId(`summary-${linkToken.href}`);\n }}\n >\n {linkToken.text}\n </Link>\n );\n};\n\nexport const getPulseMarkdownMap = ({\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: PreviewSetters): FeedProps['markdownMap'] => {\n return {\n link: (linkToken: TokenMap['link']) => {\n if (linkToken.href?.startsWith('C-')) {\n return () => (\n <PreviewLinkComponent\n token={linkToken}\n setPreviewCaseId={setPreviewCaseId}\n setPreviewCurrentTabId={setPreviewCurrentTabId}\n />\n );\n }\n }\n };\n};\n\nexport const onMentionPreview = ({\n id,\n type,\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: {\n id: string;\n type: string;\n} & PreviewSetters) => {\n if (type === 'case') {\n setPreviewCaseId(id);\n setPreviewCurrentTabId(`summary-${id}`);\n }\n};\n\nexport const getTabContent = ({ setPreviewCaseId, setPreviewCurrentTabId }: PreviewSetters) => {\n return [\n {\n id: 'Details',\n content: <Details />\n },\n {\n id: 'Pulse',\n content: (\n <PulseMock\n markdownMap={getPulseMarkdownMap({ setPreviewCaseId, setPreviewCurrentTabId })}\n onMentionPreview={({ id, type }) => {\n onMentionPreview({ id, type, setPreviewCaseId, setPreviewCurrentTabId });\n }}\n />\n )\n },\n {\n id: 'Single table',\n content: <RSTable />\n },\n {\n id: 'Sub tab table',\n content: <TableSizingTabs />\n },\n {\n id: 'Multiple tables',\n content: (\n <Card>\n <CardHeader>\n <Text variant='h2'>Multiple tables</Text>\n </CardHeader>\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RSTable />\n <RSTable />\n </Flex>\n </Card>\n )\n },\n {\n id: 'not found',\n content: <h2>Not Found</h2>\n }\n ];\n};\n\nexport const previewTabContent = [\n {\n id: 'Details',\n content: <Details />\n },\n {\n id: 'Pulse',\n content: <PulseMock />\n },\n {\n id: 'Single table',\n content: <RSTable />\n },\n {\n id: 'Sub tab table',\n content: <TableSizingTabs />\n },\n {\n id: 'Multiple tables',\n content: (\n <Card>\n <CardHeader>\n <Text variant='h2'>Multiple tables</Text>\n </CardHeader>\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RSTable />\n <RSTable />\n </Flex>\n </Card>\n )\n },\n {\n id: 'not found',\n content: <h2>Not Found</h2>\n }\n];\n\nexport const getPrimaryFields = () => {\n return [\n {\n name: 'Create date',\n value: createDate.toDateString()\n },\n {\n name: 'Member ID',\n value: 'M205435569FD1234567890'\n },\n {\n name: 'Assigned to',\n value: 'Dean Thomas'\n },\n {\n name: 'Priority',\n value: '95'\n }\n ].map((f, i) => ({ ...f, id: `p-${i}` }));\n};\n\nconst baseSecondaryFields: CaseViewProps['summaryFields']['secondary'] = [\n {\n name: 'Status',\n value: <Status variant='info'>New</Status>\n },\n {\n name: 'Update date',\n value: `${diffInYears} years ago`\n },\n {\n name: 'Description',\n value: (\n <RichTextViewer\n content='<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse commodo nulla vitae mi bibendum, a fringilla nisl efficitur. Praesent vitae nulla lobortis, finibus felis ultricies, fermentum mi. Nunc lorem ligula, placerat nec elit id, auctor pellentesque est.</p> </br> <p>Pellentesque pharetra justo augue, non maximus nulla venenatis et. Sed laoreet ultricies ullamcorper. Mauris ac nulla quis ipsum semper fringilla in eget risus. Fusce cursus sollicitudin nibh molestie volutpat.</p>'\n type='html'\n />\n ),\n simpleValue: DOMPurify.sanitize(\n '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse commodo nulla vitae mi bibendum, a fringilla nisl efficitur. Praesent vitae nulla lobortis, finibus felis ultricies, fermentum mi. Nunc lorem ligula, placerat nec elit id, auctor pellentesque est.</p> </br> <p>Pellentesque pharetra justo augue, non maximus nulla venenatis et. Sed laoreet ultricies ullamcorper. Mauris ac nulla quis ipsum semper fringilla in eget risus. Fusce cursus sollicitudin nibh molestie volutpat.</p>',\n {\n ALLOWED_TAGS: [],\n ALLOWED_ATTR: [],\n KEEP_CONTENT: true\n }\n ),\n variant: 'stacked'\n }\n];\n\nexport const getSecondaryFields = ({\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: PreviewSetters) => {\n return [\n ...baseSecondaryFields,\n {\n name: 'Created by',\n value: <MockOperatorFieldValue />\n },\n {\n name: 'Previewable case',\n value: (\n <Link\n href='/cases/C-456'\n previewable\n onPreview={() => {\n setPreviewCaseId('C-456');\n setPreviewCurrentTabId('summary-C-456');\n }}\n >\n Previewable Case - C-456\n </Link>\n )\n }\n ];\n};\n\nexport const casePreviewPrimaryFields = [\n {\n name: 'Member ID',\n value: 'M204859F438G'\n },\n {\n name: 'Priority',\n value: '95'\n }\n];\n\nexport const casePreviewSecondaryFields = baseSecondaryFields;\n\nexport const getParentCases = ({\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: {\n caseId: CaseViewProps['caseId'];\n} & PreviewSetters) => {\n let ids: number[] = [];\n\n /** random-ish number from 100000 to 999999 */\n const randomId = (seed = 1) => {\n const x = Math.sin(seed);\n let rand = x - Math.floor(x);\n\n if (rand < 0.1) {\n rand += 0.1;\n }\n\n return Math.floor(rand * 1000000);\n };\n\n for (let i = 0; i < 5; i += 1) {\n ids.push(randomId(i + 1));\n }\n\n ids = ids.sort((a, b) => a - b);\n\n return ids.map(num => {\n const id = `C-${num}`;\n return {\n id,\n primary: id,\n href: `/cases/${id}`,\n previewable: true,\n onPreview: () => {\n setPreviewCaseId(id);\n setPreviewCurrentTabId(`summary-${id}`);\n }\n };\n });\n};\n\ninterface UtilitiesArgs {\n predictions?: CaseViewMockProps['predictions'];\n attachments?: CaseViewMockProps['attachments'];\n stakeholders?: CaseViewMockProps['stakeholders'];\n followers?: CaseViewMockProps['followers'];\n tags?: CaseViewMockProps['tags'];\n}\n\nexport const Utilities = ({\n predictions,\n attachments,\n stakeholders,\n followers,\n tags\n}: UtilitiesArgs) => {\n return (\n <>\n {predictions && <PredictionsDemo />}\n {attachments && <AttachmentsMock />}\n {stakeholders && <StakeHoldersDemo />}\n {followers && <MockSummaryList icon='user-star' name='Followers' />}\n {tags && <TagsDemo />}\n </>\n );\n};\n\nexport const getUtilitiesSummaryItems = ({\n predictions,\n attachments,\n stakeholders,\n followers,\n tags\n}: UtilitiesArgs): CaseViewProps['utilitiesSummaryItems'] => {\n const items = [];\n\n if (predictions) items.push({ iconName: 'polaris', count: 4, name: 'Predictions' });\n if (attachments) items.push({ iconName: 'paper-clip', count: 4, name: 'Attachments' });\n if (stakeholders) items.push({ iconName: 'user-search-solid', count: 10, name: 'Stakeholders' });\n if (followers) items.push({ iconName: 'user-star-solid', count: 5, name: 'Followers' });\n if (tags) items.push({ iconName: 'tag', count: 10, name: 'Tags' });\n\n return items;\n};\n\nexport const getCaseActions = () => {\n return Array.from({ length: 12 }, (_, i) => {\n return {\n text: `Action ${i + 1}`,\n id: `${i + 1}`,\n onClick: () => {}\n };\n });\n};\n\nconst getHeading = (size: 'short' | 'medium' | 'long') => {\n return {\n short: 'Constellation',\n medium: 'Complicated constellation demo case of some distinction',\n long: 'The scenario in this case is almost too obscure to put into words and so the title is quite long'\n }[size];\n};\n\nexport const getPromotedActions = (count: number) => {\n return [\n {\n id: createUID(),\n text: 'Reassign',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Add dependency',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Clone',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Move',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Withdraw',\n onClick: () => {}\n }\n ].slice(0, count);\n};\n\nconst StyledPersistentUtilityContent = styled.div(({ theme }) => {\n return css`\n height: 100%;\n border-inline: 0.0625rem dashed ${theme.base.palette['border-line']};\n `;\n});\n\nexport const PersistentUtilityContent = () => {\n return (\n <Flex\n container={{ justify: 'center', alignItems: 'center' }}\n as={StyledPersistentUtilityContent}\n >\n Persistent utility content\n </Flex>\n );\n};\n\nexport const CaseViewMock = ({\n caseId: caseIdProp,\n heading,\n subheading,\n parentCases = false,\n promotedActions = 1,\n summaryFields = 'All',\n tabs,\n stages = true,\n tasks = true,\n taskCount = 4,\n utilitiesExpanded: utilitiesExpandedProp = true,\n predictions = true,\n attachments = true,\n stakeholders = true,\n followers = true,\n tags = true,\n persistentUtility = false,\n intelligentGuidance = false,\n banner = false,\n headingLength,\n defaultExpanded\n}: CaseViewMockProps) => {\n const [previewCaseId, setPreviewCaseId] = useState<null | string>(null);\n const [previewCurrentTabId, setPreviewCurrentTabId] = useState(baseCaseTabs[0].id);\n const isMediumOrAbove = useBreakpoint('md');\n const [demoCurrentTabId, setDemoCurrentTabId] = useState(\n isMediumOrAbove ? tabs?.currentTabId ?? baseCaseTabs[0].id : `summary-${caseIdProp}`\n );\n\n const demoTabs = tabs ?? {\n items: baseCaseTabs,\n currentTabId: demoCurrentTabId,\n onClick: setDemoCurrentTabId\n };\n\n const previewTabs = {\n items: baseCaseTabs,\n currentTabId: previewCurrentTabId,\n onClick: setPreviewCurrentTabId\n };\n\n const parentCasesContent = getParentCases({\n caseId: caseIdProp,\n setPreviewCaseId,\n setPreviewCurrentTabId\n });\n\n const demoStages = <StagesDemo currentStage={3} />;\n\n const [followed, setFollowed] = useState(false);\n\n const [summaryExpanded, setSummaryExpanded] = useState(!!defaultExpanded);\n const [utilitiesExpanded, setUtilitiesExpanded] = useState(utilitiesExpandedProp);\n const tabContent = getTabContent({\n setPreviewCaseId,\n setPreviewCurrentTabId\n });\n\n return (\n <>\n {previewCaseId && (\n <CasePreview\n open\n onAfterClose={() => {\n setPreviewCaseId(null);\n }}\n caseId={previewCaseId}\n parentCases={\n Math.random() > 0.5\n ? [...parentCasesContent]\n .filter(c => c.id !== previewCaseId)\n .map(c => ({ ...c, id: `preview-${c.id}` }))\n : undefined\n }\n heading='Previewable demo case'\n subheading={previewCaseId}\n caseLink={{ href: `/cases/${previewCaseId}`, target: '_blank' }}\n icon='user-solid'\n followed={!followed}\n onEdit={() => {}}\n actions={getCaseActions()}\n promotedActions={getPromotedActions(2)}\n summaryFields={{\n primary: casePreviewPrimaryFields,\n secondary: casePreviewSecondaryFields\n }}\n stages={demoStages}\n tasks={<AssignmentsDemo count={4} />}\n tabs={previewTabs}\n tabContent={tabContent}\n utilities={\n <Grid container={{ rowGap: 2 }}>\n <Utilities\n predictions={predictions}\n attachments={attachments}\n stakeholders={stakeholders}\n followers={followers}\n tags={tags}\n />\n </Grid>\n }\n />\n )}\n\n <CaseView\n caseId={caseIdProp}\n parentCases={\n parentCases\n ? getParentCases({\n caseId: caseIdProp,\n setPreviewCaseId,\n setPreviewCurrentTabId\n })\n : undefined\n }\n heading={headingLength ? getHeading(headingLength) : heading}\n subheading={subheading}\n icon='user-solid'\n followed={followed}\n onFollowedChange={setFollowed}\n actions={getCaseActions()}\n promotedActions={promotedActions ? getPromotedActions(promotedActions) : undefined}\n onEdit={() => {}}\n summaryFields={(() => {\n const obj: CaseViewProps['summaryFields'] = {\n primary: getPrimaryFields(),\n secondary: getSecondaryFields({ setPreviewCaseId, setPreviewCurrentTabId })\n };\n\n if (summaryFields === 'Primary only') {\n obj.secondary = undefined;\n }\n\n if (summaryFields === 'Secondary only') {\n obj.primary = undefined;\n }\n\n return obj;\n })()}\n summaryExpanded={summaryExpanded}\n onToggleSummary={() => {\n setSummaryExpanded(cur => !cur);\n }}\n tabs={demoTabs}\n persistentUtility={(() => {\n if (typeof persistentUtility === 'boolean') {\n return persistentUtility\n ? { title: 'Persistent utility', content: <PersistentUtilityContent /> }\n : undefined;\n }\n\n return persistentUtility;\n })()}\n stages={stages ? demoStages : undefined}\n tasks={tasks ? <AssignmentsDemo count={taskCount} /> : undefined}\n tabContent={tabContent}\n utilities={\n <Utilities\n predictions={predictions}\n attachments={attachments}\n stakeholders={stakeholders}\n followers={followers}\n tags={tags}\n />\n }\n utilitiesSummaryItems={getUtilitiesSummaryItems({\n predictions,\n attachments,\n stakeholders,\n followers,\n tags\n })}\n utilitiesExpanded={utilitiesExpanded}\n onToggleUtilities={() => {\n setUtilitiesExpanded(cur => !cur);\n }}\n intelligentGuidance={intelligentGuidance}\n banners={\n banner ? (\n <Banner\n variant='urgent'\n messages={[\n {\n label: 'An error occurred',\n description:\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',\n action: {\n text: 'Take acton'\n }\n }\n ]}\n />\n ) : undefined\n }\n />\n </>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"CaseView.mocks.js","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.mocks.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Dispatch, SetStateAction, useMemo, useState, MouseEvent } from 'react';\nimport type { ReactNode } from 'react';\nimport createDOMPurify from 'dompurify';\nimport styled, { css } from 'styled-components';\n\nimport {\n Button,\n Link,\n createStringMatcher,\n Modal,\n SummaryList,\n SummaryListProps,\n useModalManager,\n useElement,\n ViewAll,\n Status,\n Flex,\n Grid,\n registerIcon,\n Banner,\n createUID,\n useBreakpoint,\n Avatar,\n Tabs,\n TabPanel,\n Card,\n CardHeader,\n Text\n} from '@pega/cosmos-react-core';\nimport type { Tab } from '@pega/cosmos-react-core/lib/components/Tabs/Tabs.types';\nimport {\n Glimpse,\n CaseViewProps,\n CaseView,\n CasePreview,\n UtilitySummaryItemDialog\n} from '@pega/cosmos-react-work';\nimport { TokenMap, RichTextViewer } from '@pega/cosmos-react-rte';\nimport * as userSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/user-solid.icon';\nimport { FeedProps } from '@pega/cosmos-react-social';\n\nimport { PredictionsDemo } from '../Predictions/Predictions.stories';\nimport { useMockListData } from '../../core/SummaryList/SummaryList.mocks';\nimport { StakeHoldersDemo } from '../Stakeholders/Stakeholders.stories';\nimport { TagsDemo } from '../Tags/Tags.stories';\nimport { StagesDemo } from '../Stages/Stages.stories';\nimport { AssignmentsDemo } from '../Assignments/Assignments.stories';\n\nimport { PulseMock } from './Pulse.mocks';\nimport { Details } from './Details.mocks';\nimport { AttachmentsMock } from './Attachments.mocks';\n\nregisterIcon(userSolidIcon);\n\nconst DOMPurify = createDOMPurify();\n\nexport interface CaseViewMockProps {\n caseId: CaseViewProps['caseId'];\n heading: CaseViewProps['heading'];\n subheading?: CaseViewProps['subheading'];\n parentCases?: boolean;\n summaryFields?: 'All' | 'Primary only' | 'Secondary only';\n tabs?: CaseViewProps['tabs'];\n stages?: boolean;\n tasks?: boolean | CaseViewProps['tasks'];\n taskCount?: number;\n predictions?: boolean;\n attachments?: boolean;\n stakeholders?: boolean;\n followers?: boolean;\n tags?: boolean;\n persistentUtility?: boolean | CaseViewProps['persistentUtility'];\n intelligentGuidance?: CaseViewProps['intelligentGuidance'];\n banner?: boolean;\n utilitiesExpanded?: boolean;\n promotedActions?: 0 | 1 | 2 | 3 | 4 | 5;\n headingLength?: 'short' | 'medium' | 'long';\n defaultExpanded?: boolean;\n}\n\ninterface PreviewSetters {\n setPreviewCaseId: Dispatch<SetStateAction<string | null>>;\n setPreviewCurrentTabId: Dispatch<SetStateAction<string>>;\n}\n\nconst StyledRSWrapper = styled.div(\n ({ theme }) => css`\n display: grid;\n place-items: center;\n border: 0.1875rem dashed ${theme.base.palette['border-line']};\n min-height: 6rem;\n height: var(--content-height-in-view);\n border-radius: calc(${theme.components.card['border-radius']});\n `\n);\n\n// This is a mini mock of the Constellation table component aka Repeating Structures\nconst RSTable = () => {\n return (\n <article style={{ display: 'block' }}>\n <StyledRSWrapper className='rs-wrapper'>\n <Text variant='secondary'>Table goes here</Text>\n </StyledRSWrapper>\n </article>\n );\n};\n\nconst TableSizingTabs = ({ tabCount = 3 }: { tabCount?: number }) => {\n const [currentTabId, setCurrentTabId] = useState('1');\n\n const tabs = [\n { name: 'Tab 1', id: '1' },\n { name: 'Tab 2', id: '2' },\n { name: 'Tab 3', id: '3' }\n ].slice(0, tabCount);\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Tabs\n tabs={tabs}\n type='horizontal'\n onTabClick={id => {\n setCurrentTabId(id);\n }}\n currentTabId={currentTabId}\n />\n {tabs.map(tab => (\n <TabPanel tabId={tab.id} currentTabId={currentTabId} key={tab.id}>\n <Flex container={{ direction: 'column', gap: 1 }}>\n {(() => {\n switch (tab.id) {\n case '1':\n return <RSTable />;\n\n case '2':\n return (\n <>\n <RSTable />\n <p>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\n cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat\n non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n </p>\n </>\n );\n\n case '3':\n return <TableSizingTabs tabCount={2} />;\n\n default:\n return null;\n }\n })()}\n </Flex>\n </TabPanel>\n ))}\n </Flex>\n );\n};\n\nexport const caseId = 'C-123456';\n\nexport const createDate = new Date(2016, 1, 8);\nconst msInYear = 1000 * 60 * 60 * 24 * 365;\nconst diffInYears = Math.floor((Date.now() - createDate.getTime()) / msInYear);\n\nexport const tabLabels = ['Details', 'Pulse', 'Single table', 'Sub tab table', 'Multiple tables'];\n\nexport const baseCaseTabs = tabLabels.map((name): Tab => {\n return {\n name,\n id: name\n };\n});\n\nconst singularize = (s = '') => s.replace(/s$/i, '').toLowerCase();\n\nexport const MockSummaryListViewAllModal = ({ name, count }: any) => {\n const [search, setSearch] = useState('');\n const [loading, setLoading] = useState(true);\n const [items] = useMockListData(\n () => {\n setLoading(false);\n },\n {\n count\n }\n );\n\n const onSearchChange = (value: string) => {\n setSearch(value.trim());\n };\n\n const itemsToRender = useMemo(() => {\n if (search) {\n const regEx = createStringMatcher(search, 'boundary');\n return items.filter(({ primary, id }) => regEx.test(primary) || regEx.test(id));\n }\n\n return items;\n }, [items, search]);\n\n return (\n <Modal heading={name}>\n <ViewAll\n loading={loading}\n items={itemsToRender}\n actions={[\n {\n id: 'addNew',\n text: `Add ${singularize(name)}`\n }\n ]}\n searchInputProps={{ onSearchChange }}\n />\n </Modal>\n );\n};\n\nexport const MockSummaryList = ({\n icon,\n name,\n actions,\n limit\n}: Pick<SummaryListProps, 'icon' | 'name'> & { actions?: null; limit?: number }) => {\n const { create: createModal } = useModalManager();\n const [loading, setLoading] = useState(true);\n const count = 50;\n\n const [items] = useMockListData(\n () => {\n setLoading(false);\n },\n { count: limit }\n );\n\n return (\n <SummaryList\n loading={loading}\n items={items}\n icon={icon}\n name={name}\n headingTag='h3'\n count={loading ? undefined : count}\n actions={\n actions !== null\n ? [\n {\n text: 'Add',\n id: `${name}:addNew`,\n icon: 'plus',\n onClick() {\n createModal(() => {\n const singularName = singularize(name);\n return (\n <Modal heading={`Add new ${singularName}`}>\n {`Content for adding a new ${singularName} goes here…`}\n </Modal>\n );\n });\n }\n }\n ]\n : undefined\n }\n onViewAll={() => {\n createModal(MockSummaryListViewAllModal, {\n name,\n count\n });\n }}\n />\n );\n};\n\nexport const MockOperatorFieldValue = () => {\n const [target, setTarget] = useElement<HTMLButtonElement>(null);\n\n return (\n <>\n <Button\n variant='link'\n onClick={(e: MouseEvent<HTMLButtonElement>) => {\n setTarget(e.currentTarget);\n }}\n >\n constellation@pega.com\n </Button>\n {target && (\n <Glimpse\n id='constellation'\n target={target}\n onDismiss={() => setTarget(null)}\n heading={{\n primary: 'Constellation Operator',\n secondary: 'Director of the stars',\n visual: <Avatar name='Constellation Operator' />\n }}\n fields={[\n {\n id: '1',\n name: 'Department',\n value: 'Space Travel'\n },\n {\n id: '2',\n name: 'Manager',\n value: 'Captain Galaxy'\n },\n {\n id: '3',\n name: 'Location',\n value: 'A galaxy far away'\n },\n {\n id: '4',\n name: 'Email',\n value: <Link href='mailto:constellation@pega.com'>constellation@pega.com</Link>\n },\n {\n id: '5',\n name: 'Telephone',\n value: <Link href='tel:555-123-4567'>555-123-4567</Link>\n }\n ]}\n onViewProfile={() => {}}\n />\n )}\n </>\n );\n};\n\nexport const PreviewLinkComponent = ({\n token: linkToken,\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: { token: TokenMap['link'] } & PreviewSetters) => {\n return (\n <Link\n href={linkToken.href}\n previewable\n onPreview={() => {\n setPreviewCaseId(linkToken.href);\n setPreviewCurrentTabId(`summary-${linkToken.href}`);\n }}\n >\n {linkToken.text}\n </Link>\n );\n};\n\nexport const getPulseMarkdownMap = ({\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: PreviewSetters): FeedProps['markdownMap'] => {\n return {\n link: (linkToken: TokenMap['link']) => {\n if (linkToken.href?.startsWith('C-')) {\n return () => (\n <PreviewLinkComponent\n token={linkToken}\n setPreviewCaseId={setPreviewCaseId}\n setPreviewCurrentTabId={setPreviewCurrentTabId}\n />\n );\n }\n }\n };\n};\n\nexport const onMentionPreview = ({\n id,\n type,\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: {\n id: string;\n type: string;\n} & PreviewSetters) => {\n if (type === 'case') {\n setPreviewCaseId(id);\n setPreviewCurrentTabId(`summary-${id}`);\n }\n};\n\nexport const getTabContent = ({ setPreviewCaseId, setPreviewCurrentTabId }: PreviewSetters) => {\n return [\n {\n id: 'Details',\n content: <Details />\n },\n {\n id: 'Pulse',\n content: (\n <PulseMock\n markdownMap={getPulseMarkdownMap({ setPreviewCaseId, setPreviewCurrentTabId })}\n onMentionPreview={({ id, type }) => {\n onMentionPreview({ id, type, setPreviewCaseId, setPreviewCurrentTabId });\n }}\n />\n )\n },\n {\n id: 'Single table',\n content: <RSTable />\n },\n {\n id: 'Sub tab table',\n content: <TableSizingTabs />\n },\n {\n id: 'Multiple tables',\n content: (\n <Card>\n <CardHeader>\n <Text variant='h2'>Multiple tables</Text>\n </CardHeader>\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RSTable />\n <RSTable />\n </Flex>\n </Card>\n )\n },\n {\n id: 'not found',\n content: <h2>Not Found</h2>\n }\n ];\n};\n\nexport const previewTabContent = [\n {\n id: 'Details',\n content: <Details />\n },\n {\n id: 'Pulse',\n content: <PulseMock />\n },\n {\n id: 'Single table',\n content: <RSTable />\n },\n {\n id: 'Sub tab table',\n content: <TableSizingTabs />\n },\n {\n id: 'Multiple tables',\n content: (\n <Card>\n <CardHeader>\n <Text variant='h2'>Multiple tables</Text>\n </CardHeader>\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RSTable />\n <RSTable />\n </Flex>\n </Card>\n )\n },\n {\n id: 'not found',\n content: <h2>Not Found</h2>\n }\n];\n\nexport const getPrimaryFields = () => {\n return [\n {\n name: 'Create date',\n value: createDate.toDateString()\n },\n {\n name: 'Member ID',\n value: 'M205435569FD1234567890'\n },\n {\n name: 'Assigned to',\n value: 'Dean Thomas'\n },\n {\n name: 'Priority',\n value: '95'\n }\n ].map((f, i) => ({ ...f, id: `p-${i}` }));\n};\n\nconst baseSecondaryFields: CaseViewProps['summaryFields']['secondary'] = [\n {\n name: 'Status',\n value: <Status variant='info'>New</Status>\n },\n {\n name: 'Update date',\n value: `${diffInYears} years ago`\n },\n {\n name: 'Description',\n value: (\n <RichTextViewer\n content='<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse commodo nulla vitae mi bibendum, a fringilla nisl efficitur. Praesent vitae nulla lobortis, finibus felis ultricies, fermentum mi. Nunc lorem ligula, placerat nec elit id, auctor pellentesque est.</p> </br> <p>Pellentesque pharetra justo augue, non maximus nulla venenatis et. Sed laoreet ultricies ullamcorper. Mauris ac nulla quis ipsum semper fringilla in eget risus. Fusce cursus sollicitudin nibh molestie volutpat.</p>'\n type='html'\n />\n ),\n simpleValue: DOMPurify.sanitize(\n '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse commodo nulla vitae mi bibendum, a fringilla nisl efficitur. Praesent vitae nulla lobortis, finibus felis ultricies, fermentum mi. Nunc lorem ligula, placerat nec elit id, auctor pellentesque est.</p> </br> <p>Pellentesque pharetra justo augue, non maximus nulla venenatis et. Sed laoreet ultricies ullamcorper. Mauris ac nulla quis ipsum semper fringilla in eget risus. Fusce cursus sollicitudin nibh molestie volutpat.</p>',\n {\n ALLOWED_TAGS: [],\n ALLOWED_ATTR: [],\n KEEP_CONTENT: true\n }\n ),\n variant: 'stacked'\n }\n];\n\nexport const getSecondaryFields = ({\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: PreviewSetters) => {\n return [\n ...baseSecondaryFields,\n {\n name: 'Created by',\n value: <MockOperatorFieldValue />\n },\n {\n name: 'Previewable case',\n value: (\n <Link\n href='/cases/C-456'\n previewable\n onPreview={() => {\n setPreviewCaseId('C-456');\n setPreviewCurrentTabId('summary-C-456');\n }}\n >\n Previewable Case - C-456\n </Link>\n )\n }\n ];\n};\n\nexport const casePreviewPrimaryFields = [\n {\n name: 'Member ID',\n value: 'M204859F438G'\n },\n {\n name: 'Priority',\n value: '95'\n }\n];\n\nexport const casePreviewSecondaryFields = baseSecondaryFields;\n\nexport const getParentCases = ({\n setPreviewCaseId,\n setPreviewCurrentTabId\n}: {\n caseId: CaseViewProps['caseId'];\n} & PreviewSetters) => {\n let ids: number[] = [];\n\n /** random-ish number from 100000 to 999999 */\n const randomId = (seed = 1) => {\n const x = Math.sin(seed);\n let rand = x - Math.floor(x);\n\n if (rand < 0.1) {\n rand += 0.1;\n }\n\n return Math.floor(rand * 1000000);\n };\n\n for (let i = 0; i < 5; i += 1) {\n ids.push(randomId(i + 1));\n }\n\n ids = ids.sort((a, b) => a - b);\n\n return ids.map(num => {\n const id = `C-${num}`;\n return {\n id,\n primary: id,\n href: `/cases/${id}`,\n previewable: true,\n onPreview: () => {\n setPreviewCaseId(id);\n setPreviewCurrentTabId(`summary-${id}`);\n }\n };\n });\n};\n\ninterface UtilitiesArgs {\n predictions?: CaseViewMockProps['predictions'];\n attachments?: CaseViewMockProps['attachments'];\n stakeholders?: CaseViewMockProps['stakeholders'];\n followers?: CaseViewMockProps['followers'];\n tags?: CaseViewMockProps['tags'];\n}\n\ninterface UtilitySummaryItemsArgs {\n predictions?: CaseViewMockProps['predictions'];\n attachments?: CaseViewMockProps['attachments'];\n stakeholders?: CaseViewMockProps['stakeholders'];\n followers?: CaseViewMockProps['followers'];\n tags?: CaseViewMockProps['tags'];\n setDialogTarget: (instance: HTMLElement | null) => void;\n setDialogContent: React.Dispatch<React.SetStateAction<ReactNode>>;\n setShowDialog: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport const Utilities = ({\n predictions,\n attachments,\n stakeholders,\n followers,\n tags\n}: UtilitiesArgs) => {\n return (\n <>\n {predictions && <PredictionsDemo />}\n {attachments && <AttachmentsMock />}\n {stakeholders && <StakeHoldersDemo />}\n {followers && <MockSummaryList icon='user-star' name='Followers' />}\n {tags && <TagsDemo />}\n </>\n );\n};\n\nexport const getUtilitiesSummaryItems = ({\n predictions,\n attachments,\n stakeholders,\n followers,\n tags,\n setDialogTarget,\n setDialogContent,\n setShowDialog\n}: UtilitySummaryItemsArgs): NonNullable<CaseViewProps['utilitiesSummaryItems']> => {\n const items: NonNullable<CaseViewProps['utilitiesSummaryItems']> = [];\n\n if (predictions)\n items.push({\n iconName: 'polaris',\n name: 'Predictions',\n onClick: e => {\n setDialogTarget(e.currentTarget);\n setDialogContent(<PredictionsDemo />);\n setShowDialog(true);\n }\n });\n if (attachments)\n items.push({\n iconName: 'paper-clip',\n count: 4,\n name: 'Attachments',\n onClick: e => {\n setDialogTarget(e.currentTarget);\n setDialogContent(<AttachmentsMock />);\n setShowDialog(true);\n }\n });\n if (stakeholders)\n items.push({\n iconName: 'user-search-solid',\n count: 10,\n name: 'Stakeholders',\n onClick: e => {\n setDialogTarget(e.currentTarget);\n setDialogContent(<StakeHoldersDemo />);\n setShowDialog(true);\n }\n });\n if (followers)\n items.push({\n iconName: 'user-star-solid',\n count: 5,\n name: 'Followers',\n onClick: e => {\n setDialogTarget(e.currentTarget);\n setDialogContent(<MockSummaryList icon='user-star' name='Followers' />);\n setShowDialog(true);\n }\n });\n if (tags)\n items.push({\n iconName: 'tag',\n count: 10,\n name: 'Tags',\n onClick: e => {\n setDialogTarget(e.currentTarget);\n setDialogContent(<TagsDemo />);\n setShowDialog(true);\n }\n });\n\n return items;\n};\n\nexport const getCaseActions = () => {\n return Array.from({ length: 12 }, (_, i) => {\n return {\n text: `Action ${i + 1}`,\n id: `${i + 1}`,\n onClick: () => {}\n };\n });\n};\n\nconst getHeading = (size: 'short' | 'medium' | 'long') => {\n return {\n short: 'Constellation',\n medium: 'Complicated constellation demo case of some distinction',\n long: 'The scenario in this case is almost too obscure to put into words and so the title is quite long'\n }[size];\n};\n\nexport const getPromotedActions = (count: number) => {\n return [\n {\n id: createUID(),\n text: 'Reassign',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Add dependency',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Clone',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Move',\n onClick: () => {}\n },\n {\n id: createUID(),\n text: 'Withdraw',\n onClick: () => {}\n }\n ].slice(0, count);\n};\n\nconst StyledPersistentUtilityContent = styled.div(({ theme }) => {\n return css`\n height: 100%;\n border-inline: 0.0625rem dashed ${theme.base.palette['border-line']};\n `;\n});\n\nexport const PersistentUtilityContent = () => {\n return (\n <Flex\n container={{ justify: 'center', alignItems: 'center' }}\n as={StyledPersistentUtilityContent}\n >\n Persistent utility content\n </Flex>\n );\n};\n\nexport const CaseViewMock = ({\n caseId: caseIdProp,\n heading,\n subheading,\n parentCases = false,\n promotedActions = 1,\n summaryFields = 'All',\n tabs,\n stages = true,\n tasks = true,\n taskCount = 4,\n utilitiesExpanded: utilitiesExpandedProp = true,\n predictions = true,\n attachments = true,\n stakeholders = true,\n followers = true,\n tags = true,\n persistentUtility = false,\n intelligentGuidance = false,\n banner = false,\n headingLength,\n defaultExpanded\n}: CaseViewMockProps) => {\n const [previewCaseId, setPreviewCaseId] = useState<null | string>(null);\n const [previewCurrentTabId, setPreviewCurrentTabId] = useState(baseCaseTabs[0].id);\n const isMediumOrAbove = useBreakpoint('md');\n const [demoCurrentTabId, setDemoCurrentTabId] = useState(\n isMediumOrAbove ? tabs?.currentTabId ?? baseCaseTabs[0].id : `summary-${caseIdProp}`\n );\n\n const [dialogContent, setDialogContent] = useState<ReactNode>();\n const [dialogTarget, setDialogTarget] = useElement<HTMLElement>();\n const [showDialog, setShowDialog] = useState(false);\n\n const demoTabs = tabs ?? {\n items: baseCaseTabs,\n currentTabId: demoCurrentTabId,\n onClick: setDemoCurrentTabId\n };\n\n const previewTabs = {\n items: baseCaseTabs,\n currentTabId: previewCurrentTabId,\n onClick: setPreviewCurrentTabId\n };\n\n const parentCasesContent = getParentCases({\n caseId: caseIdProp,\n setPreviewCaseId,\n setPreviewCurrentTabId\n });\n\n const demoStages = <StagesDemo currentStage={3} />;\n\n const [followed, setFollowed] = useState(false);\n\n const [summaryExpanded, setSummaryExpanded] = useState(!!defaultExpanded);\n const [utilitiesExpanded, setUtilitiesExpanded] = useState(utilitiesExpandedProp);\n const tabContent = getTabContent({\n setPreviewCaseId,\n setPreviewCurrentTabId\n });\n\n return (\n <>\n {previewCaseId && (\n <CasePreview\n open\n onAfterClose={() => {\n setPreviewCaseId(null);\n }}\n caseId={previewCaseId}\n parentCases={\n Math.random() > 0.5\n ? [...parentCasesContent]\n .filter(c => c.id !== previewCaseId)\n .map(c => ({ ...c, id: `preview-${c.id}` }))\n : undefined\n }\n heading='Previewable demo case'\n subheading={previewCaseId}\n caseLink={{ href: `/cases/${previewCaseId}`, target: '_blank' }}\n icon='user-solid'\n followed={!followed}\n onEdit={() => {}}\n actions={getCaseActions()}\n promotedActions={getPromotedActions(2)}\n summaryFields={{\n primary: casePreviewPrimaryFields,\n secondary: casePreviewSecondaryFields\n }}\n stages={demoStages}\n tasks={<AssignmentsDemo count={4} />}\n tabs={previewTabs}\n tabContent={tabContent}\n utilities={\n <Grid container={{ rowGap: 2 }}>\n <Utilities\n predictions={predictions}\n attachments={attachments}\n stakeholders={stakeholders}\n followers={followers}\n tags={tags}\n />\n </Grid>\n }\n />\n )}\n {dialogTarget && showDialog && (\n <UtilitySummaryItemDialog\n target={dialogTarget}\n onDismiss={() => {\n setShowDialog(false);\n }}\n >\n {dialogContent}\n </UtilitySummaryItemDialog>\n )}\n <CaseView\n caseId={caseIdProp}\n parentCases={\n parentCases\n ? getParentCases({\n caseId: caseIdProp,\n setPreviewCaseId,\n setPreviewCurrentTabId\n })\n : undefined\n }\n heading={headingLength ? getHeading(headingLength) : heading}\n subheading={subheading}\n icon='user-solid'\n followed={followed}\n onFollowedChange={setFollowed}\n actions={getCaseActions()}\n promotedActions={promotedActions ? getPromotedActions(promotedActions) : undefined}\n onEdit={() => {}}\n summaryFields={(() => {\n const obj: CaseViewProps['summaryFields'] = {\n primary: getPrimaryFields(),\n secondary: getSecondaryFields({ setPreviewCaseId, setPreviewCurrentTabId })\n };\n\n if (summaryFields === 'Primary only') {\n obj.secondary = undefined;\n }\n\n if (summaryFields === 'Secondary only') {\n obj.primary = undefined;\n }\n\n return obj;\n })()}\n summaryExpanded={summaryExpanded}\n onToggleSummary={() => {\n setSummaryExpanded(cur => !cur);\n }}\n tabs={demoTabs}\n persistentUtility={(() => {\n if (typeof persistentUtility === 'boolean') {\n return persistentUtility\n ? { title: 'Persistent utility', content: <PersistentUtilityContent /> }\n : undefined;\n }\n\n return persistentUtility;\n })()}\n stages={stages ? demoStages : undefined}\n tasks={tasks ? <AssignmentsDemo count={taskCount} /> : undefined}\n tabContent={tabContent}\n utilities={\n <Utilities\n predictions={predictions}\n attachments={attachments}\n stakeholders={stakeholders}\n followers={followers}\n tags={tags}\n />\n }\n utilitiesSummaryItems={getUtilitiesSummaryItems({\n predictions,\n attachments,\n stakeholders,\n followers,\n tags,\n setDialogTarget,\n setDialogContent,\n setShowDialog\n })}\n utilitiesExpanded={utilitiesExpanded}\n onToggleUtilities={() => {\n setUtilitiesExpanded(cur => !cur);\n }}\n intelligentGuidance={intelligentGuidance}\n banners={\n banner ? (\n <Banner\n variant='urgent'\n messages={[\n {\n label: 'An error occurred',\n description:\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',\n action: {\n text: 'Take acton'\n }\n }\n ]}\n />\n ) : undefined\n }\n />\n </>\n );\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/cosmos-react-demos",
|
|
3
|
-
"version": "5.0.0-dev.4.
|
|
3
|
+
"version": "5.0.0-dev.4.5",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/pegasystems/cosmos-react.git",
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"build": "tsc -b"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@pega/cosmos-react-condition-builder": "5.0.0-dev.4.
|
|
24
|
-
"@pega/cosmos-react-core": "5.0.0-dev.4.
|
|
25
|
-
"@pega/cosmos-react-dnd": "5.0.0-dev.4.
|
|
26
|
-
"@pega/cosmos-react-rte": "5.0.0-dev.4.
|
|
27
|
-
"@pega/cosmos-react-social": "5.0.0-dev.4.
|
|
28
|
-
"@pega/cosmos-react-work": "5.0.0-dev.4.
|
|
23
|
+
"@pega/cosmos-react-condition-builder": "5.0.0-dev.4.5",
|
|
24
|
+
"@pega/cosmos-react-core": "5.0.0-dev.4.5",
|
|
25
|
+
"@pega/cosmos-react-dnd": "5.0.0-dev.4.5",
|
|
26
|
+
"@pega/cosmos-react-rte": "5.0.0-dev.4.5",
|
|
27
|
+
"@pega/cosmos-react-social": "5.0.0-dev.4.5",
|
|
28
|
+
"@pega/cosmos-react-work": "5.0.0-dev.4.5",
|
|
29
29
|
"@storybook/addon-a11y": "~7.0.24",
|
|
30
30
|
"@storybook/addon-actions": "~7.0.24",
|
|
31
31
|
"@storybook/addon-links": "~7.0.24",
|