@pega/cosmos-react-demos 3.0.0-dev.23.0 → 3.0.0-dev.23.1
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/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/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/package.json +9 -9
|
@@ -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;;AA6CnC,wBAGU;AASV,UAAU,cAAc;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,cAAc,CAqEvC,CAAC;AAsBF,eAAO,MAAM,QAAQ,EAAE,
|
|
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;;AA6CnC,wBAGU;AASV,UAAU,cAAc;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,cAAc,CAqEvC,CAAC;AAsBF,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,CAihBrD,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,CAkCrD,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"}
|
|
@@ -142,6 +142,25 @@ export const Composer = () => {
|
|
|
142
142
|
};
|
|
143
143
|
});
|
|
144
144
|
}
|
|
145
|
+
else if (data.responseType === 'forward') {
|
|
146
|
+
setData(prev => {
|
|
147
|
+
return {
|
|
148
|
+
...prev,
|
|
149
|
+
to: {
|
|
150
|
+
...prev.to,
|
|
151
|
+
value: []
|
|
152
|
+
},
|
|
153
|
+
cc: {
|
|
154
|
+
...prev.cc,
|
|
155
|
+
value: []
|
|
156
|
+
},
|
|
157
|
+
bcc: {
|
|
158
|
+
...prev.bcc,
|
|
159
|
+
value: []
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
});
|
|
163
|
+
}
|
|
145
164
|
}, [data.responseType]);
|
|
146
165
|
const onTemplateChange = (id) => {
|
|
147
166
|
const selectedTemplate = mockEmailBodyTemplates.find(template => template.id === id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Email.stories.jsx","sourceRoot":"","sources":["../../../src/social/Email/Email.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["// cSpell:words calibri Trichy Nagercoil\nimport {\n useState,\n useRef,\n useCallback,\n useEffect,\n createRef,\n RefObject,\n MouseEvent,\n FunctionComponent\n} from 'react';\nimport { action } from '@storybook/addon-actions';\nimport { Meta, Story } from '@storybook/react';\nimport { useMemo } from '@storybook/addons';\n\nimport {\n Card,\n CardContent,\n createUID,\n MenuButton,\n MenuItemProps,\n MenuProps,\n Icon,\n registerIcon,\n Flex,\n Button,\n menuHelpers,\n CardHeader,\n Text,\n SummaryList,\n Grid,\n FieldValueList,\n StyledLabel,\n EmptyState,\n Modal,\n useModalManager,\n useModalContext,\n useToaster\n} from '@pega/cosmos-react-core';\nimport * as filterIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/filter.icon';\nimport {\n Email as EmailComponent,\n EmailConversation,\n EmailComposer,\n EmailShell,\n EmailSummaryItem,\n EmailSummaryList,\n EntityList,\n EmailProps,\n EmailConversationProps,\n EmailComposerProps,\n EntityListProps,\n EmailManager,\n EmailSummaryListProps,\n EmailSummaryItemProps\n} from '@pega/cosmos-react-social';\nimport {\n EmailComposerFieldType,\n EmailComposerValueType,\n EmailComposerHandleValue,\n ContextMenuProps\n} from '@pega/cosmos-react-social/lib/components/Email/Email.types';\n\nimport { AppShellDemo } from '../../core/AppShell/AppShell.stories';\n\nimport {\n bccParticipants,\n ccParticipants,\n emailBodyContent,\n participants,\n toParticipants,\n emailAttachments,\n EntityListMockData,\n viewAnalysisEmailHeaderMock,\n topicListMock,\n emailActions,\n generateEmailConversationParticipants,\n templates,\n handleExternalEntry,\n emailDemoActions,\n LaunchAction,\n baseComposerProps,\n sentiment,\n emailSummaryItems,\n mockEmails,\n mockSuggestedReplies,\n mockEmailBodyTemplates,\n forwardedContent,\n getCompositeId,\n emptyFieldErrorMessage,\n fieldValidation,\n emailWorklistItemsMock,\n contextMenuItemsMock,\n highlightedEntitiesMock,\n mockUploadImage\n} from './Email.mocks';\nimport { StyledEmailCardContent } from './Email.styles';\n\nregisterIcon(filterIcon);\n\nexport default {\n title: 'Social/Email',\n component: EmailComponent\n} as Meta;\n\n// _______ .___ ___. ___ __ __\n// | ____|| \\/ | / \\ | | | |\n// | |__ | \\ / | / ^ \\ | | | |\n// | __| | |\\/| | / /_\\ \\ | | | |\n// | |____ | | | | / _____ \\ | | | `----.\n// |_______||__| |__| /__/ \\__\\ |__| |_______|\n\ninterface EmailDemoProps {\n enableEntityHighlighting?: boolean;\n enableContextMenu?: boolean;\n forwardedContent?: string;\n}\n\nexport const Email: Story<EmailDemoProps> = (args: EmailDemoProps) => {\n const emailImperativeHandle: ContextMenuProps['handle'] = useRef(null);\n const timeout = useRef<number | null>(null);\n\n const handleRightClick = () => {\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n timeout.current = window.setTimeout(() => {\n emailImperativeHandle.current?.setContextMenuItems(contextMenuItemsMock);\n }, 1000);\n };\n\n return (\n <Card>\n <StyledEmailCardContent>\n <EmailComponent\n id={createUID()}\n timeStamp='2021-01-05T09:12'\n from={mockEmails['Laura Stevens']}\n cc={[mockEmails['Adam Gillchrist'], mockEmails['John Paul']]}\n bcc={[mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']]}\n to={[mockEmails['Sara Davis'], mockEmails['John Brown'], mockEmails['Joe Stevens']]}\n body='<div>Hi,<br/><p>I am one of the customer of Indian Overseas Bank, <b><i>Nagercoil</i></b> branch, with code <b><a href=\"www.google.com\"><i>3967</i></a></b>. I have a saving bank account here. My account number is <i>6785420965476</i>.</p><br/><p>I have been given a debit cum ATM card from this bank and the same has been lost when I was traveling from Nagercoil to Trichy by Bus on Jan 04, 2021. I remember that my ATM card number was 1920 6746 8653 1256.</p><br/>I hereby request you to block my debit card immediately to prevent misuse of the same by some others. Also I request you to give me an new debit card as early as possible.<br/><br/>Regards,<br/>Laura Stevens</div>'\n forwardedContent={args.forwardedContent}\n entityHighlightMapping={\n args.enableEntityHighlighting ? highlightedEntitiesMock : undefined\n }\n subject='I lost my debit card'\n onReply={action('On reply')}\n onReplyAll={action('On reply all')}\n onForward={action('On forward')}\n onSuggestionClick={action('On Suggested reply clicked')}\n sentiment={{\n variant: 'neutral'\n }}\n actions={emailActions}\n suggestions={mockSuggestedReplies}\n contextMenu={\n args.enableContextMenu\n ? {\n onItemClick: action('onItemClick'),\n onContextMenu: handleRightClick,\n handle: emailImperativeHandle\n }\n : undefined\n }\n attachments={[\n {\n id: 'attachment_0',\n value: 'https://pega.com/media/document.doc',\n displayText: 'Policy document'\n },\n {\n id: 'attachment_1',\n value: 'https://pbs.twimg.com/media/ENNN5PAXkAE-hag.jpg',\n displayText: 'E-Ticket'\n }\n ].map(attachment => {\n return {\n ...attachment,\n onDownload: action('On attachment download'),\n onPreview: action('On attachment preview')\n };\n })}\n />\n </StyledEmailCardContent>\n </Card>\n );\n};\n\nEmail.args = {\n enableEntityHighlighting: false,\n enableContextMenu: false,\n // eslint-disable-next-line demo-patterns/literal-args\n forwardedContent\n};\n\nEmail.argTypes = {\n enableEntityHighlighting: { control: { type: 'boolean' } },\n enableContextMenu: { control: { type: 'boolean' } },\n forwardedContent: { control: { type: 'text' } }\n};\n\n// ______ ______ .___ ___. .______ ______ _______. _______ .______\n// / | / __ \\ | \\/ | | _ \\ / __ \\ / || ____|| _ \\\n// | ,----'| | | | | \\ / | | |_) | | | | | | (----`| |__ | |_) |\n// | | | | | | | |\\/| | | ___/ | | | | \\ \\ | __| | /\n// | `----.| `--' | | | | | | | | `--' | .----) | | |____ | |\\ \\----.\n// \\______| \\______/ |__| |__| | _| \\______/ |_______/ |_______|| _| `._____|\n\nexport const Composer: Story = () => {\n const [composerProgress, setComposerProgress] = useState<EmailComposerProps['progress']>(false);\n const composerHandle = useRef<EmailComposerHandleValue>(null);\n\n const [data, setData] = useState<\n EmailComposerProps['data'] & { bodyContentCurrentValue: string }\n >({\n to: { value: toParticipants },\n cc: { value: [] },\n bcc: { value: [] },\n subject: { value: 'Request: Pause service' },\n bodyContent: {\n defaultValue: 'Hi, Hope you are doing well'\n },\n responseType: 'reply',\n selectedTemplateId: '',\n attachments: emailAttachments,\n bodyContentCurrentValue: ''\n });\n\n const handleOnChange = (\n field: EmailComposerFieldType,\n value: EmailComposerValueType<EmailComposerFieldType>\n ) => {\n if (field === 'bodyContent') {\n setData(prev => ({\n ...prev,\n bodyContentCurrentValue: value as string\n }));\n } else if (['responseType', 'attachments', 'selectedTemplateId'].includes(field)) {\n setData(prev => ({\n ...prev,\n [field]: value\n }));\n } else {\n // Clearing error message as soon as value changes\n setData(prev => {\n return {\n ...prev,\n [field]: { error: undefined, value }\n };\n });\n }\n action('onChange')(field, value);\n };\n\n useEffect(() => {\n if (data.responseType === 'reply') {\n setData(prev => {\n return {\n ...prev,\n to: {\n ...prev.to,\n value: [toParticipants[0]]\n },\n cc: {\n ...prev.cc,\n value: []\n },\n bcc: {\n ...prev.bcc,\n value: []\n }\n };\n });\n } else if (data.responseType === 'replyAll') {\n setData(prev => {\n return {\n ...prev,\n to: {\n ...prev.to,\n value: toParticipants\n },\n cc: {\n ...prev.cc,\n value: ccParticipants\n },\n bcc: {\n ...prev.bcc,\n value: bccParticipants\n }\n };\n });\n }\n }, [data.responseType]);\n\n const onTemplateChange = (id: string) => {\n const selectedTemplate = mockEmailBodyTemplates.find(template => template.id === id);\n // Simulating api call\n setComposerProgress({ message: 'Loading template...' });\n setTimeout(() => {\n setComposerProgress(false);\n composerHandle.current?.replaceBodyContent(selectedTemplate?.content || '');\n }, 1000);\n };\n\n useEffect(() => {\n if (data.selectedTemplateId) onTemplateChange(data.selectedTemplateId);\n }, [data.selectedTemplateId]);\n\n const handleOnSend: EmailComposerProps['onSend'] = () => {\n setData(prev => {\n return {\n ...prev,\n to: {\n value: prev.to?.value || [],\n error:\n data?.to?.value.length === 0 ? emptyFieldErrorMessage : fieldValidation(data?.to?.value)\n },\n cc: {\n value: prev.cc?.value || [],\n error: data.cc === undefined ? undefined : fieldValidation(data.cc.value)\n },\n bcc: {\n value: prev.bcc?.value || [],\n error: data.bcc === undefined ? undefined : fieldValidation(data.bcc.value)\n },\n subject: {\n ...prev.subject,\n error: data.subject?.value === '' ? emptyFieldErrorMessage : undefined\n },\n bodyContent: {\n ...prev.bodyContent,\n error: data.bodyContentCurrentValue === '' ? emptyFieldErrorMessage : undefined\n }\n };\n });\n };\n\n const onImageAdded: EmailComposerProps['onImageAdded'] = (image: File, id: string) => {\n action('On Image added');\n setComposerProgress({ message: 'Uploading image' });\n // Simulate image upload\n mockUploadImage(image)\n .then(({ src, alt }) => {\n composerHandle.current?.updateImage({ src, alt }, id);\n setComposerProgress(false);\n })\n .catch(() => {\n setComposerProgress(false);\n });\n };\n\n return (\n <EmailComposer\n handle={composerHandle}\n progress={composerProgress}\n onSave={action('On save')}\n onSend={handleOnSend}\n onCancel={action('On cancel')}\n externalValidator={handleExternalEntry}\n participants={participants}\n onChange={handleOnChange}\n data={data}\n templates={templates}\n onImageAdded={onImageAdded}\n />\n );\n};\n\n// ______ ______ .__ __. ____ ____ _______ .______ _______. ___ .___________. __ ______ .__ __.\n// / | / __ \\ | \\ | | \\ \\ / / | ____|| _ \\ / | / \\ | || | / __ \\ | \\ | |\n// | ,----'| | | | | \\| | \\ \\/ / | |__ | |_) | | (----` / ^ \\ `---| |----`| | | | | | | \\| |\n// | | | | | | | . ` | \\ / | __| | / \\ \\ / /_\\ \\ | | | | | | | | | . ` |\n// | `----.| `--' | | |\\ | \\ / | |____ | |\\ \\----.----) | / _____ \\ | | | | | `--' | | |\\ |\n// \\______| \\______/ |__| \\__| \\__/ |_______|| _| `._____|_______/ /__/ \\__\\ |__| |__| \\______/ |__| \\__|\n\nexport const Conversation: Story = () => {\n const emailArr: EmailProps[] = [\n {\n id: 'item_0',\n timeStamp: '2021-01-05T09:12',\n from: mockEmails['Laura Stevens'],\n cc: [mockEmails['Adam Gillchrist'], mockEmails['John Paul']],\n bcc: [mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']],\n to: [mockEmails['Sara Davis'], mockEmails['John Brown'], mockEmails['Joe Stevens']],\n body: '<div> Hi, <br /> <br /> <div>Sure.. Here is your E-Ticket !! </div> <br /><br /> Regards, <br /> Laura Stevens </div>',\n unRead: true,\n onReply: action('On reply'),\n onForward: action('On forward'),\n onSuggestionClick: action('On Suggested reply clicked'),\n actions: emailActions,\n suggestions: mockSuggestedReplies\n },\n {\n id: 'item_1',\n timeStamp: '2021-01-02T03:12',\n from: mockEmails['Sara Davis'],\n cc: [mockEmails['Adam Gillchrist'], mockEmails['John Paul']],\n bcc: [mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']],\n to: [mockEmails['Laura Stevens'], mockEmails['John Brown'], mockEmails['Joe Stevens']],\n body: '<div> Hi, <br /> <br /> <div>I’m still at the airport, I need help now!! </div> <br /><br /> Regards, <br /> Sara Davis </div>',\n onReply: action('On reply'),\n onForward: action('On forward'),\n onSuggestionClick: action('On Suggested reply clicked'),\n actions: emailActions\n }\n ];\n\n return (\n <EmailConversation\n participants={generateEmailConversationParticipants(emailArr)}\n from={generateEmailConversationParticipants(emailArr, ['from'])[0]}\n to={generateEmailConversationParticipants(emailArr, ['to'])}\n id={createUID()}\n timeStamp={emailArr[0].timeStamp}\n unReadEmailCount={emailArr.filter(item => item.unRead).length}\n emails={emailArr}\n />\n );\n};\n\n// _______ .___ ___. ___ __ __ _______. __ __ _______ __ __\n// | ____|| \\/ | / \\ | | | | / || | | | | ____|| | | |\n// | |__ | \\ / | / ^ \\ | | | | | (----`| |__| | | |__ | | | |\n// | __| | |\\/| | / /_\\ \\ | | | | \\ \\ | __ | | __| | | | |\n// | |____ | | | | / _____ \\ | | | `----. .----) | | | | | | |____ | `----.| `----.\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |_______/ |__| |__| |_______||_______||_______|\n\ninterface EmailShellDemoProps {\n autoCollapse?: boolean;\n hideSuggestions?: boolean;\n singleConversation?: boolean;\n}\n\nexport const EmailShellDemo: Story<EmailShellDemoProps> = (args: EmailShellDemoProps) => {\n const { create } = useModalManager();\n const { push } = useToaster();\n const actions = ['Transfer', 'End conversation'].map(name => ({\n primary: name,\n id: name,\n onClick: action(`Clicked ${name}`)\n }));\n\n const [composersData, setComposersData] = useState<{\n [key: string]: EmailComposerProps & { bodyContentCurrentValue: string };\n }>({});\n const [conversationEmails, setConversationEmails] = useState<EmailProps[][]>([]);\n\n const handleResponseTypeChange = (uid: string, responseType: string) => {\n if (responseType === 'reply') {\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n data: {\n ...prev[uid].data,\n to: {\n ...prev[uid].data.to,\n value: [toParticipants[0]]\n },\n cc: {\n ...prev[uid].data.cc,\n value: []\n },\n bcc: {\n ...prev[uid].data.bcc,\n value: []\n }\n }\n }\n };\n });\n } else if (responseType === 'replyAll') {\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n data: {\n ...prev[uid].data,\n to: {\n ...prev[uid].data.to,\n value: toParticipants\n },\n cc: {\n ...prev[uid].data.cc,\n value: ccParticipants\n },\n bcc: {\n ...prev[uid].data.bcc,\n value: bccParticipants\n }\n }\n }\n };\n });\n }\n };\n\n const handleTemplateIdChange = (uid: string, templateId: string) => {\n const selectedTemplate = mockEmailBodyTemplates.find(template => template.id === templateId);\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: { message: 'Loading template...' }\n }\n };\n });\n\n // Simulating api call\n setTimeout(() => {\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: false\n }\n };\n });\n\n let currentData: { [key: string]: EmailComposerProps } = {};\n setComposersData(prev => {\n currentData = prev;\n return prev;\n });\n\n if (currentData) {\n (\n currentData[uid]?.handle as RefObject<EmailComposerHandleValue>\n )?.current?.replaceBodyContent(selectedTemplate?.content || '');\n }\n }, 1000);\n };\n\n const handleChange = (\n uid: string,\n field: EmailComposerFieldType,\n value: EmailComposerValueType<EmailComposerFieldType>\n ) => {\n setComposersData(prevData => {\n if (field === 'bodyContent') {\n return {\n ...prevData,\n [uid]: {\n ...prevData[uid],\n bodyContentCurrentValue: value as string\n }\n };\n }\n return {\n ...prevData,\n [uid]: {\n ...prevData[uid],\n data: {\n ...prevData[uid].data,\n [field]: ['responseType', 'attachments', 'selectedTemplateId'].includes(field)\n ? value\n : {\n error: undefined, // Clearing error on change\n value\n }\n }\n }\n };\n });\n\n if (field === 'responseType') {\n handleResponseTypeChange(uid, value as string);\n } else if (field === 'selectedTemplateId') {\n handleTemplateIdChange(uid, value as string);\n }\n };\n\n const MyModal: FunctionComponent<{ currentID: string }> = ({ currentID }) => {\n const { dismiss } = useModalContext();\n\n return (\n <Modal\n heading='Discard unsaved changes?'\n actions={\n <>\n <Flex>\n <Button\n onClick={() => {\n dismiss();\n setComposersData(prev => {\n return {\n ...prev,\n [currentID]: {\n ...prev[currentID],\n progress: true\n }\n };\n });\n setTimeout(() => {\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[currentID];\n return newComposersData;\n });\n push({ content: 'Draft Saved' });\n }, 1000);\n }}\n >\n Save as draft\n </Button>\n\n <Button\n onClick={() => {\n dismiss();\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[currentID];\n return newComposersData;\n });\n }}\n >\n Discard\n </Button>\n </Flex>\n <Button\n variant='primary'\n onClick={() => {\n dismiss();\n }}\n >\n Cancel\n </Button>\n </>\n }\n center\n >\n <Text variant='primary'>\n You have unsaved changes. You can discard them or go back to keep working.\n </Text>\n </Modal>\n );\n };\n\n const handleCancel = (uid: string) => {\n create(MyModal, { currentID: uid }, { alert: true });\n };\n\n const handleSend = (uid: string) => {\n action('Send')();\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: true\n }\n };\n });\n setTimeout(() => {\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[uid];\n return newComposersData;\n });\n push({ content: 'Email Send' });\n }, 1000);\n };\n\n const handleSave = (uid: string) => {\n action('Save')();\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: true\n }\n };\n });\n setTimeout(() => {\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[uid];\n return newComposersData;\n });\n push({ content: 'Draft Saved' });\n }, 1000);\n };\n\n const createOrActivateComposer = (\n id: EmailProps['id'],\n launchAction: LaunchAction,\n composerProps: EmailComposerProps\n ) => {\n const uid = getCompositeId(id, launchAction);\n if (composersData[uid]) {\n // Activate the existing composer\n (composersData[uid].handle as RefObject<EmailComposerHandleValue>)?.current?.activate();\n } else {\n // Create new composer\n setComposersData(prev => {\n const composerHandle = createRef<EmailComposerHandleValue>();\n return {\n ...prev,\n [uid]: {\n ...composerProps,\n bodyContentCurrentValue: composerProps.data.bodyContent.defaultValue,\n handle: composerHandle,\n onChange: (\n field: EmailComposerFieldType,\n value: EmailComposerValueType<EmailComposerFieldType>\n ) => handleChange(uid, field, value),\n onCancel: () => handleCancel(uid),\n onSend: () => handleSend(uid),\n onSave: () => handleSave(uid)\n }\n };\n });\n }\n };\n\n const emailsData: EmailProps[] = [\n {\n id: 'item0',\n timeStamp: '2021-01-05T09:12',\n from: participants[0],\n to: participants.slice(0, 2),\n body: '<div>Hi, <br /> <br /><div>Your address change request is approved.</div> <br /> <br />Regards, <br />Laura Stevens </div>',\n unRead: true,\n subject: 'Pause service',\n suggestions: args.hideSuggestions ? undefined : mockSuggestedReplies,\n attachments: [\n {\n id: 'item_1_0',\n value: 'https://pega.com/media/document.doc',\n displayText: 'Policy document'\n },\n {\n id: 'item_1_1',\n value: 'https://pbs.twimg.com/media/ENNN5PAXkAE-hag.jpg',\n displayText: 'E-Ticket'\n }\n ].map(attachment => {\n return {\n ...attachment,\n onDownload: action('On attachment download'),\n onPreview: action('On attachment preview')\n };\n })\n },\n {\n id: 'item1',\n timeStamp: '2021-01-02T03:12',\n from: participants[3],\n to: participants.slice(2, 4),\n body: emailBodyContent,\n unRead: true,\n subject: 'Pause service'\n }\n ].map(emailData => {\n const emailActionItems = emailDemoActions(\n emailData.id,\n emailData.subject,\n createOrActivateComposer,\n false,\n emailData.body\n );\n return {\n ...emailData,\n onReply: (id: EmailProps['id']) => {\n createOrActivateComposer(id, LaunchAction.REPLY, {\n ...baseComposerProps,\n data: {\n ...baseComposerProps.data,\n responseType: 'reply',\n subject: { value: `Re-${emailData.subject}` || '' }\n },\n externalValidator: handleExternalEntry\n });\n },\n onForward: id => {\n createOrActivateComposer(id, LaunchAction.FORWARD, {\n ...baseComposerProps,\n data: {\n ...baseComposerProps.data,\n responseType: 'forward',\n subject: { value: `Fw-${emailData.subject}` || '' }\n },\n externalValidator: handleExternalEntry\n });\n },\n onSuggestionClick: (id, suggestionId) => {\n const suggestion = emailData.suggestions?.find(item => item.id === suggestionId);\n createOrActivateComposer(id, LaunchAction.SUGGESTION, {\n ...baseComposerProps,\n data: {\n ...baseComposerProps.data,\n responseType: 'reply',\n subject: { value: suggestion?.title || '' },\n bodyContent: { defaultValue: suggestion ? suggestion.content : '' },\n selectedTemplateId: suggestion?.id\n },\n externalValidator: handleExternalEntry\n });\n },\n actions: emailActionItems,\n tags: args.hideSuggestions\n ? undefined\n : {\n items: ['Pause service', 'Lost or stolen'],\n label: 'Associated service cases',\n onRemove: action('On Associated service case remove'),\n dismissable: true\n }\n };\n });\n\n const deleteEmail = (id: EmailProps['id']) => {\n setConversationEmails(prev => {\n const newEmailConversation: EmailProps[][] = [];\n\n prev.forEach(arr => {\n const newArr = arr.filter(index => index.id !== id);\n if (newArr.length !== 0) newEmailConversation.push(newArr);\n });\n return newEmailConversation;\n });\n };\n\n useEffect(() => {\n setConversationEmails([\n [{ ...emailsData[0] }, { ...emailsData[1], status: 'undelivered' }],\n [\n {\n ...emailsData[0],\n id: 'item2',\n status: 'draft',\n unRead: false,\n actions: emailDemoActions(\n 'item2',\n emailsData[0].subject,\n createOrActivateComposer,\n true,\n '<div>Hi, <br /> <br /><div>Sure, Our executive will come and check your connection in 24hrs. </div> <br />Regards, <br />Hugh Phillips </div>',\n deleteEmail\n ),\n timeStamp: '2021-01-03T17:15',\n from: mockEmails['Hugh Phillips'],\n to: [mockEmails['Mystery Rey'], ...emailsData[0].to],\n cc: [mockEmails['Adam Gillchrist']],\n bcc: [mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']],\n body: '<div>Hi, <br /> <br /><div>Sure, Our executive will come and check your connection in 24hrs. </div> <br />Regards, <br />Hugh Phillips </div>'\n },\n {\n ...emailsData[1],\n id: 'item3',\n status: 'draft',\n actions: emailDemoActions(\n 'item3',\n emailsData[0].subject,\n createOrActivateComposer,\n true,\n '<div>Hi, <br /> <br /><div>Can you fix my internet connection. </div> <br /> <br />Regards, <br />Rey Mystery </div>',\n deleteEmail\n ),\n unRead: false,\n timeStamp: '2021-01-02T14:16',\n from: mockEmails['Mystery Rey'],\n to: [mockEmails['Hugh Phillips']],\n body: '<div>Hi, <br /> <br /><div>Can you fix my internet connection. </div> <br /> <br />Regards, <br />Rey Mystery </div>'\n }\n ],\n [\n {\n ...emailsData[0],\n id: 'item4',\n unRead: true,\n timeStamp: '2020-12-05T18:18',\n from: mockEmails['Laura Stevens'],\n to: [mockEmails['Sara Davis']],\n body: '<div>Hi, <br /> <br /><div>Sure, Our executive will call you shortly. </div> <br /> <br />Regards, <br />Laura Stevens </div>',\n sentiment: {\n variant: 'positive'\n }\n },\n {\n ...emailsData[1],\n id: 'item5',\n unRead: true,\n timeStamp: '2021-01-04T08:30',\n from: mockEmails['Sara Davis'],\n to: [mockEmails['Laura Stevens']],\n body: '<div>Hi, <br /> <br /><div>Can you show please explain your new mobile plans. </div> <br /> <br />Regards, <br />Sara Davis </div>'\n }\n ]\n ]);\n }, []);\n\n const emailConversations: EmailConversationProps[] = (conversationEmails as EmailProps[][]).map(\n (emails, i) => {\n return {\n from: generateEmailConversationParticipants(emails, ['from'])[0],\n to: emails[0].to,\n id: `item_${i}`,\n timeStamp: emails[0].timeStamp,\n unReadEmailCount: emails.filter(item => item.unRead).length,\n emails,\n sentiment: emails[0].sentiment,\n isForwarded: i !== 2,\n isCollapsed: i !== 0,\n drafts: i === 1,\n undelivered: i === 0\n } as EmailConversationProps;\n }\n );\n\n const singleEmailConversation: EmailConversationProps[] = [\n {\n from: generateEmailConversationParticipants(emailsData, ['from'])[0],\n to: generateEmailConversationParticipants(emailsData, ['to']),\n id: 'item_0',\n timeStamp: new Date(emailsData[0].timeStamp),\n unReadEmailCount: emailsData.filter(item => item.unRead).length,\n emails: [{ ...emailsData[0], status: 'undelivered' }, { ...emailsData[1] }]\n }\n ];\n\n return (\n <>\n <EmailShell\n headerProps={{\n actions: (\n <Flex\n container={{\n alignItems: 'center',\n gap: 0\n }}\n >\n <Button variant='simple' icon>\n <Icon name='filter' />\n </Button>\n <MenuButton\n variant='simple'\n text='More actions'\n icon='more'\n iconOnly\n portal\n menu={{ items: actions }}\n />\n </Flex>\n ),\n subject: 'Pause service'\n }}\n autoCollapse={args.autoCollapse}\n conversations={args.singleConversation ? singleEmailConversation : emailConversations}\n />\n <>\n {Object.keys(composersData).map(guid => {\n return <EmailComposer key={guid} {...composersData[guid]} />;\n })}\n </>\n </>\n );\n};\n\nEmailShellDemo.args = {\n autoCollapse: true,\n hideSuggestions: false,\n singleConversation: true\n};\n\nEmailShellDemo.argTypes = {\n autoCollapse: { control: { type: 'boolean' } },\n hideSuggestions: { control: { type: 'boolean' } },\n singleConversation: { control: { type: 'boolean' } }\n};\n\n// _______ .__ __. .___________. __ .___________.____ ____ __ __ _______.___________.\n// | ____|| \\ | | | || | | |\\ \\ / / | | | | / | |\n// | |__ | \\| | `---| |----`| | `---| |----` \\ \\/ / | | | | | (----`---| |----`\n// | __| | . ` | | | | | | | \\_ _/ | | | | \\ \\ | |\n// | |____ | |\\ | | | | | | | | | | `----.| | .----) | | |\n// |_______||__| \\__| |__| |__| |__| |__| |_______||__| |_______/ |__|\n\ninterface EntityListDemoProps {\n enableContextMenu?: boolean;\n onContextMenu?: (e: MouseEvent) => void;\n}\n\nexport const EntityListDemo: Story<EntityListDemoProps> = (args: EntityListDemoProps) => {\n const itemCounter = useRef(3);\n const timeout = useRef<number | null>(null);\n const imperativeHandle: ContextMenuProps['handle'] = useRef(null);\n const headerProps: EntityListProps['header'] = {\n icon: 'list-number',\n text: 'Entities'\n };\n\n const handleRightClick = () => {\n itemCounter.current += 1;\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n timeout.current = window.setTimeout(() => {\n imperativeHandle.current?.setContextMenuItems(contextMenuItemsMock);\n }, 1000);\n };\n\n return (\n <EntityList\n header={headerProps}\n content={EntityListMockData}\n contextMenu={\n args.enableContextMenu\n ? {\n onItemClick: action('onItemClick'),\n onContextMenu: args.onContextMenu || handleRightClick,\n handle: imperativeHandle\n }\n : undefined\n }\n />\n );\n};\n\nEntityListDemo.args = {\n enableContextMenu: true\n};\n\nEntityListDemo.argTypes = {\n enableContextMenu: { control: { type: 'boolean' } }\n};\n\n// _______ .___ ___. ___ __ __ _______. __ __ .___ ___. .___ ___. ___ .______ ____ ____ __ .___________. _______ .___ ___.\n// | ____|| \\/ | / \\ | | | | / || | | | | \\/ | | \\/ | / \\ | _ \\ \\ \\ / / | | | || ____|| \\/ |\n// | |__ | \\ / | / ^ \\ | | | | | (----`| | | | | \\ / | | \\ / | / ^ \\ | |_) | \\ \\/ / | | `---| |----`| |__ | \\ / |\n// | __| | |\\/| | / /_\\ \\ | | | | \\ \\ | | | | | |\\/| | | |\\/| | / /_\\ \\ | / \\_ _/ | | | | | __| | |\\/| |\n// | |____ | | | | / _____ \\ | | | `----. .----) | | `--' | | | | | | | | | / _____ \\ | |\\ \\----. | | | | | | | |____ | | | |\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |_______/ \\______/ |__| |__| |__| |__| /__/ \\__\\ | _| `._____| |__| |__| |__| |_______||__| |__|\n\ninterface EmailSummaryItemDemoProps {\n unreadEmailCount?: number;\n isActive?: boolean;\n}\n\nexport const EmailSummaryItemDemo: Story<EmailSummaryItemDemoProps> = (\n args: EmailSummaryItemDemoProps\n) => {\n return (\n <EmailSummaryItem\n id={createUID()}\n activeParticipants={[\n {\n shortName: 'Robert',\n fullName: 'Robert Downer',\n emailAddress: 'robert.downey@example.com'\n },\n {\n shortName: 'Nathan',\n fullName: 'Nathan Swanson',\n emailAddress: 'nathan.swanson@example.com'\n }\n ]}\n message='I have a quick question on traveling to India. How do I reach Hyderabad?'\n timeStamp={new Date(Date.UTC(new Date().getUTCFullYear(), new Date().getUTCMonth(), 24))}\n topic='Missing Luggage'\n sentiment={sentiment}\n urgency={10}\n unreadEmailCount={args.unreadEmailCount}\n active={args.isActive}\n onSelect={(id: EmailSummaryItemProps['id']) => {\n action('onSelect')(id);\n }}\n />\n );\n};\n\nEmailSummaryItemDemo.args = {\n unreadEmailCount: 0,\n isActive: false\n};\n\nEmailSummaryItemDemo.argTypes = {\n unreadEmailCount: { control: { type: 'number' } },\n isActive: { control: { type: 'boolean' } }\n};\n\n// _______ .___ ___. ___ __ __ _______. __ __ .___ ___. .___ ___. ___ .______ ____ ____ __ __ _______.___________.\n// | ____|| \\/ | / \\ | | | | / || | | | | \\/ | | \\/ | / \\ | _ \\ \\ \\ / / | | | | / | |\n// | |__ | \\ / | / ^ \\ | | | | | (----`| | | | | \\ / | | \\ / | / ^ \\ | |_) | \\ \\/ / | | | | | (----`---| |----`\n// | __| | |\\/| | / /_\\ \\ | | | | \\ \\ | | | | | |\\/| | | |\\/| | / /_\\ \\ | / \\_ _/ | | | | \\ \\ | |\n// | |____ | | | | / _____ \\ | | | `----. .----) | | `--' | | | | | | | | | / _____ \\ | |\\ \\----. | | | `----.| | .----) | | |\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |_______/ \\______/ |__| |__| |__| |__| /__/ \\__\\ | _| `._____| |__| |_______||__| |_______/ |__|\n\ninterface EmailSummaryListStoryProps {\n onItemClick?: EmailSummaryListProps['onItemClick'];\n items?: EmailSummaryListProps['items'];\n onLoadMore?: EmailSummaryListProps['onLoadMore'];\n loading?: EmailSummaryListProps['loading'];\n}\n\nexport const EmailSummaryListDemo: Story<EmailSummaryListStoryProps> = (\n args: EmailSummaryListStoryProps\n) => {\n const INITIAL_CHUNK_SIZE = 9;\n const APPEND_CHUNK_SIZE = 1;\n\n const emailSummaryListRef = useRef(null);\n const [allEmailItems, setAllEmailItems] = useState(\n emailSummaryItems.slice(0, INITIAL_CHUNK_SIZE)\n );\n const [categories, setCategories] = useState<MenuProps['items']>(emailWorklistItemsMock);\n\n const handleItemClick = (id: string) => {\n const index = allEmailItems.findIndex(emailItem => {\n return emailItem.id === id;\n });\n\n const newEmailItems = [...allEmailItems];\n newEmailItems.splice(index, 1, { ...allEmailItems[index], unreadEmailCount: 0 });\n\n setAllEmailItems(newEmailItems);\n };\n\n const onCategoryClick: MenuItemProps['onClick'] = (id: MenuItemProps['id']) => {\n setCategories(cur => menuHelpers.toggleSelected(cur, id, 'single-select'));\n };\n\n const [loading, setLoading] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n\n const loadMore = useCallback(() => {\n if (!loading) {\n setLoading(true);\n\n setTimeout(() => {\n setLoading(false);\n setAllEmailItems(prevItems => {\n const previousItemsLength = prevItems.length;\n const newItems = emailSummaryItems.slice(\n previousItemsLength,\n previousItemsLength + APPEND_CHUNK_SIZE\n );\n\n if (newItems.length === 0) {\n setHasMore(false);\n }\n\n return [...prevItems, ...newItems];\n });\n }, 1500);\n }\n }, [loading]);\n\n return (\n <EmailSummaryList\n ref={emailSummaryListRef}\n unreadEmailCount={99}\n categories={categories}\n items={args.items || allEmailItems}\n onItemClick={args.onItemClick || handleItemClick}\n onCategoryClick={onCategoryClick}\n onLoadMore={args.onLoadMore || (hasMore ? loadMore : undefined)}\n loading={args.loading || loading}\n emptyMessage='No emails.'\n />\n );\n};\n\n// _______ .___ ___. ___ __ __ .___ ___. ___ .__ __. ___ _______ _______ .______\n// | ____|| \\/ | / \\ | | | | | \\/ | / \\ | \\ | | / \\ / _____|| ____|| _ \\\n// | |__ | \\ / | / ^ \\ | | | | | \\ / | / ^ \\ | \\| | / ^ \\ | | __ | |__ | |_) |\n// | __| | |\\/| | / /_\\ \\ | | | | | |\\/| | / /_\\ \\ | . ` | / /_\\ \\ | | |_ | | __| | /\n// | |____ | | | | / _____ \\ | | | `----. | | | | / _____ \\ | |\\ | / _____ \\ | |__| | | |____ | |\\ \\----.\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |__| |__| /__/ \\__\\ |__| \\__| /__/ \\__\\ \\______| |_______|| _| `._____|\n\ninterface EmailManagerAppShellProps {\n enableContextMenu?: boolean;\n onContextMenu?: (e: MouseEvent) => void;\n}\n\nexport const EmailManagerAppShell: Story<EmailManagerAppShellProps> = (\n args: EmailManagerAppShellProps\n) => {\n const INITIAL_CHUNK_SIZE = 9;\n const APPEND_CHUNK_SIZE = 1;\n\n const [activeItemId, setActiveItemId] = useState<string | undefined>();\n const [emailList, setEmailList] = useState(emailSummaryItems.slice(0, INITIAL_CHUNK_SIZE));\n const [loading, setLoading] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n\n const handleEmailItemClick = (id: EmailSummaryItemProps['id']) => {\n setActiveItemId(id);\n\n const index = emailList.findIndex(emailItem => {\n return emailItem.id === id;\n });\n\n const newEmailList = [...emailList];\n newEmailList.splice(index, 1, { ...emailList[index], unreadEmailCount: 0 });\n\n setEmailList(newEmailList);\n };\n\n const onLoadMore = useCallback(() => {\n if (!loading) {\n setLoading(true);\n\n setTimeout(() => {\n setLoading(false);\n setEmailList(prevItems => {\n const previousItemsLength = prevItems.length;\n const newItems = emailSummaryItems.slice(\n previousItemsLength,\n previousItemsLength + APPEND_CHUNK_SIZE\n );\n\n if (newItems.length === 0) {\n setHasMore(false);\n }\n\n return [...prevItems, ...newItems];\n });\n }, 1500);\n }\n }, [loading]);\n\n const activeItemIndex = useMemo(\n () => emailList.findIndex(emailItem => emailItem.id === activeItemId),\n [activeItemId, emailList]\n );\n\n const content =\n activeItemId === undefined ? (\n <EmptyState message='No item selected!' />\n ) : (\n <EmailShellDemo singleConversation={activeItemIndex % 2 !== 0} />\n );\n\n const utilities =\n activeItemId === undefined ? null : (\n // View analysis utility\n <Grid container={{ rowGap: 2 }}>\n <EntityListDemo\n onContextMenu={args.onContextMenu}\n enableContextMenu={args.enableContextMenu}\n />\n <Card>\n <CardHeader container={{ alignItems: 'center', gap: 1 }}>\n <Icon name='document-doc' />\n <Text variant='h3'>Email header</Text>\n </CardHeader>\n <CardContent>\n <FieldValueList fields={viewAnalysisEmailHeaderMock} variant='stacked' />\n </CardContent>\n </Card>\n <SummaryList\n name='Topics'\n icon='headline'\n items={topicListMock.map(items => ({\n ...items,\n primary: <StyledLabel>{items.primary}</StyledLabel>,\n secondary: (\n <Flex container={{ direction: 'row', justify: 'between' }}>\n <Text variant='primary'>{items.secondary.indicator}</Text>\n <StyledLabel>{items.secondary.value}</StyledLabel>\n </Flex>\n )\n }))}\n noItemsText='No items'\n />\n </Grid>\n );\n\n return (\n <AppShellDemo\n appHeader\n main={\n <EmailManager\n header={{\n icon: 'mail',\n title: 'Inbox'\n }}\n list={\n <EmailSummaryListDemo\n onItemClick={handleEmailItemClick}\n items={emailList}\n onLoadMore={hasMore ? onLoadMore : undefined}\n loading={loading}\n />\n }\n content={content}\n utilities={utilities}\n utilitiesSummaryItems={\n utilities\n ? [\n { iconName: 'list-number', count: 7 },\n { iconName: 'document-doc', count: 1 },\n { iconName: 'headline', count: 4 }\n ]\n : undefined\n }\n defaultCollapsedUtilities={!!utilities}\n />\n }\n />\n );\n};\n\nEmailManagerAppShell.args = {\n enableContextMenu: true\n};\n\nEmailManagerAppShell.argTypes = {\n enableContextMenu: { control: { type: 'boolean' } }\n};\nEmailManagerAppShell.parameters = {\n layout: 'fullscreen'\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Email.stories.jsx","sourceRoot":"","sources":["../../../src/social/Email/Email.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,MAAM,EACN,WAAW,EACX,SAAS,EACT,SAAS,EAIV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EACL,IAAI,EACJ,WAAW,EACX,SAAS,EACT,UAAU,EAGV,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,MAAM,EACN,WAAW,EACX,UAAU,EACV,IAAI,EACJ,WAAW,EACX,IAAI,EACJ,cAAc,EACd,WAAW,EACX,UAAU,EACV,KAAK,EACL,eAAe,EACf,eAAe,EACf,UAAU,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,UAAU,MAAM,+DAA+D,CAAC;AAC5F,OAAO,EACL,KAAK,IAAI,cAAc,EACvB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EAKV,YAAY,EAGb,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,aAAa,EACb,YAAY,EACZ,qCAAqC,EACrC,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,YAAY,CAAC,UAAU,CAAC,CAAC;AAEzB,eAAe;IACb,KAAK,EAAE,cAAc;IACrB,SAAS,EAAE,cAAc;CAClB,CAAC;AAeV,MAAM,CAAC,MAAM,KAAK,GAA0B,CAAC,IAAoB,EAAE,EAAE;IACnE,MAAM,qBAAqB,GAA+B,MAAM,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAE5C,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACvC,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;QAC3E,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CACH;MAAA,CAAC,sBAAsB,CACrB;QAAA,CAAC,cAAc,CACb,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAChB,SAAS,CAAC,kBAAkB,CAC5B,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAClC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAC7D,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAC/D,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CACpF,IAAI,CAAC,wqBAAwqB,CAC7qB,gBAAgB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CACxC,sBAAsB,CAAC,CACrB,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CACpE,CACD,OAAO,CAAC,sBAAsB,CAC9B,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAC5B,UAAU,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CACnC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAChC,iBAAiB,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CACxD,SAAS,CAAC,CAAC;YACT,OAAO,EAAE,SAAS;SACnB,CAAC,CACF,OAAO,CAAC,CAAC,YAAY,CAAC,CACtB,WAAW,CAAC,CAAC,oBAAoB,CAAC,CAClC,WAAW,CAAC,CACV,IAAI,CAAC,iBAAiB;YACpB,CAAC,CAAC;gBACE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;gBAClC,aAAa,EAAE,gBAAgB;gBAC/B,MAAM,EAAE,qBAAqB;aAC9B;YACH,CAAC,CAAC,SAAS,CACd,CACD,WAAW,CAAC,CAAC;YACX;gBACE,EAAE,EAAE,cAAc;gBAClB,KAAK,EAAE,qCAAqC;gBAC5C,WAAW,EAAE,iBAAiB;aAC/B;YACD;gBACE,EAAE,EAAE,cAAc;gBAClB,KAAK,EAAE,iDAAiD;gBACxD,WAAW,EAAE,UAAU;aACxB;SACF,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACjB,OAAO;gBACL,GAAG,UAAU;gBACb,UAAU,EAAE,MAAM,CAAC,wBAAwB,CAAC;gBAC5C,SAAS,EAAE,MAAM,CAAC,uBAAuB,CAAC;aAC3C,CAAC;QACJ,CAAC,CAAC,CAAC,EAEP;MAAA,EAAE,sBAAsB,CAC1B;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,KAAK,CAAC,IAAI,GAAG;IACX,wBAAwB,EAAE,KAAK;IAC/B,iBAAiB,EAAE,KAAK;IAExB,gBAAgB;CACjB,CAAC;AAEF,KAAK,CAAC,QAAQ,GAAG;IACf,wBAAwB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC1D,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IACnD,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;CAChD,CAAC;AASF,MAAM,CAAC,MAAM,QAAQ,GAAU,GAAG,EAAE;IAClC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAiC,KAAK,CAAC,CAAC;IAChG,MAAM,cAAc,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IAE9D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAE9B;QACA,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;QAC7B,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACjB,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,OAAO,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE;QAC5C,WAAW,EAAE;YACX,YAAY,EAAE,6BAA6B;SAC5C;QACD,YAAY,EAAE,OAAO;QACrB,kBAAkB,EAAE,EAAE;QACtB,WAAW,EAAE,gBAAgB;QAC7B,uBAAuB,EAAE,EAAE;KAC5B,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,CACrB,KAA6B,EAC7B,KAAqD,EACrD,EAAE;QACF,IAAI,KAAK,KAAK,aAAa,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,GAAG,IAAI;gBACP,uBAAuB,EAAE,KAAe;aACzC,CAAC,CAAC,CAAC;SACL;aAAM,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAChF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,GAAG,IAAI;gBACP,CAAC,KAAK,CAAC,EAAE,KAAK;aACf,CAAC,CAAC,CAAC;SACL;aAAM;YAEL,OAAO,CAAC,IAAI,CAAC,EAAE;gBACb,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;iBACrC,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;QACD,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE;YACjC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACb,OAAO;oBACL,GAAG,IAAI;oBACP,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;qBAC3B;oBACD,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,EAAE;qBACV;oBACD,GAAG,EAAE;wBACH,GAAG,IAAI,CAAC,GAAG;wBACX,KAAK,EAAE,EAAE;qBACV;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;YAC3C,OAAO,CAAC,IAAI,CAAC,EAAE;gBACb,OAAO;oBACL,GAAG,IAAI;oBACP,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,cAAc;qBACtB;oBACD,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,cAAc;qBACtB;oBACD,GAAG,EAAE;wBACH,GAAG,IAAI,CAAC,GAAG;wBACX,KAAK,EAAE,eAAe;qBACvB;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YAC1C,OAAO,CAAC,IAAI,CAAC,EAAE;gBACb,OAAO;oBACL,GAAG,IAAI;oBACP,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,EAAE;qBACV;oBACD,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,EAAE;qBACV;oBACD,GAAG,EAAE;wBACH,GAAG,IAAI,CAAC,GAAG;wBACX,KAAK,EAAE,EAAE;qBACV;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAExB,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAE,EAAE;QACtC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAErF,mBAAmB,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACxD,UAAU,CAAC,GAAG,EAAE;YACd,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC3B,cAAc,CAAC,OAAO,EAAE,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,CAAC,kBAAkB;YAAE,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE9B,MAAM,YAAY,GAAiC,GAAG,EAAE;QACtD,OAAO,CAAC,IAAI,CAAC,EAAE;YACb,OAAO;gBACL,GAAG,IAAI;gBACP,EAAE,EAAE;oBACF,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;oBAC3B,KAAK,EACH,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC;iBAC3F;gBACD,EAAE,EAAE;oBACF,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;oBAC3B,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;iBAC1E;gBACD,GAAG,EAAE;oBACH,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;oBAC5B,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;iBAC5E;gBACD,OAAO,EAAE;oBACP,GAAG,IAAI,CAAC,OAAO;oBACf,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;iBACvE;gBACD,WAAW,EAAE;oBACX,GAAG,IAAI,CAAC,WAAW;oBACnB,KAAK,EAAE,IAAI,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;iBAChF;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,YAAY,GAAuC,CAAC,KAAW,EAAE,EAAU,EAAE,EAAE;QACnF,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACzB,mBAAmB,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAEpD,eAAe,CAAC,KAAK,CAAC;aACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;YACrB,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YACtD,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,aAAa,CACZ,MAAM,CAAC,CAAC,cAAc,CAAC,CACvB,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAC3B,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAC1B,MAAM,CAAC,CAAC,YAAY,CAAC,CACrB,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAC9B,iBAAiB,CAAC,CAAC,mBAAmB,CAAC,CACvC,YAAY,CAAC,CAAC,YAAY,CAAC,CAC3B,QAAQ,CAAC,CAAC,cAAc,CAAC,CACzB,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,YAAY,CAAC,CAAC,YAAY,CAAC,EAC3B,CACH,CAAC;AACJ,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,YAAY,GAAU,GAAG,EAAE;IACtC,MAAM,QAAQ,GAAiB;QAC7B;YACE,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC;YACjC,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;YAC5D,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;YAC9D,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;YACnF,IAAI,EAAE,uHAAuH;YAC7H,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;YAC3B,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;YAC/B,iBAAiB,EAAE,MAAM,CAAC,4BAA4B,CAAC;YACvD,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,oBAAoB;SAClC;QACD;YACE,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC;YAC9B,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;YAC5D,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;YAC9D,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;YACtF,IAAI,EAAE,gIAAgI;YACtI,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;YAC3B,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;YAC/B,iBAAiB,EAAE,MAAM,CAAC,4BAA4B,CAAC;YACvD,OAAO,EAAE,YAAY;SACtB;KACF,CAAC;IAEF,OAAO,CACL,CAAC,iBAAiB,CAChB,YAAY,CAAC,CAAC,qCAAqC,CAAC,QAAQ,CAAC,CAAC,CAC9D,IAAI,CAAC,CAAC,qCAAqC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACnE,EAAE,CAAC,CAAC,qCAAqC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5D,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAChB,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CACjC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC9D,MAAM,CAAC,CAAC,QAAQ,CAAC,EACjB,CACH,CAAC;AACJ,CAAC,CAAC;AAeF,MAAM,CAAC,MAAM,cAAc,GAA+B,CAAC,IAAyB,EAAE,EAAE;IACtF,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,EAAE,IAAI;QACb,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;KACnC,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAE/C,EAAE,CAAC,CAAC;IACP,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAiB,EAAE,CAAC,CAAC;IAEjF,MAAM,wBAAwB,GAAG,CAAC,GAAW,EAAE,YAAoB,EAAE,EAAE;QACrE,IAAI,YAAY,KAAK,OAAO,EAAE;YAC5B,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,IAAI,CAAC,GAAG,CAAC;wBACZ,IAAI,EAAE;4BACJ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;4BACjB,EAAE,EAAE;gCACF,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;gCACpB,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;6BAC3B;4BACD,EAAE,EAAE;gCACF,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;gCACpB,KAAK,EAAE,EAAE;6BACV;4BACD,GAAG,EAAE;gCACH,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG;gCACrB,KAAK,EAAE,EAAE;6BACV;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,YAAY,KAAK,UAAU,EAAE;YACtC,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,IAAI,CAAC,GAAG,CAAC;wBACZ,IAAI,EAAE;4BACJ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;4BACjB,EAAE,EAAE;gCACF,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;gCACpB,KAAK,EAAE,cAAc;6BACtB;4BACD,EAAE,EAAE;gCACF,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;gCACpB,KAAK,EAAE,cAAc;6BACtB;4BACD,GAAG,EAAE;gCACH,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG;gCACrB,KAAK,EAAE,eAAe;6BACvB;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAAC,GAAW,EAAE,UAAkB,EAAE,EAAE;QACjE,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;QAC7F,gBAAgB,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO;gBACL,GAAG,IAAI;gBACP,CAAC,GAAG,CAAC,EAAE;oBACL,GAAG,IAAI,CAAC,GAAG,CAAC;oBACZ,QAAQ,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE;iBAC7C;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAGH,UAAU,CAAC,GAAG,EAAE;YACd,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,IAAI,CAAC,GAAG,CAAC;wBACZ,QAAQ,EAAE,KAAK;qBAChB;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,WAAW,GAA0C,EAAE,CAAC;YAC5D,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,WAAW,GAAG,IAAI,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,IAAI,WAAW,EAAE;gBAEb,WAAW,CAAC,GAAG,CAAC,EAAE,MACnB,EAAE,OAAO,EAAE,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;aACjE;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CACnB,GAAW,EACX,KAA6B,EAC7B,KAAqD,EACrD,EAAE;QACF,gBAAgB,CAAC,QAAQ,CAAC,EAAE;YAC1B,IAAI,KAAK,KAAK,aAAa,EAAE;gBAC3B,OAAO;oBACL,GAAG,QAAQ;oBACX,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,QAAQ,CAAC,GAAG,CAAC;wBAChB,uBAAuB,EAAE,KAAe;qBACzC;iBACF,CAAC;aACH;YACD,OAAO;gBACL,GAAG,QAAQ;gBACX,CAAC,GAAG,CAAC,EAAE;oBACL,GAAG,QAAQ,CAAC,GAAG,CAAC;oBAChB,IAAI,EAAE;wBACJ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI;wBACrB,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAC5E,CAAC,CAAC,KAAK;4BACP,CAAC,CAAC;gCACE,KAAK,EAAE,SAAS;gCAChB,KAAK;6BACN;qBACN;iBACF;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,KAAK,cAAc,EAAE;YAC5B,wBAAwB,CAAC,GAAG,EAAE,KAAe,CAAC,CAAC;SAChD;aAAM,IAAI,KAAK,KAAK,oBAAoB,EAAE;YACzC,sBAAsB,CAAC,GAAG,EAAE,KAAe,CAAC,CAAC;SAC9C;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAA6C,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;QAC1E,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;QAEtC,OAAO,CACL,CAAC,KAAK,CACJ,OAAO,CAAC,0BAA0B,CAClC,OAAO,CAAC,CACN,EACE;YAAA,CAAC,IAAI,CACH;cAAA,CAAC,MAAM,CACL,OAAO,CAAC,CAAC,GAAG,EAAE;oBACZ,OAAO,EAAE,CAAC;oBACV,gBAAgB,CAAC,IAAI,CAAC,EAAE;wBACtB,OAAO;4BACL,GAAG,IAAI;4BACP,CAAC,SAAS,CAAC,EAAE;gCACX,GAAG,IAAI,CAAC,SAAS,CAAC;gCAClB,QAAQ,EAAE,IAAI;6BACf;yBACF,CAAC;oBACJ,CAAC,CAAC,CAAC;oBACH,UAAU,CAAC,GAAG,EAAE;wBACd,gBAAgB,CAAC,IAAI,CAAC,EAAE;4BACtB,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;4BACrC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;4BACnC,OAAO,gBAAgB,CAAC;wBAC1B,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;oBACnC,CAAC,EAAE,IAAI,CAAC,CAAC;gBACX,CAAC,CAAC,CAEF;;cACF,EAAE,MAAM,CAER;;cAAA,CAAC,MAAM,CACL,OAAO,CAAC,CAAC,GAAG,EAAE;oBACZ,OAAO,EAAE,CAAC;oBACV,gBAAgB,CAAC,IAAI,CAAC,EAAE;wBACtB,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;wBACrC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;wBACnC,OAAO,gBAAgB,CAAC;oBAC1B,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAEF;;cACF,EAAE,MAAM,CACV;YAAA,EAAE,IAAI,CACN;YAAA,CAAC,MAAM,CACL,OAAO,CAAC,SAAS,CACjB,OAAO,CAAC,CAAC,GAAG,EAAE;oBACZ,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAEF;;YACF,EAAE,MAAM,CACV;UAAA,GAAG,CACJ,CACD,MAAM,CAEN;QAAA,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CACrB;;QACF,EAAE,IAAI,CACR;MAAA,EAAE,KAAK,CAAC,CACT,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;QACnC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;QACjC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,gBAAgB,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO;gBACL,GAAG,IAAI;gBACP,CAAC,GAAG,CAAC,EAAE;oBACL,GAAG,IAAI,CAAC,GAAG,CAAC;oBACZ,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,EAAE;YACd,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;gBACrC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAC7B,OAAO,gBAAgB,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QAClC,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;QACjC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,gBAAgB,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO;gBACL,GAAG,IAAI;gBACP,CAAC,GAAG,CAAC,EAAE;oBACL,GAAG,IAAI,CAAC,GAAG,CAAC;oBACZ,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,EAAE;YACd,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;gBACrC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAC7B,OAAO,gBAAgB,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;QACnC,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,CAC/B,EAAoB,EACpB,YAA0B,EAC1B,aAAiC,EACjC,EAAE;QACF,MAAM,GAAG,GAAG,cAAc,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAC7C,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;YAErB,aAAa,CAAC,GAAG,CAAC,CAAC,MAA8C,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;SACzF;aAAM;YAEL,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,MAAM,cAAc,GAAG,SAAS,EAA4B,CAAC;gBAC7D,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,aAAa;wBAChB,uBAAuB,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY;wBACpE,MAAM,EAAE,cAAc;wBACtB,QAAQ,EAAE,CACR,KAA6B,EAC7B,KAAqD,EACrD,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;wBACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC;wBACjC,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;wBAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;qBAC9B;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAiB;QAC/B;YACE,EAAE,EAAE,OAAO;YACX,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;YACrB,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,EAAE,4HAA4H;YAClI,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB;YACpE,WAAW,EAAE;gBACX;oBACE,EAAE,EAAE,UAAU;oBACd,KAAK,EAAE,qCAAqC;oBAC5C,WAAW,EAAE,iBAAiB;iBAC/B;gBACD;oBACE,EAAE,EAAE,UAAU;oBACd,KAAK,EAAE,iDAAiD;oBACxD,WAAW,EAAE,UAAU;iBACxB;aACF,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACjB,OAAO;oBACL,GAAG,UAAU;oBACb,UAAU,EAAE,MAAM,CAAC,wBAAwB,CAAC;oBAC5C,SAAS,EAAE,MAAM,CAAC,uBAAuB,CAAC;iBAC3C,CAAC;YACJ,CAAC,CAAC;SACH;QACD;YACE,EAAE,EAAE,OAAO;YACX,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;YACrB,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,eAAe;SACzB;KACF,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAChB,MAAM,gBAAgB,GAAG,gBAAgB,CACvC,SAAS,CAAC,EAAE,EACZ,SAAS,CAAC,OAAO,EACjB,wBAAwB,EACxB,KAAK,EACL,SAAS,CAAC,IAAI,CACf,CAAC;QACF,OAAO;YACL,GAAG,SAAS;YACZ,OAAO,EAAE,CAAC,EAAoB,EAAE,EAAE;gBAChC,wBAAwB,CAAC,EAAE,EAAE,YAAY,CAAC,KAAK,EAAE;oBAC/C,GAAG,iBAAiB;oBACpB,IAAI,EAAE;wBACJ,GAAG,iBAAiB,CAAC,IAAI;wBACzB,YAAY,EAAE,OAAO;wBACrB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;qBACpD;oBACD,iBAAiB,EAAE,mBAAmB;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,SAAS,EAAE,EAAE,CAAC,EAAE;gBACd,wBAAwB,CAAC,EAAE,EAAE,YAAY,CAAC,OAAO,EAAE;oBACjD,GAAG,iBAAiB;oBACpB,IAAI,EAAE;wBACJ,GAAG,iBAAiB,CAAC,IAAI;wBACzB,YAAY,EAAE,SAAS;wBACvB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;qBACpD;oBACD,iBAAiB,EAAE,mBAAmB;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,iBAAiB,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE;gBACtC,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;gBACjF,wBAAwB,CAAC,EAAE,EAAE,YAAY,CAAC,UAAU,EAAE;oBACpD,GAAG,iBAAiB;oBACpB,IAAI,EAAE;wBACJ,GAAG,iBAAiB,CAAC,IAAI;wBACzB,YAAY,EAAE,OAAO;wBACrB,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,EAAE;wBAC3C,WAAW,EAAE,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBACnE,kBAAkB,EAAE,UAAU,EAAE,EAAE;qBACnC;oBACD,iBAAiB,EAAE,mBAAmB;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,IAAI,CAAC,eAAe;gBACxB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,KAAK,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;oBAC1C,KAAK,EAAE,0BAA0B;oBACjC,QAAQ,EAAE,MAAM,CAAC,mCAAmC,CAAC;oBACrD,WAAW,EAAE,IAAI;iBAClB;SACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,CAAC,EAAoB,EAAE,EAAE;QAC3C,qBAAqB,CAAC,IAAI,CAAC,EAAE;YAC3B,MAAM,oBAAoB,GAAmB,EAAE,CAAC;YAEhD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACjB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAE,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,OAAO,oBAAoB,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,qBAAqB,CAAC;YACpB,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;YACnE;gBACE;oBACE,GAAG,UAAU,CAAC,CAAC,CAAC;oBAChB,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,OAAO;oBACf,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,gBAAgB,CACvB,OAAO,EACP,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EACrB,wBAAwB,EACxB,IAAI,EACJ,gJAAgJ,EAChJ,WAAW,CACZ;oBACD,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC;oBACjC,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;oBACnC,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;oBAC9D,IAAI,EAAE,gJAAgJ;iBACvJ;gBACD;oBACE,GAAG,UAAU,CAAC,CAAC,CAAC;oBAChB,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,gBAAgB,CACvB,OAAO,EACP,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EACrB,wBAAwB,EACxB,IAAI,EACJ,sHAAsH,EACtH,WAAW,CACZ;oBACD,MAAM,EAAE,KAAK;oBACb,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC;oBAC/B,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;oBACjC,IAAI,EAAE,sHAAsH;iBAC7H;aACF;YACD;gBACE;oBACE,GAAG,UAAU,CAAC,CAAC,CAAC;oBAChB,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC;oBACjC,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAC9B,IAAI,EAAE,+HAA+H;oBACrI,SAAS,EAAE;wBACT,OAAO,EAAE,UAAU;qBACpB;iBACF;gBACD;oBACE,GAAG,UAAU,CAAC,CAAC,CAAC;oBAChB,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC;oBAC9B,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;oBACjC,IAAI,EAAE,oIAAoI;iBAC3I;aACF;SACF,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,kBAAkB,GAA8B,kBAAqC,CAAC,GAAG,CAC7F,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACZ,OAAO;YACL,IAAI,EAAE,qCAAqC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YAChB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAC9B,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM;YAC3D,MAAM;YACN,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAC9B,WAAW,EAAE,CAAC,KAAK,CAAC;YACpB,WAAW,EAAE,CAAC,KAAK,CAAC;YACpB,MAAM,EAAE,CAAC,KAAK,CAAC;YACf,WAAW,EAAE,CAAC,KAAK,CAAC;SACK,CAAC;IAC9B,CAAC,CACF,CAAC;IAEF,MAAM,uBAAuB,GAA6B;QACxD;YACE,IAAI,EAAE,qCAAqC,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,EAAE,EAAE,qCAAqC,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;YAC7D,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5C,gBAAgB,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM;YAC/D,MAAM,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E;KACF,CAAC;IAEF,OAAO,CACL,EACE;MAAA,CAAC,UAAU,CACT,WAAW,CAAC,CAAC;YACX,OAAO,EAAE,CACP,CAAC,IAAI,CACH,SAAS,CAAC,CAAC;oBACT,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,CAAC;iBACP,CAAC,CAEF;cAAA,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC3B;gBAAA,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EACrB;cAAA,EAAE,MAAM,CACR;cAAA,CAAC,UAAU,CACT,OAAO,CAAC,QAAQ,CAChB,IAAI,CAAC,cAAc,CACnB,IAAI,CAAC,MAAM,CACX,QAAQ,CACR,MAAM,CACN,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAE7B;YAAA,EAAE,IAAI,CAAC,CACR;YACD,OAAO,EAAE,eAAe;SACzB,CAAC,CACF,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAChC,aAAa,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAExF;MAAA,EACE;QAAA,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACrC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,EAAG,CAAC;QAC/D,CAAC,CAAC,CACJ;MAAA,GACF;IAAA,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,cAAc,CAAC,IAAI,GAAG;IACpB,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,kBAAkB,EAAE,IAAI;CACzB,CAAC;AAEF,cAAc,CAAC,QAAQ,GAAG;IACxB,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC9C,eAAe,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IACjD,kBAAkB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;CACrD,CAAC;AAcF,MAAM,CAAC,MAAM,cAAc,GAA+B,CAAC,IAAyB,EAAE,EAAE;IACtF,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAA+B,MAAM,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,WAAW,GAA8B;QAC7C,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,UAAU;KACjB,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,WAAW,CAAC,OAAO,IAAI,CAAC,CAAC;QACzB,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACvC,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;QACtE,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,UAAU,CACT,MAAM,CAAC,CAAC,WAAW,CAAC,CACpB,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAC5B,WAAW,CAAC,CACV,IAAI,CAAC,iBAAiB;YACpB,CAAC,CAAC;gBACE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;gBAClC,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,gBAAgB;gBACrD,MAAM,EAAE,gBAAgB;aACzB;YACH,CAAC,CAAC,SAAS,CACd,EACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,cAAc,CAAC,IAAI,GAAG;IACpB,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF,cAAc,CAAC,QAAQ,GAAG;IACxB,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;CACpD,CAAC;AAcF,MAAM,CAAC,MAAM,oBAAoB,GAAqC,CACpE,IAA+B,EAC/B,EAAE;IACF,OAAO,CACL,CAAC,gBAAgB,CACf,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAChB,kBAAkB,CAAC,CAAC;YAClB;gBACE,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,eAAe;gBACzB,YAAY,EAAE,2BAA2B;aAC1C;YACD;gBACE,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,gBAAgB;gBAC1B,YAAY,EAAE,4BAA4B;aAC3C;SACF,CAAC,CACF,OAAO,CAAC,0EAA0E,CAClF,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CACzF,KAAK,CAAC,iBAAiB,CACvB,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,OAAO,CAAC,CAAC,EAAE,CAAC,CACZ,gBAAgB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CACxC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CACtB,QAAQ,CAAC,CAAC,CAAC,EAA+B,EAAE,EAAE;YAC5C,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,EACF,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,oBAAoB,CAAC,IAAI,GAAG;IAC1B,gBAAgB,EAAE,CAAC;IACnB,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,oBAAoB,CAAC,QAAQ,GAAG;IAC9B,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IACjD,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;CAC3C,CAAC;AAgBF,MAAM,CAAC,MAAM,oBAAoB,GAAsC,CACrE,IAAgC,EAChC,EAAE;IACF,MAAM,kBAAkB,GAAG,CAAC,CAAC;IAC7B,MAAM,iBAAiB,GAAG,CAAC,CAAC;IAE5B,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAChD,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAC/C,CAAC;IACF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAqB,sBAAsB,CAAC,CAAC;IAEzF,MAAM,eAAe,GAAG,CAAC,EAAU,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAChD,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;QACzC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC;QAEjF,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,eAAe,GAA6B,CAAC,EAAuB,EAAE,EAAE;QAC5E,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC;IAEF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,OAAO,EAAE;YACZ,UAAU,CAAC,IAAI,CAAC,CAAC;YAEjB,UAAU,CAAC,GAAG,EAAE;gBACd,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClB,gBAAgB,CAAC,SAAS,CAAC,EAAE;oBAC3B,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC;oBAC7C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CACtC,mBAAmB,EACnB,mBAAmB,GAAG,iBAAiB,CACxC,CAAC;oBAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;wBACzB,UAAU,CAAC,KAAK,CAAC,CAAC;qBACnB;oBAED,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;SACV;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,CAAC,gBAAgB,CACf,GAAG,CAAC,CAAC,mBAAmB,CAAC,CACzB,gBAAgB,CAAC,CAAC,EAAE,CAAC,CACrB,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC,CACnC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,eAAe,CAAC,CACjD,eAAe,CAAC,CAAC,eAAe,CAAC,CACjC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAChE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,CACjC,YAAY,CAAC,YAAY,EACzB,CACH,CAAC;AACJ,CAAC,CAAC;AAcF,MAAM,CAAC,MAAM,oBAAoB,GAAqC,CACpE,IAA+B,EAC/B,EAAE;IACF,MAAM,kBAAkB,GAAG,CAAC,CAAC;IAC7B,MAAM,iBAAiB,GAAG,CAAC,CAAC;IAE5B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,EAAsB,CAAC;IACvE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC3F,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,oBAAoB,GAAG,CAAC,EAA+B,EAAE,EAAE;QAC/D,eAAe,CAAC,EAAE,CAAC,CAAC;QAEpB,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAC5C,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;QACpC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC;QAE5E,YAAY,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,IAAI,CAAC,OAAO,EAAE;YACZ,UAAU,CAAC,IAAI,CAAC,CAAC;YAEjB,UAAU,CAAC,GAAG,EAAE;gBACd,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClB,YAAY,CAAC,SAAS,CAAC,EAAE;oBACvB,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC;oBAC7C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CACtC,mBAAmB,EACnB,mBAAmB,GAAG,iBAAiB,CACxC,CAAC;oBAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;wBACzB,UAAU,CAAC,KAAK,CAAC,CAAC;qBACnB;oBAED,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;SACV;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,YAAY,CAAC,EACrE,CAAC,YAAY,EAAE,SAAS,CAAC,CAC1B,CAAC;IAEF,MAAM,OAAO,GACX,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAC3B,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,EAAG,CAC3C,CAAC,CAAC,CAAC,CACF,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC,CAAC,EAAG,CAClE,CAAC;IAEJ,MAAM,SAAS,GACb,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAElC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAC7B;QAAA,CAAC,cAAc,CACb,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAClC,iBAAiB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAE5C;QAAA,CAAC,IAAI,CACH;UAAA,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CACtD;YAAA,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EACzB;YAAA,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CACvC;UAAA,EAAE,UAAU,CACZ;UAAA,CAAC,WAAW,CACV;YAAA,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,SAAS,EACxE;UAAA,EAAE,WAAW,CACf;QAAA,EAAE,IAAI,CACN;QAAA,CAAC,WAAW,CACV,IAAI,CAAC,QAAQ,CACb,IAAI,CAAC,UAAU,CACf,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjC,GAAG,KAAK;YACR,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;YACnD,SAAS,EAAE,CACT,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CACxD;gBAAA,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI,CACzD;gBAAA,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,WAAW,CACnD;cAAA,EAAE,IAAI,CAAC,CACR;SACF,CAAC,CAAC,CAAC,CACJ,WAAW,CAAC,UAAU,EAE1B;MAAA,EAAE,IAAI,CAAC,CACR,CAAC;IAEJ,OAAO,CACL,CAAC,YAAY,CACX,SAAS,CACT,IAAI,CAAC,CACH,CAAC,YAAY,CACX,MAAM,CAAC,CAAC;gBACN,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf,CAAC,CACF,IAAI,CAAC,CACH,CAAC,oBAAoB,CACnB,WAAW,CAAC,CAAC,oBAAoB,CAAC,CAClC,KAAK,CAAC,CAAC,SAAS,CAAC,CACjB,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAC7C,OAAO,CAAC,CAAC,OAAO,CAAC,EACjB,CACH,CACD,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,qBAAqB,CAAC,CACpB,SAAS;gBACP,CAAC,CAAC;oBACE,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;oBACrC,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE;oBACtC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;iBACnC;gBACH,CAAC,CAAC,SAAS,CACd,CACD,yBAAyB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EACvC,CACH,EACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,oBAAoB,CAAC,IAAI,GAAG;IAC1B,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF,oBAAoB,CAAC,QAAQ,GAAG;IAC9B,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;CACpD,CAAC;AACF,oBAAoB,CAAC,UAAU,GAAG;IAChC,MAAM,EAAE,YAAY;CACrB,CAAC","sourcesContent":["// cSpell:words calibri Trichy Nagercoil\nimport {\n useState,\n useRef,\n useCallback,\n useEffect,\n createRef,\n RefObject,\n MouseEvent,\n FunctionComponent\n} from 'react';\nimport { action } from '@storybook/addon-actions';\nimport { Meta, Story } from '@storybook/react';\nimport { useMemo } from '@storybook/addons';\n\nimport {\n Card,\n CardContent,\n createUID,\n MenuButton,\n MenuItemProps,\n MenuProps,\n Icon,\n registerIcon,\n Flex,\n Button,\n menuHelpers,\n CardHeader,\n Text,\n SummaryList,\n Grid,\n FieldValueList,\n StyledLabel,\n EmptyState,\n Modal,\n useModalManager,\n useModalContext,\n useToaster\n} from '@pega/cosmos-react-core';\nimport * as filterIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/filter.icon';\nimport {\n Email as EmailComponent,\n EmailConversation,\n EmailComposer,\n EmailShell,\n EmailSummaryItem,\n EmailSummaryList,\n EntityList,\n EmailProps,\n EmailConversationProps,\n EmailComposerProps,\n EntityListProps,\n EmailManager,\n EmailSummaryListProps,\n EmailSummaryItemProps\n} from '@pega/cosmos-react-social';\nimport {\n EmailComposerFieldType,\n EmailComposerValueType,\n EmailComposerHandleValue,\n ContextMenuProps\n} from '@pega/cosmos-react-social/lib/components/Email/Email.types';\n\nimport { AppShellDemo } from '../../core/AppShell/AppShell.stories';\n\nimport {\n bccParticipants,\n ccParticipants,\n emailBodyContent,\n participants,\n toParticipants,\n emailAttachments,\n EntityListMockData,\n viewAnalysisEmailHeaderMock,\n topicListMock,\n emailActions,\n generateEmailConversationParticipants,\n templates,\n handleExternalEntry,\n emailDemoActions,\n LaunchAction,\n baseComposerProps,\n sentiment,\n emailSummaryItems,\n mockEmails,\n mockSuggestedReplies,\n mockEmailBodyTemplates,\n forwardedContent,\n getCompositeId,\n emptyFieldErrorMessage,\n fieldValidation,\n emailWorklistItemsMock,\n contextMenuItemsMock,\n highlightedEntitiesMock,\n mockUploadImage\n} from './Email.mocks';\nimport { StyledEmailCardContent } from './Email.styles';\n\nregisterIcon(filterIcon);\n\nexport default {\n title: 'Social/Email',\n component: EmailComponent\n} as Meta;\n\n// _______ .___ ___. ___ __ __\n// | ____|| \\/ | / \\ | | | |\n// | |__ | \\ / | / ^ \\ | | | |\n// | __| | |\\/| | / /_\\ \\ | | | |\n// | |____ | | | | / _____ \\ | | | `----.\n// |_______||__| |__| /__/ \\__\\ |__| |_______|\n\ninterface EmailDemoProps {\n enableEntityHighlighting?: boolean;\n enableContextMenu?: boolean;\n forwardedContent?: string;\n}\n\nexport const Email: Story<EmailDemoProps> = (args: EmailDemoProps) => {\n const emailImperativeHandle: ContextMenuProps['handle'] = useRef(null);\n const timeout = useRef<number | null>(null);\n\n const handleRightClick = () => {\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n timeout.current = window.setTimeout(() => {\n emailImperativeHandle.current?.setContextMenuItems(contextMenuItemsMock);\n }, 1000);\n };\n\n return (\n <Card>\n <StyledEmailCardContent>\n <EmailComponent\n id={createUID()}\n timeStamp='2021-01-05T09:12'\n from={mockEmails['Laura Stevens']}\n cc={[mockEmails['Adam Gillchrist'], mockEmails['John Paul']]}\n bcc={[mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']]}\n to={[mockEmails['Sara Davis'], mockEmails['John Brown'], mockEmails['Joe Stevens']]}\n body='<div>Hi,<br/><p>I am one of the customer of Indian Overseas Bank, <b><i>Nagercoil</i></b> branch, with code <b><a href=\"www.google.com\"><i>3967</i></a></b>. I have a saving bank account here. My account number is <i>6785420965476</i>.</p><br/><p>I have been given a debit cum ATM card from this bank and the same has been lost when I was traveling from Nagercoil to Trichy by Bus on Jan 04, 2021. I remember that my ATM card number was 1920 6746 8653 1256.</p><br/>I hereby request you to block my debit card immediately to prevent misuse of the same by some others. Also I request you to give me an new debit card as early as possible.<br/><br/>Regards,<br/>Laura Stevens</div>'\n forwardedContent={args.forwardedContent}\n entityHighlightMapping={\n args.enableEntityHighlighting ? highlightedEntitiesMock : undefined\n }\n subject='I lost my debit card'\n onReply={action('On reply')}\n onReplyAll={action('On reply all')}\n onForward={action('On forward')}\n onSuggestionClick={action('On Suggested reply clicked')}\n sentiment={{\n variant: 'neutral'\n }}\n actions={emailActions}\n suggestions={mockSuggestedReplies}\n contextMenu={\n args.enableContextMenu\n ? {\n onItemClick: action('onItemClick'),\n onContextMenu: handleRightClick,\n handle: emailImperativeHandle\n }\n : undefined\n }\n attachments={[\n {\n id: 'attachment_0',\n value: 'https://pega.com/media/document.doc',\n displayText: 'Policy document'\n },\n {\n id: 'attachment_1',\n value: 'https://pbs.twimg.com/media/ENNN5PAXkAE-hag.jpg',\n displayText: 'E-Ticket'\n }\n ].map(attachment => {\n return {\n ...attachment,\n onDownload: action('On attachment download'),\n onPreview: action('On attachment preview')\n };\n })}\n />\n </StyledEmailCardContent>\n </Card>\n );\n};\n\nEmail.args = {\n enableEntityHighlighting: false,\n enableContextMenu: false,\n // eslint-disable-next-line demo-patterns/literal-args\n forwardedContent\n};\n\nEmail.argTypes = {\n enableEntityHighlighting: { control: { type: 'boolean' } },\n enableContextMenu: { control: { type: 'boolean' } },\n forwardedContent: { control: { type: 'text' } }\n};\n\n// ______ ______ .___ ___. .______ ______ _______. _______ .______\n// / | / __ \\ | \\/ | | _ \\ / __ \\ / || ____|| _ \\\n// | ,----'| | | | | \\ / | | |_) | | | | | | (----`| |__ | |_) |\n// | | | | | | | |\\/| | | ___/ | | | | \\ \\ | __| | /\n// | `----.| `--' | | | | | | | | `--' | .----) | | |____ | |\\ \\----.\n// \\______| \\______/ |__| |__| | _| \\______/ |_______/ |_______|| _| `._____|\n\nexport const Composer: Story = () => {\n const [composerProgress, setComposerProgress] = useState<EmailComposerProps['progress']>(false);\n const composerHandle = useRef<EmailComposerHandleValue>(null);\n\n const [data, setData] = useState<\n EmailComposerProps['data'] & { bodyContentCurrentValue: string }\n >({\n to: { value: toParticipants },\n cc: { value: [] },\n bcc: { value: [] },\n subject: { value: 'Request: Pause service' },\n bodyContent: {\n defaultValue: 'Hi, Hope you are doing well'\n },\n responseType: 'reply',\n selectedTemplateId: '',\n attachments: emailAttachments,\n bodyContentCurrentValue: ''\n });\n\n const handleOnChange = (\n field: EmailComposerFieldType,\n value: EmailComposerValueType<EmailComposerFieldType>\n ) => {\n if (field === 'bodyContent') {\n setData(prev => ({\n ...prev,\n bodyContentCurrentValue: value as string\n }));\n } else if (['responseType', 'attachments', 'selectedTemplateId'].includes(field)) {\n setData(prev => ({\n ...prev,\n [field]: value\n }));\n } else {\n // Clearing error message as soon as value changes\n setData(prev => {\n return {\n ...prev,\n [field]: { error: undefined, value }\n };\n });\n }\n action('onChange')(field, value);\n };\n\n useEffect(() => {\n if (data.responseType === 'reply') {\n setData(prev => {\n return {\n ...prev,\n to: {\n ...prev.to,\n value: [toParticipants[0]]\n },\n cc: {\n ...prev.cc,\n value: []\n },\n bcc: {\n ...prev.bcc,\n value: []\n }\n };\n });\n } else if (data.responseType === 'replyAll') {\n setData(prev => {\n return {\n ...prev,\n to: {\n ...prev.to,\n value: toParticipants\n },\n cc: {\n ...prev.cc,\n value: ccParticipants\n },\n bcc: {\n ...prev.bcc,\n value: bccParticipants\n }\n };\n });\n } else if (data.responseType === 'forward') {\n setData(prev => {\n return {\n ...prev,\n to: {\n ...prev.to,\n value: []\n },\n cc: {\n ...prev.cc,\n value: []\n },\n bcc: {\n ...prev.bcc,\n value: []\n }\n };\n });\n }\n }, [data.responseType]);\n\n const onTemplateChange = (id: string) => {\n const selectedTemplate = mockEmailBodyTemplates.find(template => template.id === id);\n // Simulating api call\n setComposerProgress({ message: 'Loading template...' });\n setTimeout(() => {\n setComposerProgress(false);\n composerHandle.current?.replaceBodyContent(selectedTemplate?.content || '');\n }, 1000);\n };\n\n useEffect(() => {\n if (data.selectedTemplateId) onTemplateChange(data.selectedTemplateId);\n }, [data.selectedTemplateId]);\n\n const handleOnSend: EmailComposerProps['onSend'] = () => {\n setData(prev => {\n return {\n ...prev,\n to: {\n value: prev.to?.value || [],\n error:\n data?.to?.value.length === 0 ? emptyFieldErrorMessage : fieldValidation(data?.to?.value)\n },\n cc: {\n value: prev.cc?.value || [],\n error: data.cc === undefined ? undefined : fieldValidation(data.cc.value)\n },\n bcc: {\n value: prev.bcc?.value || [],\n error: data.bcc === undefined ? undefined : fieldValidation(data.bcc.value)\n },\n subject: {\n ...prev.subject,\n error: data.subject?.value === '' ? emptyFieldErrorMessage : undefined\n },\n bodyContent: {\n ...prev.bodyContent,\n error: data.bodyContentCurrentValue === '' ? emptyFieldErrorMessage : undefined\n }\n };\n });\n };\n\n const onImageAdded: EmailComposerProps['onImageAdded'] = (image: File, id: string) => {\n action('On Image added');\n setComposerProgress({ message: 'Uploading image' });\n // Simulate image upload\n mockUploadImage(image)\n .then(({ src, alt }) => {\n composerHandle.current?.updateImage({ src, alt }, id);\n setComposerProgress(false);\n })\n .catch(() => {\n setComposerProgress(false);\n });\n };\n\n return (\n <EmailComposer\n handle={composerHandle}\n progress={composerProgress}\n onSave={action('On save')}\n onSend={handleOnSend}\n onCancel={action('On cancel')}\n externalValidator={handleExternalEntry}\n participants={participants}\n onChange={handleOnChange}\n data={data}\n templates={templates}\n onImageAdded={onImageAdded}\n />\n );\n};\n\n// ______ ______ .__ __. ____ ____ _______ .______ _______. ___ .___________. __ ______ .__ __.\n// / | / __ \\ | \\ | | \\ \\ / / | ____|| _ \\ / | / \\ | || | / __ \\ | \\ | |\n// | ,----'| | | | | \\| | \\ \\/ / | |__ | |_) | | (----` / ^ \\ `---| |----`| | | | | | | \\| |\n// | | | | | | | . ` | \\ / | __| | / \\ \\ / /_\\ \\ | | | | | | | | | . ` |\n// | `----.| `--' | | |\\ | \\ / | |____ | |\\ \\----.----) | / _____ \\ | | | | | `--' | | |\\ |\n// \\______| \\______/ |__| \\__| \\__/ |_______|| _| `._____|_______/ /__/ \\__\\ |__| |__| \\______/ |__| \\__|\n\nexport const Conversation: Story = () => {\n const emailArr: EmailProps[] = [\n {\n id: 'item_0',\n timeStamp: '2021-01-05T09:12',\n from: mockEmails['Laura Stevens'],\n cc: [mockEmails['Adam Gillchrist'], mockEmails['John Paul']],\n bcc: [mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']],\n to: [mockEmails['Sara Davis'], mockEmails['John Brown'], mockEmails['Joe Stevens']],\n body: '<div> Hi, <br /> <br /> <div>Sure.. Here is your E-Ticket !! </div> <br /><br /> Regards, <br /> Laura Stevens </div>',\n unRead: true,\n onReply: action('On reply'),\n onForward: action('On forward'),\n onSuggestionClick: action('On Suggested reply clicked'),\n actions: emailActions,\n suggestions: mockSuggestedReplies\n },\n {\n id: 'item_1',\n timeStamp: '2021-01-02T03:12',\n from: mockEmails['Sara Davis'],\n cc: [mockEmails['Adam Gillchrist'], mockEmails['John Paul']],\n bcc: [mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']],\n to: [mockEmails['Laura Stevens'], mockEmails['John Brown'], mockEmails['Joe Stevens']],\n body: '<div> Hi, <br /> <br /> <div>I’m still at the airport, I need help now!! </div> <br /><br /> Regards, <br /> Sara Davis </div>',\n onReply: action('On reply'),\n onForward: action('On forward'),\n onSuggestionClick: action('On Suggested reply clicked'),\n actions: emailActions\n }\n ];\n\n return (\n <EmailConversation\n participants={generateEmailConversationParticipants(emailArr)}\n from={generateEmailConversationParticipants(emailArr, ['from'])[0]}\n to={generateEmailConversationParticipants(emailArr, ['to'])}\n id={createUID()}\n timeStamp={emailArr[0].timeStamp}\n unReadEmailCount={emailArr.filter(item => item.unRead).length}\n emails={emailArr}\n />\n );\n};\n\n// _______ .___ ___. ___ __ __ _______. __ __ _______ __ __\n// | ____|| \\/ | / \\ | | | | / || | | | | ____|| | | |\n// | |__ | \\ / | / ^ \\ | | | | | (----`| |__| | | |__ | | | |\n// | __| | |\\/| | / /_\\ \\ | | | | \\ \\ | __ | | __| | | | |\n// | |____ | | | | / _____ \\ | | | `----. .----) | | | | | | |____ | `----.| `----.\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |_______/ |__| |__| |_______||_______||_______|\n\ninterface EmailShellDemoProps {\n autoCollapse?: boolean;\n hideSuggestions?: boolean;\n singleConversation?: boolean;\n}\n\nexport const EmailShellDemo: Story<EmailShellDemoProps> = (args: EmailShellDemoProps) => {\n const { create } = useModalManager();\n const { push } = useToaster();\n const actions = ['Transfer', 'End conversation'].map(name => ({\n primary: name,\n id: name,\n onClick: action(`Clicked ${name}`)\n }));\n\n const [composersData, setComposersData] = useState<{\n [key: string]: EmailComposerProps & { bodyContentCurrentValue: string };\n }>({});\n const [conversationEmails, setConversationEmails] = useState<EmailProps[][]>([]);\n\n const handleResponseTypeChange = (uid: string, responseType: string) => {\n if (responseType === 'reply') {\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n data: {\n ...prev[uid].data,\n to: {\n ...prev[uid].data.to,\n value: [toParticipants[0]]\n },\n cc: {\n ...prev[uid].data.cc,\n value: []\n },\n bcc: {\n ...prev[uid].data.bcc,\n value: []\n }\n }\n }\n };\n });\n } else if (responseType === 'replyAll') {\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n data: {\n ...prev[uid].data,\n to: {\n ...prev[uid].data.to,\n value: toParticipants\n },\n cc: {\n ...prev[uid].data.cc,\n value: ccParticipants\n },\n bcc: {\n ...prev[uid].data.bcc,\n value: bccParticipants\n }\n }\n }\n };\n });\n }\n };\n\n const handleTemplateIdChange = (uid: string, templateId: string) => {\n const selectedTemplate = mockEmailBodyTemplates.find(template => template.id === templateId);\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: { message: 'Loading template...' }\n }\n };\n });\n\n // Simulating api call\n setTimeout(() => {\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: false\n }\n };\n });\n\n let currentData: { [key: string]: EmailComposerProps } = {};\n setComposersData(prev => {\n currentData = prev;\n return prev;\n });\n\n if (currentData) {\n (\n currentData[uid]?.handle as RefObject<EmailComposerHandleValue>\n )?.current?.replaceBodyContent(selectedTemplate?.content || '');\n }\n }, 1000);\n };\n\n const handleChange = (\n uid: string,\n field: EmailComposerFieldType,\n value: EmailComposerValueType<EmailComposerFieldType>\n ) => {\n setComposersData(prevData => {\n if (field === 'bodyContent') {\n return {\n ...prevData,\n [uid]: {\n ...prevData[uid],\n bodyContentCurrentValue: value as string\n }\n };\n }\n return {\n ...prevData,\n [uid]: {\n ...prevData[uid],\n data: {\n ...prevData[uid].data,\n [field]: ['responseType', 'attachments', 'selectedTemplateId'].includes(field)\n ? value\n : {\n error: undefined, // Clearing error on change\n value\n }\n }\n }\n };\n });\n\n if (field === 'responseType') {\n handleResponseTypeChange(uid, value as string);\n } else if (field === 'selectedTemplateId') {\n handleTemplateIdChange(uid, value as string);\n }\n };\n\n const MyModal: FunctionComponent<{ currentID: string }> = ({ currentID }) => {\n const { dismiss } = useModalContext();\n\n return (\n <Modal\n heading='Discard unsaved changes?'\n actions={\n <>\n <Flex>\n <Button\n onClick={() => {\n dismiss();\n setComposersData(prev => {\n return {\n ...prev,\n [currentID]: {\n ...prev[currentID],\n progress: true\n }\n };\n });\n setTimeout(() => {\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[currentID];\n return newComposersData;\n });\n push({ content: 'Draft Saved' });\n }, 1000);\n }}\n >\n Save as draft\n </Button>\n\n <Button\n onClick={() => {\n dismiss();\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[currentID];\n return newComposersData;\n });\n }}\n >\n Discard\n </Button>\n </Flex>\n <Button\n variant='primary'\n onClick={() => {\n dismiss();\n }}\n >\n Cancel\n </Button>\n </>\n }\n center\n >\n <Text variant='primary'>\n You have unsaved changes. You can discard them or go back to keep working.\n </Text>\n </Modal>\n );\n };\n\n const handleCancel = (uid: string) => {\n create(MyModal, { currentID: uid }, { alert: true });\n };\n\n const handleSend = (uid: string) => {\n action('Send')();\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: true\n }\n };\n });\n setTimeout(() => {\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[uid];\n return newComposersData;\n });\n push({ content: 'Email Send' });\n }, 1000);\n };\n\n const handleSave = (uid: string) => {\n action('Save')();\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: true\n }\n };\n });\n setTimeout(() => {\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[uid];\n return newComposersData;\n });\n push({ content: 'Draft Saved' });\n }, 1000);\n };\n\n const createOrActivateComposer = (\n id: EmailProps['id'],\n launchAction: LaunchAction,\n composerProps: EmailComposerProps\n ) => {\n const uid = getCompositeId(id, launchAction);\n if (composersData[uid]) {\n // Activate the existing composer\n (composersData[uid].handle as RefObject<EmailComposerHandleValue>)?.current?.activate();\n } else {\n // Create new composer\n setComposersData(prev => {\n const composerHandle = createRef<EmailComposerHandleValue>();\n return {\n ...prev,\n [uid]: {\n ...composerProps,\n bodyContentCurrentValue: composerProps.data.bodyContent.defaultValue,\n handle: composerHandle,\n onChange: (\n field: EmailComposerFieldType,\n value: EmailComposerValueType<EmailComposerFieldType>\n ) => handleChange(uid, field, value),\n onCancel: () => handleCancel(uid),\n onSend: () => handleSend(uid),\n onSave: () => handleSave(uid)\n }\n };\n });\n }\n };\n\n const emailsData: EmailProps[] = [\n {\n id: 'item0',\n timeStamp: '2021-01-05T09:12',\n from: participants[0],\n to: participants.slice(0, 2),\n body: '<div>Hi, <br /> <br /><div>Your address change request is approved.</div> <br /> <br />Regards, <br />Laura Stevens </div>',\n unRead: true,\n subject: 'Pause service',\n suggestions: args.hideSuggestions ? undefined : mockSuggestedReplies,\n attachments: [\n {\n id: 'item_1_0',\n value: 'https://pega.com/media/document.doc',\n displayText: 'Policy document'\n },\n {\n id: 'item_1_1',\n value: 'https://pbs.twimg.com/media/ENNN5PAXkAE-hag.jpg',\n displayText: 'E-Ticket'\n }\n ].map(attachment => {\n return {\n ...attachment,\n onDownload: action('On attachment download'),\n onPreview: action('On attachment preview')\n };\n })\n },\n {\n id: 'item1',\n timeStamp: '2021-01-02T03:12',\n from: participants[3],\n to: participants.slice(2, 4),\n body: emailBodyContent,\n unRead: true,\n subject: 'Pause service'\n }\n ].map(emailData => {\n const emailActionItems = emailDemoActions(\n emailData.id,\n emailData.subject,\n createOrActivateComposer,\n false,\n emailData.body\n );\n return {\n ...emailData,\n onReply: (id: EmailProps['id']) => {\n createOrActivateComposer(id, LaunchAction.REPLY, {\n ...baseComposerProps,\n data: {\n ...baseComposerProps.data,\n responseType: 'reply',\n subject: { value: `Re-${emailData.subject}` || '' }\n },\n externalValidator: handleExternalEntry\n });\n },\n onForward: id => {\n createOrActivateComposer(id, LaunchAction.FORWARD, {\n ...baseComposerProps,\n data: {\n ...baseComposerProps.data,\n responseType: 'forward',\n subject: { value: `Fw-${emailData.subject}` || '' }\n },\n externalValidator: handleExternalEntry\n });\n },\n onSuggestionClick: (id, suggestionId) => {\n const suggestion = emailData.suggestions?.find(item => item.id === suggestionId);\n createOrActivateComposer(id, LaunchAction.SUGGESTION, {\n ...baseComposerProps,\n data: {\n ...baseComposerProps.data,\n responseType: 'reply',\n subject: { value: suggestion?.title || '' },\n bodyContent: { defaultValue: suggestion ? suggestion.content : '' },\n selectedTemplateId: suggestion?.id\n },\n externalValidator: handleExternalEntry\n });\n },\n actions: emailActionItems,\n tags: args.hideSuggestions\n ? undefined\n : {\n items: ['Pause service', 'Lost or stolen'],\n label: 'Associated service cases',\n onRemove: action('On Associated service case remove'),\n dismissable: true\n }\n };\n });\n\n const deleteEmail = (id: EmailProps['id']) => {\n setConversationEmails(prev => {\n const newEmailConversation: EmailProps[][] = [];\n\n prev.forEach(arr => {\n const newArr = arr.filter(index => index.id !== id);\n if (newArr.length !== 0) newEmailConversation.push(newArr);\n });\n return newEmailConversation;\n });\n };\n\n useEffect(() => {\n setConversationEmails([\n [{ ...emailsData[0] }, { ...emailsData[1], status: 'undelivered' }],\n [\n {\n ...emailsData[0],\n id: 'item2',\n status: 'draft',\n unRead: false,\n actions: emailDemoActions(\n 'item2',\n emailsData[0].subject,\n createOrActivateComposer,\n true,\n '<div>Hi, <br /> <br /><div>Sure, Our executive will come and check your connection in 24hrs. </div> <br />Regards, <br />Hugh Phillips </div>',\n deleteEmail\n ),\n timeStamp: '2021-01-03T17:15',\n from: mockEmails['Hugh Phillips'],\n to: [mockEmails['Mystery Rey'], ...emailsData[0].to],\n cc: [mockEmails['Adam Gillchrist']],\n bcc: [mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']],\n body: '<div>Hi, <br /> <br /><div>Sure, Our executive will come and check your connection in 24hrs. </div> <br />Regards, <br />Hugh Phillips </div>'\n },\n {\n ...emailsData[1],\n id: 'item3',\n status: 'draft',\n actions: emailDemoActions(\n 'item3',\n emailsData[0].subject,\n createOrActivateComposer,\n true,\n '<div>Hi, <br /> <br /><div>Can you fix my internet connection. </div> <br /> <br />Regards, <br />Rey Mystery </div>',\n deleteEmail\n ),\n unRead: false,\n timeStamp: '2021-01-02T14:16',\n from: mockEmails['Mystery Rey'],\n to: [mockEmails['Hugh Phillips']],\n body: '<div>Hi, <br /> <br /><div>Can you fix my internet connection. </div> <br /> <br />Regards, <br />Rey Mystery </div>'\n }\n ],\n [\n {\n ...emailsData[0],\n id: 'item4',\n unRead: true,\n timeStamp: '2020-12-05T18:18',\n from: mockEmails['Laura Stevens'],\n to: [mockEmails['Sara Davis']],\n body: '<div>Hi, <br /> <br /><div>Sure, Our executive will call you shortly. </div> <br /> <br />Regards, <br />Laura Stevens </div>',\n sentiment: {\n variant: 'positive'\n }\n },\n {\n ...emailsData[1],\n id: 'item5',\n unRead: true,\n timeStamp: '2021-01-04T08:30',\n from: mockEmails['Sara Davis'],\n to: [mockEmails['Laura Stevens']],\n body: '<div>Hi, <br /> <br /><div>Can you show please explain your new mobile plans. </div> <br /> <br />Regards, <br />Sara Davis </div>'\n }\n ]\n ]);\n }, []);\n\n const emailConversations: EmailConversationProps[] = (conversationEmails as EmailProps[][]).map(\n (emails, i) => {\n return {\n from: generateEmailConversationParticipants(emails, ['from'])[0],\n to: emails[0].to,\n id: `item_${i}`,\n timeStamp: emails[0].timeStamp,\n unReadEmailCount: emails.filter(item => item.unRead).length,\n emails,\n sentiment: emails[0].sentiment,\n isForwarded: i !== 2,\n isCollapsed: i !== 0,\n drafts: i === 1,\n undelivered: i === 0\n } as EmailConversationProps;\n }\n );\n\n const singleEmailConversation: EmailConversationProps[] = [\n {\n from: generateEmailConversationParticipants(emailsData, ['from'])[0],\n to: generateEmailConversationParticipants(emailsData, ['to']),\n id: 'item_0',\n timeStamp: new Date(emailsData[0].timeStamp),\n unReadEmailCount: emailsData.filter(item => item.unRead).length,\n emails: [{ ...emailsData[0], status: 'undelivered' }, { ...emailsData[1] }]\n }\n ];\n\n return (\n <>\n <EmailShell\n headerProps={{\n actions: (\n <Flex\n container={{\n alignItems: 'center',\n gap: 0\n }}\n >\n <Button variant='simple' icon>\n <Icon name='filter' />\n </Button>\n <MenuButton\n variant='simple'\n text='More actions'\n icon='more'\n iconOnly\n portal\n menu={{ items: actions }}\n />\n </Flex>\n ),\n subject: 'Pause service'\n }}\n autoCollapse={args.autoCollapse}\n conversations={args.singleConversation ? singleEmailConversation : emailConversations}\n />\n <>\n {Object.keys(composersData).map(guid => {\n return <EmailComposer key={guid} {...composersData[guid]} />;\n })}\n </>\n </>\n );\n};\n\nEmailShellDemo.args = {\n autoCollapse: true,\n hideSuggestions: false,\n singleConversation: true\n};\n\nEmailShellDemo.argTypes = {\n autoCollapse: { control: { type: 'boolean' } },\n hideSuggestions: { control: { type: 'boolean' } },\n singleConversation: { control: { type: 'boolean' } }\n};\n\n// _______ .__ __. .___________. __ .___________.____ ____ __ __ _______.___________.\n// | ____|| \\ | | | || | | |\\ \\ / / | | | | / | |\n// | |__ | \\| | `---| |----`| | `---| |----` \\ \\/ / | | | | | (----`---| |----`\n// | __| | . ` | | | | | | | \\_ _/ | | | | \\ \\ | |\n// | |____ | |\\ | | | | | | | | | | `----.| | .----) | | |\n// |_______||__| \\__| |__| |__| |__| |__| |_______||__| |_______/ |__|\n\ninterface EntityListDemoProps {\n enableContextMenu?: boolean;\n onContextMenu?: (e: MouseEvent) => void;\n}\n\nexport const EntityListDemo: Story<EntityListDemoProps> = (args: EntityListDemoProps) => {\n const itemCounter = useRef(3);\n const timeout = useRef<number | null>(null);\n const imperativeHandle: ContextMenuProps['handle'] = useRef(null);\n const headerProps: EntityListProps['header'] = {\n icon: 'list-number',\n text: 'Entities'\n };\n\n const handleRightClick = () => {\n itemCounter.current += 1;\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n timeout.current = window.setTimeout(() => {\n imperativeHandle.current?.setContextMenuItems(contextMenuItemsMock);\n }, 1000);\n };\n\n return (\n <EntityList\n header={headerProps}\n content={EntityListMockData}\n contextMenu={\n args.enableContextMenu\n ? {\n onItemClick: action('onItemClick'),\n onContextMenu: args.onContextMenu || handleRightClick,\n handle: imperativeHandle\n }\n : undefined\n }\n />\n );\n};\n\nEntityListDemo.args = {\n enableContextMenu: true\n};\n\nEntityListDemo.argTypes = {\n enableContextMenu: { control: { type: 'boolean' } }\n};\n\n// _______ .___ ___. ___ __ __ _______. __ __ .___ ___. .___ ___. ___ .______ ____ ____ __ .___________. _______ .___ ___.\n// | ____|| \\/ | / \\ | | | | / || | | | | \\/ | | \\/ | / \\ | _ \\ \\ \\ / / | | | || ____|| \\/ |\n// | |__ | \\ / | / ^ \\ | | | | | (----`| | | | | \\ / | | \\ / | / ^ \\ | |_) | \\ \\/ / | | `---| |----`| |__ | \\ / |\n// | __| | |\\/| | / /_\\ \\ | | | | \\ \\ | | | | | |\\/| | | |\\/| | / /_\\ \\ | / \\_ _/ | | | | | __| | |\\/| |\n// | |____ | | | | / _____ \\ | | | `----. .----) | | `--' | | | | | | | | | / _____ \\ | |\\ \\----. | | | | | | | |____ | | | |\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |_______/ \\______/ |__| |__| |__| |__| /__/ \\__\\ | _| `._____| |__| |__| |__| |_______||__| |__|\n\ninterface EmailSummaryItemDemoProps {\n unreadEmailCount?: number;\n isActive?: boolean;\n}\n\nexport const EmailSummaryItemDemo: Story<EmailSummaryItemDemoProps> = (\n args: EmailSummaryItemDemoProps\n) => {\n return (\n <EmailSummaryItem\n id={createUID()}\n activeParticipants={[\n {\n shortName: 'Robert',\n fullName: 'Robert Downer',\n emailAddress: 'robert.downey@example.com'\n },\n {\n shortName: 'Nathan',\n fullName: 'Nathan Swanson',\n emailAddress: 'nathan.swanson@example.com'\n }\n ]}\n message='I have a quick question on traveling to India. How do I reach Hyderabad?'\n timeStamp={new Date(Date.UTC(new Date().getUTCFullYear(), new Date().getUTCMonth(), 24))}\n topic='Missing Luggage'\n sentiment={sentiment}\n urgency={10}\n unreadEmailCount={args.unreadEmailCount}\n active={args.isActive}\n onSelect={(id: EmailSummaryItemProps['id']) => {\n action('onSelect')(id);\n }}\n />\n );\n};\n\nEmailSummaryItemDemo.args = {\n unreadEmailCount: 0,\n isActive: false\n};\n\nEmailSummaryItemDemo.argTypes = {\n unreadEmailCount: { control: { type: 'number' } },\n isActive: { control: { type: 'boolean' } }\n};\n\n// _______ .___ ___. ___ __ __ _______. __ __ .___ ___. .___ ___. ___ .______ ____ ____ __ __ _______.___________.\n// | ____|| \\/ | / \\ | | | | / || | | | | \\/ | | \\/ | / \\ | _ \\ \\ \\ / / | | | | / | |\n// | |__ | \\ / | / ^ \\ | | | | | (----`| | | | | \\ / | | \\ / | / ^ \\ | |_) | \\ \\/ / | | | | | (----`---| |----`\n// | __| | |\\/| | / /_\\ \\ | | | | \\ \\ | | | | | |\\/| | | |\\/| | / /_\\ \\ | / \\_ _/ | | | | \\ \\ | |\n// | |____ | | | | / _____ \\ | | | `----. .----) | | `--' | | | | | | | | | / _____ \\ | |\\ \\----. | | | `----.| | .----) | | |\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |_______/ \\______/ |__| |__| |__| |__| /__/ \\__\\ | _| `._____| |__| |_______||__| |_______/ |__|\n\ninterface EmailSummaryListStoryProps {\n onItemClick?: EmailSummaryListProps['onItemClick'];\n items?: EmailSummaryListProps['items'];\n onLoadMore?: EmailSummaryListProps['onLoadMore'];\n loading?: EmailSummaryListProps['loading'];\n}\n\nexport const EmailSummaryListDemo: Story<EmailSummaryListStoryProps> = (\n args: EmailSummaryListStoryProps\n) => {\n const INITIAL_CHUNK_SIZE = 9;\n const APPEND_CHUNK_SIZE = 1;\n\n const emailSummaryListRef = useRef(null);\n const [allEmailItems, setAllEmailItems] = useState(\n emailSummaryItems.slice(0, INITIAL_CHUNK_SIZE)\n );\n const [categories, setCategories] = useState<MenuProps['items']>(emailWorklistItemsMock);\n\n const handleItemClick = (id: string) => {\n const index = allEmailItems.findIndex(emailItem => {\n return emailItem.id === id;\n });\n\n const newEmailItems = [...allEmailItems];\n newEmailItems.splice(index, 1, { ...allEmailItems[index], unreadEmailCount: 0 });\n\n setAllEmailItems(newEmailItems);\n };\n\n const onCategoryClick: MenuItemProps['onClick'] = (id: MenuItemProps['id']) => {\n setCategories(cur => menuHelpers.toggleSelected(cur, id, 'single-select'));\n };\n\n const [loading, setLoading] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n\n const loadMore = useCallback(() => {\n if (!loading) {\n setLoading(true);\n\n setTimeout(() => {\n setLoading(false);\n setAllEmailItems(prevItems => {\n const previousItemsLength = prevItems.length;\n const newItems = emailSummaryItems.slice(\n previousItemsLength,\n previousItemsLength + APPEND_CHUNK_SIZE\n );\n\n if (newItems.length === 0) {\n setHasMore(false);\n }\n\n return [...prevItems, ...newItems];\n });\n }, 1500);\n }\n }, [loading]);\n\n return (\n <EmailSummaryList\n ref={emailSummaryListRef}\n unreadEmailCount={99}\n categories={categories}\n items={args.items || allEmailItems}\n onItemClick={args.onItemClick || handleItemClick}\n onCategoryClick={onCategoryClick}\n onLoadMore={args.onLoadMore || (hasMore ? loadMore : undefined)}\n loading={args.loading || loading}\n emptyMessage='No emails.'\n />\n );\n};\n\n// _______ .___ ___. ___ __ __ .___ ___. ___ .__ __. ___ _______ _______ .______\n// | ____|| \\/ | / \\ | | | | | \\/ | / \\ | \\ | | / \\ / _____|| ____|| _ \\\n// | |__ | \\ / | / ^ \\ | | | | | \\ / | / ^ \\ | \\| | / ^ \\ | | __ | |__ | |_) |\n// | __| | |\\/| | / /_\\ \\ | | | | | |\\/| | / /_\\ \\ | . ` | / /_\\ \\ | | |_ | | __| | /\n// | |____ | | | | / _____ \\ | | | `----. | | | | / _____ \\ | |\\ | / _____ \\ | |__| | | |____ | |\\ \\----.\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |__| |__| /__/ \\__\\ |__| \\__| /__/ \\__\\ \\______| |_______|| _| `._____|\n\ninterface EmailManagerAppShellProps {\n enableContextMenu?: boolean;\n onContextMenu?: (e: MouseEvent) => void;\n}\n\nexport const EmailManagerAppShell: Story<EmailManagerAppShellProps> = (\n args: EmailManagerAppShellProps\n) => {\n const INITIAL_CHUNK_SIZE = 9;\n const APPEND_CHUNK_SIZE = 1;\n\n const [activeItemId, setActiveItemId] = useState<string | undefined>();\n const [emailList, setEmailList] = useState(emailSummaryItems.slice(0, INITIAL_CHUNK_SIZE));\n const [loading, setLoading] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n\n const handleEmailItemClick = (id: EmailSummaryItemProps['id']) => {\n setActiveItemId(id);\n\n const index = emailList.findIndex(emailItem => {\n return emailItem.id === id;\n });\n\n const newEmailList = [...emailList];\n newEmailList.splice(index, 1, { ...emailList[index], unreadEmailCount: 0 });\n\n setEmailList(newEmailList);\n };\n\n const onLoadMore = useCallback(() => {\n if (!loading) {\n setLoading(true);\n\n setTimeout(() => {\n setLoading(false);\n setEmailList(prevItems => {\n const previousItemsLength = prevItems.length;\n const newItems = emailSummaryItems.slice(\n previousItemsLength,\n previousItemsLength + APPEND_CHUNK_SIZE\n );\n\n if (newItems.length === 0) {\n setHasMore(false);\n }\n\n return [...prevItems, ...newItems];\n });\n }, 1500);\n }\n }, [loading]);\n\n const activeItemIndex = useMemo(\n () => emailList.findIndex(emailItem => emailItem.id === activeItemId),\n [activeItemId, emailList]\n );\n\n const content =\n activeItemId === undefined ? (\n <EmptyState message='No item selected!' />\n ) : (\n <EmailShellDemo singleConversation={activeItemIndex % 2 !== 0} />\n );\n\n const utilities =\n activeItemId === undefined ? null : (\n // View analysis utility\n <Grid container={{ rowGap: 2 }}>\n <EntityListDemo\n onContextMenu={args.onContextMenu}\n enableContextMenu={args.enableContextMenu}\n />\n <Card>\n <CardHeader container={{ alignItems: 'center', gap: 1 }}>\n <Icon name='document-doc' />\n <Text variant='h3'>Email header</Text>\n </CardHeader>\n <CardContent>\n <FieldValueList fields={viewAnalysisEmailHeaderMock} variant='stacked' />\n </CardContent>\n </Card>\n <SummaryList\n name='Topics'\n icon='headline'\n items={topicListMock.map(items => ({\n ...items,\n primary: <StyledLabel>{items.primary}</StyledLabel>,\n secondary: (\n <Flex container={{ direction: 'row', justify: 'between' }}>\n <Text variant='primary'>{items.secondary.indicator}</Text>\n <StyledLabel>{items.secondary.value}</StyledLabel>\n </Flex>\n )\n }))}\n noItemsText='No items'\n />\n </Grid>\n );\n\n return (\n <AppShellDemo\n appHeader\n main={\n <EmailManager\n header={{\n icon: 'mail',\n title: 'Inbox'\n }}\n list={\n <EmailSummaryListDemo\n onItemClick={handleEmailItemClick}\n items={emailList}\n onLoadMore={hasMore ? onLoadMore : undefined}\n loading={loading}\n />\n }\n content={content}\n utilities={utilities}\n utilitiesSummaryItems={\n utilities\n ? [\n { iconName: 'list-number', count: 7 },\n { iconName: 'document-doc', count: 1 },\n { iconName: 'headline', count: 4 }\n ]\n : undefined\n }\n defaultCollapsedUtilities={!!utilities}\n />\n }\n />\n );\n};\n\nEmailManagerAppShell.args = {\n enableContextMenu: true\n};\n\nEmailManagerAppShell.argTypes = {\n enableContextMenu: { control: { type: 'boolean' } }\n};\nEmailManagerAppShell.parameters = {\n layout: 'fullscreen'\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Feed.stories.d.ts","sourceRoot":"","sources":["../../../src/social/Feed/Feed.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAkB/C,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;;AAS/E,wBAGU;AAEV,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,gBAAgB,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;CAClD;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"Feed.stories.d.ts","sourceRoot":"","sources":["../../../src/social/Feed/Feed.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAkB/C,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;;AAS/E,wBAGU;AAEV,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,gBAAgB,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;CAClD;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,aAAa,CAoMzC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAE9B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useState, useRef, useCallback } from 'react';
|
|
1
|
+
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
2
2
|
import { createUID, DateTimeDisplay, Lightbox, OneColumnPage } from '@pega/cosmos-react-core';
|
|
3
3
|
import { Feed, MentionButtonConfig, HashtagButtonConfig } from '@pega/cosmos-react-social';
|
|
4
4
|
import { Glimpse } from '@pega/cosmos-react-work';
|
|
@@ -55,10 +55,11 @@ export const FeedDemo = ({ markdownMap, onMentionPreview }) => {
|
|
|
55
55
|
}
|
|
56
56
|
};
|
|
57
57
|
const [loading, setLoading] = useState(false);
|
|
58
|
+
let timeoutId;
|
|
58
59
|
const generateNewPost = useCallback(() => {
|
|
59
60
|
if (!loading) {
|
|
60
61
|
setLoading(true);
|
|
61
|
-
setTimeout(() => {
|
|
62
|
+
timeoutId = setTimeout(() => {
|
|
62
63
|
setLoading(false);
|
|
63
64
|
setExtraPosts(posts => [
|
|
64
65
|
...posts,
|
|
@@ -75,6 +76,9 @@ export const FeedDemo = ({ markdownMap, onMentionPreview }) => {
|
|
|
75
76
|
}, 1000);
|
|
76
77
|
}
|
|
77
78
|
}, [loading]);
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
return () => clearTimeout(timeoutId);
|
|
81
|
+
}, []);
|
|
78
82
|
const onMentionClick = ({ id, type }) => {
|
|
79
83
|
if (type === 'user') {
|
|
80
84
|
const user = userMentions.find(mention => mention.id === id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Feed.stories.jsx","sourceRoot":"","sources":["../../../src/social/Feed/Feed.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useState, useRef, useCallback } from 'react';\n\nimport {\n createUID,\n DateTimeDisplay,\n Lightbox,\n LightboxProps,\n MenuItemProps,\n OneColumnPage\n} from '@pega/cosmos-react-core';\nimport {\n Feed,\n Filter,\n MentionButtonConfig,\n HashtagButtonConfig,\n AttachedFiles\n} from '@pega/cosmos-react-social';\nimport { FeedProps } from '@pega/cosmos-react-social/lib/components/Feed/Feed';\nimport { Glimpse, GlimpseProps } from '@pega/cosmos-react-work';\n\nimport { AppShellDemo } from '../../core/AppShell/AppShell.stories';\n\nimport { FeedPostDemo } from './FeedPost.stories';\nimport { FeedNewPostDemo } from './FeedNewPost.stories';\nimport { caseMentions, feedPosts, userMentions, FeedPostDemoProps } from './Feed.mocks';\n\nexport default {\n title: 'Social/Feed/Feed',\n component: Feed\n} as Meta;\n\ninterface FeedDemoProps {\n markdownMap?: FeedProps['markdownMap'];\n onMentionPreview?: FeedProps['onMentionPreview'];\n}\n\nexport const FeedDemo: Story<FeedDemoProps> = ({\n markdownMap,\n onMentionPreview\n}: FeedDemoProps) => {\n const [extraPosts, setExtraPosts] = useState<FeedPostDemoProps[]>(() => feedPosts);\n const [searchResults, setSearchResults] = useState<MenuItemProps[]>([]);\n\n const [filters, setFilters] = useState<Filter[]>(\n Array.from({ length: 10 }, (_, index) => {\n return {\n id: `filter-${index + 1}`,\n label: `Filter ${index + 1}`\n };\n })\n );\n\n const toggleFilter = (filterId: string) => {\n const updatedFilters = [...filters];\n const filterToUpdate = updatedFilters.find(x => x.id === filterId);\n\n if (filterToUpdate) filterToUpdate.on = !filterToUpdate.on;\n\n setFilters(updatedFilters);\n };\n\n const onSearch = ({\n type,\n search,\n mentionType\n }: {\n type: 'mention' | 'tag';\n search: string;\n mentionType: string;\n }) => {\n if (type === 'mention') {\n const availableMentions = mentionType === 'case' ? caseMentions : userMentions;\n\n const mentions: MenuItemProps[] = availableMentions\n .filter((user: GlimpseProps) => {\n const names = user.primary.toLowerCase().split(' ');\n const searchWords = search.toLowerCase().split(' ');\n return !!searchWords.every((word: string) =>\n names.find((name: string) => name.startsWith(word))\n );\n })\n .map(({ id, primary, secondary, visual, href }) => {\n return {\n id,\n primary,\n secondary,\n visual,\n href\n };\n });\n setSearchResults(mentions);\n } else {\n setSearchResults(\n ['cosmos', 'hashtag', 'pega']\n .filter(tag => {\n return tag.toLowerCase().includes(search.toLowerCase());\n })\n .map(tag => ({ id: tag, primary: tag }))\n );\n }\n };\n\n const [loading, setLoading] = useState(false);\n\n const generateNewPost = useCallback(() => {\n if (!loading) {\n setLoading(true);\n setTimeout(() => {\n setLoading(false);\n setExtraPosts(posts => [\n ...posts,\n {\n id: createUID(),\n fullname: 'Demo User',\n username: 'demo_user',\n content: 'This post was loaded after the Feed was scrolled to the bottom!',\n attachments: [],\n replies: [],\n renderFeed: false\n }\n ]);\n }, 1000);\n }\n }, [loading]);\n\n const onMentionClick = ({ id, type }: { id: string; type: string }) => {\n if (type === 'user') {\n const user = userMentions.find(mention => mention.id === id);\n if (user) return <Glimpse {...user} />;\n }\n };\n\n const [lightboxImages, setLightboxImages] = useState<LightboxProps['items'] | null>(null);\n const defaultLBIndex = useRef(0);\n\n const renderLightbox = (attachments: AttachedFiles[], name: string) => {\n const images: LightboxProps['items'] = attachments\n .filter(attachment => attachment.type.includes('image') && attachment.thumbnail)\n .map(image => {\n return {\n id: image.thumbnail as string,\n name: image.name,\n description: image.name,\n src: image.thumbnail as string,\n metadata: [image.type, <DateTimeDisplay value={new Date()} variant='date' />]\n };\n });\n\n const idx = images.findIndex(image => image.name === name);\n defaultLBIndex.current = idx > -1 ? idx : 0;\n setLightboxImages(images);\n };\n\n const deletePost = (index: number) => {\n setExtraPosts(posts => {\n const postsCopy = [...posts];\n postsCopy.splice(index, 1);\n return [...postsCopy];\n });\n };\n\n return (\n <>\n <Feed\n title='Pulse'\n userInfo={{ username: 'demo_user', fullname: 'Demo User' }}\n searchTypes={['user', 'case']}\n onDecoratorSearch={onSearch}\n searchResults={searchResults}\n onMentionClick={onMentionClick}\n onMentionPreview={onMentionPreview}\n markdownMap={markdownMap}\n interactionRenderers={[MentionButtonConfig, HashtagButtonConfig]}\n filters={filters}\n onFilterChange={toggleFilter}\n loadingPosts={loading}\n onLoadMore={generateNewPost}\n newPostRegion={\n <FeedNewPostDemo\n onPost={postEvent => {\n const { value, attachments, recipients, clear } = postEvent;\n\n attachments.forEach(file => {\n delete file.onDelete;\n file.onPreview = file.type.includes('image')\n ? () => renderLightbox(attachments, file.name)\n : undefined;\n file.onDownload = () => {};\n });\n\n if (value || attachments.length > 0) {\n setExtraPosts(posts => [\n {\n id: createUID(),\n fullname: 'Demo User',\n username: 'demo_user',\n content: value,\n attachments,\n recipients,\n postType: recipients.length ? 'private' : 'public',\n replies: [],\n postTimestamp: new Date(),\n renderFeed: false\n },\n ...posts\n ]);\n clear();\n }\n }}\n renderFeed={false}\n />\n }\n posts={extraPosts.map((post, i) => {\n return <FeedPostDemo {...post} key={post.id} onDelete={() => deletePost(i)} />;\n })}\n />\n {lightboxImages && (\n <Lightbox\n items={lightboxImages}\n defaultIndex={defaultLBIndex.current}\n onAfterClose={() => {\n setLightboxImages(null);\n }}\n />\n )}\n </>\n );\n};\n\nexport const FeedWithAppShell: Story = () => {\n return <AppShellDemo appHeader main={<OneColumnPage title='Welcome' a={<FeedDemo />} />} />;\n};\n\nFeedWithAppShell.parameters = {\n layout: 'fullscreen'\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Feed.stories.jsx","sourceRoot":"","sources":["../../../src/social/Feed/Feed.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useState, useRef, useCallback, useEffect } from 'react';\n\nimport {\n createUID,\n DateTimeDisplay,\n Lightbox,\n LightboxProps,\n MenuItemProps,\n OneColumnPage\n} from '@pega/cosmos-react-core';\nimport {\n Feed,\n Filter,\n MentionButtonConfig,\n HashtagButtonConfig,\n AttachedFiles\n} from '@pega/cosmos-react-social';\nimport { FeedProps } from '@pega/cosmos-react-social/lib/components/Feed/Feed';\nimport { Glimpse, GlimpseProps } from '@pega/cosmos-react-work';\n\nimport { AppShellDemo } from '../../core/AppShell/AppShell.stories';\n\nimport { FeedPostDemo } from './FeedPost.stories';\nimport { FeedNewPostDemo } from './FeedNewPost.stories';\nimport { caseMentions, feedPosts, userMentions, FeedPostDemoProps } from './Feed.mocks';\n\nexport default {\n title: 'Social/Feed/Feed',\n component: Feed\n} as Meta;\n\ninterface FeedDemoProps {\n markdownMap?: FeedProps['markdownMap'];\n onMentionPreview?: FeedProps['onMentionPreview'];\n}\n\nexport const FeedDemo: Story<FeedDemoProps> = ({\n markdownMap,\n onMentionPreview\n}: FeedDemoProps) => {\n const [extraPosts, setExtraPosts] = useState<FeedPostDemoProps[]>(() => feedPosts);\n const [searchResults, setSearchResults] = useState<MenuItemProps[]>([]);\n\n const [filters, setFilters] = useState<Filter[]>(\n Array.from({ length: 10 }, (_, index) => {\n return {\n id: `filter-${index + 1}`,\n label: `Filter ${index + 1}`\n };\n })\n );\n\n const toggleFilter = (filterId: string) => {\n const updatedFilters = [...filters];\n const filterToUpdate = updatedFilters.find(x => x.id === filterId);\n\n if (filterToUpdate) filterToUpdate.on = !filterToUpdate.on;\n\n setFilters(updatedFilters);\n };\n\n const onSearch = ({\n type,\n search,\n mentionType\n }: {\n type: 'mention' | 'tag';\n search: string;\n mentionType: string;\n }) => {\n if (type === 'mention') {\n const availableMentions = mentionType === 'case' ? caseMentions : userMentions;\n\n const mentions: MenuItemProps[] = availableMentions\n .filter((user: GlimpseProps) => {\n const names = user.primary.toLowerCase().split(' ');\n const searchWords = search.toLowerCase().split(' ');\n return !!searchWords.every((word: string) =>\n names.find((name: string) => name.startsWith(word))\n );\n })\n .map(({ id, primary, secondary, visual, href }) => {\n return {\n id,\n primary,\n secondary,\n visual,\n href\n };\n });\n setSearchResults(mentions);\n } else {\n setSearchResults(\n ['cosmos', 'hashtag', 'pega']\n .filter(tag => {\n return tag.toLowerCase().includes(search.toLowerCase());\n })\n .map(tag => ({ id: tag, primary: tag }))\n );\n }\n };\n\n const [loading, setLoading] = useState(false);\n let timeoutId: ReturnType<typeof setTimeout>;\n\n const generateNewPost = useCallback(() => {\n if (!loading) {\n setLoading(true);\n timeoutId = setTimeout(() => {\n setLoading(false);\n setExtraPosts(posts => [\n ...posts,\n {\n id: createUID(),\n fullname: 'Demo User',\n username: 'demo_user',\n content: 'This post was loaded after the Feed was scrolled to the bottom!',\n attachments: [],\n replies: [],\n renderFeed: false\n }\n ]);\n }, 1000);\n }\n }, [loading]);\n\n useEffect(() => {\n return () => clearTimeout(timeoutId);\n }, []);\n\n const onMentionClick = ({ id, type }: { id: string; type: string }) => {\n if (type === 'user') {\n const user = userMentions.find(mention => mention.id === id);\n if (user) return <Glimpse {...user} />;\n }\n };\n\n const [lightboxImages, setLightboxImages] = useState<LightboxProps['items'] | null>(null);\n const defaultLBIndex = useRef(0);\n\n const renderLightbox = (attachments: AttachedFiles[], name: string) => {\n const images: LightboxProps['items'] = attachments\n .filter(attachment => attachment.type.includes('image') && attachment.thumbnail)\n .map(image => {\n return {\n id: image.thumbnail as string,\n name: image.name,\n description: image.name,\n src: image.thumbnail as string,\n metadata: [image.type, <DateTimeDisplay value={new Date()} variant='date' />]\n };\n });\n\n const idx = images.findIndex(image => image.name === name);\n defaultLBIndex.current = idx > -1 ? idx : 0;\n setLightboxImages(images);\n };\n\n const deletePost = (index: number) => {\n setExtraPosts(posts => {\n const postsCopy = [...posts];\n postsCopy.splice(index, 1);\n return [...postsCopy];\n });\n };\n\n return (\n <>\n <Feed\n title='Pulse'\n userInfo={{ username: 'demo_user', fullname: 'Demo User' }}\n searchTypes={['user', 'case']}\n onDecoratorSearch={onSearch}\n searchResults={searchResults}\n onMentionClick={onMentionClick}\n onMentionPreview={onMentionPreview}\n markdownMap={markdownMap}\n interactionRenderers={[MentionButtonConfig, HashtagButtonConfig]}\n filters={filters}\n onFilterChange={toggleFilter}\n loadingPosts={loading}\n onLoadMore={generateNewPost}\n newPostRegion={\n <FeedNewPostDemo\n onPost={postEvent => {\n const { value, attachments, recipients, clear } = postEvent;\n\n attachments.forEach(file => {\n delete file.onDelete;\n file.onPreview = file.type.includes('image')\n ? () => renderLightbox(attachments, file.name)\n : undefined;\n file.onDownload = () => {};\n });\n\n if (value || attachments.length > 0) {\n setExtraPosts(posts => [\n {\n id: createUID(),\n fullname: 'Demo User',\n username: 'demo_user',\n content: value,\n attachments,\n recipients,\n postType: recipients.length ? 'private' : 'public',\n replies: [],\n postTimestamp: new Date(),\n renderFeed: false\n },\n ...posts\n ]);\n clear();\n }\n }}\n renderFeed={false}\n />\n }\n posts={extraPosts.map((post, i) => {\n return <FeedPostDemo {...post} key={post.id} onDelete={() => deletePost(i)} />;\n })}\n />\n {lightboxImages && (\n <Lightbox\n items={lightboxImages}\n defaultIndex={defaultLBIndex.current}\n onAfterClose={() => {\n setLightboxImages(null);\n }}\n />\n )}\n </>\n );\n};\n\nexport const FeedWithAppShell: Story = () => {\n return <AppShellDemo appHeader main={<OneColumnPage title='Welcome' a={<FeedDemo />} />} />;\n};\n\nFeedWithAppShell.parameters = {\n layout: 'fullscreen'\n};\n"]}
|
|
@@ -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;;AA6CnC,wBAGU;AASV,UAAU,cAAc;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,cAAc,CAqEvC,CAAC;AAsBF,eAAO,MAAM,QAAQ,EAAE,
|
|
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;;AA6CnC,wBAGU;AASV,UAAU,cAAc;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,cAAc,CAqEvC,CAAC;AAsBF,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,CAihBrD,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,CAkCrD,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"}
|
|
@@ -148,6 +148,25 @@ export const Composer = () => {
|
|
|
148
148
|
};
|
|
149
149
|
});
|
|
150
150
|
}
|
|
151
|
+
else if (data.responseType === 'forward') {
|
|
152
|
+
setData(prev => {
|
|
153
|
+
return {
|
|
154
|
+
...prev,
|
|
155
|
+
to: {
|
|
156
|
+
...prev.to,
|
|
157
|
+
value: []
|
|
158
|
+
},
|
|
159
|
+
cc: {
|
|
160
|
+
...prev.cc,
|
|
161
|
+
value: []
|
|
162
|
+
},
|
|
163
|
+
bcc: {
|
|
164
|
+
...prev.bcc,
|
|
165
|
+
value: []
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
});
|
|
169
|
+
}
|
|
151
170
|
}, [data.responseType]);
|
|
152
171
|
const onTemplateChange = (id) => {
|
|
153
172
|
const selectedTemplate = mockEmailBodyTemplates.find(template => template.id === id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Email.stories.js","sourceRoot":"","sources":["../../../src/social/Email/Email.stories.tsx"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,OAAO,EACL,QAAQ,EACR,MAAM,EACN,WAAW,EACX,SAAS,EACT,SAAS,EAIV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EACL,IAAI,EACJ,WAAW,EACX,SAAS,EACT,UAAU,EAGV,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,MAAM,EACN,WAAW,EACX,UAAU,EACV,IAAI,EACJ,WAAW,EACX,IAAI,EACJ,cAAc,EACd,WAAW,EACX,UAAU,EACV,KAAK,EACL,eAAe,EACf,eAAe,EACf,UAAU,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,UAAU,MAAM,+DAA+D,CAAC;AAC5F,OAAO,EACL,KAAK,IAAI,cAAc,EACvB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EAKV,YAAY,EAGb,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,aAAa,EACb,YAAY,EACZ,qCAAqC,EACrC,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,YAAY,CAAC,UAAU,CAAC,CAAC;AAEzB,eAAe;IACb,KAAK,EAAE,cAAc;IACrB,SAAS,EAAE,cAAc;CAClB,CAAC;AAeV,MAAM,CAAC,MAAM,KAAK,GAA0B,CAAC,IAAoB,EAAE,EAAE;IACnE,MAAM,qBAAqB,GAA+B,MAAM,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAE5C,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACvC,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;QAC3E,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,IAAI,cACH,KAAC,sBAAsB,cACrB,KAAC,cAAc,IACb,EAAE,EAAE,SAAS,EAAE,EACf,SAAS,EAAC,kBAAkB,EAC5B,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,EACjC,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,EAC5D,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,EAC9D,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,EACnF,IAAI,EAAC,wqBAAwqB,EAC7qB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,sBAAsB,EACpB,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,EAErE,OAAO,EAAC,sBAAsB,EAC9B,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,EAC3B,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,EAClC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,EAC/B,iBAAiB,EAAE,MAAM,CAAC,4BAA4B,CAAC,EACvD,SAAS,EAAE;oBACT,OAAO,EAAE,SAAS;iBACnB,EACD,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,oBAAoB,EACjC,WAAW,EACT,IAAI,CAAC,iBAAiB;oBACpB,CAAC,CAAC;wBACE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;wBAClC,aAAa,EAAE,gBAAgB;wBAC/B,MAAM,EAAE,qBAAqB;qBAC9B;oBACH,CAAC,CAAC,SAAS,EAEf,WAAW,EAAE;oBACX;wBACE,EAAE,EAAE,cAAc;wBAClB,KAAK,EAAE,qCAAqC;wBAC5C,WAAW,EAAE,iBAAiB;qBAC/B;oBACD;wBACE,EAAE,EAAE,cAAc;wBAClB,KAAK,EAAE,iDAAiD;wBACxD,WAAW,EAAE,UAAU;qBACxB;iBACF,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;oBACjB,OAAO;wBACL,GAAG,UAAU;wBACb,UAAU,EAAE,MAAM,CAAC,wBAAwB,CAAC;wBAC5C,SAAS,EAAE,MAAM,CAAC,uBAAuB,CAAC;qBAC3C,CAAC;gBACJ,CAAC,CAAC,GACF,GACqB,GACpB,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,KAAK,CAAC,IAAI,GAAG;IACX,wBAAwB,EAAE,KAAK;IAC/B,iBAAiB,EAAE,KAAK;IACxB,sDAAsD;IACtD,gBAAgB;CACjB,CAAC;AAEF,KAAK,CAAC,QAAQ,GAAG;IACf,wBAAwB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC1D,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IACnD,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;CAChD,CAAC;AAEF,oFAAoF;AACpF,qFAAqF;AACrF,sFAAsF;AACtF,qFAAqF;AACrF,0FAA0F;AAC1F,0FAA0F;AAE1F,MAAM,CAAC,MAAM,QAAQ,GAAU,GAAG,EAAE;IAClC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAiC,KAAK,CAAC,CAAC;IAChG,MAAM,cAAc,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IAE9D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAE9B;QACA,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;QAC7B,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACjB,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,OAAO,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE;QAC5C,WAAW,EAAE;YACX,YAAY,EAAE,6BAA6B;SAC5C;QACD,YAAY,EAAE,OAAO;QACrB,kBAAkB,EAAE,EAAE;QACtB,WAAW,EAAE,gBAAgB;QAC7B,uBAAuB,EAAE,EAAE;KAC5B,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,CACrB,KAA6B,EAC7B,KAAqD,EACrD,EAAE;QACF,IAAI,KAAK,KAAK,aAAa,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,GAAG,IAAI;gBACP,uBAAuB,EAAE,KAAe;aACzC,CAAC,CAAC,CAAC;SACL;aAAM,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAChF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,GAAG,IAAI;gBACP,CAAC,KAAK,CAAC,EAAE,KAAK;aACf,CAAC,CAAC,CAAC;SACL;aAAM;YACL,kDAAkD;YAClD,OAAO,CAAC,IAAI,CAAC,EAAE;gBACb,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;iBACrC,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;QACD,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE;YACjC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACb,OAAO;oBACL,GAAG,IAAI;oBACP,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;qBAC3B;oBACD,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,EAAE;qBACV;oBACD,GAAG,EAAE;wBACH,GAAG,IAAI,CAAC,GAAG;wBACX,KAAK,EAAE,EAAE;qBACV;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;YAC3C,OAAO,CAAC,IAAI,CAAC,EAAE;gBACb,OAAO;oBACL,GAAG,IAAI;oBACP,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,cAAc;qBACtB;oBACD,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,cAAc;qBACtB;oBACD,GAAG,EAAE;wBACH,GAAG,IAAI,CAAC,GAAG;wBACX,KAAK,EAAE,eAAe;qBACvB;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAExB,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAE,EAAE;QACtC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,sBAAsB;QACtB,mBAAmB,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACxD,UAAU,CAAC,GAAG,EAAE;YACd,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC3B,cAAc,CAAC,OAAO,EAAE,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,CAAC,kBAAkB;YAAE,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE9B,MAAM,YAAY,GAAiC,GAAG,EAAE;QACtD,OAAO,CAAC,IAAI,CAAC,EAAE;YACb,OAAO;gBACL,GAAG,IAAI;gBACP,EAAE,EAAE;oBACF,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;oBAC3B,KAAK,EACH,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC;iBAC3F;gBACD,EAAE,EAAE;oBACF,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;oBAC3B,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;iBAC1E;gBACD,GAAG,EAAE;oBACH,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;oBAC5B,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;iBAC5E;gBACD,OAAO,EAAE;oBACP,GAAG,IAAI,CAAC,OAAO;oBACf,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;iBACvE;gBACD,WAAW,EAAE;oBACX,GAAG,IAAI,CAAC,WAAW;oBACnB,KAAK,EAAE,IAAI,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;iBAChF;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,YAAY,GAAuC,CAAC,KAAW,EAAE,EAAU,EAAE,EAAE;QACnF,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACzB,mBAAmB,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACpD,wBAAwB;QACxB,eAAe,CAAC,KAAK,CAAC;aACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;YACrB,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YACtD,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,aAAa,IACZ,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,EACzB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,EAC7B,iBAAiB,EAAE,mBAAmB,EACtC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,GAC1B,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,iIAAiI;AACjI,iIAAiI;AACjI,iIAAiI;AACjI,iIAAiI;AACjI,iIAAiI;AACjI,iIAAiI;AAEjI,MAAM,CAAC,MAAM,YAAY,GAAU,GAAG,EAAE;IACtC,MAAM,QAAQ,GAAiB;QAC7B;YACE,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC;YACjC,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;YAC5D,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;YAC9D,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;YACnF,IAAI,EAAE,uHAAuH;YAC7H,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;YAC3B,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;YAC/B,iBAAiB,EAAE,MAAM,CAAC,4BAA4B,CAAC;YACvD,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,oBAAoB;SAClC;QACD;YACE,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC;YAC9B,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;YAC5D,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;YAC9D,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;YACtF,IAAI,EAAE,gIAAgI;YACtI,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;YAC3B,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;YAC/B,iBAAiB,EAAE,MAAM,CAAC,4BAA4B,CAAC;YACvD,OAAO,EAAE,YAAY;SACtB;KACF,CAAC;IAEF,OAAO,CACL,KAAC,iBAAiB,IAChB,YAAY,EAAE,qCAAqC,CAAC,QAAQ,CAAC,EAC7D,IAAI,EAAE,qCAAqC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAClE,EAAE,EAAE,qCAAqC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,EAC3D,EAAE,EAAE,SAAS,EAAE,EACf,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EAChC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAC7D,MAAM,EAAE,QAAQ,GAChB,CACH,CAAC;AACJ,CAAC,CAAC;AAeF,MAAM,CAAC,MAAM,cAAc,GAA+B,CAAC,IAAyB,EAAE,EAAE;IACtF,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,EAAE,IAAI;QACb,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;KACnC,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAE/C,EAAE,CAAC,CAAC;IACP,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAiB,EAAE,CAAC,CAAC;IAEjF,MAAM,wBAAwB,GAAG,CAAC,GAAW,EAAE,YAAoB,EAAE,EAAE;QACrE,IAAI,YAAY,KAAK,OAAO,EAAE;YAC5B,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,IAAI,CAAC,GAAG,CAAC;wBACZ,IAAI,EAAE;4BACJ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;4BACjB,EAAE,EAAE;gCACF,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;gCACpB,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;6BAC3B;4BACD,EAAE,EAAE;gCACF,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;gCACpB,KAAK,EAAE,EAAE;6BACV;4BACD,GAAG,EAAE;gCACH,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG;gCACrB,KAAK,EAAE,EAAE;6BACV;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,YAAY,KAAK,UAAU,EAAE;YACtC,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,IAAI,CAAC,GAAG,CAAC;wBACZ,IAAI,EAAE;4BACJ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;4BACjB,EAAE,EAAE;gCACF,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;gCACpB,KAAK,EAAE,cAAc;6BACtB;4BACD,EAAE,EAAE;gCACF,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;gCACpB,KAAK,EAAE,cAAc;6BACtB;4BACD,GAAG,EAAE;gCACH,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG;gCACrB,KAAK,EAAE,eAAe;6BACvB;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAAC,GAAW,EAAE,UAAkB,EAAE,EAAE;QACjE,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;QAC7F,gBAAgB,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO;gBACL,GAAG,IAAI;gBACP,CAAC,GAAG,CAAC,EAAE;oBACL,GAAG,IAAI,CAAC,GAAG,CAAC;oBACZ,QAAQ,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE;iBAC7C;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,UAAU,CAAC,GAAG,EAAE;YACd,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,IAAI,CAAC,GAAG,CAAC;wBACZ,QAAQ,EAAE,KAAK;qBAChB;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,WAAW,GAA0C,EAAE,CAAC;YAC5D,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,WAAW,GAAG,IAAI,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,IAAI,WAAW,EAAE;gBAEb,WAAW,CAAC,GAAG,CAAC,EAAE,MACnB,EAAE,OAAO,EAAE,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;aACjE;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CACnB,GAAW,EACX,KAA6B,EAC7B,KAAqD,EACrD,EAAE;QACF,gBAAgB,CAAC,QAAQ,CAAC,EAAE;YAC1B,IAAI,KAAK,KAAK,aAAa,EAAE;gBAC3B,OAAO;oBACL,GAAG,QAAQ;oBACX,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,QAAQ,CAAC,GAAG,CAAC;wBAChB,uBAAuB,EAAE,KAAe;qBACzC;iBACF,CAAC;aACH;YACD,OAAO;gBACL,GAAG,QAAQ;gBACX,CAAC,GAAG,CAAC,EAAE;oBACL,GAAG,QAAQ,CAAC,GAAG,CAAC;oBAChB,IAAI,EAAE;wBACJ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI;wBACrB,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAC5E,CAAC,CAAC,KAAK;4BACP,CAAC,CAAC;gCACE,KAAK,EAAE,SAAS;gCAChB,KAAK;6BACN;qBACN;iBACF;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,KAAK,cAAc,EAAE;YAC5B,wBAAwB,CAAC,GAAG,EAAE,KAAe,CAAC,CAAC;SAChD;aAAM,IAAI,KAAK,KAAK,oBAAoB,EAAE;YACzC,sBAAsB,CAAC,GAAG,EAAE,KAAe,CAAC,CAAC;SAC9C;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAA6C,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;QAC1E,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;QAEtC,OAAO,CACL,KAAC,KAAK,IACJ,OAAO,EAAC,0BAA0B,EAClC,OAAO,EACL,8BACE,MAAC,IAAI,eACH,KAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;oCACZ,OAAO,EAAE,CAAC;oCACV,gBAAgB,CAAC,IAAI,CAAC,EAAE;wCACtB,OAAO;4CACL,GAAG,IAAI;4CACP,CAAC,SAAS,CAAC,EAAE;gDACX,GAAG,IAAI,CAAC,SAAS,CAAC;gDAClB,QAAQ,EAAE,IAAI;6CACf;yCACF,CAAC;oCACJ,CAAC,CAAC,CAAC;oCACH,UAAU,CAAC,GAAG,EAAE;wCACd,gBAAgB,CAAC,IAAI,CAAC,EAAE;4CACtB,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;4CACrC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;4CACnC,OAAO,gBAAgB,CAAC;wCAC1B,CAAC,CAAC,CAAC;wCACH,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;oCACnC,CAAC,EAAE,IAAI,CAAC,CAAC;gCACX,CAAC,8BAGM,EAET,KAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;oCACZ,OAAO,EAAE,CAAC;oCACV,gBAAgB,CAAC,IAAI,CAAC,EAAE;wCACtB,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;wCACrC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;wCACnC,OAAO,gBAAgB,CAAC;oCAC1B,CAAC,CAAC,CAAC;gCACL,CAAC,wBAGM,IACJ,EACP,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,GAAG,EAAE;4BACZ,OAAO,EAAE,CAAC;wBACZ,CAAC,uBAGM,IACR,EAEL,MAAM,kBAEN,KAAC,IAAI,IAAC,OAAO,EAAC,SAAS,2FAEhB,GACD,CACT,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;QACnC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;QACjC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,gBAAgB,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO;gBACL,GAAG,IAAI;gBACP,CAAC,GAAG,CAAC,EAAE;oBACL,GAAG,IAAI,CAAC,GAAG,CAAC;oBACZ,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,EAAE;YACd,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;gBACrC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAC7B,OAAO,gBAAgB,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QAClC,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;QACjC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,gBAAgB,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO;gBACL,GAAG,IAAI;gBACP,CAAC,GAAG,CAAC,EAAE;oBACL,GAAG,IAAI,CAAC,GAAG,CAAC;oBACZ,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,EAAE;YACd,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;gBACrC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAC7B,OAAO,gBAAgB,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;QACnC,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,CAC/B,EAAoB,EACpB,YAA0B,EAC1B,aAAiC,EACjC,EAAE;QACF,MAAM,GAAG,GAAG,cAAc,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAC7C,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;YACtB,iCAAiC;YAChC,aAAa,CAAC,GAAG,CAAC,CAAC,MAA8C,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;SACzF;aAAM;YACL,sBAAsB;YACtB,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,MAAM,cAAc,GAAG,SAAS,EAA4B,CAAC;gBAC7D,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,aAAa;wBAChB,uBAAuB,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY;wBACpE,MAAM,EAAE,cAAc;wBACtB,QAAQ,EAAE,CACR,KAA6B,EAC7B,KAAqD,EACrD,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;wBACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC;wBACjC,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;wBAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;qBAC9B;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAiB;QAC/B;YACE,EAAE,EAAE,OAAO;YACX,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;YACrB,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,EAAE,4HAA4H;YAClI,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB;YACpE,WAAW,EAAE;gBACX;oBACE,EAAE,EAAE,UAAU;oBACd,KAAK,EAAE,qCAAqC;oBAC5C,WAAW,EAAE,iBAAiB;iBAC/B;gBACD;oBACE,EAAE,EAAE,UAAU;oBACd,KAAK,EAAE,iDAAiD;oBACxD,WAAW,EAAE,UAAU;iBACxB;aACF,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACjB,OAAO;oBACL,GAAG,UAAU;oBACb,UAAU,EAAE,MAAM,CAAC,wBAAwB,CAAC;oBAC5C,SAAS,EAAE,MAAM,CAAC,uBAAuB,CAAC;iBAC3C,CAAC;YACJ,CAAC,CAAC;SACH;QACD;YACE,EAAE,EAAE,OAAO;YACX,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;YACrB,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,eAAe;SACzB;KACF,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAChB,MAAM,gBAAgB,GAAG,gBAAgB,CACvC,SAAS,CAAC,EAAE,EACZ,SAAS,CAAC,OAAO,EACjB,wBAAwB,EACxB,KAAK,EACL,SAAS,CAAC,IAAI,CACf,CAAC;QACF,OAAO;YACL,GAAG,SAAS;YACZ,OAAO,EAAE,CAAC,EAAoB,EAAE,EAAE;gBAChC,wBAAwB,CAAC,EAAE,EAAE,YAAY,CAAC,KAAK,EAAE;oBAC/C,GAAG,iBAAiB;oBACpB,IAAI,EAAE;wBACJ,GAAG,iBAAiB,CAAC,IAAI;wBACzB,YAAY,EAAE,OAAO;wBACrB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;qBACpD;oBACD,iBAAiB,EAAE,mBAAmB;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,SAAS,EAAE,EAAE,CAAC,EAAE;gBACd,wBAAwB,CAAC,EAAE,EAAE,YAAY,CAAC,OAAO,EAAE;oBACjD,GAAG,iBAAiB;oBACpB,IAAI,EAAE;wBACJ,GAAG,iBAAiB,CAAC,IAAI;wBACzB,YAAY,EAAE,SAAS;wBACvB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;qBACpD;oBACD,iBAAiB,EAAE,mBAAmB;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,iBAAiB,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE;gBACtC,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;gBACjF,wBAAwB,CAAC,EAAE,EAAE,YAAY,CAAC,UAAU,EAAE;oBACpD,GAAG,iBAAiB;oBACpB,IAAI,EAAE;wBACJ,GAAG,iBAAiB,CAAC,IAAI;wBACzB,YAAY,EAAE,OAAO;wBACrB,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,EAAE;wBAC3C,WAAW,EAAE,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBACnE,kBAAkB,EAAE,UAAU,EAAE,EAAE;qBACnC;oBACD,iBAAiB,EAAE,mBAAmB;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,IAAI,CAAC,eAAe;gBACxB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,KAAK,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;oBAC1C,KAAK,EAAE,0BAA0B;oBACjC,QAAQ,EAAE,MAAM,CAAC,mCAAmC,CAAC;oBACrD,WAAW,EAAE,IAAI;iBAClB;SACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,CAAC,EAAoB,EAAE,EAAE;QAC3C,qBAAqB,CAAC,IAAI,CAAC,EAAE;YAC3B,MAAM,oBAAoB,GAAmB,EAAE,CAAC;YAEhD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACjB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAE,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,OAAO,oBAAoB,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,qBAAqB,CAAC;YACpB,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;YACnE;gBACE;oBACE,GAAG,UAAU,CAAC,CAAC,CAAC;oBAChB,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,OAAO;oBACf,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,gBAAgB,CACvB,OAAO,EACP,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EACrB,wBAAwB,EACxB,IAAI,EACJ,gJAAgJ,EAChJ,WAAW,CACZ;oBACD,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC;oBACjC,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;oBACnC,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;oBAC9D,IAAI,EAAE,gJAAgJ;iBACvJ;gBACD;oBACE,GAAG,UAAU,CAAC,CAAC,CAAC;oBAChB,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,gBAAgB,CACvB,OAAO,EACP,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EACrB,wBAAwB,EACxB,IAAI,EACJ,sHAAsH,EACtH,WAAW,CACZ;oBACD,MAAM,EAAE,KAAK;oBACb,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC;oBAC/B,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;oBACjC,IAAI,EAAE,sHAAsH;iBAC7H;aACF;YACD;gBACE;oBACE,GAAG,UAAU,CAAC,CAAC,CAAC;oBAChB,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC;oBACjC,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAC9B,IAAI,EAAE,+HAA+H;oBACrI,SAAS,EAAE;wBACT,OAAO,EAAE,UAAU;qBACpB;iBACF;gBACD;oBACE,GAAG,UAAU,CAAC,CAAC,CAAC;oBAChB,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC;oBAC9B,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;oBACjC,IAAI,EAAE,oIAAoI;iBAC3I;aACF;SACF,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,kBAAkB,GAA8B,kBAAqC,CAAC,GAAG,CAC7F,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACZ,OAAO;YACL,IAAI,EAAE,qCAAqC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YAChB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAC9B,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM;YAC3D,MAAM;YACN,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAC9B,WAAW,EAAE,CAAC,KAAK,CAAC;YACpB,WAAW,EAAE,CAAC,KAAK,CAAC;YACpB,MAAM,EAAE,CAAC,KAAK,CAAC;YACf,WAAW,EAAE,CAAC,KAAK,CAAC;SACK,CAAC;IAC9B,CAAC,CACF,CAAC;IAEF,MAAM,uBAAuB,GAA6B;QACxD;YACE,IAAI,EAAE,qCAAqC,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,EAAE,EAAE,qCAAqC,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;YAC7D,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5C,gBAAgB,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM;YAC/D,MAAM,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E;KACF,CAAC;IAEF,OAAO,CACL,8BACE,KAAC,UAAU,IACT,WAAW,EAAE;oBACX,OAAO,EAAE,CACP,MAAC,IAAI,IACH,SAAS,EAAE;4BACT,UAAU,EAAE,QAAQ;4BACpB,GAAG,EAAE,CAAC;yBACP,aAED,KAAC,MAAM,IAAC,OAAO,EAAC,QAAQ,EAAC,IAAI,kBAC3B,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,GACf,EACT,KAAC,UAAU,IACT,OAAO,EAAC,QAAQ,EAChB,IAAI,EAAC,cAAc,EACnB,IAAI,EAAC,MAAM,EACX,QAAQ,QACR,MAAM,QACN,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GACxB,IACG,CACR;oBACD,OAAO,EAAE,eAAe;iBACzB,EACD,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,kBAAkB,GACrF,EACF,4BACG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACrC,OAAO,KAAC,aAAa,OAAgB,aAAa,CAAC,IAAI,CAAC,IAA7B,IAAI,CAA6B,CAAC;gBAC/D,CAAC,CAAC,GACD,IACF,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,cAAc,CAAC,IAAI,GAAG;IACpB,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,kBAAkB,EAAE,IAAI;CACzB,CAAC;AAEF,cAAc,CAAC,QAAQ,GAAG;IACxB,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC9C,eAAe,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IACjD,kBAAkB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;CACrD,CAAC;AAcF,MAAM,CAAC,MAAM,cAAc,GAA+B,CAAC,IAAyB,EAAE,EAAE;IACtF,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAA+B,MAAM,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,WAAW,GAA8B;QAC7C,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,UAAU;KACjB,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,WAAW,CAAC,OAAO,IAAI,CAAC,CAAC;QACzB,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACvC,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;QACtE,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,UAAU,IACT,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EACT,IAAI,CAAC,iBAAiB;YACpB,CAAC,CAAC;gBACE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;gBAClC,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,gBAAgB;gBACrD,MAAM,EAAE,gBAAgB;aACzB;YACH,CAAC,CAAC,SAAS,GAEf,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,cAAc,CAAC,IAAI,GAAG;IACpB,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF,cAAc,CAAC,QAAQ,GAAG;IACxB,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;CACpD,CAAC;AAcF,MAAM,CAAC,MAAM,oBAAoB,GAAqC,CACpE,IAA+B,EAC/B,EAAE;IACF,OAAO,CACL,KAAC,gBAAgB,IACf,EAAE,EAAE,SAAS,EAAE,EACf,kBAAkB,EAAE;YAClB;gBACE,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,eAAe;gBACzB,YAAY,EAAE,2BAA2B;aAC1C;YACD;gBACE,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,gBAAgB;gBAC1B,YAAY,EAAE,4BAA4B;aAC3C;SACF,EACD,OAAO,EAAC,0EAA0E,EAClF,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EACxF,KAAK,EAAC,iBAAiB,EACvB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,EAAE,EACX,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,MAAM,EAAE,IAAI,CAAC,QAAQ,EACrB,QAAQ,EAAE,CAAC,EAA+B,EAAE,EAAE;YAC5C,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,oBAAoB,CAAC,IAAI,GAAG;IAC1B,gBAAgB,EAAE,CAAC;IACnB,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,oBAAoB,CAAC,QAAQ,GAAG;IAC9B,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IACjD,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;CAC3C,CAAC;AAgBF,MAAM,CAAC,MAAM,oBAAoB,GAAsC,CACrE,IAAgC,EAChC,EAAE;IACF,MAAM,kBAAkB,GAAG,CAAC,CAAC;IAC7B,MAAM,iBAAiB,GAAG,CAAC,CAAC;IAE5B,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAChD,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAC/C,CAAC;IACF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAqB,sBAAsB,CAAC,CAAC;IAEzF,MAAM,eAAe,GAAG,CAAC,EAAU,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAChD,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;QACzC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC;QAEjF,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,eAAe,GAA6B,CAAC,EAAuB,EAAE,EAAE;QAC5E,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC;IAEF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,OAAO,EAAE;YACZ,UAAU,CAAC,IAAI,CAAC,CAAC;YAEjB,UAAU,CAAC,GAAG,EAAE;gBACd,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClB,gBAAgB,CAAC,SAAS,CAAC,EAAE;oBAC3B,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC;oBAC7C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CACtC,mBAAmB,EACnB,mBAAmB,GAAG,iBAAiB,CACxC,CAAC;oBAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;wBACzB,UAAU,CAAC,KAAK,CAAC,CAAC;qBACnB;oBAED,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;SACV;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,KAAC,gBAAgB,IACf,GAAG,EAAE,mBAAmB,EACxB,gBAAgB,EAAE,EAAE,EACpB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,aAAa,EAClC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,eAAe,EAChD,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAC/D,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,EAChC,YAAY,EAAC,YAAY,GACzB,CACH,CAAC;AACJ,CAAC,CAAC;AAcF,MAAM,CAAC,MAAM,oBAAoB,GAAqC,CACpE,IAA+B,EAC/B,EAAE;IACF,MAAM,kBAAkB,GAAG,CAAC,CAAC;IAC7B,MAAM,iBAAiB,GAAG,CAAC,CAAC;IAE5B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,EAAsB,CAAC;IACvE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC3F,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,oBAAoB,GAAG,CAAC,EAA+B,EAAE,EAAE;QAC/D,eAAe,CAAC,EAAE,CAAC,CAAC;QAEpB,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAC5C,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;QACpC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC;QAE5E,YAAY,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,IAAI,CAAC,OAAO,EAAE;YACZ,UAAU,CAAC,IAAI,CAAC,CAAC;YAEjB,UAAU,CAAC,GAAG,EAAE;gBACd,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClB,YAAY,CAAC,SAAS,CAAC,EAAE;oBACvB,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC;oBAC7C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CACtC,mBAAmB,EACnB,mBAAmB,GAAG,iBAAiB,CACxC,CAAC;oBAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;wBACzB,UAAU,CAAC,KAAK,CAAC,CAAC;qBACnB;oBAED,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;SACV;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,YAAY,CAAC,EACrE,CAAC,YAAY,EAAE,SAAS,CAAC,CAC1B,CAAC;IAEF,MAAM,OAAO,GACX,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAC3B,KAAC,UAAU,IAAC,OAAO,EAAC,mBAAmB,GAAG,CAC3C,CAAC,CAAC,CAAC,CACF,KAAC,cAAc,IAAC,kBAAkB,EAAE,eAAe,GAAG,CAAC,KAAK,CAAC,GAAI,CAClE,CAAC;IAEJ,MAAM,SAAS,GACb,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,wBAAwB;IACxB,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,aAC5B,KAAC,cAAc,IACb,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,GACzC,EACF,MAAC,IAAI,eACH,MAAC,UAAU,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aACrD,KAAC,IAAI,IAAC,IAAI,EAAC,cAAc,GAAG,EAC5B,KAAC,IAAI,IAAC,OAAO,EAAC,IAAI,6BAAoB,IAC3B,EACb,KAAC,WAAW,cACV,KAAC,cAAc,IAAC,MAAM,EAAE,2BAA2B,EAAE,OAAO,EAAC,SAAS,GAAG,GAC7D,IACT,EACP,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACjC,GAAG,KAAK;oBACR,OAAO,EAAE,KAAC,WAAW,cAAE,KAAK,CAAC,OAAO,GAAe;oBACnD,SAAS,EAAE,CACT,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,aACvD,KAAC,IAAI,IAAC,OAAO,EAAC,SAAS,YAAE,KAAK,CAAC,SAAS,CAAC,SAAS,GAAQ,EAC1D,KAAC,WAAW,cAAE,KAAK,CAAC,SAAS,CAAC,KAAK,GAAe,IAC7C,CACR;iBACF,CAAC,CAAC,EACH,WAAW,EAAC,UAAU,GACtB,IACG,CACR,CAAC;IAEJ,OAAO,CACL,KAAC,YAAY,IACX,SAAS,QACT,IAAI,EACF,KAAC,YAAY,IACX,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf,EACD,IAAI,EACF,KAAC,oBAAoB,IACnB,WAAW,EAAE,oBAAoB,EACjC,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAC5C,OAAO,EAAE,OAAO,GAChB,EAEJ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,qBAAqB,EACnB,SAAS;gBACP,CAAC,CAAC;oBACE,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;oBACrC,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE;oBACtC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;iBACnC;gBACH,CAAC,CAAC,SAAS,EAEf,yBAAyB,EAAE,CAAC,CAAC,SAAS,GACtC,GAEJ,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,oBAAoB,CAAC,IAAI,GAAG;IAC1B,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF,oBAAoB,CAAC,QAAQ,GAAG;IAC9B,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;CACpD,CAAC;AACF,oBAAoB,CAAC,UAAU,GAAG;IAChC,MAAM,EAAE,YAAY;CACrB,CAAC","sourcesContent":["// cSpell:words calibri Trichy Nagercoil\nimport {\n useState,\n useRef,\n useCallback,\n useEffect,\n createRef,\n RefObject,\n MouseEvent,\n FunctionComponent\n} from 'react';\nimport { action } from '@storybook/addon-actions';\nimport { Meta, Story } from '@storybook/react';\nimport { useMemo } from '@storybook/addons';\n\nimport {\n Card,\n CardContent,\n createUID,\n MenuButton,\n MenuItemProps,\n MenuProps,\n Icon,\n registerIcon,\n Flex,\n Button,\n menuHelpers,\n CardHeader,\n Text,\n SummaryList,\n Grid,\n FieldValueList,\n StyledLabel,\n EmptyState,\n Modal,\n useModalManager,\n useModalContext,\n useToaster\n} from '@pega/cosmos-react-core';\nimport * as filterIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/filter.icon';\nimport {\n Email as EmailComponent,\n EmailConversation,\n EmailComposer,\n EmailShell,\n EmailSummaryItem,\n EmailSummaryList,\n EntityList,\n EmailProps,\n EmailConversationProps,\n EmailComposerProps,\n EntityListProps,\n EmailManager,\n EmailSummaryListProps,\n EmailSummaryItemProps\n} from '@pega/cosmos-react-social';\nimport {\n EmailComposerFieldType,\n EmailComposerValueType,\n EmailComposerHandleValue,\n ContextMenuProps\n} from '@pega/cosmos-react-social/lib/components/Email/Email.types';\n\nimport { AppShellDemo } from '../../core/AppShell/AppShell.stories';\n\nimport {\n bccParticipants,\n ccParticipants,\n emailBodyContent,\n participants,\n toParticipants,\n emailAttachments,\n EntityListMockData,\n viewAnalysisEmailHeaderMock,\n topicListMock,\n emailActions,\n generateEmailConversationParticipants,\n templates,\n handleExternalEntry,\n emailDemoActions,\n LaunchAction,\n baseComposerProps,\n sentiment,\n emailSummaryItems,\n mockEmails,\n mockSuggestedReplies,\n mockEmailBodyTemplates,\n forwardedContent,\n getCompositeId,\n emptyFieldErrorMessage,\n fieldValidation,\n emailWorklistItemsMock,\n contextMenuItemsMock,\n highlightedEntitiesMock,\n mockUploadImage\n} from './Email.mocks';\nimport { StyledEmailCardContent } from './Email.styles';\n\nregisterIcon(filterIcon);\n\nexport default {\n title: 'Social/Email',\n component: EmailComponent\n} as Meta;\n\n// _______ .___ ___. ___ __ __\n// | ____|| \\/ | / \\ | | | |\n// | |__ | \\ / | / ^ \\ | | | |\n// | __| | |\\/| | / /_\\ \\ | | | |\n// | |____ | | | | / _____ \\ | | | `----.\n// |_______||__| |__| /__/ \\__\\ |__| |_______|\n\ninterface EmailDemoProps {\n enableEntityHighlighting?: boolean;\n enableContextMenu?: boolean;\n forwardedContent?: string;\n}\n\nexport const Email: Story<EmailDemoProps> = (args: EmailDemoProps) => {\n const emailImperativeHandle: ContextMenuProps['handle'] = useRef(null);\n const timeout = useRef<number | null>(null);\n\n const handleRightClick = () => {\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n timeout.current = window.setTimeout(() => {\n emailImperativeHandle.current?.setContextMenuItems(contextMenuItemsMock);\n }, 1000);\n };\n\n return (\n <Card>\n <StyledEmailCardContent>\n <EmailComponent\n id={createUID()}\n timeStamp='2021-01-05T09:12'\n from={mockEmails['Laura Stevens']}\n cc={[mockEmails['Adam Gillchrist'], mockEmails['John Paul']]}\n bcc={[mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']]}\n to={[mockEmails['Sara Davis'], mockEmails['John Brown'], mockEmails['Joe Stevens']]}\n body='<div>Hi,<br/><p>I am one of the customer of Indian Overseas Bank, <b><i>Nagercoil</i></b> branch, with code <b><a href=\"www.google.com\"><i>3967</i></a></b>. I have a saving bank account here. My account number is <i>6785420965476</i>.</p><br/><p>I have been given a debit cum ATM card from this bank and the same has been lost when I was traveling from Nagercoil to Trichy by Bus on Jan 04, 2021. I remember that my ATM card number was 1920 6746 8653 1256.</p><br/>I hereby request you to block my debit card immediately to prevent misuse of the same by some others. Also I request you to give me an new debit card as early as possible.<br/><br/>Regards,<br/>Laura Stevens</div>'\n forwardedContent={args.forwardedContent}\n entityHighlightMapping={\n args.enableEntityHighlighting ? highlightedEntitiesMock : undefined\n }\n subject='I lost my debit card'\n onReply={action('On reply')}\n onReplyAll={action('On reply all')}\n onForward={action('On forward')}\n onSuggestionClick={action('On Suggested reply clicked')}\n sentiment={{\n variant: 'neutral'\n }}\n actions={emailActions}\n suggestions={mockSuggestedReplies}\n contextMenu={\n args.enableContextMenu\n ? {\n onItemClick: action('onItemClick'),\n onContextMenu: handleRightClick,\n handle: emailImperativeHandle\n }\n : undefined\n }\n attachments={[\n {\n id: 'attachment_0',\n value: 'https://pega.com/media/document.doc',\n displayText: 'Policy document'\n },\n {\n id: 'attachment_1',\n value: 'https://pbs.twimg.com/media/ENNN5PAXkAE-hag.jpg',\n displayText: 'E-Ticket'\n }\n ].map(attachment => {\n return {\n ...attachment,\n onDownload: action('On attachment download'),\n onPreview: action('On attachment preview')\n };\n })}\n />\n </StyledEmailCardContent>\n </Card>\n );\n};\n\nEmail.args = {\n enableEntityHighlighting: false,\n enableContextMenu: false,\n // eslint-disable-next-line demo-patterns/literal-args\n forwardedContent\n};\n\nEmail.argTypes = {\n enableEntityHighlighting: { control: { type: 'boolean' } },\n enableContextMenu: { control: { type: 'boolean' } },\n forwardedContent: { control: { type: 'text' } }\n};\n\n// ______ ______ .___ ___. .______ ______ _______. _______ .______\n// / | / __ \\ | \\/ | | _ \\ / __ \\ / || ____|| _ \\\n// | ,----'| | | | | \\ / | | |_) | | | | | | (----`| |__ | |_) |\n// | | | | | | | |\\/| | | ___/ | | | | \\ \\ | __| | /\n// | `----.| `--' | | | | | | | | `--' | .----) | | |____ | |\\ \\----.\n// \\______| \\______/ |__| |__| | _| \\______/ |_______/ |_______|| _| `._____|\n\nexport const Composer: Story = () => {\n const [composerProgress, setComposerProgress] = useState<EmailComposerProps['progress']>(false);\n const composerHandle = useRef<EmailComposerHandleValue>(null);\n\n const [data, setData] = useState<\n EmailComposerProps['data'] & { bodyContentCurrentValue: string }\n >({\n to: { value: toParticipants },\n cc: { value: [] },\n bcc: { value: [] },\n subject: { value: 'Request: Pause service' },\n bodyContent: {\n defaultValue: 'Hi, Hope you are doing well'\n },\n responseType: 'reply',\n selectedTemplateId: '',\n attachments: emailAttachments,\n bodyContentCurrentValue: ''\n });\n\n const handleOnChange = (\n field: EmailComposerFieldType,\n value: EmailComposerValueType<EmailComposerFieldType>\n ) => {\n if (field === 'bodyContent') {\n setData(prev => ({\n ...prev,\n bodyContentCurrentValue: value as string\n }));\n } else if (['responseType', 'attachments', 'selectedTemplateId'].includes(field)) {\n setData(prev => ({\n ...prev,\n [field]: value\n }));\n } else {\n // Clearing error message as soon as value changes\n setData(prev => {\n return {\n ...prev,\n [field]: { error: undefined, value }\n };\n });\n }\n action('onChange')(field, value);\n };\n\n useEffect(() => {\n if (data.responseType === 'reply') {\n setData(prev => {\n return {\n ...prev,\n to: {\n ...prev.to,\n value: [toParticipants[0]]\n },\n cc: {\n ...prev.cc,\n value: []\n },\n bcc: {\n ...prev.bcc,\n value: []\n }\n };\n });\n } else if (data.responseType === 'replyAll') {\n setData(prev => {\n return {\n ...prev,\n to: {\n ...prev.to,\n value: toParticipants\n },\n cc: {\n ...prev.cc,\n value: ccParticipants\n },\n bcc: {\n ...prev.bcc,\n value: bccParticipants\n }\n };\n });\n }\n }, [data.responseType]);\n\n const onTemplateChange = (id: string) => {\n const selectedTemplate = mockEmailBodyTemplates.find(template => template.id === id);\n // Simulating api call\n setComposerProgress({ message: 'Loading template...' });\n setTimeout(() => {\n setComposerProgress(false);\n composerHandle.current?.replaceBodyContent(selectedTemplate?.content || '');\n }, 1000);\n };\n\n useEffect(() => {\n if (data.selectedTemplateId) onTemplateChange(data.selectedTemplateId);\n }, [data.selectedTemplateId]);\n\n const handleOnSend: EmailComposerProps['onSend'] = () => {\n setData(prev => {\n return {\n ...prev,\n to: {\n value: prev.to?.value || [],\n error:\n data?.to?.value.length === 0 ? emptyFieldErrorMessage : fieldValidation(data?.to?.value)\n },\n cc: {\n value: prev.cc?.value || [],\n error: data.cc === undefined ? undefined : fieldValidation(data.cc.value)\n },\n bcc: {\n value: prev.bcc?.value || [],\n error: data.bcc === undefined ? undefined : fieldValidation(data.bcc.value)\n },\n subject: {\n ...prev.subject,\n error: data.subject?.value === '' ? emptyFieldErrorMessage : undefined\n },\n bodyContent: {\n ...prev.bodyContent,\n error: data.bodyContentCurrentValue === '' ? emptyFieldErrorMessage : undefined\n }\n };\n });\n };\n\n const onImageAdded: EmailComposerProps['onImageAdded'] = (image: File, id: string) => {\n action('On Image added');\n setComposerProgress({ message: 'Uploading image' });\n // Simulate image upload\n mockUploadImage(image)\n .then(({ src, alt }) => {\n composerHandle.current?.updateImage({ src, alt }, id);\n setComposerProgress(false);\n })\n .catch(() => {\n setComposerProgress(false);\n });\n };\n\n return (\n <EmailComposer\n handle={composerHandle}\n progress={composerProgress}\n onSave={action('On save')}\n onSend={handleOnSend}\n onCancel={action('On cancel')}\n externalValidator={handleExternalEntry}\n participants={participants}\n onChange={handleOnChange}\n data={data}\n templates={templates}\n onImageAdded={onImageAdded}\n />\n );\n};\n\n// ______ ______ .__ __. ____ ____ _______ .______ _______. ___ .___________. __ ______ .__ __.\n// / | / __ \\ | \\ | | \\ \\ / / | ____|| _ \\ / | / \\ | || | / __ \\ | \\ | |\n// | ,----'| | | | | \\| | \\ \\/ / | |__ | |_) | | (----` / ^ \\ `---| |----`| | | | | | | \\| |\n// | | | | | | | . ` | \\ / | __| | / \\ \\ / /_\\ \\ | | | | | | | | | . ` |\n// | `----.| `--' | | |\\ | \\ / | |____ | |\\ \\----.----) | / _____ \\ | | | | | `--' | | |\\ |\n// \\______| \\______/ |__| \\__| \\__/ |_______|| _| `._____|_______/ /__/ \\__\\ |__| |__| \\______/ |__| \\__|\n\nexport const Conversation: Story = () => {\n const emailArr: EmailProps[] = [\n {\n id: 'item_0',\n timeStamp: '2021-01-05T09:12',\n from: mockEmails['Laura Stevens'],\n cc: [mockEmails['Adam Gillchrist'], mockEmails['John Paul']],\n bcc: [mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']],\n to: [mockEmails['Sara Davis'], mockEmails['John Brown'], mockEmails['Joe Stevens']],\n body: '<div> Hi, <br /> <br /> <div>Sure.. Here is your E-Ticket !! </div> <br /><br /> Regards, <br /> Laura Stevens </div>',\n unRead: true,\n onReply: action('On reply'),\n onForward: action('On forward'),\n onSuggestionClick: action('On Suggested reply clicked'),\n actions: emailActions,\n suggestions: mockSuggestedReplies\n },\n {\n id: 'item_1',\n timeStamp: '2021-01-02T03:12',\n from: mockEmails['Sara Davis'],\n cc: [mockEmails['Adam Gillchrist'], mockEmails['John Paul']],\n bcc: [mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']],\n to: [mockEmails['Laura Stevens'], mockEmails['John Brown'], mockEmails['Joe Stevens']],\n body: '<div> Hi, <br /> <br /> <div>I’m still at the airport, I need help now!! </div> <br /><br /> Regards, <br /> Sara Davis </div>',\n onReply: action('On reply'),\n onForward: action('On forward'),\n onSuggestionClick: action('On Suggested reply clicked'),\n actions: emailActions\n }\n ];\n\n return (\n <EmailConversation\n participants={generateEmailConversationParticipants(emailArr)}\n from={generateEmailConversationParticipants(emailArr, ['from'])[0]}\n to={generateEmailConversationParticipants(emailArr, ['to'])}\n id={createUID()}\n timeStamp={emailArr[0].timeStamp}\n unReadEmailCount={emailArr.filter(item => item.unRead).length}\n emails={emailArr}\n />\n );\n};\n\n// _______ .___ ___. ___ __ __ _______. __ __ _______ __ __\n// | ____|| \\/ | / \\ | | | | / || | | | | ____|| | | |\n// | |__ | \\ / | / ^ \\ | | | | | (----`| |__| | | |__ | | | |\n// | __| | |\\/| | / /_\\ \\ | | | | \\ \\ | __ | | __| | | | |\n// | |____ | | | | / _____ \\ | | | `----. .----) | | | | | | |____ | `----.| `----.\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |_______/ |__| |__| |_______||_______||_______|\n\ninterface EmailShellDemoProps {\n autoCollapse?: boolean;\n hideSuggestions?: boolean;\n singleConversation?: boolean;\n}\n\nexport const EmailShellDemo: Story<EmailShellDemoProps> = (args: EmailShellDemoProps) => {\n const { create } = useModalManager();\n const { push } = useToaster();\n const actions = ['Transfer', 'End conversation'].map(name => ({\n primary: name,\n id: name,\n onClick: action(`Clicked ${name}`)\n }));\n\n const [composersData, setComposersData] = useState<{\n [key: string]: EmailComposerProps & { bodyContentCurrentValue: string };\n }>({});\n const [conversationEmails, setConversationEmails] = useState<EmailProps[][]>([]);\n\n const handleResponseTypeChange = (uid: string, responseType: string) => {\n if (responseType === 'reply') {\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n data: {\n ...prev[uid].data,\n to: {\n ...prev[uid].data.to,\n value: [toParticipants[0]]\n },\n cc: {\n ...prev[uid].data.cc,\n value: []\n },\n bcc: {\n ...prev[uid].data.bcc,\n value: []\n }\n }\n }\n };\n });\n } else if (responseType === 'replyAll') {\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n data: {\n ...prev[uid].data,\n to: {\n ...prev[uid].data.to,\n value: toParticipants\n },\n cc: {\n ...prev[uid].data.cc,\n value: ccParticipants\n },\n bcc: {\n ...prev[uid].data.bcc,\n value: bccParticipants\n }\n }\n }\n };\n });\n }\n };\n\n const handleTemplateIdChange = (uid: string, templateId: string) => {\n const selectedTemplate = mockEmailBodyTemplates.find(template => template.id === templateId);\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: { message: 'Loading template...' }\n }\n };\n });\n\n // Simulating api call\n setTimeout(() => {\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: false\n }\n };\n });\n\n let currentData: { [key: string]: EmailComposerProps } = {};\n setComposersData(prev => {\n currentData = prev;\n return prev;\n });\n\n if (currentData) {\n (\n currentData[uid]?.handle as RefObject<EmailComposerHandleValue>\n )?.current?.replaceBodyContent(selectedTemplate?.content || '');\n }\n }, 1000);\n };\n\n const handleChange = (\n uid: string,\n field: EmailComposerFieldType,\n value: EmailComposerValueType<EmailComposerFieldType>\n ) => {\n setComposersData(prevData => {\n if (field === 'bodyContent') {\n return {\n ...prevData,\n [uid]: {\n ...prevData[uid],\n bodyContentCurrentValue: value as string\n }\n };\n }\n return {\n ...prevData,\n [uid]: {\n ...prevData[uid],\n data: {\n ...prevData[uid].data,\n [field]: ['responseType', 'attachments', 'selectedTemplateId'].includes(field)\n ? value\n : {\n error: undefined, // Clearing error on change\n value\n }\n }\n }\n };\n });\n\n if (field === 'responseType') {\n handleResponseTypeChange(uid, value as string);\n } else if (field === 'selectedTemplateId') {\n handleTemplateIdChange(uid, value as string);\n }\n };\n\n const MyModal: FunctionComponent<{ currentID: string }> = ({ currentID }) => {\n const { dismiss } = useModalContext();\n\n return (\n <Modal\n heading='Discard unsaved changes?'\n actions={\n <>\n <Flex>\n <Button\n onClick={() => {\n dismiss();\n setComposersData(prev => {\n return {\n ...prev,\n [currentID]: {\n ...prev[currentID],\n progress: true\n }\n };\n });\n setTimeout(() => {\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[currentID];\n return newComposersData;\n });\n push({ content: 'Draft Saved' });\n }, 1000);\n }}\n >\n Save as draft\n </Button>\n\n <Button\n onClick={() => {\n dismiss();\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[currentID];\n return newComposersData;\n });\n }}\n >\n Discard\n </Button>\n </Flex>\n <Button\n variant='primary'\n onClick={() => {\n dismiss();\n }}\n >\n Cancel\n </Button>\n </>\n }\n center\n >\n <Text variant='primary'>\n You have unsaved changes. You can discard them or go back to keep working.\n </Text>\n </Modal>\n );\n };\n\n const handleCancel = (uid: string) => {\n create(MyModal, { currentID: uid }, { alert: true });\n };\n\n const handleSend = (uid: string) => {\n action('Send')();\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: true\n }\n };\n });\n setTimeout(() => {\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[uid];\n return newComposersData;\n });\n push({ content: 'Email Send' });\n }, 1000);\n };\n\n const handleSave = (uid: string) => {\n action('Save')();\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: true\n }\n };\n });\n setTimeout(() => {\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[uid];\n return newComposersData;\n });\n push({ content: 'Draft Saved' });\n }, 1000);\n };\n\n const createOrActivateComposer = (\n id: EmailProps['id'],\n launchAction: LaunchAction,\n composerProps: EmailComposerProps\n ) => {\n const uid = getCompositeId(id, launchAction);\n if (composersData[uid]) {\n // Activate the existing composer\n (composersData[uid].handle as RefObject<EmailComposerHandleValue>)?.current?.activate();\n } else {\n // Create new composer\n setComposersData(prev => {\n const composerHandle = createRef<EmailComposerHandleValue>();\n return {\n ...prev,\n [uid]: {\n ...composerProps,\n bodyContentCurrentValue: composerProps.data.bodyContent.defaultValue,\n handle: composerHandle,\n onChange: (\n field: EmailComposerFieldType,\n value: EmailComposerValueType<EmailComposerFieldType>\n ) => handleChange(uid, field, value),\n onCancel: () => handleCancel(uid),\n onSend: () => handleSend(uid),\n onSave: () => handleSave(uid)\n }\n };\n });\n }\n };\n\n const emailsData: EmailProps[] = [\n {\n id: 'item0',\n timeStamp: '2021-01-05T09:12',\n from: participants[0],\n to: participants.slice(0, 2),\n body: '<div>Hi, <br /> <br /><div>Your address change request is approved.</div> <br /> <br />Regards, <br />Laura Stevens </div>',\n unRead: true,\n subject: 'Pause service',\n suggestions: args.hideSuggestions ? undefined : mockSuggestedReplies,\n attachments: [\n {\n id: 'item_1_0',\n value: 'https://pega.com/media/document.doc',\n displayText: 'Policy document'\n },\n {\n id: 'item_1_1',\n value: 'https://pbs.twimg.com/media/ENNN5PAXkAE-hag.jpg',\n displayText: 'E-Ticket'\n }\n ].map(attachment => {\n return {\n ...attachment,\n onDownload: action('On attachment download'),\n onPreview: action('On attachment preview')\n };\n })\n },\n {\n id: 'item1',\n timeStamp: '2021-01-02T03:12',\n from: participants[3],\n to: participants.slice(2, 4),\n body: emailBodyContent,\n unRead: true,\n subject: 'Pause service'\n }\n ].map(emailData => {\n const emailActionItems = emailDemoActions(\n emailData.id,\n emailData.subject,\n createOrActivateComposer,\n false,\n emailData.body\n );\n return {\n ...emailData,\n onReply: (id: EmailProps['id']) => {\n createOrActivateComposer(id, LaunchAction.REPLY, {\n ...baseComposerProps,\n data: {\n ...baseComposerProps.data,\n responseType: 'reply',\n subject: { value: `Re-${emailData.subject}` || '' }\n },\n externalValidator: handleExternalEntry\n });\n },\n onForward: id => {\n createOrActivateComposer(id, LaunchAction.FORWARD, {\n ...baseComposerProps,\n data: {\n ...baseComposerProps.data,\n responseType: 'forward',\n subject: { value: `Fw-${emailData.subject}` || '' }\n },\n externalValidator: handleExternalEntry\n });\n },\n onSuggestionClick: (id, suggestionId) => {\n const suggestion = emailData.suggestions?.find(item => item.id === suggestionId);\n createOrActivateComposer(id, LaunchAction.SUGGESTION, {\n ...baseComposerProps,\n data: {\n ...baseComposerProps.data,\n responseType: 'reply',\n subject: { value: suggestion?.title || '' },\n bodyContent: { defaultValue: suggestion ? suggestion.content : '' },\n selectedTemplateId: suggestion?.id\n },\n externalValidator: handleExternalEntry\n });\n },\n actions: emailActionItems,\n tags: args.hideSuggestions\n ? undefined\n : {\n items: ['Pause service', 'Lost or stolen'],\n label: 'Associated service cases',\n onRemove: action('On Associated service case remove'),\n dismissable: true\n }\n };\n });\n\n const deleteEmail = (id: EmailProps['id']) => {\n setConversationEmails(prev => {\n const newEmailConversation: EmailProps[][] = [];\n\n prev.forEach(arr => {\n const newArr = arr.filter(index => index.id !== id);\n if (newArr.length !== 0) newEmailConversation.push(newArr);\n });\n return newEmailConversation;\n });\n };\n\n useEffect(() => {\n setConversationEmails([\n [{ ...emailsData[0] }, { ...emailsData[1], status: 'undelivered' }],\n [\n {\n ...emailsData[0],\n id: 'item2',\n status: 'draft',\n unRead: false,\n actions: emailDemoActions(\n 'item2',\n emailsData[0].subject,\n createOrActivateComposer,\n true,\n '<div>Hi, <br /> <br /><div>Sure, Our executive will come and check your connection in 24hrs. </div> <br />Regards, <br />Hugh Phillips </div>',\n deleteEmail\n ),\n timeStamp: '2021-01-03T17:15',\n from: mockEmails['Hugh Phillips'],\n to: [mockEmails['Mystery Rey'], ...emailsData[0].to],\n cc: [mockEmails['Adam Gillchrist']],\n bcc: [mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']],\n body: '<div>Hi, <br /> <br /><div>Sure, Our executive will come and check your connection in 24hrs. </div> <br />Regards, <br />Hugh Phillips </div>'\n },\n {\n ...emailsData[1],\n id: 'item3',\n status: 'draft',\n actions: emailDemoActions(\n 'item3',\n emailsData[0].subject,\n createOrActivateComposer,\n true,\n '<div>Hi, <br /> <br /><div>Can you fix my internet connection. </div> <br /> <br />Regards, <br />Rey Mystery </div>',\n deleteEmail\n ),\n unRead: false,\n timeStamp: '2021-01-02T14:16',\n from: mockEmails['Mystery Rey'],\n to: [mockEmails['Hugh Phillips']],\n body: '<div>Hi, <br /> <br /><div>Can you fix my internet connection. </div> <br /> <br />Regards, <br />Rey Mystery </div>'\n }\n ],\n [\n {\n ...emailsData[0],\n id: 'item4',\n unRead: true,\n timeStamp: '2020-12-05T18:18',\n from: mockEmails['Laura Stevens'],\n to: [mockEmails['Sara Davis']],\n body: '<div>Hi, <br /> <br /><div>Sure, Our executive will call you shortly. </div> <br /> <br />Regards, <br />Laura Stevens </div>',\n sentiment: {\n variant: 'positive'\n }\n },\n {\n ...emailsData[1],\n id: 'item5',\n unRead: true,\n timeStamp: '2021-01-04T08:30',\n from: mockEmails['Sara Davis'],\n to: [mockEmails['Laura Stevens']],\n body: '<div>Hi, <br /> <br /><div>Can you show please explain your new mobile plans. </div> <br /> <br />Regards, <br />Sara Davis </div>'\n }\n ]\n ]);\n }, []);\n\n const emailConversations: EmailConversationProps[] = (conversationEmails as EmailProps[][]).map(\n (emails, i) => {\n return {\n from: generateEmailConversationParticipants(emails, ['from'])[0],\n to: emails[0].to,\n id: `item_${i}`,\n timeStamp: emails[0].timeStamp,\n unReadEmailCount: emails.filter(item => item.unRead).length,\n emails,\n sentiment: emails[0].sentiment,\n isForwarded: i !== 2,\n isCollapsed: i !== 0,\n drafts: i === 1,\n undelivered: i === 0\n } as EmailConversationProps;\n }\n );\n\n const singleEmailConversation: EmailConversationProps[] = [\n {\n from: generateEmailConversationParticipants(emailsData, ['from'])[0],\n to: generateEmailConversationParticipants(emailsData, ['to']),\n id: 'item_0',\n timeStamp: new Date(emailsData[0].timeStamp),\n unReadEmailCount: emailsData.filter(item => item.unRead).length,\n emails: [{ ...emailsData[0], status: 'undelivered' }, { ...emailsData[1] }]\n }\n ];\n\n return (\n <>\n <EmailShell\n headerProps={{\n actions: (\n <Flex\n container={{\n alignItems: 'center',\n gap: 0\n }}\n >\n <Button variant='simple' icon>\n <Icon name='filter' />\n </Button>\n <MenuButton\n variant='simple'\n text='More actions'\n icon='more'\n iconOnly\n portal\n menu={{ items: actions }}\n />\n </Flex>\n ),\n subject: 'Pause service'\n }}\n autoCollapse={args.autoCollapse}\n conversations={args.singleConversation ? singleEmailConversation : emailConversations}\n />\n <>\n {Object.keys(composersData).map(guid => {\n return <EmailComposer key={guid} {...composersData[guid]} />;\n })}\n </>\n </>\n );\n};\n\nEmailShellDemo.args = {\n autoCollapse: true,\n hideSuggestions: false,\n singleConversation: true\n};\n\nEmailShellDemo.argTypes = {\n autoCollapse: { control: { type: 'boolean' } },\n hideSuggestions: { control: { type: 'boolean' } },\n singleConversation: { control: { type: 'boolean' } }\n};\n\n// _______ .__ __. .___________. __ .___________.____ ____ __ __ _______.___________.\n// | ____|| \\ | | | || | | |\\ \\ / / | | | | / | |\n// | |__ | \\| | `---| |----`| | `---| |----` \\ \\/ / | | | | | (----`---| |----`\n// | __| | . ` | | | | | | | \\_ _/ | | | | \\ \\ | |\n// | |____ | |\\ | | | | | | | | | | `----.| | .----) | | |\n// |_______||__| \\__| |__| |__| |__| |__| |_______||__| |_______/ |__|\n\ninterface EntityListDemoProps {\n enableContextMenu?: boolean;\n onContextMenu?: (e: MouseEvent) => void;\n}\n\nexport const EntityListDemo: Story<EntityListDemoProps> = (args: EntityListDemoProps) => {\n const itemCounter = useRef(3);\n const timeout = useRef<number | null>(null);\n const imperativeHandle: ContextMenuProps['handle'] = useRef(null);\n const headerProps: EntityListProps['header'] = {\n icon: 'list-number',\n text: 'Entities'\n };\n\n const handleRightClick = () => {\n itemCounter.current += 1;\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n timeout.current = window.setTimeout(() => {\n imperativeHandle.current?.setContextMenuItems(contextMenuItemsMock);\n }, 1000);\n };\n\n return (\n <EntityList\n header={headerProps}\n content={EntityListMockData}\n contextMenu={\n args.enableContextMenu\n ? {\n onItemClick: action('onItemClick'),\n onContextMenu: args.onContextMenu || handleRightClick,\n handle: imperativeHandle\n }\n : undefined\n }\n />\n );\n};\n\nEntityListDemo.args = {\n enableContextMenu: true\n};\n\nEntityListDemo.argTypes = {\n enableContextMenu: { control: { type: 'boolean' } }\n};\n\n// _______ .___ ___. ___ __ __ _______. __ __ .___ ___. .___ ___. ___ .______ ____ ____ __ .___________. _______ .___ ___.\n// | ____|| \\/ | / \\ | | | | / || | | | | \\/ | | \\/ | / \\ | _ \\ \\ \\ / / | | | || ____|| \\/ |\n// | |__ | \\ / | / ^ \\ | | | | | (----`| | | | | \\ / | | \\ / | / ^ \\ | |_) | \\ \\/ / | | `---| |----`| |__ | \\ / |\n// | __| | |\\/| | / /_\\ \\ | | | | \\ \\ | | | | | |\\/| | | |\\/| | / /_\\ \\ | / \\_ _/ | | | | | __| | |\\/| |\n// | |____ | | | | / _____ \\ | | | `----. .----) | | `--' | | | | | | | | | / _____ \\ | |\\ \\----. | | | | | | | |____ | | | |\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |_______/ \\______/ |__| |__| |__| |__| /__/ \\__\\ | _| `._____| |__| |__| |__| |_______||__| |__|\n\ninterface EmailSummaryItemDemoProps {\n unreadEmailCount?: number;\n isActive?: boolean;\n}\n\nexport const EmailSummaryItemDemo: Story<EmailSummaryItemDemoProps> = (\n args: EmailSummaryItemDemoProps\n) => {\n return (\n <EmailSummaryItem\n id={createUID()}\n activeParticipants={[\n {\n shortName: 'Robert',\n fullName: 'Robert Downer',\n emailAddress: 'robert.downey@example.com'\n },\n {\n shortName: 'Nathan',\n fullName: 'Nathan Swanson',\n emailAddress: 'nathan.swanson@example.com'\n }\n ]}\n message='I have a quick question on traveling to India. How do I reach Hyderabad?'\n timeStamp={new Date(Date.UTC(new Date().getUTCFullYear(), new Date().getUTCMonth(), 24))}\n topic='Missing Luggage'\n sentiment={sentiment}\n urgency={10}\n unreadEmailCount={args.unreadEmailCount}\n active={args.isActive}\n onSelect={(id: EmailSummaryItemProps['id']) => {\n action('onSelect')(id);\n }}\n />\n );\n};\n\nEmailSummaryItemDemo.args = {\n unreadEmailCount: 0,\n isActive: false\n};\n\nEmailSummaryItemDemo.argTypes = {\n unreadEmailCount: { control: { type: 'number' } },\n isActive: { control: { type: 'boolean' } }\n};\n\n// _______ .___ ___. ___ __ __ _______. __ __ .___ ___. .___ ___. ___ .______ ____ ____ __ __ _______.___________.\n// | ____|| \\/ | / \\ | | | | / || | | | | \\/ | | \\/ | / \\ | _ \\ \\ \\ / / | | | | / | |\n// | |__ | \\ / | / ^ \\ | | | | | (----`| | | | | \\ / | | \\ / | / ^ \\ | |_) | \\ \\/ / | | | | | (----`---| |----`\n// | __| | |\\/| | / /_\\ \\ | | | | \\ \\ | | | | | |\\/| | | |\\/| | / /_\\ \\ | / \\_ _/ | | | | \\ \\ | |\n// | |____ | | | | / _____ \\ | | | `----. .----) | | `--' | | | | | | | | | / _____ \\ | |\\ \\----. | | | `----.| | .----) | | |\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |_______/ \\______/ |__| |__| |__| |__| /__/ \\__\\ | _| `._____| |__| |_______||__| |_______/ |__|\n\ninterface EmailSummaryListStoryProps {\n onItemClick?: EmailSummaryListProps['onItemClick'];\n items?: EmailSummaryListProps['items'];\n onLoadMore?: EmailSummaryListProps['onLoadMore'];\n loading?: EmailSummaryListProps['loading'];\n}\n\nexport const EmailSummaryListDemo: Story<EmailSummaryListStoryProps> = (\n args: EmailSummaryListStoryProps\n) => {\n const INITIAL_CHUNK_SIZE = 9;\n const APPEND_CHUNK_SIZE = 1;\n\n const emailSummaryListRef = useRef(null);\n const [allEmailItems, setAllEmailItems] = useState(\n emailSummaryItems.slice(0, INITIAL_CHUNK_SIZE)\n );\n const [categories, setCategories] = useState<MenuProps['items']>(emailWorklistItemsMock);\n\n const handleItemClick = (id: string) => {\n const index = allEmailItems.findIndex(emailItem => {\n return emailItem.id === id;\n });\n\n const newEmailItems = [...allEmailItems];\n newEmailItems.splice(index, 1, { ...allEmailItems[index], unreadEmailCount: 0 });\n\n setAllEmailItems(newEmailItems);\n };\n\n const onCategoryClick: MenuItemProps['onClick'] = (id: MenuItemProps['id']) => {\n setCategories(cur => menuHelpers.toggleSelected(cur, id, 'single-select'));\n };\n\n const [loading, setLoading] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n\n const loadMore = useCallback(() => {\n if (!loading) {\n setLoading(true);\n\n setTimeout(() => {\n setLoading(false);\n setAllEmailItems(prevItems => {\n const previousItemsLength = prevItems.length;\n const newItems = emailSummaryItems.slice(\n previousItemsLength,\n previousItemsLength + APPEND_CHUNK_SIZE\n );\n\n if (newItems.length === 0) {\n setHasMore(false);\n }\n\n return [...prevItems, ...newItems];\n });\n }, 1500);\n }\n }, [loading]);\n\n return (\n <EmailSummaryList\n ref={emailSummaryListRef}\n unreadEmailCount={99}\n categories={categories}\n items={args.items || allEmailItems}\n onItemClick={args.onItemClick || handleItemClick}\n onCategoryClick={onCategoryClick}\n onLoadMore={args.onLoadMore || (hasMore ? loadMore : undefined)}\n loading={args.loading || loading}\n emptyMessage='No emails.'\n />\n );\n};\n\n// _______ .___ ___. ___ __ __ .___ ___. ___ .__ __. ___ _______ _______ .______\n// | ____|| \\/ | / \\ | | | | | \\/ | / \\ | \\ | | / \\ / _____|| ____|| _ \\\n// | |__ | \\ / | / ^ \\ | | | | | \\ / | / ^ \\ | \\| | / ^ \\ | | __ | |__ | |_) |\n// | __| | |\\/| | / /_\\ \\ | | | | | |\\/| | / /_\\ \\ | . ` | / /_\\ \\ | | |_ | | __| | /\n// | |____ | | | | / _____ \\ | | | `----. | | | | / _____ \\ | |\\ | / _____ \\ | |__| | | |____ | |\\ \\----.\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |__| |__| /__/ \\__\\ |__| \\__| /__/ \\__\\ \\______| |_______|| _| `._____|\n\ninterface EmailManagerAppShellProps {\n enableContextMenu?: boolean;\n onContextMenu?: (e: MouseEvent) => void;\n}\n\nexport const EmailManagerAppShell: Story<EmailManagerAppShellProps> = (\n args: EmailManagerAppShellProps\n) => {\n const INITIAL_CHUNK_SIZE = 9;\n const APPEND_CHUNK_SIZE = 1;\n\n const [activeItemId, setActiveItemId] = useState<string | undefined>();\n const [emailList, setEmailList] = useState(emailSummaryItems.slice(0, INITIAL_CHUNK_SIZE));\n const [loading, setLoading] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n\n const handleEmailItemClick = (id: EmailSummaryItemProps['id']) => {\n setActiveItemId(id);\n\n const index = emailList.findIndex(emailItem => {\n return emailItem.id === id;\n });\n\n const newEmailList = [...emailList];\n newEmailList.splice(index, 1, { ...emailList[index], unreadEmailCount: 0 });\n\n setEmailList(newEmailList);\n };\n\n const onLoadMore = useCallback(() => {\n if (!loading) {\n setLoading(true);\n\n setTimeout(() => {\n setLoading(false);\n setEmailList(prevItems => {\n const previousItemsLength = prevItems.length;\n const newItems = emailSummaryItems.slice(\n previousItemsLength,\n previousItemsLength + APPEND_CHUNK_SIZE\n );\n\n if (newItems.length === 0) {\n setHasMore(false);\n }\n\n return [...prevItems, ...newItems];\n });\n }, 1500);\n }\n }, [loading]);\n\n const activeItemIndex = useMemo(\n () => emailList.findIndex(emailItem => emailItem.id === activeItemId),\n [activeItemId, emailList]\n );\n\n const content =\n activeItemId === undefined ? (\n <EmptyState message='No item selected!' />\n ) : (\n <EmailShellDemo singleConversation={activeItemIndex % 2 !== 0} />\n );\n\n const utilities =\n activeItemId === undefined ? null : (\n // View analysis utility\n <Grid container={{ rowGap: 2 }}>\n <EntityListDemo\n onContextMenu={args.onContextMenu}\n enableContextMenu={args.enableContextMenu}\n />\n <Card>\n <CardHeader container={{ alignItems: 'center', gap: 1 }}>\n <Icon name='document-doc' />\n <Text variant='h3'>Email header</Text>\n </CardHeader>\n <CardContent>\n <FieldValueList fields={viewAnalysisEmailHeaderMock} variant='stacked' />\n </CardContent>\n </Card>\n <SummaryList\n name='Topics'\n icon='headline'\n items={topicListMock.map(items => ({\n ...items,\n primary: <StyledLabel>{items.primary}</StyledLabel>,\n secondary: (\n <Flex container={{ direction: 'row', justify: 'between' }}>\n <Text variant='primary'>{items.secondary.indicator}</Text>\n <StyledLabel>{items.secondary.value}</StyledLabel>\n </Flex>\n )\n }))}\n noItemsText='No items'\n />\n </Grid>\n );\n\n return (\n <AppShellDemo\n appHeader\n main={\n <EmailManager\n header={{\n icon: 'mail',\n title: 'Inbox'\n }}\n list={\n <EmailSummaryListDemo\n onItemClick={handleEmailItemClick}\n items={emailList}\n onLoadMore={hasMore ? onLoadMore : undefined}\n loading={loading}\n />\n }\n content={content}\n utilities={utilities}\n utilitiesSummaryItems={\n utilities\n ? [\n { iconName: 'list-number', count: 7 },\n { iconName: 'document-doc', count: 1 },\n { iconName: 'headline', count: 4 }\n ]\n : undefined\n }\n defaultCollapsedUtilities={!!utilities}\n />\n }\n />\n );\n};\n\nEmailManagerAppShell.args = {\n enableContextMenu: true\n};\n\nEmailManagerAppShell.argTypes = {\n enableContextMenu: { control: { type: 'boolean' } }\n};\nEmailManagerAppShell.parameters = {\n layout: 'fullscreen'\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Email.stories.js","sourceRoot":"","sources":["../../../src/social/Email/Email.stories.tsx"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,OAAO,EACL,QAAQ,EACR,MAAM,EACN,WAAW,EACX,SAAS,EACT,SAAS,EAIV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EACL,IAAI,EACJ,WAAW,EACX,SAAS,EACT,UAAU,EAGV,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,MAAM,EACN,WAAW,EACX,UAAU,EACV,IAAI,EACJ,WAAW,EACX,IAAI,EACJ,cAAc,EACd,WAAW,EACX,UAAU,EACV,KAAK,EACL,eAAe,EACf,eAAe,EACf,UAAU,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,UAAU,MAAM,+DAA+D,CAAC;AAC5F,OAAO,EACL,KAAK,IAAI,cAAc,EACvB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EAKV,YAAY,EAGb,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,aAAa,EACb,YAAY,EACZ,qCAAqC,EACrC,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,YAAY,CAAC,UAAU,CAAC,CAAC;AAEzB,eAAe;IACb,KAAK,EAAE,cAAc;IACrB,SAAS,EAAE,cAAc;CAClB,CAAC;AAeV,MAAM,CAAC,MAAM,KAAK,GAA0B,CAAC,IAAoB,EAAE,EAAE;IACnE,MAAM,qBAAqB,GAA+B,MAAM,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAE5C,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACvC,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;QAC3E,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,IAAI,cACH,KAAC,sBAAsB,cACrB,KAAC,cAAc,IACb,EAAE,EAAE,SAAS,EAAE,EACf,SAAS,EAAC,kBAAkB,EAC5B,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,EACjC,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,EAC5D,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,EAC9D,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,EACnF,IAAI,EAAC,wqBAAwqB,EAC7qB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,sBAAsB,EACpB,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,EAErE,OAAO,EAAC,sBAAsB,EAC9B,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,EAC3B,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,EAClC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,EAC/B,iBAAiB,EAAE,MAAM,CAAC,4BAA4B,CAAC,EACvD,SAAS,EAAE;oBACT,OAAO,EAAE,SAAS;iBACnB,EACD,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,oBAAoB,EACjC,WAAW,EACT,IAAI,CAAC,iBAAiB;oBACpB,CAAC,CAAC;wBACE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;wBAClC,aAAa,EAAE,gBAAgB;wBAC/B,MAAM,EAAE,qBAAqB;qBAC9B;oBACH,CAAC,CAAC,SAAS,EAEf,WAAW,EAAE;oBACX;wBACE,EAAE,EAAE,cAAc;wBAClB,KAAK,EAAE,qCAAqC;wBAC5C,WAAW,EAAE,iBAAiB;qBAC/B;oBACD;wBACE,EAAE,EAAE,cAAc;wBAClB,KAAK,EAAE,iDAAiD;wBACxD,WAAW,EAAE,UAAU;qBACxB;iBACF,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;oBACjB,OAAO;wBACL,GAAG,UAAU;wBACb,UAAU,EAAE,MAAM,CAAC,wBAAwB,CAAC;wBAC5C,SAAS,EAAE,MAAM,CAAC,uBAAuB,CAAC;qBAC3C,CAAC;gBACJ,CAAC,CAAC,GACF,GACqB,GACpB,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,KAAK,CAAC,IAAI,GAAG;IACX,wBAAwB,EAAE,KAAK;IAC/B,iBAAiB,EAAE,KAAK;IACxB,sDAAsD;IACtD,gBAAgB;CACjB,CAAC;AAEF,KAAK,CAAC,QAAQ,GAAG;IACf,wBAAwB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC1D,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IACnD,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;CAChD,CAAC;AAEF,oFAAoF;AACpF,qFAAqF;AACrF,sFAAsF;AACtF,qFAAqF;AACrF,0FAA0F;AAC1F,0FAA0F;AAE1F,MAAM,CAAC,MAAM,QAAQ,GAAU,GAAG,EAAE;IAClC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAiC,KAAK,CAAC,CAAC;IAChG,MAAM,cAAc,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IAE9D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAE9B;QACA,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;QAC7B,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACjB,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,OAAO,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE;QAC5C,WAAW,EAAE;YACX,YAAY,EAAE,6BAA6B;SAC5C;QACD,YAAY,EAAE,OAAO;QACrB,kBAAkB,EAAE,EAAE;QACtB,WAAW,EAAE,gBAAgB;QAC7B,uBAAuB,EAAE,EAAE;KAC5B,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,CACrB,KAA6B,EAC7B,KAAqD,EACrD,EAAE;QACF,IAAI,KAAK,KAAK,aAAa,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,GAAG,IAAI;gBACP,uBAAuB,EAAE,KAAe;aACzC,CAAC,CAAC,CAAC;SACL;aAAM,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAChF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,GAAG,IAAI;gBACP,CAAC,KAAK,CAAC,EAAE,KAAK;aACf,CAAC,CAAC,CAAC;SACL;aAAM;YACL,kDAAkD;YAClD,OAAO,CAAC,IAAI,CAAC,EAAE;gBACb,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;iBACrC,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;QACD,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE;YACjC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACb,OAAO;oBACL,GAAG,IAAI;oBACP,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;qBAC3B;oBACD,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,EAAE;qBACV;oBACD,GAAG,EAAE;wBACH,GAAG,IAAI,CAAC,GAAG;wBACX,KAAK,EAAE,EAAE;qBACV;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;YAC3C,OAAO,CAAC,IAAI,CAAC,EAAE;gBACb,OAAO;oBACL,GAAG,IAAI;oBACP,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,cAAc;qBACtB;oBACD,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,cAAc;qBACtB;oBACD,GAAG,EAAE;wBACH,GAAG,IAAI,CAAC,GAAG;wBACX,KAAK,EAAE,eAAe;qBACvB;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YAC1C,OAAO,CAAC,IAAI,CAAC,EAAE;gBACb,OAAO;oBACL,GAAG,IAAI;oBACP,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,EAAE;qBACV;oBACD,EAAE,EAAE;wBACF,GAAG,IAAI,CAAC,EAAE;wBACV,KAAK,EAAE,EAAE;qBACV;oBACD,GAAG,EAAE;wBACH,GAAG,IAAI,CAAC,GAAG;wBACX,KAAK,EAAE,EAAE;qBACV;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAExB,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAE,EAAE;QACtC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,sBAAsB;QACtB,mBAAmB,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACxD,UAAU,CAAC,GAAG,EAAE;YACd,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC3B,cAAc,CAAC,OAAO,EAAE,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,CAAC,kBAAkB;YAAE,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE9B,MAAM,YAAY,GAAiC,GAAG,EAAE;QACtD,OAAO,CAAC,IAAI,CAAC,EAAE;YACb,OAAO;gBACL,GAAG,IAAI;gBACP,EAAE,EAAE;oBACF,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;oBAC3B,KAAK,EACH,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC;iBAC3F;gBACD,EAAE,EAAE;oBACF,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;oBAC3B,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;iBAC1E;gBACD,GAAG,EAAE;oBACH,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;oBAC5B,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;iBAC5E;gBACD,OAAO,EAAE;oBACP,GAAG,IAAI,CAAC,OAAO;oBACf,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;iBACvE;gBACD,WAAW,EAAE;oBACX,GAAG,IAAI,CAAC,WAAW;oBACnB,KAAK,EAAE,IAAI,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;iBAChF;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,YAAY,GAAuC,CAAC,KAAW,EAAE,EAAU,EAAE,EAAE;QACnF,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACzB,mBAAmB,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACpD,wBAAwB;QACxB,eAAe,CAAC,KAAK,CAAC;aACnB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;YACrB,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YACtD,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,aAAa,IACZ,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,EACzB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,EAC7B,iBAAiB,EAAE,mBAAmB,EACtC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,GAC1B,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,iIAAiI;AACjI,iIAAiI;AACjI,iIAAiI;AACjI,iIAAiI;AACjI,iIAAiI;AACjI,iIAAiI;AAEjI,MAAM,CAAC,MAAM,YAAY,GAAU,GAAG,EAAE;IACtC,MAAM,QAAQ,GAAiB;QAC7B;YACE,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC;YACjC,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;YAC5D,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;YAC9D,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;YACnF,IAAI,EAAE,uHAAuH;YAC7H,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;YAC3B,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;YAC/B,iBAAiB,EAAE,MAAM,CAAC,4BAA4B,CAAC;YACvD,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,oBAAoB;SAClC;QACD;YACE,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC;YAC9B,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;YAC5D,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;YAC9D,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;YACtF,IAAI,EAAE,gIAAgI;YACtI,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;YAC3B,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;YAC/B,iBAAiB,EAAE,MAAM,CAAC,4BAA4B,CAAC;YACvD,OAAO,EAAE,YAAY;SACtB;KACF,CAAC;IAEF,OAAO,CACL,KAAC,iBAAiB,IAChB,YAAY,EAAE,qCAAqC,CAAC,QAAQ,CAAC,EAC7D,IAAI,EAAE,qCAAqC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAClE,EAAE,EAAE,qCAAqC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,EAC3D,EAAE,EAAE,SAAS,EAAE,EACf,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EAChC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAC7D,MAAM,EAAE,QAAQ,GAChB,CACH,CAAC;AACJ,CAAC,CAAC;AAeF,MAAM,CAAC,MAAM,cAAc,GAA+B,CAAC,IAAyB,EAAE,EAAE;IACtF,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,EAAE,IAAI;QACb,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;KACnC,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAE/C,EAAE,CAAC,CAAC;IACP,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAiB,EAAE,CAAC,CAAC;IAEjF,MAAM,wBAAwB,GAAG,CAAC,GAAW,EAAE,YAAoB,EAAE,EAAE;QACrE,IAAI,YAAY,KAAK,OAAO,EAAE;YAC5B,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,IAAI,CAAC,GAAG,CAAC;wBACZ,IAAI,EAAE;4BACJ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;4BACjB,EAAE,EAAE;gCACF,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;gCACpB,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;6BAC3B;4BACD,EAAE,EAAE;gCACF,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;gCACpB,KAAK,EAAE,EAAE;6BACV;4BACD,GAAG,EAAE;gCACH,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG;gCACrB,KAAK,EAAE,EAAE;6BACV;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,YAAY,KAAK,UAAU,EAAE;YACtC,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,IAAI,CAAC,GAAG,CAAC;wBACZ,IAAI,EAAE;4BACJ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;4BACjB,EAAE,EAAE;gCACF,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;gCACpB,KAAK,EAAE,cAAc;6BACtB;4BACD,EAAE,EAAE;gCACF,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;gCACpB,KAAK,EAAE,cAAc;6BACtB;4BACD,GAAG,EAAE;gCACH,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG;gCACrB,KAAK,EAAE,eAAe;6BACvB;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAAC,GAAW,EAAE,UAAkB,EAAE,EAAE;QACjE,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;QAC7F,gBAAgB,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO;gBACL,GAAG,IAAI;gBACP,CAAC,GAAG,CAAC,EAAE;oBACL,GAAG,IAAI,CAAC,GAAG,CAAC;oBACZ,QAAQ,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE;iBAC7C;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,UAAU,CAAC,GAAG,EAAE;YACd,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,IAAI,CAAC,GAAG,CAAC;wBACZ,QAAQ,EAAE,KAAK;qBAChB;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,WAAW,GAA0C,EAAE,CAAC;YAC5D,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,WAAW,GAAG,IAAI,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,IAAI,WAAW,EAAE;gBAEb,WAAW,CAAC,GAAG,CAAC,EAAE,MACnB,EAAE,OAAO,EAAE,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;aACjE;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CACnB,GAAW,EACX,KAA6B,EAC7B,KAAqD,EACrD,EAAE;QACF,gBAAgB,CAAC,QAAQ,CAAC,EAAE;YAC1B,IAAI,KAAK,KAAK,aAAa,EAAE;gBAC3B,OAAO;oBACL,GAAG,QAAQ;oBACX,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,QAAQ,CAAC,GAAG,CAAC;wBAChB,uBAAuB,EAAE,KAAe;qBACzC;iBACF,CAAC;aACH;YACD,OAAO;gBACL,GAAG,QAAQ;gBACX,CAAC,GAAG,CAAC,EAAE;oBACL,GAAG,QAAQ,CAAC,GAAG,CAAC;oBAChB,IAAI,EAAE;wBACJ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI;wBACrB,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAC5E,CAAC,CAAC,KAAK;4BACP,CAAC,CAAC;gCACE,KAAK,EAAE,SAAS;gCAChB,KAAK;6BACN;qBACN;iBACF;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,KAAK,cAAc,EAAE;YAC5B,wBAAwB,CAAC,GAAG,EAAE,KAAe,CAAC,CAAC;SAChD;aAAM,IAAI,KAAK,KAAK,oBAAoB,EAAE;YACzC,sBAAsB,CAAC,GAAG,EAAE,KAAe,CAAC,CAAC;SAC9C;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAA6C,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;QAC1E,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;QAEtC,OAAO,CACL,KAAC,KAAK,IACJ,OAAO,EAAC,0BAA0B,EAClC,OAAO,EACL,8BACE,MAAC,IAAI,eACH,KAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;oCACZ,OAAO,EAAE,CAAC;oCACV,gBAAgB,CAAC,IAAI,CAAC,EAAE;wCACtB,OAAO;4CACL,GAAG,IAAI;4CACP,CAAC,SAAS,CAAC,EAAE;gDACX,GAAG,IAAI,CAAC,SAAS,CAAC;gDAClB,QAAQ,EAAE,IAAI;6CACf;yCACF,CAAC;oCACJ,CAAC,CAAC,CAAC;oCACH,UAAU,CAAC,GAAG,EAAE;wCACd,gBAAgB,CAAC,IAAI,CAAC,EAAE;4CACtB,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;4CACrC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;4CACnC,OAAO,gBAAgB,CAAC;wCAC1B,CAAC,CAAC,CAAC;wCACH,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;oCACnC,CAAC,EAAE,IAAI,CAAC,CAAC;gCACX,CAAC,8BAGM,EAET,KAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;oCACZ,OAAO,EAAE,CAAC;oCACV,gBAAgB,CAAC,IAAI,CAAC,EAAE;wCACtB,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;wCACrC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;wCACnC,OAAO,gBAAgB,CAAC;oCAC1B,CAAC,CAAC,CAAC;gCACL,CAAC,wBAGM,IACJ,EACP,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,GAAG,EAAE;4BACZ,OAAO,EAAE,CAAC;wBACZ,CAAC,uBAGM,IACR,EAEL,MAAM,kBAEN,KAAC,IAAI,IAAC,OAAO,EAAC,SAAS,2FAEhB,GACD,CACT,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;QACnC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;QACjC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,gBAAgB,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO;gBACL,GAAG,IAAI;gBACP,CAAC,GAAG,CAAC,EAAE;oBACL,GAAG,IAAI,CAAC,GAAG,CAAC;oBACZ,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,EAAE;YACd,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;gBACrC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAC7B,OAAO,gBAAgB,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QAClC,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;QACjC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,gBAAgB,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO;gBACL,GAAG,IAAI;gBACP,CAAC,GAAG,CAAC,EAAE;oBACL,GAAG,IAAI,CAAC,GAAG,CAAC;oBACZ,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,EAAE;YACd,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;gBACrC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAC7B,OAAO,gBAAgB,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;QACnC,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,CAC/B,EAAoB,EACpB,YAA0B,EAC1B,aAAiC,EACjC,EAAE;QACF,MAAM,GAAG,GAAG,cAAc,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAC7C,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;YACtB,iCAAiC;YAChC,aAAa,CAAC,GAAG,CAAC,CAAC,MAA8C,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;SACzF;aAAM;YACL,sBAAsB;YACtB,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBACtB,MAAM,cAAc,GAAG,SAAS,EAA4B,CAAC;gBAC7D,OAAO;oBACL,GAAG,IAAI;oBACP,CAAC,GAAG,CAAC,EAAE;wBACL,GAAG,aAAa;wBAChB,uBAAuB,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY;wBACpE,MAAM,EAAE,cAAc;wBACtB,QAAQ,EAAE,CACR,KAA6B,EAC7B,KAAqD,EACrD,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;wBACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC;wBACjC,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;wBAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;qBAC9B;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAiB;QAC/B;YACE,EAAE,EAAE,OAAO;YACX,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;YACrB,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,EAAE,4HAA4H;YAClI,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB;YACpE,WAAW,EAAE;gBACX;oBACE,EAAE,EAAE,UAAU;oBACd,KAAK,EAAE,qCAAqC;oBAC5C,WAAW,EAAE,iBAAiB;iBAC/B;gBACD;oBACE,EAAE,EAAE,UAAU;oBACd,KAAK,EAAE,iDAAiD;oBACxD,WAAW,EAAE,UAAU;iBACxB;aACF,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACjB,OAAO;oBACL,GAAG,UAAU;oBACb,UAAU,EAAE,MAAM,CAAC,wBAAwB,CAAC;oBAC5C,SAAS,EAAE,MAAM,CAAC,uBAAuB,CAAC;iBAC3C,CAAC;YACJ,CAAC,CAAC;SACH;QACD;YACE,EAAE,EAAE,OAAO;YACX,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;YACrB,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,eAAe;SACzB;KACF,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAChB,MAAM,gBAAgB,GAAG,gBAAgB,CACvC,SAAS,CAAC,EAAE,EACZ,SAAS,CAAC,OAAO,EACjB,wBAAwB,EACxB,KAAK,EACL,SAAS,CAAC,IAAI,CACf,CAAC;QACF,OAAO;YACL,GAAG,SAAS;YACZ,OAAO,EAAE,CAAC,EAAoB,EAAE,EAAE;gBAChC,wBAAwB,CAAC,EAAE,EAAE,YAAY,CAAC,KAAK,EAAE;oBAC/C,GAAG,iBAAiB;oBACpB,IAAI,EAAE;wBACJ,GAAG,iBAAiB,CAAC,IAAI;wBACzB,YAAY,EAAE,OAAO;wBACrB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;qBACpD;oBACD,iBAAiB,EAAE,mBAAmB;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,SAAS,EAAE,EAAE,CAAC,EAAE;gBACd,wBAAwB,CAAC,EAAE,EAAE,YAAY,CAAC,OAAO,EAAE;oBACjD,GAAG,iBAAiB;oBACpB,IAAI,EAAE;wBACJ,GAAG,iBAAiB,CAAC,IAAI;wBACzB,YAAY,EAAE,SAAS;wBACvB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;qBACpD;oBACD,iBAAiB,EAAE,mBAAmB;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,iBAAiB,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE;gBACtC,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;gBACjF,wBAAwB,CAAC,EAAE,EAAE,YAAY,CAAC,UAAU,EAAE;oBACpD,GAAG,iBAAiB;oBACpB,IAAI,EAAE;wBACJ,GAAG,iBAAiB,CAAC,IAAI;wBACzB,YAAY,EAAE,OAAO;wBACrB,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,EAAE;wBAC3C,WAAW,EAAE,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBACnE,kBAAkB,EAAE,UAAU,EAAE,EAAE;qBACnC;oBACD,iBAAiB,EAAE,mBAAmB;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,IAAI,CAAC,eAAe;gBACxB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,KAAK,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;oBAC1C,KAAK,EAAE,0BAA0B;oBACjC,QAAQ,EAAE,MAAM,CAAC,mCAAmC,CAAC;oBACrD,WAAW,EAAE,IAAI;iBAClB;SACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,CAAC,EAAoB,EAAE,EAAE;QAC3C,qBAAqB,CAAC,IAAI,CAAC,EAAE;YAC3B,MAAM,oBAAoB,GAAmB,EAAE,CAAC;YAEhD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACjB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAE,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,OAAO,oBAAoB,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,qBAAqB,CAAC;YACpB,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;YACnE;gBACE;oBACE,GAAG,UAAU,CAAC,CAAC,CAAC;oBAChB,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,OAAO;oBACf,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,gBAAgB,CACvB,OAAO,EACP,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EACrB,wBAAwB,EACxB,IAAI,EACJ,gJAAgJ,EAChJ,WAAW,CACZ;oBACD,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC;oBACjC,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;oBACnC,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;oBAC9D,IAAI,EAAE,gJAAgJ;iBACvJ;gBACD;oBACE,GAAG,UAAU,CAAC,CAAC,CAAC;oBAChB,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,gBAAgB,CACvB,OAAO,EACP,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EACrB,wBAAwB,EACxB,IAAI,EACJ,sHAAsH,EACtH,WAAW,CACZ;oBACD,MAAM,EAAE,KAAK;oBACb,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC;oBAC/B,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;oBACjC,IAAI,EAAE,sHAAsH;iBAC7H;aACF;YACD;gBACE;oBACE,GAAG,UAAU,CAAC,CAAC,CAAC;oBAChB,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC;oBACjC,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAC9B,IAAI,EAAE,+HAA+H;oBACrI,SAAS,EAAE;wBACT,OAAO,EAAE,UAAU;qBACpB;iBACF;gBACD;oBACE,GAAG,UAAU,CAAC,CAAC,CAAC;oBAChB,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC;oBAC9B,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;oBACjC,IAAI,EAAE,oIAAoI;iBAC3I;aACF;SACF,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,kBAAkB,GAA8B,kBAAqC,CAAC,GAAG,CAC7F,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACZ,OAAO;YACL,IAAI,EAAE,qCAAqC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YAChB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAC9B,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM;YAC3D,MAAM;YACN,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAC9B,WAAW,EAAE,CAAC,KAAK,CAAC;YACpB,WAAW,EAAE,CAAC,KAAK,CAAC;YACpB,MAAM,EAAE,CAAC,KAAK,CAAC;YACf,WAAW,EAAE,CAAC,KAAK,CAAC;SACK,CAAC;IAC9B,CAAC,CACF,CAAC;IAEF,MAAM,uBAAuB,GAA6B;QACxD;YACE,IAAI,EAAE,qCAAqC,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,EAAE,EAAE,qCAAqC,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;YAC7D,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5C,gBAAgB,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM;YAC/D,MAAM,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E;KACF,CAAC;IAEF,OAAO,CACL,8BACE,KAAC,UAAU,IACT,WAAW,EAAE;oBACX,OAAO,EAAE,CACP,MAAC,IAAI,IACH,SAAS,EAAE;4BACT,UAAU,EAAE,QAAQ;4BACpB,GAAG,EAAE,CAAC;yBACP,aAED,KAAC,MAAM,IAAC,OAAO,EAAC,QAAQ,EAAC,IAAI,kBAC3B,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,GACf,EACT,KAAC,UAAU,IACT,OAAO,EAAC,QAAQ,EAChB,IAAI,EAAC,cAAc,EACnB,IAAI,EAAC,MAAM,EACX,QAAQ,QACR,MAAM,QACN,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GACxB,IACG,CACR;oBACD,OAAO,EAAE,eAAe;iBACzB,EACD,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,kBAAkB,GACrF,EACF,4BACG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACrC,OAAO,KAAC,aAAa,OAAgB,aAAa,CAAC,IAAI,CAAC,IAA7B,IAAI,CAA6B,CAAC;gBAC/D,CAAC,CAAC,GACD,IACF,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,cAAc,CAAC,IAAI,GAAG;IACpB,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,kBAAkB,EAAE,IAAI;CACzB,CAAC;AAEF,cAAc,CAAC,QAAQ,GAAG;IACxB,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAC9C,eAAe,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IACjD,kBAAkB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;CACrD,CAAC;AAcF,MAAM,CAAC,MAAM,cAAc,GAA+B,CAAC,IAAyB,EAAE,EAAE;IACtF,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAA+B,MAAM,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,WAAW,GAA8B;QAC7C,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,UAAU;KACjB,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,WAAW,CAAC,OAAO,IAAI,CAAC,CAAC;QACzB,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACvC,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;QACtE,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,UAAU,IACT,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EACT,IAAI,CAAC,iBAAiB;YACpB,CAAC,CAAC;gBACE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;gBAClC,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,gBAAgB;gBACrD,MAAM,EAAE,gBAAgB;aACzB;YACH,CAAC,CAAC,SAAS,GAEf,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,cAAc,CAAC,IAAI,GAAG;IACpB,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF,cAAc,CAAC,QAAQ,GAAG;IACxB,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;CACpD,CAAC;AAcF,MAAM,CAAC,MAAM,oBAAoB,GAAqC,CACpE,IAA+B,EAC/B,EAAE;IACF,OAAO,CACL,KAAC,gBAAgB,IACf,EAAE,EAAE,SAAS,EAAE,EACf,kBAAkB,EAAE;YAClB;gBACE,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,eAAe;gBACzB,YAAY,EAAE,2BAA2B;aAC1C;YACD;gBACE,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,gBAAgB;gBAC1B,YAAY,EAAE,4BAA4B;aAC3C;SACF,EACD,OAAO,EAAC,0EAA0E,EAClF,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EACxF,KAAK,EAAC,iBAAiB,EACvB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,EAAE,EACX,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,MAAM,EAAE,IAAI,CAAC,QAAQ,EACrB,QAAQ,EAAE,CAAC,EAA+B,EAAE,EAAE;YAC5C,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,oBAAoB,CAAC,IAAI,GAAG;IAC1B,gBAAgB,EAAE,CAAC;IACnB,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,oBAAoB,CAAC,QAAQ,GAAG;IAC9B,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IACjD,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;CAC3C,CAAC;AAgBF,MAAM,CAAC,MAAM,oBAAoB,GAAsC,CACrE,IAAgC,EAChC,EAAE;IACF,MAAM,kBAAkB,GAAG,CAAC,CAAC;IAC7B,MAAM,iBAAiB,GAAG,CAAC,CAAC;IAE5B,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAChD,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAC/C,CAAC;IACF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAqB,sBAAsB,CAAC,CAAC;IAEzF,MAAM,eAAe,GAAG,CAAC,EAAU,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAChD,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;QACzC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC;QAEjF,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,eAAe,GAA6B,CAAC,EAAuB,EAAE,EAAE;QAC5E,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC;IAEF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,OAAO,EAAE;YACZ,UAAU,CAAC,IAAI,CAAC,CAAC;YAEjB,UAAU,CAAC,GAAG,EAAE;gBACd,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClB,gBAAgB,CAAC,SAAS,CAAC,EAAE;oBAC3B,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC;oBAC7C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CACtC,mBAAmB,EACnB,mBAAmB,GAAG,iBAAiB,CACxC,CAAC;oBAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;wBACzB,UAAU,CAAC,KAAK,CAAC,CAAC;qBACnB;oBAED,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;SACV;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,KAAC,gBAAgB,IACf,GAAG,EAAE,mBAAmB,EACxB,gBAAgB,EAAE,EAAE,EACpB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,aAAa,EAClC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,eAAe,EAChD,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAC/D,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,EAChC,YAAY,EAAC,YAAY,GACzB,CACH,CAAC;AACJ,CAAC,CAAC;AAcF,MAAM,CAAC,MAAM,oBAAoB,GAAqC,CACpE,IAA+B,EAC/B,EAAE;IACF,MAAM,kBAAkB,GAAG,CAAC,CAAC;IAC7B,MAAM,iBAAiB,GAAG,CAAC,CAAC;IAE5B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,EAAsB,CAAC;IACvE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC3F,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,oBAAoB,GAAG,CAAC,EAA+B,EAAE,EAAE;QAC/D,eAAe,CAAC,EAAE,CAAC,CAAC;QAEpB,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAC5C,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;QACpC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC;QAE5E,YAAY,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,IAAI,CAAC,OAAO,EAAE;YACZ,UAAU,CAAC,IAAI,CAAC,CAAC;YAEjB,UAAU,CAAC,GAAG,EAAE;gBACd,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClB,YAAY,CAAC,SAAS,CAAC,EAAE;oBACvB,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC;oBAC7C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CACtC,mBAAmB,EACnB,mBAAmB,GAAG,iBAAiB,CACxC,CAAC;oBAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;wBACzB,UAAU,CAAC,KAAK,CAAC,CAAC;qBACnB;oBAED,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;SACV;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,YAAY,CAAC,EACrE,CAAC,YAAY,EAAE,SAAS,CAAC,CAC1B,CAAC;IAEF,MAAM,OAAO,GACX,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAC3B,KAAC,UAAU,IAAC,OAAO,EAAC,mBAAmB,GAAG,CAC3C,CAAC,CAAC,CAAC,CACF,KAAC,cAAc,IAAC,kBAAkB,EAAE,eAAe,GAAG,CAAC,KAAK,CAAC,GAAI,CAClE,CAAC;IAEJ,MAAM,SAAS,GACb,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,wBAAwB;IACxB,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,aAC5B,KAAC,cAAc,IACb,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,GACzC,EACF,MAAC,IAAI,eACH,MAAC,UAAU,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aACrD,KAAC,IAAI,IAAC,IAAI,EAAC,cAAc,GAAG,EAC5B,KAAC,IAAI,IAAC,OAAO,EAAC,IAAI,6BAAoB,IAC3B,EACb,KAAC,WAAW,cACV,KAAC,cAAc,IAAC,MAAM,EAAE,2BAA2B,EAAE,OAAO,EAAC,SAAS,GAAG,GAC7D,IACT,EACP,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACjC,GAAG,KAAK;oBACR,OAAO,EAAE,KAAC,WAAW,cAAE,KAAK,CAAC,OAAO,GAAe;oBACnD,SAAS,EAAE,CACT,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,aACvD,KAAC,IAAI,IAAC,OAAO,EAAC,SAAS,YAAE,KAAK,CAAC,SAAS,CAAC,SAAS,GAAQ,EAC1D,KAAC,WAAW,cAAE,KAAK,CAAC,SAAS,CAAC,KAAK,GAAe,IAC7C,CACR;iBACF,CAAC,CAAC,EACH,WAAW,EAAC,UAAU,GACtB,IACG,CACR,CAAC;IAEJ,OAAO,CACL,KAAC,YAAY,IACX,SAAS,QACT,IAAI,EACF,KAAC,YAAY,IACX,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf,EACD,IAAI,EACF,KAAC,oBAAoB,IACnB,WAAW,EAAE,oBAAoB,EACjC,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAC5C,OAAO,EAAE,OAAO,GAChB,EAEJ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,qBAAqB,EACnB,SAAS;gBACP,CAAC,CAAC;oBACE,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;oBACrC,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE;oBACtC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;iBACnC;gBACH,CAAC,CAAC,SAAS,EAEf,yBAAyB,EAAE,CAAC,CAAC,SAAS,GACtC,GAEJ,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,oBAAoB,CAAC,IAAI,GAAG;IAC1B,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF,oBAAoB,CAAC,QAAQ,GAAG;IAC9B,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;CACpD,CAAC;AACF,oBAAoB,CAAC,UAAU,GAAG;IAChC,MAAM,EAAE,YAAY;CACrB,CAAC","sourcesContent":["// cSpell:words calibri Trichy Nagercoil\nimport {\n useState,\n useRef,\n useCallback,\n useEffect,\n createRef,\n RefObject,\n MouseEvent,\n FunctionComponent\n} from 'react';\nimport { action } from '@storybook/addon-actions';\nimport { Meta, Story } from '@storybook/react';\nimport { useMemo } from '@storybook/addons';\n\nimport {\n Card,\n CardContent,\n createUID,\n MenuButton,\n MenuItemProps,\n MenuProps,\n Icon,\n registerIcon,\n Flex,\n Button,\n menuHelpers,\n CardHeader,\n Text,\n SummaryList,\n Grid,\n FieldValueList,\n StyledLabel,\n EmptyState,\n Modal,\n useModalManager,\n useModalContext,\n useToaster\n} from '@pega/cosmos-react-core';\nimport * as filterIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/filter.icon';\nimport {\n Email as EmailComponent,\n EmailConversation,\n EmailComposer,\n EmailShell,\n EmailSummaryItem,\n EmailSummaryList,\n EntityList,\n EmailProps,\n EmailConversationProps,\n EmailComposerProps,\n EntityListProps,\n EmailManager,\n EmailSummaryListProps,\n EmailSummaryItemProps\n} from '@pega/cosmos-react-social';\nimport {\n EmailComposerFieldType,\n EmailComposerValueType,\n EmailComposerHandleValue,\n ContextMenuProps\n} from '@pega/cosmos-react-social/lib/components/Email/Email.types';\n\nimport { AppShellDemo } from '../../core/AppShell/AppShell.stories';\n\nimport {\n bccParticipants,\n ccParticipants,\n emailBodyContent,\n participants,\n toParticipants,\n emailAttachments,\n EntityListMockData,\n viewAnalysisEmailHeaderMock,\n topicListMock,\n emailActions,\n generateEmailConversationParticipants,\n templates,\n handleExternalEntry,\n emailDemoActions,\n LaunchAction,\n baseComposerProps,\n sentiment,\n emailSummaryItems,\n mockEmails,\n mockSuggestedReplies,\n mockEmailBodyTemplates,\n forwardedContent,\n getCompositeId,\n emptyFieldErrorMessage,\n fieldValidation,\n emailWorklistItemsMock,\n contextMenuItemsMock,\n highlightedEntitiesMock,\n mockUploadImage\n} from './Email.mocks';\nimport { StyledEmailCardContent } from './Email.styles';\n\nregisterIcon(filterIcon);\n\nexport default {\n title: 'Social/Email',\n component: EmailComponent\n} as Meta;\n\n// _______ .___ ___. ___ __ __\n// | ____|| \\/ | / \\ | | | |\n// | |__ | \\ / | / ^ \\ | | | |\n// | __| | |\\/| | / /_\\ \\ | | | |\n// | |____ | | | | / _____ \\ | | | `----.\n// |_______||__| |__| /__/ \\__\\ |__| |_______|\n\ninterface EmailDemoProps {\n enableEntityHighlighting?: boolean;\n enableContextMenu?: boolean;\n forwardedContent?: string;\n}\n\nexport const Email: Story<EmailDemoProps> = (args: EmailDemoProps) => {\n const emailImperativeHandle: ContextMenuProps['handle'] = useRef(null);\n const timeout = useRef<number | null>(null);\n\n const handleRightClick = () => {\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n timeout.current = window.setTimeout(() => {\n emailImperativeHandle.current?.setContextMenuItems(contextMenuItemsMock);\n }, 1000);\n };\n\n return (\n <Card>\n <StyledEmailCardContent>\n <EmailComponent\n id={createUID()}\n timeStamp='2021-01-05T09:12'\n from={mockEmails['Laura Stevens']}\n cc={[mockEmails['Adam Gillchrist'], mockEmails['John Paul']]}\n bcc={[mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']]}\n to={[mockEmails['Sara Davis'], mockEmails['John Brown'], mockEmails['Joe Stevens']]}\n body='<div>Hi,<br/><p>I am one of the customer of Indian Overseas Bank, <b><i>Nagercoil</i></b> branch, with code <b><a href=\"www.google.com\"><i>3967</i></a></b>. I have a saving bank account here. My account number is <i>6785420965476</i>.</p><br/><p>I have been given a debit cum ATM card from this bank and the same has been lost when I was traveling from Nagercoil to Trichy by Bus on Jan 04, 2021. I remember that my ATM card number was 1920 6746 8653 1256.</p><br/>I hereby request you to block my debit card immediately to prevent misuse of the same by some others. Also I request you to give me an new debit card as early as possible.<br/><br/>Regards,<br/>Laura Stevens</div>'\n forwardedContent={args.forwardedContent}\n entityHighlightMapping={\n args.enableEntityHighlighting ? highlightedEntitiesMock : undefined\n }\n subject='I lost my debit card'\n onReply={action('On reply')}\n onReplyAll={action('On reply all')}\n onForward={action('On forward')}\n onSuggestionClick={action('On Suggested reply clicked')}\n sentiment={{\n variant: 'neutral'\n }}\n actions={emailActions}\n suggestions={mockSuggestedReplies}\n contextMenu={\n args.enableContextMenu\n ? {\n onItemClick: action('onItemClick'),\n onContextMenu: handleRightClick,\n handle: emailImperativeHandle\n }\n : undefined\n }\n attachments={[\n {\n id: 'attachment_0',\n value: 'https://pega.com/media/document.doc',\n displayText: 'Policy document'\n },\n {\n id: 'attachment_1',\n value: 'https://pbs.twimg.com/media/ENNN5PAXkAE-hag.jpg',\n displayText: 'E-Ticket'\n }\n ].map(attachment => {\n return {\n ...attachment,\n onDownload: action('On attachment download'),\n onPreview: action('On attachment preview')\n };\n })}\n />\n </StyledEmailCardContent>\n </Card>\n );\n};\n\nEmail.args = {\n enableEntityHighlighting: false,\n enableContextMenu: false,\n // eslint-disable-next-line demo-patterns/literal-args\n forwardedContent\n};\n\nEmail.argTypes = {\n enableEntityHighlighting: { control: { type: 'boolean' } },\n enableContextMenu: { control: { type: 'boolean' } },\n forwardedContent: { control: { type: 'text' } }\n};\n\n// ______ ______ .___ ___. .______ ______ _______. _______ .______\n// / | / __ \\ | \\/ | | _ \\ / __ \\ / || ____|| _ \\\n// | ,----'| | | | | \\ / | | |_) | | | | | | (----`| |__ | |_) |\n// | | | | | | | |\\/| | | ___/ | | | | \\ \\ | __| | /\n// | `----.| `--' | | | | | | | | `--' | .----) | | |____ | |\\ \\----.\n// \\______| \\______/ |__| |__| | _| \\______/ |_______/ |_______|| _| `._____|\n\nexport const Composer: Story = () => {\n const [composerProgress, setComposerProgress] = useState<EmailComposerProps['progress']>(false);\n const composerHandle = useRef<EmailComposerHandleValue>(null);\n\n const [data, setData] = useState<\n EmailComposerProps['data'] & { bodyContentCurrentValue: string }\n >({\n to: { value: toParticipants },\n cc: { value: [] },\n bcc: { value: [] },\n subject: { value: 'Request: Pause service' },\n bodyContent: {\n defaultValue: 'Hi, Hope you are doing well'\n },\n responseType: 'reply',\n selectedTemplateId: '',\n attachments: emailAttachments,\n bodyContentCurrentValue: ''\n });\n\n const handleOnChange = (\n field: EmailComposerFieldType,\n value: EmailComposerValueType<EmailComposerFieldType>\n ) => {\n if (field === 'bodyContent') {\n setData(prev => ({\n ...prev,\n bodyContentCurrentValue: value as string\n }));\n } else if (['responseType', 'attachments', 'selectedTemplateId'].includes(field)) {\n setData(prev => ({\n ...prev,\n [field]: value\n }));\n } else {\n // Clearing error message as soon as value changes\n setData(prev => {\n return {\n ...prev,\n [field]: { error: undefined, value }\n };\n });\n }\n action('onChange')(field, value);\n };\n\n useEffect(() => {\n if (data.responseType === 'reply') {\n setData(prev => {\n return {\n ...prev,\n to: {\n ...prev.to,\n value: [toParticipants[0]]\n },\n cc: {\n ...prev.cc,\n value: []\n },\n bcc: {\n ...prev.bcc,\n value: []\n }\n };\n });\n } else if (data.responseType === 'replyAll') {\n setData(prev => {\n return {\n ...prev,\n to: {\n ...prev.to,\n value: toParticipants\n },\n cc: {\n ...prev.cc,\n value: ccParticipants\n },\n bcc: {\n ...prev.bcc,\n value: bccParticipants\n }\n };\n });\n } else if (data.responseType === 'forward') {\n setData(prev => {\n return {\n ...prev,\n to: {\n ...prev.to,\n value: []\n },\n cc: {\n ...prev.cc,\n value: []\n },\n bcc: {\n ...prev.bcc,\n value: []\n }\n };\n });\n }\n }, [data.responseType]);\n\n const onTemplateChange = (id: string) => {\n const selectedTemplate = mockEmailBodyTemplates.find(template => template.id === id);\n // Simulating api call\n setComposerProgress({ message: 'Loading template...' });\n setTimeout(() => {\n setComposerProgress(false);\n composerHandle.current?.replaceBodyContent(selectedTemplate?.content || '');\n }, 1000);\n };\n\n useEffect(() => {\n if (data.selectedTemplateId) onTemplateChange(data.selectedTemplateId);\n }, [data.selectedTemplateId]);\n\n const handleOnSend: EmailComposerProps['onSend'] = () => {\n setData(prev => {\n return {\n ...prev,\n to: {\n value: prev.to?.value || [],\n error:\n data?.to?.value.length === 0 ? emptyFieldErrorMessage : fieldValidation(data?.to?.value)\n },\n cc: {\n value: prev.cc?.value || [],\n error: data.cc === undefined ? undefined : fieldValidation(data.cc.value)\n },\n bcc: {\n value: prev.bcc?.value || [],\n error: data.bcc === undefined ? undefined : fieldValidation(data.bcc.value)\n },\n subject: {\n ...prev.subject,\n error: data.subject?.value === '' ? emptyFieldErrorMessage : undefined\n },\n bodyContent: {\n ...prev.bodyContent,\n error: data.bodyContentCurrentValue === '' ? emptyFieldErrorMessage : undefined\n }\n };\n });\n };\n\n const onImageAdded: EmailComposerProps['onImageAdded'] = (image: File, id: string) => {\n action('On Image added');\n setComposerProgress({ message: 'Uploading image' });\n // Simulate image upload\n mockUploadImage(image)\n .then(({ src, alt }) => {\n composerHandle.current?.updateImage({ src, alt }, id);\n setComposerProgress(false);\n })\n .catch(() => {\n setComposerProgress(false);\n });\n };\n\n return (\n <EmailComposer\n handle={composerHandle}\n progress={composerProgress}\n onSave={action('On save')}\n onSend={handleOnSend}\n onCancel={action('On cancel')}\n externalValidator={handleExternalEntry}\n participants={participants}\n onChange={handleOnChange}\n data={data}\n templates={templates}\n onImageAdded={onImageAdded}\n />\n );\n};\n\n// ______ ______ .__ __. ____ ____ _______ .______ _______. ___ .___________. __ ______ .__ __.\n// / | / __ \\ | \\ | | \\ \\ / / | ____|| _ \\ / | / \\ | || | / __ \\ | \\ | |\n// | ,----'| | | | | \\| | \\ \\/ / | |__ | |_) | | (----` / ^ \\ `---| |----`| | | | | | | \\| |\n// | | | | | | | . ` | \\ / | __| | / \\ \\ / /_\\ \\ | | | | | | | | | . ` |\n// | `----.| `--' | | |\\ | \\ / | |____ | |\\ \\----.----) | / _____ \\ | | | | | `--' | | |\\ |\n// \\______| \\______/ |__| \\__| \\__/ |_______|| _| `._____|_______/ /__/ \\__\\ |__| |__| \\______/ |__| \\__|\n\nexport const Conversation: Story = () => {\n const emailArr: EmailProps[] = [\n {\n id: 'item_0',\n timeStamp: '2021-01-05T09:12',\n from: mockEmails['Laura Stevens'],\n cc: [mockEmails['Adam Gillchrist'], mockEmails['John Paul']],\n bcc: [mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']],\n to: [mockEmails['Sara Davis'], mockEmails['John Brown'], mockEmails['Joe Stevens']],\n body: '<div> Hi, <br /> <br /> <div>Sure.. Here is your E-Ticket !! </div> <br /><br /> Regards, <br /> Laura Stevens </div>',\n unRead: true,\n onReply: action('On reply'),\n onForward: action('On forward'),\n onSuggestionClick: action('On Suggested reply clicked'),\n actions: emailActions,\n suggestions: mockSuggestedReplies\n },\n {\n id: 'item_1',\n timeStamp: '2021-01-02T03:12',\n from: mockEmails['Sara Davis'],\n cc: [mockEmails['Adam Gillchrist'], mockEmails['John Paul']],\n bcc: [mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']],\n to: [mockEmails['Laura Stevens'], mockEmails['John Brown'], mockEmails['Joe Stevens']],\n body: '<div> Hi, <br /> <br /> <div>I’m still at the airport, I need help now!! </div> <br /><br /> Regards, <br /> Sara Davis </div>',\n onReply: action('On reply'),\n onForward: action('On forward'),\n onSuggestionClick: action('On Suggested reply clicked'),\n actions: emailActions\n }\n ];\n\n return (\n <EmailConversation\n participants={generateEmailConversationParticipants(emailArr)}\n from={generateEmailConversationParticipants(emailArr, ['from'])[0]}\n to={generateEmailConversationParticipants(emailArr, ['to'])}\n id={createUID()}\n timeStamp={emailArr[0].timeStamp}\n unReadEmailCount={emailArr.filter(item => item.unRead).length}\n emails={emailArr}\n />\n );\n};\n\n// _______ .___ ___. ___ __ __ _______. __ __ _______ __ __\n// | ____|| \\/ | / \\ | | | | / || | | | | ____|| | | |\n// | |__ | \\ / | / ^ \\ | | | | | (----`| |__| | | |__ | | | |\n// | __| | |\\/| | / /_\\ \\ | | | | \\ \\ | __ | | __| | | | |\n// | |____ | | | | / _____ \\ | | | `----. .----) | | | | | | |____ | `----.| `----.\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |_______/ |__| |__| |_______||_______||_______|\n\ninterface EmailShellDemoProps {\n autoCollapse?: boolean;\n hideSuggestions?: boolean;\n singleConversation?: boolean;\n}\n\nexport const EmailShellDemo: Story<EmailShellDemoProps> = (args: EmailShellDemoProps) => {\n const { create } = useModalManager();\n const { push } = useToaster();\n const actions = ['Transfer', 'End conversation'].map(name => ({\n primary: name,\n id: name,\n onClick: action(`Clicked ${name}`)\n }));\n\n const [composersData, setComposersData] = useState<{\n [key: string]: EmailComposerProps & { bodyContentCurrentValue: string };\n }>({});\n const [conversationEmails, setConversationEmails] = useState<EmailProps[][]>([]);\n\n const handleResponseTypeChange = (uid: string, responseType: string) => {\n if (responseType === 'reply') {\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n data: {\n ...prev[uid].data,\n to: {\n ...prev[uid].data.to,\n value: [toParticipants[0]]\n },\n cc: {\n ...prev[uid].data.cc,\n value: []\n },\n bcc: {\n ...prev[uid].data.bcc,\n value: []\n }\n }\n }\n };\n });\n } else if (responseType === 'replyAll') {\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n data: {\n ...prev[uid].data,\n to: {\n ...prev[uid].data.to,\n value: toParticipants\n },\n cc: {\n ...prev[uid].data.cc,\n value: ccParticipants\n },\n bcc: {\n ...prev[uid].data.bcc,\n value: bccParticipants\n }\n }\n }\n };\n });\n }\n };\n\n const handleTemplateIdChange = (uid: string, templateId: string) => {\n const selectedTemplate = mockEmailBodyTemplates.find(template => template.id === templateId);\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: { message: 'Loading template...' }\n }\n };\n });\n\n // Simulating api call\n setTimeout(() => {\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: false\n }\n };\n });\n\n let currentData: { [key: string]: EmailComposerProps } = {};\n setComposersData(prev => {\n currentData = prev;\n return prev;\n });\n\n if (currentData) {\n (\n currentData[uid]?.handle as RefObject<EmailComposerHandleValue>\n )?.current?.replaceBodyContent(selectedTemplate?.content || '');\n }\n }, 1000);\n };\n\n const handleChange = (\n uid: string,\n field: EmailComposerFieldType,\n value: EmailComposerValueType<EmailComposerFieldType>\n ) => {\n setComposersData(prevData => {\n if (field === 'bodyContent') {\n return {\n ...prevData,\n [uid]: {\n ...prevData[uid],\n bodyContentCurrentValue: value as string\n }\n };\n }\n return {\n ...prevData,\n [uid]: {\n ...prevData[uid],\n data: {\n ...prevData[uid].data,\n [field]: ['responseType', 'attachments', 'selectedTemplateId'].includes(field)\n ? value\n : {\n error: undefined, // Clearing error on change\n value\n }\n }\n }\n };\n });\n\n if (field === 'responseType') {\n handleResponseTypeChange(uid, value as string);\n } else if (field === 'selectedTemplateId') {\n handleTemplateIdChange(uid, value as string);\n }\n };\n\n const MyModal: FunctionComponent<{ currentID: string }> = ({ currentID }) => {\n const { dismiss } = useModalContext();\n\n return (\n <Modal\n heading='Discard unsaved changes?'\n actions={\n <>\n <Flex>\n <Button\n onClick={() => {\n dismiss();\n setComposersData(prev => {\n return {\n ...prev,\n [currentID]: {\n ...prev[currentID],\n progress: true\n }\n };\n });\n setTimeout(() => {\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[currentID];\n return newComposersData;\n });\n push({ content: 'Draft Saved' });\n }, 1000);\n }}\n >\n Save as draft\n </Button>\n\n <Button\n onClick={() => {\n dismiss();\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[currentID];\n return newComposersData;\n });\n }}\n >\n Discard\n </Button>\n </Flex>\n <Button\n variant='primary'\n onClick={() => {\n dismiss();\n }}\n >\n Cancel\n </Button>\n </>\n }\n center\n >\n <Text variant='primary'>\n You have unsaved changes. You can discard them or go back to keep working.\n </Text>\n </Modal>\n );\n };\n\n const handleCancel = (uid: string) => {\n create(MyModal, { currentID: uid }, { alert: true });\n };\n\n const handleSend = (uid: string) => {\n action('Send')();\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: true\n }\n };\n });\n setTimeout(() => {\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[uid];\n return newComposersData;\n });\n push({ content: 'Email Send' });\n }, 1000);\n };\n\n const handleSave = (uid: string) => {\n action('Save')();\n setComposersData(prev => {\n return {\n ...prev,\n [uid]: {\n ...prev[uid],\n progress: true\n }\n };\n });\n setTimeout(() => {\n setComposersData(prev => {\n const newComposersData = { ...prev };\n delete newComposersData[uid];\n return newComposersData;\n });\n push({ content: 'Draft Saved' });\n }, 1000);\n };\n\n const createOrActivateComposer = (\n id: EmailProps['id'],\n launchAction: LaunchAction,\n composerProps: EmailComposerProps\n ) => {\n const uid = getCompositeId(id, launchAction);\n if (composersData[uid]) {\n // Activate the existing composer\n (composersData[uid].handle as RefObject<EmailComposerHandleValue>)?.current?.activate();\n } else {\n // Create new composer\n setComposersData(prev => {\n const composerHandle = createRef<EmailComposerHandleValue>();\n return {\n ...prev,\n [uid]: {\n ...composerProps,\n bodyContentCurrentValue: composerProps.data.bodyContent.defaultValue,\n handle: composerHandle,\n onChange: (\n field: EmailComposerFieldType,\n value: EmailComposerValueType<EmailComposerFieldType>\n ) => handleChange(uid, field, value),\n onCancel: () => handleCancel(uid),\n onSend: () => handleSend(uid),\n onSave: () => handleSave(uid)\n }\n };\n });\n }\n };\n\n const emailsData: EmailProps[] = [\n {\n id: 'item0',\n timeStamp: '2021-01-05T09:12',\n from: participants[0],\n to: participants.slice(0, 2),\n body: '<div>Hi, <br /> <br /><div>Your address change request is approved.</div> <br /> <br />Regards, <br />Laura Stevens </div>',\n unRead: true,\n subject: 'Pause service',\n suggestions: args.hideSuggestions ? undefined : mockSuggestedReplies,\n attachments: [\n {\n id: 'item_1_0',\n value: 'https://pega.com/media/document.doc',\n displayText: 'Policy document'\n },\n {\n id: 'item_1_1',\n value: 'https://pbs.twimg.com/media/ENNN5PAXkAE-hag.jpg',\n displayText: 'E-Ticket'\n }\n ].map(attachment => {\n return {\n ...attachment,\n onDownload: action('On attachment download'),\n onPreview: action('On attachment preview')\n };\n })\n },\n {\n id: 'item1',\n timeStamp: '2021-01-02T03:12',\n from: participants[3],\n to: participants.slice(2, 4),\n body: emailBodyContent,\n unRead: true,\n subject: 'Pause service'\n }\n ].map(emailData => {\n const emailActionItems = emailDemoActions(\n emailData.id,\n emailData.subject,\n createOrActivateComposer,\n false,\n emailData.body\n );\n return {\n ...emailData,\n onReply: (id: EmailProps['id']) => {\n createOrActivateComposer(id, LaunchAction.REPLY, {\n ...baseComposerProps,\n data: {\n ...baseComposerProps.data,\n responseType: 'reply',\n subject: { value: `Re-${emailData.subject}` || '' }\n },\n externalValidator: handleExternalEntry\n });\n },\n onForward: id => {\n createOrActivateComposer(id, LaunchAction.FORWARD, {\n ...baseComposerProps,\n data: {\n ...baseComposerProps.data,\n responseType: 'forward',\n subject: { value: `Fw-${emailData.subject}` || '' }\n },\n externalValidator: handleExternalEntry\n });\n },\n onSuggestionClick: (id, suggestionId) => {\n const suggestion = emailData.suggestions?.find(item => item.id === suggestionId);\n createOrActivateComposer(id, LaunchAction.SUGGESTION, {\n ...baseComposerProps,\n data: {\n ...baseComposerProps.data,\n responseType: 'reply',\n subject: { value: suggestion?.title || '' },\n bodyContent: { defaultValue: suggestion ? suggestion.content : '' },\n selectedTemplateId: suggestion?.id\n },\n externalValidator: handleExternalEntry\n });\n },\n actions: emailActionItems,\n tags: args.hideSuggestions\n ? undefined\n : {\n items: ['Pause service', 'Lost or stolen'],\n label: 'Associated service cases',\n onRemove: action('On Associated service case remove'),\n dismissable: true\n }\n };\n });\n\n const deleteEmail = (id: EmailProps['id']) => {\n setConversationEmails(prev => {\n const newEmailConversation: EmailProps[][] = [];\n\n prev.forEach(arr => {\n const newArr = arr.filter(index => index.id !== id);\n if (newArr.length !== 0) newEmailConversation.push(newArr);\n });\n return newEmailConversation;\n });\n };\n\n useEffect(() => {\n setConversationEmails([\n [{ ...emailsData[0] }, { ...emailsData[1], status: 'undelivered' }],\n [\n {\n ...emailsData[0],\n id: 'item2',\n status: 'draft',\n unRead: false,\n actions: emailDemoActions(\n 'item2',\n emailsData[0].subject,\n createOrActivateComposer,\n true,\n '<div>Hi, <br /> <br /><div>Sure, Our executive will come and check your connection in 24hrs. </div> <br />Regards, <br />Hugh Phillips </div>',\n deleteEmail\n ),\n timeStamp: '2021-01-03T17:15',\n from: mockEmails['Hugh Phillips'],\n to: [mockEmails['Mystery Rey'], ...emailsData[0].to],\n cc: [mockEmails['Adam Gillchrist']],\n bcc: [mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']],\n body: '<div>Hi, <br /> <br /><div>Sure, Our executive will come and check your connection in 24hrs. </div> <br />Regards, <br />Hugh Phillips </div>'\n },\n {\n ...emailsData[1],\n id: 'item3',\n status: 'draft',\n actions: emailDemoActions(\n 'item3',\n emailsData[0].subject,\n createOrActivateComposer,\n true,\n '<div>Hi, <br /> <br /><div>Can you fix my internet connection. </div> <br /> <br />Regards, <br />Rey Mystery </div>',\n deleteEmail\n ),\n unRead: false,\n timeStamp: '2021-01-02T14:16',\n from: mockEmails['Mystery Rey'],\n to: [mockEmails['Hugh Phillips']],\n body: '<div>Hi, <br /> <br /><div>Can you fix my internet connection. </div> <br /> <br />Regards, <br />Rey Mystery </div>'\n }\n ],\n [\n {\n ...emailsData[0],\n id: 'item4',\n unRead: true,\n timeStamp: '2020-12-05T18:18',\n from: mockEmails['Laura Stevens'],\n to: [mockEmails['Sara Davis']],\n body: '<div>Hi, <br /> <br /><div>Sure, Our executive will call you shortly. </div> <br /> <br />Regards, <br />Laura Stevens </div>',\n sentiment: {\n variant: 'positive'\n }\n },\n {\n ...emailsData[1],\n id: 'item5',\n unRead: true,\n timeStamp: '2021-01-04T08:30',\n from: mockEmails['Sara Davis'],\n to: [mockEmails['Laura Stevens']],\n body: '<div>Hi, <br /> <br /><div>Can you show please explain your new mobile plans. </div> <br /> <br />Regards, <br />Sara Davis </div>'\n }\n ]\n ]);\n }, []);\n\n const emailConversations: EmailConversationProps[] = (conversationEmails as EmailProps[][]).map(\n (emails, i) => {\n return {\n from: generateEmailConversationParticipants(emails, ['from'])[0],\n to: emails[0].to,\n id: `item_${i}`,\n timeStamp: emails[0].timeStamp,\n unReadEmailCount: emails.filter(item => item.unRead).length,\n emails,\n sentiment: emails[0].sentiment,\n isForwarded: i !== 2,\n isCollapsed: i !== 0,\n drafts: i === 1,\n undelivered: i === 0\n } as EmailConversationProps;\n }\n );\n\n const singleEmailConversation: EmailConversationProps[] = [\n {\n from: generateEmailConversationParticipants(emailsData, ['from'])[0],\n to: generateEmailConversationParticipants(emailsData, ['to']),\n id: 'item_0',\n timeStamp: new Date(emailsData[0].timeStamp),\n unReadEmailCount: emailsData.filter(item => item.unRead).length,\n emails: [{ ...emailsData[0], status: 'undelivered' }, { ...emailsData[1] }]\n }\n ];\n\n return (\n <>\n <EmailShell\n headerProps={{\n actions: (\n <Flex\n container={{\n alignItems: 'center',\n gap: 0\n }}\n >\n <Button variant='simple' icon>\n <Icon name='filter' />\n </Button>\n <MenuButton\n variant='simple'\n text='More actions'\n icon='more'\n iconOnly\n portal\n menu={{ items: actions }}\n />\n </Flex>\n ),\n subject: 'Pause service'\n }}\n autoCollapse={args.autoCollapse}\n conversations={args.singleConversation ? singleEmailConversation : emailConversations}\n />\n <>\n {Object.keys(composersData).map(guid => {\n return <EmailComposer key={guid} {...composersData[guid]} />;\n })}\n </>\n </>\n );\n};\n\nEmailShellDemo.args = {\n autoCollapse: true,\n hideSuggestions: false,\n singleConversation: true\n};\n\nEmailShellDemo.argTypes = {\n autoCollapse: { control: { type: 'boolean' } },\n hideSuggestions: { control: { type: 'boolean' } },\n singleConversation: { control: { type: 'boolean' } }\n};\n\n// _______ .__ __. .___________. __ .___________.____ ____ __ __ _______.___________.\n// | ____|| \\ | | | || | | |\\ \\ / / | | | | / | |\n// | |__ | \\| | `---| |----`| | `---| |----` \\ \\/ / | | | | | (----`---| |----`\n// | __| | . ` | | | | | | | \\_ _/ | | | | \\ \\ | |\n// | |____ | |\\ | | | | | | | | | | `----.| | .----) | | |\n// |_______||__| \\__| |__| |__| |__| |__| |_______||__| |_______/ |__|\n\ninterface EntityListDemoProps {\n enableContextMenu?: boolean;\n onContextMenu?: (e: MouseEvent) => void;\n}\n\nexport const EntityListDemo: Story<EntityListDemoProps> = (args: EntityListDemoProps) => {\n const itemCounter = useRef(3);\n const timeout = useRef<number | null>(null);\n const imperativeHandle: ContextMenuProps['handle'] = useRef(null);\n const headerProps: EntityListProps['header'] = {\n icon: 'list-number',\n text: 'Entities'\n };\n\n const handleRightClick = () => {\n itemCounter.current += 1;\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n timeout.current = window.setTimeout(() => {\n imperativeHandle.current?.setContextMenuItems(contextMenuItemsMock);\n }, 1000);\n };\n\n return (\n <EntityList\n header={headerProps}\n content={EntityListMockData}\n contextMenu={\n args.enableContextMenu\n ? {\n onItemClick: action('onItemClick'),\n onContextMenu: args.onContextMenu || handleRightClick,\n handle: imperativeHandle\n }\n : undefined\n }\n />\n );\n};\n\nEntityListDemo.args = {\n enableContextMenu: true\n};\n\nEntityListDemo.argTypes = {\n enableContextMenu: { control: { type: 'boolean' } }\n};\n\n// _______ .___ ___. ___ __ __ _______. __ __ .___ ___. .___ ___. ___ .______ ____ ____ __ .___________. _______ .___ ___.\n// | ____|| \\/ | / \\ | | | | / || | | | | \\/ | | \\/ | / \\ | _ \\ \\ \\ / / | | | || ____|| \\/ |\n// | |__ | \\ / | / ^ \\ | | | | | (----`| | | | | \\ / | | \\ / | / ^ \\ | |_) | \\ \\/ / | | `---| |----`| |__ | \\ / |\n// | __| | |\\/| | / /_\\ \\ | | | | \\ \\ | | | | | |\\/| | | |\\/| | / /_\\ \\ | / \\_ _/ | | | | | __| | |\\/| |\n// | |____ | | | | / _____ \\ | | | `----. .----) | | `--' | | | | | | | | | / _____ \\ | |\\ \\----. | | | | | | | |____ | | | |\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |_______/ \\______/ |__| |__| |__| |__| /__/ \\__\\ | _| `._____| |__| |__| |__| |_______||__| |__|\n\ninterface EmailSummaryItemDemoProps {\n unreadEmailCount?: number;\n isActive?: boolean;\n}\n\nexport const EmailSummaryItemDemo: Story<EmailSummaryItemDemoProps> = (\n args: EmailSummaryItemDemoProps\n) => {\n return (\n <EmailSummaryItem\n id={createUID()}\n activeParticipants={[\n {\n shortName: 'Robert',\n fullName: 'Robert Downer',\n emailAddress: 'robert.downey@example.com'\n },\n {\n shortName: 'Nathan',\n fullName: 'Nathan Swanson',\n emailAddress: 'nathan.swanson@example.com'\n }\n ]}\n message='I have a quick question on traveling to India. How do I reach Hyderabad?'\n timeStamp={new Date(Date.UTC(new Date().getUTCFullYear(), new Date().getUTCMonth(), 24))}\n topic='Missing Luggage'\n sentiment={sentiment}\n urgency={10}\n unreadEmailCount={args.unreadEmailCount}\n active={args.isActive}\n onSelect={(id: EmailSummaryItemProps['id']) => {\n action('onSelect')(id);\n }}\n />\n );\n};\n\nEmailSummaryItemDemo.args = {\n unreadEmailCount: 0,\n isActive: false\n};\n\nEmailSummaryItemDemo.argTypes = {\n unreadEmailCount: { control: { type: 'number' } },\n isActive: { control: { type: 'boolean' } }\n};\n\n// _______ .___ ___. ___ __ __ _______. __ __ .___ ___. .___ ___. ___ .______ ____ ____ __ __ _______.___________.\n// | ____|| \\/ | / \\ | | | | / || | | | | \\/ | | \\/ | / \\ | _ \\ \\ \\ / / | | | | / | |\n// | |__ | \\ / | / ^ \\ | | | | | (----`| | | | | \\ / | | \\ / | / ^ \\ | |_) | \\ \\/ / | | | | | (----`---| |----`\n// | __| | |\\/| | / /_\\ \\ | | | | \\ \\ | | | | | |\\/| | | |\\/| | / /_\\ \\ | / \\_ _/ | | | | \\ \\ | |\n// | |____ | | | | / _____ \\ | | | `----. .----) | | `--' | | | | | | | | | / _____ \\ | |\\ \\----. | | | `----.| | .----) | | |\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |_______/ \\______/ |__| |__| |__| |__| /__/ \\__\\ | _| `._____| |__| |_______||__| |_______/ |__|\n\ninterface EmailSummaryListStoryProps {\n onItemClick?: EmailSummaryListProps['onItemClick'];\n items?: EmailSummaryListProps['items'];\n onLoadMore?: EmailSummaryListProps['onLoadMore'];\n loading?: EmailSummaryListProps['loading'];\n}\n\nexport const EmailSummaryListDemo: Story<EmailSummaryListStoryProps> = (\n args: EmailSummaryListStoryProps\n) => {\n const INITIAL_CHUNK_SIZE = 9;\n const APPEND_CHUNK_SIZE = 1;\n\n const emailSummaryListRef = useRef(null);\n const [allEmailItems, setAllEmailItems] = useState(\n emailSummaryItems.slice(0, INITIAL_CHUNK_SIZE)\n );\n const [categories, setCategories] = useState<MenuProps['items']>(emailWorklistItemsMock);\n\n const handleItemClick = (id: string) => {\n const index = allEmailItems.findIndex(emailItem => {\n return emailItem.id === id;\n });\n\n const newEmailItems = [...allEmailItems];\n newEmailItems.splice(index, 1, { ...allEmailItems[index], unreadEmailCount: 0 });\n\n setAllEmailItems(newEmailItems);\n };\n\n const onCategoryClick: MenuItemProps['onClick'] = (id: MenuItemProps['id']) => {\n setCategories(cur => menuHelpers.toggleSelected(cur, id, 'single-select'));\n };\n\n const [loading, setLoading] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n\n const loadMore = useCallback(() => {\n if (!loading) {\n setLoading(true);\n\n setTimeout(() => {\n setLoading(false);\n setAllEmailItems(prevItems => {\n const previousItemsLength = prevItems.length;\n const newItems = emailSummaryItems.slice(\n previousItemsLength,\n previousItemsLength + APPEND_CHUNK_SIZE\n );\n\n if (newItems.length === 0) {\n setHasMore(false);\n }\n\n return [...prevItems, ...newItems];\n });\n }, 1500);\n }\n }, [loading]);\n\n return (\n <EmailSummaryList\n ref={emailSummaryListRef}\n unreadEmailCount={99}\n categories={categories}\n items={args.items || allEmailItems}\n onItemClick={args.onItemClick || handleItemClick}\n onCategoryClick={onCategoryClick}\n onLoadMore={args.onLoadMore || (hasMore ? loadMore : undefined)}\n loading={args.loading || loading}\n emptyMessage='No emails.'\n />\n );\n};\n\n// _______ .___ ___. ___ __ __ .___ ___. ___ .__ __. ___ _______ _______ .______\n// | ____|| \\/ | / \\ | | | | | \\/ | / \\ | \\ | | / \\ / _____|| ____|| _ \\\n// | |__ | \\ / | / ^ \\ | | | | | \\ / | / ^ \\ | \\| | / ^ \\ | | __ | |__ | |_) |\n// | __| | |\\/| | / /_\\ \\ | | | | | |\\/| | / /_\\ \\ | . ` | / /_\\ \\ | | |_ | | __| | /\n// | |____ | | | | / _____ \\ | | | `----. | | | | / _____ \\ | |\\ | / _____ \\ | |__| | | |____ | |\\ \\----.\n// |_______||__| |__| /__/ \\__\\ |__| |_______| |__| |__| /__/ \\__\\ |__| \\__| /__/ \\__\\ \\______| |_______|| _| `._____|\n\ninterface EmailManagerAppShellProps {\n enableContextMenu?: boolean;\n onContextMenu?: (e: MouseEvent) => void;\n}\n\nexport const EmailManagerAppShell: Story<EmailManagerAppShellProps> = (\n args: EmailManagerAppShellProps\n) => {\n const INITIAL_CHUNK_SIZE = 9;\n const APPEND_CHUNK_SIZE = 1;\n\n const [activeItemId, setActiveItemId] = useState<string | undefined>();\n const [emailList, setEmailList] = useState(emailSummaryItems.slice(0, INITIAL_CHUNK_SIZE));\n const [loading, setLoading] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n\n const handleEmailItemClick = (id: EmailSummaryItemProps['id']) => {\n setActiveItemId(id);\n\n const index = emailList.findIndex(emailItem => {\n return emailItem.id === id;\n });\n\n const newEmailList = [...emailList];\n newEmailList.splice(index, 1, { ...emailList[index], unreadEmailCount: 0 });\n\n setEmailList(newEmailList);\n };\n\n const onLoadMore = useCallback(() => {\n if (!loading) {\n setLoading(true);\n\n setTimeout(() => {\n setLoading(false);\n setEmailList(prevItems => {\n const previousItemsLength = prevItems.length;\n const newItems = emailSummaryItems.slice(\n previousItemsLength,\n previousItemsLength + APPEND_CHUNK_SIZE\n );\n\n if (newItems.length === 0) {\n setHasMore(false);\n }\n\n return [...prevItems, ...newItems];\n });\n }, 1500);\n }\n }, [loading]);\n\n const activeItemIndex = useMemo(\n () => emailList.findIndex(emailItem => emailItem.id === activeItemId),\n [activeItemId, emailList]\n );\n\n const content =\n activeItemId === undefined ? (\n <EmptyState message='No item selected!' />\n ) : (\n <EmailShellDemo singleConversation={activeItemIndex % 2 !== 0} />\n );\n\n const utilities =\n activeItemId === undefined ? null : (\n // View analysis utility\n <Grid container={{ rowGap: 2 }}>\n <EntityListDemo\n onContextMenu={args.onContextMenu}\n enableContextMenu={args.enableContextMenu}\n />\n <Card>\n <CardHeader container={{ alignItems: 'center', gap: 1 }}>\n <Icon name='document-doc' />\n <Text variant='h3'>Email header</Text>\n </CardHeader>\n <CardContent>\n <FieldValueList fields={viewAnalysisEmailHeaderMock} variant='stacked' />\n </CardContent>\n </Card>\n <SummaryList\n name='Topics'\n icon='headline'\n items={topicListMock.map(items => ({\n ...items,\n primary: <StyledLabel>{items.primary}</StyledLabel>,\n secondary: (\n <Flex container={{ direction: 'row', justify: 'between' }}>\n <Text variant='primary'>{items.secondary.indicator}</Text>\n <StyledLabel>{items.secondary.value}</StyledLabel>\n </Flex>\n )\n }))}\n noItemsText='No items'\n />\n </Grid>\n );\n\n return (\n <AppShellDemo\n appHeader\n main={\n <EmailManager\n header={{\n icon: 'mail',\n title: 'Inbox'\n }}\n list={\n <EmailSummaryListDemo\n onItemClick={handleEmailItemClick}\n items={emailList}\n onLoadMore={hasMore ? onLoadMore : undefined}\n loading={loading}\n />\n }\n content={content}\n utilities={utilities}\n utilitiesSummaryItems={\n utilities\n ? [\n { iconName: 'list-number', count: 7 },\n { iconName: 'document-doc', count: 1 },\n { iconName: 'headline', count: 4 }\n ]\n : undefined\n }\n defaultCollapsedUtilities={!!utilities}\n />\n }\n />\n );\n};\n\nEmailManagerAppShell.args = {\n enableContextMenu: true\n};\n\nEmailManagerAppShell.argTypes = {\n enableContextMenu: { control: { type: 'boolean' } }\n};\nEmailManagerAppShell.parameters = {\n layout: 'fullscreen'\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Feed.stories.d.ts","sourceRoot":"","sources":["../../../src/social/Feed/Feed.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAkB/C,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;;AAS/E,wBAGU;AAEV,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,gBAAgB,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;CAClD;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"Feed.stories.d.ts","sourceRoot":"","sources":["../../../src/social/Feed/Feed.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAkB/C,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;;AAS/E,wBAGU;AAEV,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,gBAAgB,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;CAClD;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,aAAa,CAoMzC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAE9B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createElement as _createElement } from "react";
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useRef, useCallback } from 'react';
|
|
3
|
+
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
4
4
|
import { createUID, DateTimeDisplay, Lightbox, OneColumnPage } from '@pega/cosmos-react-core';
|
|
5
5
|
import { Feed, MentionButtonConfig, HashtagButtonConfig } from '@pega/cosmos-react-social';
|
|
6
6
|
import { Glimpse } from '@pega/cosmos-react-work';
|
|
@@ -57,10 +57,11 @@ export const FeedDemo = ({ markdownMap, onMentionPreview }) => {
|
|
|
57
57
|
}
|
|
58
58
|
};
|
|
59
59
|
const [loading, setLoading] = useState(false);
|
|
60
|
+
let timeoutId;
|
|
60
61
|
const generateNewPost = useCallback(() => {
|
|
61
62
|
if (!loading) {
|
|
62
63
|
setLoading(true);
|
|
63
|
-
setTimeout(() => {
|
|
64
|
+
timeoutId = setTimeout(() => {
|
|
64
65
|
setLoading(false);
|
|
65
66
|
setExtraPosts(posts => [
|
|
66
67
|
...posts,
|
|
@@ -77,6 +78,9 @@ export const FeedDemo = ({ markdownMap, onMentionPreview }) => {
|
|
|
77
78
|
}, 1000);
|
|
78
79
|
}
|
|
79
80
|
}, [loading]);
|
|
81
|
+
useEffect(() => {
|
|
82
|
+
return () => clearTimeout(timeoutId);
|
|
83
|
+
}, []);
|
|
80
84
|
const onMentionClick = ({ id, type }) => {
|
|
81
85
|
if (type === 'user') {
|
|
82
86
|
const user = userMentions.find(mention => mention.id === id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Feed.stories.js","sourceRoot":"","sources":["../../../src/social/Feed/Feed.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useState, useRef, useCallback } from 'react';\n\nimport {\n createUID,\n DateTimeDisplay,\n Lightbox,\n LightboxProps,\n MenuItemProps,\n OneColumnPage\n} from '@pega/cosmos-react-core';\nimport {\n Feed,\n Filter,\n MentionButtonConfig,\n HashtagButtonConfig,\n AttachedFiles\n} from '@pega/cosmos-react-social';\nimport { FeedProps } from '@pega/cosmos-react-social/lib/components/Feed/Feed';\nimport { Glimpse, GlimpseProps } from '@pega/cosmos-react-work';\n\nimport { AppShellDemo } from '../../core/AppShell/AppShell.stories';\n\nimport { FeedPostDemo } from './FeedPost.stories';\nimport { FeedNewPostDemo } from './FeedNewPost.stories';\nimport { caseMentions, feedPosts, userMentions, FeedPostDemoProps } from './Feed.mocks';\n\nexport default {\n title: 'Social/Feed/Feed',\n component: Feed\n} as Meta;\n\ninterface FeedDemoProps {\n markdownMap?: FeedProps['markdownMap'];\n onMentionPreview?: FeedProps['onMentionPreview'];\n}\n\nexport const FeedDemo: Story<FeedDemoProps> = ({\n markdownMap,\n onMentionPreview\n}: FeedDemoProps) => {\n const [extraPosts, setExtraPosts] = useState<FeedPostDemoProps[]>(() => feedPosts);\n const [searchResults, setSearchResults] = useState<MenuItemProps[]>([]);\n\n const [filters, setFilters] = useState<Filter[]>(\n Array.from({ length: 10 }, (_, index) => {\n return {\n id: `filter-${index + 1}`,\n label: `Filter ${index + 1}`\n };\n })\n );\n\n const toggleFilter = (filterId: string) => {\n const updatedFilters = [...filters];\n const filterToUpdate = updatedFilters.find(x => x.id === filterId);\n\n if (filterToUpdate) filterToUpdate.on = !filterToUpdate.on;\n\n setFilters(updatedFilters);\n };\n\n const onSearch = ({\n type,\n search,\n mentionType\n }: {\n type: 'mention' | 'tag';\n search: string;\n mentionType: string;\n }) => {\n if (type === 'mention') {\n const availableMentions = mentionType === 'case' ? caseMentions : userMentions;\n\n const mentions: MenuItemProps[] = availableMentions\n .filter((user: GlimpseProps) => {\n const names = user.primary.toLowerCase().split(' ');\n const searchWords = search.toLowerCase().split(' ');\n return !!searchWords.every((word: string) =>\n names.find((name: string) => name.startsWith(word))\n );\n })\n .map(({ id, primary, secondary, visual, href }) => {\n return {\n id,\n primary,\n secondary,\n visual,\n href\n };\n });\n setSearchResults(mentions);\n } else {\n setSearchResults(\n ['cosmos', 'hashtag', 'pega']\n .filter(tag => {\n return tag.toLowerCase().includes(search.toLowerCase());\n })\n .map(tag => ({ id: tag, primary: tag }))\n );\n }\n };\n\n const [loading, setLoading] = useState(false);\n\n const generateNewPost = useCallback(() => {\n if (!loading) {\n setLoading(true);\n setTimeout(() => {\n setLoading(false);\n setExtraPosts(posts => [\n ...posts,\n {\n id: createUID(),\n fullname: 'Demo User',\n username: 'demo_user',\n content: 'This post was loaded after the Feed was scrolled to the bottom!',\n attachments: [],\n replies: [],\n renderFeed: false\n }\n ]);\n }, 1000);\n }\n }, [loading]);\n\n const onMentionClick = ({ id, type }: { id: string; type: string }) => {\n if (type === 'user') {\n const user = userMentions.find(mention => mention.id === id);\n if (user) return <Glimpse {...user} />;\n }\n };\n\n const [lightboxImages, setLightboxImages] = useState<LightboxProps['items'] | null>(null);\n const defaultLBIndex = useRef(0);\n\n const renderLightbox = (attachments: AttachedFiles[], name: string) => {\n const images: LightboxProps['items'] = attachments\n .filter(attachment => attachment.type.includes('image') && attachment.thumbnail)\n .map(image => {\n return {\n id: image.thumbnail as string,\n name: image.name,\n description: image.name,\n src: image.thumbnail as string,\n metadata: [image.type, <DateTimeDisplay value={new Date()} variant='date' />]\n };\n });\n\n const idx = images.findIndex(image => image.name === name);\n defaultLBIndex.current = idx > -1 ? idx : 0;\n setLightboxImages(images);\n };\n\n const deletePost = (index: number) => {\n setExtraPosts(posts => {\n const postsCopy = [...posts];\n postsCopy.splice(index, 1);\n return [...postsCopy];\n });\n };\n\n return (\n <>\n <Feed\n title='Pulse'\n userInfo={{ username: 'demo_user', fullname: 'Demo User' }}\n searchTypes={['user', 'case']}\n onDecoratorSearch={onSearch}\n searchResults={searchResults}\n onMentionClick={onMentionClick}\n onMentionPreview={onMentionPreview}\n markdownMap={markdownMap}\n interactionRenderers={[MentionButtonConfig, HashtagButtonConfig]}\n filters={filters}\n onFilterChange={toggleFilter}\n loadingPosts={loading}\n onLoadMore={generateNewPost}\n newPostRegion={\n <FeedNewPostDemo\n onPost={postEvent => {\n const { value, attachments, recipients, clear } = postEvent;\n\n attachments.forEach(file => {\n delete file.onDelete;\n file.onPreview = file.type.includes('image')\n ? () => renderLightbox(attachments, file.name)\n : undefined;\n file.onDownload = () => {};\n });\n\n if (value || attachments.length > 0) {\n setExtraPosts(posts => [\n {\n id: createUID(),\n fullname: 'Demo User',\n username: 'demo_user',\n content: value,\n attachments,\n recipients,\n postType: recipients.length ? 'private' : 'public',\n replies: [],\n postTimestamp: new Date(),\n renderFeed: false\n },\n ...posts\n ]);\n clear();\n }\n }}\n renderFeed={false}\n />\n }\n posts={extraPosts.map((post, i) => {\n return <FeedPostDemo {...post} key={post.id} onDelete={() => deletePost(i)} />;\n })}\n />\n {lightboxImages && (\n <Lightbox\n items={lightboxImages}\n defaultIndex={defaultLBIndex.current}\n onAfterClose={() => {\n setLightboxImages(null);\n }}\n />\n )}\n </>\n );\n};\n\nexport const FeedWithAppShell: Story = () => {\n return <AppShellDemo appHeader main={<OneColumnPage title='Welcome' a={<FeedDemo />} />} />;\n};\n\nFeedWithAppShell.parameters = {\n layout: 'fullscreen'\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Feed.stories.js","sourceRoot":"","sources":["../../../src/social/Feed/Feed.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useState, useRef, useCallback, useEffect } from 'react';\n\nimport {\n createUID,\n DateTimeDisplay,\n Lightbox,\n LightboxProps,\n MenuItemProps,\n OneColumnPage\n} from '@pega/cosmos-react-core';\nimport {\n Feed,\n Filter,\n MentionButtonConfig,\n HashtagButtonConfig,\n AttachedFiles\n} from '@pega/cosmos-react-social';\nimport { FeedProps } from '@pega/cosmos-react-social/lib/components/Feed/Feed';\nimport { Glimpse, GlimpseProps } from '@pega/cosmos-react-work';\n\nimport { AppShellDemo } from '../../core/AppShell/AppShell.stories';\n\nimport { FeedPostDemo } from './FeedPost.stories';\nimport { FeedNewPostDemo } from './FeedNewPost.stories';\nimport { caseMentions, feedPosts, userMentions, FeedPostDemoProps } from './Feed.mocks';\n\nexport default {\n title: 'Social/Feed/Feed',\n component: Feed\n} as Meta;\n\ninterface FeedDemoProps {\n markdownMap?: FeedProps['markdownMap'];\n onMentionPreview?: FeedProps['onMentionPreview'];\n}\n\nexport const FeedDemo: Story<FeedDemoProps> = ({\n markdownMap,\n onMentionPreview\n}: FeedDemoProps) => {\n const [extraPosts, setExtraPosts] = useState<FeedPostDemoProps[]>(() => feedPosts);\n const [searchResults, setSearchResults] = useState<MenuItemProps[]>([]);\n\n const [filters, setFilters] = useState<Filter[]>(\n Array.from({ length: 10 }, (_, index) => {\n return {\n id: `filter-${index + 1}`,\n label: `Filter ${index + 1}`\n };\n })\n );\n\n const toggleFilter = (filterId: string) => {\n const updatedFilters = [...filters];\n const filterToUpdate = updatedFilters.find(x => x.id === filterId);\n\n if (filterToUpdate) filterToUpdate.on = !filterToUpdate.on;\n\n setFilters(updatedFilters);\n };\n\n const onSearch = ({\n type,\n search,\n mentionType\n }: {\n type: 'mention' | 'tag';\n search: string;\n mentionType: string;\n }) => {\n if (type === 'mention') {\n const availableMentions = mentionType === 'case' ? caseMentions : userMentions;\n\n const mentions: MenuItemProps[] = availableMentions\n .filter((user: GlimpseProps) => {\n const names = user.primary.toLowerCase().split(' ');\n const searchWords = search.toLowerCase().split(' ');\n return !!searchWords.every((word: string) =>\n names.find((name: string) => name.startsWith(word))\n );\n })\n .map(({ id, primary, secondary, visual, href }) => {\n return {\n id,\n primary,\n secondary,\n visual,\n href\n };\n });\n setSearchResults(mentions);\n } else {\n setSearchResults(\n ['cosmos', 'hashtag', 'pega']\n .filter(tag => {\n return tag.toLowerCase().includes(search.toLowerCase());\n })\n .map(tag => ({ id: tag, primary: tag }))\n );\n }\n };\n\n const [loading, setLoading] = useState(false);\n let timeoutId: ReturnType<typeof setTimeout>;\n\n const generateNewPost = useCallback(() => {\n if (!loading) {\n setLoading(true);\n timeoutId = setTimeout(() => {\n setLoading(false);\n setExtraPosts(posts => [\n ...posts,\n {\n id: createUID(),\n fullname: 'Demo User',\n username: 'demo_user',\n content: 'This post was loaded after the Feed was scrolled to the bottom!',\n attachments: [],\n replies: [],\n renderFeed: false\n }\n ]);\n }, 1000);\n }\n }, [loading]);\n\n useEffect(() => {\n return () => clearTimeout(timeoutId);\n }, []);\n\n const onMentionClick = ({ id, type }: { id: string; type: string }) => {\n if (type === 'user') {\n const user = userMentions.find(mention => mention.id === id);\n if (user) return <Glimpse {...user} />;\n }\n };\n\n const [lightboxImages, setLightboxImages] = useState<LightboxProps['items'] | null>(null);\n const defaultLBIndex = useRef(0);\n\n const renderLightbox = (attachments: AttachedFiles[], name: string) => {\n const images: LightboxProps['items'] = attachments\n .filter(attachment => attachment.type.includes('image') && attachment.thumbnail)\n .map(image => {\n return {\n id: image.thumbnail as string,\n name: image.name,\n description: image.name,\n src: image.thumbnail as string,\n metadata: [image.type, <DateTimeDisplay value={new Date()} variant='date' />]\n };\n });\n\n const idx = images.findIndex(image => image.name === name);\n defaultLBIndex.current = idx > -1 ? idx : 0;\n setLightboxImages(images);\n };\n\n const deletePost = (index: number) => {\n setExtraPosts(posts => {\n const postsCopy = [...posts];\n postsCopy.splice(index, 1);\n return [...postsCopy];\n });\n };\n\n return (\n <>\n <Feed\n title='Pulse'\n userInfo={{ username: 'demo_user', fullname: 'Demo User' }}\n searchTypes={['user', 'case']}\n onDecoratorSearch={onSearch}\n searchResults={searchResults}\n onMentionClick={onMentionClick}\n onMentionPreview={onMentionPreview}\n markdownMap={markdownMap}\n interactionRenderers={[MentionButtonConfig, HashtagButtonConfig]}\n filters={filters}\n onFilterChange={toggleFilter}\n loadingPosts={loading}\n onLoadMore={generateNewPost}\n newPostRegion={\n <FeedNewPostDemo\n onPost={postEvent => {\n const { value, attachments, recipients, clear } = postEvent;\n\n attachments.forEach(file => {\n delete file.onDelete;\n file.onPreview = file.type.includes('image')\n ? () => renderLightbox(attachments, file.name)\n : undefined;\n file.onDownload = () => {};\n });\n\n if (value || attachments.length > 0) {\n setExtraPosts(posts => [\n {\n id: createUID(),\n fullname: 'Demo User',\n username: 'demo_user',\n content: value,\n attachments,\n recipients,\n postType: recipients.length ? 'private' : 'public',\n replies: [],\n postTimestamp: new Date(),\n renderFeed: false\n },\n ...posts\n ]);\n clear();\n }\n }}\n renderFeed={false}\n />\n }\n posts={extraPosts.map((post, i) => {\n return <FeedPostDemo {...post} key={post.id} onDelete={() => deletePost(i)} />;\n })}\n />\n {lightboxImages && (\n <Lightbox\n items={lightboxImages}\n defaultIndex={defaultLBIndex.current}\n onAfterClose={() => {\n setLightboxImages(null);\n }}\n />\n )}\n </>\n );\n};\n\nexport const FeedWithAppShell: Story = () => {\n return <AppShellDemo appHeader main={<OneColumnPage title='Welcome' a={<FeedDemo />} />} />;\n};\n\nFeedWithAppShell.parameters = {\n layout: 'fullscreen'\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/cosmos-react-demos",
|
|
3
|
-
"version": "3.0.0-dev.23.
|
|
3
|
+
"version": "3.0.0-dev.23.1",
|
|
4
4
|
"author": "Pegasystems",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"repository": {
|
|
@@ -20,14 +20,14 @@
|
|
|
20
20
|
"build": "tsc -b"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@pega/cosmos-react-build": "3.0.0-dev.23.
|
|
24
|
-
"@pega/cosmos-react-condition-builder": "3.0.0-dev.23.
|
|
25
|
-
"@pega/cosmos-react-core": "3.0.0-dev.23.
|
|
26
|
-
"@pega/cosmos-react-cs": "3.0.0-dev.23.
|
|
27
|
-
"@pega/cosmos-react-dnd": "3.0.0-dev.23.
|
|
28
|
-
"@pega/cosmos-react-rte": "3.0.0-dev.23.
|
|
29
|
-
"@pega/cosmos-react-social": "3.0.0-dev.23.
|
|
30
|
-
"@pega/cosmos-react-work": "3.0.0-dev.23.
|
|
23
|
+
"@pega/cosmos-react-build": "3.0.0-dev.23.1",
|
|
24
|
+
"@pega/cosmos-react-condition-builder": "3.0.0-dev.23.1",
|
|
25
|
+
"@pega/cosmos-react-core": "3.0.0-dev.23.1",
|
|
26
|
+
"@pega/cosmos-react-cs": "3.0.0-dev.23.1",
|
|
27
|
+
"@pega/cosmos-react-dnd": "3.0.0-dev.23.1",
|
|
28
|
+
"@pega/cosmos-react-rte": "3.0.0-dev.23.1",
|
|
29
|
+
"@pega/cosmos-react-social": "3.0.0-dev.23.1",
|
|
30
|
+
"@pega/cosmos-react-work": "3.0.0-dev.23.1",
|
|
31
31
|
"@types/emoji-mart": "^3.0.4",
|
|
32
32
|
"@types/react": "^16.14.24 || ^17.0.38",
|
|
33
33
|
"@types/react-dom": "^16.9.14 || ^17.0.11",
|