{"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 { useState, useRef, useCallback, useEffect, createRef } from 'react';\nimport type { RefObject, MouseEvent, FunctionComponent } from 'react';\nimport { action } from '@storybook/addon-actions';\nimport type { Meta, StoryFn } from '@storybook/react';\n\nimport {\n  Card,\n  CardContent,\n  createUID,\n  MenuButton,\n  Icon,\n  registerIcon,\n  Flex,\n  Button,\n  menuHelpers,\n  CardHeader,\n  Text,\n  SummaryList,\n  Grid,\n  FieldValueList,\n  StyledLabel,\n  Modal,\n  useModalManager,\n  useModalContext,\n  useToaster,\n  Banner,\n  Lightbox,\n  createStringMatcher\n} from '@pega/cosmos-react-core';\nimport type { MenuItemProps, MenuProps, LightboxItem } 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  EmailManager,\n  EmailCaseView\n} from '@pega/cosmos-react-social';\nimport type {\n  EmailProps,\n  EmailConversationProps,\n  EmailComposerProps,\n  EntityListProps,\n  EmailSummaryListProps,\n  EmailSummaryItemProps,\n  EmailCaseViewProps\n} from '@pega/cosmos-react-social';\nimport type {\n  EmailComposerFieldType,\n  EmailComposerValueType,\n  EmailComposerHandleValue,\n  ContextMenuProps,\n  EmailShellProps,\n  EmailTemplate\n} from '@pega/cosmos-react-social/lib/components/Email/Email.types';\n\nimport { mockData } from '../../core/Lightbox/Lightbox.mocks';\nimport { AppShellDemo } from '../../core/AppShell/AppShell.stories';\n\nimport {\n  bccParticipants,\n  ccParticipants,\n  emailBodyContent,\n  participants,\n  toParticipants,\n  EntityListMockData,\n  viewAnalysisEmailHeaderMock,\n  topicListMock,\n  generateEmailConversationParticipants,\n  templates,\n  handleExternalEntry,\n  emailDemoActions,\n  LaunchAction,\n  baseComposerProps,\n  sentiment,\n  emailSummaryItems,\n  mockEmails,\n  mockSuggestedReplies,\n  getCompositeId,\n  emptyFieldErrorMessage,\n  fieldValidation,\n  emailWorklistItemsMock,\n  contextMenuItemsMock,\n  highlightedEntitiesMock,\n  mockUploadImage,\n  mailDeliverySystemEmail,\n  supportTeamEmail,\n  bodyData,\n  emailAccounts,\n  getTemplate,\n  fetchMockHistory\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\nexport interface EmailDemoProps extends EmailProps {\n  enableEntityHighlighting?: boolean;\n  enableContextMenu?: boolean;\n  trailContent?: string;\n  showEmailBanner?: boolean;\n  showDraft?: boolean;\n  body?: string;\n}\n\nexport const Email: StoryFn<EmailDemoProps> = (args: EmailDemoProps) => {\n  const contextMenuHandle: ContextMenuProps['handle'] = useRef(null);\n  const timeout = useRef<number | null>(null);\n  const [trailLoading, setTrailLoading] = useState(false);\n  const [trailContent, setTrailContent] = useState<string>();\n  const [trailExpanded, setTrailExpanded] = useState(false);\n  const [openLightBox, setOpenLightBox] = useState(false);\n  const defaultLBIndex = useRef(0);\n  const lightBoxItems = mockData.slice(0, 6);\n\n  const handleRightClick = (id: EmailProps['id'], e: MouseEvent) => {\n    action('onContextMenu')(id, e);\n    if (contextMenuHandle.current && args.enableContextMenu) {\n      const { setItems, setOpen, setLoading } = contextMenuHandle.current;\n      // Deciding not to show browser context menu\n      // This should be synchronus\n      e.preventDefault();\n\n      // Now open the custom context menu using the handle and show loader\n      setLoading(true);\n      setItems([]);\n      setOpen(true);\n      if (timeout.current) {\n        clearTimeout(timeout.current);\n      }\n      timeout.current = window.setTimeout(() => {\n        setItems(contextMenuItemsMock);\n        // Hide the loader\n        setLoading(false);\n      }, 1000);\n    }\n  };\n\n  const onExpandCollapse = async (id: EmailProps['id']) => {\n    setTrailExpanded(prev => !prev);\n    if (!trailContent) {\n      setTrailLoading(true);\n      const content = await fetchMockHistory(id);\n      setTrailContent(args.trailContent?.length ? args.trailContent : content);\n      setTrailLoading(false);\n    }\n  };\n\n  useEffect(() => {\n    return () => {\n      if (timeout.current) {\n        window.clearTimeout(timeout.current);\n      }\n    };\n  }, []);\n\n  return (\n    <Card>\n      <StyledEmailCardContent>\n        <EmailComponent\n          id={args.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={\n            args.body ||\n            '<div style=\"font-size: 0.95em;\">Hi,<p>I am one of the customer of Indian Overseas Bank, <b><i>Nagercoil</i></b> branch, with code <b><a href=\"https://www.pega.com\" target=\"_blank\"><i>3967</i></a></b>. I have a saving bank account here. My account number is <i>6785420965476</i> with an account balance of ₹97,398.57.</p><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><p>I hereby request you to block my debit card immediately to prevent misuse of the same by some others. Also I request you to send me an new debit card to my address, 22-6-14/A(99M5+RR), Gandhi Road, Hyderabad,  as early as possible. Please call me on +918989812345 if you need more info.<p><br/><p style=\"font-weight: bold; color: #0fa4ad\">Regards,<br/>Laura Stevens</p><img style=\"width: 100px; margin-left: -8px;\" loading=\"lazy\" alt=\"Pega logo\" src=\"https://www.pega.com/sites/default/files/media/images/2021-10/pega-logo-vertical-positive-rgb-01.png\" /></div>'\n          }\n          trail={\n            args.trail ?? {\n              expanded: trailExpanded,\n              loading: trailLoading,\n              onExpandCollapse,\n              ...(!trailLoading ? { content: trailContent } : undefined)\n            }\n          }\n          entityHighlightMapping={\n            args.enableEntityHighlighting\n              ? args.entityHighlightMapping || highlightedEntitiesMock\n              : undefined\n          }\n          subject={args.subject || 'I lost my debit card'}\n          banner={\n            args.showEmailBanner\n              ? {\n                  messages: [\n                    {\n                      label: 'Address not found.',\n                      description:\n                        '550 5.1.1 The email account that you tried to reach does not exist. Please try double-checking the recipients email address for typos or unnecessary spaces. Learn more at https://support.google.com/mail/?p=NoSuchUser k24-20020aa790d8000000b0050dd7e3b84csor451330pfk.28'\n                    }\n                  ]\n                }\n              : undefined\n          }\n          onReply={args.onReply || (args.showDraft ? undefined : action('On reply'))}\n          onReplyAll={args.onReplyAll || (args.showDraft ? undefined : action('On reply all'))}\n          onForward={args.onForward || (args.showDraft ? undefined : action('On forward'))}\n          onEditDraft={args.onEditDraft || (args.showDraft ? action('On forward') : undefined)}\n          onDeleteDraft={args.onDeleteDraft || (args.showDraft ? action('On forward') : undefined)}\n          onSuggestionClick={args.onSuggestionClick || action('On Suggested reply clicked')}\n          sentiment={{\n            variant: 'neutral'\n          }}\n          status={args.showDraft ? 'draft' : undefined}\n          suggestions={mockSuggestedReplies}\n          contextMenu={\n            args.contextMenu ||\n            (args.enableContextMenu\n              ? {\n                  onItemClick: (selectedValue: { fieldName: string; fieldValue: string }) => {\n                    action('onItemClick')(selectedValue);\n                    contextMenuHandle.current?.setOpen(false);\n                  },\n                  onContextMenu: handleRightClick,\n                  handle: contextMenuHandle\n                }\n              : undefined)\n          }\n          attachments={lightBoxItems.map((item, index) => {\n            return {\n              id: item.id,\n              value: item.format,\n              displayText: item.name,\n              onDownload: action('On Download'),\n              onPreview: () => {\n                defaultLBIndex.current = index;\n                setOpenLightBox(true);\n              }\n            };\n          })}\n        />\n        {openLightBox && (\n          <Lightbox\n            items={lightBoxItems}\n            defaultIndex={defaultLBIndex.current}\n            cycle\n            onAfterClose={() => {\n              setOpenLightBox(false);\n            }}\n            onItemDownload={() => {}}\n          />\n        )}\n      </StyledEmailCardContent>\n    </Card>\n  );\n};\n\nEmail.args = {\n  enableEntityHighlighting: false,\n  enableContextMenu: false,\n  trailContent: undefined,\n  showEmailBanner: false,\n  showDraft: false\n};\n\nEmail.argTypes = {\n  enableEntityHighlighting: { control: { type: 'boolean' } },\n  enableContextMenu: { control: { type: 'boolean' } },\n  trailContent: { control: { type: 'text' } },\n  showEmailBanner: { control: { type: 'boolean' } },\n  showDraft: { control: { type: 'boolean' } }\n};\n\n//   ______   ______   .___  ___. .______     ______        _______. _______ .______\n//  /      | /  __  \\  |   \\/   | |   _  \\   /  __  \\      /       ||   ____||   _  \\\n// |  ,----'|  |  |  | |  \\  /  | |  |_)  | |  |  |  |    |   (----`|  |__   |  |_)  |\n// |  |     |  |  |  | |  |\\/|  | |   ___/  |  |  |  |     \\   \\    |   __|  |      /\n// |  `----.|  `--'  | |  |  |  | |  |      |  `--'  | .----)   |   |  |____ |  |\\  \\----.\n//  \\______| \\______/  |__|  |__| | _|       \\______/  |_______/    |_______|| _| `._____|\n\ninterface ComposerDemoProps {\n  enableResponseTypeToggle?: boolean;\n  enableSaveAsDraft?: boolean;\n  onSave?: EmailComposerProps['onSave'];\n  onCancel?: EmailComposerProps['onCancel'];\n  onSend?: EmailComposerProps['onSend'];\n  onChange?: EmailComposerProps['onChange'];\n  data?: EmailComposerProps['data'];\n  bodyContentToReplace?: string;\n}\n\nexport const Composer: StoryFn<ComposerDemoProps> = (args: ComposerDemoProps) => {\n  const pageSize = 4;\n  const enableSaveAsDraft = args.enableSaveAsDraft !== undefined ? args.enableSaveAsDraft : true;\n  const enableResponseTypeToggle =\n    args.enableResponseTypeToggle !== undefined ? args.enableResponseTypeToggle : true;\n  const [composerProgress, setComposerProgress] = useState<EmailComposerProps['progress']>(false);\n  const [open, setOpen] = useState(false);\n  const [lightBoxItems, setLightBoxItems] = useState<LightboxItem[]>([]);\n  const [emailParticipants, setEmailParticipants] = useState<EmailComposerProps['participants']>(\n    participants.slice(0, 10)\n  );\n\n  const composerHandle = useRef<EmailComposerHandleValue>(null);\n  const defaultLBIndex = useRef(0);\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: bodyData\n    },\n    responseType: 'reply',\n    selectedTemplateId: '',\n    attachments: [],\n    bodyContentCurrentValue: ''\n  });\n\n  const handleLoadMore = (\n    field: Extract<EmailComposerFieldType, 'to' | 'cc' | 'bcc' | 'emailAccount'>,\n    filteredParticipants: EmailComposerProps['participants'],\n    showLoadMore: boolean\n  ) => {\n    if (showLoadMore && !data[field]?.loading) {\n      setData(prev => {\n        return {\n          ...prev,\n          [field]: {\n            ...prev[field],\n            loading: true\n          }\n        };\n      });\n      setTimeout(() => {\n        setData(prev => {\n          return {\n            ...prev,\n            [field]: {\n              ...prev[field],\n              loading: false\n            }\n          };\n        });\n\n        setEmailParticipants(prev => {\n          const newItems = filteredParticipants.slice(prev.length, prev.length + pageSize);\n          return prev.concat(newItems);\n        });\n      }, 2000);\n    }\n  };\n\n  const handleFilterOrLoad = (\n    field: Extract<EmailComposerFieldType, 'to' | 'cc' | 'bcc' | 'emailAccount'>,\n    filterValue: string,\n    loadMore: boolean\n  ) => {\n    let filteredParticipants: EmailComposerProps['participants'] = [];\n    if (['to', 'cc', 'bcc'].includes(field)) {\n      if (!filterValue) {\n        filteredParticipants = participants;\n      } else {\n        const filterRegex = createStringMatcher(filterValue, 'contains');\n        const filteredItems = participants.filter(({ emailAddress, fullName, shortName }) => {\n          return (\n            filterRegex.test(emailAddress) ||\n            filterRegex.test(fullName) ||\n            filterRegex.test(shortName)\n          );\n        });\n        filteredParticipants = filteredItems;\n      }\n\n      if (loadMore) {\n        handleLoadMore(\n          field,\n          filteredParticipants,\n          emailParticipants.length < filteredParticipants.length\n        );\n      } else {\n        setEmailParticipants(filteredParticipants.slice(0, 10));\n      }\n    }\n  };\n\n  const handleOnChange: EmailComposerProps['onChange'] = (field, value, isProgramatic) => {\n    if (field === 'bodyContent') {\n      setData(prev => ({\n        ...prev,\n        bodyContentCurrentValue: value as string,\n        bodyContent: {\n          defaultValue: value as string\n        }\n      }));\n    }\n    if (['responseType', 'selectedTemplateId'].includes(field)) {\n      setData(prev => ({\n        ...prev,\n        [field]: value\n      }));\n    } else if (field === 'attachments') {\n      const attachments = (value as EmailComposerValueType<'attachments'>)?.map((item, index) => {\n        return {\n          ...item,\n          onPreview: () => {\n            defaultLBIndex.current = index;\n            setOpen(true);\n          }\n        };\n      });\n\n      const lightBox = (value as EmailComposerValueType<'attachments'>)?.map(item => {\n        const arr = item.name.split('.');\n        return {\n          id: item.id,\n          name: item.name,\n          format: arr[arr.length - 1],\n          src: item.File ? window.URL.createObjectURL(item.File) : null\n        };\n      });\n\n      setLightBoxItems(lightBox);\n\n      setData(prev => ({\n        ...prev,\n        [field]: attachments\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, isProgramatic);\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 = (templateId: EmailTemplate['id']) => {\n    const selectedTemplate = getTemplate(templateId);\n\n    // Simulating api call\n    setComposerProgress({ message: 'Loading template...' });\n    setTimeout(() => {\n      setComposerProgress(false);\n      composerHandle.current?.replaceBodyContent(selectedTemplate?.content || '');\n      // Brings the cursor to the beginning of the body.\n      composerHandle.current?.setCursorLocationToStart?.();\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, id) => {\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  const pushContentToBody = () => {\n    if (args.bodyContentToReplace)\n      composerHandle.current?.replaceBodyContent(args.bodyContentToReplace);\n  };\n\n  const onEditorInit = () => {\n    action('onEditorInit')();\n  };\n\n  return (\n    <>\n      <EmailComposer\n        handle={composerHandle}\n        progress={composerProgress}\n        onSave={args.onSave || (enableSaveAsDraft ? action('On save') : undefined)}\n        onSend={args.onSend || handleOnSend}\n        onCancel={args.onCancel || action('On cancel')}\n        externalValidator={handleExternalEntry}\n        participants={emailParticipants}\n        onFilterChange={(field, filterValue) => {\n          handleFilterOrLoad(field, filterValue, false);\n        }}\n        onLoadMore={(field, filterValue) => {\n          handleFilterOrLoad(field, filterValue, true);\n        }}\n        onChange={args.onChange || handleOnChange}\n        data={\n          args.data || {\n            ...data,\n            responseType: enableResponseTypeToggle ? data.responseType : undefined\n          }\n        }\n        templates={templates}\n        onImageAdded={onImageAdded}\n        onEditorInit={onEditorInit}\n      />\n      <Button onClick={pushContentToBody}>Replace body content</Button>\n      {open && (\n        <Lightbox\n          items={lightBoxItems}\n          defaultIndex={defaultLBIndex.current}\n          cycle\n          onAfterClose={() => {\n            setOpen(false);\n          }}\n          onItemDownload={() => {}}\n        />\n      )}\n    </>\n  );\n};\n\nComposer.args = {\n  enableResponseTypeToggle: true,\n  enableSaveAsDraft: true,\n  bodyContentToReplace:\n    'Hello Eula,<br>Welcome to the world of <b>Awesome product</b>.<br><br>We appreciate your interest in this our <i>Awesome product</i>.<br><br>Please carefully read through the <a href=\"pega.com\">user manual</a> carefully before operating this product.<br>For any queries you can always reach out to us through any of the contact details mentioned on <a href=\"https://www.pega.com/contact-us\">our website</a>.<br><br>  Regards,<br>Customer Support<br><span style=\"font-weight:bold\">Awesome Product</span>'\n};\n\nComposer.argTypes = {\n  enableResponseTypeToggle: {\n    control: 'boolean'\n  },\n  enableSaveAsDraft: {\n    control: { type: 'boolean' }\n  },\n  bodyContentToReplace: {\n    control: { type: 'text' }\n  }\n};\n\ninterface OutboundEmailProps {\n  enableResponseTypeToggle?: boolean;\n  enableSaveAsDraft?: boolean;\n  onSave?: EmailComposerProps['onSave'];\n  onCancel?: EmailComposerProps['onCancel'];\n  onSend?: EmailComposerProps['onSend'];\n  onChange?: EmailComposerProps['onChange'];\n  data?: EmailComposerProps['data'];\n}\n\nexport const OutboundEmail: StoryFn<OutboundEmailProps> = (args: OutboundEmailProps) => {\n  const enableResponseTypeToggle = args.enableResponseTypeToggle || true;\n  const enableSaveAsDraft = args.enableSaveAsDraft || true;\n  const [composerProgress, setComposerProgress] = useState<EmailComposerProps['progress']>(false);\n  const composerHandle = useRef<EmailComposerHandleValue>(null);\n  const [emailParticipants, setEmailParticipants] =\n    useState<EmailComposerProps['participants']>(participants);\n  const [userEmailAccounts, setUserEmailAccounts] =\n    useState<EmailComposerProps['participants']>(emailAccounts);\n\n  const [data, setData] = useState<\n    EmailComposerProps['data'] & { bodyContentCurrentValue: string }\n  >({\n    to: { value: [] },\n    cc: { value: [] },\n    bcc: { value: [] },\n    subject: { value: '' },\n    selectedTemplateId: '',\n    bodyContent: {\n      defaultValue: bodyData\n    },\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 (['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  const handleFilterChange: EmailComposerProps['onFilterChange'] = (field, filterValue) => {\n    if (['to', 'cc', 'bcc', 'emailAccount'].includes(field)) {\n      if (filterValue === '') {\n        if (field === 'emailAccount') {\n          setUserEmailAccounts(emailAccounts);\n        } else setEmailParticipants(participants);\n      } else {\n        const filterRegex = createStringMatcher(filterValue, 'contains');\n        const items = field === 'emailAccount' ? emailAccounts : participants;\n        const filteredItems = items.filter(({ emailAddress, fullName, shortName }) => {\n          return (\n            filterRegex.test(emailAddress) ||\n            filterRegex.test(fullName) ||\n            filterRegex.test(shortName)\n          );\n        });\n        if (field === 'emailAccount') setUserEmailAccounts(filteredItems);\n        else setEmailParticipants(filteredItems);\n      }\n    }\n  };\n\n  const onTemplateChange = (templateId: EmailTemplate['id']) => {\n    const selectedTemplate = getTemplate(templateId);\n    // Simulating api call\n    setComposerProgress({ message: 'Loading template...' });\n    setTimeout(() => {\n      setComposerProgress(false);\n      composerHandle.current?.replaceBodyContent(selectedTemplate?.content || '');\n      // Brings the cursor to the beginning of the body.\n      composerHandle.current?.setCursorLocationToStart?.();\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        emailAccount: {\n          value: prev.emailAccount?.value || '',\n          error: data.emailAccount?.value ? undefined : emptyFieldErrorMessage\n        },\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, id) => {\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  const onEditorInit = () => {\n    action('onEditorInit')();\n  };\n\n  return (\n    <EmailComposer\n      handle={composerHandle}\n      progress={composerProgress}\n      onSave={args.onSave || (enableSaveAsDraft ? action('On save') : undefined)}\n      onSend={args.onSend || handleOnSend}\n      onCancel={args.onCancel || action('On cancel')}\n      externalValidator={handleExternalEntry}\n      participants={emailParticipants}\n      senderAccounts={userEmailAccounts}\n      onChange={args.onChange || handleOnChange}\n      onFilterChange={handleFilterChange}\n      data={\n        args.data || {\n          ...data,\n          responseType: enableResponseTypeToggle ? data.responseType : undefined\n        }\n      }\n      templates={templates}\n      onImageAdded={onImageAdded}\n      onEditorInit={onEditorInit}\n    />\n  );\n};\n\nOutboundEmail.args = {\n  enableResponseTypeToggle: false,\n  enableSaveAsDraft: false\n};\n\nOutboundEmail.argTypes = {\n  enableResponseTypeToggle: {\n    control: 'boolean'\n  },\n  enableSaveAsDraft: {\n    control: { type: 'boolean' }\n  }\n};\n\n//   ______   ______   .__   __. ____    ____  _______ .______          _______.     ___   .___________. __    ______   .__   __.\n//  /      | /  __  \\  |  \\ |  | \\   \\  /   / |   ____||   _  \\        /       |    /   \\  |           ||  |  /  __  \\  |  \\ |  |\n// |  ,----'|  |  |  | |   \\|  |  \\   \\/   /  |  |__   |  |_)  |      |   (----`   /  ^  \\ `---|  |----`|  | |  |  |  | |   \\|  |\n// |  |     |  |  |  | |  . `  |   \\      /   |   __|  |      /        \\   \\      /  /_\\  \\    |  |     |  | |  |  |  | |  . `  |\n// |  `----.|  `--'  | |  |\\   |    \\    /    |  |____ |  |\\  \\----.----)   |    /  _____  \\   |  |     |  | |  `--'  | |  |\\   |\n//  \\______| \\______/  |__| \\__|     \\__/     |_______|| _| `._____|_______/    /__/     \\__\\  |__|     |__|  \\______/  |__| \\__|\n\nexport const Conversation: StoryFn<EmailConversationProps> = (args: EmailConversationProps) => {\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      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    }\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={\n        args.unReadEmailCount !== undefined\n          ? args.unReadEmailCount\n          : emailArr.filter(item => item.unRead).length\n      }\n      emails={args.emails || emailArr}\n      isForwarded={args.isForwarded || false}\n      isCollapsed={args.isCollapsed || false}\n      undelivered={args.undelivered || false}\n      drafts={args.drafts || false}\n    />\n  );\n};\n\n//  _______ .___  ___.      ___       __   __              _______. __    __   _______  __       __\n// |   ____||   \\/   |     /   \\     |  | |  |            /       ||  |  |  | |   ____||  |     |  |\n// |  |__   |  \\  /  |    /  ^  \\    |  | |  |           |   (----`|  |__|  | |  |__   |  |     |  |\n// |   __|  |  |\\/|  |   /  /_\\  \\   |  | |  |            \\   \\    |   __   | |   __|  |  |     |  |\n// |  |____ |  |  |  |  /  _____  \\  |  | |  `----.   .----)   |   |  |  |  | |  |____ |  `----.|  `----.\n// |_______||__|  |__| /__/     \\__\\ |__| |_______|   |_______/    |__|  |__| |_______||_______||_______|\n\ninterface EmailShellDemoProps extends EmailShellProps {\n  autoCollapse?: boolean;\n  hideSuggestions?: boolean;\n  singleConversation?: boolean;\n  showHeader?: boolean;\n}\n\nexport const EmailShellDemo: StoryFn<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 handleTemplateChange = (uid: string, templateId: EmailTemplate['id']) => {\n    const selectedTemplate = getTemplate(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' && typeof value === 'string') {\n        return {\n          ...prevData,\n          [uid]: {\n            ...prevData[uid],\n            bodyContentCurrentValue: value\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' && typeof value === 'string') {\n      handleResponseTypeChange(uid, value);\n    } else if (field === 'selectedTemplateId' && typeof value === 'string') {\n      handleTemplateChange(uid, value);\n    }\n  };\n\n  const handleFilterChange = (\n    uid: string,\n    field: Extract<EmailComposerFieldType, 'to' | 'cc' | 'bcc' | 'emailAccount'>,\n    filterValue: string\n  ) => {\n    if (['to', 'cc', 'bcc'].includes(field)) {\n      let filteredItems: EmailComposerProps['participants'];\n      if (!filterValue) {\n        filteredItems = participants;\n      } else {\n        const filterRegex = createStringMatcher(filterValue, 'contains');\n        filteredItems = participants.filter(({ emailAddress, fullName, shortName }) => {\n          return (\n            filterRegex.test(emailAddress) ||\n            filterRegex.test(fullName) ||\n            filterRegex.test(shortName)\n          );\n        });\n      }\n\n      setComposersData(prevData => {\n        return {\n          ...prevData,\n          [uid]: {\n            ...prevData[uid],\n            participants: filteredItems\n          }\n        };\n      });\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            <Button onClick={dismiss}>Go back</Button>\n            <div>\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 & close\n              </Button>\n              <Button\n                variant='primary'\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            </div>\n          </>\n        }\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            onFilterChange: (\n              field: Extract<EmailComposerFieldType, 'to' | 'cc' | 'bcc' | 'emailAccount'>,\n              filterValue: string\n            ) => handleFilterChange(uid, field, filterValue),\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        };\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          participants,\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          participants,\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          participants,\n          data: {\n            ...baseComposerProps.data,\n            responseType: 'reply',\n            subject: { value: suggestion?.title || '' },\n            bodyContent: { defaultValue: suggestion ? suggestion.content : '' },\n            selectedTemplateId: suggestionId\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 DeleteDraft: FunctionComponent<{ currentID: string }> = ({ currentID }) => {\n    const { dismiss } = useModalContext();\n\n    return (\n      <Modal\n        heading='Delete draft?'\n        actions={\n          <>\n            <Button onClick={dismiss}>Go back</Button>\n\n            <Button\n              variant='primary'\n              onClick={() => {\n                dismiss();\n                setConversationEmails(prev => {\n                  const newEmailConversation: EmailProps[][] = [];\n\n                  prev.forEach(arr => {\n                    const newArr = arr.filter(index => index.id !== currentID);\n                    if (newArr.length !== 0) newEmailConversation.push(newArr);\n                  });\n                  return newEmailConversation;\n                });\n              }}\n            >\n              Delete\n            </Button>\n          </>\n        }\n      >\n        <Text>Are you sure that you want to permanently delete the selected message?</Text>\n      </Modal>\n    );\n  };\n\n  const deleteEmail = (id: EmailProps['id']) => {\n    create(DeleteDraft, { currentID: id }, { alert: true });\n  };\n\n  useEffect(() => {\n    setConversationEmails([\n      [\n        {\n          ...emailsData[1],\n          id: 'item0',\n          from: mailDeliverySystemEmail,\n          to: [supportTeamEmail],\n          body: '<div>Hi, <br /> <br /><div>Your address change request is approved.</div> <br /> <br />Regards, <br />Support team </div>',\n          banner: {\n            messages: [\n              {\n                label: 'Address not found.',\n                description:\n                  '550 5.1.1 The email account that you tried to reach does not exist. Please try double-checking the recipients email address for typos or unnecessary spaces. Learn more at https://support.google.com/mail/?p=NoSuchUser k24-20020aa790d8000000b0050dd7e3b84csor451330pfk.28'\n              }\n            ]\n          },\n          onReply: undefined,\n          onForward: undefined\n        },\n        { ...emailsData[1], unRead: false }\n      ],\n      [\n        {\n          ...emailsData[0],\n          id: 'item2',\n          status: 'draft',\n          onEditDraft: (id: EmailProps['id']) =>\n            createOrActivateComposer(id, LaunchAction.REPLY, {\n              ...baseComposerProps,\n              data: {\n                ...baseComposerProps.data,\n                responseType: 'reply',\n                subject: { value: `Re-${emailsData[0].subject}` || '' },\n                bodyContent: { defaultValue: emailsData[0].body || '' }\n              }\n            }),\n          onDeleteDraft: (id: EmailProps['id']) => deleteEmail(id),\n          onReply: undefined,\n          onForward: undefined,\n          suggestions: undefined,\n          unRead: false,\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          onEditDraft: (id: EmailProps['id']) =>\n            createOrActivateComposer(id, LaunchAction.REPLY, {\n              ...baseComposerProps,\n              data: {\n                ...baseComposerProps.data,\n                responseType: 'reply',\n                subject: { value: `Re-${emailsData[0].subject}` || '' },\n                bodyContent: { defaultValue: emailsData[0].body || '' }\n              }\n            }),\n          onDeleteDraft: (id: EmailProps['id']) => deleteEmail(id),\n          onReply: undefined,\n          onForward: undefined,\n          suggestions: undefined,\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: i === 0 ? emails[1].from : generateEmailConversationParticipants(emails, ['from'])[0],\n        to: i === 0 ? emails[1].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: 1,\n      emails: [\n        {\n          ...emailsData[1],\n          id: 'item0',\n          from: mailDeliverySystemEmail,\n          to: [supportTeamEmail],\n          body: '<div>Hi, <br /> <br /><div>Your address change request is approved.</div> <br /> <br />Regards, <br />Support team </div>',\n          banner: {\n            messages: [\n              {\n                label: 'Address not found.',\n                description:\n                  '550 5.1.1 The email account that you tried to reach does not exist. Please try double-checking the recipients email address for typos or unnecessary spaces. Learn more at https://support.google.com/mail/?p=NoSuchUser k24-20020aa790d8000000b0050dd7e3b84csor451330pfk.28'\n              }\n            ]\n          },\n          onReply: undefined,\n          onForward: undefined\n        },\n        { ...emailsData[1], unRead: false }\n      ]\n    }\n  ];\n\n  return (\n    <>\n      <EmailShell\n        headerProps={\n          args.headerProps ||\n          (args.showHeader\n            ? {\n                actions: (\n                  <Flex\n                    container={{\n                      alignItems: 'center',\n                      gap: 0\n                    }}\n                  >\n                    <Button variant='simple' icon label='Filter conversations'>\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            : undefined)\n        }\n        autoCollapse={args.autoCollapse}\n        conversations={\n          args.conversations ||\n          (args.singleConversation ? singleEmailConversation : emailConversations)\n        }\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: false,\n  showHeader: true\n};\n\nEmailShellDemo.argTypes = {\n  autoCollapse: { control: { type: 'boolean' } },\n  hideSuggestions: { control: { type: 'boolean' } },\n  singleConversation: { control: { type: 'boolean' } },\n  showHeader: { control: { type: 'boolean' } }\n};\n\n//  _______ .__   __. .___________. __  .___________.____    ____     __       __       _______.___________.\n// |   ____||  \\ |  | |           ||  | |           |\\   \\  /   /    |  |     |  |     /       |           |\n// |  |__   |   \\|  | `---|  |----`|  | `---|  |----` \\   \\/   /     |  |     |  |    |   (----`---|  |----`\n// |   __|  |  . `  |     |  |     |  |     |  |       \\_    _/      |  |     |  |     \\   \\       |  |\n// |  |____ |  |\\   |     |  |     |  |     |  |         |  |        |  `----.|  | .----)   |      |  |\n// |_______||__| \\__|     |__|     |__|     |__|         |__|        |_______||__| |_______/       |__|\n\ninterface EntityListDemoProps {\n  enableContextMenu?: boolean;\n  onContextMenu?: (e: MouseEvent) => void;\n  content?: EntityListProps['content'];\n}\n\nexport const EntityListDemo: StoryFn<EntityListDemoProps> = (args: EntityListDemoProps) => {\n  const itemCounter = useRef(3);\n  const timeout = useRef<number | null>(null);\n  const contextMenuHandle: ContextMenuProps['handle'] = useRef(null);\n  const headerProps: EntityListProps['header'] = {\n    icon: 'list-number',\n    text: 'Entities'\n  };\n\n  const handleRightClick = (e: MouseEvent) => {\n    action('onContextMenu')(e);\n    if (contextMenuHandle.current && args.enableContextMenu) {\n      itemCounter.current += 1;\n      const { setItems, setOpen, setLoading } = contextMenuHandle.current;\n      // Deciding not to show browser context menu\n      // This should be synchronus\n      e.preventDefault();\n\n      // Now open the custom context menu using the handle and show loader\n      setLoading(true);\n      setItems([]);\n      setOpen(true);\n      if (timeout.current) {\n        window.clearTimeout(timeout.current);\n      }\n      timeout.current = window.setTimeout(() => {\n        setItems(contextMenuItemsMock);\n        // Hide the loader\n        setLoading(false);\n      }, 1000);\n    }\n  };\n\n  useEffect(() => {\n    return () => {\n      if (timeout.current) {\n        window.clearTimeout(timeout.current);\n      }\n    };\n  }, []);\n\n  return (\n    <EntityList\n      header={headerProps}\n      content={args.content || EntityListMockData}\n      contextMenu={{\n        onItemClick: action('onItemClick'),\n        onContextMenu: args.onContextMenu || handleRightClick,\n        handle: contextMenuHandle\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: StoryFn<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  currentItemId?: EmailSummaryListProps['currentItemId'];\n  searchQuery?: EmailSummaryListProps['searchQuery'];\n  count?: EmailSummaryListProps['count'];\n}\n\nexport const EmailSummaryListDemo: StoryFn<EmailSummaryListStoryProps> = (\n  args: EmailSummaryListStoryProps\n) => {\n  const INITIAL_CHUNK_SIZE = 9;\n  const APPEND_CHUNK_SIZE = 1;\n\n  const [allEmailItems, setAllEmailItems] = useState(\n    args.items || emailSummaryItems.slice(0, INITIAL_CHUNK_SIZE)\n  );\n\n  useEffect(() => {\n    if (args.items) setAllEmailItems(args.items);\n  }, [args.items]);\n\n  const [categories, setCategories] = useState<MenuProps['items']>(emailWorklistItemsMock);\n  const [currentItemId, setCurrentItemId] = useState<string>(emailSummaryItems[0].id);\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    setCurrentItemId(id);\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      count={\n        args.count\n          ? args.count\n          : {\n              total: emailSummaryItems.length,\n              unread: allEmailItems.reduce(\n                (result, email) =>\n                  email.unreadEmailCount ? result + email.unreadEmailCount : result,\n                0\n              )\n            }\n      }\n      categories={categories}\n      searchQuery={args.searchQuery}\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      currentItemId={args.currentItemId || currentItemId}\n    />\n  );\n};\n\nEmailSummaryListDemo.args = {\n  searchQuery: ''\n};\n\nEmailSummaryListDemo.argTypes = {\n  searchQuery: { control: { type: 'text' } }\n};\n// Email case view\n\ninterface EmailCaseViewStoryProps extends EmailCaseViewProps {\n  showBanners?: boolean;\n  noUtilityView?: boolean;\n  showHeader?: boolean;\n}\n\nexport const EmailCaseViewDemo: StoryFn<EmailCaseViewStoryProps> = (\n  args: EmailCaseViewStoryProps\n) => {\n  const content = <EmailShellDemo />;\n\n  const utilities = (\n    // View analysis utility\n    <Grid container={{ rowGap: 2 }}>\n      <EntityListDemo />\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        <EmailCaseView\n          header={\n            args.showHeader\n              ? {\n                  icon: 'mail',\n                  title: 'ET-5432'\n                }\n              : undefined\n          }\n          banners={\n            args.showBanners && (\n              <Banner\n                variant='urgent'\n                messages={['Your email could not be delivered due to poor network connection.']}\n              />\n            )\n          }\n          content={content}\n          utilities={!args.noUtilityView && utilities}\n          utilitiesSummaryItems={\n            !args.noUtilityView\n              ? [\n                  { id: '1', iconName: 'list-number', count: 7, name: 'Entities' },\n                  { id: '2', iconName: 'document-doc', count: 1, name: 'Email header' },\n                  { id: '3', iconName: 'headline', count: 4, name: 'Topics' }\n                ]\n              : undefined\n          }\n          defaultUtilitiesExpanded\n        />\n      }\n    />\n  );\n};\n\nEmailCaseViewDemo.args = {\n  showBanners: false,\n  noUtilityView: false,\n  showHeader: true\n};\n\nEmailCaseViewDemo.argTypes = {\n  showBanners: { control: { type: 'boolean' } },\n  noUtilityView: { control: { type: 'boolean' } },\n  showHeader: { control: { type: 'boolean' } }\n};\n\nEmailCaseViewDemo.parameters = {\n  layout: 'fullscreen'\n};\n\n//  _______ .___  ___.      ___       __   __         .___  ___.      ___      .__   __.      ___       _______  _______ .______\n// |   ____||   \\/   |     /   \\     |  | |  |        |   \\/   |     /   \\     |  \\ |  |     /   \\     /  _____||   ____||   _  \\\n// |  |__   |  \\  /  |    /  ^  \\    |  | |  |        |  \\  /  |    /  ^  \\    |   \\|  |    /  ^  \\   |  |  __  |  |__   |  |_)  |\n// |   __|  |  |\\/|  |   /  /_\\  \\   |  | |  |        |  |\\/|  |   /  /_\\  \\   |  . `  |   /  /_\\  \\  |  | |_ | |   __|  |      /\n// |  |____ |  |  |  |  /  _____  \\  |  | |  `----.   |  |  |  |  /  _____  \\  |  |\\   |  /  _____  \\ |  |__| | |  |____ |  |\\  \\----.\n// |_______||__|  |__| /__/     \\__\\ |__| |_______|   |__|  |__| /__/     \\__\\ |__| \\__| /__/     \\__\\ \\______| |_______|| _| `._____|\n\nexport interface EmailManagerAppShellProps {\n  enableContextMenu?: boolean;\n  onContextMenu?: (e: MouseEvent) => void;\n  showEmptyView?: boolean;\n  showHeader?: boolean;\n  showCaseViewBanners?: boolean;\n  noItemViewInEmailCaseView?: boolean;\n  showUtilities: boolean;\n  searchQuery?: string;\n  showAppshellBanner?: boolean;\n  showGetNextEmail?: boolean;\n}\n\nexport const EmailManagerAppShell: StoryFn<EmailManagerAppShellProps> = (\n  args: EmailManagerAppShellProps\n) => {\n  const INITIAL_CHUNK_SIZE = 9;\n  const APPEND_CHUNK_SIZE = 1;\n  const NEXT_EMAIL_ID = 'item_11';\n\n  const [emailList, setEmailList] = useState(emailSummaryItems.slice(0, INITIAL_CHUNK_SIZE));\n  const [loading, setLoading] = useState(false);\n  const [hasMore, setHasMore] = useState(true);\n  const [currentItemId, setCurrentItemId] = useState<string>(emailSummaryItems[0].id);\n  const [hasBanner, setHasBanner] = useState(false);\n  const [appshellProgress, setAppshellProgress] = useState(false);\n  const getNextEmailClicked = useRef(false);\n\n  useEffect(() => {\n    setHasBanner(args.showAppshellBanner || false);\n  }, [args.showAppshellBanner]);\n\n  const handleEmailItemClick = (id: EmailSummaryItemProps['id']) => {\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    setCurrentItemId(id);\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 utilities = (\n    // View analysis utility\n    <Grid container={{ rowGap: 2 }}>\n      <EntityListDemo />\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  const content = <EmailShellDemo showHeader={false} />;\n\n  const handleGetNextEmailClick = () => {\n    getNextEmailClicked.current = true;\n    setCurrentItemId('');\n    setAppshellProgress(true);\n    setTimeout(() => {\n      const nextEmailIndex = emailSummaryItems.findIndex(item => item.id === NEXT_EMAIL_ID);\n      setEmailList(\n        emailSummaryItems.slice(\n          0,\n          INITIAL_CHUNK_SIZE > nextEmailIndex ? INITIAL_CHUNK_SIZE : nextEmailIndex + 1\n        )\n      );\n      setAppshellProgress(false);\n    }, 1500);\n  };\n\n  useEffect(() => {\n    if (getNextEmailClicked.current) {\n      setCurrentItemId(NEXT_EMAIL_ID);\n      handleEmailItemClick(NEXT_EMAIL_ID);\n      getNextEmailClicked.current = false;\n    }\n  }, [emailList]);\n\n  return (\n    <AppShellDemo\n      appHeader\n      main={\n        <EmailManager\n          header={\n            args.showHeader\n              ? {\n                  icon: 'mail',\n                  title: 'Inbox',\n                  getNextEmail: args.showGetNextEmail ? handleGetNextEmailClick : undefined\n                }\n              : undefined\n          }\n          list={\n            <EmailSummaryListDemo\n              onItemClick={handleEmailItemClick}\n              items={emailList}\n              onLoadMore={hasMore ? onLoadMore : undefined}\n              loading={loading}\n              currentItemId={currentItemId}\n              searchQuery={args.searchQuery}\n            />\n          }\n          emailCaseDetails={\n            !args.showEmptyView && (\n              <EmailCaseView\n                banners={\n                  args.showCaseViewBanners && (\n                    <Banner\n                      variant='urgent'\n                      messages={[\n                        'Your email could not be delivered due to poor network connection.'\n                      ]}\n                    />\n                  )\n                }\n                content={content}\n                utilities={args.showUtilities && utilities}\n                utilitiesSummaryItems={\n                  args.showUtilities\n                    ? [\n                        { id: '1', iconName: 'list-number', count: 7, name: 'Entities' },\n                        { id: '2', iconName: 'document-doc', count: 1, name: 'Email header' },\n                        { id: '3', iconName: 'headline', count: 4, name: 'Topics' }\n                      ]\n                    : undefined\n                }\n                defaultUtilitiesExpanded={false}\n              />\n            )\n          }\n        />\n      }\n      banners={\n        hasBanner && (\n          <Banner\n            onDismiss={() => setHasBanner(false)}\n            variant='urgent'\n            messages={['Your email could not be fetched due to poor network connection']}\n          />\n        )\n      }\n      progress={appshellProgress}\n    />\n  );\n};\n\nEmailManagerAppShell.args = {\n  showEmptyView: false,\n  showHeader: true,\n  showCaseViewBanners: false,\n  showUtilities: true,\n  showAppshellBanner: false,\n  showGetNextEmail: false,\n  searchQuery: ''\n};\n\nEmailManagerAppShell.argTypes = {\n  showEmptyView: { control: { type: 'boolean' } },\n  showHeader: { control: { type: 'boolean' } },\n  showCaseViewBanners: { control: { type: 'boolean' } },\n  showUtilities: { control: { type: 'boolean' } },\n  showAppshellBanner: { control: { type: 'boolean' } },\n  showGetNextEmail: { control: { type: 'boolean' } },\n  searchQuery: { control: { type: 'text' } }\n};\n\nEmailManagerAppShell.parameters = {\n  layout: 'fullscreen'\n};\n"]}