@pega/react-sdk-overrides 23.1.12 → 24.2.10

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 (99) hide show
  1. package/lib/designSystemExtension/AlertBanner/AlertBanner.tsx +1 -1
  2. package/lib/designSystemExtension/Banner/Banner.tsx +1 -1
  3. package/lib/designSystemExtension/CaseSummaryFields/CaseSummaryFields.css +0 -1
  4. package/lib/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +13 -4
  5. package/lib/designSystemExtension/DetailsFields/DetailsFields.tsx +4 -4
  6. package/lib/designSystemExtension/FieldGroup/FieldGroup.tsx +4 -4
  7. package/lib/designSystemExtension/FieldGroupList/FieldGroupList.tsx +4 -4
  8. package/lib/designSystemExtension/FieldValueList/FieldValueList.tsx +5 -5
  9. package/lib/designSystemExtension/Operator/Operator.tsx +6 -5
  10. package/lib/designSystemExtension/Pulse/Pulse.tsx +2 -2
  11. package/lib/designSystemExtension/RichTextEditor/RichTextEditor.tsx +3 -2
  12. package/lib/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +1 -1
  13. package/lib/field/AutoComplete/AutoComplete.tsx +4 -4
  14. package/lib/field/CancelAlert/CancelAlert.tsx +5 -3
  15. package/lib/field/Checkbox/Checkbox.tsx +4 -4
  16. package/lib/field/Currency/Currency.tsx +37 -27
  17. package/lib/field/Date/Date.tsx +23 -42
  18. package/lib/field/DateTime/DateTime.tsx +29 -34
  19. package/lib/field/Decimal/Decimal.tsx +34 -20
  20. package/lib/field/Dropdown/Dropdown.tsx +3 -3
  21. package/lib/field/Email/Email.tsx +29 -8
  22. package/lib/field/Group/Group.tsx +2 -2
  23. package/lib/field/Integer/Integer.tsx +22 -8
  24. package/lib/field/{MultiSelect → Multiselect}/Multiselect.tsx +9 -15
  25. package/lib/field/Percentage/Percentage.tsx +34 -19
  26. package/lib/field/Phone/Phone.tsx +22 -12
  27. package/lib/field/Phone/config-ext.json +8 -0
  28. package/lib/field/RadioButtons/RadioButtons.tsx +3 -3
  29. package/lib/field/RichText/RichText.tsx +1 -1
  30. package/lib/field/RichText/config-ext.json +10 -0
  31. package/lib/field/ScalarList/ScalarList.tsx +4 -2
  32. package/lib/field/SemanticLink/SemanticLink.tsx +4 -4
  33. package/lib/field/TextArea/TextArea.tsx +26 -8
  34. package/lib/field/TextContent/TextContent.tsx +1 -1
  35. package/lib/field/TextInput/TextInput.tsx +2 -2
  36. package/lib/field/Time/Time.tsx +27 -20
  37. package/lib/field/URL/URL.tsx +26 -7
  38. package/lib/field/UserReference/UserReference.tsx +12 -2
  39. package/lib/helpers/common-utils.ts +1 -5
  40. package/lib/helpers/field-group-utils.ts +2 -2
  41. package/lib/helpers/simpleTableHelpers.ts +1 -1
  42. package/lib/infra/ActionButtons/ActionButtons.tsx +3 -3
  43. package/lib/infra/Assignment/Assignment.tsx +38 -7
  44. package/lib/infra/Containers/FlowContainer/FlowContainer.tsx +16 -13
  45. package/lib/infra/Containers/ModalViewContainer/ListViewActionButtons/ListViewActionButtons.tsx +7 -4
  46. package/lib/infra/Containers/ModalViewContainer/ModalViewContainer.tsx +8 -8
  47. package/lib/infra/Containers/ViewContainer/ViewContainer.tsx +1 -1
  48. package/lib/infra/DashboardFilter/DashboardFilter.tsx +2 -2
  49. package/lib/infra/DashboardFilter/filterUtils.tsx +2 -1
  50. package/lib/infra/DeferLoad/DeferLoad.tsx +8 -4
  51. package/lib/infra/MultiStep/MultiStep.tsx +17 -9
  52. package/lib/infra/NavBar/NavBar.css +1 -0
  53. package/lib/infra/NavBar/NavBar.tsx +27 -19
  54. package/lib/infra/RootContainer/RootContainer.tsx +5 -6
  55. package/lib/infra/Stages/Stages.tsx +4 -4
  56. package/lib/infra/VerticalTabs/LeftAlignVerticalTabs/LeftAlignVerticalTabs.tsx +4 -3
  57. package/lib/infra/VerticalTabs/VerticalTabs/VerticalTabs.tsx +2 -2
  58. package/lib/infra/View/View.tsx +37 -3
  59. package/lib/template/AppShell/AppShell.tsx +55 -5
  60. package/lib/template/BannerPage/config-ext.json +9 -0
  61. package/lib/template/CaseView/CaseView.tsx +7 -6
  62. package/lib/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +8 -8
  63. package/lib/template/Confirmation/Confirmation.tsx +2 -1
  64. package/lib/template/DataReference/DataReference.tsx +3 -3
  65. package/lib/template/DefaultForm/utils/index.ts +2 -7
  66. package/lib/template/Details/Details/Details.tsx +3 -3
  67. package/lib/template/Details/DetailsSubTabs/DetailsSubTabs.tsx +3 -3
  68. package/lib/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +3 -3
  69. package/lib/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +3 -3
  70. package/lib/template/Details/DynamicTabs/DynamicTabs.tsx +4 -3
  71. package/lib/template/FieldGroupTemplate/FieldGroupTemplate.tsx +12 -3
  72. package/lib/template/InlineDashboard/InlineDashboard.tsx +2 -2
  73. package/lib/template/InlineDashboardPage/config-ext.json +9 -0
  74. package/lib/template/ListView/ListView.tsx +88 -91
  75. package/lib/template/ListView/utils.ts +1 -1
  76. package/lib/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +1 -1
  77. package/lib/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +3 -3
  78. package/lib/template/OneColumn/OneColumn/OneColumn.tsx +2 -2
  79. package/lib/template/PromotedFilters/PromotedFilters.tsx +2 -1
  80. package/lib/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +46 -30
  81. package/lib/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +1 -1
  82. package/lib/template/SubTabs/SubTabs.tsx +2 -2
  83. package/lib/template/TwoColumn/TwoColumn/TwoColumn.tsx +2 -2
  84. package/lib/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +2 -2
  85. package/lib/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +3 -3
  86. package/lib/template/WssNavBar/WssNavBar.tsx +9 -9
  87. package/lib/widget/AppAnnouncement/AppAnnouncement.tsx +2 -2
  88. package/lib/widget/Attachment/Attachment.tsx +8 -4
  89. package/lib/widget/CaseHistory/CaseHistory.tsx +12 -10
  90. package/lib/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +1 -1
  91. package/lib/widget/FileUtility/FileUtility/FileUtility.tsx +5 -4
  92. package/lib/widget/Followers/Followers.tsx +2 -2
  93. package/lib/widget/QuickCreate/QuickCreate.tsx +1 -0
  94. package/lib/widget/QuickCreate/config-ext.json +9 -0
  95. package/lib/widget/SummaryItem/SummaryItem.tsx +3 -2
  96. package/lib/widget/ToDo/ToDo.tsx +91 -21
  97. package/package.json +1 -1
  98. /package/lib/field/{MultiSelect → Multiselect}/index.tsx +0 -0
  99. /package/lib/field/{MultiSelect → Multiselect}/utils.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-shadow */
