@pega/cosmos-react-demos 3.0.0-dev.16.0 → 3.0.0-dev.18.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 (261) hide show
  1. package/jsx/build/FlowModeller/FlowModeller.mocks.d.ts +3 -2
  2. package/jsx/build/FlowModeller/FlowModeller.mocks.d.ts.map +1 -1
  3. package/jsx/build/FlowModeller/FlowModeller.mocks.jsx +62 -8
  4. package/jsx/build/FlowModeller/FlowModeller.mocks.jsx.map +1 -1
  5. package/jsx/build/FlowModeller/FlowModeller.stories.d.ts.map +1 -1
  6. package/jsx/build/FlowModeller/FlowModeller.stories.jsx +93 -16
  7. package/jsx/build/FlowModeller/FlowModeller.stories.jsx.map +1 -1
  8. package/jsx/build/ObjectSelect/ObjectSelect.mocks.d.ts +23 -8
  9. package/jsx/build/ObjectSelect/ObjectSelect.mocks.d.ts.map +1 -1
  10. package/jsx/build/ObjectSelect/ObjectSelect.mocks.jsx +31 -27
  11. package/jsx/build/ObjectSelect/ObjectSelect.mocks.jsx.map +1 -1
  12. package/jsx/build/ObjectSelect/ObjectSelect.stories.d.ts.map +1 -1
  13. package/jsx/build/ObjectSelect/ObjectSelect.stories.jsx +60 -21
  14. package/jsx/build/ObjectSelect/ObjectSelect.stories.jsx.map +1 -1
  15. package/jsx/build/PageTemplates/PageTemplates.mocks.d.ts.map +1 -1
  16. package/jsx/build/PageTemplates/PageTemplates.mocks.jsx +17 -2
  17. package/jsx/build/PageTemplates/PageTemplates.mocks.jsx.map +1 -1
  18. package/jsx/build/Workbench/Workbench.stories.d.ts +1 -0
  19. package/jsx/build/Workbench/Workbench.stories.d.ts.map +1 -1
  20. package/jsx/build/Workbench/Workbench.stories.jsx +200 -3
  21. package/jsx/build/Workbench/Workbench.stories.jsx.map +1 -1
  22. package/jsx/condition-builder/ConditionBuilder/ConditionBuilder.mocks.d.ts +1 -1
  23. package/jsx/condition-builder/ConditionBuilder/ConditionBuilder.mocks.d.ts.map +1 -1
  24. package/jsx/condition-builder/ConditionBuilder/ConditionBuilder.mocks.js +3 -1
  25. package/jsx/condition-builder/ConditionBuilder/ConditionBuilder.mocks.js.map +1 -1
  26. package/jsx/condition-builder/ConditionBuilder/ConditionBuilder.stories.d.ts +2 -1
  27. package/jsx/condition-builder/ConditionBuilder/ConditionBuilder.stories.d.ts.map +1 -1
  28. package/jsx/condition-builder/ConditionBuilder/ConditionBuilder.stories.jsx +19 -13
  29. package/jsx/condition-builder/ConditionBuilder/ConditionBuilder.stories.jsx.map +1 -1
  30. package/jsx/condition-builder/ConditionBuilder/props.mock.d.ts.map +1 -1
  31. package/jsx/condition-builder/ConditionBuilder/props.mock.js +67 -15
  32. package/jsx/condition-builder/ConditionBuilder/props.mock.js.map +1 -1
  33. package/jsx/condition-builder/ConditionInput/ConditionInput.stories.jsx +4 -1
  34. package/jsx/condition-builder/ConditionInput/ConditionInput.stories.jsx.map +1 -1
  35. package/jsx/condition-builder/PromotedFilters/PromotedFilters.mocks.d.ts.map +1 -1
  36. package/jsx/condition-builder/PromotedFilters/PromotedFilters.mocks.js +12 -0
  37. package/jsx/condition-builder/PromotedFilters/PromotedFilters.mocks.js.map +1 -1
  38. package/jsx/condition-builder/PromotedFilters/PromotedFilters.stories.d.ts +4 -2
  39. package/jsx/condition-builder/PromotedFilters/PromotedFilters.stories.d.ts.map +1 -1
  40. package/jsx/condition-builder/PromotedFilters/PromotedFilters.stories.jsx +11 -2
  41. package/jsx/condition-builder/PromotedFilters/PromotedFilters.stories.jsx.map +1 -1
  42. package/jsx/condition-builder/PromotedFilters/PromotedFilters.styles.d.ts +7 -0
  43. package/jsx/condition-builder/PromotedFilters/PromotedFilters.styles.d.ts.map +1 -1
  44. package/jsx/condition-builder/PromotedFilters/PromotedFilters.styles.js +29 -2
  45. package/jsx/condition-builder/PromotedFilters/PromotedFilters.styles.js.map +1 -1
  46. package/jsx/core/AppShell/AppShell.mocks.d.ts +1 -1
  47. package/jsx/core/AppShell/AppShell.mocks.jsx +5 -5
  48. package/jsx/core/AppShell/AppShell.mocks.jsx.map +1 -1
  49. package/jsx/core/AppShell/AppShell.stories.d.ts.map +1 -1
  50. package/jsx/core/AppShell/AppShell.stories.jsx +26 -2
  51. package/jsx/core/AppShell/AppShell.stories.jsx.map +1 -1
  52. package/jsx/core/Currency/Currency.stories.d.ts.map +1 -1
  53. package/jsx/core/Currency/Currency.stories.jsx +3 -2
  54. package/jsx/core/Currency/Currency.stories.jsx.map +1 -1
  55. package/jsx/core/DateTime/DateTime.stories.d.ts.map +1 -1
  56. package/jsx/core/DateTime/DateTime.stories.jsx +74 -9
  57. package/jsx/core/DateTime/DateTime.stories.jsx.map +1 -1
  58. package/jsx/core/Form/Form.mocks.d.ts.map +1 -1
  59. package/jsx/core/Form/Form.mocks.jsx +2 -1
  60. package/jsx/core/Form/Form.mocks.jsx.map +1 -1
  61. package/jsx/core/Input/Input.stories.d.ts +1 -0
  62. package/jsx/core/Input/Input.stories.d.ts.map +1 -1
  63. package/jsx/core/Input/Input.stories.jsx +70 -1
  64. package/jsx/core/Input/Input.stories.jsx.map +1 -1
  65. package/jsx/core/ListToolbar/ListToolbar.stories.d.ts +5 -1
  66. package/jsx/core/ListToolbar/ListToolbar.stories.d.ts.map +1 -1
  67. package/jsx/core/ListToolbar/ListToolbar.stories.jsx +9 -3
  68. package/jsx/core/ListToolbar/ListToolbar.stories.jsx.map +1 -1
  69. package/jsx/core/Menu/Menu.stories.d.ts.map +1 -1
  70. package/jsx/core/Menu/Menu.stories.jsx +4 -3
  71. package/jsx/core/Menu/Menu.stories.jsx.map +1 -1
  72. package/jsx/core/Number/Number.stories.jsx +3 -3
  73. package/jsx/core/Number/Number.stories.jsx.map +1 -1
  74. package/jsx/cs/ArticleList/ArticleList.stories.d.ts.map +1 -1
  75. package/jsx/cs/ArticleList/ArticleList.stories.jsx +1 -1
  76. package/jsx/cs/ArticleList/ArticleList.stories.jsx.map +1 -1
  77. package/jsx/dnd/StandardDragDropList/Demo.d.ts +7 -0
  78. package/jsx/dnd/StandardDragDropList/Demo.d.ts.map +1 -0
  79. package/jsx/dnd/StandardDragDropList/Demo.jsx +158 -0
  80. package/jsx/dnd/StandardDragDropList/Demo.jsx.map +1 -0
  81. package/jsx/dnd/StandardDragDropList/GroupConfig.d.ts +10 -0
  82. package/jsx/dnd/StandardDragDropList/GroupConfig.d.ts.map +1 -0
  83. package/jsx/dnd/StandardDragDropList/GroupConfig.jsx +26 -0
  84. package/jsx/dnd/StandardDragDropList/GroupConfig.jsx.map +1 -0
  85. package/jsx/dnd/StandardDragDropList/ItemConfig.d.ts +12 -0
  86. package/jsx/dnd/StandardDragDropList/ItemConfig.d.ts.map +1 -0
  87. package/jsx/dnd/StandardDragDropList/ItemConfig.jsx +21 -0
  88. package/jsx/dnd/StandardDragDropList/ItemConfig.jsx.map +1 -0
  89. package/jsx/dnd/StandardDragDropList/Popover.d.ts +14 -0
  90. package/jsx/dnd/StandardDragDropList/Popover.d.ts.map +1 -0
  91. package/jsx/dnd/StandardDragDropList/Popover.jsx +51 -0
  92. package/jsx/dnd/StandardDragDropList/Popover.jsx.map +1 -0
  93. package/jsx/dnd/StandardDragDropList/SelectionMenu.d.ts +16 -0
  94. package/jsx/dnd/StandardDragDropList/SelectionMenu.d.ts.map +1 -0
  95. package/jsx/dnd/StandardDragDropList/SelectionMenu.jsx +104 -0
  96. package/jsx/dnd/StandardDragDropList/SelectionMenu.jsx.map +1 -0
  97. package/jsx/dnd/StandardDragDropList/StandardDragDropList.stories.d.ts +5 -0
  98. package/jsx/dnd/StandardDragDropList/StandardDragDropList.stories.d.ts.map +1 -0
  99. package/jsx/dnd/StandardDragDropList/StandardDragDropList.stories.jsx +15 -0
  100. package/jsx/dnd/StandardDragDropList/StandardDragDropList.stories.jsx.map +1 -0
  101. package/jsx/dnd/StandardDragDropList/mockData.d.ts +26 -0
  102. package/jsx/dnd/StandardDragDropList/mockData.d.ts.map +1 -0
  103. package/jsx/dnd/StandardDragDropList/mockData.js +77 -0
  104. package/jsx/dnd/StandardDragDropList/mockData.js.map +1 -0
  105. package/jsx/rte/RichTextEditor/RichTextViewer.stories.jsx +1 -1
  106. package/jsx/rte/RichTextEditor/RichTextViewer.stories.jsx.map +1 -1
  107. package/jsx/social/Email/Email.stories.d.ts +3 -1
  108. package/jsx/social/Email/Email.stories.d.ts.map +1 -1
  109. package/jsx/social/Email/Email.stories.jsx +61 -35
  110. package/jsx/social/Email/Email.stories.jsx.map +1 -1
  111. package/jsx/social/Feed/Feed.mocks.d.ts +1 -1
  112. package/jsx/social/Feed/Feed.mocks.d.ts.map +1 -1
  113. package/jsx/social/Feed/Feed.mocks.jsx.map +1 -1
  114. package/jsx/social/Feed/Feed.stories.jsx +1 -1
  115. package/jsx/social/Feed/Feed.stories.jsx.map +1 -1
  116. package/jsx/social/Feed/FeedPost.stories.d.ts.map +1 -1
  117. package/jsx/social/Feed/FeedPost.stories.jsx +7 -7
  118. package/jsx/social/Feed/FeedPost.stories.jsx.map +1 -1
  119. package/jsx/social/Feed/FeedReply.stories.d.ts +1 -1
  120. package/jsx/social/Feed/FeedReply.stories.d.ts.map +1 -1
  121. package/jsx/social/Feed/FeedReply.stories.jsx +6 -6
  122. package/jsx/social/Feed/FeedReply.stories.jsx.map +1 -1
  123. package/jsx/work/CaseView/CaseView.stories.d.ts.map +1 -1
  124. package/jsx/work/CaseView/CaseView.stories.jsx +3 -1
  125. package/jsx/work/CaseView/CaseView.stories.jsx.map +1 -1
  126. package/jsx/work/ConfigurableLayout/ConfigurableLayout.stories.d.ts.map +1 -1
  127. package/jsx/work/ConfigurableLayout/ConfigurableLayout.stories.jsx +1 -0
  128. package/jsx/work/ConfigurableLayout/ConfigurableLayout.stories.jsx.map +1 -1
  129. package/jsx/wss/AppShell/AppShell.stories.jsx +3 -3
  130. package/jsx/wss/AppShell/AppShell.stories.jsx.map +1 -1
  131. package/lib/build/FlowModeller/FlowModeller.mocks.d.ts +3 -2
  132. package/lib/build/FlowModeller/FlowModeller.mocks.d.ts.map +1 -1
  133. package/lib/build/FlowModeller/FlowModeller.mocks.js +62 -8
  134. package/lib/build/FlowModeller/FlowModeller.mocks.js.map +1 -1
  135. package/lib/build/FlowModeller/FlowModeller.stories.d.ts.map +1 -1
  136. package/lib/build/FlowModeller/FlowModeller.stories.js +89 -17
  137. package/lib/build/FlowModeller/FlowModeller.stories.js.map +1 -1
  138. package/lib/build/ObjectSelect/ObjectSelect.mocks.d.ts +23 -8
  139. package/lib/build/ObjectSelect/ObjectSelect.mocks.d.ts.map +1 -1
  140. package/lib/build/ObjectSelect/ObjectSelect.mocks.js +27 -27
  141. package/lib/build/ObjectSelect/ObjectSelect.mocks.js.map +1 -1
  142. package/lib/build/ObjectSelect/ObjectSelect.stories.d.ts.map +1 -1
  143. package/lib/build/ObjectSelect/ObjectSelect.stories.js +62 -21
  144. package/lib/build/ObjectSelect/ObjectSelect.stories.js.map +1 -1
  145. package/lib/build/PageTemplates/PageTemplates.mocks.d.ts.map +1 -1
  146. package/lib/build/PageTemplates/PageTemplates.mocks.js +17 -2
  147. package/lib/build/PageTemplates/PageTemplates.mocks.js.map +1 -1
  148. package/lib/build/Workbench/Workbench.stories.d.ts +1 -0
  149. package/lib/build/Workbench/Workbench.stories.d.ts.map +1 -1
  150. package/lib/build/Workbench/Workbench.stories.js +195 -3
  151. package/lib/build/Workbench/Workbench.stories.js.map +1 -1
  152. package/lib/condition-builder/ConditionBuilder/ConditionBuilder.mocks.d.ts +1 -1
  153. package/lib/condition-builder/ConditionBuilder/ConditionBuilder.mocks.d.ts.map +1 -1
  154. package/lib/condition-builder/ConditionBuilder/ConditionBuilder.mocks.js +3 -1
  155. package/lib/condition-builder/ConditionBuilder/ConditionBuilder.mocks.js.map +1 -1
  156. package/lib/condition-builder/ConditionBuilder/ConditionBuilder.stories.d.ts +2 -1
  157. package/lib/condition-builder/ConditionBuilder/ConditionBuilder.stories.d.ts.map +1 -1
  158. package/lib/condition-builder/ConditionBuilder/ConditionBuilder.stories.js +17 -15
  159. package/lib/condition-builder/ConditionBuilder/ConditionBuilder.stories.js.map +1 -1
  160. package/lib/condition-builder/ConditionBuilder/props.mock.d.ts.map +1 -1
  161. package/lib/condition-builder/ConditionBuilder/props.mock.js +67 -15
  162. package/lib/condition-builder/ConditionBuilder/props.mock.js.map +1 -1
  163. package/lib/condition-builder/ConditionInput/ConditionInput.stories.js +4 -1
  164. package/lib/condition-builder/ConditionInput/ConditionInput.stories.js.map +1 -1
  165. package/lib/condition-builder/PromotedFilters/PromotedFilters.mocks.d.ts.map +1 -1
  166. package/lib/condition-builder/PromotedFilters/PromotedFilters.mocks.js +12 -0
  167. package/lib/condition-builder/PromotedFilters/PromotedFilters.mocks.js.map +1 -1
  168. package/lib/condition-builder/PromotedFilters/PromotedFilters.stories.d.ts +4 -2
  169. package/lib/condition-builder/PromotedFilters/PromotedFilters.stories.d.ts.map +1 -1
  170. package/lib/condition-builder/PromotedFilters/PromotedFilters.stories.js +11 -2
  171. package/lib/condition-builder/PromotedFilters/PromotedFilters.stories.js.map +1 -1
  172. package/lib/condition-builder/PromotedFilters/PromotedFilters.styles.d.ts +7 -0
  173. package/lib/condition-builder/PromotedFilters/PromotedFilters.styles.d.ts.map +1 -1
  174. package/lib/condition-builder/PromotedFilters/PromotedFilters.styles.js +29 -2
  175. package/lib/condition-builder/PromotedFilters/PromotedFilters.styles.js.map +1 -1
  176. package/lib/core/AppShell/AppShell.mocks.d.ts +1 -1
  177. package/lib/core/AppShell/AppShell.mocks.js +5 -5
  178. package/lib/core/AppShell/AppShell.mocks.js.map +1 -1
  179. package/lib/core/AppShell/AppShell.stories.d.ts.map +1 -1
  180. package/lib/core/AppShell/AppShell.stories.js +26 -2
  181. package/lib/core/AppShell/AppShell.stories.js.map +1 -1
  182. package/lib/core/Currency/Currency.stories.d.ts.map +1 -1
  183. package/lib/core/Currency/Currency.stories.js +3 -2
  184. package/lib/core/Currency/Currency.stories.js.map +1 -1
  185. package/lib/core/DateTime/DateTime.stories.d.ts.map +1 -1
  186. package/lib/core/DateTime/DateTime.stories.js +74 -9
  187. package/lib/core/DateTime/DateTime.stories.js.map +1 -1
  188. package/lib/core/Form/Form.mocks.d.ts.map +1 -1
  189. package/lib/core/Form/Form.mocks.js +1 -1
  190. package/lib/core/Form/Form.mocks.js.map +1 -1
  191. package/lib/core/Input/Input.stories.d.ts +1 -0
  192. package/lib/core/Input/Input.stories.d.ts.map +1 -1
  193. package/lib/core/Input/Input.stories.js +70 -1
  194. package/lib/core/Input/Input.stories.js.map +1 -1
  195. package/lib/core/ListToolbar/ListToolbar.stories.d.ts +5 -1
  196. package/lib/core/ListToolbar/ListToolbar.stories.d.ts.map +1 -1
  197. package/lib/core/ListToolbar/ListToolbar.stories.js +9 -3
  198. package/lib/core/ListToolbar/ListToolbar.stories.js.map +1 -1
  199. package/lib/core/Menu/Menu.stories.d.ts.map +1 -1
  200. package/lib/core/Menu/Menu.stories.js +4 -3
  201. package/lib/core/Menu/Menu.stories.js.map +1 -1
  202. package/lib/core/Number/Number.stories.js +3 -3
  203. package/lib/core/Number/Number.stories.js.map +1 -1
  204. package/lib/cs/ArticleList/ArticleList.stories.d.ts.map +1 -1
  205. package/lib/cs/ArticleList/ArticleList.stories.js +1 -1
  206. package/lib/cs/ArticleList/ArticleList.stories.js.map +1 -1
  207. package/lib/dnd/StandardDragDropList/Demo.d.ts +7 -0
  208. package/lib/dnd/StandardDragDropList/Demo.d.ts.map +1 -0
  209. package/lib/dnd/StandardDragDropList/Demo.js +151 -0
  210. package/lib/dnd/StandardDragDropList/Demo.js.map +1 -0
  211. package/lib/dnd/StandardDragDropList/GroupConfig.d.ts +10 -0
  212. package/lib/dnd/StandardDragDropList/GroupConfig.d.ts.map +1 -0
  213. package/lib/dnd/StandardDragDropList/GroupConfig.js +18 -0
  214. package/lib/dnd/StandardDragDropList/GroupConfig.js.map +1 -0
  215. package/lib/dnd/StandardDragDropList/ItemConfig.d.ts +12 -0
  216. package/lib/dnd/StandardDragDropList/ItemConfig.d.ts.map +1 -0
  217. package/lib/dnd/StandardDragDropList/ItemConfig.js +20 -0
  218. package/lib/dnd/StandardDragDropList/ItemConfig.js.map +1 -0
  219. package/lib/dnd/StandardDragDropList/Popover.d.ts +14 -0
  220. package/lib/dnd/StandardDragDropList/Popover.d.ts.map +1 -0
  221. package/lib/dnd/StandardDragDropList/Popover.js +33 -0
  222. package/lib/dnd/StandardDragDropList/Popover.js.map +1 -0
  223. package/lib/dnd/StandardDragDropList/SelectionMenu.d.ts +16 -0
  224. package/lib/dnd/StandardDragDropList/SelectionMenu.d.ts.map +1 -0
  225. package/lib/dnd/StandardDragDropList/SelectionMenu.js +100 -0
  226. package/lib/dnd/StandardDragDropList/SelectionMenu.js.map +1 -0
  227. package/lib/dnd/StandardDragDropList/StandardDragDropList.stories.d.ts +5 -0
  228. package/lib/dnd/StandardDragDropList/StandardDragDropList.stories.d.ts.map +1 -0
  229. package/lib/dnd/StandardDragDropList/StandardDragDropList.stories.js +13 -0
  230. package/lib/dnd/StandardDragDropList/StandardDragDropList.stories.js.map +1 -0
  231. package/lib/dnd/StandardDragDropList/mockData.d.ts +26 -0
  232. package/lib/dnd/StandardDragDropList/mockData.d.ts.map +1 -0
  233. package/lib/dnd/StandardDragDropList/mockData.js +78 -0
  234. package/lib/dnd/StandardDragDropList/mockData.js.map +1 -0
  235. package/lib/rte/RichTextEditor/RichTextViewer.stories.js +1 -1
  236. package/lib/rte/RichTextEditor/RichTextViewer.stories.js.map +1 -1
  237. package/lib/social/Email/Email.stories.d.ts +3 -1
  238. package/lib/social/Email/Email.stories.d.ts.map +1 -1
  239. package/lib/social/Email/Email.stories.js +73 -47
  240. package/lib/social/Email/Email.stories.js.map +1 -1
  241. package/lib/social/Feed/Feed.mocks.d.ts +1 -1
  242. package/lib/social/Feed/Feed.mocks.d.ts.map +1 -1
  243. package/lib/social/Feed/Feed.mocks.js.map +1 -1
  244. package/lib/social/Feed/Feed.stories.js +1 -1
  245. package/lib/social/Feed/Feed.stories.js.map +1 -1
  246. package/lib/social/Feed/FeedPost.stories.d.ts.map +1 -1
  247. package/lib/social/Feed/FeedPost.stories.js +7 -7
  248. package/lib/social/Feed/FeedPost.stories.js.map +1 -1
  249. package/lib/social/Feed/FeedReply.stories.d.ts +1 -1
  250. package/lib/social/Feed/FeedReply.stories.d.ts.map +1 -1
  251. package/lib/social/Feed/FeedReply.stories.js +6 -6
  252. package/lib/social/Feed/FeedReply.stories.js.map +1 -1
  253. package/lib/work/CaseView/CaseView.stories.d.ts.map +1 -1
  254. package/lib/work/CaseView/CaseView.stories.js +3 -1
  255. package/lib/work/CaseView/CaseView.stories.js.map +1 -1
  256. package/lib/work/ConfigurableLayout/ConfigurableLayout.stories.d.ts.map +1 -1
  257. package/lib/work/ConfigurableLayout/ConfigurableLayout.stories.js +1 -0
  258. package/lib/work/ConfigurableLayout/ConfigurableLayout.stories.js.map +1 -1
  259. package/lib/wss/AppShell/AppShell.stories.js +3 -3
  260. package/lib/wss/AppShell/AppShell.stories.js.map +1 -1
  261. package/package.json +9 -9
