@pega/cosmos-react-demos 3.0.0-dev.22.0 → 3.0.0-dev.23.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/jsx/build/AppHeader/AppHeader.stories.jsx +1 -1
- package/jsx/build/AppHeader/AppHeader.stories.jsx.map +1 -1
- package/jsx/build/ObjectSelect/ObjectSelect.mocks.d.ts.map +1 -1
- package/jsx/build/ObjectSelect/ObjectSelect.mocks.jsx +2 -1
- package/jsx/build/ObjectSelect/ObjectSelect.mocks.jsx.map +1 -1
- package/jsx/condition-builder/PromotedFilters/PromotedFilters.mocks.d.ts.map +1 -1
- package/jsx/condition-builder/PromotedFilters/PromotedFilters.mocks.js +91 -0
- package/jsx/condition-builder/PromotedFilters/PromotedFilters.mocks.js.map +1 -1
- package/jsx/core/AppShell/AppShell.stories.d.ts +1 -0
- package/jsx/core/AppShell/AppShell.stories.d.ts.map +1 -1
- package/jsx/core/AppShell/AppShell.stories.jsx +1 -1
- package/jsx/core/AppShell/AppShell.stories.jsx.map +1 -1
- package/jsx/core/Banner/Banner.stories.d.ts +0 -1
- package/jsx/core/Banner/Banner.stories.d.ts.map +1 -1
- package/jsx/core/Banner/Banner.stories.jsx +0 -8
- package/jsx/core/Banner/Banner.stories.jsx.map +1 -1
- package/jsx/core/CreditCard/CreditCard.stories.jsx +1 -1
- package/jsx/core/CreditCard/CreditCard.stories.jsx.map +1 -1
- package/jsx/core/Currency/Currency.stories.d.ts +5 -3
- package/jsx/core/Currency/Currency.stories.d.ts.map +1 -1
- package/jsx/core/Currency/Currency.stories.jsx +2 -2
- package/jsx/core/Currency/Currency.stories.jsx.map +1 -1
- package/jsx/core/DateTime/DateTime.stories.d.ts.map +1 -1
- package/jsx/core/DateTime/DateTime.stories.jsx +3 -0
- package/jsx/core/DateTime/DateTime.stories.jsx.map +1 -1
- package/jsx/core/FieldGroup/FieldGroupList.stories.d.ts.map +1 -1
- package/jsx/core/FieldGroup/FieldGroupList.stories.jsx +4 -0
- package/jsx/core/FieldGroup/FieldGroupList.stories.jsx.map +1 -1
- package/jsx/core/FieldValueList/FieldValueList.stories.jsx +1 -1
- package/jsx/core/FieldValueList/FieldValueList.stories.jsx.map +1 -1
- package/jsx/core/FieldValueList/FieldValueList.styles.d.ts +2 -0
- package/jsx/core/FieldValueList/FieldValueList.styles.d.ts.map +1 -0
- package/{lib/core/FieldValueList/FieldValueList.mocks.js → jsx/core/FieldValueList/FieldValueList.styles.js} +2 -3
- package/jsx/core/FieldValueList/FieldValueList.styles.js.map +1 -0
- package/jsx/core/Number/Number.stories.d.ts +1 -1
- package/jsx/core/Number/Number.stories.d.ts.map +1 -1
- package/jsx/core/Number/Number.stories.jsx +4 -4
- package/jsx/core/Number/Number.stories.jsx.map +1 -1
- package/jsx/cs/CallControlPanel/CallControlPanel.stories.d.ts.map +1 -1
- package/jsx/cs/CallControlPanel/CallControlPanel.stories.jsx +12 -1
- package/jsx/cs/CallControlPanel/CallControlPanel.stories.jsx.map +1 -1
- package/jsx/cs/IntelligentGuidance/IntelligentGuidance.stories.jsx +2 -2
- package/jsx/cs/IntelligentGuidance/IntelligentGuidance.stories.jsx.map +1 -1
- package/jsx/cs/InteractionNotification/InteractionNotification.stories.d.ts +1 -0
- package/jsx/cs/InteractionNotification/InteractionNotification.stories.d.ts.map +1 -1
- package/jsx/cs/InteractionNotification/InteractionNotification.stories.jsx +6 -6
- package/jsx/cs/InteractionNotification/InteractionNotification.stories.jsx.map +1 -1
- package/jsx/social/Email/Email.stories.d.ts.map +1 -1
- package/jsx/social/Email/Email.stories.jsx +19 -0
- package/jsx/social/Email/Email.stories.jsx.map +1 -1
- package/jsx/social/Feed/Feed.stories.d.ts.map +1 -1
- package/jsx/social/Feed/Feed.stories.jsx +6 -2
- package/jsx/social/Feed/Feed.stories.jsx.map +1 -1
- package/jsx/social/Feed/FeedNewPost.stories.d.ts.map +1 -1
- package/jsx/social/Feed/FeedNewPost.stories.jsx +1 -1
- package/jsx/social/Feed/FeedNewPost.stories.jsx.map +1 -1
- package/jsx/social/Feed/FeedPost.stories.d.ts.map +1 -1
- package/jsx/social/Feed/FeedPost.stories.jsx +2 -2
- package/jsx/social/Feed/FeedPost.stories.jsx.map +1 -1
- package/jsx/social/Feed/FeedReply.stories.d.ts.map +1 -1
- package/jsx/social/Feed/FeedReply.stories.jsx +1 -1
- package/jsx/social/Feed/FeedReply.stories.jsx.map +1 -1
- package/jsx/social/Feed/FeedReplyInput.stories.d.ts.map +1 -1
- package/jsx/social/Feed/FeedReplyInput.stories.jsx +1 -1
- package/jsx/social/Feed/FeedReplyInput.stories.jsx.map +1 -1
- package/jsx/work/CaseView/CaseView.mocks.d.ts +74 -2
- package/jsx/work/CaseView/CaseView.mocks.d.ts.map +1 -1
- package/jsx/work/CaseView/CaseView.mocks.jsx +198 -9
- package/jsx/work/CaseView/CaseView.mocks.jsx.map +1 -1
- package/jsx/work/CaseView/CaseView.stories.d.ts +3 -22
- package/jsx/work/CaseView/CaseView.stories.d.ts.map +1 -1
- package/jsx/work/CaseView/CaseView.stories.jsx +49 -238
- package/jsx/work/CaseView/CaseView.stories.jsx.map +1 -1
- package/jsx/wss/AppShell/AppShell.mocks.d.ts +11 -0
- package/jsx/wss/AppShell/AppShell.mocks.d.ts.map +1 -1
- package/jsx/wss/AppShell/AppShell.mocks.jsx +11 -0
- package/jsx/wss/AppShell/AppShell.mocks.jsx.map +1 -1
- package/jsx/wss/AppShell/AppShell.stories.d.ts +11 -9
- package/jsx/wss/AppShell/AppShell.stories.d.ts.map +1 -1
- package/jsx/wss/AppShell/AppShell.stories.jsx +11 -19
- package/jsx/wss/AppShell/AppShell.stories.jsx.map +1 -1
- package/jsx/wss/PageTemplates/PageTemplates.stories.d.ts +15 -0
- package/jsx/wss/PageTemplates/PageTemplates.stories.d.ts.map +1 -0
- package/jsx/wss/PageTemplates/PageTemplates.stories.jsx +48 -0
- package/jsx/wss/PageTemplates/PageTemplates.stories.jsx.map +1 -0
- package/lib/build/AppHeader/AppHeader.stories.js +1 -1
- package/lib/build/AppHeader/AppHeader.stories.js.map +1 -1
- package/lib/build/ObjectSelect/ObjectSelect.mocks.d.ts.map +1 -1
- package/lib/build/ObjectSelect/ObjectSelect.mocks.js +2 -1
- package/lib/build/ObjectSelect/ObjectSelect.mocks.js.map +1 -1
- package/lib/condition-builder/PromotedFilters/PromotedFilters.mocks.d.ts.map +1 -1
- package/lib/condition-builder/PromotedFilters/PromotedFilters.mocks.js +91 -0
- package/lib/condition-builder/PromotedFilters/PromotedFilters.mocks.js.map +1 -1
- package/lib/core/AppShell/AppShell.stories.d.ts +1 -0
- package/lib/core/AppShell/AppShell.stories.d.ts.map +1 -1
- package/lib/core/AppShell/AppShell.stories.js +1 -1
- package/lib/core/AppShell/AppShell.stories.js.map +1 -1
- package/lib/core/Banner/Banner.stories.d.ts +0 -1
- package/lib/core/Banner/Banner.stories.d.ts.map +1 -1
- package/lib/core/Banner/Banner.stories.js +0 -11
- package/lib/core/Banner/Banner.stories.js.map +1 -1
- package/lib/core/CreditCard/CreditCard.stories.js +1 -1
- package/lib/core/CreditCard/CreditCard.stories.js.map +1 -1
- package/lib/core/Currency/Currency.stories.d.ts +5 -3
- package/lib/core/Currency/Currency.stories.d.ts.map +1 -1
- package/lib/core/Currency/Currency.stories.js +2 -2
- package/lib/core/Currency/Currency.stories.js.map +1 -1
- package/lib/core/DateTime/DateTime.stories.d.ts.map +1 -1
- package/lib/core/DateTime/DateTime.stories.js +3 -0
- package/lib/core/DateTime/DateTime.stories.js.map +1 -1
- package/lib/core/FieldGroup/FieldGroupList.stories.d.ts.map +1 -1
- package/lib/core/FieldGroup/FieldGroupList.stories.js +4 -0
- package/lib/core/FieldGroup/FieldGroupList.stories.js.map +1 -1
- package/lib/core/FieldValueList/FieldValueList.stories.js +1 -1
- package/lib/core/FieldValueList/FieldValueList.stories.js.map +1 -1
- package/lib/core/FieldValueList/FieldValueList.styles.d.ts +2 -0
- package/lib/core/FieldValueList/FieldValueList.styles.d.ts.map +1 -0
- package/{jsx/core/FieldValueList/FieldValueList.mocks.js → lib/core/FieldValueList/FieldValueList.styles.js} +2 -3
- package/lib/core/FieldValueList/FieldValueList.styles.js.map +1 -0
- package/lib/core/Number/Number.stories.d.ts +1 -1
- package/lib/core/Number/Number.stories.d.ts.map +1 -1
- package/lib/core/Number/Number.stories.js +4 -4
- package/lib/core/Number/Number.stories.js.map +1 -1
- package/lib/cs/CallControlPanel/CallControlPanel.stories.d.ts.map +1 -1
- package/lib/cs/CallControlPanel/CallControlPanel.stories.js +12 -1
- package/lib/cs/CallControlPanel/CallControlPanel.stories.js.map +1 -1
- package/lib/cs/IntelligentGuidance/IntelligentGuidance.stories.js +2 -2
- package/lib/cs/IntelligentGuidance/IntelligentGuidance.stories.js.map +1 -1
- package/lib/cs/InteractionNotification/InteractionNotification.stories.d.ts +1 -0
- package/lib/cs/InteractionNotification/InteractionNotification.stories.d.ts.map +1 -1
- package/lib/cs/InteractionNotification/InteractionNotification.stories.js +24 -22
- package/lib/cs/InteractionNotification/InteractionNotification.stories.js.map +1 -1
- package/lib/social/Email/Email.stories.d.ts.map +1 -1
- package/lib/social/Email/Email.stories.js +19 -0
- package/lib/social/Email/Email.stories.js.map +1 -1
- package/lib/social/Feed/Feed.stories.d.ts.map +1 -1
- package/lib/social/Feed/Feed.stories.js +6 -2
- package/lib/social/Feed/Feed.stories.js.map +1 -1
- package/lib/social/Feed/FeedNewPost.stories.d.ts.map +1 -1
- package/lib/social/Feed/FeedNewPost.stories.js +1 -1
- package/lib/social/Feed/FeedNewPost.stories.js.map +1 -1
- package/lib/social/Feed/FeedPost.stories.d.ts.map +1 -1
- package/lib/social/Feed/FeedPost.stories.js +2 -2
- package/lib/social/Feed/FeedPost.stories.js.map +1 -1
- package/lib/social/Feed/FeedReply.stories.d.ts.map +1 -1
- package/lib/social/Feed/FeedReply.stories.js +1 -1
- package/lib/social/Feed/FeedReply.stories.js.map +1 -1
- package/lib/social/Feed/FeedReplyInput.stories.d.ts.map +1 -1
- package/lib/social/Feed/FeedReplyInput.stories.js +1 -1
- package/lib/social/Feed/FeedReplyInput.stories.js.map +1 -1
- package/lib/work/CaseView/CaseView.mocks.d.ts +74 -2
- package/lib/work/CaseView/CaseView.mocks.d.ts.map +1 -1
- package/lib/work/CaseView/CaseView.mocks.js +188 -9
- package/lib/work/CaseView/CaseView.mocks.js.map +1 -1
- package/lib/work/CaseView/CaseView.stories.d.ts +3 -22
- package/lib/work/CaseView/CaseView.stories.d.ts.map +1 -1
- package/lib/work/CaseView/CaseView.stories.js +44 -248
- package/lib/work/CaseView/CaseView.stories.js.map +1 -1
- package/lib/wss/AppShell/AppShell.mocks.d.ts +11 -0
- package/lib/wss/AppShell/AppShell.mocks.d.ts.map +1 -1
- package/lib/wss/AppShell/AppShell.mocks.js +11 -0
- package/lib/wss/AppShell/AppShell.mocks.js.map +1 -1
- package/lib/wss/AppShell/AppShell.stories.d.ts +11 -9
- package/lib/wss/AppShell/AppShell.stories.d.ts.map +1 -1
- package/lib/wss/AppShell/AppShell.stories.js +12 -19
- package/lib/wss/AppShell/AppShell.stories.js.map +1 -1
- package/lib/wss/PageTemplates/PageTemplates.stories.d.ts +15 -0
- package/lib/wss/PageTemplates/PageTemplates.stories.d.ts.map +1 -0
- package/lib/wss/PageTemplates/PageTemplates.stories.js +41 -0
- package/lib/wss/PageTemplates/PageTemplates.stories.js.map +1 -0
- package/package.json +10 -11
- package/jsx/core/FieldValueList/FieldValueList.mocks.d.ts +0 -3
- package/jsx/core/FieldValueList/FieldValueList.mocks.d.ts.map +0 -1
- package/jsx/core/FieldValueList/FieldValueList.mocks.js.map +0 -1
- package/jsx/cs/CSCaseView/CSAppShell.mocks.d.ts +0 -73
- package/jsx/cs/CSCaseView/CSAppShell.mocks.d.ts.map +0 -1
- package/jsx/cs/CSCaseView/CSAppShell.mocks.jsx +0 -299
- package/jsx/cs/CSCaseView/CSAppShell.mocks.jsx.map +0 -1
- package/jsx/cs/CSCaseView/CSAppShell.stories.d.ts +0 -13
- package/jsx/cs/CSCaseView/CSAppShell.stories.d.ts.map +0 -1
- package/jsx/cs/CSCaseView/CSAppShell.stories.jsx +0 -228
- package/jsx/cs/CSCaseView/CSAppShell.stories.jsx.map +0 -1
- package/lib/core/FieldValueList/FieldValueList.mocks.d.ts +0 -3
- package/lib/core/FieldValueList/FieldValueList.mocks.d.ts.map +0 -1
- package/lib/core/FieldValueList/FieldValueList.mocks.js.map +0 -1
- package/lib/cs/CSCaseView/CSAppShell.mocks.d.ts +0 -73
- package/lib/cs/CSCaseView/CSAppShell.mocks.d.ts.map +0 -1
- package/lib/cs/CSCaseView/CSAppShell.mocks.js +0 -280
- package/lib/cs/CSCaseView/CSAppShell.mocks.js.map +0 -1
- package/lib/cs/CSCaseView/CSAppShell.stories.d.ts +0 -13
- package/lib/cs/CSCaseView/CSAppShell.stories.d.ts.map +0 -1
- package/lib/cs/CSCaseView/CSAppShell.stories.js +0 -210
- package/lib/cs/CSCaseView/CSAppShell.stories.js.map +0 -1
|
@@ -1,27 +1,8 @@
|
|
|
1
|
-
import { ReactElement } from 'react';
|
|
2
1
|
import { Meta, Story } from '@storybook/react';
|
|
3
|
-
import { MenuItemProps } from '@pega/cosmos-react-core';
|
|
4
|
-
import { CaseViewProps, CaseHeaderProps, CaseSummaryFieldsProps } from '@pega/cosmos-react-work';
|
|
5
2
|
declare const _default: Meta<import("@storybook/react").Args>;
|
|
6
3
|
export default _default;
|
|
7
|
-
export interface
|
|
8
|
-
|
|
9
|
-
persistentUtility?: CaseViewProps['persistentUtility'];
|
|
10
|
-
caseId?: string;
|
|
11
|
-
heading?: string;
|
|
12
|
-
icon?: ReactElement;
|
|
13
|
-
parentCases?: MenuItemProps[];
|
|
14
|
-
primaryFields?: CaseSummaryFieldsProps['primaryFields'];
|
|
15
|
-
secondaryFields?: CaseSummaryFieldsProps['secondaryFields'];
|
|
16
|
-
actions?: CaseHeaderProps['actions'];
|
|
17
|
-
tabs?: any;
|
|
18
|
-
tasksWidget?: ReactElement;
|
|
19
|
-
stages?: boolean;
|
|
20
|
-
showUtilities?: boolean;
|
|
21
|
-
showFollowedIcon?: boolean;
|
|
22
|
-
defaultCollapsedUtilities?: boolean;
|
|
4
|
+
export interface CaseViewStoryArgs {
|
|
5
|
+
persistentUtility?: boolean;
|
|
23
6
|
}
|
|
24
|
-
export declare const CaseViewDemo: Story<
|
|
25
|
-
export declare const CaseViewWithAppShell: Story;
|
|
26
|
-
export declare const CaseViewWithChat: Story;
|
|
7
|
+
export declare const CaseViewDemo: Story<CaseViewStoryArgs>;
|
|
27
8
|
//# sourceMappingURL=CaseView.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseView.stories.d.ts","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.stories.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CaseView.stories.d.ts","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;;AA2B/C,wBAOU;AAEV,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,iBAAiB,CA2HjD,CAAC"}
|
|
@@ -1,20 +1,13 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
2
|
-
import { useState
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
3
|
import { action } from '@storybook/addon-actions';
|
|
4
|
-
import { Icon, registerIcon,
|
|
4
|
+
import { Icon, registerIcon, Grid, useBreakpoint } from '@pega/cosmos-react-core';
|
|
5
5
|
import * as userSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/user-solid.icon';
|
|
6
6
|
import { CaseView, CasePreview, CaseSummaryFields } from '@pega/cosmos-react-work';
|
|
7
7
|
import { TasksDemo } from '../Tasks/Tasks.stories';
|
|
8
8
|
import { AppShellDemo } from '../../core/AppShell/AppShell.stories';
|
|
9
|
-
import { TableDemo } from '../../core/Table/Table.stories';
|
|
10
|
-
import { StandardChat } from '../../social/Chat/Chat.stories';
|
|
11
|
-
import { TagsDemo } from '../Tags/Tags.stories';
|
|
12
9
|
import { StagesDemo } from '../Stages/Stages.stories';
|
|
13
|
-
import {
|
|
14
|
-
import { Details } from './Details.mocks';
|
|
15
|
-
import { PulseMock } from './Pulse.mocks';
|
|
16
|
-
import { AttachmentsMock } from './Attachments.mocks';
|
|
17
|
-
import { getTabs, MockOperatorFieldValue, MockSummaryList } from './CaseView.mocks';
|
|
10
|
+
import { baseCaseTabs, casePreviewPrimaryFields, casePreviewSecondaryFields, getCaseActions, getParentCases, getPrimaryFields, getPromotedActions, getSecondaryFields, getTabContent, getUtilitiesSummaryItems, PersistentUtilityContent, Utilities } from './CaseView.mocks';
|
|
18
11
|
registerIcon(userSolidIcon);
|
|
19
12
|
export default {
|
|
20
13
|
title: 'Work/CaseView',
|
|
@@ -24,250 +17,50 @@ export default {
|
|
|
24
17
|
layout: 'fullscreen'
|
|
25
18
|
}
|
|
26
19
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
| \__/\ (_| \__ \ __/\ \_/ / | __/\ V V /
|
|
33
|
-
\____/\__,_|___/\___| \___/|_|\___| \_/\_/
|
|
34
|
-
*/
|
|
35
|
-
export const CaseViewDemo = ({ banners, persistentUtility, caseId = 'C-456', parentCases, heading = 'Cosmos demo case', icon = _jsx(Icon, { name: 'user-solid' }), tasksWidget = _jsx(TasksDemo, {}), primaryFields, secondaryFields, actions, tabs, stages = true, showUtilities = true, defaultCollapsedUtilities = false, showFollowedIcon = true }) => {
|
|
36
|
-
const previewTabItems = getTabs();
|
|
37
|
-
const [preview, setPreview] = useState(null);
|
|
38
|
-
const [previewCurrentTabId, setPreviewCurrentTabId] = useState(previewTabItems[0].id);
|
|
20
|
+
export const CaseViewDemo = (args) => {
|
|
21
|
+
const caseId = 'C-456';
|
|
22
|
+
const heading = 'Cosmos demo case';
|
|
23
|
+
const [previewCaseId, setPreviewCaseId] = useState(null);
|
|
24
|
+
const [previewCurrentTabId, setPreviewCurrentTabId] = useState(baseCaseTabs[0].id);
|
|
39
25
|
const [followed, setFollowed] = useState(false);
|
|
40
26
|
const isMediumOrAbove = useBreakpoint('md');
|
|
41
|
-
const
|
|
42
|
-
return (_jsx(Link, { href: linkToken.href, previewable: true, onPreview: () => {
|
|
43
|
-
setPreview({ id: linkToken.href, name: 'Previewable Case' });
|
|
44
|
-
setPreviewCurrentTabId(`summary-${linkToken.href}`);
|
|
45
|
-
}, children: linkToken.text }));
|
|
46
|
-
};
|
|
47
|
-
const pulseMarkdownMap = {
|
|
48
|
-
link: (linkToken) => {
|
|
49
|
-
if (linkToken.href?.startsWith('C-'))
|
|
50
|
-
return PreviewLinkComponent;
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
const pulseOnMentionPreview = ({ id, type, text }) => {
|
|
54
|
-
if (type === 'case') {
|
|
55
|
-
setPreview({ id, name: text });
|
|
56
|
-
setPreviewCurrentTabId(`summary-${id}`);
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
const demoTabItems = tabs || getTabs();
|
|
60
|
-
const [demoCurrentTabId, setDemoCurrentTabId] = useState(isMediumOrAbove ? demoTabItems[0].id : `summary-${caseId}`);
|
|
27
|
+
const [demoCurrentTabId, setDemoCurrentTabId] = useState(isMediumOrAbove ? baseCaseTabs[0].id : `summary-${caseId}`);
|
|
61
28
|
const demoTabs = {
|
|
62
|
-
items:
|
|
29
|
+
items: baseCaseTabs,
|
|
63
30
|
currentTabId: demoCurrentTabId,
|
|
64
|
-
onClick:
|
|
31
|
+
onClick: setDemoCurrentTabId
|
|
65
32
|
};
|
|
66
|
-
const demoStages = stages ? _jsx(StagesDemo, { currentStage: 3 }) : undefined;
|
|
67
|
-
const demoTabContent = useMemo(() => {
|
|
68
|
-
return [
|
|
69
|
-
{
|
|
70
|
-
id: 'Details',
|
|
71
|
-
content: _jsx(Details, {})
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
id: 'Pulse',
|
|
75
|
-
content: (_jsx(PulseMock, { markdownMap: pulseMarkdownMap, onMentionPreview: pulseOnMentionPreview }))
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
id: 'Accounts',
|
|
79
|
-
content: _jsx(TableDemo, {})
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
id: 'not found',
|
|
83
|
-
content: _jsx("h2", { children: "Not Found" })
|
|
84
|
-
}
|
|
85
|
-
];
|
|
86
|
-
}, []);
|
|
87
33
|
const previewTabs = {
|
|
88
|
-
items:
|
|
34
|
+
items: baseCaseTabs,
|
|
89
35
|
currentTabId: previewCurrentTabId,
|
|
90
|
-
onClick:
|
|
36
|
+
onClick: setPreviewCurrentTabId
|
|
91
37
|
};
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
value: 'M205435569FD'
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
name: 'Priority',
|
|
120
|
-
value: '95'
|
|
121
|
-
}
|
|
122
|
-
].map((f, i) => ({ ...f, id: `p-${i}` }));
|
|
123
|
-
const createDate = new Date(2016, 1, 8);
|
|
124
|
-
const msInYear = 1000 * 60 * 60 * 24 * 365;
|
|
125
|
-
const diffInYears = Math.floor((Date.now() - createDate.getTime()) / msInYear);
|
|
126
|
-
const demoSecondaryFields = secondaryFields ||
|
|
127
|
-
[
|
|
128
|
-
{
|
|
129
|
-
name: 'Status',
|
|
130
|
-
value: _jsx(Status, { variant: 'info', children: "New" })
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
name: 'Assigned to',
|
|
134
|
-
value: 'Dean Thomas'
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
name: 'Create date',
|
|
138
|
-
value: createDate.toDateString()
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
name: 'Update date',
|
|
142
|
-
value: `${diffInYears} years ago`
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
name: 'Created by',
|
|
146
|
-
value: _jsx(MockOperatorFieldValue, {})
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
name: 'Previewable Case',
|
|
150
|
-
value: (_jsx(Link, { href: '/cases/C-789', previewable: true, onPreview: () => {
|
|
151
|
-
setPreview({ id: 'C-789', name: 'Previewable Case' });
|
|
152
|
-
setPreviewCurrentTabId('summary-C-789');
|
|
153
|
-
}, children: "Previewable Case - C-789" }))
|
|
154
|
-
}
|
|
155
|
-
].map((f, i) => ({ ...f, id: `s-${i}` }));
|
|
156
|
-
const demoParentCases = useMemo(() => {
|
|
157
|
-
if (parentCases) {
|
|
158
|
-
return parentCases.map(parentCase => {
|
|
159
|
-
return {
|
|
160
|
-
...parentCase,
|
|
161
|
-
onPreview: () => {
|
|
162
|
-
setPreview({ id: parentCase.id, name: parentCase.primary });
|
|
163
|
-
setPreviewCurrentTabId(`summary-${parentCase.id}`);
|
|
164
|
-
}
|
|
165
|
-
};
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
const ids = new Set([caseId]);
|
|
169
|
-
return Array.from({ length: 5 }, (_, i) => {
|
|
170
|
-
let id;
|
|
171
|
-
// Ensure parent ids are unique.
|
|
172
|
-
do {
|
|
173
|
-
id = `C-${Math.floor(Math.random() * 200 + 100)}`;
|
|
174
|
-
} while (ids.has(id));
|
|
175
|
-
ids.add(id);
|
|
176
|
-
const name = `Parent ${5 - i}`;
|
|
177
|
-
return {
|
|
178
|
-
id,
|
|
179
|
-
primary: `${name} - ${id}`,
|
|
180
|
-
href: `/cases/${id}`,
|
|
181
|
-
previewable: true,
|
|
182
|
-
onPreview: () => {
|
|
183
|
-
setPreview({ id, name });
|
|
184
|
-
setPreviewCurrentTabId(`summary-${id}`);
|
|
185
|
-
}
|
|
186
|
-
};
|
|
187
|
-
});
|
|
188
|
-
}, [caseId, parentCases]);
|
|
189
|
-
return (_jsxs(_Fragment, { children: [_jsx(CasePreview, { open: !!preview, caseId: preview?.id ?? '', parentCases: [...demoParentCases]
|
|
190
|
-
.splice(0, demoParentCases.findIndex(c => c.id === preview?.id))
|
|
191
|
-
.map(c => {
|
|
192
|
-
return { ...c, id: `preview-${c.id}` };
|
|
193
|
-
}), heading: preview?.name ?? '', caseLink: { href: `/cases/${preview?.id}`, target: '_blank' }, icon: icon, followed: showFollowedIcon ? !followed : undefined, onEdit: action('Case Preview Edit was clicked'), actions: actions ||
|
|
194
|
-
Array.from({ length: 12 }, (_, i) => {
|
|
195
|
-
return {
|
|
196
|
-
text: `Action ${i + 1}`,
|
|
197
|
-
id: `${i + 1}`,
|
|
198
|
-
onClick: action(`Clicked Option Number ${i + 1}`)
|
|
199
|
-
};
|
|
200
|
-
}), summary: _jsx(CaseSummaryFields, { primaryFields: [
|
|
201
|
-
{
|
|
202
|
-
name: 'Member ID',
|
|
203
|
-
value: 'M204859F438G'
|
|
204
|
-
},
|
|
205
|
-
{
|
|
206
|
-
name: 'Priority',
|
|
207
|
-
value: '95'
|
|
208
|
-
}
|
|
209
|
-
].map((f, i) => ({ ...f, id: `p-${i}` })), secondaryFields: [
|
|
210
|
-
{
|
|
211
|
-
name: 'Status',
|
|
212
|
-
value: _jsx(Status, { variant: 'info', children: "New" })
|
|
213
|
-
},
|
|
214
|
-
{
|
|
215
|
-
name: 'Assigned to',
|
|
216
|
-
value: 'Dean Thomas'
|
|
217
|
-
},
|
|
218
|
-
{
|
|
219
|
-
name: 'Create date',
|
|
220
|
-
value: createDate.toDateString()
|
|
221
|
-
},
|
|
222
|
-
{
|
|
223
|
-
name: 'Update date',
|
|
224
|
-
value: `${diffInYears} years ago`
|
|
225
|
-
}
|
|
226
|
-
].map((f, i) => ({ ...f, id: `s-${i}` })) }), stages: demoStages, tasks: tasksWidget, tabs: previewTabs, tabContent: previewTabContent, utilities: showUtilities ? (_jsxs(Grid, { container: { rowGap: 2 }, children: [_jsx(AttachmentsMock, {}), _jsx(StakeHoldersDemo, {}), _jsx(MockSummaryList, { icon: 'user-star', name: 'Followers' }), _jsx(TagsDemo, {})] })) : (_jsx(Grid, { container: { rowGap: 2 }, children: _jsx(AttachmentsMock, {}) })), onBeforeClose: () => {
|
|
227
|
-
// TODO: Maybe should handle syncing state to avoid additional render with duplicate prop value
|
|
228
|
-
if (preview) {
|
|
229
|
-
setPreview(null);
|
|
230
|
-
}
|
|
231
|
-
} }), _jsx(CaseView, { caseId: caseId, parentCases: demoParentCases, heading: heading, icon: icon, followed: showFollowedIcon ? followed : undefined, onFollowedChange: showFollowedIcon ? setFollowed : undefined, actions: actions ||
|
|
232
|
-
Array.from({ length: 12 }, (_, i) => {
|
|
233
|
-
return {
|
|
234
|
-
text: `Action ${i + 1}`,
|
|
235
|
-
id: `${i + 1}`,
|
|
236
|
-
onClick: action(`Clicked Option Number ${i + 1}`)
|
|
237
|
-
};
|
|
238
|
-
}), promotedActions: [
|
|
239
|
-
{ text: 'Action 13', id: '13', onClick: action('Clicked Option Number 13') }
|
|
240
|
-
], onEdit: action('Case View Edit was clicked'), summary: _jsx(CaseSummaryFields, { primaryFields: demoPrimaryFields, secondaryFields: demoSecondaryFields }), tabs: demoTabs, banners: banners, persistentUtility: persistentUtility, stages: demoStages, tasks: tasksWidget, tabContent: demoTabContent, defaultCollapsedUtilities: defaultCollapsedUtilities, utilities: showUtilities ? (_jsxs(_Fragment, { children: [_jsx(AttachmentsMock, {}), _jsx(StakeHoldersDemo, {}), _jsx(MockSummaryList, { icon: 'user-star', name: 'Followers' }), _jsx(TagsDemo, {})] })) : (_jsx(AttachmentsMock, {})), utilitiesSummaryItems: showUtilities
|
|
241
|
-
? [
|
|
242
|
-
{ iconName: 'paper-clip', count: 4 },
|
|
243
|
-
{ iconName: 'user-search-solid', count: 10 },
|
|
244
|
-
{ iconName: 'user-star-solid', count: 5 },
|
|
245
|
-
{ iconName: 'tag', count: 10 }
|
|
246
|
-
]
|
|
247
|
-
: [{ iconName: 'paper-clip', count: 4 }] })] }));
|
|
38
|
+
const tabContent = getTabContent({ setPreviewCaseId, setPreviewCurrentTabId });
|
|
39
|
+
const parentCases = getParentCases({
|
|
40
|
+
caseId,
|
|
41
|
+
setPreviewCaseId,
|
|
42
|
+
setPreviewCurrentTabId
|
|
43
|
+
});
|
|
44
|
+
const demoStages = _jsx(StagesDemo, { currentStage: 3 });
|
|
45
|
+
const [summaryExpanded, setSummaryExpanded] = useState(true);
|
|
46
|
+
const [utilitiesCollapsed, setUtilitiesCollapsed] = useState(true);
|
|
47
|
+
return (_jsx(AppShellDemo, { appHeader: true, main: _jsxs(_Fragment, { children: [previewCaseId && (_jsx(CasePreview, { open: true, onAfterClose: () => {
|
|
48
|
+
setPreviewCaseId(null);
|
|
49
|
+
}, caseId: previewCaseId, parentCases: [...parentCases]
|
|
50
|
+
.filter(c => c.id !== previewCaseId)
|
|
51
|
+
.map(c => ({ ...c, id: `preview-${c.id}` })), heading: 'Previewable demo case', caseLink: { href: `/cases/${previewCaseId}`, target: '_blank' }, icon: _jsx(Icon, { name: 'user-solid' }), followed: !followed, onEdit: action('Case Preview Edit was clicked'), actions: getCaseActions(), summary: _jsx(CaseSummaryFields, { primaryFields: casePreviewPrimaryFields, secondaryFields: casePreviewSecondaryFields }), stages: demoStages, tasks: _jsx(TasksDemo, {}), tabs: previewTabs, tabContent: tabContent, utilities: _jsx(Grid, { container: { rowGap: 2 }, children: _jsx(Utilities, {}) }) })), _jsx(CaseView, { caseId: caseId, parentCases: getParentCases({
|
|
52
|
+
caseId,
|
|
53
|
+
setPreviewCaseId,
|
|
54
|
+
setPreviewCurrentTabId
|
|
55
|
+
}), heading: heading, icon: _jsx(Icon, { name: 'user-solid' }), followed: followed, onFollowedChange: setFollowed, actions: getCaseActions(), promotedActions: getPromotedActions(), onEdit: action('Case View Edit was clicked'), summary: _jsx(CaseSummaryFields, { primaryFields: getPrimaryFields(), secondaryFields: getSecondaryFields({ setPreviewCaseId, setPreviewCurrentTabId }) }), summaryExpanded: summaryExpanded, onToggleSummary: () => {
|
|
56
|
+
setSummaryExpanded(cur => !cur);
|
|
57
|
+
}, tabs: demoTabs, banners: null, persistentUtility: args.persistentUtility
|
|
58
|
+
? { title: 'Persistent utility', content: _jsx(PersistentUtilityContent, {}) }
|
|
59
|
+
: undefined, stages: demoStages, tasks: _jsx(TasksDemo, {}), tabContent: tabContent, utilities: _jsx(Utilities, {}), utilitiesSummaryItems: getUtilitiesSummaryItems(), utilitiesExpanded: utilitiesCollapsed, onToggleUtilities: () => {
|
|
60
|
+
setUtilitiesCollapsed(cur => !cur);
|
|
61
|
+
} })] }) }));
|
|
248
62
|
};
|
|
249
|
-
|
|
250
|
-
_____ _ _ _ ___ _____ _ _ _
|
|
251
|
-
/ __ \ | | | (_) / _ \ / ___| | | | |
|
|
252
|
-
| / \/ __ _ ___ ___ | | | |_ _____ ________/ /_\ \_ __ _ __ \ `--.| |__ ___| | |
|
|
253
|
-
| | / _` / __|/ _ \| | | | |/ _ \ \ /\ / /______| _ | '_ \| '_ \ `--. \ '_ \ / _ \ | |
|
|
254
|
-
| \__/\ (_| \__ \ __/\ \_/ / | __/\ V V / | | | | |_) | |_) /\__/ / | | | __/ | |
|
|
255
|
-
\____/\__,_|___/\___| \___/|_|\___| \_/\_/ \_| |_/ .__/| .__/\____/|_| |_|\___|_|_|
|
|
256
|
-
| | | |
|
|
257
|
-
|_| |_|
|
|
258
|
-
*/
|
|
259
|
-
export const CaseViewWithAppShell = (props) => {
|
|
260
|
-
return _jsx(AppShellDemo, { appHeader: true, main: _jsx(CaseViewDemo, { ...props }) });
|
|
261
|
-
};
|
|
262
|
-
/*
|
|
263
|
-
_____ _ _ _ _____ _ _
|
|
264
|
-
/ __ \ | | | (_) / __ \ | | |
|
|
265
|
-
| / \/ __ _ ___ ___ | | | |_ _____ ________| / \/ |__ __ _| |_
|
|
266
|
-
| | / _` / __|/ _ \| | | | |/ _ \ \ /\ / /______| | | '_ \ / _` | __|
|
|
267
|
-
| \__/\ (_| \__ \ __/\ \_/ / | __/\ V V / | \__/\ | | | (_| | |_
|
|
268
|
-
\____/\__,_|___/\___| \___/|_|\___| \_/\_/ \____/_| |_|\__,_|\__|
|
|
269
|
-
*/
|
|
270
|
-
CaseViewWithAppShell.parameters = {
|
|
63
|
+
CaseViewDemo.parameters = {
|
|
271
64
|
eyes: {
|
|
272
65
|
runBefore: () => {
|
|
273
66
|
document
|
|
@@ -278,7 +71,10 @@ CaseViewWithAppShell.parameters = {
|
|
|
278
71
|
}
|
|
279
72
|
}
|
|
280
73
|
};
|
|
281
|
-
|
|
282
|
-
|
|
74
|
+
CaseViewDemo.args = {
|
|
75
|
+
persistentUtility: false
|
|
76
|
+
};
|
|
77
|
+
CaseViewDemo.argTypes = {
|
|
78
|
+
persistentUtility: { control: { type: 'boolean' } }
|
|
283
79
|
};
|
|
284
80
|
//# sourceMappingURL=CaseView.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseView.stories.js","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, ReactElement, useMemo } from 'react';\nimport { action } from '@storybook/addon-actions';\nimport { Meta, Story } from '@storybook/react';\n\nimport {\n Icon,\n registerIcon,\n Status,\n Link,\n Grid,\n MenuItemProps,\n useBreakpoint\n} from '@pega/cosmos-react-core';\nimport { TokenMap } from '@pega/cosmos-react-rte';\nimport * as userSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/user-solid.icon';\nimport {\n CaseView,\n CaseViewProps,\n CasePreview,\n CaseHeaderProps,\n CaseSummaryFields,\n CaseSummaryFieldsProps\n} from '@pega/cosmos-react-work';\n\nimport { TasksDemo } from '../Tasks/Tasks.stories';\nimport { AppShellDemo } from '../../core/AppShell/AppShell.stories';\nimport { TableDemo } from '../../core/Table/Table.stories';\nimport { StandardChat } from '../../social/Chat/Chat.stories';\nimport { TagsDemo } from '../Tags/Tags.stories';\nimport { StagesDemo } from '../Stages/Stages.stories';\nimport { StakeHoldersDemo } from '../Stakeholders/Stakeholders.stories';\n\nimport { Details } from './Details.mocks';\nimport { PulseMock } from './Pulse.mocks';\nimport { AttachmentsMock } from './Attachments.mocks';\nimport { getTabs, MockOperatorFieldValue, MockSummaryList } from './CaseView.mocks';\n\nregisterIcon(userSolidIcon);\n\nexport default {\n title: 'Work/CaseView',\n component: CaseView,\n includeStories: ['CaseViewDemo', 'CaseViewWithAppShell', 'CaseViewWithChat'],\n parameters: {\n layout: 'fullscreen'\n }\n} as Meta;\n\nexport interface CaseViewStoryProps {\n banners?: CaseViewProps['banners'];\n persistentUtility?: CaseViewProps['persistentUtility'];\n caseId?: string;\n heading?: string;\n icon?: ReactElement;\n parentCases?: MenuItemProps[];\n primaryFields?: CaseSummaryFieldsProps['primaryFields'];\n secondaryFields?: CaseSummaryFieldsProps['secondaryFields'];\n actions?: CaseHeaderProps['actions'];\n tabs?: any;\n tasksWidget?: ReactElement;\n stages?: boolean;\n showUtilities?: boolean;\n showFollowedIcon?: boolean;\n defaultCollapsedUtilities?: boolean;\n}\n\n/*\n _____ _ _ _\n/ __ \\ | | | (_)\n| / \\/ __ _ ___ ___ | | | |_ _____ __\n| | / _` / __|/ _ \\| | | | |/ _ \\ \\ /\\ / /\n| \\__/\\ (_| \\__ \\ __/\\ \\_/ / | __/\\ V V /\n \\____/\\__,_|___/\\___| \\___/|_|\\___| \\_/\\_/\n */\nexport const CaseViewDemo: Story<CaseViewStoryProps> = ({\n banners,\n persistentUtility,\n caseId = 'C-456',\n parentCases,\n heading = 'Cosmos demo case',\n icon = <Icon name='user-solid' />,\n tasksWidget = <TasksDemo />,\n primaryFields,\n secondaryFields,\n actions,\n tabs,\n stages = true,\n showUtilities = true,\n defaultCollapsedUtilities = false,\n showFollowedIcon = true\n}: CaseViewStoryProps) => {\n const previewTabItems = getTabs();\n const [preview, setPreview] = useState<null | { id: string; name: string }>(null);\n const [previewCurrentTabId, setPreviewCurrentTabId] = useState(previewTabItems[0].id);\n const [followed, setFollowed] = useState(false);\n\n const isMediumOrAbove = useBreakpoint('md');\n\n const PreviewLinkComponent = ({ token: linkToken }: { token: TokenMap['link'] }) => {\n return (\n <Link\n href={linkToken.href}\n previewable\n onPreview={() => {\n setPreview({ id: linkToken.href, name: 'Previewable Case' });\n setPreviewCurrentTabId(`summary-${linkToken.href}`);\n }}\n >\n {linkToken.text}\n </Link>\n );\n };\n\n const pulseMarkdownMap = {\n link: (linkToken: TokenMap['link']) => {\n if (linkToken.href?.startsWith('C-')) return PreviewLinkComponent;\n }\n };\n\n const pulseOnMentionPreview = ({\n id,\n type,\n text\n }: {\n id: string;\n type: string;\n text: string;\n }) => {\n if (type === 'case') {\n setPreview({ id, name: text });\n setPreviewCurrentTabId(`summary-${id}`);\n }\n };\n\n const demoTabItems = tabs || getTabs();\n\n const [demoCurrentTabId, setDemoCurrentTabId] = useState(\n isMediumOrAbove ? demoTabItems[0].id : `summary-${caseId}`\n );\n\n const demoTabs = {\n items: demoTabItems,\n currentTabId: demoCurrentTabId,\n onClick: (id: string) => setDemoCurrentTabId(id)\n };\n\n const demoStages = stages ? <StagesDemo currentStage={3} /> : undefined;\n\n const demoTabContent = useMemo(() => {\n return [\n {\n id: 'Details',\n content: <Details />\n },\n {\n id: 'Pulse',\n content: (\n <PulseMock markdownMap={pulseMarkdownMap} onMentionPreview={pulseOnMentionPreview} />\n )\n },\n {\n id: 'Accounts',\n content: <TableDemo />\n },\n {\n id: 'not found',\n content: <h2>Not Found</h2>\n }\n ];\n }, []);\n\n const previewTabs = {\n items: previewTabItems,\n currentTabId: previewCurrentTabId,\n onClick: (id: string) => setPreviewCurrentTabId(id)\n };\n\n const previewTabContent = useMemo(() => {\n return [\n {\n id: 'Details',\n content: <Details />\n },\n {\n id: 'Pulse',\n content: <PulseMock markdownMap={pulseMarkdownMap} />\n },\n {\n id: 'Accounts',\n content: <TableDemo />\n },\n {\n id: 'not found',\n content: <h2>Not Found</h2>\n }\n ];\n }, []);\n\n const demoPrimaryFields =\n primaryFields ||\n [\n {\n name: 'Member ID',\n value: 'M205435569FD'\n },\n {\n name: 'Priority',\n value: '95'\n }\n ].map((f, i) => ({ ...f, id: `p-${i}` }));\n\n const createDate = new Date(2016, 1, 8);\n const msInYear = 1000 * 60 * 60 * 24 * 365;\n const diffInYears = Math.floor((Date.now() - createDate.getTime()) / msInYear);\n\n const demoSecondaryFields =\n secondaryFields ||\n [\n {\n name: 'Status',\n value: <Status variant='info'>New</Status>\n },\n {\n name: 'Assigned to',\n value: 'Dean Thomas'\n },\n {\n name: 'Create date',\n value: createDate.toDateString()\n },\n {\n name: 'Update date',\n value: `${diffInYears} years ago`\n },\n {\n name: 'Created by',\n value: <MockOperatorFieldValue />\n },\n {\n name: 'Previewable Case',\n value: (\n <Link\n href='/cases/C-789'\n previewable\n onPreview={() => {\n setPreview({ id: 'C-789', name: 'Previewable Case' });\n setPreviewCurrentTabId('summary-C-789');\n }}\n >\n Previewable Case - C-789\n </Link>\n )\n }\n ].map((f, i) => ({ ...f, id: `s-${i}` }));\n\n const demoParentCases = useMemo(() => {\n if (parentCases) {\n return parentCases.map(parentCase => {\n return {\n ...parentCase,\n onPreview: () => {\n setPreview({ id: parentCase.id, name: parentCase.primary });\n setPreviewCurrentTabId(`summary-${parentCase.id}`);\n }\n };\n });\n }\n\n const ids = new Set([caseId]);\n\n return Array.from({ length: 5 }, (_, i) => {\n let id: string;\n // Ensure parent ids are unique.\n do {\n id = `C-${Math.floor(Math.random() * 200 + 100)}`;\n } while (ids.has(id));\n ids.add(id);\n\n const name = `Parent ${5 - i}`;\n\n return {\n id,\n primary: `${name} - ${id}`,\n href: `/cases/${id}`,\n previewable: true,\n onPreview: () => {\n setPreview({ id, name });\n setPreviewCurrentTabId(`summary-${id}`);\n }\n };\n });\n }, [caseId, parentCases]);\n\n return (\n <>\n <CasePreview\n open={!!preview}\n caseId={preview?.id ?? ''}\n parentCases={[...demoParentCases]\n .splice(\n 0,\n demoParentCases.findIndex(c => c.id === preview?.id)\n )\n .map(c => {\n return { ...c, id: `preview-${c.id}` };\n })}\n heading={preview?.name ?? ''}\n caseLink={{ href: `/cases/${preview?.id}`, target: '_blank' }}\n icon={icon}\n followed={showFollowedIcon ? !followed : undefined}\n onEdit={action('Case Preview Edit was clicked')}\n actions={\n actions ||\n Array.from({ length: 12 }, (_, i) => {\n return {\n text: `Action ${i + 1}`,\n id: `${i + 1}`,\n onClick: action(`Clicked Option Number ${i + 1}`)\n };\n })\n }\n summary={\n <CaseSummaryFields\n primaryFields={[\n {\n name: 'Member ID',\n value: 'M204859F438G'\n },\n {\n name: 'Priority',\n value: '95'\n }\n ].map((f, i) => ({ ...f, id: `p-${i}` }))}\n secondaryFields={[\n {\n name: 'Status',\n value: <Status variant='info'>New</Status>\n },\n {\n name: 'Assigned to',\n value: 'Dean Thomas'\n },\n {\n name: 'Create date',\n value: createDate.toDateString()\n },\n {\n name: 'Update date',\n value: `${diffInYears} years ago`\n }\n ].map((f, i) => ({ ...f, id: `s-${i}` }))}\n />\n }\n stages={demoStages}\n tasks={tasksWidget}\n tabs={previewTabs}\n tabContent={previewTabContent}\n utilities={\n showUtilities ? (\n <Grid container={{ rowGap: 2 }}>\n <AttachmentsMock />\n <StakeHoldersDemo />\n <MockSummaryList icon='user-star' name='Followers' />\n <TagsDemo />\n </Grid>\n ) : (\n <Grid container={{ rowGap: 2 }}>\n <AttachmentsMock />\n </Grid>\n )\n }\n onBeforeClose={() => {\n // TODO: Maybe should handle syncing state to avoid additional render with duplicate prop value\n if (preview) {\n setPreview(null);\n }\n }}\n />\n <CaseView\n caseId={caseId}\n parentCases={demoParentCases}\n heading={heading}\n icon={icon}\n followed={showFollowedIcon ? followed : undefined}\n onFollowedChange={showFollowedIcon ? setFollowed : undefined}\n actions={\n actions ||\n Array.from({ length: 12 }, (_, i) => {\n return {\n text: `Action ${i + 1}`,\n id: `${i + 1}`,\n onClick: action(`Clicked Option Number ${i + 1}`)\n };\n })\n }\n promotedActions={[\n { text: 'Action 13', id: '13', onClick: action('Clicked Option Number 13') }\n ]}\n onEdit={action('Case View Edit was clicked')}\n summary={\n <CaseSummaryFields\n primaryFields={demoPrimaryFields}\n secondaryFields={demoSecondaryFields}\n />\n }\n tabs={demoTabs}\n banners={banners}\n persistentUtility={persistentUtility}\n stages={demoStages}\n tasks={tasksWidget}\n tabContent={demoTabContent}\n defaultCollapsedUtilities={defaultCollapsedUtilities}\n utilities={\n showUtilities ? (\n <>\n <AttachmentsMock />\n <StakeHoldersDemo />\n <MockSummaryList icon='user-star' name='Followers' />\n <TagsDemo />\n </>\n ) : (\n <AttachmentsMock />\n )\n }\n utilitiesSummaryItems={\n showUtilities\n ? [\n { iconName: 'paper-clip', count: 4 },\n { iconName: 'user-search-solid', count: 10 },\n { iconName: 'user-star-solid', count: 5 },\n { iconName: 'tag', count: 10 }\n ]\n : [{ iconName: 'paper-clip', count: 4 }]\n }\n />\n </>\n );\n};\n\n/*\n _____ _ _ _ ___ _____ _ _ _\n/ __ \\ | | | (_) / _ \\ / ___| | | | |\n| / \\/ __ _ ___ ___ | | | |_ _____ ________/ /_\\ \\_ __ _ __ \\ `--.| |__ ___| | |\n| | / _` / __|/ _ \\| | | | |/ _ \\ \\ /\\ / /______| _ | '_ \\| '_ \\ `--. \\ '_ \\ / _ \\ | |\n| \\__/\\ (_| \\__ \\ __/\\ \\_/ / | __/\\ V V / | | | | |_) | |_) /\\__/ / | | | __/ | |\n \\____/\\__,_|___/\\___| \\___/|_|\\___| \\_/\\_/ \\_| |_/ .__/| .__/\\____/|_| |_|\\___|_|_|\n | | | |\n |_| |_|\n */\nexport const CaseViewWithAppShell: Story = (props: CaseViewStoryProps) => {\n return <AppShellDemo appHeader main={<CaseViewDemo {...props} />} />;\n};\n\n/*\n _____ _ _ _ _____ _ _\n/ __ \\ | | | (_) / __ \\ | | |\n| / \\/ __ _ ___ ___ | | | |_ _____ ________| / \\/ |__ __ _| |_\n| | / _` / __|/ _ \\| | | | |/ _ \\ \\ /\\ / /______| | | '_ \\ / _` | __|\n| \\__/\\ (_| \\__ \\ __/\\ \\_/ / | __/\\ V V / | \\__/\\ | | | (_| | |_\n \\____/\\__,_|___/\\___| \\___/|_|\\___| \\_/\\_/ \\____/_| |_|\\__,_|\\__|\n */\nCaseViewWithAppShell.parameters = {\n eyes: {\n runBefore: () => {\n document\n .querySelector<HTMLButtonElement>(\n // Find the case actions menu.\n '[aria-label=\"Actions\"]'\n )\n ?.click();\n }\n }\n};\n\nexport const CaseViewWithChat: Story = (props: CaseViewStoryProps) => {\n return (\n <AppShellDemo\n appHeader\n main={\n <CaseViewDemo\n persistentUtility={{ content: <StandardChat chatWidth='100%' />, title: 'Chat' }}\n {...props}\n />\n }\n />\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"CaseView.stories.js","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState } from 'react';\nimport { action } from '@storybook/addon-actions';\nimport { Meta, Story } from '@storybook/react';\n\nimport { Icon, registerIcon, Grid, useBreakpoint } from '@pega/cosmos-react-core';\nimport * as userSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/user-solid.icon';\nimport { CaseView, CasePreview, CaseSummaryFields } from '@pega/cosmos-react-work';\n\nimport { TasksDemo } from '../Tasks/Tasks.stories';\nimport { AppShellDemo } from '../../core/AppShell/AppShell.stories';\nimport { StagesDemo } from '../Stages/Stages.stories';\n\nimport {\n baseCaseTabs,\n casePreviewPrimaryFields,\n casePreviewSecondaryFields,\n getCaseActions,\n getParentCases,\n getPrimaryFields,\n getPromotedActions,\n getSecondaryFields,\n getTabContent,\n getUtilitiesSummaryItems,\n PersistentUtilityContent,\n Utilities\n} from './CaseView.mocks';\n\nregisterIcon(userSolidIcon);\n\nexport default {\n title: 'Work/CaseView',\n component: CaseView,\n includeStories: ['CaseViewDemo', 'CaseViewWithAppShell', 'CaseViewWithChat'],\n parameters: {\n layout: 'fullscreen'\n }\n} as Meta;\n\nexport interface CaseViewStoryArgs {\n persistentUtility?: boolean;\n}\n\nexport const CaseViewDemo: Story<CaseViewStoryArgs> = (args: CaseViewStoryArgs) => {\n const caseId = 'C-456';\n const heading = 'Cosmos demo case';\n\n const [previewCaseId, setPreviewCaseId] = useState<null | string>(null);\n const [previewCurrentTabId, setPreviewCurrentTabId] = useState(baseCaseTabs[0].id);\n const [followed, setFollowed] = useState(false);\n\n const isMediumOrAbove = useBreakpoint('md');\n\n const [demoCurrentTabId, setDemoCurrentTabId] = useState(\n isMediumOrAbove ? baseCaseTabs[0].id : `summary-${caseId}`\n );\n\n const demoTabs = {\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 tabContent = getTabContent({ setPreviewCaseId, setPreviewCurrentTabId });\n\n const parentCases = getParentCases({\n caseId,\n setPreviewCaseId,\n setPreviewCurrentTabId\n });\n\n const demoStages = <StagesDemo currentStage={3} />;\n\n const [summaryExpanded, setSummaryExpanded] = useState(true);\n const [utilitiesCollapsed, setUtilitiesCollapsed] = useState(true);\n\n return (\n <AppShellDemo\n appHeader\n main={\n <>\n {previewCaseId && (\n <CasePreview\n open\n onAfterClose={() => {\n setPreviewCaseId(null);\n }}\n caseId={previewCaseId}\n parentCases={[...parentCases]\n .filter(c => c.id !== previewCaseId)\n .map(c => ({ ...c, id: `preview-${c.id}` }))}\n heading='Previewable demo case'\n caseLink={{ href: `/cases/${previewCaseId}`, target: '_blank' }}\n icon={<Icon name='user-solid' />}\n followed={!followed}\n onEdit={action('Case Preview Edit was clicked')}\n actions={getCaseActions()}\n summary={\n <CaseSummaryFields\n primaryFields={casePreviewPrimaryFields}\n secondaryFields={casePreviewSecondaryFields}\n />\n }\n stages={demoStages}\n tasks={<TasksDemo />}\n tabs={previewTabs}\n tabContent={tabContent}\n utilities={\n <Grid container={{ rowGap: 2 }}>\n <Utilities />\n </Grid>\n }\n />\n )}\n\n <CaseView\n caseId={caseId}\n parentCases={getParentCases({\n caseId,\n setPreviewCaseId,\n setPreviewCurrentTabId\n })}\n heading={heading}\n icon={<Icon name='user-solid' />}\n followed={followed}\n onFollowedChange={setFollowed}\n actions={getCaseActions()}\n promotedActions={getPromotedActions()}\n onEdit={action('Case View Edit was clicked')}\n summary={\n <CaseSummaryFields\n primaryFields={getPrimaryFields()}\n secondaryFields={getSecondaryFields({ setPreviewCaseId, setPreviewCurrentTabId })}\n />\n }\n summaryExpanded={summaryExpanded}\n onToggleSummary={() => {\n setSummaryExpanded(cur => !cur);\n }}\n tabs={demoTabs}\n banners={null}\n persistentUtility={\n args.persistentUtility\n ? { title: 'Persistent utility', content: <PersistentUtilityContent /> }\n : undefined\n }\n stages={demoStages}\n tasks={<TasksDemo />}\n tabContent={tabContent}\n utilities={<Utilities />}\n utilitiesSummaryItems={getUtilitiesSummaryItems()}\n utilitiesExpanded={utilitiesCollapsed}\n onToggleUtilities={() => {\n setUtilitiesCollapsed(cur => !cur);\n }}\n />\n </>\n }\n />\n );\n};\n\nCaseViewDemo.parameters = {\n eyes: {\n runBefore: () => {\n document\n .querySelector<HTMLButtonElement>(\n // Find the case actions menu.\n '[aria-label=\"Actions\"]'\n )\n ?.click();\n }\n }\n};\n\nCaseViewDemo.args = {\n persistentUtility: false\n};\n\nCaseViewDemo.argTypes = {\n persistentUtility: { control: { type: 'boolean' } }\n};\n"]}
|
|
@@ -21,4 +21,15 @@ export declare const notificationItems: ({
|
|
|
21
21
|
unread: boolean;
|
|
22
22
|
visual?: undefined;
|
|
23
23
|
})[];
|
|
24
|
+
export declare const defaultAppDemoProps: {
|
|
25
|
+
readonly imageSrc: "https://www.pega.com/themes/custom/pegawww_theme/images/pega-logo.svg";
|
|
26
|
+
readonly appName: "Service Desk";
|
|
27
|
+
readonly numberOfNavLinks: 3;
|
|
28
|
+
readonly navAlignment: "end";
|
|
29
|
+
readonly navPosition: "inline";
|
|
30
|
+
readonly operatorName: "Cindy Turner";
|
|
31
|
+
readonly operatorTitle: "Account";
|
|
32
|
+
readonly notificationsEmpty: false;
|
|
33
|
+
readonly notificationsLoading: false;
|
|
34
|
+
};
|
|
24
35
|
//# sourceMappingURL=AppShell.mocks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.mocks.d.ts","sourceRoot":"","sources":["../../../src/wss/AppShell/AppShell.mocks.tsx"],"names":[],"mappings":";AAIA,eAAO,MAAM,kBAAkB;aAA4B,MAAM;iBAQhE,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;IAyD7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"AppShell.mocks.d.ts","sourceRoot":"","sources":["../../../src/wss/AppShell/AppShell.mocks.tsx"],"names":[],"mappings":";AAIA,eAAO,MAAM,kBAAkB;aAA4B,MAAM;iBAQhE,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;IAyD7B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;CAUtB,CAAC"}
|
|
@@ -56,4 +56,15 @@ export const notificationItems = [
|
|
|
56
56
|
unread: true
|
|
57
57
|
}
|
|
58
58
|
];
|
|
59
|
+
export const defaultAppDemoProps = {
|
|
60
|
+
imageSrc: 'https://www.pega.com/themes/custom/pegawww_theme/images/pega-logo.svg',
|
|
61
|
+
appName: 'Service Desk',
|
|
62
|
+
numberOfNavLinks: 3,
|
|
63
|
+
navAlignment: 'end',
|
|
64
|
+
navPosition: 'inline',
|
|
65
|
+
operatorName: 'Cindy Turner',
|
|
66
|
+
operatorTitle: 'Account',
|
|
67
|
+
notificationsEmpty: false,
|
|
68
|
+
notificationsLoading: false
|
|
69
|
+
};
|
|
59
70
|
//# sourceMappingURL=AppShell.mocks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.mocks.js","sourceRoot":"","sources":["../../../src/wss/AppShell/AppShell.mocks.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,OAAO,EAAuB,EAAE,EAAE,CAAC,CACtE,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,iBAAiB,YACjF,KAAC,IAAI,cACH,KAAC,WAAW,cACV,MAAC,IAAI,IAAC,OAAO,EAAC,IAAI,aAAE,OAAO,gBAAgB,GAC/B,GACT,GACF,CACR,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EACL,4FAA4F;QAC9F,SAAS,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;QACtE,MAAM,EAAE,KAAC,MAAM,IAAC,IAAI,EAAC,aAAa,GAAG;QACrC,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,oFAAoF;QAC7F,MAAM,EAAE,KAAC,MAAM,IAAC,IAAI,EAAC,eAAe,GAAG;QACvC,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EACL,wHAAwH;QAC1H,SAAS,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;QACpE,MAAM,EAAE,KAAC,MAAM,IAAC,IAAI,EAAC,aAAa,GAAG;QACrC,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,+DAA+D;QACxE,SAAS,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;QACxD,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EACL,4FAA4F;QAC9F,SAAS,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;QACtE,MAAM,EAAE,KAAC,MAAM,IAAC,IAAI,EAAC,aAAa,GAAG;QACrC,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,oFAAoF;QAC7F,MAAM,EAAE,KAAC,MAAM,IAAC,IAAI,EAAC,eAAe,GAAG;QACvC,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EACL,wHAAwH;QAC1H,SAAS,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;QACpE,MAAM,EAAE,KAAC,MAAM,IAAC,IAAI,EAAC,aAAa,GAAG;QACrC,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,+DAA+D;QACxE,SAAS,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;QACxD,MAAM,EAAE,IAAI;KACb;CACF,CAAC","sourcesContent":["import { Avatar, Card, CardContent, Flex, Text } from '@pega/cosmos-react-core';\n\nimport { StyledMainContent } from './AppShell.styles';\n\nexport const DefaultMainContent = ({ content }: { content: string }) => (\n <Flex container={{ justify: 'center', alignItems: 'center' }} as={StyledMainContent}>\n <Card>\n <CardContent>\n <Text variant='h2'>{content} content</Text>\n </CardContent>\n </Card>\n </Flex>\n);\n\nexport const notificationItems = [\n {\n id: '123',\n primary:\n \"Dean Thomas mentioned your team in a bug 'Button does not initiate onClick event handler'.\",\n secondary: ['BUG-12345', new Date(2020, 8, 31, 13, 23).toDateString()],\n visual: <Avatar name='Dean Thomas' />,\n unread: true\n },\n {\n id: '456',\n primary: \"Seth DeAngelo mentioned your team in a bug 'Text variant h1 renders as h3 in DOM'.\",\n visual: <Avatar name='Seth DeAngelo' />,\n unread: true\n },\n {\n id: '789',\n primary:\n \"Janet Moore mentioned your team in a bug 'Tree expanded state does not match the state that was set on the component'.\",\n secondary: ['BUG-12345', new Date(2020, 9, 2, 9, 22).toDateString()],\n visual: <Avatar name='Janet Moore' />,\n unread: true\n },\n {\n id: '000',\n primary: 'You have been awarded Employee of the Month! Congratulations!',\n secondary: [new Date(2020, 9, 8, 14, 46).toDateString()],\n unread: true\n },\n {\n id: '111',\n primary:\n \"Dean Thomas mentioned your team in a bug 'Button does not initiate onClick event handler'.\",\n secondary: ['BUG-12345', new Date(2020, 8, 31, 13, 23).toDateString()],\n visual: <Avatar name='Dean Thomas' />,\n unread: true\n },\n {\n id: '222',\n primary: \"Seth DeAngelo mentioned your team in a bug 'Text variant h1 renders as h3 in DOM'.\",\n visual: <Avatar name='Seth DeAngelo' />,\n unread: true\n },\n {\n id: '333',\n primary:\n \"Janet Moore mentioned your team in a bug 'Tree expanded state does not match the state that was set on the component'.\",\n secondary: ['BUG-12345', new Date(2020, 9, 2, 9, 22).toDateString()],\n visual: <Avatar name='Janet Moore' />,\n unread: true\n },\n {\n id: '444',\n primary: 'You have been awarded Employee of the Month! Congratulations!',\n secondary: [new Date(2020, 9, 8, 14, 46).toDateString()],\n unread: true\n }\n];\n"]}
|
|
1
|
+
{"version":3,"file":"AppShell.mocks.js","sourceRoot":"","sources":["../../../src/wss/AppShell/AppShell.mocks.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,OAAO,EAAuB,EAAE,EAAE,CAAC,CACtE,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,iBAAiB,YACjF,KAAC,IAAI,cACH,KAAC,WAAW,cACV,MAAC,IAAI,IAAC,OAAO,EAAC,IAAI,aAAE,OAAO,gBAAgB,GAC/B,GACT,GACF,CACR,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EACL,4FAA4F;QAC9F,SAAS,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;QACtE,MAAM,EAAE,KAAC,MAAM,IAAC,IAAI,EAAC,aAAa,GAAG;QACrC,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,oFAAoF;QAC7F,MAAM,EAAE,KAAC,MAAM,IAAC,IAAI,EAAC,eAAe,GAAG;QACvC,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EACL,wHAAwH;QAC1H,SAAS,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;QACpE,MAAM,EAAE,KAAC,MAAM,IAAC,IAAI,EAAC,aAAa,GAAG;QACrC,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,+DAA+D;QACxE,SAAS,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;QACxD,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EACL,4FAA4F;QAC9F,SAAS,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;QACtE,MAAM,EAAE,KAAC,MAAM,IAAC,IAAI,EAAC,aAAa,GAAG;QACrC,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,oFAAoF;QAC7F,MAAM,EAAE,KAAC,MAAM,IAAC,IAAI,EAAC,eAAe,GAAG;QACvC,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EACL,wHAAwH;QAC1H,SAAS,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;QACpE,MAAM,EAAE,KAAC,MAAM,IAAC,IAAI,EAAC,aAAa,GAAG;QACrC,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,+DAA+D;QACxE,SAAS,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;QACxD,MAAM,EAAE,IAAI;KACb;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ,EAAE,uEAAuE;IACjF,OAAO,EAAE,cAAc;IACvB,gBAAgB,EAAE,CAAC;IACnB,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,SAAS;IACxB,kBAAkB,EAAE,KAAK;IACzB,oBAAoB,EAAE,KAAK;CACnB,CAAC","sourcesContent":["import { Avatar, Card, CardContent, Flex, Text } from '@pega/cosmos-react-core';\n\nimport { StyledMainContent } from './AppShell.styles';\n\nexport const DefaultMainContent = ({ content }: { content: string }) => (\n <Flex container={{ justify: 'center', alignItems: 'center' }} as={StyledMainContent}>\n <Card>\n <CardContent>\n <Text variant='h2'>{content} content</Text>\n </CardContent>\n </Card>\n </Flex>\n);\n\nexport const notificationItems = [\n {\n id: '123',\n primary:\n \"Dean Thomas mentioned your team in a bug 'Button does not initiate onClick event handler'.\",\n secondary: ['BUG-12345', new Date(2020, 8, 31, 13, 23).toDateString()],\n visual: <Avatar name='Dean Thomas' />,\n unread: true\n },\n {\n id: '456',\n primary: \"Seth DeAngelo mentioned your team in a bug 'Text variant h1 renders as h3 in DOM'.\",\n visual: <Avatar name='Seth DeAngelo' />,\n unread: true\n },\n {\n id: '789',\n primary:\n \"Janet Moore mentioned your team in a bug 'Tree expanded state does not match the state that was set on the component'.\",\n secondary: ['BUG-12345', new Date(2020, 9, 2, 9, 22).toDateString()],\n visual: <Avatar name='Janet Moore' />,\n unread: true\n },\n {\n id: '000',\n primary: 'You have been awarded Employee of the Month! Congratulations!',\n secondary: [new Date(2020, 9, 8, 14, 46).toDateString()],\n unread: true\n },\n {\n id: '111',\n primary:\n \"Dean Thomas mentioned your team in a bug 'Button does not initiate onClick event handler'.\",\n secondary: ['BUG-12345', new Date(2020, 8, 31, 13, 23).toDateString()],\n visual: <Avatar name='Dean Thomas' />,\n unread: true\n },\n {\n id: '222',\n primary: \"Seth DeAngelo mentioned your team in a bug 'Text variant h1 renders as h3 in DOM'.\",\n visual: <Avatar name='Seth DeAngelo' />,\n unread: true\n },\n {\n id: '333',\n primary:\n \"Janet Moore mentioned your team in a bug 'Tree expanded state does not match the state that was set on the component'.\",\n secondary: ['BUG-12345', new Date(2020, 9, 2, 9, 22).toDateString()],\n visual: <Avatar name='Janet Moore' />,\n unread: true\n },\n {\n id: '444',\n primary: 'You have been awarded Employee of the Month! Congratulations!',\n secondary: [new Date(2020, 9, 8, 14, 46).toDateString()],\n unread: true\n }\n];\n\nexport const defaultAppDemoProps = {\n imageSrc: 'https://www.pega.com/themes/custom/pegawww_theme/images/pega-logo.svg',\n appName: 'Service Desk',\n numberOfNavLinks: 3,\n navAlignment: 'end',\n navPosition: 'inline',\n operatorName: 'Cindy Turner',\n operatorTitle: 'Account',\n notificationsEmpty: false,\n notificationsLoading: false\n} as const;\n"]}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { Meta, Story } from '@storybook/react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
2
3
|
import { AppShellProps } from '@pega/cosmos-react-wss';
|
|
3
4
|
declare const _default: Meta<import("@storybook/react").Args>;
|
|
4
5
|
export default _default;
|
|
5
6
|
interface AppShellDemoProps {
|
|
6
|
-
appName
|
|
7
|
-
imageSrc
|
|
8
|
-
numberOfNavLinks
|
|
9
|
-
navAlignment
|
|
10
|
-
navPosition
|
|
11
|
-
operatorName
|
|
12
|
-
operatorTitle
|
|
13
|
-
notificationsEmpty
|
|
14
|
-
notificationsLoading
|
|
7
|
+
appName?: AppShellProps['appInfo']['appName'];
|
|
8
|
+
imageSrc?: AppShellProps['appInfo']['imageSrc'];
|
|
9
|
+
numberOfNavLinks?: number;
|
|
10
|
+
navAlignment?: AppShellProps['navAlignment'];
|
|
11
|
+
navPosition?: AppShellProps['navPosition'];
|
|
12
|
+
operatorName?: AppShellProps['operator']['avatar']['name'];
|
|
13
|
+
operatorTitle?: AppShellProps['operator']['title'];
|
|
14
|
+
notificationsEmpty?: boolean;
|
|
15
|
+
notificationsLoading?: boolean;
|
|
16
|
+
mainContent?: ReactNode;
|
|
15
17
|
}
|
|
16
18
|
export declare const AppShellDemo: Story<AppShellDemoProps>;
|
|
17
19
|
//# sourceMappingURL=AppShell.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.stories.d.ts","sourceRoot":"","sources":["../../../src/wss/AppShell/AppShell.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"AppShell.stories.d.ts","sourceRoot":"","sources":["../../../src/wss/AppShell/AppShell.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAY,aAAa,EAAoB,MAAM,wBAAwB,CAAC;;AAInF,wBAMU;AAEV,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;IAC3D,aAAa,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;IACnD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,iBAAiB,CA6DjD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { AppShell } from '@pega/cosmos-react-wss';
|
|
4
|
-
import { DefaultMainContent, notificationItems } from './AppShell.mocks';
|
|
4
|
+
import { DefaultMainContent, notificationItems, defaultAppDemoProps } from './AppShell.mocks';
|
|
5
5
|
export default {
|
|
6
6
|
title: 'Web Self Service/AppShell',
|
|
7
7
|
component: AppShell,
|
|
@@ -20,11 +20,13 @@ export const AppShellDemo = (args) => {
|
|
|
20
20
|
...item
|
|
21
21
|
})));
|
|
22
22
|
};
|
|
23
|
-
return (_jsx(AppShell, { main: _jsx(DefaultMainContent, { content: mainContent }), appInfo: {
|
|
24
|
-
appName: args.appName,
|
|
25
|
-
imageSrc: args.imageSrc,
|
|
23
|
+
return (_jsx(AppShell, { main: args.mainContent ?? _jsx(DefaultMainContent, { content: mainContent }), appInfo: {
|
|
24
|
+
appName: args.appName ?? defaultAppDemoProps.appName,
|
|
25
|
+
imageSrc: args.imageSrc ?? defaultAppDemoProps.imageSrc,
|
|
26
26
|
onClick: () => setMainContent('Home')
|
|
27
|
-
}, navLinks: Array.from({
|
|
27
|
+
}, navLinks: Array.from({
|
|
28
|
+
length: args.numberOfNavLinks ?? defaultAppDemoProps.numberOfNavLinks
|
|
29
|
+
}).map((_, index) => {
|
|
28
30
|
const navName = `Navigation ${index + 1}`;
|
|
29
31
|
return {
|
|
30
32
|
id: `nav-${index + 1}`,
|
|
@@ -34,8 +36,8 @@ export const AppShellDemo = (args) => {
|
|
|
34
36
|
current: navName === mainContent
|
|
35
37
|
};
|
|
36
38
|
}), operator: {
|
|
37
|
-
avatar: { name: args.operatorName },
|
|
38
|
-
title: args.operatorTitle,
|
|
39
|
+
avatar: { name: args.operatorName ?? defaultAppDemoProps.operatorName },
|
|
40
|
+
title: args.operatorTitle ?? defaultAppDemoProps.operatorTitle,
|
|
39
41
|
actions: [
|
|
40
42
|
{ id: 'profile', primary: 'My profile', href: '#' },
|
|
41
43
|
{ id: 'settings', primary: 'Settings', href: '#' },
|
|
@@ -46,23 +48,14 @@ export const AppShellDemo = (args) => {
|
|
|
46
48
|
count: numNewNotifications,
|
|
47
49
|
items: args.notificationsEmpty ? [] : notifications,
|
|
48
50
|
onItemClick: handleNotificationClick,
|
|
49
|
-
loading: args.notificationsLoading,
|
|
51
|
+
loading: args.notificationsLoading ?? defaultAppDemoProps.notificationsLoading,
|
|
50
52
|
onNotificationsOpen: () => {
|
|
51
53
|
setNumNewNotifications(0);
|
|
52
54
|
}
|
|
53
55
|
}, navAlignment: args.navAlignment, navPosition: args.navPosition }));
|
|
54
56
|
};
|
|
55
|
-
AppShellDemo.args =
|
|
56
|
-
|
|
57
|
-
imageSrc: 'https://www.pega.com/themes/custom/pegawww_theme/images/pega-logo.svg',
|
|
58
|
-
numberOfNavLinks: 3,
|
|
59
|
-
navAlignment: 'end',
|
|
60
|
-
navPosition: 'inline',
|
|
61
|
-
operatorName: 'Cindy Turner',
|
|
62
|
-
operatorTitle: 'Account',
|
|
63
|
-
notificationsEmpty: false,
|
|
64
|
-
notificationsLoading: false
|
|
65
|
-
};
|
|
57
|
+
AppShellDemo.args = defaultAppDemoProps;
|
|
58
|
+
// eslint-disable-next-line demo-patterns/args-match-types
|
|
66
59
|
AppShellDemo.argTypes = {
|
|
67
60
|
imageSrc: { control: { type: 'text' } },
|
|
68
61
|
appName: { control: { type: 'text' } },
|