@pega/cosmos-react-demos 4.0.0-dev.12.0 → 4.0.0-dev.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/jsx/build/AppShell/AppShell.mocks.d.ts +10 -0
  2. package/jsx/build/AppShell/AppShell.mocks.d.ts.map +1 -1
  3. package/jsx/build/AppShell/AppShell.mocks.jsx +11 -0
  4. package/jsx/build/AppShell/AppShell.mocks.jsx.map +1 -1
  5. package/jsx/build/AppShell/AppShell.stories.d.ts.map +1 -1
  6. package/jsx/build/AppShell/AppShell.stories.jsx +2 -2
  7. package/jsx/build/AppShell/AppShell.stories.jsx.map +1 -1
  8. package/jsx/core/Checkbox/Checkbox.stories.d.ts.map +1 -1
  9. package/jsx/core/Checkbox/Checkbox.stories.jsx +3 -1
  10. package/jsx/core/Checkbox/Checkbox.stories.jsx.map +1 -1
  11. package/jsx/core/CheckboxGroup/CheckboxGroup.stories.d.ts.map +1 -1
  12. package/jsx/core/CheckboxGroup/CheckboxGroup.stories.jsx +7 -4
  13. package/jsx/core/CheckboxGroup/CheckboxGroup.stories.jsx.map +1 -1
  14. package/jsx/core/DateTime/DateTime.stories.d.ts.map +1 -1
  15. package/jsx/core/DateTime/DateTime.stories.jsx +5 -3
  16. package/jsx/core/DateTime/DateTime.stories.jsx.map +1 -1
  17. package/jsx/core/MultiStepForm/MultiStepForm.stories.d.ts +1 -0
  18. package/jsx/core/MultiStepForm/MultiStepForm.stories.d.ts.map +1 -1
  19. package/jsx/core/MultiStepForm/MultiStepForm.stories.jsx +3 -1
  20. package/jsx/core/MultiStepForm/MultiStepForm.stories.jsx.map +1 -1
  21. package/jsx/core/RadioButton/RadioButton.stories.d.ts.map +1 -1
  22. package/jsx/core/RadioButton/RadioButton.stories.jsx +3 -1
  23. package/jsx/core/RadioButton/RadioButton.stories.jsx.map +1 -1
  24. package/jsx/core/RadioButtonGroup/RadioButtonGroup.stories.d.ts.map +1 -1
  25. package/jsx/core/RadioButtonGroup/RadioButtonGroup.stories.jsx +8 -4
  26. package/jsx/core/RadioButtonGroup/RadioButtonGroup.stories.jsx.map +1 -1
  27. package/jsx/core/SummaryList/SummaryList.mocks.d.ts.map +1 -1
  28. package/jsx/core/SummaryList/SummaryList.mocks.jsx +7 -1
  29. package/jsx/core/SummaryList/SummaryList.mocks.jsx.map +1 -1
  30. package/jsx/cs/CSAppShell/CSAppShell.stories.d.ts.map +1 -1
  31. package/jsx/cs/CSAppShell/CSAppShell.stories.jsx +5 -3
  32. package/jsx/cs/CSAppShell/CSAppShell.stories.jsx.map +1 -1
  33. package/jsx/cs/InteractionTimer/InteractionTimer.stories.d.ts +1 -0
  34. package/jsx/cs/InteractionTimer/InteractionTimer.stories.d.ts.map +1 -1
  35. package/jsx/cs/InteractionTimer/InteractionTimer.stories.jsx +12 -5
  36. package/jsx/cs/InteractionTimer/InteractionTimer.stories.jsx.map +1 -1
  37. package/jsx/social/Chat/Chat.mocks.d.ts +10 -3
  38. package/jsx/social/Chat/Chat.mocks.d.ts.map +1 -1
  39. package/jsx/social/Chat/Chat.mocks.js +12 -4
  40. package/jsx/social/Chat/Chat.mocks.js.map +1 -1
  41. package/jsx/social/Chat/Chat.stories.d.ts +1 -0
  42. package/jsx/social/Chat/Chat.stories.d.ts.map +1 -1
  43. package/jsx/social/Chat/Chat.stories.jsx +18 -21
  44. package/jsx/social/Chat/Chat.stories.jsx.map +1 -1
  45. package/jsx/work/CaseView/Attachments.mocks.d.ts.map +1 -1
  46. package/jsx/work/CaseView/Attachments.mocks.jsx +11 -4
  47. package/jsx/work/CaseView/Attachments.mocks.jsx.map +1 -1
  48. package/jsx/work/CaseView/CaseView.mocks.d.ts +38 -8
  49. package/jsx/work/CaseView/CaseView.mocks.d.ts.map +1 -1
  50. package/jsx/work/CaseView/CaseView.mocks.jsx +77 -35
  51. package/jsx/work/CaseView/CaseView.mocks.jsx.map +1 -1
  52. package/jsx/work/CaseView/CaseView.stories.d.ts +2 -7
  53. package/jsx/work/CaseView/CaseView.stories.d.ts.map +1 -1
  54. package/jsx/work/CaseView/CaseView.stories.jsx +35 -10
  55. package/jsx/work/CaseView/CaseView.stories.jsx.map +1 -1
  56. package/jsx/work/Details/Details.stories.d.ts.map +1 -1
  57. package/jsx/work/Details/Details.stories.jsx +3 -5
  58. package/jsx/work/Details/Details.stories.jsx.map +1 -1
  59. package/jsx/work/IntelligentGuidance/IntelligentGuidance.stories.d.ts.map +1 -1
  60. package/jsx/work/IntelligentGuidance/IntelligentGuidance.stories.jsx +5 -4
  61. package/jsx/work/IntelligentGuidance/IntelligentGuidance.stories.jsx.map +1 -1
  62. package/jsx/work/Tags/Tags.stories.d.ts.map +1 -1
  63. package/jsx/work/Tags/Tags.stories.jsx +6 -1
  64. package/jsx/work/Tags/Tags.stories.jsx.map +1 -1
  65. package/jsx/work/Tasks/Tasks.stories.d.ts.map +1 -1
  66. package/jsx/work/Tasks/Tasks.stories.jsx +29 -21
  67. package/jsx/work/Tasks/Tasks.stories.jsx.map +1 -1
  68. package/jsx/wss/CaseView/CaseView.stories.d.ts.map +1 -1
  69. package/jsx/wss/CaseView/CaseView.stories.jsx +8 -2
  70. package/jsx/wss/CaseView/CaseView.stories.jsx.map +1 -1
  71. package/lib/build/AppShell/AppShell.mocks.d.ts +10 -0
  72. package/lib/build/AppShell/AppShell.mocks.d.ts.map +1 -1
  73. package/lib/build/AppShell/AppShell.mocks.js +11 -0
  74. package/lib/build/AppShell/AppShell.mocks.js.map +1 -1
  75. package/lib/build/AppShell/AppShell.stories.d.ts.map +1 -1
  76. package/lib/build/AppShell/AppShell.stories.js +2 -2
  77. package/lib/build/AppShell/AppShell.stories.js.map +1 -1
  78. package/lib/core/Checkbox/Checkbox.stories.d.ts.map +1 -1
  79. package/lib/core/Checkbox/Checkbox.stories.js +3 -1
  80. package/lib/core/Checkbox/Checkbox.stories.js.map +1 -1
  81. package/lib/core/CheckboxGroup/CheckboxGroup.stories.d.ts.map +1 -1
  82. package/lib/core/CheckboxGroup/CheckboxGroup.stories.js +7 -4
  83. package/lib/core/CheckboxGroup/CheckboxGroup.stories.js.map +1 -1
  84. package/lib/core/DateTime/DateTime.stories.d.ts.map +1 -1
  85. package/lib/core/DateTime/DateTime.stories.js +5 -3
  86. package/lib/core/DateTime/DateTime.stories.js.map +1 -1
  87. package/lib/core/MultiStepForm/MultiStepForm.stories.d.ts +1 -0
  88. package/lib/core/MultiStepForm/MultiStepForm.stories.d.ts.map +1 -1
  89. package/lib/core/MultiStepForm/MultiStepForm.stories.js +3 -1
  90. package/lib/core/MultiStepForm/MultiStepForm.stories.js.map +1 -1
  91. package/lib/core/RadioButton/RadioButton.stories.d.ts.map +1 -1
  92. package/lib/core/RadioButton/RadioButton.stories.js +3 -1
  93. package/lib/core/RadioButton/RadioButton.stories.js.map +1 -1
  94. package/lib/core/RadioButtonGroup/RadioButtonGroup.stories.d.ts.map +1 -1
  95. package/lib/core/RadioButtonGroup/RadioButtonGroup.stories.js +8 -4
  96. package/lib/core/RadioButtonGroup/RadioButtonGroup.stories.js.map +1 -1
  97. package/lib/core/SummaryList/SummaryList.mocks.d.ts.map +1 -1
  98. package/lib/core/SummaryList/SummaryList.mocks.js +8 -1
  99. package/lib/core/SummaryList/SummaryList.mocks.js.map +1 -1
  100. package/lib/cs/CSAppShell/CSAppShell.stories.d.ts.map +1 -1
  101. package/lib/cs/CSAppShell/CSAppShell.stories.js +5 -3
  102. package/lib/cs/CSAppShell/CSAppShell.stories.js.map +1 -1
  103. package/lib/cs/InteractionTimer/InteractionTimer.stories.d.ts +1 -0
  104. package/lib/cs/InteractionTimer/InteractionTimer.stories.d.ts.map +1 -1
  105. package/lib/cs/InteractionTimer/InteractionTimer.stories.js +12 -5
  106. package/lib/cs/InteractionTimer/InteractionTimer.stories.js.map +1 -1
  107. package/lib/social/Chat/Chat.mocks.d.ts +10 -3
  108. package/lib/social/Chat/Chat.mocks.d.ts.map +1 -1
  109. package/lib/social/Chat/Chat.mocks.js +12 -4
  110. package/lib/social/Chat/Chat.mocks.js.map +1 -1
  111. package/lib/social/Chat/Chat.stories.d.ts +1 -0
  112. package/lib/social/Chat/Chat.stories.d.ts.map +1 -1
  113. package/lib/social/Chat/Chat.stories.js +18 -21
  114. package/lib/social/Chat/Chat.stories.js.map +1 -1
  115. package/lib/work/CaseView/Attachments.mocks.d.ts.map +1 -1
  116. package/lib/work/CaseView/Attachments.mocks.js +12 -4
  117. package/lib/work/CaseView/Attachments.mocks.js.map +1 -1
  118. package/lib/work/CaseView/CaseView.mocks.d.ts +38 -8
  119. package/lib/work/CaseView/CaseView.mocks.d.ts.map +1 -1
  120. package/lib/work/CaseView/CaseView.mocks.js +73 -31
  121. package/lib/work/CaseView/CaseView.mocks.js.map +1 -1
  122. package/lib/work/CaseView/CaseView.stories.d.ts +2 -7
  123. package/lib/work/CaseView/CaseView.stories.d.ts.map +1 -1
  124. package/lib/work/CaseView/CaseView.stories.js +35 -10
  125. package/lib/work/CaseView/CaseView.stories.js.map +1 -1
  126. package/lib/work/Details/Details.stories.d.ts.map +1 -1
  127. package/lib/work/Details/Details.stories.js +1 -1
  128. package/lib/work/Details/Details.stories.js.map +1 -1
  129. package/lib/work/IntelligentGuidance/IntelligentGuidance.stories.d.ts.map +1 -1
  130. package/lib/work/IntelligentGuidance/IntelligentGuidance.stories.js +5 -4
  131. package/lib/work/IntelligentGuidance/IntelligentGuidance.stories.js.map +1 -1
  132. package/lib/work/Tags/Tags.stories.d.ts.map +1 -1
  133. package/lib/work/Tags/Tags.stories.js +7 -1
  134. package/lib/work/Tags/Tags.stories.js.map +1 -1
  135. package/lib/work/Tasks/Tasks.stories.d.ts.map +1 -1
  136. package/lib/work/Tasks/Tasks.stories.js +28 -19
  137. package/lib/work/Tasks/Tasks.stories.js.map +1 -1
  138. package/lib/wss/CaseView/CaseView.stories.d.ts.map +1 -1
  139. package/lib/wss/CaseView/CaseView.stories.js +5 -3
  140. package/lib/wss/CaseView/CaseView.stories.js.map +1 -1
  141. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"Attachments.mocks.js","sourceRoot":"","sources":["../../../src/work/CaseView/Attachments.mocks.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n useState,\n useCallback,\n useContext,\n useEffect,\n FormEvent,\n useRef,\n Ref,\n useMemo,\n ChangeEvent,\n forwardRef,\n FC,\n PropsWithoutRef\n} from 'react';\n\nimport {\n Button,\n FileInput,\n FileVisual,\n Progress,\n Modal,\n Text,\n SummaryList,\n ViewAll,\n getKindFromMimeType,\n getMimeTypeFromFile,\n Action,\n Popover,\n Flex,\n Input,\n ComboBox,\n createUID,\n PopoverProps,\n useModalManager,\n useModalContext,\n useOuterEvent,\n useToaster,\n DateTimeDisplay,\n SummaryListItem,\n MetaList\n} from '@pega/cosmos-react-core';\n\nimport {\n FileServiceContext,\n FileServiceContextValue,\n mockAttachmentListRequest,\n mockCategories,\n MockFileAttachmentResource,\n MockFileUploadItem\n} from './FileService.mock';\n\n// ---------------------------------------------------------------------------------------------------------------------\n// getSummaryListItemProps\n// ---------------------------------------------------------------------------------------------------------------------\nconst getSummaryListItemProps = ({\n ref,\n file,\n editFile,\n cancelFile,\n deleteFile\n}: {\n ref: Ref<HTMLLIElement>;\n file: MockFileAttachmentResource | MockFileUploadItem;\n editFile?: (file: MockFileAttachmentResource) => void;\n cancelFile: FileServiceContextValue['cancelFile'];\n deleteFile: FileServiceContextValue['deleteFile'];\n}): SummaryListItem => {\n let actions: Action[];\n let visual: JSX.Element;\n\n if ('progress' in file && typeof file.progress === 'number' && file.progress < 100) {\n visual = <Progress value={file.progress} placement='inline' variant='ring' />;\n actions = [\n {\n id: 'Cancel',\n text: 'Cancel',\n icon: 'times',\n onClick: () => {\n cancelFile(file.id);\n }\n }\n ];\n } else {\n visual = (\n <FileVisual\n type={getKindFromMimeType(getMimeTypeFromFile(file.name) ?? '')}\n thumbnail={(file as MockFileAttachmentResource).thumbnail}\n />\n );\n actions = [\n {\n id: 'Edit',\n text: 'Edit',\n icon: 'pencil',\n onClick: () => {\n editFile?.(file);\n }\n },\n {\n id: 'Download',\n text: 'Download',\n icon: 'download',\n onClick: () => {}\n },\n {\n id: 'Delete',\n text: 'Delete',\n icon: 'trash',\n onClick: () => {\n deleteFile(file.id);\n }\n }\n ];\n }\n\n return {\n ref,\n id: file.id,\n visual,\n primary: file.name,\n contextualLabel: file.name,\n secondary: (\n <Text variant='secondary'>\n {'progress' in file && typeof file.progress === 'number' && file.progress < 100 ? (\n `Uploading…${Math.floor(file.progress)}%`\n ) : (\n <MetaList\n items={[\n file.category,\n <>\n Uploaded{' '}\n <DateTimeDisplay\n variant='relative'\n value={(file as MockFileAttachmentResource).createDate}\n />\n </>\n ]}\n />\n )}\n </Text>\n ),\n actions\n };\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// Attachment edit Popover\n// ---------------------------------------------------------------------------------------------------------------------\ninterface EditPopoverProps {\n file: MockFileAttachmentResource;\n target: PopoverProps['target'];\n onSubmit: (fields: { name: string; category: string }) => void;\n onCancel: () => void;\n ref: Ref<HTMLDivElement>;\n}\n\nconst EditPopover: FC<EditPopoverProps> = forwardRef(\n (\n { file, target, onSubmit, onCancel }: PropsWithoutRef<EditPopoverProps>,\n ref: EditPopoverProps['ref']\n ) => {\n const [name, setName] = useState(file.name);\n const [error, setError] = useState('');\n\n const [categories, setCategories] = useState(() => {\n return [\n { id: createUID(), primary: 'No category', selected: false },\n ...mockCategories.map(category => {\n return {\n id: createUID(),\n primary: category,\n selected: file.category === category\n };\n })\n ];\n });\n\n const selectedCategory = useMemo(() => {\n const sc = categories.find(c => c.selected);\n return sc\n ? {\n items: {\n id: sc.id,\n text: sc.primary\n }\n }\n : undefined;\n }, [categories]);\n\n return (\n // Set an inline style ONLY until Popover width presets are available.\n <Popover ref={ref} target={target} style={{ width: '40ch' }} placement='bottom-start'>\n <Flex container={{ direction: 'column', gap: 2, pad: 2 }}>\n <Text variant='h3'>Details</Text>\n\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Input\n label='Name'\n placeholder='Enter name…'\n value={name}\n info={error}\n status={error ? 'error' : undefined}\n autoFocus\n required\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n setName(e.target.value);\n if (error && e.target.value) {\n setError('');\n }\n }}\n onBlur={() => {\n if (!name) {\n setError('Name is required.');\n }\n }}\n />\n <ComboBox\n label='Category'\n placeholder='Choose…'\n selected={selectedCategory}\n menu={{\n mode: 'single-select',\n items: categories,\n onItemClick: id => {\n setCategories(cur => {\n return cur.map(category => {\n return {\n ...category,\n selected: category.id === id\n };\n });\n });\n }\n }}\n />\n </Flex>\n\n <Flex container={{ justify: 'between' }}>\n <Button onClick={onCancel}>Cancel</Button>\n <Button\n variant='primary'\n onClick={() => {\n if (error) return;\n onSubmit({\n name,\n category:\n !selectedCategory || selectedCategory.items.text === 'No category'\n ? ''\n : selectedCategory.items.text\n });\n }}\n >\n Submit\n </Button>\n </Flex>\n </Flex>\n </Popover>\n );\n }\n);\n\n// ---------------------------------------------------------------------------------------------------------------------\n// AttachmentsModal\n// ---------------------------------------------------------------------------------------------------------------------\ninterface AttachmentsModalProps {\n defaultMode: 'viewAll' | 'addNew';\n}\n\nconst AttachmentsModal = ({ defaultMode }: AttachmentsModalProps) => {\n const [mode, setMode] = useState(defaultMode);\n\n const { push: pushToaster } = useToaster();\n const { dismiss } = useModalContext();\n const { files, setFiles, cancelFile, attachFile, deleteFile } = useContext(FileServiceContext);\n\n const [search, setSearch] = useState('');\n const [loading, setLoading] = useState(true);\n const [newFiles, setNewFiles] = useState<MockFileUploadItem[]>([]);\n\n const attachSelected = useCallback(() => {\n newFiles.forEach(attachFile);\n dismiss();\n }, [newFiles, attachFile]);\n\n const listItemEls = useRef<HTMLLIElement[]>([]);\n const [editFileIndex, setEditFileIndex] = useState<number>(-1);\n\n const editPopoverTargetLi = useMemo(() => {\n return editFileIndex !== undefined ? listItemEls.current[editFileIndex] : undefined;\n }, [editFileIndex, listItemEls]);\n\n const menuButton = useMemo(\n () =>\n editPopoverTargetLi\n ? editPopoverTargetLi.querySelector<HTMLButtonElement>('button[aria-haspopup=\"menu\"]')\n : null,\n [editPopoverTargetLi]\n );\n\n const handlePopoverClose = useCallback(() => {\n if (!editPopoverTargetLi) return;\n setEditFileIndex(-1);\n menuButton?.focus();\n }, [menuButton, editPopoverTargetLi]);\n\n const handleKeydown = useCallback((e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setEditFileIndex(-1);\n }\n }, []);\n\n const editPopoverRef = useRef<HTMLDivElement>(null);\n\n // Using mousedown instead of click since drag selecting an input's value within the popover, then releasing outside the popover triggers outer click.\n useOuterEvent('mousedown', [editPopoverRef], handlePopoverClose);\n\n useEffect(() => {\n if (mode === 'viewAll') {\n const timeout = setTimeout(() => {\n setLoading(false);\n }, 1000);\n\n return () => {\n clearTimeout(timeout);\n };\n }\n }, [mode]);\n\n useEffect(() => {\n if (!editPopoverTargetLi) return;\n document.addEventListener('keydown', handleKeydown);\n return () => {\n document.removeEventListener('keydown', handleKeydown);\n };\n }, [editPopoverTargetLi]);\n\n useEffect(() => {\n // Since the component is performing double duty we need to empty out ref elements from a prior render mode.\n listItemEls.current = [];\n }, [mode]);\n\n const onFilesAdded = useCallback(\n (newlyAddedFiles: File[]) => {\n setNewFiles(current => [\n ...newlyAddedFiles.map((file, i) => {\n const id = createUID();\n return {\n id,\n name: file.name,\n category: '',\n File: file,\n ref: (el: HTMLLIElement) => {\n listItemEls.current[i] = el;\n },\n onEdit: () => {\n setEditFileIndex(i);\n },\n onCancel: () => {\n setNewFiles(c => c.filter(f => f.id !== id));\n }\n };\n }),\n ...current\n ]);\n },\n [files]\n );\n\n // Actions for the modal\n const actions =\n mode === 'addNew' ? (\n <>\n <Button onClick={dismiss}>Cancel</Button>\n <Button\n type='submit'\n variant='primary'\n // Normally this would trigger a submit event but we are preventing that in the Modal's onSubmit.\n onClick={attachSelected}\n disabled={newFiles.length === 0}\n >\n Attach Files\n </Button>\n </>\n ) : null;\n\n // Content for the modal\n const content =\n mode === 'addNew' ? (\n <FileInput\n multiple\n label='Select files to attach'\n onFilesAdded={onFilesAdded}\n files={newFiles.map(f => ({ ...f, meta: f.category || undefined }))}\n />\n ) : (\n <ViewAll\n loading={loading}\n items={(search ? files.filter(f => f.name.includes(search)) : files).map((file, i) => {\n return getSummaryListItemProps({\n ref: (el: HTMLLIElement) => {\n listItemEls.current[i] = el;\n },\n file,\n editFile: () => {\n setEditFileIndex(i);\n },\n cancelFile: id => {\n const canceledFile = files.find(f => f.id === id) as MockFileUploadItem;\n cancelFile(id);\n pushToaster({ content: `Cancelled attaching ${canceledFile.name}` });\n },\n deleteFile: async id => {\n const deletedFile = files.find(f => f.id === id) as MockFileAttachmentResource;\n await deleteFile(id);\n pushToaster({ content: `${deletedFile.name} deleted` });\n }\n });\n })}\n actions={[\n {\n id: 'addNewFile',\n text: 'Add files',\n onClick: () => {\n setMode('addNew');\n }\n },\n {\n id: 'addNewLink',\n text: 'Add links',\n onClick: () => {\n setMode('addNew');\n }\n }\n ]}\n searchInputProps={{ onSearchChange: value => setSearch(value) }}\n />\n );\n\n return (\n <Modal\n as={mode === 'addNew' ? 'form' : undefined}\n heading={mode === 'addNew' ? 'Add attachments' : 'Attachments'}\n actions={actions}\n onRequestDismiss={() => {\n return !editPopoverTargetLi;\n }}\n onSubmit={\n mode === 'addNew'\n ? (e: FormEvent) => {\n e.preventDefault();\n }\n : undefined\n }\n >\n <>\n {content}\n {editPopoverTargetLi && (\n <EditPopover\n ref={editPopoverRef}\n target={menuButton}\n file={mode === 'addNew' ? newFiles[editFileIndex] : files[editFileIndex]}\n onCancel={handlePopoverClose}\n onSubmit={({ name, category }) => {\n handlePopoverClose();\n\n // TS kept from easily consolidating like:\n // const setter = mode === 'addNew' ? setNewFiles : setFiles;\n // Could not avoid map's file param as \"any\".\n if (mode === 'addNew') {\n setNewFiles(cur => {\n return cur.map((file, i) => {\n if (i === editFileIndex) {\n return {\n ...file,\n name,\n category\n };\n }\n\n return file;\n });\n });\n } else {\n setFiles(cur =>\n cur.map((file, i) => {\n if (i === editFileIndex) {\n return {\n ...file,\n name,\n category\n };\n }\n\n return file;\n })\n );\n }\n }}\n />\n )}\n </>\n </Modal>\n );\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// Attachments mock\n// ---------------------------------------------------------------------------------------------------------------------\nexport const AttachmentsMock = () => {\n const { push: pushToaster } = useToaster();\n const { create: createModal } = useModalManager();\n const [loading, setLoading] = useState(true);\n const { files, setFiles, cancelFile, deleteFile } = useContext(FileServiceContext);\n\n const listItemEls = useRef<HTMLLIElement[]>([]);\n const [editFileIndex, setEditFileIndex] = useState<number>(-1);\n\n const editPopoverTargetLi = useMemo(() => {\n return editFileIndex !== undefined ? listItemEls.current[editFileIndex] : undefined;\n }, [editFileIndex, listItemEls]);\n\n const menuButton = useMemo(\n () =>\n editPopoverTargetLi\n ? editPopoverTargetLi.querySelector<HTMLButtonElement>('button[aria-haspopup=\"menu\"]')\n : null,\n [editPopoverTargetLi]\n );\n\n const handlePopoverClose = useCallback(() => {\n if (!editPopoverTargetLi) return;\n setEditFileIndex(-1);\n menuButton?.focus();\n }, [menuButton, editPopoverTargetLi]);\n\n const handleKeydown = useCallback((e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setEditFileIndex(-1);\n }\n }, []);\n\n const editPopoverRef = useRef<HTMLDivElement>(null);\n\n // Using mousedown instead of click since drag selecting an input's value within the popover, then releasing outside the popover triggers outer click.\n useOuterEvent('mousedown', [editPopoverRef], handlePopoverClose);\n\n useEffect(() => {\n mockAttachmentListRequest().then(attachments => {\n setLoading(false);\n setFiles(attachments);\n });\n }, []);\n\n useEffect(() => {\n if (!editPopoverTargetLi) return;\n document.addEventListener('keydown', handleKeydown);\n return () => {\n document.removeEventListener('keydown', handleKeydown);\n };\n }, [editPopoverTargetLi]);\n\n return (\n <>\n <SummaryList\n icon='paper-clip'\n name='Attachments'\n loading={loading}\n count={!loading && Array.isArray(files) ? files.length : undefined}\n actions={[\n {\n text: 'Add attachments',\n id: 'addNew',\n icon: 'plus',\n onClick() {\n createModal(AttachmentsModal, { defaultMode: 'addNew' as const });\n }\n }\n ]}\n items={files.slice(0, 3).map((file, i) => {\n return getSummaryListItemProps({\n ref: (el: HTMLLIElement) => {\n listItemEls.current[i] = el;\n },\n file,\n editFile: () => {\n setEditFileIndex(i);\n },\n cancelFile: id => {\n const canceledFile = files.find(f => f.id === id) as MockFileUploadItem;\n cancelFile(id);\n pushToaster({ content: `Cancelled attaching ${canceledFile.name}` });\n },\n deleteFile: async id => {\n const deletedFile = files.find(f => f.id === id) as MockFileAttachmentResource;\n await deleteFile(id);\n pushToaster({ content: `${deletedFile.name} deleted` });\n }\n });\n })}\n onViewAll={() => {\n createModal(AttachmentsModal, { defaultMode: 'viewAll' as const });\n }}\n />\n {editPopoverTargetLi && (\n <EditPopover\n ref={editPopoverRef}\n target={menuButton}\n file={files[editFileIndex]}\n onCancel={handlePopoverClose}\n onSubmit={({ name, category }) => {\n handlePopoverClose();\n setFiles(cur =>\n cur.map((file, i) => {\n if (i === editFileIndex) {\n return {\n ...file,\n name,\n category\n };\n }\n\n return file;\n })\n );\n }}\n />\n )}\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"Attachments.mocks.js","sourceRoot":"","sources":["../../../src/work/CaseView/Attachments.mocks.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,UAAU,EACV,SAAS,EAET,MAAM,EAEN,OAAO,EAEP,UAAU,EAGX,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,MAAM,EACN,SAAS,EACT,UAAU,EACV,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,WAAW,EACX,OAAO,EACP,mBAAmB,EACnB,mBAAmB,EAEnB,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,EAET,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,eAAe,EAEf,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,kBAAkB,EAElB,yBAAyB,EACzB,cAAc,EAGf,MAAM,oBAAoB,CAAC;AAE5B,wHAAwH;AACxH,0BAA0B;AAC1B,wHAAwH;AACxH,MAAM,uBAAuB,GAAG,CAAC,EAC/B,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,UAAU,EAOX,EAAmB,EAAE;IACpB,IAAI,OAAiB,CAAC;IACtB,IAAI,MAAmB,CAAC;IAExB,IAAI,UAAU,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE;QAClF,MAAM,GAAG,KAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,GAAG,CAAC;QAC9E,OAAO,GAAG;YACR;gBACE,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,GAAG,EAAE;oBACZ,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtB,CAAC;aACF;SACF,CAAC;KACH;SAAM;QACL,MAAM,GAAG,CACP,KAAC,UAAU,IACT,IAAI,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAC/D,SAAS,EAAG,IAAmC,CAAC,SAAS,GACzD,CACH,CAAC;QACF,OAAO,GAAG;YACR;gBACE,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,GAAG,EAAE;oBACZ,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;aACF;YACD;gBACE,EAAE,EAAE,UAAU;gBACd,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;aAClB;YACD;gBACE,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,GAAG,EAAE;oBACZ,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtB,CAAC;aACF;SACF,CAAC;KACH;IAED,OAAO;QACL,GAAG;QACH,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,MAAM;QACN,OAAO,EAAE,IAAI,CAAC,IAAI;QAClB,eAAe,EAAE,IAAI,CAAC,IAAI;QAC1B,SAAS,EAAE,CACT,KAAC,IAAI,IAAC,OAAO,EAAC,WAAW,YACtB,UAAU,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAChF,aAAa,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAC1C,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,IACP,KAAK,EAAE;oBACL,IAAI,CAAC,QAAQ;oBACb,0CACW,GAAG,EACZ,KAAC,eAAe,IACd,OAAO,EAAC,UAAU,EAClB,KAAK,EAAG,IAAmC,CAAC,UAAU,GACtD,IACD;iBACJ,GACD,CACH,GACI,CACR;QACD,OAAO;KACR,CAAC;AACJ,CAAC,CAAC;AAaF,MAAM,WAAW,GAAyB,UAAU,CAClD,CACE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAqC,EACvE,GAA4B,EAC5B,EAAE;IACF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE;QAChD,OAAO;YACL,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC5D,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC/B,OAAO;oBACL,EAAE,EAAE,SAAS,EAAE;oBACf,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,QAAQ;iBACrC,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,EAAE;YACP,CAAC,CAAC;gBACE,KAAK,EAAE;oBACL,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,IAAI,EAAE,EAAE,CAAC,OAAO;iBACjB;aACF;YACH,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO;IACL,sEAAsE;IACtE,KAAC,OAAO,IAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAC,cAAc,YACnF,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,aACtD,KAAC,IAAI,IAAC,OAAO,EAAC,IAAI,wBAAe,EAEjC,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aAC9C,KAAC,KAAK,IACJ,KAAK,EAAC,MAAM,EACZ,WAAW,EAAC,kBAAa,EACzB,KAAK,EAAE,IAAI,EACX,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EACnC,SAAS,QACT,QAAQ,QACR,QAAQ,EAAE,CAAC,CAAgC,EAAE,EAAE;gCAC7C,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gCACxB,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;oCAC3B,QAAQ,CAAC,EAAE,CAAC,CAAC;iCACd;4BACH,CAAC,EACD,MAAM,EAAE,GAAG,EAAE;gCACX,IAAI,CAAC,IAAI,EAAE;oCACT,QAAQ,CAAC,mBAAmB,CAAC,CAAC;iCAC/B;4BACH,CAAC,GACD,EACF,KAAC,QAAQ,IACP,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,cAAS,EACrB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE;gCACJ,IAAI,EAAE,eAAe;gCACrB,KAAK,EAAE,UAAU;gCACjB,WAAW,EAAE,EAAE,CAAC,EAAE;oCAChB,aAAa,CAAC,GAAG,CAAC,EAAE;wCAClB,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;4CACxB,OAAO;gDACL,GAAG,QAAQ;gDACX,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE;6CAC7B,CAAC;wCACJ,CAAC,CAAC,CAAC;oCACL,CAAC,CAAC,CAAC;gCACL,CAAC;6BACF,GACD,IACG,EAEP,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,aACrC,KAAC,MAAM,IAAC,OAAO,EAAE,QAAQ,uBAAiB,EAC1C,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,KAAK;oCAAE,OAAO;gCAClB,QAAQ,CAAC;oCACP,IAAI;oCACJ,QAAQ,EACN,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa;wCAChE,CAAC,CAAC,EAAE;wCACJ,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI;iCAClC,CAAC,CAAC;4BACL,CAAC,uBAGM,IACJ,IACF,GACC,CACX,CAAC;AACJ,CAAC,CACF,CAAC;AASF,MAAM,gBAAgB,GAAG,CAAC,EAAE,WAAW,EAAyB,EAAE,EAAE;IAClE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE9C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,CAAC;IAC3C,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAE/F,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAuB,EAAE,CAAC,CAAC;IAEnE,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAE3B,MAAM,WAAW,GAAG,MAAM,CAAkB,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC,CAAC;IAE/D,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE;QACvC,OAAO,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjC,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CACH,mBAAmB;QACjB,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAoB,8BAA8B,CAAC;QACtF,CAAC,CAAC,IAAI,EACV,CAAC,mBAAmB,CAAC,CACtB,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,IAAI,CAAC,mBAAmB;YAAE,OAAO;QACjC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,UAAU,EAAE,KAAK,EAAE,CAAC;IACtB,CAAC,EAAE,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEtC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAgB,EAAE,EAAE;QACrD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YACtB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;SACtB;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEpD,sJAAsJ;IACtJ,aAAa,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAEjE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,OAAO,GAAG,EAAE;gBACV,YAAY,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC,CAAC;SACH;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,mBAAmB;YAAE,OAAO;QACjC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACb,4GAA4G;QAC5G,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC;IAC3B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,eAAuB,EAAE,EAAE;QAC1B,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACrB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACjC,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;gBACvB,OAAO;oBACL,EAAE;oBACF,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE,EAAE;oBACZ,IAAI,EAAE,IAAI;oBACV,GAAG,EAAE,CAAC,EAAiB,EAAE,EAAE;wBACzB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBAC9B,CAAC;oBACD,MAAM,EAAE,GAAG,EAAE;wBACX,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBACtB,CAAC;oBACD,QAAQ,EAAE,GAAG,EAAE;wBACb,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC/C,CAAC;iBACF,CAAC;YACJ,CAAC,CAAC;YACF,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,wBAAwB;IACxB,MAAM,OAAO,GACX,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAClB,8BACE,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,uBAAiB,EACzC,KAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS;gBACjB,iGAAiG;gBACjG,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,6BAGxB,IACR,CACJ,CAAC,CAAC,CAAC,IAAI,CAAC;IAEX,wBAAwB;IACxB,MAAM,OAAO,GACX,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAClB,KAAC,SAAS,IACR,QAAQ,QACR,KAAK,EAAC,wBAAwB,EAC9B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC,CAAC,GACnE,CACH,CAAC,CAAC,CAAC,CACF,KAAC,OAAO,IACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACnF,OAAO,uBAAuB,CAAC;gBAC7B,GAAG,EAAE,CAAC,EAAiB,EAAE,EAAE;oBACzB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC9B,CAAC;gBACD,IAAI;gBACJ,QAAQ,EAAE,GAAG,EAAE;oBACb,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC;gBACD,UAAU,EAAE,EAAE,CAAC,EAAE;oBACf,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAuB,CAAC;oBACxE,UAAU,CAAC,EAAE,CAAC,CAAC;oBACf,WAAW,CAAC,EAAE,OAAO,EAAE,uBAAuB,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvE,CAAC;gBACD,UAAU,EAAE,KAAK,EAAC,EAAE,EAAC,EAAE;oBACrB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAA+B,CAAC;oBAC/E,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;oBACrB,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;gBAC1D,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,EACF,OAAO,EAAE;YACP;gBACE,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,GAAG,EAAE;oBACZ,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpB,CAAC;aACF;YACD;gBACE,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,GAAG,EAAE;oBACZ,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpB,CAAC;aACF;SACF,EACD,gBAAgB,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAC/D,CACH,CAAC;IAEJ,OAAO,CACL,KAAC,KAAK,IACJ,EAAE,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC1C,OAAO,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,EAC9D,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,GAAG,EAAE;YACrB,OAAO,CAAC,mBAAmB,CAAC;QAC9B,CAAC,EACD,QAAQ,EACN,IAAI,KAAK,QAAQ;YACf,CAAC,CAAC,CAAC,CAAY,EAAE,EAAE;gBACf,CAAC,CAAC,cAAc,EAAE,CAAC;YACrB,CAAC;YACH,CAAC,CAAC,SAAS,YAGf,8BACG,OAAO,EACP,mBAAmB,IAAI,CACtB,KAAC,WAAW,IACV,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EACxE,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;wBAC/B,kBAAkB,EAAE,CAAC;wBAErB,0CAA0C;wBAC1C,6DAA6D;wBAC7D,6CAA6C;wBAC7C,IAAI,IAAI,KAAK,QAAQ,EAAE;4BACrB,WAAW,CAAC,GAAG,CAAC,EAAE;gCAChB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oCACzB,IAAI,CAAC,KAAK,aAAa,EAAE;wCACvB,OAAO;4CACL,GAAG,IAAI;4CACP,IAAI;4CACJ,QAAQ;yCACT,CAAC;qCACH;oCAED,OAAO,IAAI,CAAC;gCACd,CAAC,CAAC,CAAC;4BACL,CAAC,CAAC,CAAC;yBACJ;6BAAM;4BACL,QAAQ,CAAC,GAAG,CAAC,EAAE,CACb,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gCAClB,IAAI,CAAC,KAAK,aAAa,EAAE;oCACvB,OAAO;wCACL,GAAG,IAAI;wCACP,IAAI;wCACJ,QAAQ;qCACT,CAAC;iCACH;gCAED,OAAO,IAAI,CAAC;4BACd,CAAC,CAAC,CACH,CAAC;yBACH;oBACH,CAAC,GACD,CACH,IACA,GACG,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,wHAAwH;AACxH,mBAAmB;AACnB,wHAAwH;AACxH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,CAAC;IAC3C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,eAAe,EAAE,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAEnF,MAAM,WAAW,GAAG,MAAM,CAAkB,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC,CAAC;IAE/D,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE;QACvC,OAAO,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjC,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CACH,mBAAmB;QACjB,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAoB,8BAA8B,CAAC;QACtF,CAAC,CAAC,IAAI,EACV,CAAC,mBAAmB,CAAC,CACtB,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,IAAI,CAAC,mBAAmB;YAAE,OAAO;QACjC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,UAAU,EAAE,KAAK,EAAE,CAAC;IACtB,CAAC,EAAE,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEtC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAgB,EAAE,EAAE;QACrD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YACtB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;SACtB;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEpD,sJAAsJ;IACtJ,aAAa,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAEjE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,CAAC,KAAK,IAAI,EAAE;YACV,MAAM,WAAW,GAAG,MAAM,yBAAyB,EAAE,CAAC;YAEtD,iFAAiF;YACjF,IAAI,OAAO,EAAE;gBACX,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClB,QAAQ,CAAC,WAAW,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,GAAG,EAAE;YACV,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,mBAAmB;YAAE,OAAO;QACjC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE1B,OAAO,CACL,8BACE,KAAC,WAAW,IACV,IAAI,EAAC,YAAY,EACjB,IAAI,EAAC,aAAa,EAClB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAClE,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,iBAAiB;wBACvB,EAAE,EAAE,QAAQ;wBACZ,IAAI,EAAE,MAAM;wBACZ,OAAO;4BACL,WAAW,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,QAAiB,EAAE,CAAC,CAAC;wBACpE,CAAC;qBACF;iBACF,EACD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACvC,OAAO,uBAAuB,CAAC;wBAC7B,GAAG,EAAE,CAAC,EAAiB,EAAE,EAAE;4BACzB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;wBAC9B,CAAC;wBACD,IAAI;wBACJ,QAAQ,EAAE,GAAG,EAAE;4BACb,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBACtB,CAAC;wBACD,UAAU,EAAE,EAAE,CAAC,EAAE;4BACf,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAuB,CAAC;4BACxE,UAAU,CAAC,EAAE,CAAC,CAAC;4BACf,WAAW,CAAC,EAAE,OAAO,EAAE,uBAAuB,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBACvE,CAAC;wBACD,UAAU,EAAE,KAAK,EAAC,EAAE,EAAC,EAAE;4BACrB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAA+B,CAAC;4BAC/E,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;4BACrB,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;wBAC1D,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC,CAAC,EACF,SAAS,EAAE,GAAG,EAAE;oBACd,WAAW,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,SAAkB,EAAE,CAAC,CAAC;gBACrE,CAAC,GACD,EACD,mBAAmB,IAAI,CACtB,KAAC,WAAW,IACV,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,EAC1B,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;oBAC/B,kBAAkB,EAAE,CAAC;oBACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,CACb,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;wBAClB,IAAI,CAAC,KAAK,aAAa,EAAE;4BACvB,OAAO;gCACL,GAAG,IAAI;gCACP,IAAI;gCACJ,QAAQ;6BACT,CAAC;yBACH;wBAED,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC,CACH,CAAC;gBACJ,CAAC,GACD,CACH,IACA,CACJ,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {\n useState,\n useCallback,\n useContext,\n useEffect,\n FormEvent,\n useRef,\n Ref,\n useMemo,\n ChangeEvent,\n forwardRef,\n FC,\n PropsWithoutRef\n} from 'react';\n\nimport {\n Button,\n FileInput,\n FileVisual,\n Progress,\n Modal,\n Text,\n SummaryList,\n ViewAll,\n getKindFromMimeType,\n getMimeTypeFromFile,\n Action,\n Popover,\n Flex,\n Input,\n ComboBox,\n createUID,\n PopoverProps,\n useModalManager,\n useModalContext,\n useOuterEvent,\n useToaster,\n DateTimeDisplay,\n SummaryListItem,\n MetaList\n} from '@pega/cosmos-react-core';\n\nimport {\n FileServiceContext,\n FileServiceContextValue,\n mockAttachmentListRequest,\n mockCategories,\n MockFileAttachmentResource,\n MockFileUploadItem\n} from './FileService.mock';\n\n// ---------------------------------------------------------------------------------------------------------------------\n// getSummaryListItemProps\n// ---------------------------------------------------------------------------------------------------------------------\nconst getSummaryListItemProps = ({\n ref,\n file,\n editFile,\n cancelFile,\n deleteFile\n}: {\n ref: Ref<HTMLLIElement>;\n file: MockFileAttachmentResource | MockFileUploadItem;\n editFile?: (file: MockFileAttachmentResource) => void;\n cancelFile: FileServiceContextValue['cancelFile'];\n deleteFile: FileServiceContextValue['deleteFile'];\n}): SummaryListItem => {\n let actions: Action[];\n let visual: JSX.Element;\n\n if ('progress' in file && typeof file.progress === 'number' && file.progress < 100) {\n visual = <Progress value={file.progress} placement='inline' variant='ring' />;\n actions = [\n {\n id: 'Cancel',\n text: 'Cancel',\n icon: 'times',\n onClick: () => {\n cancelFile(file.id);\n }\n }\n ];\n } else {\n visual = (\n <FileVisual\n type={getKindFromMimeType(getMimeTypeFromFile(file.name) ?? '')}\n thumbnail={(file as MockFileAttachmentResource).thumbnail}\n />\n );\n actions = [\n {\n id: 'Edit',\n text: 'Edit',\n icon: 'pencil',\n onClick: () => {\n editFile?.(file);\n }\n },\n {\n id: 'Download',\n text: 'Download',\n icon: 'download',\n onClick: () => {}\n },\n {\n id: 'Delete',\n text: 'Delete',\n icon: 'trash',\n onClick: () => {\n deleteFile(file.id);\n }\n }\n ];\n }\n\n return {\n ref,\n id: file.id,\n visual,\n primary: file.name,\n contextualLabel: file.name,\n secondary: (\n <Text variant='secondary'>\n {'progress' in file && typeof file.progress === 'number' && file.progress < 100 ? (\n `Uploading…${Math.floor(file.progress)}%`\n ) : (\n <MetaList\n items={[\n file.category,\n <>\n Uploaded{' '}\n <DateTimeDisplay\n variant='relative'\n value={(file as MockFileAttachmentResource).createDate}\n />\n </>\n ]}\n />\n )}\n </Text>\n ),\n actions\n };\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// Attachment edit Popover\n// ---------------------------------------------------------------------------------------------------------------------\ninterface EditPopoverProps {\n file: MockFileAttachmentResource;\n target: PopoverProps['target'];\n onSubmit: (fields: { name: string; category: string }) => void;\n onCancel: () => void;\n ref: Ref<HTMLDivElement>;\n}\n\nconst EditPopover: FC<EditPopoverProps> = forwardRef(\n (\n { file, target, onSubmit, onCancel }: PropsWithoutRef<EditPopoverProps>,\n ref: EditPopoverProps['ref']\n ) => {\n const [name, setName] = useState(file.name);\n const [error, setError] = useState('');\n\n const [categories, setCategories] = useState(() => {\n return [\n { id: createUID(), primary: 'No category', selected: false },\n ...mockCategories.map(category => {\n return {\n id: createUID(),\n primary: category,\n selected: file.category === category\n };\n })\n ];\n });\n\n const selectedCategory = useMemo(() => {\n const sc = categories.find(c => c.selected);\n return sc\n ? {\n items: {\n id: sc.id,\n text: sc.primary\n }\n }\n : undefined;\n }, [categories]);\n\n return (\n // Set an inline style ONLY until Popover width presets are available.\n <Popover ref={ref} target={target} style={{ width: '40ch' }} placement='bottom-start'>\n <Flex container={{ direction: 'column', gap: 2, pad: 2 }}>\n <Text variant='h3'>Details</Text>\n\n <Flex container={{ direction: 'column', gap: 2 }}>\n <Input\n label='Name'\n placeholder='Enter name…'\n value={name}\n info={error}\n status={error ? 'error' : undefined}\n autoFocus\n required\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n setName(e.target.value);\n if (error && e.target.value) {\n setError('');\n }\n }}\n onBlur={() => {\n if (!name) {\n setError('Name is required.');\n }\n }}\n />\n <ComboBox\n label='Category'\n placeholder='Choose…'\n selected={selectedCategory}\n menu={{\n mode: 'single-select',\n items: categories,\n onItemClick: id => {\n setCategories(cur => {\n return cur.map(category => {\n return {\n ...category,\n selected: category.id === id\n };\n });\n });\n }\n }}\n />\n </Flex>\n\n <Flex container={{ justify: 'between' }}>\n <Button onClick={onCancel}>Cancel</Button>\n <Button\n variant='primary'\n onClick={() => {\n if (error) return;\n onSubmit({\n name,\n category:\n !selectedCategory || selectedCategory.items.text === 'No category'\n ? ''\n : selectedCategory.items.text\n });\n }}\n >\n Submit\n </Button>\n </Flex>\n </Flex>\n </Popover>\n );\n }\n);\n\n// ---------------------------------------------------------------------------------------------------------------------\n// AttachmentsModal\n// ---------------------------------------------------------------------------------------------------------------------\ninterface AttachmentsModalProps {\n defaultMode: 'viewAll' | 'addNew';\n}\n\nconst AttachmentsModal = ({ defaultMode }: AttachmentsModalProps) => {\n const [mode, setMode] = useState(defaultMode);\n\n const { push: pushToaster } = useToaster();\n const { dismiss } = useModalContext();\n const { files, setFiles, cancelFile, attachFile, deleteFile } = useContext(FileServiceContext);\n\n const [search, setSearch] = useState('');\n const [loading, setLoading] = useState(true);\n const [newFiles, setNewFiles] = useState<MockFileUploadItem[]>([]);\n\n const attachSelected = useCallback(() => {\n newFiles.forEach(attachFile);\n dismiss();\n }, [newFiles, attachFile]);\n\n const listItemEls = useRef<HTMLLIElement[]>([]);\n const [editFileIndex, setEditFileIndex] = useState<number>(-1);\n\n const editPopoverTargetLi = useMemo(() => {\n return editFileIndex !== undefined ? listItemEls.current[editFileIndex] : undefined;\n }, [editFileIndex, listItemEls]);\n\n const menuButton = useMemo(\n () =>\n editPopoverTargetLi\n ? editPopoverTargetLi.querySelector<HTMLButtonElement>('button[aria-haspopup=\"menu\"]')\n : null,\n [editPopoverTargetLi]\n );\n\n const handlePopoverClose = useCallback(() => {\n if (!editPopoverTargetLi) return;\n setEditFileIndex(-1);\n menuButton?.focus();\n }, [menuButton, editPopoverTargetLi]);\n\n const handleKeydown = useCallback((e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setEditFileIndex(-1);\n }\n }, []);\n\n const editPopoverRef = useRef<HTMLDivElement>(null);\n\n // Using mousedown instead of click since drag selecting an input's value within the popover, then releasing outside the popover triggers outer click.\n useOuterEvent('mousedown', [editPopoverRef], handlePopoverClose);\n\n useEffect(() => {\n if (mode === 'viewAll') {\n const timeout = setTimeout(() => {\n setLoading(false);\n }, 1000);\n\n return () => {\n clearTimeout(timeout);\n };\n }\n }, [mode]);\n\n useEffect(() => {\n if (!editPopoverTargetLi) return;\n document.addEventListener('keydown', handleKeydown);\n return () => {\n document.removeEventListener('keydown', handleKeydown);\n };\n }, [editPopoverTargetLi]);\n\n useEffect(() => {\n // Since the component is performing double duty we need to empty out ref elements from a prior render mode.\n listItemEls.current = [];\n }, [mode]);\n\n const onFilesAdded = useCallback(\n (newlyAddedFiles: File[]) => {\n setNewFiles(current => [\n ...newlyAddedFiles.map((file, i) => {\n const id = createUID();\n return {\n id,\n name: file.name,\n category: '',\n File: file,\n ref: (el: HTMLLIElement) => {\n listItemEls.current[i] = el;\n },\n onEdit: () => {\n setEditFileIndex(i);\n },\n onCancel: () => {\n setNewFiles(c => c.filter(f => f.id !== id));\n }\n };\n }),\n ...current\n ]);\n },\n [files]\n );\n\n // Actions for the modal\n const actions =\n mode === 'addNew' ? (\n <>\n <Button onClick={dismiss}>Cancel</Button>\n <Button\n type='submit'\n variant='primary'\n // Normally this would trigger a submit event but we are preventing that in the Modal's onSubmit.\n onClick={attachSelected}\n disabled={newFiles.length === 0}\n >\n Attach Files\n </Button>\n </>\n ) : null;\n\n // Content for the modal\n const content =\n mode === 'addNew' ? (\n <FileInput\n multiple\n label='Select files to attach'\n onFilesAdded={onFilesAdded}\n files={newFiles.map(f => ({ ...f, meta: f.category || undefined }))}\n />\n ) : (\n <ViewAll\n loading={loading}\n items={(search ? files.filter(f => f.name.includes(search)) : files).map((file, i) => {\n return getSummaryListItemProps({\n ref: (el: HTMLLIElement) => {\n listItemEls.current[i] = el;\n },\n file,\n editFile: () => {\n setEditFileIndex(i);\n },\n cancelFile: id => {\n const canceledFile = files.find(f => f.id === id) as MockFileUploadItem;\n cancelFile(id);\n pushToaster({ content: `Cancelled attaching ${canceledFile.name}` });\n },\n deleteFile: async id => {\n const deletedFile = files.find(f => f.id === id) as MockFileAttachmentResource;\n await deleteFile(id);\n pushToaster({ content: `${deletedFile.name} deleted` });\n }\n });\n })}\n actions={[\n {\n id: 'addNewFile',\n text: 'Add files',\n onClick: () => {\n setMode('addNew');\n }\n },\n {\n id: 'addNewLink',\n text: 'Add links',\n onClick: () => {\n setMode('addNew');\n }\n }\n ]}\n searchInputProps={{ onSearchChange: value => setSearch(value) }}\n />\n );\n\n return (\n <Modal\n as={mode === 'addNew' ? 'form' : undefined}\n heading={mode === 'addNew' ? 'Add attachments' : 'Attachments'}\n actions={actions}\n onRequestDismiss={() => {\n return !editPopoverTargetLi;\n }}\n onSubmit={\n mode === 'addNew'\n ? (e: FormEvent) => {\n e.preventDefault();\n }\n : undefined\n }\n >\n <>\n {content}\n {editPopoverTargetLi && (\n <EditPopover\n ref={editPopoverRef}\n target={menuButton}\n file={mode === 'addNew' ? newFiles[editFileIndex] : files[editFileIndex]}\n onCancel={handlePopoverClose}\n onSubmit={({ name, category }) => {\n handlePopoverClose();\n\n // TS kept from easily consolidating like:\n // const setter = mode === 'addNew' ? setNewFiles : setFiles;\n // Could not avoid map's file param as \"any\".\n if (mode === 'addNew') {\n setNewFiles(cur => {\n return cur.map((file, i) => {\n if (i === editFileIndex) {\n return {\n ...file,\n name,\n category\n };\n }\n\n return file;\n });\n });\n } else {\n setFiles(cur =>\n cur.map((file, i) => {\n if (i === editFileIndex) {\n return {\n ...file,\n name,\n category\n };\n }\n\n return file;\n })\n );\n }\n }}\n />\n )}\n </>\n </Modal>\n );\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n// Attachments mock\n// ---------------------------------------------------------------------------------------------------------------------\nexport const AttachmentsMock = () => {\n const { push: pushToaster } = useToaster();\n const { create: createModal } = useModalManager();\n const [loading, setLoading] = useState(true);\n const { files, setFiles, cancelFile, deleteFile } = useContext(FileServiceContext);\n\n const listItemEls = useRef<HTMLLIElement[]>([]);\n const [editFileIndex, setEditFileIndex] = useState<number>(-1);\n\n const editPopoverTargetLi = useMemo(() => {\n return editFileIndex !== undefined ? listItemEls.current[editFileIndex] : undefined;\n }, [editFileIndex, listItemEls]);\n\n const menuButton = useMemo(\n () =>\n editPopoverTargetLi\n ? editPopoverTargetLi.querySelector<HTMLButtonElement>('button[aria-haspopup=\"menu\"]')\n : null,\n [editPopoverTargetLi]\n );\n\n const handlePopoverClose = useCallback(() => {\n if (!editPopoverTargetLi) return;\n setEditFileIndex(-1);\n menuButton?.focus();\n }, [menuButton, editPopoverTargetLi]);\n\n const handleKeydown = useCallback((e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setEditFileIndex(-1);\n }\n }, []);\n\n const editPopoverRef = useRef<HTMLDivElement>(null);\n\n // Using mousedown instead of click since drag selecting an input's value within the popover, then releasing outside the popover triggers outer click.\n useOuterEvent('mousedown', [editPopoverRef], handlePopoverClose);\n\n useEffect(() => {\n let mounted = true;\n\n (async () => {\n const attachments = await mockAttachmentListRequest();\n\n // Avoids: Warning: Can't perform a React state update on an unmounted component.\n if (mounted) {\n setLoading(false);\n setFiles(attachments);\n }\n })();\n\n return () => {\n mounted = false;\n };\n }, []);\n\n useEffect(() => {\n if (!editPopoverTargetLi) return;\n document.addEventListener('keydown', handleKeydown);\n return () => {\n document.removeEventListener('keydown', handleKeydown);\n };\n }, [editPopoverTargetLi]);\n\n return (\n <>\n <SummaryList\n icon='paper-clip'\n name='Attachments'\n loading={loading}\n count={!loading && Array.isArray(files) ? files.length : undefined}\n actions={[\n {\n text: 'Add attachments',\n id: 'addNew',\n icon: 'plus',\n onClick() {\n createModal(AttachmentsModal, { defaultMode: 'addNew' as const });\n }\n }\n ]}\n items={files.slice(0, 3).map((file, i) => {\n return getSummaryListItemProps({\n ref: (el: HTMLLIElement) => {\n listItemEls.current[i] = el;\n },\n file,\n editFile: () => {\n setEditFileIndex(i);\n },\n cancelFile: id => {\n const canceledFile = files.find(f => f.id === id) as MockFileUploadItem;\n cancelFile(id);\n pushToaster({ content: `Cancelled attaching ${canceledFile.name}` });\n },\n deleteFile: async id => {\n const deletedFile = files.find(f => f.id === id) as MockFileAttachmentResource;\n await deleteFile(id);\n pushToaster({ content: `${deletedFile.name} deleted` });\n }\n });\n })}\n onViewAll={() => {\n createModal(AttachmentsModal, { defaultMode: 'viewAll' as const });\n }}\n />\n {editPopoverTargetLi && (\n <EditPopover\n ref={editPopoverRef}\n target={menuButton}\n file={files[editFileIndex]}\n onCancel={handlePopoverClose}\n onSubmit={({ name, category }) => {\n handlePopoverClose();\n setFiles(cur =>\n cur.map((file, i) => {\n if (i === editFileIndex) {\n return {\n ...file,\n name,\n category\n };\n }\n\n return file;\n })\n );\n }}\n />\n )}\n </>\n );\n};\n"]}
@@ -4,10 +4,34 @@ import type { Tab } from '@pega/cosmos-react-core/lib/components/Tabs/Tabs.types
4
4
  import { CaseViewProps } from '@pega/cosmos-react-work';
5
5
  import { TokenMap } from '@pega/cosmos-react-rte';
6
6
  import { FeedProps } from '@pega/cosmos-react-social/lib/components/Feed/Feed';
7
+ export interface CaseViewMockProps {
8
+ caseId: CaseViewProps['caseId'];
9
+ heading: CaseViewProps['heading'];
10
+ subheading?: CaseViewProps['subheading'];
11
+ parentCases?: boolean;
12
+ promotedActions?: boolean;
13
+ promotedActionCount?: number;
14
+ summaryFields?: 'All' | 'Primary only' | 'Secondary only';
15
+ tabs?: CaseViewProps['tabs'];
16
+ stages?: boolean;
17
+ tasks?: boolean | CaseViewProps['tasks'];
18
+ taskCount?: number;
19
+ predictions?: boolean;
20
+ attachments?: boolean;
21
+ stakeholders?: boolean;
22
+ followers?: boolean;
23
+ tags?: boolean;
24
+ persistentUtility?: boolean | CaseViewProps['persistentUtility'];
25
+ intelligentGuidance?: CaseViewProps['intelligentGuidance'];
26
+ banner?: boolean;
27
+ utilitiesExpanded?: boolean;
28
+ }
7
29
  interface PreviewSetters {
8
30
  setPreviewCaseId: Dispatch<SetStateAction<string | null>>;
9
31
  setPreviewCurrentTabId: Dispatch<SetStateAction<string>>;
10
32
  }
33
+ export declare const caseId = "C-123";
34
+ export declare const createDate: Date;
11
35
  export declare const tabLabels: string[];
12
36
  export declare const baseCaseTabs: Tab[];
13
37
  export declare const MockSummaryListViewAllModal: ({ name, count }: any) => JSX.Element;
@@ -43,7 +67,7 @@ export declare const casePreviewPrimaryFields: {
43
67
  value: string;
44
68
  }[];
45
69
  export declare const casePreviewSecondaryFields: import("@pega/cosmos-react-work/lib/components/CaseView/CaseView.types").SummaryField[];
46
- export declare const getParentCases: ({ caseId, setPreviewCaseId, setPreviewCurrentTabId }: {
70
+ export declare const getParentCases: ({ caseId: caseIdProp, setPreviewCaseId, setPreviewCurrentTabId }: {
47
71
  caseId: CaseViewProps['caseId'];
48
72
  } & PreviewSetters) => {
49
73
  id: string;
@@ -52,22 +76,28 @@ export declare const getParentCases: ({ caseId, setPreviewCaseId, setPreviewCurr
52
76
  previewable: boolean;
53
77
  onPreview: () => void;
54
78
  }[];
55
- export declare const Utilities: () => JSX.Element;
56
- export declare const getUtilitiesSummaryItems: () => CaseViewProps['utilitiesSummaryItems'];
79
+ interface UtilitiesArgs {
80
+ predictions?: CaseViewMockProps['predictions'];
81
+ attachments?: CaseViewMockProps['attachments'];
82
+ stakeholders?: CaseViewMockProps['stakeholders'];
83
+ followers?: CaseViewMockProps['followers'];
84
+ tags?: CaseViewMockProps['tags'];
85
+ }
86
+ export declare const Utilities: ({ predictions, attachments, stakeholders, followers, tags }: UtilitiesArgs) => JSX.Element;
87
+ export declare const getUtilitiesSummaryItems: ({ predictions, attachments, stakeholders, followers, tags }: UtilitiesArgs) => CaseViewProps['utilitiesSummaryItems'];
57
88
  export declare const getCaseActions: () => {
58
89
  text: string;
59
90
  id: string;
60
91
  onClick: () => void;
61
92
  }[];
62
- export declare const getPromotedActions: () => {
93
+ export declare const getPromotedActions: ({ count }: {
94
+ count: CaseViewMockProps['promotedActionCount'];
95
+ }) => {
63
96
  id: string;
64
97
  text: string;
65
98
  onClick: () => void;
66
99
  }[];
67
100
  export declare const PersistentUtilityContent: () => JSX.Element;
68
- export interface CaseViewMockProps extends Pick<CaseViewProps, 'heading' | 'tasks' | 'stages' | 'persistentUtility' | 'intelligentGuidance'> {
69
- parentCases?: boolean;
70
- }
71
- export declare const CaseViewMock: ({ parentCases, tasks, stages, persistentUtility, heading, intelligentGuidance }: CaseViewMockProps) => JSX.Element;
101
+ export declare const CaseViewMock: ({ caseId: caseIdProp, heading, subheading, parentCases, promotedActions, promotedActionCount, summaryFields, tabs, stages, tasks, taskCount, utilitiesExpanded: utilitiesExpandedProp, predictions, attachments, stakeholders, followers, tags, persistentUtility, intelligentGuidance, banner }: CaseViewMockProps) => JSX.Element;
72
102
  export {};
73
103
  //# sourceMappingURL=CaseView.mocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CaseView.mocks.d.ts","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.mocks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAgC,MAAM,OAAO,CAAC;AAG/E,OAAO,EAQL,gBAAgB,EAWjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wDAAwD,CAAC;AAClF,OAAO,EAAW,aAAa,EAAyB,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAkB,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAc/E,UAAU,cAAc;IACtB,gBAAgB,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1D,sBAAsB,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;CAC1D;AAMD,eAAO,MAAM,SAAS,UAAmC,CAAC;AAE1D,eAAO,MAAM,YAAY,OAKvB,CAAC;AAIH,eAAO,MAAM,2BAA2B,oBAAqB,GAAG,gBAwC/D,CAAC;AAEF,eAAO,MAAM,eAAe;;;iBAqD3B,CAAC;AAEF,eAAO,MAAM,sBAAsB,mBA8ElC,CAAC;AAEF,eAAO,MAAM,oBAAoB,mEAI9B;IAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;CAAE,GAAG,cAAc,gBAa9C,CAAC;AAEF,eAAO,MAAM,mBAAmB,iDAG7B,cAAc,KAAG,SAAS,CAAC,aAAa,CAc1C,CAAC;AAEF,eAAO,MAAM,gBAAgB;QAMvB,MAAM;UACJ,MAAM;2BAMb,CAAC;AAEF,eAAO,MAAM,aAAa,iDAAkD,cAAc;;;GA0BzF,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;GAiB7B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;GAmB5B,CAAC;AAuBF,eAAO,MAAM,kBAAkB,iDAG5B,cAAc,4FAuBhB,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;GASpC,CAAC;AAEF,eAAO,MAAM,0BAA0B,yFAAsB,CAAC;AAE9D,eAAO,MAAM,cAAc;YAKjB,aAAa,CAAC,QAAQ,CAAC;;;;;;;GAuBhC,CAAC;AAEF,eAAO,MAAM,SAAS,mBAUrB,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAO,aAAa,CAAC,uBAAuB,CAQhF,CAAC;AAEF,eAAO,MAAM,cAAc;;;;GAQ1B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;GAE9B,CAAC;AASF,eAAO,MAAM,wBAAwB,mBASpC,CAAC;AAEF,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,aAAa,EACb,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,mBAAmB,GAAG,qBAAqB,CAC7E;IACD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,YAAY,oFAOtB,iBAAiB,gBAmHnB,CAAC"}
1
+ {"version":3,"file":"CaseView.mocks.d.ts","sourceRoot":"","sources":["../../../src/work/CaseView/CaseView.mocks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAgC,MAAM,OAAO,CAAC;AAG/E,OAAO,EAQL,gBAAgB,EAYjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wDAAwD,CAAC;AAClF,OAAO,EAAW,aAAa,EAAyB,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAkB,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAiB/E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,gBAAgB,CAAC;IAC1D,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACjE,mBAAmB,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,cAAc;IACtB,gBAAgB,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1D,sBAAsB,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;CAC1D;AAED,eAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,eAAO,MAAM,UAAU,MAAuB,CAAC;AAI/C,eAAO,MAAM,SAAS,UAAmC,CAAC;AAE1D,eAAO,MAAM,YAAY,OAKvB,CAAC;AAIH,eAAO,MAAM,2BAA2B,oBAAqB,GAAG,gBAwC/D,CAAC;AAEF,eAAO,MAAM,eAAe;;;iBAqD3B,CAAC;AAEF,eAAO,MAAM,sBAAsB,mBA8ElC,CAAC;AAEF,eAAO,MAAM,oBAAoB,mEAI9B;IAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;CAAE,GAAG,cAAc,gBAa9C,CAAC;AAEF,eAAO,MAAM,mBAAmB,iDAG7B,cAAc,KAAG,SAAS,CAAC,aAAa,CAc1C,CAAC;AAEF,eAAO,MAAM,gBAAgB;QAMvB,MAAM;UACJ,MAAM;2BAMb,CAAC;AAEF,eAAO,MAAM,aAAa,iDAAkD,cAAc;;;GA0BzF,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;GAiB7B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;GAmB5B,CAAC;AAuBF,eAAO,MAAM,kBAAkB,iDAG5B,cAAc,4FAuBhB,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;GASpC,CAAC;AAEF,eAAO,MAAM,0BAA0B,yFAAsB,CAAC;AAE9D,eAAO,MAAM,cAAc,qEAIxB;IACD,QAAQ,aAAa,CAAC,QAAQ,CAAC,CAAC;CACjC,GAAG,cAAc;;;;;;GAsBjB,CAAC;AAEF,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC/C,YAAY,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,SAAS,gEAMnB,aAAa,gBAUf,CAAC;AAEF,eAAO,MAAM,wBAAwB,gEAMlC,aAAa,KAAG,aAAa,CAAC,uBAAuB,CAUvD,CAAC;AAEF,eAAO,MAAM,cAAc;;;;GAQ1B,CAAC;AAEF,eAAO,MAAM,kBAAkB;WAGtB,iBAAiB,CAAC,qBAAqB,CAAC;;;;;GAMhD,CAAC;AASF,eAAO,MAAM,wBAAwB,mBASpC,CAAC;AAEF,eAAO,MAAM,YAAY,qSAqBtB,iBAAiB,gBA4KnB,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useState } from 'react';
3
3
  import styled, { css } from 'styled-components';
4
- import { Avatar, Button, Link, createStringMatcher, Modal, Popover, SummaryList, useModalManager, useElement, useOuterEvent, ViewAll, Status, createUID, Flex, useBreakpoint, Icon, Grid } from '@pega/cosmos-react-core';
4
+ import { Avatar, Button, Link, createStringMatcher, Modal, Popover, SummaryList, useModalManager, useElement, useOuterEvent, ViewAll, Status, Flex, useBreakpoint, Icon, Grid, registerIcon, Banner } from '@pega/cosmos-react-core';
5
5
  import { Glimpse, CaseView, CasePreview } from '@pega/cosmos-react-work';
6
6
  import { RichTextViewer } from '@pega/cosmos-react-rte';
7
+ import * as userSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/user-solid.icon';
7
8
  import { PredictionsDemo } from '../Predictions/Predictions.stories';
8
9
  import { TableDemo } from '../../core/Table/Table.stories';
9
10
  import { useMockListData } from '../../core/SummaryList/SummaryList.mocks';
@@ -14,7 +15,9 @@ import { TasksDemo } from '../Tasks/Tasks.stories';
14
15
  import { PulseMock } from './Pulse.mocks';
15
16
  import { Details } from './Details.mocks';
16
17
  import { AttachmentsMock } from './Attachments.mocks';
17
- const createDate = new Date(2016, 1, 8);
18
+ registerIcon(userSolidIcon);
19
+ export const caseId = 'C-123';
20
+ export const createDate = new Date(2016, 1, 8);
18
21
  const msInYear = 1000 * 60 * 60 * 24 * 365;
19
22
  const diffInYears = Math.floor((Date.now() - createDate.getTime()) / msInYear);
20
23
  export const tabLabels = ['Details', 'Pulse', 'Accounts'];
@@ -230,7 +233,7 @@ export const getSecondaryFields = ({ setPreviewCaseId, setPreviewCurrentTabId })
230
233
  value: _jsx(MockOperatorFieldValue, {})
231
234
  },
232
235
  {
233
- name: 'Previewable Case',
236
+ name: 'Previewable case',
234
237
  value: (_jsx(Link, { href: '/cases/C-456', previewable: true, onPreview: () => {
235
238
  setPreviewCaseId('C-456');
236
239
  setPreviewCurrentTabId('summary-C-456');
@@ -249,8 +252,8 @@ export const casePreviewPrimaryFields = [
249
252
  }
250
253
  ];
251
254
  export const casePreviewSecondaryFields = baseSecondaryFields;
252
- export const getParentCases = ({ caseId, setPreviewCaseId, setPreviewCurrentTabId }) => {
253
- const ids = new Set([caseId]);
255
+ export const getParentCases = ({ caseId: caseIdProp, setPreviewCaseId, setPreviewCurrentTabId }) => {
256
+ const ids = new Set([caseIdProp]);
254
257
  return Array.from({ length: 5 }, (_, i) => {
255
258
  let id;
256
259
  // Ensure parent ids are unique.
@@ -270,17 +273,22 @@ export const getParentCases = ({ caseId, setPreviewCaseId, setPreviewCurrentTabI
270
273
  };
271
274
  });
272
275
  };
273
- export const Utilities = () => {
274
- return (_jsxs(_Fragment, { children: [_jsx(PredictionsDemo, {}), _jsx(AttachmentsMock, {}), _jsx(StakeHoldersDemo, {}), _jsx(MockSummaryList, { icon: 'user-star', name: 'Followers' }), _jsx(TagsDemo, {})] }));
276
+ export const Utilities = ({ predictions, attachments, stakeholders, followers, tags }) => {
277
+ return (_jsxs(_Fragment, { children: [predictions && _jsx(PredictionsDemo, {}), attachments && _jsx(AttachmentsMock, {}), stakeholders && _jsx(StakeHoldersDemo, {}), followers && _jsx(MockSummaryList, { icon: 'user-star', name: 'Followers' }), tags && _jsx(TagsDemo, {})] }));
275
278
  };
276
- export const getUtilitiesSummaryItems = () => {
277
- return [
278
- { iconName: 'polaris', count: 4, name: 'Predictions' },
279
- { iconName: 'paper-clip', count: 4, name: 'Attachments' },
280
- { iconName: 'user-search-solid', count: 10, name: 'Stakeholders' },
281
- { iconName: 'user-star-solid', count: 5, name: 'Followers' },
282
- { iconName: 'tag', count: 10, name: 'Tags' }
283
- ];
279
+ export const getUtilitiesSummaryItems = ({ predictions, attachments, stakeholders, followers, tags }) => {
280
+ const items = [];
281
+ if (predictions)
282
+ items.push({ iconName: 'polaris', count: 4, name: 'Predictions' });
283
+ if (attachments)
284
+ items.push({ iconName: 'paper-clip', count: 4, name: 'Attachments' });
285
+ if (stakeholders)
286
+ items.push({ iconName: 'user-search-solid', count: 10, name: 'Stakeholders' });
287
+ if (followers)
288
+ items.push({ iconName: 'user-star-solid', count: 5, name: 'Followers' });
289
+ if (tags)
290
+ items.push({ iconName: 'tag', count: 10, name: 'Tags' });
291
+ return items;
284
292
  };
285
293
  export const getCaseActions = () => {
286
294
  return Array.from({ length: 12 }, (_, i) => {
@@ -291,8 +299,11 @@ export const getCaseActions = () => {
291
299
  };
292
300
  });
293
301
  };
294
- export const getPromotedActions = () => {
295
- return [{ id: createUID(), text: 'Promoted action', onClick: () => { } }];
302
+ export const getPromotedActions = ({ count = 1 }) => {
303
+ return Array.from({ length: count }, (_, i) => {
304
+ const text = `Promoted action${count > 1 ? `-${i + 1}` : ''}`;
305
+ return { id: text, text, onClick: () => { } };
306
+ });
296
307
  };
297
308
  const StyledPersistentUtilityContent = styled.div(({ theme }) => {
298
309
  return css `
@@ -303,13 +314,12 @@ const StyledPersistentUtilityContent = styled.div(({ theme }) => {
303
314
  export const PersistentUtilityContent = () => {
304
315
  return (_jsx(Flex, { container: { justify: 'center', alignItems: 'center' }, as: StyledPersistentUtilityContent, children: "Persistent utility content" }));
305
316
  };
306
- export const CaseViewMock = ({ parentCases, tasks, stages, persistentUtility, heading, intelligentGuidance }) => {
307
- const caseId = 'C-123';
317
+ export const CaseViewMock = ({ caseId: caseIdProp, heading, subheading, parentCases = false, promotedActions = true, promotedActionCount, summaryFields = 'All', tabs, stages = true, tasks = true, taskCount = 4, utilitiesExpanded: utilitiesExpandedProp, predictions = true, attachments = true, stakeholders = true, followers = true, tags = true, persistentUtility = false, intelligentGuidance = false, banner = false }) => {
308
318
  const [previewCaseId, setPreviewCaseId] = useState(null);
309
319
  const [previewCurrentTabId, setPreviewCurrentTabId] = useState(baseCaseTabs[0].id);
310
320
  const isMediumOrAbove = useBreakpoint('md');
311
- const [demoCurrentTabId, setDemoCurrentTabId] = useState(isMediumOrAbove ? baseCaseTabs[0].id : `summary-${caseId}`);
312
- const demoTabs = {
321
+ const [demoCurrentTabId, setDemoCurrentTabId] = useState(isMediumOrAbove ? tabs?.currentTabId ?? baseCaseTabs[0].id : `summary-${caseIdProp}`);
322
+ const demoTabs = tabs ?? {
313
323
  items: baseCaseTabs,
314
324
  currentTabId: demoCurrentTabId,
315
325
  onClick: setDemoCurrentTabId
@@ -320,14 +330,14 @@ export const CaseViewMock = ({ parentCases, tasks, stages, persistentUtility, he
320
330
  onClick: setPreviewCurrentTabId
321
331
  };
322
332
  const parentCasesContent = getParentCases({
323
- caseId,
333
+ caseId: caseIdProp,
324
334
  setPreviewCaseId,
325
335
  setPreviewCurrentTabId
326
336
  });
327
337
  const demoStages = _jsx(StagesDemo, { currentStage: 3 });
328
338
  const [followed, setFollowed] = useState(false);
329
339
  const [summaryExpanded, setSummaryExpanded] = useState(true);
330
- const [utilitiesExpanded, setUtilitiesExpanded] = useState(true);
340
+ const [utilitiesExpanded, setUtilitiesExpanded] = useState(utilitiesExpandedProp);
331
341
  const tabContent = getTabContent({ setPreviewCaseId, setPreviewCurrentTabId });
332
342
  return (_jsxs(_Fragment, { children: [previewCaseId && (_jsx(CasePreview, { open: true, onAfterClose: () => {
333
343
  setPreviewCaseId(null);
@@ -338,19 +348,51 @@ export const CaseViewMock = ({ parentCases, tasks, stages, persistentUtility, he
338
348
  : undefined, heading: 'Previewable demo case', subheading: previewCaseId, caseLink: { href: `/cases/${previewCaseId}`, target: '_blank' }, icon: _jsx(Icon, { name: 'user-solid' }), followed: !followed, onEdit: () => { }, actions: getCaseActions(), summaryFields: {
339
349
  primary: casePreviewPrimaryFields,
340
350
  secondary: casePreviewSecondaryFields
341
- }, stages: demoStages, tasks: _jsx(TasksDemo, { count: 4 }), tabs: previewTabs, tabContent: tabContent, utilities: _jsx(Grid, { container: { rowGap: 2 }, children: _jsx(Utilities, {}) }) })), _jsx(CaseView, { caseId: caseId, parentCases: parentCases
351
+ }, stages: demoStages, tasks: _jsx(TasksDemo, { count: 4 }), tabs: previewTabs, tabContent: tabContent, utilities: _jsx(Grid, { container: { rowGap: 2 }, children: _jsx(Utilities, {}) }) })), _jsx(CaseView, { caseId: caseIdProp, parentCases: parentCases
342
352
  ? getParentCases({
343
- caseId,
353
+ caseId: caseIdProp,
344
354
  setPreviewCaseId,
345
355
  setPreviewCurrentTabId
346
356
  })
347
- : undefined, heading: heading, subheading: caseId, icon: _jsx(Icon, { name: 'user-solid' }), followed: followed, onFollowedChange: setFollowed, actions: getCaseActions(), promotedActions: getPromotedActions(), onEdit: () => { }, summaryFields: {
348
- primary: getPrimaryFields(),
349
- secondary: getSecondaryFields({ setPreviewCaseId, setPreviewCurrentTabId })
350
- }, summaryExpanded: summaryExpanded, onToggleSummary: () => {
357
+ : undefined, heading: heading, subheading: subheading, icon: _jsx(Icon, { name: 'user-solid' }), followed: followed, onFollowedChange: setFollowed, actions: getCaseActions(), promotedActions: promotedActions && promotedActionCount
358
+ ? getPromotedActions({ count: promotedActionCount })
359
+ : undefined, onEdit: () => { }, summaryFields: (() => {
360
+ const obj = {
361
+ primary: getPrimaryFields(),
362
+ secondary: getSecondaryFields({ setPreviewCaseId, setPreviewCurrentTabId })
363
+ };
364
+ if (summaryFields === 'Primary only') {
365
+ obj.secondary = undefined;
366
+ }
367
+ if (summaryFields === 'Secondary only') {
368
+ obj.primary = undefined;
369
+ }
370
+ return obj;
371
+ })(), summaryExpanded: summaryExpanded, onToggleSummary: () => {
351
372
  setSummaryExpanded(cur => !cur);
352
- }, tabs: demoTabs, persistentUtility: persistentUtility, stages: stages && demoStages, tasks: tasks && _jsx(TasksDemo, { count: 4 }), tabContent: tabContent, utilities: _jsx(Utilities, {}), utilitiesSummaryItems: getUtilitiesSummaryItems(), utilitiesExpanded: utilitiesExpanded, onToggleUtilities: () => {
373
+ }, tabs: demoTabs, persistentUtility: (() => {
374
+ if (typeof persistentUtility === 'boolean') {
375
+ return persistentUtility
376
+ ? { title: 'Persistent utility', content: _jsx(PersistentUtilityContent, {}) }
377
+ : undefined;
378
+ }
379
+ return persistentUtility;
380
+ })(), stages: stages ? demoStages : undefined, tasks: tasks ? _jsx(TasksDemo, { count: taskCount }) : undefined, tabContent: tabContent, utilities: _jsx(Utilities, { predictions: predictions, attachments: attachments, stakeholders: stakeholders, followers: followers, tags: tags }), utilitiesSummaryItems: getUtilitiesSummaryItems({
381
+ predictions,
382
+ attachments,
383
+ stakeholders,
384
+ followers,
385
+ tags
386
+ }), utilitiesExpanded: utilitiesExpanded, onToggleUtilities: () => {
353
387
  setUtilitiesExpanded(cur => !cur);
354
- }, intelligentGuidance: intelligentGuidance })] }));
388
+ }, intelligentGuidance: intelligentGuidance, banners: banner ? (_jsx(Banner, { variant: 'urgent', messages: [
389
+ {
390
+ label: 'An error occurred',
391
+ description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
392
+ action: {
393
+ text: 'Take acton'
394
+ }
395
+ }
396
+ ] })) : undefined })] }));
355
397
  };
356
398
  //# sourceMappingURL=CaseView.mocks.js.map