@@ -0,0 +1,77 @@
1
+ import { createUID } from '@pega/cosmos-react-core';
2
+ const getRandomInt = (min, max) => {
3
+ min = Math.ceil(min);
4
+ max = Math.floor(max);
5
+ return Math.floor(Math.random() * (max - min + 1)) + min;
6
+ };
7
+ const fieldTypes = [
8
+ 'Text (single line)',
9
+ 'Text (paragraph)',
10
+ 'Integer',
11
+ 'Decimal',
12
+ 'Currency',
13
+ 'Boolean',
14
+ 'Date & time',
15
+ 'Date only',
16
+ 'Time only',
17
+ 'Email',
18
+ 'Phone',
19
+ 'URL',
20
+ 'Picklist'
21
+ ];
22
+ export const contentTypes = [...fieldTypes, 'View', 'Group'];
23
+ export const mockFields = Array.from({ length: 500 }, (_, i) => {
24
+ return {
25
+ id: createUID(),
26
+ label: `Field-${i + 1}`,
27
+ type: 'Field',
28
+ subType: fieldTypes[getRandomInt(0, fieldTypes.length - 1)]
29
+ };
30
+ });
31
+ export const mockViews = Array.from({ length: 50 }, (_, i) => {
32
+ return {
33
+ id: createUID(),
34
+ label: `View-${i + 1}`,
35
+ type: 'View'
36
+ };
37
+ });
38
+ export const mockGroups = Array.from({ length: 3 }, (_, i) => {
39
+ return {
40
+ id: createUID(),
41
+ label: `Group-${i + 1}`,
42
+ type: 'Group',
43
+ items: i === 0 ? mockFields.slice(-3) : mockFields.slice((i + 1) * -3, i * -3)
44
+ };
45
+ });
46
+ export const mockQuery = ({ id, filter, type, subType, limit = 100, offset = 0, delay = 0 } = {}) => {
47
+ return new Promise(resolve => {
48
+ setTimeout(() => {
49
+ let contentItems = [];
50
+ if (id) {
51
+ resolve([...mockFields, ...mockViews, ...mockGroups].filter(item => {
52
+ return Array.isArray(id) ? id.includes(item.id) : item.id === id;
53
+ }));
54
+ return;
55
+ }
56
+ if (type) {
57
+ if (type === 'Field') {
58
+ contentItems = subType ? mockFields.filter(f => f.subType === subType) : mockFields;
59
+ }
60
+ else if (type === 'View') {
61
+ contentItems = mockViews;
62
+ }
63
+ else if (type === 'Group') {
64
+ contentItems = mockGroups;
65
+ }
66
+ }
67
+ else {
68
+ contentItems = [...mockFields, ...mockViews, ...mockGroups];
69
+ }
70
+ if (filter) {
71
+ contentItems = contentItems.filter(item => item.label.includes(filter));
72
+ }
73
+ resolve(contentItems.slice(offset, limit));
74
+ }, delay);
75
+ });
76
+ };
77
+ //# sourceMappingURL=mockData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockData.js","sourceRoot":"","sources":["../../../src/dnd/StandardDragDropList/mockData.ts"],"names":[],"mappings":"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","sourcesContent":["import { createUID } from '@pega/cosmos-react-core';\n\nexport type ContentType = 'Field' | 'View' | 'Group';\nexport type FieldType = typeof fieldTypes[number];\n\n// A simple mock of an object type before it is transformed to a ContentItem\nexport interface MockRawItem {\n id: string;\n label: string;\n type: ContentType;\n subType?: FieldType;\n items?: MockRawItem[];\n}\n\n// Used as the arg type to the simulated query function.\nexport interface MockQueryParams {\n id?: MockRawItem['id'] | MockRawItem['id'][];\n filter?: string;\n type?: ContentType;\n subType?: FieldType;\n limit?: number;\n offset?: number;\n delay?: number;\n}\n\nconst getRandomInt = (min: number, max: number) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\n\nconst fieldTypes = [\n 'Text (single line)',\n 'Text (paragraph)',\n 'Integer',\n 'Decimal',\n 'Currency',\n 'Boolean',\n 'Date & time',\n 'Date only',\n 'Time only',\n 'Email',\n 'Phone',\n 'URL',\n 'Picklist'\n] as const;\n\nexport const contentTypes = [...fieldTypes, 'View', 'Group'] as const;\n\nexport const mockFields: MockRawItem[] = Array.from({ length: 500 }, (_, i) => {\n return {\n id: createUID(),\n label: `Field-${i + 1}`,\n type: 'Field',\n subType: fieldTypes[getRandomInt(0, fieldTypes.length - 1)]\n };\n});\n\nexport const mockViews: MockRawItem[] = Array.from({ length: 50 }, (_, i) => {\n return {\n id: createUID(),\n label: `View-${i + 1}`,\n type: 'View'\n };\n});\n\nexport const mockGroups: MockRawItem[] = Array.from({ length: 3 }, (_, i) => {\n return {\n id: createUID(),\n label: `Group-${i + 1}`,\n type: 'Group',\n items: i === 0 ? mockFields.slice(-3) : mockFields.slice((i + 1) * -3, i * -3)\n };\n});\n\n// Simulated query functionality to assist with loading states and fetching specifc content item types.\nexport const mockQuery = ({\n id,\n filter,\n type,\n subType,\n limit = 100,\n offset = 0,\n delay = 0\n}: MockQueryParams = {}): Promise<MockRawItem[]> => {\n return new Promise(resolve => {\n setTimeout(() => {\n let contentItems: MockRawItem[] = [];\n\n if (id) {\n resolve(\n [...mockFields, ...mockViews, ...mockGroups].filter(item => {\n return Array.isArray(id) ? id.includes(item.id) : item.id === id;\n })\n );\n return;\n }\n\n if (type) {\n if (type === 'Field') {\n contentItems = subType ? mockFields.filter(f => f.subType === subType) : mockFields;\n } else if (type === 'View') {\n contentItems = mockViews;\n } else if (type === 'Group') {\n contentItems = mockGroups;\n }\n } else {\n contentItems = [...mockFields, ...mockViews, ...mockGroups];\n }\n\n if (filter) {\n contentItems = contentItems.filter(item => item.label.includes(filter));\n }\n\n resolve(contentItems.slice(offset, limit));\n }, delay);\n });\n};\n"]}
@@ -83,7 +83,7 @@ export const RichTextViewerMDDemo = () => {
83
83
  markdown: `@${item.id}:${item.primary}:user:`,
84
84
  text: item.primary
85
85
  };
