@pega/react-sdk-overrides 24.1.10 → 24.2.11

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 (103) 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 +11 -2
  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 +6 -6
  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 +4 -7
  15. package/lib/field/Checkbox/Checkbox.tsx +4 -4
  16. package/lib/field/Currency/Currency.tsx +10 -7
  17. package/lib/field/Date/Date.tsx +27 -42
  18. package/lib/field/DateTime/DateTime.tsx +39 -36
  19. package/lib/field/Decimal/Decimal.tsx +9 -4
  20. package/lib/field/Dropdown/Dropdown.tsx +29 -22
  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.tsx +8 -14
  25. package/lib/field/Percentage/Percentage.tsx +8 -4
  26. package/lib/field/Phone/Phone.tsx +6 -5
  27. package/lib/field/Phone/config-ext.json +8 -0
  28. package/lib/field/RadioButtons/RadioButtons.tsx +3 -6
  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 +3 -4
  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 +28 -21
  37. package/lib/field/URL/URL.tsx +26 -7
  38. package/lib/field/UserReference/UserReference.tsx +3 -5
  39. package/lib/helpers/common-utils.ts +24 -1
  40. package/lib/helpers/field-group-utils.ts +2 -2
  41. package/lib/helpers/formatters/Currency.ts +11 -16
  42. package/lib/helpers/formatters/common.ts +2 -1
  43. package/lib/helpers/formatters/index.ts +2 -4
  44. package/lib/helpers/simpleTableHelpers.ts +1 -1
  45. package/lib/infra/ActionButtons/ActionButtons.tsx +3 -3
  46. package/lib/infra/Assignment/Assignment.tsx +12 -12
  47. package/lib/infra/Containers/FlowContainer/FlowContainer.tsx +16 -28
  48. package/lib/infra/Containers/FlowContainer/helpers.ts +1 -5
  49. package/lib/infra/Containers/ModalViewContainer/ListViewActionButtons/ListViewActionButtons.tsx +9 -4
  50. package/lib/infra/Containers/ModalViewContainer/ModalViewContainer.tsx +8 -8
  51. package/lib/infra/Containers/SimpleView/helper.ts +1 -1
  52. package/lib/infra/Containers/ViewContainer/ViewContainer.tsx +1 -1
  53. package/lib/infra/DashboardFilter/DashboardFilter.tsx +3 -4
  54. package/lib/infra/DashboardFilter/filterUtils.tsx +3 -4
  55. package/lib/infra/DeferLoad/DeferLoad.tsx +8 -8
  56. package/lib/infra/MultiStep/MultiStep.tsx +15 -14
  57. package/lib/infra/NavBar/NavBar.css +1 -0
  58. package/lib/infra/NavBar/NavBar.tsx +25 -17
  59. package/lib/infra/RootContainer/RootContainer.tsx +5 -6
  60. package/lib/infra/Stages/Stages.tsx +4 -4
  61. package/lib/infra/VerticalTabs/LeftAlignVerticalTabs/LeftAlignVerticalTabs.tsx +4 -3
  62. package/lib/infra/VerticalTabs/VerticalTabs/VerticalTabs.tsx +2 -2
  63. package/lib/infra/View/View.tsx +37 -3
  64. package/lib/template/AppShell/AppShell.tsx +60 -10
  65. package/lib/template/BannerPage/config-ext.json +9 -0
  66. package/lib/template/CaseView/CaseView.tsx +10 -9
  67. package/lib/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +7 -7
  68. package/lib/template/Confirmation/Confirmation.tsx +3 -2
  69. package/lib/template/DataReference/DataReference.tsx +2 -2
  70. package/lib/template/Details/Details/Details.tsx +2 -2
  71. package/lib/template/Details/DetailsSubTabs/DetailsSubTabs.tsx +3 -3
  72. package/lib/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +2 -2
  73. package/lib/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +2 -2
  74. package/lib/template/Details/DynamicTabs/DynamicTabs.tsx +4 -4
  75. package/lib/template/FieldGroupTemplate/FieldGroupTemplate.tsx +10 -5
  76. package/lib/template/InlineDashboard/InlineDashboard.tsx +2 -2
  77. package/lib/template/InlineDashboardPage/config-ext.json +9 -0
  78. package/lib/template/ListView/ListView.tsx +79 -70
  79. package/lib/template/ListView/utils.ts +1 -2
  80. package/lib/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +2 -2
  81. package/lib/template/OneColumn/OneColumn/OneColumn.tsx +2 -2
  82. package/lib/template/PromotedFilters/PromotedFilters.tsx +1 -2
  83. package/lib/template/SimpleTable/SimpleTable/SimpleTable.tsx +0 -2
  84. package/lib/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +110 -86
  85. package/lib/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +2 -4
  86. package/lib/template/SubTabs/SubTabs.tsx +2 -2
  87. package/lib/template/TwoColumn/TwoColumn/TwoColumn.tsx +2 -2
  88. package/lib/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +2 -2
  89. package/lib/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +2 -2
  90. package/lib/template/WssNavBar/WssNavBar.tsx +9 -9
  91. package/lib/widget/AppAnnouncement/AppAnnouncement.tsx +2 -2
  92. package/lib/widget/Attachment/Attachment.css +1 -0
  93. package/lib/widget/Attachment/Attachment.tsx +7 -9
  94. package/lib/widget/CaseHistory/CaseHistory.tsx +12 -10
  95. package/lib/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +1 -1
  96. package/lib/widget/FileUtility/FileUtility/FileUtility.tsx +5 -4
  97. package/lib/widget/Followers/Followers.tsx +2 -2
  98. package/lib/widget/QuickCreate/QuickCreate.tsx +0 -1
  99. package/lib/widget/QuickCreate/config-ext.json +9 -0
  100. package/lib/widget/SummaryItem/SummaryItem.tsx +4 -3
  101. package/lib/widget/ToDo/ToDo.tsx +92 -22
  102. package/package.json +1 -1
  103. /package/lib/infra/Containers/{helpers.ts → container-helpers.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { Alert } from '@material-ui/lab';
1
+ import { Alert } from '@mui/material';
2
2
 
3
3
  // AlertBanner is one of the few components that does NOT have getPConnect.
4
4
  // So, no need to extend PConnProps
@@ -1,4 +1,4 @@
1
- import Grid from '@material-ui/core/Grid';
1
+ import Grid from '@mui/material/Grid';
2
2
  import './Banner.css';
3
3
 
4
4
  // AlertBanner is one of the few components that does NOT have getPConnect.
@@ -13,6 +13,5 @@
13
13
 
14
14
  .psdk-case-summary-fields {
15
15
  padding: calc(2 * 0.5rem);
16
- display: grid;
17
16
  grid-row-gap: calc(2 * 0.5rem);
18
17
  }
@@ -1,7 +1,7 @@
1
1
  import { useState, useEffect } from 'react';
2
2
  import isDeepEqual from 'fast-deep-equal/react';
3
- import Grid from '@material-ui/core/Grid';
4
- import TextField from '@material-ui/core/TextField';
3
+ import Grid from '@mui/material/Grid';
4
+ import TextField from '@mui/material/TextField';
5
5
 
6
6
  import { getDateFormatInfo } from '@pega/react-sdk-components/lib/components/helpers/date-format-utils';
7
7
  import { getCurrencyOptions } from '@pega/react-sdk-components/lib/components/field/Currency/currency-utils';
@@ -43,6 +43,7 @@ export default function CaseSummaryFields(props: CaseSummaryFieldsProps) {
43
43
  default:
44
44
  return (
45
45
  <TextField
46
+ variant='standard'
46
47
  value='---'
47
48
  label={field.config.label}
48
49
  InputProps={{
@@ -61,6 +62,7 @@ export default function CaseSummaryFields(props: CaseSummaryFieldsProps) {
61
62
  case 'dropdown':
62
63
  return (
63
64
  <TextField
65
+ variant='standard'
64
66
  value={field.config.value}
65
67
  label={field.config.label}
66
68
  InputProps={{
@@ -77,6 +79,7 @@ export default function CaseSummaryFields(props: CaseSummaryFieldsProps) {
77
79
 
78
80
  return (
79
81
  <TextField
82
+ variant='standard'
80
83
  value={fieldValue}
81
84
  label={fieldLabel}
82
85
  InputProps={{
@@ -90,6 +93,7 @@ export default function CaseSummaryFields(props: CaseSummaryFieldsProps) {
90
93
  case 'status':
91
94
  return (
92
95
  <TextField
96
+ variant='standard'
93
97
  className='psdk-csf-status-style'
94
98
  value={field.config.value}
95
99
  label={field.config.label}
@@ -105,6 +109,7 @@ export default function CaseSummaryFields(props: CaseSummaryFieldsProps) {
105
109
  return (
106
110
  <a href={`tel:${displayPhone}`}>
107
111
  <TextField
112
+ variant='standard'
108
113
  value={field.config.value}
109
114
  label={field.config.label}
110
115
  InputProps={{
@@ -124,6 +129,7 @@ export default function CaseSummaryFields(props: CaseSummaryFieldsProps) {
124
129
  return (
125
130
  <a href={`mailto:${displayEmail}`}>
126
131
  <TextField
132
+ variant='standard'
127
133
  value={field.config.value}
128
134
  label={field.config.label}
129
135
  InputProps={{
@@ -145,6 +151,7 @@ export default function CaseSummaryFields(props: CaseSummaryFieldsProps) {
145
151
 
146
152
  return (
147
153
  <TextField
154
+ variant='standard'
148
155
  value={format(field.config.value, field.type, {
149
156
  format: theFormat
150
157
  })}
@@ -161,6 +168,7 @@ export default function CaseSummaryFields(props: CaseSummaryFieldsProps) {
161
168
  const theCurrencyOptions = getCurrencyOptions(field.config?.currencyISOCode);
162
169
  return (
163
170
  <TextField
171
+ variant='standard'
164
172
  value={format(field.config.value, field.type, theCurrencyOptions)}
165
173
  label={field.config.label}
166
174
  InputProps={{
@@ -175,6 +183,7 @@ export default function CaseSummaryFields(props: CaseSummaryFieldsProps) {
175
183
  case 'userreference':
176
184
  return (
177
185
  <TextField
186
+ variant='standard'
178
187
  value={format(field.config.value, field.type)}
179
188
  label={field.config.label}
180
189
  InputProps={{
@@ -1,8 +1,8 @@
1
1
  /* eslint-disable react/no-array-index-key */
2
2
  import React, { createElement, isValidElement } from 'react';
3
- import Grid from '@material-ui/core/Grid';
4
- import Typography from '@material-ui/core/Typography';
5
- import { makeStyles } from '@material-ui/core/styles';
3
+ import Grid from '@mui/material/Grid';
4
+ import Typography from '@mui/material/Typography';
5
+ import makeStyles from '@mui/styles/makeStyles';
6
6
 
7
7
  import createPConnectComponent from '@pega/react-sdk-components/lib/bridge/react_pconnect';
8
8
  import { format } from '@pega/react-sdk-components/lib/components/helpers/formatters';
@@ -48,7 +48,7 @@ export default function DetailsFields(props: DetailsFieldsProps) {
48
48
  const { label } = thePConn.getConfigProps();
49
49
  const configObj = thePConn?.getReferencedView();
50
50
  configObj.config.readOnly = true;
51
- configObj.config.displayMode = 'LABELS_LEFT';
51
+ configObj.config.displayMode = 'DISPLAY_ONLY';
52
52
  const propToUse = { ...thePConn.getInheritedProps() };
53
53
  configObj.config.label = theCompType === 'reference' ? propToUse?.label : label;
54
54
  fieldComponents.push({
@@ -1,8 +1,8 @@
1
1
  import { PropsWithChildren, useState } from 'react';
2
- import Grid from '@material-ui/core/Grid';
3
- import { makeStyles } from '@material-ui/core/styles';
4
- import KeyboardArrowRightIcon from '@material-ui/icons/KeyboardArrowRight';
5
- import KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';
2
+ import Grid from '@mui/material/Grid';
3
+ import makeStyles from '@mui/styles/makeStyles';
4
+ import KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight';
5
+ import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';
6
6
 
7
7
  // FieldGroupProps is one of the few components that does NOT have getPConnect.
8
8
  // So, no need to extend PConnProps
@@ -1,6 +1,6 @@
1
- import Grid from '@material-ui/core/Grid';
2
- import Divider from '@material-ui/core/Divider';
3
- import Link from '@material-ui/core/Link';
1
+ import Grid from '@mui/material/Grid';
2
+ import Divider from '@mui/material/Divider';
3
+ import Link from '@mui/material/Link';
4
4
 
5
5
  import { Utils } from '@pega/react-sdk-components/lib/components/helpers/utils';
6
6
 
@@ -47,7 +47,7 @@ export default function FieldGroupList(props: FieldGroupListProps) {
47
47
  </Grid>
48
48
  ))}
49
49
  {props.onAdd && (
50
- <Link onClick={props.onAdd} style={{ cursor: 'pointer' }}>
50
+ <Link onClick={props.onAdd} style={{ cursor: 'pointer' }} underline='hover'>
51
51
  +Add
52
52
  </Link>
53
53
  )}
@@ -1,6 +1,6 @@
1
- import Grid from '@material-ui/core/Grid';
2
- import Typography from '@material-ui/core/Typography';
3
- import { makeStyles } from '@material-ui/core/styles';
1
+ import Grid from '@mui/material/Grid';
2
+ import Typography from '@mui/material/Typography';
3
+ import makeStyles from '@mui/styles/makeStyles';
4
4
 
5
5
  // FieldValueList is one of the few components that does NOT have getPConnect.
6
6
  // So, no need to extend PConnProps
@@ -51,7 +51,7 @@ export default function FieldValueList(props: FieldValueListProps) {
51
51
 
52
52
  function getGridItemLabel() {
53
53
  return (
54
- <Grid item xs={variant === 'stacked' ? 12 : 6} className={variant === 'stacked' ? classes.noPaddingBottom : ''}>
54
+ <Grid item xs={variant === 'stacked' ? 12 : 4} className={variant === 'stacked' ? classes.noPaddingBottom : ''}>
55
55
  <Typography variant='body2' component='span' className={`${classes.fieldLabel}`}>
56
56
  {name}
57
57
  </Typography>
@@ -63,7 +63,7 @@ export default function FieldValueList(props: FieldValueListProps) {
63
63
  const formattedValue = formatItemValue(value);
64
64
 
65
65
  return (
66
- <Grid item xs={variant === 'stacked' ? 12 : 6} className={variant === 'stacked' ? classes.noPaddingTop : ''}>
66
+ <Grid item xs={variant === 'stacked' || !name ? 12 : 8} className={variant === 'stacked' ? classes.noPaddingTop : ''}>
67
67
  {isHtml ? (
68
68
  // eslint-disable-next-line react/no-danger
69
69
  <div dangerouslySetInnerHTML={{ __html: formattedValue }} />
@@ -78,7 +78,7 @@ export default function FieldValueList(props: FieldValueListProps) {
78
78
 
79
79
  return (
80
80
  <Grid container spacing={4} justifyContent='space-between'>
81
- {getGridItemLabel()}
81
+ {name ? getGridItemLabel() : null}
82
82
  {getGridItemValue()}
83
83
  </Grid>
84
84
  );
@@ -1,9 +1,9 @@
1
1
  import React, { useState } from 'react';
2
- import TextField from '@material-ui/core/TextField';
3
- import Popover from '@material-ui/core/Popover';
4
- import Grid from '@material-ui/core/Grid';
5
- import Typography from '@material-ui/core/Typography';
6
- import { makeStyles } from '@material-ui/core/styles';
2
+ import TextField from '@mui/material/TextField';
3
+ import Popover from '@mui/material/Popover';
4
+ import Grid from '@mui/material/Grid';
5
+ import Typography from '@mui/material/Typography';
6
+ import makeStyles from '@mui/styles/makeStyles';
7
7
 
8
8
  import Utils from '@pega/react-sdk-components/lib/components/helpers/utils';
9
9
  import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
@@ -189,6 +189,7 @@ export default function Operator(props: OperatorProps) {
189
189
  return (
190
190
  <>
191
191
  <TextField
192
+ variant='standard'
192
193
  defaultValue={caseOpName}
193
194
  label={caseOpLabel}
194
195
  onClick={showOperatorDetails}
@@ -1,6 +1,6 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import { Card, CardContent, CardHeader, Typography } from '@material-ui/core';
3
- import { makeStyles } from '@material-ui/core/styles';
2
+ import { Card, CardContent, CardHeader, Typography } from '@mui/material';
3
+ import makeStyles from '@mui/styles/makeStyles';
4
4
 
5
5
  // Pulse is one of the few components that does NOT have getPConnect.
6
6
  // So, no need to extend PConnProps
@@ -1,6 +1,7 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import { Editor } from '@tinymce/tinymce-react';
3
- import { FormControl, FormHelperText, InputLabel, makeStyles } from '@material-ui/core';
3
+ import { FormControl, FormHelperText, InputLabel } from '@mui/material';
4
+ import makeStyles from '@mui/styles/makeStyles';
4
5
 
5
6
  import { useAfterInitialEffect, useConsolidatedRef, useUID } from '@pega/react-sdk-components/lib/hooks';
6
7
 
@@ -107,7 +108,7 @@ const RichTextEditor = forwardRef(function RichTextEditor(props: RichTextEditorP
107
108
  }
108
109
 
109
110
  return (
110
- <FormControl data-test-id={testId} error={error} required={required}>
111
+ <FormControl variant='standard' data-test-id={testId} error={error} required={required}>
111
112
  {!labelHidden && (
112
113
  <InputLabel id='demo-simple-select-error-label' className={classes.fieldLabel}>
113
114
  {label}
@@ -1,4 +1,4 @@
1
- import { Button } from '@material-ui/core';
1
+ import { Button } from '@mui/material';
2
2
  import './WssQuickCreate.css';
3
3
 
4
4
  // WssQuickCreate is one of the few components that does NOT have getPConnect.
@@ -1,6 +1,6 @@
1
1
  import { useEffect, useState } from 'react';
2
- import { TextField } from '@material-ui/core';
3
- import Autocomplete from '@material-ui/lab/Autocomplete';
2
+ import { TextField } from '@mui/material';
3
+ import Autocomplete from '@mui/material/Autocomplete';
4
4
  import isDeepEqual from 'fast-deep-equal/react';
5
5
 
6
6
  import Utils from '@pega/react-sdk-components/lib/components/helpers/utils';
@@ -150,7 +150,7 @@ export default function AutoComplete(props: AutoCompleteProps) {
150
150
  }
151
151
  }, []);
152
152
 
153
- if (displayMode === 'LABELS_LEFT') {
153
+ if (displayMode === 'DISPLAY_ONLY') {
154
154
  return <FieldValueList name={hideLabel ? '' : label} value={value} />;
155
155
  }
156
156
 
@@ -191,7 +191,7 @@ export default function AutoComplete(props: AutoCompleteProps) {
191
191
  getOptionLabel={(option: IOption) => {
192
192
  return option.value ? option.value : '';
193
193
  }}
194
- getOptionSelected={(option: any) => {
194
+ isOptionEqualToValue={(option: any) => {
195
195
  return option.value ? option.value : '';
196
196
  }}
197
197
  fullWidth
@@ -1,6 +1,6 @@
1
1
  import React, { useState } from 'react';
2
- import { Button, Grid, IconButton, Snackbar } from '@material-ui/core';
3
- import CloseIcon from '@material-ui/icons/Close';
2
+ import { Button, Grid, IconButton, Snackbar } from '@mui/material';
3
+ import CloseIcon from '@mui/icons-material/Close';
4
4
 
5
5
  import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
6
6
  import './CancelAlert.css';
@@ -58,14 +58,12 @@ export default function CancelAlert(props: CancelAlertProps) {
58
58
  function cancelHandler() {
59
59
  if (isReverseCoexistence) {
60
60
  dismiss(true);
61
- // @ts-ignore - An argument for 'payload' was not provided.
62
61
  PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.REVERSE_COEXISTENCE_EVENTS.HANDLE_DISCARD);
63
62
  } else if (!isDataObject && !isLocalAction && !isBulkAction) {
64
63
  disableButton(btnIds.DELETE);
65
64
  actionsAPI
66
65
  .deleteCaseInCreateStage(containerItemID, hideDelete)
67
66
  .then(() => {
68
- // @ts-ignore - An argument for 'payload' was not provided.
69
67
  PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.EVENT_CANCEL);
70
68
  })
71
69
  .catch(() => {
@@ -78,18 +76,17 @@ export default function CancelAlert(props: CancelAlertProps) {
78
76
  });
79
77
  } else if (isLocalAction) {
80
78
  dismiss(true);
81
- actionsAPI.cancelAssignment(containerItemID);
79
+ actionsAPI.cancelAssignment(containerItemID, false);
82
80
  } else if (isBulkAction) {
83
81
  dismiss(true);
84
82
  actionsAPI.cancelBulkAction(containerItemID);
85
83
  } else {
86
84
  dismiss(true);
87
- // @ts-ignore - Argument of type '{ containerItemID: string; skipReleaseLockRequest: any; }' is not assignable to parameter of type 'ContainerInfo'.
88
85
  containerManagerAPI.removeContainerItem({ containerItemID, skipReleaseLockRequest });
89
86
  }
90
87
  }
91
88
 
92
- function handleSnackbarClose(event: React.SyntheticEvent | React.MouseEvent, reason?: string) {
89
+ function handleSnackbarClose(event: React.SyntheticEvent<any> | Event, reason?: string) {
93
90
  if (reason === 'clickaway') {
94
91
  return;
95
92
  }
@@ -1,12 +1,12 @@
1
1
  /* eslint-disable react/no-array-index-key */
2
2
  import { useState, useEffect } from 'react';
3
- import { Checkbox, FormControl, FormControlLabel, FormGroup, FormHelperText, FormLabel } from '@material-ui/core';
3
+ import { Checkbox, FormControl, FormControlLabel, FormGroup, FormHelperText, FormLabel } from '@mui/material';
4
+ import makeStyles from '@mui/styles/makeStyles';
4
5
 
5
6
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
6
7
  import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
7
8
  import { insertInstruction, deleteInstruction, updateNewInstuctions } from '@pega/react-sdk-components/lib/components/helpers/instructions-utils';
8
9
  import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
9
- import { makeStyles } from '@material-ui/core/styles';
10
10
 
11
11
  interface CheckboxProps extends Omit<PConnFieldProps, 'value'> {
12
12
  // If any, enter additional props that only exist on Checkbox here
@@ -77,7 +77,7 @@ export default function CheckboxComponent(props: CheckboxProps) {
77
77
  }
78
78
  }, [thePConn]);
79
79
 
80
- if (displayMode === 'LABELS_LEFT') {
80
+ if (displayMode === 'DISPLAY_ONLY') {
81
81
  return <FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} />;
82
82
  }
83
83
 
@@ -161,7 +161,7 @@ export default function CheckboxComponent(props: CheckboxProps) {
161
161
  }
162
162
 
163
163
  return (
164
- <FormControl required={required} error={status === 'error'}>
164
+ <FormControl variant='standard' required={required} error={status === 'error'}>
165
165
  {!hideLabel && <FormLabel component='legend'>{label}</FormLabel>}
166
166
  <FormGroup>{theCheckbox}</FormGroup>
167
167
  <FormHelperText>{helperTextToDisplay}</FormHelperText>
@@ -1,6 +1,6 @@
1
- import { TextField } from '@material-ui/core';
2
- import { useState } from 'react';
1
+ import { useEffect, useState } from 'react';
3
2
  import { NumericFormat } from 'react-number-format';
3
+ import { TextField } from '@mui/material';
4
4
  import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
5
5
  import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
6
6
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
@@ -45,9 +45,11 @@ export default function Currency(props: CurrrencyProps) {
45
45
  const helperTextToDisplay = validatemessage || helperText;
46
46
  const [values, setValues] = useState(value.toString());
47
47
 
48
- const testProp = {
49
- 'data-test-id': testId
50
- };
48
+ const testProp = { 'data-test-id': testId };
49
+
50
+ useEffect(() => {
51
+ setValues(value.toString());
52
+ }, [value]);
51
53
 
52
54
  // currencySymbols looks like this: { theCurrencySymbol: '$', theDecimalIndicator: '.', theSeparator: ',' }
53
55
  const theSymbols = getCurrencyCharacters(currencyISOCode);
@@ -56,7 +58,7 @@ export default function Currency(props: CurrrencyProps) {
56
58
  const theCurrSep = theSymbols.theDigitGroupSeparator;
57
59
 
58
60
  const theCurrencyOptions = getCurrencyOptions(currencyISOCode);
59
- const formattedValue = format(value, pConn.getComponentName().toLowerCase(), theCurrencyOptions);
61
+ const formattedValue = format(value, pConn.getComponentName()?.toLowerCase(), theCurrencyOptions);
60
62
 
61
63
  let readOnlyProp = {}; // Note: empty if NOT ReadOnly
62
64
 
@@ -67,7 +69,7 @@ export default function Currency(props: CurrrencyProps) {
67
69
  let currencyProp = {};
68
70
  currencyProp = { prefix: theCurrSym, decimalSeparator: theCurrDec, thousandSeparator: theCurrSep };
69
71
 
70
- if (displayMode === 'LABELS_LEFT') {
72
+ if (displayMode === 'DISPLAY_ONLY') {
71
73
  return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} />;
72
74
  }
73
75
 
@@ -86,6 +88,7 @@ export default function Currency(props: CurrrencyProps) {
86
88
  return (
87
89
  <NumericFormat
88
90
  valueIsNumericString
91
+ variant={readOnly ? 'standard' : 'outlined'}
89
92
  label={label}
90
93
  helperText={helperTextToDisplay}
91
94
  placeholder={placeholder ?? ''}
@@ -1,4 +1,6 @@
1
- import { KeyboardDatePicker } from '@material-ui/pickers';
1
+ import { useEffect, useState } from 'react';
2
+ import { DatePicker } from '@mui/x-date-pickers/DatePicker';
3
+ import dayjs, { Dayjs } from 'dayjs';
2
4
 
3
5
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
4
6
  import { format } from '@pega/react-sdk-components/lib/components/helpers/formatters';
@@ -20,22 +22,9 @@ export default function Date(props: DateProps) {
20
22
  const TextInput = getComponentFromMap('TextInput');
21
23
  const FieldValueList = getComponentFromMap('FieldValueList');
22
24
 
23
- const {
24
- getPConnect,
25
- label,
26
- required,
27
- disabled,
28
- value = '',
29
- validatemessage,
30
- status,
31
- onChange,
32
- onBlur,
33
- readOnly,
34
- testId,
35
- helperText,
36
- displayMode,
37
- hideLabel
38
- } = props;
25
+ const { getPConnect, label, required, disabled, value, validatemessage, status, readOnly, testId, helperText, displayMode, hideLabel } = props;
26
+
27
+ const [dateValue, setDateValue] = useState<Dayjs | null>(value ? dayjs(value) : null);
39
28
 
40
29
  const pConn = getPConnect();
41
30
  const actions = pConn.getActionsApi();
@@ -50,7 +39,11 @@ export default function Date(props: DateProps) {
50
39
  dateFormatInfo.dateFormatStringLC = theDateFormat.dateFormatStringLC;
51
40
  dateFormatInfo.dateFormatMask = theDateFormat.dateFormatMask;
52
41
 
53
- if (displayMode === 'LABELS_LEFT') {
42
+ useEffect(() => {
43
+ setDateValue(dayjs(value));
44
+ }, [value]);
45
+
46
+ if (displayMode === 'DISPLAY_ONLY') {
54
47
  const formattedDate = format(props.value, 'date', {
55
48
  format: dateFormatInfo.dateFormatString
56
49
  });
@@ -77,37 +70,29 @@ export default function Date(props: DateProps) {
77
70
 
78
71
  const handleChange = date => {
79
72
  if (date && date.isValid()) {
80
- onChange({ value: getFormattedDate(date) });
81
- }
82
- };
83
-
84
- const handleAccept = date => {
85
- if (date && date.isValid()) {
73
+ setDateValue(date);
86
74
  handleEvent(actions, 'changeNblur', propName, getFormattedDate(date));
87
75
  }
88
76
  };
89
77
 
90
78
  return (
91
- <KeyboardDatePicker
92
- disableToolbar
93
- variant='inline'
94
- inputVariant='outlined'
95
- placeholder={dateFormatInfo.dateFormatStringLC}
96
- format={dateFormatInfo.dateFormatString}
97
- mask={dateFormatInfo.dateFormatMask}
98
- fullWidth
99
- autoOk
100
- required={required}
101
- disabled={disabled}
102
- error={status === 'error'}
103
- helperText={helperTextToDisplay}
104
- size='small'
79
+ <DatePicker
105
80
  label={label}
106
- value={value || null}
81
+ disabled={disabled}
82
+ format={dateFormatInfo.dateFormatString}
83
+ value={dateValue}
84
+ slotProps={{
85
+ textField: {
86
+ required,
87
+ variant: 'outlined',
88
+ placeholder: dateFormatInfo.dateFormatStringLC,
89
+ error: status === 'error',
90
+ helperText: helperTextToDisplay,
91
+ size: 'small',
92
+ InputProps: { ...testProp }
93
+ }
94
+ }}
107
95
  onChange={handleChange}
108
- onBlur={!readOnly ? onBlur : undefined}
109
- onAccept={handleAccept}
110
- InputProps={{ ...testProp }}
111
96
  />
112
97
  );
113
98
  }
@@ -1,5 +1,7 @@
1
- import { KeyboardDateTimePicker } from '@material-ui/pickers';
2
-
1
+ import { useEffect, useState } from 'react';
2
+ import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';
3
+ import dayjs, { Dayjs } from 'dayjs';
4
+ import DateFormatter from '@pega/react-sdk-components/lib/components/helpers/formatters/Date';
3
5
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
4
6
  import { format } from '@pega/react-sdk-components/lib/components/helpers/formatters';
5
7
  import { dateFormatInfoDefault, getDateFormatInfo } from '@pega/react-sdk-components/lib/components/helpers/date-format-utils';
@@ -15,21 +17,12 @@ export default function DateTime(props: DateTimeProps) {
15
17
  const TextInput = getComponentFromMap('TextInput');
16
18
  const FieldValueList = getComponentFromMap('FieldValueList');
17
19
 
18
- const {
19
- getPConnect,
20
- label,
21
- required,
22
- disabled,
23
- value = '',
24
- validatemessage,
25
- status,
26
- onChange,
27
- readOnly,
28
- testId,
29
- helperText,
30
- displayMode,
31
- hideLabel
32
- } = props;
20
+ const { getPConnect, label, required, disabled, value = '', validatemessage, status, readOnly, testId, helperText, displayMode, hideLabel } = props;
21
+
22
+ const environmentInfo = PCore.getEnvironmentInfo();
23
+ const timezone = environmentInfo && environmentInfo.getTimeZone();
24
+
25
+ const [dateValue, setDateValue] = useState<Dayjs | null>(value ? dayjs(DateFormatter.convertToTimezone(value, { timezone })) : null);
33
26
 
34
27
  const pConn = getPConnect();
35
28
  const actions = pConn.getActionsApi();
@@ -44,7 +37,11 @@ export default function DateTime(props: DateTimeProps) {
44
37
  dateFormatInfo.dateFormatStringLC = theDateFormat.dateFormatStringLC;
45
38
  dateFormatInfo.dateFormatMask = theDateFormat.dateFormatMask;
46
39
 
47
- if (displayMode === 'LABELS_LEFT') {
40
+ useEffect(() => {
41
+ setDateValue(dayjs(DateFormatter.convertToTimezone(value, { timezone })));
42
+ }, [value]);
43
+
44
+ if (displayMode === 'DISPLAY_ONLY') {
48
45
  const formattedDateTime = format(props.value, 'datetime', {
49
46
  format: `${dateFormatInfo.dateFormatString} hh:mm a`
50
47
  });
@@ -63,13 +60,16 @@ export default function DateTime(props: DateTimeProps) {
63
60
  return <TextInput {...props} value={formattedDateTime} />;
64
61
  }
65
62
 
66
- const handleChange = date => {
67
- const changeValue = date && date.isValid() ? date.toISOString() : null;
68
- onChange({ value: changeValue });
63
+ let testProp = {};
64
+
65
+ testProp = {
66
+ 'data-test-id': testId
69
67
  };
70
68
 
71
- const handleAccept = date => {
72
- const changeValue = date && date.isValid() ? date.toISOString() : null;
69
+ const handleChange = date => {
70
+ const timeZoneDateTime = (dayjs as any).tz(date.format('YYYY-MM-DDTHH:mm:ss'), timezone);
71
+ const changeValue = timeZoneDateTime && timeZoneDateTime.isValid() ? timeZoneDateTime.toISOString() : '';
72
+ setDateValue(timeZoneDateTime);
73
73
  handleEvent(actions, 'changeNblur', propName, changeValue);
74
74
  };
75
75
 
@@ -79,25 +79,28 @@ export default function DateTime(props: DateTimeProps) {
79
79
  //
80
80
 
81
81
  return (
82
- <KeyboardDateTimePicker
83
- variant='inline'
84
- inputVariant='outlined'
85
- fullWidth
86
- autoOk
87
- required={required}
82
+ <DateTimePicker
83
+ // fullWidth
84
+ // autoOk
88
85
  disabled={disabled}
89
- placeholder={`${dateFormatInfo.dateFormatStringLC} hh:mm a`}
90
86
  format={`${dateFormatInfo.dateFormatString} hh:mm a`}
91
- mask={`${dateFormatInfo.dateFormatMask} __:__ _m`}
87
+ // mask={`${dateFormatInfo.dateFormatMask} __:__ _m`}
92
88
  minutesStep={5}
93
- error={status === 'error'}
94
- helperText={helperTextToDisplay}
95
- size='small'
96
89
  label={label}
97
- value={value || null}
90
+ value={dateValue}
98
91
  onChange={handleChange}
99
- onAccept={handleAccept}
100
92
  data-test-id={testId}
93
+ slotProps={{
94
+ textField: {
95
+ variant: 'outlined',
96
+ required,
97
+ placeholder: `${dateFormatInfo.dateFormatStringLC} hh:mm a`,
98
+ error: status === 'error',
99
+ helperText: helperTextToDisplay,
100
+ size: 'small',
101
+ InputProps: { ...testProp }
102
+ }
103
+ }}
101
104
  />
102
105
  );
103
106
  }