@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.
Files changed (83) hide show
  1. package/jsx/build/ExpressionBuilder/ExpressionBuilder.mocks.d.ts +9 -13
  2. package/jsx/build/ExpressionBuilder/ExpressionBuilder.mocks.d.ts.map +1 -1
  3. package/jsx/build/ExpressionBuilder/ExpressionBuilder.mocks.js +46 -13
  4. package/jsx/build/ExpressionBuilder/ExpressionBuilder.mocks.js.map +1 -1
  5. package/jsx/build/ExpressionBuilder/ExpressionBuilder.stories.d.ts +1 -0
  6. package/jsx/build/ExpressionBuilder/ExpressionBuilder.stories.d.ts.map +1 -1
  7. package/jsx/build/ExpressionBuilder/ExpressionBuilder.stories.jsx +67 -11
  8. package/jsx/build/ExpressionBuilder/ExpressionBuilder.stories.jsx.map +1 -1
  9. package/jsx/core/FieldGroup/FieldGroup.stories.d.ts +2 -0
  10. package/jsx/core/FieldGroup/FieldGroup.stories.d.ts.map +1 -1
  11. package/jsx/core/FieldGroup/FieldGroup.stories.jsx +12 -4
  12. package/jsx/core/FieldGroup/FieldGroup.stories.jsx.map +1 -1
  13. package/jsx/core/ListToolbar/ListToolbar.stories.d.ts +2 -1
  14. package/jsx/core/ListToolbar/ListToolbar.stories.d.ts.map +1 -1
  15. package/jsx/core/ListToolbar/ListToolbar.stories.jsx +9 -5
  16. package/jsx/core/ListToolbar/ListToolbar.stories.jsx.map +1 -1
  17. package/jsx/core/Tree/Tree.stories.d.ts.map +1 -1
  18. package/jsx/core/Tree/Tree.stories.jsx +14 -0
  19. package/jsx/core/Tree/Tree.stories.jsx.map +1 -1
  20. package/jsx/cs/CallControlPanel/CallControlPanel.mocks.d.ts +4 -0
  21. package/jsx/cs/CallControlPanel/CallControlPanel.mocks.d.ts.map +1 -1
  22. package/jsx/cs/CallControlPanel/CallControlPanel.mocks.js +14 -0
  23. package/jsx/cs/CallControlPanel/CallControlPanel.mocks.js.map +1 -1
  24. package/jsx/cs/CallControlPanel/CallControlPanel.stories.d.ts.map +1 -1
  25. package/jsx/cs/CallControlPanel/CallControlPanel.stories.jsx +64 -6
  26. package/jsx/cs/CallControlPanel/CallControlPanel.stories.jsx.map +1 -1
  27. package/jsx/social/Email/Email.mocks.d.ts +0 -1
  28. package/jsx/social/Email/Email.mocks.d.ts.map +1 -1
  29. package/jsx/social/Email/Email.mocks.jsx +0 -13
  30. package/jsx/social/Email/Email.mocks.jsx.map +1 -1
  31. package/jsx/social/Email/Email.stories.d.ts +19 -2
  32. package/jsx/social/Email/Email.stories.d.ts.map +1 -1
  33. package/jsx/social/Email/Email.stories.jsx +159 -65
  34. package/jsx/social/Email/Email.stories.jsx.map +1 -1
  35. package/jsx/work/SearchResults/SearchResults.mocks.d.ts +6 -0
  36. package/jsx/work/SearchResults/SearchResults.mocks.d.ts.map +1 -1
  37. package/jsx/work/SearchResults/SearchResults.mocks.jsx +39 -38
  38. package/jsx/work/SearchResults/SearchResults.mocks.jsx.map +1 -1
  39. package/jsx/work/SearchResults/SearchResults.stories.d.ts.map +1 -1
  40. package/jsx/work/SearchResults/SearchResults.stories.jsx +71 -43
  41. package/jsx/work/SearchResults/SearchResults.stories.jsx.map +1 -1
  42. package/lib/build/ExpressionBuilder/ExpressionBuilder.mocks.d.ts +9 -13
  43. package/lib/build/ExpressionBuilder/ExpressionBuilder.mocks.d.ts.map +1 -1
  44. package/lib/build/ExpressionBuilder/ExpressionBuilder.mocks.js +46 -13
  45. package/lib/build/ExpressionBuilder/ExpressionBuilder.mocks.js.map +1 -1
  46. package/lib/build/ExpressionBuilder/ExpressionBuilder.stories.d.ts +1 -0
  47. package/lib/build/ExpressionBuilder/ExpressionBuilder.stories.d.ts.map +1 -1
  48. package/lib/build/ExpressionBuilder/ExpressionBuilder.stories.js +65 -12
  49. package/lib/build/ExpressionBuilder/ExpressionBuilder.stories.js.map +1 -1
  50. package/lib/core/FieldGroup/FieldGroup.stories.d.ts +2 -0
  51. package/lib/core/FieldGroup/FieldGroup.stories.d.ts.map +1 -1
  52. package/lib/core/FieldGroup/FieldGroup.stories.js +11 -3
  53. package/lib/core/FieldGroup/FieldGroup.stories.js.map +1 -1
  54. package/lib/core/ListToolbar/ListToolbar.stories.d.ts +2 -1
  55. package/lib/core/ListToolbar/ListToolbar.stories.d.ts.map +1 -1
  56. package/lib/core/ListToolbar/ListToolbar.stories.js +9 -5
  57. package/lib/core/ListToolbar/ListToolbar.stories.js.map +1 -1
  58. package/lib/core/Tree/Tree.stories.d.ts.map +1 -1
  59. package/lib/core/Tree/Tree.stories.js +16 -0
  60. package/lib/core/Tree/Tree.stories.js.map +1 -1
  61. package/lib/cs/CallControlPanel/CallControlPanel.mocks.d.ts +4 -0
  62. package/lib/cs/CallControlPanel/CallControlPanel.mocks.d.ts.map +1 -1
  63. package/lib/cs/CallControlPanel/CallControlPanel.mocks.js +14 -0
  64. package/lib/cs/CallControlPanel/CallControlPanel.mocks.js.map +1 -1
  65. package/lib/cs/CallControlPanel/CallControlPanel.stories.d.ts.map +1 -1
  66. package/lib/cs/CallControlPanel/CallControlPanel.stories.js +64 -6
  67. package/lib/cs/CallControlPanel/CallControlPanel.stories.js.map +1 -1
  68. package/lib/social/Email/Email.mocks.d.ts +0 -1
  69. package/lib/social/Email/Email.mocks.d.ts.map +1 -1
  70. package/lib/social/Email/Email.mocks.js +0 -13
  71. package/lib/social/Email/Email.mocks.js.map +1 -1
  72. package/lib/social/Email/Email.stories.d.ts +19 -2
  73. package/lib/social/Email/Email.stories.d.ts.map +1 -1
  74. package/lib/social/Email/Email.stories.js +127 -52
  75. package/lib/social/Email/Email.stories.js.map +1 -1
  76. package/lib/work/SearchResults/SearchResults.mocks.d.ts +6 -0
  77. package/lib/work/SearchResults/SearchResults.mocks.d.ts.map +1 -1
  78. package/lib/work/SearchResults/SearchResults.mocks.js +39 -38
  79. package/lib/work/SearchResults/SearchResults.mocks.js.map +1 -1
  80. package/lib/work/SearchResults/SearchResults.stories.d.ts.map +1 -1
  81. package/lib/work/SearchResults/SearchResults.stories.js +71 -43
  82. package/lib/work/SearchResults/SearchResults.stories.js.map +1 -1
  83. 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