86
- }} menu={users.length ? { items: users } : undefined} markdownOnly defaultValue={'# Try writing some of your own markdown and see how it renders!\n\nYou can interact with mentions such as @deans:Seth DeAngelo:user:\n\nThere is built in support for #tags: as well!\n\nComponent renderings can also be conditionally overwritten: [Link](https://www.google.com) -- [Link with preview](https://www.pega.com)'} onChange={() => setContent(editorRef.current?.getPlainText() || '')}/>
86
+ }} menu={users.length ? { items: users } : undefined} markdownOnly defaultValue={'# Try writing some of your own markdown and see how it renders!\n\nYou can interact with mentions such as @[deans]:[Seth DeAngelo]:[user]:\n\nThere is built in support for #tags: as well!\n\nComponent renderings can also be conditionally overwritten: [Link](https://www.google.com) -- [Link with preview](https://www.pega.com)'} onChange={() => setContent(editorRef.current?.getPlainText() || '')}/>
87
87
 
88
88
  <RichTextViewer content={content} type='markdown' interactionRenderers={[MentionButtonConfig, HashtagButtonConfig]} markdownMap={{
89
89
  link: (linkToken) => {
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextViewer.stories.jsx","sourceRoot":"","sources":["../../../src/rte/RichTextEditor/RichTextViewer.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useRef, useState } from 'react';\n\nimport { Flex, Link, MenuItemProps } from '@pega/cosmos-react-core';\nimport { HashtagButtonConfig, MentionButtonConfig } from '@pega/cosmos-react-social';\nimport {\n RichTextViewer,\n Editor as RichTextEditor,\n EditorState as RichTextEditorState,\n TokenMap\n} from '@pega/cosmos-react-rte';\n\nimport { demoUsers } from './RichTextEditor.mocks';\n\nexport default {\n title: 'RTE/RichTextViewer',\n component: RichTextViewer\n} as Meta;\n\nexport const RichTextViewerDemo: Story = () => {\n const editorRef = useRef<RichTextEditorState>(null);\n const [content, setContent] = useState('[]');\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RichTextEditor\n ref={editorRef}\n toolbar={[\n 'inline-styling',\n 'headers',\n 'tables',\n 'links',\n 'lists',\n 'cut-copy-paste',\n 'indentation'\n ]}\n onChange={() => setContent(editorRef.current?.getRichText() || '')}\n />\n\n <RichTextViewer content={content} type='richtext' />\n </Flex>\n );\n};\n\nexport const RichTextViewerHTMLDemo: Story = () => {\n const editorRef = useRef<RichTextEditorState>(null);\n const [content, setContent] = useState('');\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RichTextEditor\n ref={editorRef}\n toolbar={[\n 'inline-styling',\n 'headers',\n 'tables',\n 'links',\n 'lists',\n 'cut-copy-paste',\n 'indentation'\n ]}\n onChange={() => setContent(editorRef.current?.getHtml() || '')}\n />\n\n <RichTextViewer content={content} type='html' />\n </Flex>\n );\n};\n\nexport const RichTextViewerHTMLOverflowDemo: Story = () => {\n const editorRef = useRef<RichTextEditorState>(null);\n const [content, setContent] = useState(\n () => \"<p style='background-color: green; width: 110%; height: 100px;'>hi</p>\"\n );\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RichTextEditor\n ref={editorRef}\n toolbar={[\n 'inline-styling',\n 'headers',\n 'tables',\n 'links',\n 'lists',\n 'cut-copy-paste',\n 'indentation'\n ]}\n defaultValue={content}\n onChange={() => setContent(editorRef.current?.getHtml() || '')}\n />\n\n <RichTextViewer content={content} type='html' />\n </Flex>\n );\n};\n\nexport const RichTextViewerMDDemo: Story = () => {\n const LinkComponent = ({ token }: { token: TokenMap['link'] }) => {\n return (\n <Link href={token.href} previewable>\n {token.text}\n </Link>\n );\n };\n\n const editorRef = useRef<RichTextEditorState>(null);\n const [content, setContent] = useState('');\n const [users, setUsers] = useState<MenuItemProps[]>(demoUsers);\n\n const searchUsers = (event: { search: string; trigger: string }) => {\n if (event.trigger === '@') {\n setUsers(\n demoUsers.filter(user => {\n return user.primary.toLowerCase().includes(event.search.toLowerCase());\n })\n );\n }\n };\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RichTextEditor\n ref={editorRef}\n searchTriggers={[{ trigger: '@', regex: '[a-zA-Z]*(?: [a-zA-Z]*)?' }]}\n onSearch={searchUsers}\n getSearchItemReplacement={(id: string) => {\n const item = demoUsers.find(({ id: itemId }) => itemId === id);\n\n if (!item) return undefined;\n\n return {\n markdown: `@${item.id}:${item.primary}:user:`,\n text: item.primary\n };\n }}\n menu={users.length ? { items: users } : undefined}\n markdownOnly\n defaultValue={\n '# Try writing some of your own markdown and see how it renders!\\n\\nYou can interact with mentions such as @deans:Seth DeAngelo:user:\\n\\nThere is built in support for #tags: as well!\\n\\nComponent renderings can also be conditionally overwritten: [Link](https://www.google.com) -- [Link with preview](https://www.pega.com)'\n }\n onChange={() => setContent(editorRef.current?.getPlainText() || '')}\n />\n\n <RichTextViewer\n content={content}\n type='markdown'\n interactionRenderers={[MentionButtonConfig, HashtagButtonConfig]}\n markdownMap={{\n link: (linkToken: TokenMap['link']) => {\n if (linkToken.href?.includes('www.pega.com')) return LinkComponent;\n }\n }}\n />\n </Flex>\n );\n};\n"]}
1
+ {"version":3,"file":"RichTextViewer.stories.jsx","sourceRoot":"","sources":["../../../src/rte/RichTextEditor/RichTextViewer.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Meta, Story } from '@storybook/react';\nimport { useRef, useState } from 'react';\n\nimport { Flex, Link, MenuItemProps } from '@pega/cosmos-react-core';\nimport { HashtagButtonConfig, MentionButtonConfig } from '@pega/cosmos-react-social';\nimport {\n RichTextViewer,\n Editor as RichTextEditor,\n EditorState as RichTextEditorState,\n TokenMap\n} from '@pega/cosmos-react-rte';\n\nimport { demoUsers } from './RichTextEditor.mocks';\n\nexport default {\n title: 'RTE/RichTextViewer',\n component: RichTextViewer\n} as Meta;\n\nexport const RichTextViewerDemo: Story = () => {\n const editorRef = useRef<RichTextEditorState>(null);\n const [content, setContent] = useState('[]');\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RichTextEditor\n ref={editorRef}\n toolbar={[\n 'inline-styling',\n 'headers',\n 'tables',\n 'links',\n 'lists',\n 'cut-copy-paste',\n 'indentation'\n ]}\n onChange={() => setContent(editorRef.current?.getRichText() || '')}\n />\n\n <RichTextViewer content={content} type='richtext' />\n </Flex>\n );\n};\n\nexport const RichTextViewerHTMLDemo: Story = () => {\n const editorRef = useRef<RichTextEditorState>(null);\n const [content, setContent] = useState('');\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RichTextEditor\n ref={editorRef}\n toolbar={[\n 'inline-styling',\n 'headers',\n 'tables',\n 'links',\n 'lists',\n 'cut-copy-paste',\n 'indentation'\n ]}\n onChange={() => setContent(editorRef.current?.getHtml() || '')}\n />\n\n <RichTextViewer content={content} type='html' />\n </Flex>\n );\n};\n\nexport const RichTextViewerHTMLOverflowDemo: Story = () => {\n const editorRef = useRef<RichTextEditorState>(null);\n const [content, setContent] = useState(\n () => \"<p style='background-color: green; width: 110%; height: 100px;'>hi</p>\"\n );\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RichTextEditor\n ref={editorRef}\n toolbar={[\n 'inline-styling',\n 'headers',\n 'tables',\n 'links',\n 'lists',\n 'cut-copy-paste',\n 'indentation'\n ]}\n defaultValue={content}\n onChange={() => setContent(editorRef.current?.getHtml() || '')}\n />\n\n <RichTextViewer content={content} type='html' />\n </Flex>\n );\n};\n\nexport const RichTextViewerMDDemo: Story = () => {\n const LinkComponent = ({ token }: { token: TokenMap['link'] }) => {\n return (\n <Link href={token.href} previewable>\n {token.text}\n </Link>\n );\n };\n\n const editorRef = useRef<RichTextEditorState>(null);\n const [content, setContent] = useState('');\n const [users, setUsers] = useState<MenuItemProps[]>(demoUsers);\n\n const searchUsers = (event: { search: string; trigger: string }) => {\n if (event.trigger === '@') {\n setUsers(\n demoUsers.filter(user => {\n return user.primary.toLowerCase().includes(event.search.toLowerCase());\n })\n );\n }\n };\n\n return (\n <Flex container={{ direction: 'column', gap: 2 }}>\n <RichTextEditor\n ref={editorRef}\n searchTriggers={[{ trigger: '@', regex: '[a-zA-Z]*(?: [a-zA-Z]*)?' }]}\n onSearch={searchUsers}\n getSearchItemReplacement={(id: string) => {\n const item = demoUsers.find(({ id: itemId }) => itemId === id);\n\n if (!item) return undefined;\n\n return {\n markdown: `@${item.id}:${item.primary}:user:`,\n text: item.primary\n };\n }}\n menu={users.length ? { items: users } : undefined}\n markdownOnly\n defaultValue={\n '# Try writing some of your own markdown and see how it renders!\\n\\nYou can interact with mentions such as @[deans]:[Seth DeAngelo]:[user]:\\n\\nThere is built in support for #tags: as well!\\n\\nComponent renderings can also be conditionally overwritten: [Link](https://www.google.com) -- [Link with preview](https://www.pega.com)'\n }\n onChange={() => setContent(editorRef.current?.getPlainText() || '')}\n />\n\n <RichTextViewer\n content={content}\n type='markdown'\n interactionRenderers={[MentionButtonConfig, HashtagButtonConfig]}\n markdownMap={{\n link: (linkToken: TokenMap['link']) => {\n if (linkToken.href?.includes('www.pega.com')) return LinkComponent;\n }\n }}\n />\n </Flex>\n );\n};\n"]}
@@ -1,3 +1,4 @@
1
+ import { MouseEvent } from 'react';
1
2
  import { Meta, Story } from '@storybook/react';
