@pega/react-sdk-overrides 23.1.12 → 24.1.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.
- package/lib/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +2 -2
- package/lib/field/CancelAlert/CancelAlert.tsx +2 -0
- package/lib/field/Currency/Currency.tsx +36 -26
- package/lib/field/Decimal/Decimal.tsx +33 -19
- package/lib/field/{MultiSelect → Multiselect}/Multiselect.tsx +1 -1
- package/lib/field/Percentage/Percentage.tsx +33 -18
- package/lib/field/Phone/Phone.tsx +16 -7
- package/lib/field/ScalarList/ScalarList.tsx +2 -0
- package/lib/field/UserReference/UserReference.tsx +11 -1
- package/lib/helpers/common-utils.ts +1 -5
- package/lib/infra/Assignment/Assignment.tsx +28 -1
- package/lib/infra/Containers/FlowContainer/FlowContainer.tsx +5 -3
- package/lib/infra/DashboardFilter/DashboardFilter.tsx +1 -1
- package/lib/infra/DeferLoad/DeferLoad.tsx +5 -1
- package/lib/infra/MultiStep/MultiStep.tsx +3 -1
- package/lib/infra/NavBar/NavBar.tsx +2 -2
- package/lib/template/CaseView/CaseView.tsx +2 -1
- package/lib/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +1 -1
- package/lib/template/DataReference/DataReference.tsx +1 -1
- package/lib/template/DefaultForm/utils/index.ts +2 -7
- package/lib/template/Details/Details/Details.tsx +1 -1
- package/lib/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +1 -1
- package/lib/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +1 -1
- package/lib/template/FieldGroupTemplate/FieldGroupTemplate.tsx +2 -0
- package/lib/template/ListView/ListView.tsx +20 -31
- package/lib/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +1 -1
- package/lib/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +1 -1
- package/lib/template/PromotedFilters/PromotedFilters.tsx +1 -0
- package/lib/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +4 -0
- package/lib/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +1 -1
- package/lib/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +1 -1
- package/lib/widget/Attachment/Attachment.tsx +3 -2
- package/lib/widget/FileUtility/FileUtility/FileUtility.tsx +1 -1
- package/lib/widget/QuickCreate/QuickCreate.tsx +1 -0
- package/package.json +1 -1
- /package/lib/field/{MultiSelect → Multiselect}/index.tsx +0 -0
- /package/lib/field/{MultiSelect → Multiselect}/utils.ts +0 -0
|
@@ -109,9 +109,9 @@ export default function CaseSummaryFields(props: CaseSummaryFieldsProps) {
|
|
|
109
109
|
label={field.config.label}
|
|
110
110
|
InputProps={{
|
|
111
111
|
readOnly: true,
|
|
112
|
-
disableUnderline: true,
|
|
113
112
|
inputProps: {
|
|
114
|
-
style: { cursor: 'pointer' }
|
|
113
|
+
style: { cursor: 'pointer' },
|
|
114
|
+
disableUnderline: true
|
|
115
115
|
}
|
|
116
116
|
}}
|
|
117
117
|
/>
|
|
@@ -21,6 +21,7 @@ export default function CancelAlert(props: CancelAlertProps) {
|
|
|
21
21
|
const actionsAPI = getPConnect().getActionsApi();
|
|
22
22
|
const containerManagerAPI = getPConnect().getContainerManager();
|
|
23
23
|
const isLocalAction = getPConnect().getValue(PCore.getConstants().CASE_INFO.IS_LOCAL_ACTION);
|
|
24
|
+
// @ts-ignore - Property 'options' is private and only accessible within class 'C11nEnv'.
|
|
24
25
|
const isBulkAction = getPConnect()?.options?.isBulkAction;
|
|
25
26
|
const localizedVal = PCore.getLocaleUtils().getLocaleValue;
|
|
26
27
|
const broadCastUtils: any = PCore.getCoexistenceManager().getBroadcastUtils();
|
|
@@ -83,6 +84,7 @@ export default function CancelAlert(props: CancelAlertProps) {
|
|
|
83
84
|
actionsAPI.cancelBulkAction(containerItemID);
|
|
84
85
|
} else {
|
|
85
86
|
dismiss(true);
|
|
87
|
+
// @ts-ignore - Argument of type '{ containerItemID: string; skipReleaseLockRequest: any; }' is not assignable to parameter of type 'ContainerInfo'.
|
|
86
88
|
containerManagerAPI.removeContainerItem({ containerItemID, skipReleaseLockRequest });
|
|
87
89
|
}
|
|
88
90
|
}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { TextField } from '@material-ui/core';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { NumericFormat } from 'react-number-format';
|
|
3
4
|
import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
|
|
4
5
|
import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
5
6
|
import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
|
|
6
7
|
import { format } from '@pega/react-sdk-components/lib/components/helpers/formatters';
|
|
7
8
|
import { getCurrencyCharacters, getCurrencyOptions } from './currency-utils';
|
|
8
9
|
|
|
9
|
-
/* Using
|
|
10
|
+
/* Using react-number-format component here, since it allows formatting decimal values,
|
|
10
11
|
as per the locale.
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
13
|
interface CurrrencyProps extends PConnFieldProps {
|
|
14
14
|
// If any, enter additional props that only exist on Currency here
|
|
15
15
|
currencyISOCode?: string;
|
|
16
|
+
allowDecimals: boolean;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
export default function Currency(props: CurrrencyProps) {
|
|
@@ -34,15 +35,15 @@ export default function Currency(props: CurrrencyProps) {
|
|
|
34
35
|
displayMode,
|
|
35
36
|
hideLabel,
|
|
36
37
|
currencyISOCode = 'USD',
|
|
37
|
-
placeholder
|
|
38
|
+
placeholder,
|
|
39
|
+
allowDecimals
|
|
38
40
|
} = props;
|
|
39
41
|
|
|
40
42
|
const pConn = getPConnect();
|
|
41
43
|
const actions = pConn.getActionsApi();
|
|
42
44
|
const propName = (pConn.getStateProps() as any).value;
|
|
43
45
|
const helperTextToDisplay = validatemessage || helperText;
|
|
44
|
-
|
|
45
|
-
// console.log(`Currency: label: ${label} value: ${value}`);
|
|
46
|
+
const [values, setValues] = useState(value.toString());
|
|
46
47
|
|
|
47
48
|
const testProp = {
|
|
48
49
|
'data-test-id': testId
|
|
@@ -57,6 +58,15 @@ export default function Currency(props: CurrrencyProps) {
|
|
|
57
58
|
const theCurrencyOptions = getCurrencyOptions(currencyISOCode);
|
|
58
59
|
const formattedValue = format(value, pConn.getComponentName().toLowerCase(), theCurrencyOptions);
|
|
59
60
|
|
|
61
|
+
let readOnlyProp = {}; // Note: empty if NOT ReadOnly
|
|
62
|
+
|
|
63
|
+
if (readOnly) {
|
|
64
|
+
readOnlyProp = { readOnly: true };
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
let currencyProp = {};
|
|
68
|
+
currencyProp = { prefix: theCurrSym, decimalSeparator: theCurrDec, thousandSeparator: theCurrSep };
|
|
69
|
+
|
|
60
70
|
if (displayMode === 'LABELS_LEFT') {
|
|
61
71
|
return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} />;
|
|
62
72
|
}
|
|
@@ -65,34 +75,34 @@ export default function Currency(props: CurrrencyProps) {
|
|
|
65
75
|
return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} variant='stacked' />;
|
|
66
76
|
}
|
|
67
77
|
|
|
68
|
-
function currOnBlur(
|
|
69
|
-
|
|
70
|
-
handleEvent(actions, 'changeNblur', propName, inValue !== '' ? Number(inValue) : inValue);
|
|
78
|
+
function currOnBlur() {
|
|
79
|
+
handleEvent(actions, 'changeNblur', propName, values);
|
|
71
80
|
}
|
|
72
81
|
|
|
73
|
-
|
|
82
|
+
const handleChange = val => {
|
|
83
|
+
setValues(val.value);
|
|
84
|
+
};
|
|
74
85
|
|
|
75
86
|
return (
|
|
76
|
-
<
|
|
77
|
-
|
|
78
|
-
|
|
87
|
+
<NumericFormat
|
|
88
|
+
valueIsNumericString
|
|
89
|
+
label={label}
|
|
79
90
|
helperText={helperTextToDisplay}
|
|
80
91
|
placeholder={placeholder ?? ''}
|
|
81
|
-
size='small'
|
|
82
92
|
required={required}
|
|
83
93
|
disabled={disabled}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
value={value}
|
|
88
|
-
type='text'
|
|
89
|
-
outputFormat='number'
|
|
90
|
-
textAlign='left'
|
|
91
|
-
InputProps={{ inputProps: { ...testProp } }}
|
|
92
|
-
currencySymbol={theCurrSym}
|
|
93
|
-
decimalCharacter={theCurrDec}
|
|
94
|
-
digitGroupSeparator={theCurrSep}
|
|
94
|
+
onValueChange={val => {
|
|
95
|
+
handleChange(val);
|
|
96
|
+
}}
|
|
95
97
|
onBlur={!readOnly ? currOnBlur : undefined}
|
|
98
|
+
error={status === 'error'}
|
|
99
|
+
name='numberformat'
|
|
100
|
+
value={values}
|
|
101
|
+
{...currencyProp}
|
|
102
|
+
decimalScale={allowDecimals !== false ? 2 : 0}
|
|
103
|
+
fixedDecimalScale={allowDecimals}
|
|
104
|
+
InputProps={{ ...readOnlyProp, inputProps: { ...testProp } }}
|
|
105
|
+
customInput={TextField}
|
|
96
106
|
/>
|
|
97
107
|
);
|
|
98
108
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { TextField } from '@material-ui/core';
|
|
2
|
+
import { NumericFormat } from 'react-number-format';
|
|
3
|
+
import { useState } from 'react';
|
|
3
4
|
import { getCurrencyCharacters, getCurrencyOptions } from '@pega/react-sdk-components/lib/components/field/Currency/currency-utils';
|
|
4
5
|
import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
|
|
5
6
|
import { format } from '@pega/react-sdk-components/lib/components/helpers/formatters';
|
|
6
7
|
import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
|
|
7
8
|
import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
8
9
|
|
|
9
|
-
/* Using
|
|
10
|
+
/* Using react-number-format component here, since it allows formatting decimal values,
|
|
10
11
|
as per the locale.
|
|
11
12
|
*/
|
|
12
13
|
|
|
@@ -14,7 +15,7 @@ interface DecimalProps extends PConnFieldProps {
|
|
|
14
15
|
// If any, enter additional props that only exist on Decimal here
|
|
15
16
|
currencyISOCode?: string;
|
|
16
17
|
decimalPrecision?: number;
|
|
17
|
-
showGroupSeparators?:
|
|
18
|
+
showGroupSeparators?: boolean;
|
|
18
19
|
formatter?: string;
|
|
19
20
|
}
|
|
20
21
|
|
|
@@ -36,13 +37,15 @@ export default function Decimal(props: DecimalProps) {
|
|
|
36
37
|
displayMode,
|
|
37
38
|
hideLabel,
|
|
38
39
|
currencyISOCode = 'USD',
|
|
39
|
-
decimalPrecision
|
|
40
|
-
showGroupSeparators
|
|
40
|
+
decimalPrecision,
|
|
41
|
+
showGroupSeparators,
|
|
41
42
|
testId,
|
|
42
43
|
placeholder,
|
|
43
44
|
formatter
|
|
44
45
|
} = props;
|
|
45
46
|
|
|
47
|
+
const [values, setValues] = useState(value.toString());
|
|
48
|
+
|
|
46
49
|
const pConn = getPConnect();
|
|
47
50
|
const actions = pConn.getActionsApi();
|
|
48
51
|
const propName = (pConn.getStateProps() as any).value;
|
|
@@ -55,6 +58,12 @@ export default function Decimal(props: DecimalProps) {
|
|
|
55
58
|
|
|
56
59
|
const theCurrencyOptions = getCurrencyOptions(currencyISOCode);
|
|
57
60
|
|
|
61
|
+
let readOnlyProp = {}; // Note: empty if NOT ReadOnly
|
|
62
|
+
|
|
63
|
+
if (readOnly) {
|
|
64
|
+
readOnlyProp = { readOnly: true };
|
|
65
|
+
}
|
|
66
|
+
|
|
58
67
|
let formattedValue = '';
|
|
59
68
|
if (formatter === 'Currency') {
|
|
60
69
|
formattedValue = format(value, formatter.toLowerCase(), theCurrencyOptions);
|
|
@@ -74,12 +83,17 @@ export default function Decimal(props: DecimalProps) {
|
|
|
74
83
|
'data-test-id': testId
|
|
75
84
|
};
|
|
76
85
|
|
|
77
|
-
function decimalOnBlur(
|
|
78
|
-
handleEvent(actions, 'changeNblur', propName,
|
|
86
|
+
function decimalOnBlur() {
|
|
87
|
+
handleEvent(actions, 'changeNblur', propName, values);
|
|
79
88
|
}
|
|
80
89
|
|
|
90
|
+
const handleChange = val => {
|
|
91
|
+
setValues(val.value);
|
|
92
|
+
};
|
|
93
|
+
|
|
81
94
|
return (
|
|
82
|
-
<
|
|
95
|
+
<NumericFormat
|
|
96
|
+
valueIsNumericString
|
|
83
97
|
fullWidth
|
|
84
98
|
variant={readOnly ? 'standard' : 'outlined'}
|
|
85
99
|
helperText={helperTextToDisplay}
|
|
@@ -89,17 +103,17 @@ export default function Decimal(props: DecimalProps) {
|
|
|
89
103
|
disabled={disabled}
|
|
90
104
|
error={status === 'error'}
|
|
91
105
|
label={label}
|
|
92
|
-
value={
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
textAlign='left'
|
|
97
|
-
InputProps={{ inputProps: { ...testProp } }}
|
|
98
|
-
currencySymbol={readOnly && formatter === 'Currency' ? theCurrSym : ''}
|
|
99
|
-
decimalCharacter={theCurrDec}
|
|
100
|
-
digitGroupSeparator={showGroupSeparators ? theCurrSep : ''}
|
|
101
|
-
decimalPlaces={decimalPrecision}
|
|
106
|
+
value={values}
|
|
107
|
+
onValueChange={val => {
|
|
108
|
+
handleChange(val);
|
|
109
|
+
}}
|
|
102
110
|
onBlur={!readOnly ? decimalOnBlur : undefined}
|
|
111
|
+
prefix={readOnly && formatter === 'Currency' ? theCurrSym : ''}
|
|
112
|
+
decimalSeparator={theCurrDec}
|
|
113
|
+
thousandSeparator={showGroupSeparators ? theCurrSep : ''}
|
|
114
|
+
decimalScale={readOnly && formatter === 'Currency' ? undefined : decimalPrecision}
|
|
115
|
+
InputProps={{ ...readOnlyProp, inputProps: { ...testProp } }}
|
|
116
|
+
customInput={TextField}
|
|
103
117
|
/>
|
|
104
118
|
);
|
|
105
119
|
}
|
|
@@ -115,7 +115,7 @@ export default function Multiselect(props) {
|
|
|
115
115
|
const pConn = getPConnect();
|
|
116
116
|
const contextName = pConn.getContextName();
|
|
117
117
|
const listActions = pConn.getListActions();
|
|
118
|
-
const dataApiObj = useRef();
|
|
118
|
+
const dataApiObj: any = useRef();
|
|
119
119
|
|
|
120
120
|
// main search function trigger
|
|
121
121
|
const getCaseListBasedOnParams = async (searchText, group, selectedRows, currentItemsTree, isTriggeredFromSearch = false) => {
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { TextField } from '@material-ui/core';
|
|
2
|
+
import { NumericFormat } from 'react-number-format';
|
|
3
|
+
import { useState } from 'react';
|
|
3
4
|
import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
|
|
4
5
|
import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
5
6
|
import { getCurrencyCharacters, getCurrencyOptions } from '@pega/react-sdk-components/lib/components/field/Currency/currency-utils';
|
|
6
7
|
import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
|
|
7
8
|
import { format } from '@pega/react-sdk-components/lib/components/helpers/formatters';
|
|
8
9
|
|
|
9
|
-
/* Using
|
|
10
|
+
/* Using react-number-format component here, since it allows formatting decimal values,
|
|
10
11
|
as per the locale.
|
|
11
12
|
*/
|
|
12
13
|
interface PercentageProps extends PConnFieldProps {
|
|
13
14
|
// If any, enter additional props that only exist on Percentage here
|
|
14
15
|
currencyISOCode?: string;
|
|
16
|
+
showGroupSeparators?: string;
|
|
17
|
+
decimalPrecision?: number;
|
|
15
18
|
}
|
|
16
19
|
|
|
17
20
|
export default function Percentage(props: PercentageProps) {
|
|
@@ -34,9 +37,13 @@ export default function Percentage(props: PercentageProps) {
|
|
|
34
37
|
helperText,
|
|
35
38
|
displayMode,
|
|
36
39
|
hideLabel,
|
|
37
|
-
placeholder
|
|
40
|
+
placeholder,
|
|
41
|
+
showGroupSeparators,
|
|
42
|
+
decimalPrecision
|
|
38
43
|
} = props;
|
|
39
44
|
|
|
45
|
+
const [values, setValues] = useState(value.toString());
|
|
46
|
+
|
|
40
47
|
const pConn = getPConnect();
|
|
41
48
|
const actions = pConn.getActionsApi();
|
|
42
49
|
const propName = (pConn.getStateProps() as any).value;
|
|
@@ -45,7 +52,11 @@ export default function Percentage(props: PercentageProps) {
|
|
|
45
52
|
const theCurrencyOptions = getCurrencyOptions(currencyISOCode);
|
|
46
53
|
const formattedValue = format(value, pConn.getComponentName().toLowerCase(), theCurrencyOptions);
|
|
47
54
|
|
|
48
|
-
|
|
55
|
+
let readOnlyProp = {}; // Note: empty if NOT ReadOnly
|
|
56
|
+
|
|
57
|
+
if (readOnly) {
|
|
58
|
+
readOnlyProp = { readOnly: true };
|
|
59
|
+
}
|
|
49
60
|
|
|
50
61
|
if (displayMode === 'LABELS_LEFT') {
|
|
51
62
|
return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} />;
|
|
@@ -65,12 +76,17 @@ export default function Percentage(props: PercentageProps) {
|
|
|
65
76
|
const theCurrDec = theSymbols.theDecimalIndicator;
|
|
66
77
|
const theCurrSep = theSymbols.theDigitGroupSeparator;
|
|
67
78
|
|
|
68
|
-
function PercentageOnBlur(
|
|
69
|
-
handleEvent(actions, 'changeNblur', propName,
|
|
79
|
+
function PercentageOnBlur() {
|
|
80
|
+
handleEvent(actions, 'changeNblur', propName, values);
|
|
70
81
|
}
|
|
71
82
|
|
|
83
|
+
const handleChange = val => {
|
|
84
|
+
setValues(val.value);
|
|
85
|
+
};
|
|
86
|
+
|
|
72
87
|
return (
|
|
73
|
-
<
|
|
88
|
+
<NumericFormat
|
|
89
|
+
valueIsNumericString
|
|
74
90
|
fullWidth
|
|
75
91
|
variant={readOnly ? 'standard' : 'outlined'}
|
|
76
92
|
helperText={helperTextToDisplay}
|
|
@@ -78,20 +94,19 @@ export default function Percentage(props: PercentageProps) {
|
|
|
78
94
|
size='small'
|
|
79
95
|
required={required}
|
|
80
96
|
disabled={disabled}
|
|
81
|
-
readOnly={!!readOnly}
|
|
82
97
|
error={status === 'error'}
|
|
83
98
|
label={label}
|
|
84
|
-
value={
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
textAlign='left'
|
|
88
|
-
InputProps={{
|
|
89
|
-
inputProps: { ...testProp }
|
|
99
|
+
value={values}
|
|
100
|
+
onValueChange={val => {
|
|
101
|
+
handleChange(val);
|
|
90
102
|
}}
|
|
91
|
-
currencySymbol=''
|
|
92
|
-
decimalCharacter={theCurrDec}
|
|
93
|
-
digitGroupSeparator={theCurrSep}
|
|
94
103
|
onBlur={!readOnly ? PercentageOnBlur : undefined}
|
|
104
|
+
decimalSeparator={theCurrDec}
|
|
105
|
+
thousandSeparator={showGroupSeparators ? theCurrSep : ''}
|
|
106
|
+
decimalScale={decimalPrecision}
|
|
107
|
+
suffix='%'
|
|
108
|
+
InputProps={{ ...readOnlyProp, inputProps: { ...testProp } }}
|
|
109
|
+
customInput={TextField}
|
|
95
110
|
/>
|
|
96
111
|
);
|
|
97
112
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import MuiPhoneNumber from 'material-ui-phone-number';
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
2
3
|
|
|
3
4
|
import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
|
|
4
5
|
import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
6
|
+
import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
|
|
5
7
|
|
|
6
8
|
interface PhoneProps extends PConnFieldProps {
|
|
7
9
|
// If any, enter additional props that only exist on Phone here
|
|
@@ -12,6 +14,7 @@ export default function Phone(props: PhoneProps) {
|
|
|
12
14
|
const FieldValueList = getComponentFromMap('FieldValueList');
|
|
13
15
|
|
|
14
16
|
const {
|
|
17
|
+
getPConnect,
|
|
15
18
|
label,
|
|
16
19
|
required,
|
|
17
20
|
disabled,
|
|
@@ -19,7 +22,6 @@ export default function Phone(props: PhoneProps) {
|
|
|
19
22
|
validatemessage,
|
|
20
23
|
status,
|
|
21
24
|
onChange,
|
|
22
|
-
onBlur,
|
|
23
25
|
readOnly,
|
|
24
26
|
testId,
|
|
25
27
|
helperText,
|
|
@@ -27,6 +29,14 @@ export default function Phone(props: PhoneProps) {
|
|
|
27
29
|
hideLabel,
|
|
28
30
|
placeholder
|
|
29
31
|
} = props;
|
|
32
|
+
|
|
33
|
+
const pConn = getPConnect();
|
|
34
|
+
const actions = pConn.getActionsApi();
|
|
35
|
+
const propName = (pConn.getStateProps() as any).value;
|
|
36
|
+
|
|
37
|
+
const [inputValue, setInputValue] = useState(value);
|
|
38
|
+
useEffect(() => setInputValue(value), [value]);
|
|
39
|
+
|
|
30
40
|
const helperTextToDisplay = validatemessage || helperText;
|
|
31
41
|
|
|
32
42
|
let testProp = {};
|
|
@@ -69,15 +79,14 @@ export default function Phone(props: PhoneProps) {
|
|
|
69
79
|
}
|
|
70
80
|
|
|
71
81
|
const handleChange = inputVal => {
|
|
72
|
-
|
|
73
|
-
phoneValue = `+${phoneValue}`;
|
|
74
|
-
onChange({ value: phoneValue });
|
|
82
|
+
setInputValue(inputVal);
|
|
75
83
|
};
|
|
76
84
|
|
|
77
85
|
const handleBlur = event => {
|
|
78
86
|
const phoneValue = event?.target?.value;
|
|
79
|
-
|
|
80
|
-
|
|
87
|
+
let phoneNumber = phoneValue.split(' ').slice(1).join();
|
|
88
|
+
phoneNumber = phoneNumber ? `+${phoneValue && phoneValue.replace(/\D+/g, '')}` : '';
|
|
89
|
+
handleEvent(actions, 'changeNblur', propName, phoneNumber);
|
|
81
90
|
};
|
|
82
91
|
|
|
83
92
|
return (
|
|
@@ -94,7 +103,7 @@ export default function Phone(props: PhoneProps) {
|
|
|
94
103
|
onBlur={!readOnly ? handleBlur : undefined}
|
|
95
104
|
error={status === 'error'}
|
|
96
105
|
label={label}
|
|
97
|
-
value={
|
|
106
|
+
value={inputValue}
|
|
98
107
|
InputProps={{ ...testProp }}
|
|
99
108
|
/>
|
|
100
109
|
);
|
|
@@ -36,10 +36,12 @@ export default function ScalarList(props: ScalarListProps) {
|
|
|
36
36
|
{
|
|
37
37
|
type: componentType,
|
|
38
38
|
config: {
|
|
39
|
+
// @ts-ignore - Type '{ readOnly: true; displayInModal: boolean; value: any; displayMode: string; label: string; }' is not assignable to type 'ComponentMetadataConfig'.
|
|
39
40
|
value: scalarValue,
|
|
40
41
|
displayMode: 'LABELS_LEFT',
|
|
41
42
|
label,
|
|
42
43
|
...restProps,
|
|
44
|
+
// @ts-ignore - Type 'string' is not assignable to type 'boolean | undefined'.
|
|
43
45
|
readOnly: 'true'
|
|
44
46
|
}
|
|
45
47
|
},
|
|
@@ -4,6 +4,7 @@ import { Typography } from '@material-ui/core';
|
|
|
4
4
|
import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
|
|
5
5
|
import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
6
6
|
|
|
7
|
+
import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
|
|
7
8
|
import { getUserId, isUserNameAvailable } from './UserReferenceUtils';
|
|
8
9
|
|
|
9
10
|
const DROPDOWN_LIST = 'Drop-down list';
|
|
@@ -12,6 +13,7 @@ const SEARCH_BOX = 'Search box';
|
|
|
12
13
|
interface UserReferenceProps extends PConnProps {
|
|
13
14
|
// If any, enter additional props that only exist on URLComponent here
|
|
14
15
|
displayAs?: string;
|
|
16
|
+
displayMode?: string;
|
|
15
17
|
label?: string;
|
|
16
18
|
value?: any;
|
|
17
19
|
testId?: string;
|
|
@@ -36,6 +38,7 @@ const UserReference = (props: UserReferenceProps) => {
|
|
|
36
38
|
const {
|
|
37
39
|
label = '',
|
|
38
40
|
displayAs = '',
|
|
41
|
+
displayMode = '',
|
|
39
42
|
getPConnect,
|
|
40
43
|
value = '',
|
|
41
44
|
testId = '',
|
|
@@ -96,6 +99,14 @@ const UserReference = (props: UserReferenceProps) => {
|
|
|
96
99
|
|
|
97
100
|
let userReferenceComponent: any = null;
|
|
98
101
|
|
|
102
|
+
if (displayMode === 'LABELS_LEFT') {
|
|
103
|
+
return <FieldValueList name={hideLabel ? '' : label} value={userName || ''} />;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
107
|
+
return <FieldValueList name={hideLabel ? '' : label} value={userName || ''} variant='stacked' />;
|
|
108
|
+
}
|
|
109
|
+
|
|
99
110
|
if (readOnly && showAsFormattedText) {
|
|
100
111
|
if (userId) {
|
|
101
112
|
userReferenceComponent = (
|
|
@@ -172,7 +183,6 @@ const UserReference = (props: UserReferenceProps) => {
|
|
|
172
183
|
);
|
|
173
184
|
}
|
|
174
185
|
}
|
|
175
|
-
|
|
176
186
|
return userReferenceComponent;
|
|
177
187
|
};
|
|
178
188
|
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
+
/* eslint-disable import/prefer-default-export */
|
|
1
2
|
export function isEmptyObject(obj: Object): boolean {
|
|
2
3
|
return Object.keys(obj).length === 0;
|
|
3
4
|
}
|
|
4
|
-
|
|
5
|
-
export function isInfinity23OrHigher() {
|
|
6
|
-
const pCoreVersion = PCore.getPCoreVersion();
|
|
7
|
-
return ['8.23.0', '23.1.1', '23.1.2'].includes(pCoreVersion);
|
|
8
|
-
}
|
|
@@ -41,6 +41,8 @@ export default function Assignment(props: PropsWithChildren<AssignmentProps>) {
|
|
|
41
41
|
const cancelAssignment = actionsAPI.cancelAssignment.bind(actionsAPI);
|
|
42
42
|
const saveAssignment = actionsAPI.saveAssignment?.bind(actionsAPI);
|
|
43
43
|
const cancelCreateStageAssignment = actionsAPI.cancelCreateStageAssignment.bind(actionsAPI);
|
|
44
|
+
const approveCase = actionsAPI.approveCase?.bind(actionsAPI);
|
|
45
|
+
const rejectCase = actionsAPI.rejectCase?.bind(actionsAPI);
|
|
44
46
|
// const showPage = actionsAPI.showPage.bind(actionsAPI);
|
|
45
47
|
|
|
46
48
|
const [showSnackbar, setShowSnackbar] = useState(false);
|
|
@@ -167,6 +169,7 @@ export default function Assignment(props: PropsWithChildren<AssignmentProps>) {
|
|
|
167
169
|
|
|
168
170
|
savePromise
|
|
169
171
|
.then(() => {
|
|
172
|
+
// @ts-ignore - Property 'c11nEnv' is private and only accessible within class 'CaseInfo'.
|
|
170
173
|
const caseType = thePConn.getCaseInfo().c11nEnv.getValue(PCore.getConstants().CASE_INFO.CASE_TYPE_ID);
|
|
171
174
|
onSaveActionSuccess({ caseType, caseID, assignmentID });
|
|
172
175
|
})
|
|
@@ -211,6 +214,18 @@ export default function Assignment(props: PropsWithChildren<AssignmentProps>) {
|
|
|
211
214
|
break;
|
|
212
215
|
}
|
|
213
216
|
|
|
217
|
+
case 'rejectCase': {
|
|
218
|
+
const rejectPromise = rejectCase(itemKey);
|
|
219
|
+
|
|
220
|
+
rejectPromise
|
|
221
|
+
.then(() => {})
|
|
222
|
+
.catch(() => {
|
|
223
|
+
showToast(`${localizedVal('Rejection failed!', localeCategory)}`);
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
break;
|
|
227
|
+
}
|
|
228
|
+
|
|
214
229
|
default:
|
|
215
230
|
break;
|
|
216
231
|
}
|
|
@@ -229,6 +244,18 @@ export default function Assignment(props: PropsWithChildren<AssignmentProps>) {
|
|
|
229
244
|
break;
|
|
230
245
|
}
|
|
231
246
|
|
|
247
|
+
case 'approveCase': {
|
|
248
|
+
const approvePromise = approveCase(itemKey);
|
|
249
|
+
|
|
250
|
+
approvePromise
|
|
251
|
+
.then(() => {})
|
|
252
|
+
.catch(() => {
|
|
253
|
+
showToast(`${localizedVal('Approve failed!', localeCategory)}`);
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
break;
|
|
257
|
+
}
|
|
258
|
+
|
|
232
259
|
default:
|
|
233
260
|
break;
|
|
234
261
|
}
|
|
@@ -263,7 +290,7 @@ export default function Assignment(props: PropsWithChildren<AssignmentProps>) {
|
|
|
263
290
|
refreshProps.forEach(prop => {
|
|
264
291
|
PCore.getRefreshManager().registerForRefresh(
|
|
265
292
|
'PROP_CHANGE',
|
|
266
|
-
thePConn.getActionsApi().refreshCaseView.bind(thePConn.getActionsApi(), caseKey,
|
|
293
|
+
thePConn.getActionsApi().refreshCaseView.bind(thePConn.getActionsApi(), caseKey, '', pageReference, {
|
|
267
294
|
...refreshOptions,
|
|
268
295
|
refreshFor: prop[0]
|
|
269
296
|
}),
|
|
@@ -99,6 +99,7 @@ export const FlowContainer = (props: FlowContainerProps) => {
|
|
|
99
99
|
const localizedVal = PCore.getLocaleUtils().getLocaleValue;
|
|
100
100
|
const localeCategory = 'Messages';
|
|
101
101
|
|
|
102
|
+
const key = `${thePConn.getCaseInfo().getClassName()}!CASE!${thePConn.getCaseInfo().getName()}`.toUpperCase();
|
|
102
103
|
const classes = useStyles();
|
|
103
104
|
|
|
104
105
|
function getBuildName(): string {
|
|
@@ -306,8 +307,9 @@ export const FlowContainer = (props: FlowContainerProps) => {
|
|
|
306
307
|
!displayOnlyFA ? (
|
|
307
308
|
<Card className={`${classes.root} psdk-root`}>
|
|
308
309
|
<CardHeader
|
|
309
|
-
|
|
310
|
-
|
|
310
|
+
id='assignment-header'
|
|
311
|
+
title={<Typography variant='h6'>{localizedVal(containerName, undefined, key)}</Typography>}
|
|
312
|
+
subheader={`${localizedVal('Task in', 'Todo')} ${caseId} \u2022 ${localizedVal('Priority', 'Todo')} ${urgency}`}
|
|
311
313
|
avatar={<Avatar className={`${classes.avatar} psdk-avatar`}>{operatorInitials}</Avatar>}
|
|
312
314
|
/>
|
|
313
315
|
{displayPageMessages()}
|
|
@@ -319,7 +321,7 @@ export const FlowContainer = (props: FlowContainerProps) => {
|
|
|
319
321
|
</Card>
|
|
320
322
|
) : (
|
|
321
323
|
<Card className={`${classes.root} psdk-root`}>
|
|
322
|
-
<Typography variant='h6'>{containerName}</Typography>
|
|
324
|
+
<Typography variant='h6'>{localizedVal(containerName, undefined, key)}</Typography>
|
|
323
325
|
{displayPageMessages()}
|
|
324
326
|
<MuiPickersUtilsProvider utils={DayjsUtils}>
|
|
325
327
|
<Assignment getPConnect={getPConnect} itemKey={itemKey}>
|
|
@@ -97,7 +97,7 @@ export default function DashboardFilter(props: PropsWithChildren<DashboardFilter
|
|
|
97
97
|
metadata.config.onRecordChange = e => {
|
|
98
98
|
fireFilterChange(e.id);
|
|
99
99
|
};
|
|
100
|
-
return getPConnect().createComponent(metadata, '',
|
|
100
|
+
return getPConnect().createComponent(metadata, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional);
|
|
101
101
|
};
|
|
102
102
|
|
|
103
103
|
const onChange = dates => {
|
|
@@ -137,8 +137,12 @@ export default function DeferLoad(props: DeferLoadProps) {
|
|
|
137
137
|
getPConnect()
|
|
138
138
|
.getActionsApi()
|
|
139
139
|
.refreshCaseView(encodeURI(loadViewCaseID), name, '') // 3rd arg empty string until typedef allows optional
|
|
140
|
-
.then(data => {
|
|
140
|
+
.then((data: any) => {
|
|
141
141
|
onResponse(data.root);
|
|
142
|
+
})
|
|
143
|
+
.catch(error => {
|
|
144
|
+
// eslint-disable-next-line no-console
|
|
145
|
+
console.log(`deferload: ${error}`);
|
|
142
146
|
});
|
|
143
147
|
}
|
|
144
148
|
}, [name, getPConnect, currentLoadedAssignment]);
|
|
@@ -144,7 +144,9 @@ export default function MultiStep(props: PropsWithChildren<MultiStepProps>) {
|
|
|
144
144
|
</div>
|
|
145
145
|
</div>
|
|
146
146
|
<div className={_getHLabelClass(mainStep.visited_status)}>
|
|
147
|
-
<div className='psdk-horizontal-step-text-label'>
|
|
147
|
+
<div className='psdk-horizontal-step-text-label' id='selected-label'>
|
|
148
|
+
{mainStep.name}
|
|
149
|
+
</div>
|
|
148
150
|
</div>
|
|
149
151
|
</div>
|
|
150
152
|
{_showHLine(index) && <div className='psdk-horizontal-step-line' />}
|
|
@@ -249,8 +249,8 @@ export default function NavBar(props: NavBarProps) {
|
|
|
249
249
|
<Divider />
|
|
250
250
|
<List className='marginTopAuto'>
|
|
251
251
|
<>
|
|
252
|
-
<ListItem onClick={navPanelOperatorButtonClick}
|
|
253
|
-
<ListItemIcon>
|
|
252
|
+
<ListItem onClick={navPanelOperatorButtonClick}>
|
|
253
|
+
<ListItemIcon id='person-icon'>
|
|
254
254
|
<PersonOutlineIcon fontSize='large' />
|
|
255
255
|
</ListItemIcon>
|
|
256
256
|
<ListItemText primary={portalOperator} />
|
|
@@ -186,6 +186,7 @@ export default function CaseView(props: PropsWithChildren<CaseViewProps>) {
|
|
|
186
186
|
<Box>
|
|
187
187
|
{editAction && (
|
|
188
188
|
<Button
|
|
189
|
+
id='edit'
|
|
189
190
|
onClick={() => {
|
|
190
191
|
_editClick();
|
|
191
192
|
}}
|
|
@@ -217,7 +218,7 @@ export default function CaseView(props: PropsWithChildren<CaseViewProps>) {
|
|
|
217
218
|
<CardHeader
|
|
218
219
|
className={classes.caseViewHeader}
|
|
219
220
|
title={
|
|
220
|
-
<Typography variant='h6' component='div'>
|
|
221
|
+
<Typography variant='h6' component='div' id='case-name'>
|
|
221
222
|
{PCore.getLocaleUtils().getLocaleValue(header, '', localeKey)}
|
|
222
223
|
</Typography>
|
|
223
224
|
}
|
|
@@ -95,7 +95,7 @@ export default function CaseViewActionsMenu(props: CaseViewActionsMenuProps) {
|
|
|
95
95
|
|
|
96
96
|
return (
|
|
97
97
|
<>
|
|
98
|
-
<Button aria-controls='simple-menu' aria-haspopup='true' onClick={handleClick}>
|
|
98
|
+
<Button id='actions-menu' aria-controls='simple-menu' aria-haspopup='true' onClick={handleClick}>
|
|
99
99
|
{localizedVal('Actions...', localeCategory)}
|
|
100
100
|
</Button>
|
|
101
101
|
<Menu id='simple-menu' anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={handleClose}>
|
|
@@ -128,7 +128,7 @@ export default function DataReference(props: PropsWithChildren<DataReferenceProp
|
|
|
128
128
|
const refreshOptions = { autoDetectRefresh: true };
|
|
129
129
|
if (canBeChangedInReviewMode && pConn.getValue('__currentPageTabViewName', '')) {
|
|
130
130
|
// 2nd arg empty string until typedef marked correctly
|
|
131
|
-
getPConnect().getActionsApi().refreshCaseView(caseKey, pConn.getValue('__currentPageTabViewName', ''),
|
|
131
|
+
getPConnect().getActionsApi().refreshCaseView(caseKey, pConn.getValue('__currentPageTabViewName', ''), '', refreshOptions); // 2nd arg empty string until typedef marked correctly
|
|
132
132
|
PCore.getDeferLoadManager().refreshActiveComponents(pConn.getContextName());
|
|
133
133
|
} else {
|
|
134
134
|
const pgRef = pConn.getPageReference().replace('caseInfo.content', '');
|
|
@@ -20,13 +20,8 @@ export const getKeyForMappedField = field => {
|
|
|
20
20
|
|
|
21
21
|
const pConnect = field?.getPConnect?.();
|
|
22
22
|
|
|
23
|
-
if (pConnect?.meta
|
|
24
|
-
return
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// Using label as a fallback if name is not defined.
|
|
28
|
-
if (pConnect?.meta?.type && pConnect?.meta?.config?.label) {
|
|
29
|
-
return `${pConnect.meta.type}_${pConnect.meta.config.label}`;
|
|
23
|
+
if (pConnect?.meta) {
|
|
24
|
+
return JSON.stringify(pConnect.meta);
|
|
30
25
|
}
|
|
31
26
|
|
|
32
27
|
return uuidv4();
|
|
@@ -46,7 +46,7 @@ export default function Details(props: DetailsProps) {
|
|
|
46
46
|
field.config.displayAsStatus = true;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
return getPConnect().createComponent(field, '',
|
|
49
|
+
return getPConnect().createComponent(field, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
|
|
@@ -46,7 +46,7 @@ export default function DetailsThreeColumn(props: DetailsThreeColumnProps) {
|
|
|
46
46
|
field.config.displayAsStatus = true;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
return getPConnect().createComponent(field, '',
|
|
49
|
+
return getPConnect().createComponent(field, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional);
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
|
|
@@ -46,7 +46,7 @@ export default function DetailsTwoColumn(props: DetailsTwoColumnProps) {
|
|
|
46
46
|
field.config.displayAsStatus = true;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
return getPConnect().createComponent(field, '',
|
|
49
|
+
return getPConnect().createComponent(field, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
|
|
@@ -51,6 +51,7 @@ export default function FieldGroupTemplate(props: FieldGroupTemplateProps) {
|
|
|
51
51
|
if (PCore.getPCoreVersion()?.includes('8.7')) {
|
|
52
52
|
pConn.getListActions().insert({ classID: contextClass }, referenceList.length, pageReference);
|
|
53
53
|
} else {
|
|
54
|
+
// @ts-ignore - An argument for 'pageRef' was not provided.
|
|
54
55
|
pConn.getListActions().insert({}, referenceList.length);
|
|
55
56
|
}
|
|
56
57
|
};
|
|
@@ -63,6 +64,7 @@ export default function FieldGroupTemplate(props: FieldGroupTemplateProps) {
|
|
|
63
64
|
if (PCore.getPCoreVersion()?.includes('8.7')) {
|
|
64
65
|
pConn.getListActions().deleteEntry(index, pageReference);
|
|
65
66
|
} else {
|
|
67
|
+
// @ts-ignore - An argument for 'pageRef' was not provided.
|
|
66
68
|
pConn.getListActions().deleteEntry(index);
|
|
67
69
|
}
|
|
68
70
|
};
|
|
@@ -65,7 +65,6 @@ interface ListViewProps extends PConnProps {
|
|
|
65
65
|
const SELECTION_MODE = { SINGLE: 'single', MULTI: 'multi' };
|
|
66
66
|
|
|
67
67
|
let myRows: any[];
|
|
68
|
-
let myDisplayColumnList: any[];
|
|
69
68
|
|
|
70
69
|
let menuColumnId = '';
|
|
71
70
|
let menuColumnType = '';
|
|
@@ -119,6 +118,7 @@ export default function ListView(props: ListViewProps) {
|
|
|
119
118
|
const rowID = compositeKeys && compositeKeys?.length === 1 ? compositeKeys[0] : defRowID;
|
|
120
119
|
|
|
121
120
|
const [arRows, setRows] = useState<any[]>([]);
|
|
121
|
+
const [rowsData, setRowsData] = useState<any[]>([]);
|
|
122
122
|
const [arColumns, setColumns] = useState<any[]>([]);
|
|
123
123
|
const [response, setResponse] = useState<any[]>([]);
|
|
124
124
|
|
|
@@ -291,16 +291,6 @@ export default function ListView(props: ListViewProps) {
|
|
|
291
291
|
});
|
|
292
292
|
}
|
|
293
293
|
|
|
294
|
-
function getMyColumnList(arCols: any[]): string[] {
|
|
295
|
-
const myColList: string[] = [];
|
|
296
|
-
|
|
297
|
-
arCols.forEach(col => {
|
|
298
|
-
myColList.push(col.id);
|
|
299
|
-
});
|
|
300
|
-
|
|
301
|
-
return myColList;
|
|
302
|
-
}
|
|
303
|
-
|
|
304
294
|
/** Will return field from a filter expression */
|
|
305
295
|
function getFieldFromFilter(filter, dateRange = false) {
|
|
306
296
|
let fieldValue;
|
|
@@ -543,8 +533,8 @@ export default function ListView(props: ListViewProps) {
|
|
|
543
533
|
|
|
544
534
|
// store globally, so can be searched, filtered, etc.
|
|
545
535
|
myRows = usingDataResults;
|
|
546
|
-
myDisplayColumnList = getMyColumnList(myColumns);
|
|
547
536
|
|
|
537
|
+
setRowsData(myRows);
|
|
548
538
|
// At this point, if we have data ready to render and haven't been asked
|
|
549
539
|
// to NOT call setRows and setColumns, call them
|
|
550
540
|
if (bCallSetRowsColumns) {
|
|
@@ -604,24 +594,22 @@ export default function ListView(props: ListViewProps) {
|
|
|
604
594
|
}, [listContext]);
|
|
605
595
|
|
|
606
596
|
function searchFilter(value: string, rows: any[]) {
|
|
597
|
+
const cols = arColumns.map(ele => {
|
|
598
|
+
return ele.id;
|
|
599
|
+
});
|
|
600
|
+
|
|
607
601
|
function filterArray(el: any): boolean {
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
myVal = myVal.toString();
|
|
616
|
-
}
|
|
617
|
-
if (myVal.toLowerCase().indexOf(value.toLowerCase()) >= 0) {
|
|
618
|
-
return true;
|
|
619
|
-
}
|
|
602
|
+
return Object.keys(el).some(key => {
|
|
603
|
+
// only search columns that are displayed (pzInsKey and pxRefObjectClass are added and may or may not be displayed)
|
|
604
|
+
if (cols.includes(key)) {
|
|
605
|
+
const myVal = el[key];
|
|
606
|
+
if (myVal !== null && typeof myVal !== 'undefined') {
|
|
607
|
+
const strVal = String(myVal); // Ensure myVal is a string
|
|
608
|
+
return strVal.toLowerCase().includes(value.toLowerCase());
|
|
620
609
|
}
|
|
621
610
|
}
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
return bReturn;
|
|
611
|
+
return false;
|
|
612
|
+
});
|
|
625
613
|
}
|
|
626
614
|
|
|
627
615
|
rows = rows.filter(filterArray);
|
|
@@ -631,8 +619,7 @@ export default function ListView(props: ListViewProps) {
|
|
|
631
619
|
|
|
632
620
|
function _onSearch(event: any) {
|
|
633
621
|
const searchValue = event.target.value;
|
|
634
|
-
|
|
635
|
-
const filteredRows = searchFilter(searchValue, myRows.slice());
|
|
622
|
+
const filteredRows = searchFilter(searchValue, rowsData?.slice());
|
|
636
623
|
|
|
637
624
|
setRows(filteredRows);
|
|
638
625
|
}
|
|
@@ -653,6 +640,7 @@ export default function ListView(props: ListViewProps) {
|
|
|
653
640
|
|
|
654
641
|
thePConn
|
|
655
642
|
.getActionsApi()
|
|
643
|
+
// @ts-ignore
|
|
656
644
|
.openAssignment(pzInsKey, pxRefObjectClass, options)
|
|
657
645
|
.then(() => {
|
|
658
646
|
// console.log("openAssignment successful");
|
|
@@ -885,6 +873,7 @@ export default function ListView(props: ListViewProps) {
|
|
|
885
873
|
pzInsKey = row[`${associationCategory}:pzInsKey`];
|
|
886
874
|
}
|
|
887
875
|
if (column.isAssignmentLink) {
|
|
876
|
+
// @ts-ignore
|
|
888
877
|
thePConn.getActionsApi().openAssignment(pzInsKey, pxObjClass, {
|
|
889
878
|
containerName: 'primary',
|
|
890
879
|
channelName: ''
|
|
@@ -1047,7 +1036,7 @@ export default function ListView(props: ListViewProps) {
|
|
|
1047
1036
|
.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)
|
|
1048
1037
|
.map(row => {
|
|
1049
1038
|
return (
|
|
1050
|
-
<TableRow key={row.pxRefObjectInsName || row.pyID
|
|
1039
|
+
<TableRow key={row.pxRefObjectInsName || row.pyID}>
|
|
1051
1040
|
{arColumns.map(column => {
|
|
1052
1041
|
const value = row[column.id];
|
|
1053
1042
|
return (
|
|
@@ -1104,7 +1093,7 @@ export default function ListView(props: ListViewProps) {
|
|
|
1104
1093
|
.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)
|
|
1105
1094
|
.map(row => {
|
|
1106
1095
|
return (
|
|
1107
|
-
<TableRow key={row
|
|
1096
|
+
<TableRow key={row[rowID]}>
|
|
1108
1097
|
{selectionMode === SELECTION_MODE.SINGLE && (
|
|
1109
1098
|
<TableCell>
|
|
1110
1099
|
<Radio
|
|
@@ -49,7 +49,7 @@ export default function NarrowWideDetails(props: NarrowWideDetailsProps) {
|
|
|
49
49
|
field.config.displayAsStatus = true;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
return getPConnect().createComponent(field, '',
|
|
52
|
+
return getPConnect().createComponent(field, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
55
|
|
|
@@ -87,6 +87,7 @@ export default function PromotedFilters(props: PromotedFilterProps) {
|
|
|
87
87
|
};
|
|
88
88
|
return getPConnect().getContainerManager().addTransientItem({
|
|
89
89
|
id: viewName,
|
|
90
|
+
// @ts-ignore - Property 'coreHeaders' is missing in type '{ classID: string; }' but required in type '{ coreHeaders: any; }'.
|
|
90
91
|
data: filtersWithClassID
|
|
91
92
|
});
|
|
92
93
|
}, []);
|
|
@@ -201,6 +201,7 @@ export default function SimpleTableManual(props: PropsWithChildren<SimpleTableMa
|
|
|
201
201
|
if (allowEditingInModal) {
|
|
202
202
|
getPConnect()
|
|
203
203
|
.getListActions()
|
|
204
|
+
// @ts-ignore - An argument for 'uniqueField' was not provided.
|
|
204
205
|
.initDefaultPageInstructions(
|
|
205
206
|
getPConnect().getReferenceList(),
|
|
206
207
|
fieldDefs.filter(item => item.name).map(item => item.name)
|
|
@@ -302,6 +303,7 @@ export default function SimpleTableManual(props: PropsWithChildren<SimpleTableMa
|
|
|
302
303
|
.getActionsApi()
|
|
303
304
|
.openEmbeddedDataModal(defaultView, pConn, referenceListStr, referenceList.length, PCore.getConstants().RESOURCE_STATUS.CREATE);
|
|
304
305
|
} else {
|
|
306
|
+
// @ts-ignore - An argument for 'pageRef' was not provided.
|
|
305
307
|
pConn.getListActions().insert({ classID: contextClass }, referenceList.length);
|
|
306
308
|
}
|
|
307
309
|
|
|
@@ -327,10 +329,12 @@ export default function SimpleTableManual(props: PropsWithChildren<SimpleTableMa
|
|
|
327
329
|
|
|
328
330
|
const deleteRecord = () => {
|
|
329
331
|
setEditAnchorEl(null);
|
|
332
|
+
// @ts-ignore - An argument for 'pageRef' was not provided.
|
|
330
333
|
pConn.getListActions().deleteEntry(selectedRowIndex.current);
|
|
331
334
|
};
|
|
332
335
|
|
|
333
336
|
const deleteRecordFromInlineEditable = (index: number) => {
|
|
337
|
+
// @ts-ignore - An argument for 'pageRef' was not provided.
|
|
334
338
|
pConn.getListActions().deleteEntry(index);
|
|
335
339
|
};
|
|
336
340
|
|
|
@@ -54,7 +54,7 @@ export default function WideNarrowDetails(props: WideNarrowDetailsProps) {
|
|
|
54
54
|
field.config.displayAsStatus = true;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
return getPConnect().createComponent(field, '',
|
|
57
|
+
return getPConnect().createComponent(field, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
60
|
|
|
@@ -8,7 +8,6 @@ import download from 'downloadjs';
|
|
|
8
8
|
|
|
9
9
|
import { buildFilePropsFromResponse, getIconFromFileType, validateMaxSize } from '@pega/react-sdk-components/lib/components/helpers/attachmentHelpers';
|
|
10
10
|
import { Utils } from '@pega/react-sdk-components/lib/components/helpers/utils';
|
|
11
|
-
import { isInfinity23OrHigher } from '@pega/react-sdk-components/lib/components/helpers/common-utils';
|
|
12
11
|
import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
13
12
|
|
|
14
13
|
import './Attachment.css';
|
|
@@ -61,7 +60,7 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
61
60
|
const [toggleUploadBegin, setToggleUploadBegin] = useState(false);
|
|
62
61
|
|
|
63
62
|
const resetAttachmentStoredState = () => {
|
|
64
|
-
PCore.getStateUtils().updateState(pConn.getContextName(), getAttachmentKey(
|
|
63
|
+
PCore.getStateUtils().updateState(pConn.getContextName(), getAttachmentKey(valueRef), undefined, {
|
|
65
64
|
pageReference: 'context_data',
|
|
66
65
|
isArrayDeepMerge: false
|
|
67
66
|
});
|
|
@@ -160,6 +159,7 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
160
159
|
messages: [
|
|
161
160
|
{
|
|
162
161
|
type: 'error',
|
|
162
|
+
// @ts-ignore - Type '{ type: string; message: string; }' is not assignable to type 'MessagesConfigObject'.
|
|
163
163
|
message: pConn.getLocalizedValue('Error with one or more files', '', '')
|
|
164
164
|
}
|
|
165
165
|
],
|
|
@@ -233,6 +233,7 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
233
233
|
messages: [
|
|
234
234
|
{
|
|
235
235
|
type: 'error',
|
|
236
|
+
// @ts-ignore - Type '{ type: string; message: string; }' is not assignable to type 'MessagesConfigObject'.
|
|
236
237
|
message: pConn.getLocalizedValue('Error with one or more files', '', '')
|
|
237
238
|
}
|
|
238
239
|
],
|
|
@@ -488,7 +488,7 @@ export default function FileUtility(props: FileUtilityProps) {
|
|
|
488
488
|
}
|
|
489
489
|
|
|
490
490
|
return (
|
|
491
|
-
<div className='psdk-utility'>
|
|
491
|
+
<div className='psdk-utility' id='file-utility'>
|
|
492
492
|
{inProgress && (
|
|
493
493
|
<div className='progress-div'>
|
|
494
494
|
<CircularProgress />
|
|
@@ -35,6 +35,7 @@ export default function QuickCreate(props: QuickCreateProps) {
|
|
|
35
35
|
const defaultCases: any = [];
|
|
36
36
|
const envInfo = PCore.getEnvironmentInfo();
|
|
37
37
|
if (envInfo?.environmentInfoObject?.pyCaseTypeList) {
|
|
38
|
+
// @ts-ignore - Property 'forEach' does not exist on type 'string'
|
|
38
39
|
envInfo.environmentInfoObject.pyCaseTypeList.forEach(casetype => {
|
|
39
40
|
if (casetype.pyWorkTypeName && casetype.pyWorkTypeImplementationClassName) {
|
|
40
41
|
defaultCases.push({
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|