2
- import React, { useState } from 'react';
2
+ import React, { useCallback, useEffect, useState } from 'react';
3
3
  import {
4
4
  Box,
5
5
  Button,
@@ -13,19 +13,53 @@ import {
13
13
  ListItem,
14
14
  ListItemText,
15
15
  ListItemSecondaryAction
16
- } from '@material-ui/core';
17
- import Snackbar from '@material-ui/core/Snackbar';
18
- import IconButton from '@material-ui/core/IconButton';
19
- import CloseIcon from '@material-ui/icons/Close';
20
- import ArrowForwardIosOutlinedIcon from '@material-ui/icons/ArrowForwardIosOutlined';
21
- import { makeStyles, useTheme } from '@material-ui/core/styles';
22
- import useMediaQuery from '@material-ui/core/useMediaQuery';
16
+ } from '@mui/material';
17
+ import Snackbar from '@mui/material/Snackbar';
18
+ import IconButton from '@mui/material/IconButton';
19
+ import CloseIcon from '@mui/icons-material/Close';
20
+ import ArrowForwardIosOutlinedIcon from '@mui/icons-material/ArrowForwardIosOutlined';
21
+ import { useTheme } from '@mui/material/styles';
22
+ import makeStyles from '@mui/styles/makeStyles';
23
+ import useMediaQuery from '@mui/material/useMediaQuery';
23
24
 
24
25
  import { Utils } from '@pega/react-sdk-components/lib/components/helpers/utils';
25
26
  import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
26
27
 