- export declare const Composer: Story;
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;AA4B/C,OAAO,EAaL,qBAAqB,EAEtB,MAAM,2BAA2B,CAAC;;AA+CnC,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;CAC3B;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,cAAc,CAqGvC,CAAC;AAwBF,eAAO,MAAM,QAAQ,EAAE,KAgLtB,CAAC;AASF,eAAO,MAAM,YAAY,EAAE,KA2C1B,CAAC;AASF,UAAU,mBAAmB;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,mBAAmB,CA8kBrD,CAAC;AAqBF,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;AASF,UAAU,yBAAyB;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,yBAAyB,CA+HjE,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 { useMemo } from '@storybook/addons';
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, emailActions, generateEmailConversationParticipants, templates, handleExternalEntry, emailDemoActions, LaunchAction, baseComposerProps, sentiment, emailSummaryItems, mockEmails, mockSuggestedReplies, mockEmailBodyTemplates, forwardedContent, getCompositeId, emptyFieldErrorMessage, fieldValidation, emailWorklistItemsMock, contextMenuItemsMock, highlightedEntitiesMock, mockUploadImage, mailDeliverySystemEmail, supportTeamEmail } from './Email.mocks';
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
- }, actions: emailActions, suggestions: mockSuggestedReplies, contextMenu: {
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: data, templates: templates, onImageAdded: onImageAdded }));
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
- actions: (_jsxs(Flex, { container: {
752
- alignItems: 'center',
753
- gap: 0
754
- }, 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 } })] })),
755
- subject: 'Pause service'
756
- }, autoCollapse: args.autoCollapse, conversations: args.singleConversation ? singleEmailConversation : emailConversations }), _jsx(_Fragment, { children: Object.keys(composersData).map(guid => {
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: true
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 activeItemIndex = useMemo(() => emailList.findIndex(emailItem => emailItem.id === activeItemId), [activeItemId, emailList]);
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, { onContextMenu: args.onContextMenu, enableContextMenu: args.enableContextMenu }), _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 => ({
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
- return (_jsx(AppShellDemo, { appHeader: true, main: _jsx(EmailManager, { header: {
922
- icon: 'mail',
923
- title: 'Inbox'
924
- }, list: _jsx(EmailSummaryListDemo, { onItemClick: handleEmailItemClick, items: emailList, onLoadMore: hasMore ? onLoadMore : undefined, loading: loading }), content: content, utilities: utilities, utilitiesSummaryItems: utilities
925
- ? [
926
- { iconName: 'list-number', count: 7 },
927
- { iconName: 'document-doc', count: 1 },
928
- { iconName: 'headline', count: 4 }
929
- ]
930
- : undefined, defaultCollapsedUtilities: !!utilities }) }));
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'