@pega/cosmos-react-demos 3.0.0-dev.26.0 → 3.0.0-dev.27.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/ExpressionBuilder/ExpressionBuilder.mocks.d.ts +9 -13
- package/jsx/build/ExpressionBuilder/ExpressionBuilder.mocks.d.ts.map +1 -1
- package/jsx/build/ExpressionBuilder/ExpressionBuilder.mocks.js +46 -13
- package/jsx/build/ExpressionBuilder/ExpressionBuilder.mocks.js.map +1 -1
- package/jsx/build/ExpressionBuilder/ExpressionBuilder.stories.d.ts +1 -0
- package/jsx/build/ExpressionBuilder/ExpressionBuilder.stories.d.ts.map +1 -1
- package/jsx/build/ExpressionBuilder/ExpressionBuilder.stories.jsx +67 -11
- package/jsx/build/ExpressionBuilder/ExpressionBuilder.stories.jsx.map +1 -1
- package/jsx/core/FieldGroup/FieldGroup.stories.d.ts +2 -0
- package/jsx/core/FieldGroup/FieldGroup.stories.d.ts.map +1 -1
- package/jsx/core/FieldGroup/FieldGroup.stories.jsx +12 -4
- package/jsx/core/FieldGroup/FieldGroup.stories.jsx.map +1 -1
- package/jsx/core/ListToolbar/ListToolbar.stories.d.ts +2 -1
- package/jsx/core/ListToolbar/ListToolbar.stories.d.ts.map +1 -1
- package/jsx/core/ListToolbar/ListToolbar.stories.jsx +9 -5
- package/jsx/core/ListToolbar/ListToolbar.stories.jsx.map +1 -1
- package/jsx/core/Tree/Tree.stories.d.ts.map +1 -1
- package/jsx/core/Tree/Tree.stories.jsx +14 -0
- package/jsx/core/Tree/Tree.stories.jsx.map +1 -1
- package/jsx/cs/CallControlPanel/CallControlPanel.mocks.d.ts +4 -0
- package/jsx/cs/CallControlPanel/CallControlPanel.mocks.d.ts.map +1 -1
- package/jsx/cs/CallControlPanel/CallControlPanel.mocks.js +14 -0
- package/jsx/cs/CallControlPanel/CallControlPanel.mocks.js.map +1 -1
- package/jsx/cs/CallControlPanel/CallControlPanel.stories.d.ts.map +1 -1
- package/jsx/cs/CallControlPanel/CallControlPanel.stories.jsx +64 -6
- package/jsx/cs/CallControlPanel/CallControlPanel.stories.jsx.map +1 -1
- package/jsx/social/Email/Email.mocks.d.ts +0 -1
- package/jsx/social/Email/Email.mocks.d.ts.map +1 -1
- package/jsx/social/Email/Email.mocks.jsx +0 -13
- package/jsx/social/Email/Email.mocks.jsx.map +1 -1
- package/jsx/social/Email/Email.stories.d.ts +19 -2
- package/jsx/social/Email/Email.stories.d.ts.map +1 -1
- package/jsx/social/Email/Email.stories.jsx +159 -65
- package/jsx/social/Email/Email.stories.jsx.map +1 -1
- package/jsx/work/SearchResults/SearchResults.mocks.d.ts +6 -0
- package/jsx/work/SearchResults/SearchResults.mocks.d.ts.map +1 -1
- package/jsx/work/SearchResults/SearchResults.mocks.jsx +39 -38
- package/jsx/work/SearchResults/SearchResults.mocks.jsx.map +1 -1
- package/jsx/work/SearchResults/SearchResults.stories.d.ts.map +1 -1
- package/jsx/work/SearchResults/SearchResults.stories.jsx +71 -43
- package/jsx/work/SearchResults/SearchResults.stories.jsx.map +1 -1
- package/lib/build/ExpressionBuilder/ExpressionBuilder.mocks.d.ts +9 -13
- package/lib/build/ExpressionBuilder/ExpressionBuilder.mocks.d.ts.map +1 -1
- package/lib/build/ExpressionBuilder/ExpressionBuilder.mocks.js +46 -13
- package/lib/build/ExpressionBuilder/ExpressionBuilder.mocks.js.map +1 -1
- package/lib/build/ExpressionBuilder/ExpressionBuilder.stories.d.ts +1 -0
- package/lib/build/ExpressionBuilder/ExpressionBuilder.stories.d.ts.map +1 -1
- package/lib/build/ExpressionBuilder/ExpressionBuilder.stories.js +65 -12
- package/lib/build/ExpressionBuilder/ExpressionBuilder.stories.js.map +1 -1
- package/lib/core/FieldGroup/FieldGroup.stories.d.ts +2 -0
- package/lib/core/FieldGroup/FieldGroup.stories.d.ts.map +1 -1
- package/lib/core/FieldGroup/FieldGroup.stories.js +11 -3
- package/lib/core/FieldGroup/FieldGroup.stories.js.map +1 -1
- package/lib/core/ListToolbar/ListToolbar.stories.d.ts +2 -1
- package/lib/core/ListToolbar/ListToolbar.stories.d.ts.map +1 -1
- package/lib/core/ListToolbar/ListToolbar.stories.js +9 -5
- package/lib/core/ListToolbar/ListToolbar.stories.js.map +1 -1
- package/lib/core/Tree/Tree.stories.d.ts.map +1 -1
- package/lib/core/Tree/Tree.stories.js +16 -0
- package/lib/core/Tree/Tree.stories.js.map +1 -1
- package/lib/cs/CallControlPanel/CallControlPanel.mocks.d.ts +4 -0
- package/lib/cs/CallControlPanel/CallControlPanel.mocks.d.ts.map +1 -1
- package/lib/cs/CallControlPanel/CallControlPanel.mocks.js +14 -0
- package/lib/cs/CallControlPanel/CallControlPanel.mocks.js.map +1 -1
- package/lib/cs/CallControlPanel/CallControlPanel.stories.d.ts.map +1 -1
- package/lib/cs/CallControlPanel/CallControlPanel.stories.js +64 -6
- package/lib/cs/CallControlPanel/CallControlPanel.stories.js.map +1 -1
- package/lib/social/Email/Email.mocks.d.ts +0 -1
- package/lib/social/Email/Email.mocks.d.ts.map +1 -1
- package/lib/social/Email/Email.mocks.js +0 -13
- package/lib/social/Email/Email.mocks.js.map +1 -1
- package/lib/social/Email/Email.stories.d.ts +19 -2
- package/lib/social/Email/Email.stories.d.ts.map +1 -1
- package/lib/social/Email/Email.stories.js +127 -52
- package/lib/social/Email/Email.stories.js.map +1 -1
- package/lib/work/SearchResults/SearchResults.mocks.d.ts +6 -0
- package/lib/work/SearchResults/SearchResults.mocks.d.ts.map +1 -1
- package/lib/work/SearchResults/SearchResults.mocks.js +39 -38
- package/lib/work/SearchResults/SearchResults.mocks.js.map +1 -1
- package/lib/work/SearchResults/SearchResults.stories.d.ts.map +1 -1
- package/lib/work/SearchResults/SearchResults.stories.js +71 -43
- package/lib/work/SearchResults/SearchResults.stories.js.map +1 -1
- package/package.json +9 -9
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MouseEvent } from 'react';
|
|
2
2
|
import { Meta, Story } from '@storybook/react';
|
|
3
|
-
import { EmailSummaryListProps } from '@pega/cosmos-react-social';
|
|
3
|
+
import { EmailSummaryListProps, EmailCaseViewProps } from '@pega/cosmos-react-social';
|
|
4
4
|
declare const _default: Meta<import("@storybook/react").Args>;
|
|
5
5
|
export default _default;
|
|
6
6
|
interface EmailDemoProps {
|
|
@@ -8,14 +8,20 @@ interface EmailDemoProps {
|
|
|
8
8
|
enableContextMenu?: boolean;
|
|
9
9
|
forwardedContent?: string;
|
|
10
10
|
showEmailBanner?: boolean;
|
|
11
|
+
showDraft?: boolean;
|
|
11
12
|
}
|
|
12
13
|
export declare const Email: Story<EmailDemoProps>;
|
|
13
|
-
|
|
14
|
+
interface ComposerDemoProps {
|
|
15
|
+
enableResponseTypeToggle?: boolean;
|
|
16
|
+
enableSaveAsDraft?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare const Composer: Story<ComposerDemoProps>;
|
|
14
19
|
export declare const Conversation: Story;
|
|
15
20
|
interface EmailShellDemoProps {
|
|
16
21
|
autoCollapse?: boolean;
|
|
17
22
|
hideSuggestions?: boolean;
|
|
18
23
|
singleConversation?: boolean;
|
|
24
|
+
showHeader?: boolean;
|
|
19
25
|
}
|
|
20
26
|
export declare const EmailShellDemo: Story<EmailShellDemoProps>;
|
|
21
27
|
interface EntityListDemoProps {
|
|
@@ -35,9 +41,20 @@ interface EmailSummaryListStoryProps {
|
|
|
35
41
|
loading?: EmailSummaryListProps['loading'];
|
|
36
42
|
}
|
|
37
43
|
export declare const EmailSummaryListDemo: Story<EmailSummaryListStoryProps>;
|
|
44
|
+
interface EmailCaseViewStoryProps extends EmailCaseViewProps {
|
|
45
|
+
showBanners?: boolean;
|
|
46
|
+
noUtilityView?: boolean;
|
|
47
|
+
showHeader?: boolean;
|
|
48
|
+
}
|
|
49
|
+
export declare const EmailCaseViewDemo: Story<EmailCaseViewStoryProps>;
|
|
38
50
|
interface EmailManagerAppShellProps {
|
|
39
51
|
enableContextMenu?: boolean;
|
|
40
52
|
onContextMenu?: (e: MouseEvent) => void;
|
|
53
|
+
showEmptyView?: boolean;
|
|
54
|
+
showHeader?: boolean;
|
|
55
|
+
showCaseViewBanners?: boolean;
|
|
56
|
+
noItemViewInEmailCaseView?: boolean;
|
|
57
|
+
showUtilities: boolean;
|
|
41
58
|
}
|
|
42
59
|
export declare const EmailManagerAppShell: Story<EmailManagerAppShellProps>;
|
|
43
60
|
//# sourceMappingURL=Email.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Email.stories.d.ts","sourceRoot":"","sources":["../../../src/social/Email/Email.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAOL,UAAU,EAEX,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Email.stories.d.ts","sourceRoot":"","sources":["../../../src/social/Email/Email.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAOL,UAAU,EAEX,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA2B/C,OAAO,EAaL,qBAAqB,EAGrB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;;AA8CnC,wBAGU;AASV,UAAU,cAAc;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,cAAc,CAuGvC,CAAC;AA2BF,UAAU,iBAAiB;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,iBAAiB,CAoL7C,CAAC;AAuBF,eAAO,MAAM,YAAY,EAAE,KAyC1B,CAAC;AASF,UAAU,mBAAmB;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAwlBrD,CAAC;AAuBF,UAAU,mBAAmB;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAoDrD,CAAC;AAiBF,UAAU,yBAAyB;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,yBAAyB,CA8BjE,CAAC;AAmBF,UAAU,0BAA0B;IAClC,WAAW,CAAC,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACnD,KAAK,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,0BAA0B,CAkElE,CAAC;AAIF,UAAU,uBAAwB,SAAQ,kBAAkB;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,uBAAuB,CA2E5D,CAAC;AAyBF,UAAU,yBAAyB;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,yBAAyB,CAoIjE,CAAC"}
|
|
@@ -2,12 +2,11 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
// cSpell:words calibri Trichy Nagercoil
|
|
3
3
|
import { useState, useRef, useCallback, useEffect, createRef } from 'react';
|
|
4
4
|
import { action } from '@storybook/addon-actions';
|
|
5
|
-
import {
|
|
6
|
-
import { Card, CardContent, createUID, MenuButton, Icon, registerIcon, Flex, Button, menuHelpers, CardHeader, Text, SummaryList, Grid, FieldValueList, StyledLabel, EmptyState, Modal, useModalManager, useModalContext, useToaster } from '@pega/cosmos-react-core';
|
|
5
|
+
import { Card, CardContent, createUID, MenuButton, Icon, registerIcon, Flex, Button, menuHelpers, CardHeader, Text, SummaryList, Grid, FieldValueList, StyledLabel, Modal, useModalManager, useModalContext, useToaster, Banner } from '@pega/cosmos-react-core';
|
|
7
6
|
import * as filterIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/filter.icon';
|
|
8
|
-
import { Email as EmailComponent, EmailConversation, EmailComposer, EmailShell, EmailSummaryItem, EmailSummaryList, EntityList, EmailManager } from '@pega/cosmos-react-social';
|
|
7
|
+
import { Email as EmailComponent, EmailConversation, EmailComposer, EmailShell, EmailSummaryItem, EmailSummaryList, EntityList, EmailManager, EmailCaseView } from '@pega/cosmos-react-social';
|
|
9
8
|
import { AppShellDemo } from '../../core/AppShell/AppShell.stories';
|
|
10
|
-
import { bccParticipants, ccParticipants, emailBodyContent, participants, toParticipants, emailAttachments, EntityListMockData, viewAnalysisEmailHeaderMock, topicListMock,
|
|
9
|
+
import { bccParticipants, ccParticipants, emailBodyContent, participants, toParticipants, emailAttachments, EntityListMockData, viewAnalysisEmailHeaderMock, topicListMock, generateEmailConversationParticipants, templates, handleExternalEntry, emailDemoActions, LaunchAction, baseComposerProps, sentiment, emailSummaryItems, mockEmails, mockSuggestedReplies, mockEmailBodyTemplates, forwardedContent, getCompositeId, emptyFieldErrorMessage, fieldValidation, emailWorklistItemsMock, contextMenuItemsMock, highlightedEntitiesMock, mockUploadImage, mailDeliverySystemEmail, supportTeamEmail } from './Email.mocks';
|
|
11
10
|
import { StyledEmailCardContent } from './Email.styles';
|
|
12
11
|
registerIcon(filterIcon);
|
|
13
12
|
export default {
|
|
@@ -53,9 +52,9 @@ export const Email = (args) => {
|
|
|
53
52
|
'550 5.1.1 The email account that you tried to reach does not exist. Please try double-checking the recipients email address for typos or unnecessary spaces. Learn more at https://support.google.com/mail/?p=NoSuchUser k24-20020aa790d8000000b0050dd7e3b84csor451330pfk.28'
|
|
54
53
|
]
|
|
55
54
|
}
|
|
56
|
-
: undefined, onReply: action('On reply'), onReplyAll: action('On reply all'), onForward: action('On forward'), onSuggestionClick: action('On Suggested reply clicked'), sentiment: {
|
|
55
|
+
: undefined, onReply: args.showDraft ? undefined : action('On reply'), onReplyAll: args.showDraft ? undefined : action('On reply all'), onForward: args.showDraft ? undefined : action('On forward'), onEditDraft: args.showDraft ? action('On forward') : undefined, onDeleteDraft: args.showDraft ? action('On forward') : undefined, onSuggestionClick: action('On Suggested reply clicked'), sentiment: {
|
|
57
56
|
variant: 'neutral'
|
|
58
|
-
},
|
|
57
|
+
}, status: args.showDraft ? 'draft' : undefined, suggestions: mockSuggestedReplies, contextMenu: {
|
|
59
58
|
onItemClick: (selectedValue) => {
|
|
60
59
|
action('onItemClick')(selectedValue);
|
|
61
60
|
contextMenuHandle.current?.setOpen(false);
|
|
@@ -86,21 +85,18 @@ Email.args = {
|
|
|
86
85
|
enableContextMenu: false,
|
|
87
86
|
// eslint-disable-next-line demo-patterns/literal-args
|
|
88
87
|
forwardedContent,
|
|
89
|
-
showEmailBanner: false
|
|
88
|
+
showEmailBanner: false,
|
|
89
|
+
showDraft: false
|
|
90
90
|
};
|
|
91
91
|
Email.argTypes = {
|
|
92
92
|
enableEntityHighlighting: { control: { type: 'boolean' } },
|
|
93
93
|
enableContextMenu: { control: { type: 'boolean' } },
|
|
94
94
|
forwardedContent: { control: { type: 'text' } },
|
|
95
|
-
showEmailBanner: { control: { type: 'boolean' } }
|
|
95
|
+
showEmailBanner: { control: { type: 'boolean' } },
|
|
96
|
+
showDraft: { control: { type: 'boolean' } }
|
|
96
97
|
};
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
// | ,----'| | | | | \ / | | |_) | | | | | | (----`| |__ | |_) |
|
|
100
|
-
// | | | | | | | |\/| | | ___/ | | | | \ \ | __| | /
|
|
101
|
-
// | `----.| `--' | | | | | | | | `--' | .----) | | |____ | |\ \----.
|
|
102
|
-
// \______| \______/ |__| |__| | _| \______/ |_______/ |_______|| _| `._____|
|
|
103
|
-
export const Composer = () => {
|
|
98
|
+
export const Composer = (args) => {
|
|
99
|
+
const { enableResponseTypeToggle = true, enableSaveAsDraft = true } = args;
|
|
104
100
|
const [composerProgress, setComposerProgress] = useState(false);
|
|
105
101
|
const composerHandle = useRef(null);
|
|
106
102
|
const [data, setData] = useState({
|
|
@@ -252,7 +248,22 @@ export const Composer = () => {
|
|
|
252
248
|
setComposerProgress(false);
|
|
253
249
|
});
|
|
254
250
|
};
|
|
255
|
-
return (_jsx(EmailComposer, { handle: composerHandle, progress: composerProgress, onSave: action('On save'), onSend: handleOnSend, onCancel: action('On cancel'), externalValidator: handleExternalEntry, participants: participants, onChange: handleOnChange, data:
|
|
251
|
+
return (_jsx(EmailComposer, { handle: composerHandle, progress: composerProgress, onSave: enableSaveAsDraft ? action('On save') : undefined, onSend: handleOnSend, onCancel: action('On cancel'), externalValidator: handleExternalEntry, participants: participants, onChange: handleOnChange, data: {
|
|
252
|
+
...data,
|
|
253
|
+
responseType: enableResponseTypeToggle ? data.responseType : undefined
|
|
254
|
+
}, templates: templates, onImageAdded: onImageAdded }));
|
|
255
|
+
};
|
|
256
|
+
Composer.args = {
|
|
257
|
+
enableResponseTypeToggle: true,
|
|
258
|
+
enableSaveAsDraft: true
|
|
259
|
+
};
|
|
260
|
+
Composer.argTypes = {
|
|
261
|
+
enableResponseTypeToggle: {
|
|
262
|
+
control: 'boolean'
|
|
263
|
+
},
|
|
264
|
+
enableSaveAsDraft: {
|
|
265
|
+
control: { type: 'boolean' }
|
|
266
|
+
}
|
|
256
267
|
};
|
|
257
268
|
// ______ ______ .__ __. ____ ____ _______ .______ _______. ___ .___________. __ ______ .__ __.
|
|
258
269
|
// / | / __ \ | \ | | \ \ / / | ____|| _ \ / | / \ | || | / __ \ | \ | |
|
|
@@ -274,7 +285,6 @@ export const Conversation = () => {
|
|
|
274
285
|
onReply: action('On reply'),
|
|
275
286
|
onForward: action('On forward'),
|
|
276
287
|
onSuggestionClick: action('On Suggested reply clicked'),
|
|
277
|
-
actions: emailActions,
|
|
278
288
|
suggestions: mockSuggestedReplies
|
|
279
289
|
},
|
|
280
290
|
{
|
|
@@ -287,8 +297,7 @@ export const Conversation = () => {
|
|
|
287
297
|
body: '<div> Hi, <br /> <br /> <div>I’m still at the airport, I need help now!! </div> <br /><br /> Regards, <br /> Sara Davis </div>',
|
|
288
298
|
onReply: action('On reply'),
|
|
289
299
|
onForward: action('On forward'),
|
|
290
|
-
onSuggestionClick: action('On Suggested reply clicked')
|
|
291
|
-
actions: emailActions
|
|
300
|
+
onSuggestionClick: action('On Suggested reply clicked')
|
|
292
301
|
}
|
|
293
302
|
];
|
|
294
303
|
return (_jsx(EmailConversation, { participants: generateEmailConversationParticipants(emailArr), from: generateEmailConversationParticipants(emailArr, ['from'])[0], to: generateEmailConversationParticipants(emailArr, ['to']), id: createUID(), timeStamp: emailArr[0].timeStamp, unReadEmailCount: emailArr.filter(item => item.unRead).length, emails: emailArr }));
|
|
@@ -631,6 +640,7 @@ export const EmailShellDemo = (args) => {
|
|
|
631
640
|
[
|
|
632
641
|
{
|
|
633
642
|
...emailsData[1],
|
|
643
|
+
id: 'item0',
|
|
634
644
|
from: mailDeliverySystemEmail,
|
|
635
645
|
to: [supportTeamEmail],
|
|
636
646
|
body: '<div>Hi, <br /> <br /><div>Your address change request is approved.</div> <br /> <br />Regards, <br />Support team </div>',
|
|
@@ -642,8 +652,7 @@ export const EmailShellDemo = (args) => {
|
|
|
642
652
|
]
|
|
643
653
|
},
|
|
644
654
|
onReply: undefined,
|
|
645
|
-
onForward: undefined
|
|
646
|
-
actions: undefined
|
|
655
|
+
onForward: undefined
|
|
647
656
|
},
|
|
648
657
|
{ ...emailsData[1], unRead: false }
|
|
649
658
|
],
|
|
@@ -652,11 +661,20 @@ export const EmailShellDemo = (args) => {
|
|
|
652
661
|
...emailsData[0],
|
|
653
662
|
id: 'item2',
|
|
654
663
|
status: 'draft',
|
|
664
|
+
onEditDraft: (id) => createOrActivateComposer(id, LaunchAction.REPLY, {
|
|
665
|
+
...baseComposerProps,
|
|
666
|
+
data: {
|
|
667
|
+
...baseComposerProps.data,
|
|
668
|
+
responseType: 'reply',
|
|
669
|
+
subject: { value: `Re-${emailsData[0].subject}` || '' },
|
|
670
|
+
bodyContent: { defaultValue: emailsData[0].body || '' }
|
|
671
|
+
}
|
|
672
|
+
}),
|
|
673
|
+
onDeleteDraft: (id) => deleteEmail(id),
|
|
655
674
|
onReply: undefined,
|
|
656
675
|
onForward: undefined,
|
|
657
676
|
suggestions: undefined,
|
|
658
677
|
unRead: false,
|
|
659
|
-
actions: emailDemoActions('item2', emailsData[0].subject, createOrActivateComposer, true, '<div>Hi, <br /> <br /><div>Sure, Our executive will come and check your connection in 24hrs. </div> <br />Regards, <br />Hugh Phillips </div>', deleteEmail),
|
|
660
678
|
timeStamp: '2021-01-03T17:15',
|
|
661
679
|
from: mockEmails['Hugh Phillips'],
|
|
662
680
|
to: [mockEmails['Mystery Rey'], ...emailsData[0].to],
|
|
@@ -668,10 +686,19 @@ export const EmailShellDemo = (args) => {
|
|
|
668
686
|
...emailsData[1],
|
|
669
687
|
id: 'item3',
|
|
670
688
|
status: 'draft',
|
|
689
|
+
onEditDraft: (id) => createOrActivateComposer(id, LaunchAction.REPLY, {
|
|
690
|
+
...baseComposerProps,
|
|
691
|
+
data: {
|
|
692
|
+
...baseComposerProps.data,
|
|
693
|
+
responseType: 'reply',
|
|
694
|
+
subject: { value: `Re-${emailsData[0].subject}` || '' },
|
|
695
|
+
bodyContent: { defaultValue: emailsData[0].body || '' }
|
|
696
|
+
}
|
|
697
|
+
}),
|
|
698
|
+
onDeleteDraft: (id) => deleteEmail(id),
|
|
671
699
|
onReply: undefined,
|
|
672
700
|
onForward: undefined,
|
|
673
701
|
suggestions: undefined,
|
|
674
|
-
actions: emailDemoActions('item3', emailsData[0].subject, createOrActivateComposer, true, '<div>Hi, <br /> <br /><div>Can you fix my internet connection. </div> <br /> <br />Regards, <br />Rey Mystery </div>', deleteEmail),
|
|
675
702
|
unRead: false,
|
|
676
703
|
timeStamp: '2021-01-02T14:16',
|
|
677
704
|
from: mockEmails['Mystery Rey'],
|
|
@@ -729,6 +756,7 @@ export const EmailShellDemo = (args) => {
|
|
|
729
756
|
emails: [
|
|
730
757
|
{
|
|
731
758
|
...emailsData[1],
|
|
759
|
+
id: 'item0',
|
|
732
760
|
from: mailDeliverySystemEmail,
|
|
733
761
|
to: [supportTeamEmail],
|
|
734
762
|
body: '<div>Hi, <br /> <br /><div>Your address change request is approved.</div> <br /> <br />Regards, <br />Support team </div>',
|
|
@@ -740,32 +768,35 @@ export const EmailShellDemo = (args) => {
|
|
|
740
768
|
]
|
|
741
769
|
},
|
|
742
770
|
onReply: undefined,
|
|
743
|
-
onForward: undefined
|
|
744
|
-
actions: undefined
|
|
771
|
+
onForward: undefined
|
|
745
772
|
},
|
|
746
773
|
{ ...emailsData[1], unRead: false }
|
|
747
774
|
]
|
|
748
775
|
}
|
|
749
776
|
];
|
|
750
|
-
return (_jsxs(_Fragment, { children: [_jsx(EmailShell, { headerProps:
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
777
|
+
return (_jsxs(_Fragment, { children: [_jsx(EmailShell, { headerProps: args.showHeader
|
|
778
|
+
? {
|
|
779
|
+
actions: (_jsxs(Flex, { container: {
|
|
780
|
+
alignItems: 'center',
|
|
781
|
+
gap: 0
|
|
782
|
+
}, children: [_jsx(Button, { variant: 'simple', icon: true, children: _jsx(Icon, { name: 'filter' }) }), _jsx(MenuButton, { variant: 'simple', text: 'More actions', icon: 'more', iconOnly: true, portal: true, menu: { items: actions } })] })),
|
|
783
|
+
subject: 'Pause service'
|
|
784
|
+
}
|
|
785
|
+
: undefined, autoCollapse: args.autoCollapse, conversations: args.singleConversation ? singleEmailConversation : emailConversations }), _jsx(_Fragment, { children: Object.keys(composersData).map(guid => {
|
|
757
786
|
return _jsx(EmailComposer, { ...composersData[guid] }, guid);
|
|
758
787
|
}) })] }));
|
|
759
788
|
};
|
|
760
789
|
EmailShellDemo.args = {
|
|
761
790
|
autoCollapse: true,
|
|
762
791
|
hideSuggestions: false,
|
|
763
|
-
singleConversation:
|
|
792
|
+
singleConversation: false,
|
|
793
|
+
showHeader: true
|
|
764
794
|
};
|
|
765
795
|
EmailShellDemo.argTypes = {
|
|
766
796
|
autoCollapse: { control: { type: 'boolean' } },
|
|
767
797
|
hideSuggestions: { control: { type: 'boolean' } },
|
|
768
|
-
singleConversation: { control: { type: 'boolean' } }
|
|
798
|
+
singleConversation: { control: { type: 'boolean' } },
|
|
799
|
+
showHeader: { control: { type: 'boolean' } }
|
|
769
800
|
};
|
|
770
801
|
export const EntityListDemo = (args) => {
|
|
771
802
|
const itemCounter = useRef(3);
|
|
@@ -877,15 +908,48 @@ export const EmailSummaryListDemo = (args) => {
|
|
|
877
908
|
}, [loading]);
|
|
878
909
|
return (_jsx(EmailSummaryList, { ref: emailSummaryListRef, unreadEmailCount: 99, categories: categories, items: args.items || allEmailItems, onItemClick: args.onItemClick || handleItemClick, onCategoryClick: onCategoryClick, onLoadMore: args.onLoadMore || (hasMore ? loadMore : undefined), loading: args.loading || loading, emptyMessage: 'No emails.' }));
|
|
879
910
|
};
|
|
911
|
+
export const EmailCaseViewDemo = (args) => {
|
|
912
|
+
const content = _jsx(EmailShellDemo, {});
|
|
913
|
+
const utilities = (
|
|
914
|
+
// View analysis utility
|
|
915
|
+
_jsxs(Grid, { container: { rowGap: 2 }, children: [_jsx(EntityListDemo, {}), _jsxs(Card, { children: [_jsxs(CardHeader, { container: { alignItems: 'center', gap: 1 }, children: [_jsx(Icon, { name: 'document-doc' }), _jsx(Text, { variant: 'h3', children: "Email header" })] }), _jsx(CardContent, { children: _jsx(FieldValueList, { fields: viewAnalysisEmailHeaderMock, variant: 'stacked' }) })] }), _jsx(SummaryList, { name: 'Topics', icon: 'headline', items: topicListMock.map(items => ({
|
|
916
|
+
...items,
|
|
917
|
+
primary: _jsx(StyledLabel, { children: items.primary }),
|
|
918
|
+
secondary: (_jsxs(Flex, { container: { direction: 'row', justify: 'between' }, children: [_jsx(Text, { variant: 'primary', children: items.secondary.indicator }), _jsx(StyledLabel, { children: items.secondary.value })] }))
|
|
919
|
+
})), noItemsText: 'No items' })] }));
|
|
920
|
+
return (_jsx(AppShellDemo, { appHeader: true, main: _jsx(EmailCaseView, { header: args.showHeader
|
|
921
|
+
? {
|
|
922
|
+
icon: 'mail',
|
|
923
|
+
title: 'ET-5432'
|
|
924
|
+
}
|
|
925
|
+
: undefined, banners: args.showBanners && (_jsx(Banner, { id: 'error', variant: 'urgent', heading: 'Error', messages: ['Your email could not be delivered due to poor network connection.'] })), content: content, utilities: !args.noUtilityView && utilities, utilitiesSummaryItems: !args.noUtilityView
|
|
926
|
+
? [
|
|
927
|
+
{ iconName: 'list-number', count: 7 },
|
|
928
|
+
{ iconName: 'document-doc', count: 1 },
|
|
929
|
+
{ iconName: 'headline', count: 4 }
|
|
930
|
+
]
|
|
931
|
+
: undefined, defaultUtilitiesExpanded: true }) }));
|
|
932
|
+
};
|
|
933
|
+
EmailCaseViewDemo.args = {
|
|
934
|
+
showBanners: false,
|
|
935
|
+
noUtilityView: false,
|
|
936
|
+
showHeader: true
|
|
937
|
+
};
|
|
938
|
+
EmailCaseViewDemo.argTypes = {
|
|
939
|
+
showBanners: { control: { type: 'boolean' } },
|
|
940
|
+
noUtilityView: { control: { type: 'boolean' } },
|
|
941
|
+
showHeader: { control: { type: 'boolean' } }
|
|
942
|
+
};
|
|
943
|
+
EmailCaseViewDemo.parameters = {
|
|
944
|
+
layout: 'fullscreen'
|
|
945
|
+
};
|
|
880
946
|
export const EmailManagerAppShell = (args) => {
|
|
881
947
|
const INITIAL_CHUNK_SIZE = 9;
|
|
882
948
|
const APPEND_CHUNK_SIZE = 1;
|
|
883
|
-
const [activeItemId, setActiveItemId] = useState();
|
|
884
949
|
const [emailList, setEmailList] = useState(emailSummaryItems.slice(0, INITIAL_CHUNK_SIZE));
|
|
885
950
|
const [loading, setLoading] = useState(false);
|
|
886
951
|
const [hasMore, setHasMore] = useState(true);
|
|
887
952
|
const handleEmailItemClick = (id) => {
|
|
888
|
-
setActiveItemId(id);
|
|
889
953
|
const index = emailList.findIndex(emailItem => {
|
|
890
954
|
return emailItem.id === id;
|
|
891
955
|
});
|
|
@@ -909,31 +973,42 @@ export const EmailManagerAppShell = (args) => {
|
|
|
909
973
|
}, 1500);
|
|
910
974
|
}
|
|
911
975
|
}, [loading]);
|
|
912
|
-
const
|
|
913
|
-
const content = activeItemId === undefined ? (_jsx(EmptyState, { message: 'No item selected!' })) : (_jsx(EmailShellDemo, { singleConversation: activeItemIndex % 2 !== 0 }));
|
|
914
|
-
const utilities = activeItemId === undefined ? null : (
|
|
976
|
+
const utilities = (
|
|
915
977
|
// View analysis utility
|
|
916
|
-
_jsxs(Grid, { container: { rowGap: 2 }, children: [_jsx(EntityListDemo, {
|
|
978
|
+
_jsxs(Grid, { container: { rowGap: 2 }, children: [_jsx(EntityListDemo, {}), _jsxs(Card, { children: [_jsxs(CardHeader, { container: { alignItems: 'center', gap: 1 }, children: [_jsx(Icon, { name: 'document-doc' }), _jsx(Text, { variant: 'h3', children: "Email header" })] }), _jsx(CardContent, { children: _jsx(FieldValueList, { fields: viewAnalysisEmailHeaderMock, variant: 'stacked' }) })] }), _jsx(SummaryList, { name: 'Topics', icon: 'headline', items: topicListMock.map(items => ({
|
|
917
979
|
...items,
|
|
918
980
|
primary: _jsx(StyledLabel, { children: items.primary }),
|
|
919
981
|
secondary: (_jsxs(Flex, { container: { direction: 'row', justify: 'between' }, children: [_jsx(Text, { variant: 'primary', children: items.secondary.indicator }), _jsx(StyledLabel, { children: items.secondary.value })] }))
|
|
920
982
|
})), noItemsText: 'No items' })] }));
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
983
|
+
const content = _jsx(EmailShellDemo, { showHeader: false });
|
|
984
|
+
return (_jsx(AppShellDemo, { appHeader: true, main: _jsx(EmailManager, { header: args.showHeader
|
|
985
|
+
? {
|
|
986
|
+
icon: 'mail',
|
|
987
|
+
title: 'Inbox'
|
|
988
|
+
}
|
|
989
|
+
: undefined, list: _jsx(EmailSummaryListDemo, { onItemClick: handleEmailItemClick, items: emailList, onLoadMore: hasMore ? onLoadMore : undefined, loading: loading }), emailCaseDetails: !args.showEmptyView && (_jsx(EmailCaseView, { banners: args.showCaseViewBanners && (_jsx(Banner, { id: 'error', variant: 'urgent', heading: 'Error', messages: [
|
|
990
|
+
'Your email could not be delivered due to poor network connection.'
|
|
991
|
+
] })), content: content, utilities: args.showUtilities && utilities, utilitiesSummaryItems: args.showUtilities
|
|
992
|
+
? [
|
|
993
|
+
{ iconName: 'list-number', count: 7 },
|
|
994
|
+
{ iconName: 'document-doc', count: 1 },
|
|
995
|
+
{ iconName: 'headline', count: 4 }
|
|
996
|
+
]
|
|
997
|
+
: undefined, defaultUtilitiesExpanded: false })) }) }));
|
|
931
998
|
};
|
|
932
999
|
EmailManagerAppShell.args = {
|
|
933
|
-
enableContextMenu: true
|
|
1000
|
+
enableContextMenu: true,
|
|
1001
|
+
showEmptyView: false,
|
|
1002
|
+
showHeader: true,
|
|
1003
|
+
showCaseViewBanners: false,
|
|
1004
|
+
showUtilities: true
|
|
934
1005
|
};
|
|
935
1006
|
EmailManagerAppShell.argTypes = {
|
|
936
|
-
enableContextMenu: { control: { type: 'boolean' } }
|
|
1007
|
+
enableContextMenu: { control: { type: 'boolean' } },
|
|
1008
|
+
showEmptyView: { control: { type: 'boolean' } },
|
|
1009
|
+
showHeader: { control: { type: 'boolean' } },
|
|
1010
|
+
showCaseViewBanners: { control: { type: 'boolean' } },
|
|
1011
|
+
showUtilities: { control: { type: 'boolean' } }
|
|
937
1012
|
};
|
|
938
1013
|
EmailManagerAppShell.parameters = {
|
|
939
1014
|
layout: 'fullscreen'
|