27
28
  import './ToDo.css';
28
29
 
30
+ const fetchMyWorkList = (datapage, fields, numberOfRecords, includeTotalCount, context) => {
31
+ return PCore.getDataPageUtils()
32
+ .getDataAsync(
33
+ datapage,
34
+ context,
35
+ {},
36
+ {
37
+ pageNumber: 1,
38
+ pageSize: numberOfRecords
39
+ },
40
+ {
41
+ select: Object.keys(fields).map(key => ({ field: PCore.getAnnotationUtils().getPropertyName(fields[key]) }))
42
+ },
43
+ {
44
+ invalidateCache: true,
45
+ additionalApiParams: {
46
+ includeTotalCount
47
+ }
48
+ }
49
+ )
50
+ .then(response => {
51
+ return {
52
+ ...response,
53
+ data: (Array.isArray(response?.data) ? response.data : []).map(row =>
54
+ Object.keys(fields).reduce((obj, key) => {
55
+ obj[key] = row[PCore.getAnnotationUtils().getPropertyName(fields[key])];
56
+ return obj;
57
+ }, {})
58
+ )
59
+ };
60
+ });
61
+ };
62
+
29
63
  interface ToDoProps extends PConnProps {
30
64
  // If any, enter additional props that only exist on this component
31
65
  datasource?: any;
@@ -37,7 +71,7 @@ interface ToDoProps extends PConnProps {
37
71
  itemKey?: string;
38
72
  showTodoList?: boolean;
39
73
  type?: string;
40
- // eslint-disable-next-line react/no-unused-prop-types
74
+
41
75
  context?: string;
42
76
  isConfirm?: boolean;
43
77
  }
@@ -81,12 +115,20 @@ const useStyles = makeStyles(theme => ({
81
115
  }));
82
116
 
83
117
  export default function ToDo(props: ToDoProps) {
84
- const { getPConnect, datasource = [], headerText = 'To do', showTodoList = true, myWorkList = {}, type = 'worklist', isConfirm = false } = props;
118
+ const {
119
+ getPConnect,
120
+ context,
121
+ datasource = [],
122
+ headerText = 'To do',
123
+ showTodoList = true,
124
+ myWorkList = {},
125
+ type = 'worklist',
126
+ isConfirm = false
127
+ } = props;
85
128
 
86
129
  const CONSTS = PCore.getConstants();
87
130
 
88
131
  const bLogging = true;
89
- let assignmentCount = 0;
90
132
  const currentUser = PCore.getEnvironmentInfo().getOperatorName();
91
133
  const currentUserInitials = Utils.getInitials(currentUser);
92
134
  const assignmentsSource = datasource?.source || myWorkList?.source;
@@ -106,17 +148,36 @@ export default function ToDo(props: ToDoProps) {
106
148
  const showlessLocalizedValue = localizedVal('show_less', 'CosmosFields');
107
149
  const showMoreLocalizedValue = localizedVal('show_more', 'CosmosFields');
108
150
  const canPerform = assignments?.[0]?.canPerform === 'true' || assignments?.[0]?.canPerform === true;
109
- // const { setOpen } = useNavBar();
151
+ const [count, setCount] = useState(0);
152
+
153
+ const {
154
+ WORK_BASKET: { MY_WORK_LIST }
155
+ } = PCore.getConstants();
110
156
 
111
157
  function initAssignments(): any[] {
112
158
  if (assignmentsSource) {
113
- assignmentCount = assignmentsSource.length;
114
159
  return topThreeAssignments(assignmentsSource);
115
160
  }
116
161
  // turn off todolist
117
162
  return [];
118
163
  }
119
164
 
165
+ const deferLoadWorklistItems = useCallback(
166
+ responseData => {
167
+ setCount(responseData.totalCount);
168
+ setAssignments(responseData.data);
169
+ },
170
+ [MY_WORK_LIST]
171
+ );
172
+
173
+ useEffect(() => {
174
+ if (Object.keys(myWorkList).length && myWorkList.datapage) {
175
+ fetchMyWorkList(myWorkList.datapage, getPConnect().getComponentConfig()?.myWorkList.fields, 3, true, context).then(responseData => {
176
+ deferLoadWorklistItems(responseData);
177
+ });
178
+ }
179
+ }, []);
180
+
120
181
  const getAssignmentId = assignment => {
121
182
  return type === CONSTS.TODO ? assignment.ID : assignment.id;
122
183
  };
@@ -137,7 +198,7 @@ export default function ToDo(props: ToDoProps) {
137
198
  setShowSnackbar(true);
138
199
  }
139
200
 
140
- function handleSnackbarClose(event: React.SyntheticEvent | React.MouseEvent, reason?: string) {
201
+ function handleSnackbarClose(event: React.SyntheticEvent<any> | Event, reason?: string) {
141
202
  if (reason === 'clickaway') {
142
203
  return;
143
204
  }
@@ -146,12 +207,18 @@ export default function ToDo(props: ToDoProps) {
146
207
 
147
208
  function _showMore() {
148
209
  setBShowMore(false);
149
- setAssignments(assignmentsSource);
210
+ if (type === CONSTS.WORKLIST && count && count > assignments.length && !assignmentsSource) {
211
+ fetchMyWorkList(myWorkList.datapage, getPConnect().getComponentConfig()?.myWorkList.fields, count, false, context).then(response => {
212
+ setAssignments(response.data);
213
+ });
214
+ } else {
215
+ setAssignments(assignmentsSource);
216
+ }
150
217
  }
151
218
 
152
219
  function _showLess() {
153
220
  setBShowMore(true);
154
- setAssignments(topThreeAssignments(assignmentsSource));
221
+ setAssignments(assignments => assignments.slice(0, 3));
155
222
  }
156
223
 
157
224
  function clickGo(assignment) {
@@ -223,12 +290,15 @@ export default function ToDo(props: ToDoProps) {
223
290
  );
224
291
  };
225
292
 
293
+ // eslint-disable-next-line no-nested-ternary
294
+ const getCount = () => (assignmentsSource ? assignmentsSource.length : type === CONSTS.WORKLIST ? count : 0);
295
+
226
296
  const toDoContent = (
227
297
  <>
228
298
  {showTodoList && (
229
299
  <CardHeader
230
300
  title={
231
- <Badge badgeContent={assignmentCount} overlap='rectangular' color='primary'>
301
+ <Badge badgeContent={getCount()} overlap='rectangular' color='primary'>
232
302
  <Typography variant='h6'>{headerText}&nbsp;&nbsp;&nbsp;</Typography>
233
303
  </Badge>
234
304
  }
@@ -249,7 +319,7 @@ export default function ToDo(props: ToDoProps) {
249
319
  </div>
250
320
  {(!isConfirm || canPerform) && (
251
321
  <div style={{ marginLeft: 'auto' }}>
252
- <IconButton id='go-btn' onClick={() => clickGo(assignment)}>
322
+ <IconButton id='go-btn' onClick={() => clickGo(assignment)} size='large'>
253
323
  <ArrowForwardIosOutlinedIcon />
254
324
  </IconButton>
255
325
  </div>
@@ -267,7 +337,7 @@ export default function ToDo(props: ToDoProps) {
267
337
  {showTodoList && (
268
338
  <CardHeader
269
339
  title={
270
- <Badge badgeContent={assignmentCount} overlap='rectangular' color='primary'>
340
+ <Badge badgeContent={getCount()} overlap='rectangular' color='primary'>
271
341
  <Typography variant='h6'>{headerText}&nbsp;&nbsp;&nbsp;</Typography>
272
342
  </Badge>
273
343
  }
@@ -280,7 +350,7 @@ export default function ToDo(props: ToDoProps) {
280
350
  <ListItem key={getAssignmentId(assignment)} dense divider onClick={() => clickGo(assignment)}>
281
351
  <ListItemText primary={getAssignmentName(assignment)} secondary={getListItemComponent(assignment)} />
282
352
  <ListItemSecondaryAction>
283
- <IconButton onClick={() => clickGo(assignment)}>
353
+ <IconButton onClick={() => clickGo(assignment)} size='large'>
284
354
  <ArrowForwardIosOutlinedIcon />
285
355
  </IconButton>
286
356
  </ListItemSecondaryAction>
@@ -294,7 +364,7 @@ export default function ToDo(props: ToDoProps) {
294
364
  {type === CONSTS.TODO && !isConfirm && <Card className={classes.todoWrapper}>{toDoContent}</Card>}
295
365
  {type === CONSTS.TODO && isConfirm && <>{toDoContent}</>}
296
366
 
297
- {assignmentCount > 3 && (
367
+ {getCount() > 3 && (
298
368
  <Box display='flex' justifyContent='center'>
299
369
  {bShowMore ? (
300
370
  <Button color='primary' onClick={_showMore}>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pega/react-sdk-overrides",
3
- "version": "23.1.12",
3
+ "version": "24.2.10",
4
4
  "description": "React SDK - Code for overriding components",
5
5
  "_filesComment": "During packing, npm ignores everything NOT in the files list",
6
6
  "files": [
File without changes