@pega/cosmos-react-demos 2.1.4 → 3.0.0-dev.1.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 (90) hide show
  1. package/jsx/build/AppHeader/AppHeader.stories.d.ts +2 -1
  2. package/jsx/build/AppHeader/AppHeader.stories.d.ts.map +1 -1
  3. package/jsx/build/AppHeader/AppHeader.stories.jsx +46 -13
  4. package/jsx/build/AppHeader/AppHeader.stories.jsx.map +1 -1
  5. package/jsx/build/AppShell/AppShell.stories.d.ts +2 -1
  6. package/jsx/build/AppShell/AppShell.stories.d.ts.map +1 -1
  7. package/jsx/build/AppShell/AppShell.stories.jsx +46 -13
  8. package/jsx/build/AppShell/AppShell.stories.jsx.map +1 -1
  9. package/jsx/build/ItemLibrary/LibraryPicker.mocks.d.ts +7 -0
  10. package/jsx/build/ItemLibrary/LibraryPicker.mocks.d.ts.map +1 -0
  11. package/jsx/build/ItemLibrary/LibraryPicker.mocks.js +50 -0
  12. package/jsx/build/ItemLibrary/LibraryPicker.mocks.js.map +1 -0
  13. package/jsx/build/ItemLibrary/LibraryPicker.stories.d.ts +9 -0
  14. package/jsx/build/ItemLibrary/LibraryPicker.stories.d.ts.map +1 -0
  15. package/jsx/build/ItemLibrary/LibraryPicker.stories.jsx +45 -0
  16. package/jsx/build/ItemLibrary/LibraryPicker.stories.jsx.map +1 -0
  17. package/jsx/build/LifeCycle/LifeCycle.mocks.js +1 -1
  18. package/jsx/build/LifeCycle/LifeCycle.mocks.js.map +1 -1
  19. package/jsx/build/LifeCycle/LifeCycle.stories.d.ts.map +1 -1
  20. package/jsx/build/LifeCycle/LifeCycle.stories.jsx +52 -34
  21. package/jsx/build/LifeCycle/LifeCycle.stories.jsx.map +1 -1
  22. package/jsx/core/Avatar/Avatar.stories.d.ts.map +1 -1
  23. package/jsx/core/Avatar/Avatar.stories.jsx +5 -3
  24. package/jsx/core/Avatar/Avatar.stories.jsx.map +1 -1
  25. package/jsx/cs/CSCaseView/CSAppShell.stories.jsx +1 -1
  26. package/jsx/cs/CSCaseView/CSAppShell.stories.jsx.map +1 -1
  27. package/jsx/cs/IntelligentGuidance/IntelligentGuidance.stories.d.ts.map +1 -1
  28. package/jsx/cs/IntelligentGuidance/IntelligentGuidance.stories.jsx +12 -10
  29. package/jsx/cs/IntelligentGuidance/IntelligentGuidance.stories.jsx.map +1 -1
  30. package/jsx/cs/TaskManager/TaskManager.mocks.d.ts +1 -2
  31. package/jsx/cs/TaskManager/TaskManager.mocks.d.ts.map +1 -1
  32. package/jsx/cs/TaskManager/TaskManager.mocks.js +5 -10
  33. package/jsx/cs/TaskManager/TaskManager.mocks.js.map +1 -1
  34. package/jsx/cs/TaskManager/TaskManager.stories.d.ts +8 -3
  35. package/jsx/cs/TaskManager/TaskManager.stories.d.ts.map +1 -1
  36. package/jsx/cs/TaskManager/TaskManager.stories.jsx +164 -132
  37. package/jsx/cs/TaskManager/TaskManager.stories.jsx.map +1 -1
  38. package/jsx/social/Email/Email.mocks.d.ts +1 -2
  39. package/jsx/social/Email/Email.mocks.d.ts.map +1 -1
  40. package/jsx/social/Email/{Email.mocks.jsx → Email.mocks.js} +2 -3
  41. package/jsx/social/Email/Email.mocks.js.map +1 -0
  42. package/jsx/social/Email/Email.stories.d.ts.map +1 -1
  43. package/jsx/social/Email/Email.stories.jsx +7 -8
  44. package/jsx/social/Email/Email.stories.jsx.map +1 -1
  45. package/lib/build/AppHeader/AppHeader.stories.d.ts +2 -1
  46. package/lib/build/AppHeader/AppHeader.stories.d.ts.map +1 -1
  47. package/lib/build/AppHeader/AppHeader.stories.js +46 -13
  48. package/lib/build/AppHeader/AppHeader.stories.js.map +1 -1
  49. package/lib/build/AppShell/AppShell.stories.d.ts +2 -1
  50. package/lib/build/AppShell/AppShell.stories.d.ts.map +1 -1
  51. package/lib/build/AppShell/AppShell.stories.js +46 -13
  52. package/lib/build/AppShell/AppShell.stories.js.map +1 -1
  53. package/lib/build/ItemLibrary/LibraryPicker.mocks.d.ts +7 -0
  54. package/lib/build/ItemLibrary/LibraryPicker.mocks.d.ts.map +1 -0
  55. package/lib/build/ItemLibrary/LibraryPicker.mocks.js +50 -0
  56. package/lib/build/ItemLibrary/LibraryPicker.mocks.js.map +1 -0
  57. package/lib/build/ItemLibrary/LibraryPicker.stories.d.ts +9 -0
  58. package/lib/build/ItemLibrary/LibraryPicker.stories.d.ts.map +1 -0
  59. package/lib/build/ItemLibrary/LibraryPicker.stories.js +40 -0
  60. package/lib/build/ItemLibrary/LibraryPicker.stories.js.map +1 -0
  61. package/lib/build/LifeCycle/LifeCycle.mocks.js +1 -1
  62. package/lib/build/LifeCycle/LifeCycle.mocks.js.map +1 -1
  63. package/lib/build/LifeCycle/LifeCycle.stories.d.ts.map +1 -1
  64. package/lib/build/LifeCycle/LifeCycle.stories.js +52 -48
  65. package/lib/build/LifeCycle/LifeCycle.stories.js.map +1 -1
  66. package/lib/core/Avatar/Avatar.stories.d.ts.map +1 -1
  67. package/lib/core/Avatar/Avatar.stories.js +5 -3
  68. package/lib/core/Avatar/Avatar.stories.js.map +1 -1
  69. package/lib/cs/CSCaseView/CSAppShell.stories.js +1 -1
  70. package/lib/cs/CSCaseView/CSAppShell.stories.js.map +1 -1
  71. package/lib/cs/IntelligentGuidance/IntelligentGuidance.stories.d.ts.map +1 -1
  72. package/lib/cs/IntelligentGuidance/IntelligentGuidance.stories.js +12 -10
  73. package/lib/cs/IntelligentGuidance/IntelligentGuidance.stories.js.map +1 -1
  74. package/lib/cs/TaskManager/TaskManager.mocks.d.ts +1 -2
  75. package/lib/cs/TaskManager/TaskManager.mocks.d.ts.map +1 -1
  76. package/lib/cs/TaskManager/TaskManager.mocks.js +5 -10
  77. package/lib/cs/TaskManager/TaskManager.mocks.js.map +1 -1
  78. package/lib/cs/TaskManager/TaskManager.stories.d.ts +8 -3
  79. package/lib/cs/TaskManager/TaskManager.stories.d.ts.map +1 -1
  80. package/lib/cs/TaskManager/TaskManager.stories.js +142 -119
  81. package/lib/cs/TaskManager/TaskManager.stories.js.map +1 -1
  82. package/lib/social/Email/Email.mocks.d.ts +1 -2
  83. package/lib/social/Email/Email.mocks.d.ts.map +1 -1
  84. package/lib/social/Email/Email.mocks.js +1 -3
  85. package/lib/social/Email/Email.mocks.js.map +1 -1
  86. package/lib/social/Email/Email.stories.d.ts.map +1 -1
  87. package/lib/social/Email/Email.stories.js +7 -8
  88. package/lib/social/Email/Email.stories.js.map +1 -1
  89. package/package.json +16 -16
  90. package/jsx/social/Email/Email.mocks.jsx.map +0 -1