2
3
  import { EmailSummaryListProps } from '@pega/cosmos-react-social';
3
4
  declare const _default: Meta<import("@storybook/react").Args>;
@@ -8,6 +9,7 @@ interface EmailContentDemo {
8
9
  export declare const Email: Story<EmailContentDemo>;
9
10
  interface ViewAnalysisProps {
10
11
  enableContextMenu?: boolean;
12
+ onContextMenu?: (e: MouseEvent) => void;
11
13
  }
12
14
  export declare const ViewAnalysis: Story<ViewAnalysisProps>;
13
15
  interface EmailEntitiesDemoProps {
@@ -15,7 +17,7 @@ interface EmailEntitiesDemoProps {
15
17
  enableContextMenu?: boolean;
16
18
  }
17
19
  export declare const EmailEntities: Story<EmailEntitiesDemoProps>;
18
- export declare const emailConversation: Story;
20
+ export declare const EmailConversationDemo: Story;
19
21
  export declare const EmailComposerDemo: Story;
20
22
  interface EmailDemoProps {
21
23
  autoCollapse?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Email.stories.d.ts","sourceRoot":"","sources":["../../../src/social/Email/Email.stories.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAuB/C,OAAO,EAaL,qBAAqB,EAEtB,MAAM,2BAA2B,CAAC;;AA4CnC,wBAGU;AAaV,UAAU,gBAAgB;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,gBAAgB,CA6CzC,CAAC;AA4BF,UAAU,iBAAiB;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAiEjD,CAAC;AAoBF,UAAU,sBAAsB;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,sBAAsB,CAkHvD,CAAC;AAuBF,eAAO,MAAM,iBAAiB,EAAE,KA2C/B,CAAC;AAaF,eAAO,MAAM,iBAAiB,EAAE,KA+I/B,CAAC;AAYF,UAAU,cAAc;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,cAAc,CAwa3C,CAAC;AA+CF,eAAO,MAAM,oBAAoB,EAAE,KA+BlC,CAAC;AAYF,UAAU,0BAA0B;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACnD,KAAK,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,0BAA0B,CA6FlE,CAAC;AA8BF,eAAO,MAAM,gBAAgB,EAAE,KA6G9B,CAAC"}
1
+ {"version":3,"file":"Email.stories.d.ts","sourceRoot":"","sources":["../../../src/social/Email/Email.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAuB/C,OAAO,EAaL,qBAAqB,EAEtB,MAAM,2BAA2B,CAAC;;AA6CnC,wBAGU;AAaV,UAAU,gBAAgB;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,gBAAgB,CA6CzC,CAAC;AA4BF,UAAU,iBAAiB;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAgFjD,CAAC;AAoBF,UAAU,sBAAsB;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,sBAAsB,CAiIvD,CAAC;AAuBF,eAAO,MAAM,qBAAqB,EAAE,KA2CnC,CAAC;AAaF,eAAO,MAAM,iBAAiB,EAAE,KA+I/B,CAAC;AAYF,UAAU,cAAc;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,cAAc,CAwa3C,CAAC;AA+CF,eAAO,MAAM,oBAAoB,EAAE,KA+BlC,CAAC;AAYF,UAAU,0BAA0B;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACnD,KAAK,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,0BAA0B,CA6FlE,CAAC;AA8BF,eAAO,MAAM,gBAAgB,EAAE,KA6G9B,CAAC"}
@@ -65,6 +65,8 @@ Email.argTypes = {
65
65
  forwardedContent: { control: { type: 'text' } }
66
66
  };
67
67
  export const ViewAnalysis = (args) => {
68
+ const itemCounter = useRef(3);
69
+ const imperativeHandle = useRef(null);
68
70
  const headerProps = {
69
71
  icon: 'list-number',
70
72
  text: 'Entities'
@@ -79,16 +81,15 @@ export const ViewAnalysis = (args) => {
79
81
  </Flex>)
80
82
  };
81
83
  });
82
- return (<StyledViewAnalysis>
83
- <Grid container={{ rowGap: 2 }}>
84
- <EntityList header={headerProps} content={EntityListMockData} contextMenu={args.enableContextMenu
85
- ? {
86
- heading: 'Copy to',
87
- items: [
84
+ const handleRightClick = () => {
85
+ itemCounter.current += 1;
86
+ setTimeout(() => {
87
+ imperativeHandle.current?.setContextMenuItems(args.enableContextMenu
88
+ ? [
88
89
  {
89
90
  id: 'item_0',
90
91
  primary: 'Field 1',
91
- selected: false
92
+ selected: itemCounter.current % 2 === 0
92
93
  },
93
94
  {
94
95
  id: 'item_1',
@@ -99,11 +100,23 @@ export const ViewAnalysis = (args) => {
99
100
  id: 'item_2',
100
101
  primary: 'Field 3',
101
102
  selected: true
103
+ },
104
+ {
105
+ id: `item_${itemCounter.current}`,
106
+ primary: `Field ${itemCounter.current + 1}`,
107
+ selected: true
102
108
  }
103
- ],
104
- onItemClick: action('On Copy')
105
- }
106
- : undefined}/>
109
+ ]
110
+ : []);
111
+ }, 3000);
112
+ };
113
+ return (<StyledViewAnalysis>
114
+ <Grid container={{ rowGap: 2 }}>
115
+ <EntityList header={headerProps} content={EntityListMockData} contextMenu={{
116
+ onItemClick: action('onItemClick'),
117
+ onContextMenu: args.onContextMenu || handleRightClick,
118
+ handle: imperativeHandle
119
+ }}/>
107
120
 
108
121
  <Card>
109
122
  <CardHeader container={{ alignItems: 'center', gap: 1 }}>
@@ -127,6 +140,37 @@ ViewAnalysis.argTypes = {
127
140
  };
128
141
  export const EmailEntities = (args) => {
129
142
  const nestedEntities = ['Place: Nagercoil, Hyderabad', 'Location: Nagercoil'];
143
+ const emailImperativeHandle = useRef(null);
144
+ const itemCounter = useRef(3);
145
+ const handleRightClick = (id) => {
146
+ itemCounter.current += 1;
147
+ setTimeout(() => {
148
+ emailImperativeHandle.current?.setContextMenuItems(args.enableContextMenu
149
+ ? [
150
+ {
151
+ id: 'item_0',
152
+ primary: 'Field 1',
153
+ selected: itemCounter.current % 2 === 0
154
+ },
155
+ {
156
+ id: 'item_1',
157
+ primary: 'Field 2',
158
+ selected: true
159
+ },
160
+ {
161
+ id: `item_2 ${id}`,
162
+ primary: 'Field 3',
163
+ selected: true
164
+ },
165
+ {
166
+ id: `item_${itemCounter.current}`,
167
+ primary: `Field ${itemCounter.current + 1}`,
168
+ selected: true
169
+ }
170
+ ]
171
+ : []);
172
+ }, 3000);
173
+ };
130
174
  return (<Card>
131
175
  <StyledEmailCardContent>
132
176
  <EmailComponent id={createUID()} timeStamp='2021-01-05T09:12' from={mockEmails['Laura Stevens']} cc={[mockEmails['Adam Gillchrist'], mockEmails['John Paul']]} bcc={[mockEmails['Anton, Randy'], mockEmails['Hugh Phillips']]} to={[mockEmails['Sara Davis'], mockEmails['John Brown'], mockEmails['Joe Stevens']]} body='<div>Hi,<br/><p>I am one of the customer of Indian Overseas Bank, <b><i>Nagercoil</i></b> branch, with code <b><a href="www.google.com"><i>3967</i></a></b>. I have a saving bank account here. My account number is <i>6785420965476</i>.</p><br/><p>I have been given a debit cum ATM card from this bank and the same has been lost when I was traveling from Nagercoil to Trichy by Bus on Jan 04, 2021. I remember that my ATM card number was 1920 6746 8653 1256.</p><br/>I hereby request you to block my debit card immediately to prevent misuse of the same by some others. Also I request you to give me an new debit card as early as possible.<br/><br/>Regards,<br/>Laura Stevens</div>' entityHighlightMapping={args.enableEntityHighlighting
@@ -188,31 +232,13 @@ export const EmailEntities = (args) => {
188
232
  description: 'Date'
189
233
  }
190
234
  ]
191
- : undefined} contextMenu={args.enableContextMenu
192
- ? {
193
- heading: 'Copy to',
194
- items: [
195
- {
196
- id: 'item_0',
197
- primary: 'Field 1',
198
- selected: false
199
- },
200
- {
201
- id: 'item_1',
202
- primary: 'Field 2',
203
- selected: true
204
- },
205
- {
206
- id: 'item_2',
207
- primary: 'Field 3',
208
- selected: true
209
- }
210
- ],
211
- onItemClick: action('On Copy')
212
- }
213
235
  : undefined} subject='I lost my debit card' onReply={action('On reply')} onReplyAll={action('On reply all')} onForward={action('On forward')} onSuggestionClick={action('On Suggested reply clicked')} sentiment={{
214
236
  variant: 'neutral'
215
- }} actions={emailActions} suggestions={mockSuggestedReplies}/>
237
+ }} actions={emailActions} suggestions={mockSuggestedReplies} contextMenu={{
238
+ onItemClick: action('onItemClick'),
239
+ onContextMenu: handleRightClick,
240
+ handle: emailImperativeHandle
241
+ }}/>
216
242
  </StyledEmailCardContent>
217
243
  </Card>);
218
244
  };
@@ -224,7 +250,7 @@ EmailEntities.argTypes = {
224
250
  enableEntityHighlighting: { control: { type: 'boolean' } },
225
251
  enableContextMenu: { control: { type: 'boolean' } }
226
252
  };
227
- export const emailConversation = () => {
253
+ export const EmailConversationDemo = () => {
228
254
  const emailArr = [
229
255
  {
230
256
  id: 'item_0',