@@ -1,92 +1,104 @@
1
- import { useEffect, useRef, useState } from 'react';
1
+ import { useRef, useState } from 'react';
2
2
  import { action } from '@storybook/addon-actions';
3
3
  import { array, number, boolean } from '@storybook/addon-knobs';
4
- import { Button, createUID, DateInput, DateTimeInput, Form, Grid, Input, MenuButton, Text, TimeInput } from '@pega/cosmos-react-core';
4
+ import styled, { css } from 'styled-components';
5
+ import { Button, createUID, DateInput, DateTimeInput, Flex, Form, Grid, Input, MenuButton, Status, Text, TimeInput } from '@pega/cosmos-react-core';
5
6
  import { Timeline } from '@pega/cosmos-react-work';
6
- import { TaskManager, TaskView } from '@pega/cosmos-react-cs';
7
+ import { TaskManager as TaskManagerComp, TaskView } from '@pega/cosmos-react-cs';
7
8
  import { activity } from '@pega/cosmos-react-demos/lib/work/Timeline/Timeline.mocks';
8
9
  import { TaskPickerMockData } from './TaskManager.mocks';
9
10
  export default {
10
11
  title: 'Customer Service/TaskManager',
11
- component: TaskManager
12
+ component: TaskManagerComp
12
13
  };
13
- const WRAP_UP_TASK_ID = createUID();
14
14
  const TaskPickerData = TaskPickerMockData;
15
- export const TaskManagerDemo = () => {
16
- const [serviceTasks, setServiceTasks] = useState([]);
15
+ const WrapUpTask = {
16
+ id: createUID(),
17
+ name: 'Wrap up',
18
+ status: 'In progress',
19
+ variant: 'pending'
20
+ };
21
+ const StyledStatus = styled(Status)(({ theme }) => {
22
+ return css `
23
+ margin-block-start: calc(0.25 * ${theme.base.spacing});
24
+ `;
25
+ });
26
+ export const TaskManager = ({ initialTasks, main, onTaskDismiss, onTaskLaunch, wrapUp }) => {
27
+ const [serviceTasks, setServiceTasks] = useState(initialTasks || []);
17
28
  const [isWrapUpTabVisible, setIsWrapUpTabVisible] = useState(false);
29
+ const [disableWrapUp, setDisableWrapUp] = useState(false);
18
30
  const formActionsElemRef = useRef(null);
19
31
  const taskManagerRef = useRef(null);
20
32
  const [activeTaskId, setActiveTaskId] = useState(undefined);
21
- const addTaskButtonRef = useRef(null);
22
- useEffect(() => {
23
- if (formActionsElemRef.current) {
24
- formActionsElemRef.current.focus();
25
- formActionsElemRef.current.scrollIntoView(false);
26
- }
27
- else if (addTaskButtonRef.current) {
28
- addTaskButtonRef.current.scrollIntoView(false);
29
- }
30
- }, [activeTaskId]);
31
33
  const switchTab = (taskList, taskId) => {
34
+ if (taskList.filter(task => !task.hideFromTab).length <= 1) {
35
+ return isWrapUpTabVisible ? setActiveTaskId(WrapUpTask.id) : setActiveTaskId(undefined);
36
+ }
32
37
  const taskIndex = taskList.findIndex(task => {
33
38
  return task.id === taskId;
34
39
  });
35
- let nextTaskId = '';
36
- if (taskIndex >= 0 && taskIndex < taskList.length - 1) {
37
- nextTaskId = taskList[taskIndex + 1].id;
38
- setActiveTaskId(nextTaskId);
39
- }
40
- else if (taskIndex === taskList.length - 1 && taskList.length > 1) {
41
- setActiveTaskId(taskList[0].id);
42
- }
43
- else
44
- setActiveTaskId(undefined);
40
+ let nextTaskIndex = taskList.findIndex((task, i) => {
41
+ return i > taskIndex && !task.hideFromTab;
42
+ });
43
+ if (nextTaskIndex === -1)
44
+ nextTaskIndex = taskList.findIndex(task => !task.hideFromTab);
45
+ setActiveTaskId(taskList[nextTaskIndex].id);
45
46
  };
46
47
  const performTaskAction = (taskId, taskAction) => {
47
- if (taskId === WRAP_UP_TASK_ID) {
48
+ if (taskId === WrapUpTask.id) {
48
49
  if (taskAction === 'cancel') {
49
- setServiceTasks(prevTasks => {
50
- return prevTasks
51
- .filter(task => task.variant !== 'queued')
52
- .map(task => {
53
- if (task.variant !== 'resolved') {
54
- return {
55
- ...task,
56
- variant: 'cancelled',
50
+ setIsWrapUpTabVisible(false);
51
+ const openTasks = serviceTasks.filter(task => !task.hideFromTab);
52
+ const lastTask = openTasks[openTasks.length - 1];
53
+ if (lastTask?.status?.text === 'Queued') {
54
+ setServiceTasks(prevTasks => {
55
+ return [
56
+ ...prevTasks.filter(task => task.id !== lastTask.id),
57
+ {
58
+ ...lastTask,
59
+ variant: 'In progress',
60
+ icon: 'clipboard',
57
61
  status: {
58
- variant: 'urgent',
59
- text: 'Resolve Rejected'
62
+ variant: 'pending',
63
+ text: 'In progress'
60
64
  }
61
- };
62
- }
63
- return task;
65
+ }
66
+ ];
64
67
  });
65
- });
66
- setActiveTaskId(undefined);
68
+ }
69
+ if (lastTask) {
70
+ setActiveTaskId(lastTask.id);
71
+ }
72
+ else {
73
+ setActiveTaskId(undefined);
74
+ }
75
+ setDisableWrapUp(false);
67
76
  }
68
77
  else if (taskAction === 'submit') {
69
78
  setServiceTasks(prevTasks => {
70
79
  return prevTasks
71
- .filter(task => task.variant !== 'queued')
80
+ .filter(task => task?.status?.text !== 'Queued')
72
81
  .map(task => {
73
- if (task.variant !== 'cancelled') {
82
+ if (task?.status?.text !== 'cancelled') {
74
83
  return {
75
84
  ...task,
76
- variant: 'resolved',
85
+ isResolved: true,
86
+ icon: 'check',
87
+ hideFromTab: true,
77
88
  status: {
78
- variant: 'info',
79
- text: 'Resolve Completed'
89
+ variant: 'success',
90
+ text: 'Resolve-Completed'
80
91
  }
81
92
  };
82
93
  }
83
94
  return task;
84
95
  });
85
96
  });
97
+ setIsWrapUpTabVisible(false);
86
98
  setActiveTaskId(undefined);
87
99
  }
88
100
  else if (taskAction === 'launch') {
89
- setActiveTaskId(WRAP_UP_TASK_ID);
101
+ setActiveTaskId(WrapUpTask.id);
90
102
  setIsWrapUpTabVisible(true);
91
103
  }
92
104
  }
@@ -95,16 +107,19 @@ export const TaskManagerDemo = () => {
95
107
  setServiceTasks(prevTasks => {
96
108
  return prevTasks.map(task => {
97
109
  if (task.id === taskId) {
98
- const variant = task.variant === 'queued' ? 'in-progress' : task.variant;
110
+ const status = task?.status?.text === 'Queued' ? 'In progress' : task?.status?.text;
99
111
  return {
100
112
  ...task,
101
- icon: 'clipboard',
102
- variant,
113
+ icon: task.status?.text === 'Resolve-Completed' ||
114
+ task.status?.text === 'Resolve-Cancelled'
115
+ ? 'check'
116
+ : 'clipboard',
117
+ hideFromTab: false,
103
118
  status: {
104
- variant: (variant === 'in-progress'
119
+ variant: (status === 'In progress'
105
120
  ? 'pending'
106
121
  : task.status?.variant) || 'info',
107
- text: (variant === 'in-progress' ? 'In progress' : task.status?.text) || ''
122
+ text: (status === 'In progress' ? 'In progress' : task.status?.text) || ''
108
123
  }
109
124
  };
110
125
  }
@@ -120,25 +135,18 @@ export const TaskManagerDemo = () => {
120
135
  const nextTaskId = taskIndex >= 0 && taskIndex < serviceTasks.length - 1 && serviceTasks[taskIndex + 1].id;
121
136
  setServiceTasks(prevTasks => {
122
137
  return prevTasks.map(task => {
123
- if (task.id === taskId && task.variant !== 'resolved' && task.variant !== 'cancelled') {
138
+ if (task.id === taskId) {
124
139
  return {
125
140
  ...task,
126
- icon: 'check',
127
- variant: 'cancelled',
128
- status: {
129
- variant: 'urgent',
130
- text: 'Resolve Rejected'
131
- }
141
+ hideFromTab: true
132
142
  };
133
143
  }
134
144
  if (task.id === nextTaskId &&
135
- task.variant !== 'resolved' &&
136
- task.variant !== 'cancelled') {
137
- const variant = task.variant === 'queued' ? 'in-progress' : task.variant;
145
+ task?.status?.text !== 'Resolve-Completed' &&
146
+ task?.status?.text !== 'Resolve-Cancelled') {
138
147
  return {
139
148
  ...task,
140
149
  icon: 'clipboard',
141
- variant,
142
150
  status: {
143
151
  variant: 'pending',
144
152
  text: 'In Progress'
@@ -150,32 +158,30 @@ export const TaskManagerDemo = () => {
150
158
  });
151
159
  }
152
160
  else if (taskAction === 'submit') {
153
- switchTab(serviceTasks, taskId);
154
161
  const taskIndex = serviceTasks.findIndex(task => {
155
162
  return task.id === taskId;
156
163
  });
157
164
  const nextTaskId = taskIndex >= 0 && taskIndex < serviceTasks.length - 1 && serviceTasks[taskIndex + 1].id;
158
165
  setServiceTasks(prevTasks => {
159
166
  return prevTasks.map(task => {
160
- if (task.id === taskId && task.variant !== 'resolved' && task.variant !== 'cancelled') {
167
+ if (task.id === taskId) {
161
168
  return {
162
169
  ...task,
163
170
  icon: 'check',
164
- variant: 'resolved',
171
+ isResolved: true,
172
+ hideFromTab: true,
165
173
  status: {
166
- variant: 'info',
167
- text: 'Resolve Completed'
174
+ variant: 'success',
175
+ text: 'Resolve-Completed'
168
176
  }
169
177
  };
170
178
  }
171
179
  if (task.id === nextTaskId &&
172
- task.variant !== 'resolved' &&
173
- task.variant !== 'cancelled') {
174
- const variant = task.variant === 'queued' ? 'in-progress' : task.variant;
180
+ task?.status?.text !== 'Resolve-Completed' &&
181
+ task?.status?.text !== 'Resolve-Cancelled') {
175
182
  return {
176
183
  ...task,
177
184
  icon: 'clipboard',
178
- variant,
179
185
  status: {
180
186
  variant: 'pending',
181
187
  text: 'In Progress'
@@ -185,6 +191,7 @@ export const TaskManagerDemo = () => {
185
191
  return task;
186
192
  });
187
193
  });
194
+ switchTab(serviceTasks, taskId);
188
195
  }
189
196
  else if (taskAction === 'dismiss') {
190
197
  setServiceTasks(prevTasks => {
@@ -200,7 +207,8 @@ export const TaskManagerDemo = () => {
200
207
  id: taskId,
201
208
  icon: 'nothing',
202
209
  name: selection.primary,
203
- variant: 'in-progress',
210
+ secondary: [`S-${Math.floor(1000 + Math.random() * 9000)}`],
211
+ isResolved: false,
204
212
  status: {
205
213
  variant: 'pending',
206
214
  text: 'In Progress'
@@ -211,9 +219,10 @@ export const TaskManagerDemo = () => {
211
219
  id: taskId,
212
220
  icon: 'clipboard',
213
221
  name: selection.primary,
214
- variant: 'queued',
222
+ secondary: [`S-${Math.floor(1000 + Math.random() * 9000)}`],
223
+ isResolved: false,
215
224
  status: {
216
- variant: 'success',
225
+ variant: 'info',
217
226
  text: 'Queued'
218
227
  }
219
228
  };
@@ -224,33 +233,45 @@ export const TaskManagerDemo = () => {
224
233
  if (newTasks.length > 0) {
225
234
  performTaskAction(newTasks[0].id, 'launch');
226
235
  }
236
+ setDisableWrapUp(false);
227
237
  };
228
- const taskName = serviceTasks.find(task => task.id === activeTaskId)?.name ?? '';
238
+ const activeServiceTask = serviceTasks.find(task => task.id === activeTaskId) || {};
229
239
  const taskFields = TaskPickerData.tasks
230
240
  .flatMap(task => task.items ?? [])
231
- .find(({ primary }) => primary === taskName)?.fields ?? [];
232
- const formElements = taskFields.map((field, i) => {
233
- const lowerFieldName = field.toLocaleLowerCase();
234
- if (lowerFieldName.includes('date') && lowerFieldName.includes('time')) {
235
- return <DateTimeInput label={field} key={i}/>;
236
- }
237
- if (lowerFieldName.includes('date')) {
238
- return <DateInput label={field} key={i}/>;
239
- }
240
- if (lowerFieldName.includes('time')) {
241
- return <TimeInput label={field} key={i}/>;
242
- }
243
- return <Input label={field} key={i}/>;
244
- });
245
- const formFields = formElements.length <= 3 ? (<>{formElements}</>) : (<Grid container={{
246
- cols: 'repeat(2, 1fr)',
247
- colGap: number('colGap', 2),
248
- rowGap: number('rowGap', 2)
249
- }}>
241
+ .find(({ primary }) => primary === activeServiceTask?.name)?.fields ?? [];
242
+ const getFormElements = (readOnly) => {
243
+ const formElements = taskFields.map((field, i) => {
244
+ const lowerFieldName = field.toLocaleLowerCase();
245
+ if (lowerFieldName.includes('date') && lowerFieldName.includes('time')) {
246
+ return <DateTimeInput readOnly={readOnly} label={field} key={i}/>;
247
+ }
248
+ if (lowerFieldName.includes('date')) {
249
+ return <DateInput readOnly={readOnly} label={field} key={i}/>;
250
+ }
251
+ if (lowerFieldName.includes('time')) {
252
+ return <TimeInput readOnly={readOnly} label={field} key={i}/>;
253
+ }
254
+ return <Input readOnly={readOnly} label={field} key={i}/>;
255
+ });
256
+ return formElements.length <= 3 ? (<>{formElements}</>) : (<Grid container={{
257
+ cols: 'repeat(2, 1fr)',
258
+ colGap: number('colGap', 2),
259
+ rowGap: number('rowGap', 2)
260
+ }}>
250
261
  {formElements}
251
262
  </Grid>);
263
+ };
252
264
  const serviceTasksEmpty = boolean('Tasks empty', false);
253
- return (<TaskManager ref={taskManagerRef} tasks={serviceTasksEmpty
265
+ const handleLaunch = (id) => {
266
+ performTaskAction(id, 'launch');
267
+ };
268
+ const handleDismiss = (id) => {
269
+ performTaskAction(id, 'dismiss');
270
+ };
271
+ const getTaskName = (taskName) => {
272
+ return taskName === 'Address change' ? 'Address change details' : taskName;
273
+ };
274
+ return (<TaskManagerComp ref={taskManagerRef} tasks={serviceTasksEmpty
254
275
  ? []
255
276
  : serviceTasks.map(task => {
256
277
  if (task.id === activeTaskId) {
@@ -263,52 +284,63 @@ export const TaskManagerDemo = () => {
263
284
  })} emptyText='No tasks added' banner={{
264
285
  icon: 'headset',
265
286
  content: 'Hi Ms. Ventura, I see that you are interested in changing your monthly due date, is that correct ?'
266
- }} onTaskLaunch={(id) => {
267
- performTaskAction(id, 'launch');
268
- }} onTaskDismiss={(id) => {
269
- performTaskAction(id, 'dismiss');
270
- }} addTask={{
287
+ }} onTaskLaunch={onTaskLaunch || handleLaunch} onTaskDismiss={onTaskDismiss || handleDismiss} addTask={{
271
288
  items: TaskPickerMockData.tasks,
272
289
  onAdd: renderTasks
273
- }} wrapUp={{
274
- onWrapUp: () => {
275
- performTaskAction(WRAP_UP_TASK_ID, 'launch');
290
+ }} wrapUp={wrapUp || {
291
+ disable: disableWrapUp,
292
+ onClick: () => {
293
+ performTaskAction(WrapUpTask.id, 'launch');
294
+ setDisableWrapUp(true);
276
295
  },
277
- active: activeTaskId === WRAP_UP_TASK_ID,
296
+ active: activeTaskId === WrapUpTask.id,
278
297
  showTab: isWrapUpTabVisible
279
- }} main={<TaskView header={<Text variant='h2'>
280
- {activeTaskId === WRAP_UP_TASK_ID
281
- ? 'Wrap up'
282
- : serviceTasks.find(task => task.id === activeTaskId)?.name}
283
- </Text>} actions={<MenuButton ref={formActionsElemRef} menu={{
284
- items: array('actions', [
285
- 'Option Number 1',
286
- 'Option Number 2',
287
- 'Option Number 3'
288
- ]).map(name => ({
298
+ }} main={main || (<TaskView header={<Flex container={{ justify: 'start', gap: 1, alignItems: 'center' }}>
299
+ <Text variant='h3'>
300
+ {activeTaskId === WrapUpTask.id
301
+ ? WrapUpTask.name
302
+ : getTaskName(activeServiceTask?.name)}
303
+ </Text>
304
+ <StyledStatus variant={activeTaskId === WrapUpTask.id
305
+ ? WrapUpTask.variant
306
+ : (activeServiceTask.status &&
307
+ activeServiceTask.status?.variant) ||
308
+ 'info'}>
309
+ {activeTaskId === WrapUpTask.id
310
+ ? WrapUpTask.status
311
+ : activeServiceTask.status && activeServiceTask.status.text}
312
+ </StyledStatus>
313
+ </Flex>} actions={<MenuButton ref={formActionsElemRef} menu={{
314
+ items: array('actions', ['Close task', 'Dismiss task', 'Resolve task']).map(name => ({
289
315
  primary: name,
290
316
  id: name,
291
317
  onClick: action(`Clicked ${name}`)
292
318
  }))
293
319
  }} text='Actions'/>}>
294
- <Form id='forming' actions={<>
295
- <Button name='Cancel' onClick={() => {
320
+ <Form id='forming' actions={activeServiceTask?.isResolved ? (<Flex container={{ justify: 'end' }} item={{ grow: 1 }}>
321
+ <Button name='Close' variant='primary' onClick={() => {
322
+ performTaskAction(activeTaskId, 'cancel');
323
+ }}>
324
+ Close
325
+ </Button>
326
+ </Flex>) : (<>
327
+ <Button name='Cancel' onClick={() => {
296
328
  performTaskAction(activeTaskId, 'cancel');
297
329
  }}>
298
- Cancel
299
- </Button>
300
- <div>
301
- <Button name='Submit' variant='primary' onClick={() => {
330
+ Cancel
331
+ </Button>
332
+ <div>
333
+ <Button name='Submit' variant='primary' onClick={() => {
302
334
  performTaskAction(activeTaskId, 'submit');
303
335
  }}>
304
- Submit
305
- </Button>
306
- </div>
307
- </>}>
308
- <Grid container={{ rowGap: 2 }}>
309
- {activeTaskId === WRAP_UP_TASK_ID ? (<Timeline activity={activity} currentTime={new Date()}/>) : (formFields)}
310
- </Grid>
311
- </Form>
312
- </TaskView>}/>);
336
+ Submit
337
+ </Button>
338
+ </div>
339
+ </>)}>
340
+ <Grid container={{ rowGap: 2 }}>
341
+ {activeTaskId === WrapUpTask.id ? (<Timeline activity={activity} currentTime={new Date()}/>) : (getFormElements(activeServiceTask?.isResolved || false))}
342
+ </Grid>
343
+ </Form>
344
+ </TaskView>)}/>);
313
345
  };
314
346
  //# sourceMappingURL=TaskManager.stories.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaskManager.stories.jsx","sourceRoot":"","sources":["../../../src/cs/TaskManager/TaskManager.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { action } from '@storybook/addon-actions';\nimport { array, number, boolean } from '@storybook/addon-knobs';\n\nimport {\n Button,\n createUID,\n DateInput,\n DateTimeInput,\n Form,\n Grid,\n Input,\n MenuButton,\n MenuItemProps,\n StatusProps,\n Text,\n TimeInput\n} from '@pega/cosmos-react-core';\nimport { Timeline } from '@pega/cosmos-react-work';\nimport { TaskManager, TaskView, TaskProps } from '@pega/cosmos-react-cs';\nimport { activity } from '@pega/cosmos-react-demos/lib/work/Timeline/Timeline.mocks';\n\nimport { TaskPickerMockData } from './TaskManager.mocks';\n\nexport default {\n title: 'Customer Service/TaskManager',\n component: TaskManager\n};\n\nconst WRAP_UP_TASK_ID = createUID();\n\ntype TaskActions = 'cancel' | 'launch' | 'dismiss' | 'submit';\n\nconst TaskPickerData = TaskPickerMockData;\n\nexport const TaskManagerDemo = () => {\n const [serviceTasks, setServiceTasks] = useState<TaskProps[]>([]);\n const [isWrapUpTabVisible, setIsWrapUpTabVisible] = useState<boolean>(false);\n\n const formActionsElemRef = useRef<HTMLButtonElement>(null);\n const taskManagerRef = useRef<HTMLDivElement>(null);\n const [activeTaskId, setActiveTaskId] = useState<string | undefined>(undefined);\n const addTaskButtonRef = useRef<HTMLButtonElement>(null);\n\n useEffect(() => {\n if (formActionsElemRef.current) {\n formActionsElemRef.current.focus();\n formActionsElemRef.current.scrollIntoView(false);\n } else if (addTaskButtonRef.current) {\n addTaskButtonRef.current.scrollIntoView(false);\n }\n }, [activeTaskId]);\n\n const switchTab = (taskList: TaskProps[], taskId?: TaskProps['id']) => {\n const taskIndex = taskList.findIndex(task => {\n return task.id === taskId;\n });\n let nextTaskId = '';\n if (taskIndex >= 0 && taskIndex < taskList.length - 1) {\n nextTaskId = taskList[taskIndex + 1].id;\n setActiveTaskId(nextTaskId);\n } else if (taskIndex === taskList.length - 1 && taskList.length > 1) {\n setActiveTaskId(taskList[0].id);\n } else setActiveTaskId(undefined);\n };\n\n const performTaskAction = (taskId: string | undefined, taskAction: TaskActions) => {\n if (taskId === WRAP_UP_TASK_ID) {\n if (taskAction === 'cancel') {\n setServiceTasks(prevTasks => {\n return prevTasks\n .filter(task => task.variant !== 'queued')\n .map(task => {\n if (task.variant !== 'resolved') {\n return {\n ...task,\n variant: 'cancelled',\n status: {\n variant: 'urgent' as StatusProps['variant'],\n text: 'Resolve Rejected'\n }\n };\n }\n return task;\n });\n });\n setActiveTaskId(undefined);\n } else if (taskAction === 'submit') {\n setServiceTasks(prevTasks => {\n return prevTasks\n .filter(task => task.variant !== 'queued')\n .map(task => {\n if (task.variant !== 'cancelled') {\n return {\n ...task,\n variant: 'resolved',\n status: {\n variant: 'info' as StatusProps['variant'],\n text: 'Resolve Completed'\n }\n };\n }\n return task;\n });\n });\n setActiveTaskId(undefined);\n } else if (taskAction === 'launch') {\n setActiveTaskId(WRAP_UP_TASK_ID);\n setIsWrapUpTabVisible(true);\n }\n } else if (taskAction === 'launch') {\n setActiveTaskId(taskId);\n setServiceTasks(prevTasks => {\n return prevTasks.map(task => {\n if (task.id === taskId) {\n const variant = task.variant === 'queued' ? 'in-progress' : task.variant;\n return {\n ...task,\n icon: 'clipboard',\n variant,\n status: {\n variant:\n (variant === 'in-progress'\n ? ('pending' as StatusProps['variant'])\n : task.status?.variant) || ('info' as StatusProps['variant']),\n text: (variant === 'in-progress' ? 'In progress' : task.status?.text) || ''\n }\n };\n }\n return task;\n });\n });\n } else if (taskAction === 'cancel') {\n switchTab(serviceTasks, taskId);\n const taskIndex = serviceTasks.findIndex(task => {\n return task.id === taskId;\n });\n const nextTaskId =\n taskIndex >= 0 && taskIndex < serviceTasks.length - 1 && serviceTasks[taskIndex + 1].id;\n setServiceTasks(prevTasks => {\n return prevTasks.map(task => {\n if (task.id === taskId && task.variant !== 'resolved' && task.variant !== 'cancelled') {\n return {\n ...task,\n icon: 'check',\n variant: 'cancelled',\n status: {\n variant: 'urgent' as StatusProps['variant'],\n text: 'Resolve Rejected'\n }\n };\n }\n if (\n task.id === nextTaskId &&\n task.variant !== 'resolved' &&\n task.variant !== 'cancelled'\n ) {\n const variant = task.variant === 'queued' ? 'in-progress' : task.variant;\n return {\n ...task,\n icon: 'clipboard',\n variant,\n status: {\n variant: 'pending' as StatusProps['variant'],\n text: 'In Progress'\n }\n };\n }\n\n return task;\n });\n });\n } else if (taskAction === 'submit') {\n switchTab(serviceTasks, taskId);\n const taskIndex = serviceTasks.findIndex(task => {\n return task.id === taskId;\n });\n const nextTaskId =\n taskIndex >= 0 && taskIndex < serviceTasks.length - 1 && serviceTasks[taskIndex + 1].id;\n setServiceTasks(prevTasks => {\n return prevTasks.map(task => {\n if (task.id === taskId && task.variant !== 'resolved' && task.variant !== 'cancelled') {\n return {\n ...task,\n icon: 'check',\n variant: 'resolved',\n status: {\n variant: 'info' as StatusProps['variant'],\n text: 'Resolve Completed'\n }\n };\n }\n if (\n task.id === nextTaskId &&\n task.variant !== 'resolved' &&\n task.variant !== 'cancelled'\n ) {\n const variant = task.variant === 'queued' ? 'in-progress' : task.variant;\n return {\n ...task,\n icon: 'clipboard',\n variant,\n status: {\n variant: 'pending' as StatusProps['variant'],\n text: 'In Progress'\n }\n };\n }\n\n return task;\n });\n });\n } else if (taskAction === 'dismiss') {\n setServiceTasks(prevTasks => {\n return prevTasks.filter(task => task.id !== taskId);\n });\n }\n };\n\n const renderTasks = (selections: MenuItemProps[]) => {\n const newTasks = selections.map((selection, i) => {\n const taskId = createUID();\n if (i === 0) {\n return {\n id: taskId,\n icon: 'nothing',\n name: selection.primary,\n variant: 'in-progress' as TaskProps['variant'],\n status: {\n variant: 'pending' as StatusProps['variant'],\n text: 'In Progress'\n }\n };\n }\n return {\n id: taskId,\n icon: 'clipboard',\n name: selection.primary,\n variant: 'queued' as TaskProps['variant'],\n status: {\n variant: 'success' as StatusProps['variant'],\n text: 'Queued'\n }\n };\n });\n setServiceTasks(prevTasks => {\n return [...newTasks, ...prevTasks];\n });\n if (newTasks.length > 0) {\n performTaskAction(newTasks[0].id, 'launch');\n }\n };\n const taskName = serviceTasks.find(task => task.id === activeTaskId)?.name ?? '';\n\n /* Preparing form fields from added task */\n\n const taskFields =\n TaskPickerData.tasks\n .flatMap(task => task.items ?? [])\n .find(({ primary }) => primary === taskName)?.fields ?? [];\n\n const formElements = taskFields.map((field, i) => {\n const lowerFieldName = field.toLocaleLowerCase();\n if (lowerFieldName.includes('date') && lowerFieldName.includes('time')) {\n /* eslint-disable react/no-array-index-key */\n return <DateTimeInput label={field} key={i} />;\n }\n if (lowerFieldName.includes('date')) {\n return <DateInput label={field} key={i} />;\n }\n if (lowerFieldName.includes('time')) {\n return <TimeInput label={field} key={i} />;\n }\n return <Input label={field} key={i} />;\n /* eslint-enable react/no-array-index-key */\n });\n\n const formFields =\n formElements.length <= 3 ? (\n <>{formElements}</>\n ) : (\n <Grid\n container={{\n cols: 'repeat(2, 1fr)',\n colGap: number('colGap', 2),\n rowGap: number('rowGap', 2)\n }}\n >\n {formElements}\n </Grid>\n );\n\n const serviceTasksEmpty = boolean('Tasks empty', false);\n return (\n <TaskManager\n ref={taskManagerRef}\n tasks={\n serviceTasksEmpty\n ? []\n : serviceTasks.map(task => {\n if (task.id === activeTaskId) {\n return {\n ...task,\n active: true\n };\n }\n return task;\n })\n }\n emptyText='No tasks added'\n banner={{\n icon: 'headset',\n content:\n 'Hi Ms. Ventura, I see that you are interested in changing your monthly due date, is that correct ?'\n }}\n onTaskLaunch={(id: string) => {\n performTaskAction(id, 'launch');\n }}\n onTaskDismiss={(id: string) => {\n performTaskAction(id, 'dismiss');\n }}\n addTask={{\n items: TaskPickerMockData.tasks,\n onAdd: renderTasks\n }}\n wrapUp={{\n onWrapUp: () => {\n performTaskAction(WRAP_UP_TASK_ID, 'launch');\n },\n active: activeTaskId === WRAP_UP_TASK_ID,\n showTab: isWrapUpTabVisible\n }}\n main={\n <TaskView\n header={\n <Text variant='h2'>\n {activeTaskId === WRAP_UP_TASK_ID\n ? 'Wrap up'\n : serviceTasks.find(task => task.id === activeTaskId)?.name}\n </Text>\n }\n actions={\n <MenuButton\n ref={formActionsElemRef}\n menu={{\n items: array('actions', [\n 'Option Number 1',\n 'Option Number 2',\n 'Option Number 3'\n ]).map(name => ({\n primary: name,\n id: name,\n onClick: action(`Clicked ${name}`)\n }))\n }}\n text='Actions'\n />\n }\n >\n <Form\n id='forming'\n actions={\n <>\n <Button\n name='Cancel'\n onClick={() => {\n performTaskAction(activeTaskId, 'cancel');\n }}\n >\n Cancel\n </Button>\n <div>\n <Button\n name='Submit'\n variant='primary'\n onClick={() => {\n performTaskAction(activeTaskId, 'submit');\n }}\n >\n Submit\n </Button>\n </div>\n </>\n }\n >\n <Grid container={{ rowGap: 2 }}>\n {activeTaskId === WRAP_UP_TASK_ID ? (\n <Timeline activity={activity} currentTime={new Date()} />\n ) : (\n formFields\n )}\n </Grid>\n </Form>\n </TaskView>\n }\n />\n );\n};\n"]}
1
+ {"version":3,"file":"TaskManager.stories.jsx","sourceRoot":"","sources":["../../../src/cs/TaskManager/TaskManager.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ReactNode, useRef, useState } from 'react';\nimport { action } from '@storybook/addon-actions';\nimport { array, number, boolean } from '@storybook/addon-knobs';\nimport styled, { css } from 'styled-components';\n\nimport {\n Button,\n createUID,\n DateInput,\n DateTimeInput,\n Flex,\n Form,\n Grid,\n Input,\n MenuButton,\n MenuItemProps,\n Status,\n StatusProps,\n Text,\n TimeInput\n} from '@pega/cosmos-react-core';\nimport { Timeline } from '@pega/cosmos-react-work';\nimport {\n TaskManager as TaskManagerComp,\n TaskManagerProps,\n TaskProps,\n TaskView\n} from '@pega/cosmos-react-cs';\nimport { activity } from '@pega/cosmos-react-demos/lib/work/Timeline/Timeline.mocks';\n\nimport { TaskPickerMockData } from './TaskManager.mocks';\n\nexport default {\n title: 'Customer Service/TaskManager',\n component: TaskManagerComp\n};\n\ntype TaskActions = 'cancel' | 'launch' | 'dismiss' | 'submit';\n\nconst TaskPickerData = TaskPickerMockData;\n\nconst WrapUpTask = {\n id: createUID(),\n name: 'Wrap up',\n status: 'In progress',\n variant: 'pending'\n};\n\nexport interface TaskManagerStoryProps extends TaskManagerProps {\n initialTasks?: TaskProps[];\n main?: ReactNode;\n}\n\nconst StyledStatus = styled(Status)(({ theme }) => {\n return css`\n margin-block-start: calc(0.25 * ${theme.base.spacing});\n `;\n});\n\nexport const TaskManager = ({\n initialTasks,\n main,\n onTaskDismiss,\n onTaskLaunch,\n wrapUp\n}: TaskManagerStoryProps) => {\n const [serviceTasks, setServiceTasks] = useState<TaskProps[]>(initialTasks || []);\n const [isWrapUpTabVisible, setIsWrapUpTabVisible] = useState<boolean>(false);\n const [disableWrapUp, setDisableWrapUp] = useState<boolean>(false);\n\n const formActionsElemRef = useRef<HTMLButtonElement>(null);\n const taskManagerRef = useRef<HTMLDivElement>(null);\n const [activeTaskId, setActiveTaskId] = useState<string | undefined>(undefined);\n\n const switchTab = (taskList: TaskProps[], taskId?: TaskProps['id']) => {\n if (taskList.filter(task => !task.hideFromTab).length <= 1) {\n return isWrapUpTabVisible ? setActiveTaskId(WrapUpTask.id) : setActiveTaskId(undefined);\n }\n const taskIndex = taskList.findIndex(task => {\n return task.id === taskId;\n });\n\n let nextTaskIndex = taskList.findIndex((task, i) => {\n return i > taskIndex && !task.hideFromTab;\n });\n\n if (nextTaskIndex === -1) nextTaskIndex = taskList.findIndex(task => !task.hideFromTab);\n setActiveTaskId(taskList[nextTaskIndex].id);\n };\n\n const performTaskAction = (taskId: string | undefined, taskAction: TaskActions) => {\n if (taskId === WrapUpTask.id) {\n if (taskAction === 'cancel') {\n setIsWrapUpTabVisible(false);\n const openTasks = serviceTasks.filter(task => !task.hideFromTab);\n const lastTask = openTasks[openTasks.length - 1];\n if (lastTask?.status?.text === 'Queued') {\n setServiceTasks(prevTasks => {\n return [\n ...prevTasks.filter(task => task.id !== lastTask.id),\n {\n ...lastTask,\n variant: 'In progress',\n icon: 'clipboard',\n status: {\n variant: 'pending',\n text: 'In progress'\n }\n }\n ];\n });\n }\n if (lastTask) {\n setActiveTaskId(lastTask.id);\n } else {\n setActiveTaskId(undefined);\n }\n setDisableWrapUp(false);\n } else if (taskAction === 'submit') {\n setServiceTasks(prevTasks => {\n return prevTasks\n .filter(task => task?.status?.text !== 'Queued')\n .map(task => {\n if (task?.status?.text !== 'cancelled') {\n return {\n ...task,\n isResolved: true,\n icon: 'check',\n hideFromTab: true,\n status: {\n variant: 'success' as StatusProps['variant'],\n text: 'Resolve-Completed'\n }\n };\n }\n return task;\n });\n });\n setIsWrapUpTabVisible(false);\n setActiveTaskId(undefined);\n } else if (taskAction === 'launch') {\n setActiveTaskId(WrapUpTask.id);\n setIsWrapUpTabVisible(true);\n }\n } else if (taskAction === 'launch') {\n setActiveTaskId(taskId);\n setServiceTasks(prevTasks => {\n return prevTasks.map(task => {\n if (task.id === taskId) {\n const status = task?.status?.text === 'Queued' ? 'In progress' : task?.status?.text;\n return {\n ...task,\n icon:\n task.status?.text === 'Resolve-Completed' ||\n task.status?.text === 'Resolve-Cancelled'\n ? 'check'\n : 'clipboard',\n hideFromTab: false,\n status: {\n variant:\n (status === 'In progress'\n ? ('pending' as StatusProps['variant'])\n : task.status?.variant) || ('info' as StatusProps['variant']),\n text: (status === 'In progress' ? 'In progress' : task.status?.text) || ''\n }\n };\n }\n return task;\n });\n });\n } else if (taskAction === 'cancel') {\n switchTab(serviceTasks, taskId);\n const taskIndex = serviceTasks.findIndex(task => {\n return task.id === taskId;\n });\n const nextTaskId =\n taskIndex >= 0 && taskIndex < serviceTasks.length - 1 && serviceTasks[taskIndex + 1].id;\n setServiceTasks(prevTasks => {\n return prevTasks.map(task => {\n if (task.id === taskId) {\n return {\n ...task,\n hideFromTab: true\n };\n }\n\n if (\n task.id === nextTaskId &&\n task?.status?.text !== 'Resolve-Completed' &&\n task?.status?.text !== 'Resolve-Cancelled'\n ) {\n return {\n ...task,\n icon: 'clipboard',\n status: {\n variant: 'pending' as StatusProps['variant'],\n text: 'In Progress'\n }\n };\n }\n\n return task;\n });\n });\n } else if (taskAction === 'submit') {\n const taskIndex = serviceTasks.findIndex(task => {\n return task.id === taskId;\n });\n const nextTaskId =\n taskIndex >= 0 && taskIndex < serviceTasks.length - 1 && serviceTasks[taskIndex + 1].id;\n setServiceTasks(prevTasks => {\n return prevTasks.map(task => {\n if (task.id === taskId) {\n return {\n ...task,\n icon: 'check',\n isResolved: true,\n hideFromTab: true,\n status: {\n variant: 'success' as StatusProps['variant'],\n text: 'Resolve-Completed'\n }\n };\n }\n if (\n task.id === nextTaskId &&\n task?.status?.text !== 'Resolve-Completed' &&\n task?.status?.text !== 'Resolve-Cancelled'\n ) {\n return {\n ...task,\n icon: 'clipboard',\n status: {\n variant: 'pending' as StatusProps['variant'],\n text: 'In Progress'\n }\n };\n }\n return task;\n });\n });\n switchTab(serviceTasks, taskId);\n } else if (taskAction === 'dismiss') {\n setServiceTasks(prevTasks => {\n return prevTasks.filter(task => task.id !== taskId);\n });\n }\n };\n\n const renderTasks = (selections: MenuItemProps[]) => {\n const newTasks: TaskProps[] = selections.map((selection, i) => {\n const taskId = createUID();\n if (i === 0) {\n return {\n id: taskId,\n icon: 'nothing',\n name: selection.primary,\n secondary: [`S-${Math.floor(1000 + Math.random() * 9000)}`],\n isResolved: false,\n status: {\n variant: 'pending' as StatusProps['variant'],\n text: 'In Progress'\n }\n };\n }\n return {\n id: taskId,\n icon: 'clipboard',\n name: selection.primary,\n secondary: [`S-${Math.floor(1000 + Math.random() * 9000)}`],\n isResolved: false,\n status: {\n variant: 'info' as StatusProps['variant'],\n text: 'Queued'\n }\n };\n });\n setServiceTasks(prevTasks => {\n return [...newTasks, ...prevTasks];\n });\n if (newTasks.length > 0) {\n performTaskAction(newTasks[0].id, 'launch');\n }\n setDisableWrapUp(false);\n };\n const activeServiceTask: TaskProps =\n (serviceTasks.find(task => task.id === activeTaskId) as TaskProps) || {};\n\n /* Preparing form fields from added task */\n\n const taskFields =\n TaskPickerData.tasks\n .flatMap(task => task.items ?? [])\n .find(({ primary }) => primary === activeServiceTask?.name)?.fields ?? [];\n\n const getFormElements = (readOnly: boolean) => {\n const formElements = taskFields.map((field, i) => {\n const lowerFieldName = field.toLocaleLowerCase();\n if (lowerFieldName.includes('date') && lowerFieldName.includes('time')) {\n /* eslint-disable react/no-array-index-key */\n return <DateTimeInput readOnly={readOnly} label={field} key={i} />;\n }\n if (lowerFieldName.includes('date')) {\n return <DateInput readOnly={readOnly} label={field} key={i} />;\n }\n if (lowerFieldName.includes('time')) {\n return <TimeInput readOnly={readOnly} label={field} key={i} />;\n }\n return <Input readOnly={readOnly} label={field} key={i} />;\n /* eslint-enable react/no-array-index-key */\n });\n\n return formElements.length <= 3 ? (\n <>{formElements}</>\n ) : (\n <Grid\n container={{\n cols: 'repeat(2, 1fr)',\n colGap: number('colGap', 2),\n rowGap: number('rowGap', 2)\n }}\n >\n {formElements}\n </Grid>\n );\n };\n\n const serviceTasksEmpty = boolean('Tasks empty', false);\n const handleLaunch = (id: string) => {\n performTaskAction(id, 'launch');\n };\n\n const handleDismiss = (id: string) => {\n performTaskAction(id, 'dismiss');\n };\n\n const getTaskName = (taskName: TaskProps['name']) => {\n return taskName === 'Address change' ? 'Address change details' : taskName;\n };\n\n return (\n <TaskManagerComp\n ref={taskManagerRef}\n tasks={\n serviceTasksEmpty\n ? []\n : serviceTasks.map(task => {\n if (task.id === activeTaskId) {\n return {\n ...task,\n active: true\n };\n }\n return task;\n })\n }\n emptyText='No tasks added'\n banner={{\n icon: 'headset',\n content:\n 'Hi Ms. Ventura, I see that you are interested in changing your monthly due date, is that correct ?'\n }}\n onTaskLaunch={onTaskLaunch || handleLaunch}\n onTaskDismiss={onTaskDismiss || handleDismiss}\n addTask={{\n items: TaskPickerMockData.tasks,\n onAdd: renderTasks\n }}\n wrapUp={\n wrapUp || {\n disable: disableWrapUp,\n onClick: () => {\n performTaskAction(WrapUpTask.id, 'launch');\n setDisableWrapUp(true);\n },\n active: activeTaskId === WrapUpTask.id,\n showTab: isWrapUpTabVisible\n }\n }\n main={\n main || (\n <TaskView\n header={\n <Flex container={{ justify: 'start', gap: 1, alignItems: 'center' }}>\n <Text variant='h3'>\n {activeTaskId === WrapUpTask.id\n ? WrapUpTask.name\n : getTaskName(activeServiceTask?.name as TaskProps['name'])}\n </Text>\n <StyledStatus\n variant={\n activeTaskId === WrapUpTask.id\n ? WrapUpTask.variant\n : (activeServiceTask.status &&\n (activeServiceTask.status?.variant as StatusProps['variant'])) ||\n 'info'\n }\n >\n {activeTaskId === WrapUpTask.id\n ? WrapUpTask.status\n : activeServiceTask.status && activeServiceTask!.status!.text}\n </StyledStatus>\n </Flex>\n }\n actions={\n <MenuButton\n ref={formActionsElemRef}\n menu={{\n items: array('actions', ['Close task', 'Dismiss task', 'Resolve task']).map(\n name => ({\n primary: name,\n id: name,\n onClick: action(`Clicked ${name}`)\n })\n )\n }}\n text='Actions'\n />\n }\n >\n <Form\n id='forming'\n actions={\n activeServiceTask?.isResolved ? (\n <Flex container={{ justify: 'end' }} item={{ grow: 1 }}>\n <Button\n name='Close'\n variant='primary'\n onClick={() => {\n performTaskAction(activeTaskId, 'cancel');\n }}\n >\n Close\n </Button>\n </Flex>\n ) : (\n <>\n <Button\n name='Cancel'\n onClick={() => {\n performTaskAction(activeTaskId, 'cancel');\n }}\n >\n Cancel\n </Button>\n <div>\n <Button\n name='Submit'\n variant='primary'\n onClick={() => {\n performTaskAction(activeTaskId, 'submit');\n }}\n >\n Submit\n </Button>\n </div>\n </>\n )\n }\n >\n <Grid container={{ rowGap: 2 }}>\n {activeTaskId === WrapUpTask.id ? (\n <Timeline activity={activity} currentTime={new Date()} />\n ) : (\n getFormElements(activeServiceTask?.isResolved || false)\n )}\n </Grid>\n </Form>\n </TaskView>\n )\n }\n />\n );\n};\n"]}
@@ -1,6 +1,5 @@
1
- /// <reference types="react" />
2
1
  import { EmailComposerProps, ViewAnalysisProps } from '@pega/cosmos-react-social';
3
- export declare const emailBodyContent: JSX.Element;
2
+ export declare const emailBodyContent = "<div>Hi, <br /> <br /><div>Can you please change my address in the SSN.</div> <br /> <br />Regards, <br />Sara Davis </div>";
4
3
  export declare const emailAttachments: EmailComposerProps['attachments'];
5
4
  export declare const participants: EmailComposerProps['participants'];
6
5
  export declare const toParticipants: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"Email.mocks.d.ts","sourceRoot":"","sources":["../../../src/social/Email/Email.mocks.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAa,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE7F,eAAO,MAAM,gBAAgB,aAK5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,aAAa,CAS9D,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAgC3D,CAAC;AAEF,eAAO,MAAM,cAAc,UAEiC,CAAC;AAC7D,eAAO,MAAM,cAAc,UAEiC,CAAC;AAC7D,eAAO,MAAM,eAAe,UAEgC,CAAC;AAE7D,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,SAAS,CAsL7D,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8GzB,CAAC"}
1
+ {"version":3,"file":"Email.mocks.d.ts","sourceRoot":"","sources":["../../../src/social/Email/Email.mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAa,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE7F,eAAO,MAAM,gBAAgB,gIACkG,CAAC;AAEhI,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,aAAa,CAS9D,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAgC3D,CAAC;AAEF,eAAO,MAAM,cAAc,UAEiC,CAAC;AAC7D,eAAO,MAAM,cAAc,UAEiC,CAAC;AAC7D,eAAO,MAAM,eAAe,UAEgC,CAAC;AAE7D,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,SAAS,CAsL7D,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8GzB,CAAC"}
@@ -1,5 +1,4 @@
1
- import { RichTextViewer } from '@pega/cosmos-react-rte';
2
- export const emailBodyContent = (<RichTextViewer content='<div>Hi, <br /> <br /><div>Can you please change my address in the SSN.</div> <br /> <br />Regards, <br />Sara Davis </div>' type='html'/>);
1
+ export const emailBodyContent = '<div>Hi, <br /> <br /><div>Can you please change my address in the SSN.</div> <br /> <br />Regards, <br />Sara Davis </div>';
3
2
  export const emailAttachments = [
4
3
  {
5
4
  name: 'Policy.doc',
@@ -346,4 +345,4 @@ export const EmailMockData = {
346
345
  }
347
346
  ]
348
347
  };
349
- //# sourceMappingURL=Email.mocks.jsx.map
348
+ //# sourceMappingURL=Email.mocks.js.map