@pega/sdk 0.0.13 → 0.0.15
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/README.md +46 -6
- package/dist/index.js +50 -24
- package/package.json +42 -3
- package/templates/angular-sdk-reference/extra-webpack.config.cjs +23 -0
- package/templates/angular-sdk-reference/index.html +12 -0
- package/templates/angular-sdk-reference/src/app/pconnect-renderer.component.ts +153 -0
- package/templates/angular-sdk-reference/src/components/component-map.ts +90 -0
- package/templates/angular-sdk-reference/src/components/fields/auto-complete/auto-complete.component.ts +304 -0
- package/templates/angular-sdk-reference/src/components/fields/checkbox/checkbox.component.ts +89 -0
- package/templates/angular-sdk-reference/src/components/fields/currency/currency.component.ts +112 -0
- package/templates/angular-sdk-reference/src/components/fields/date-input/date-input.component.ts +101 -0
- package/templates/angular-sdk-reference/src/components/fields/dropdown/dropdown.component.ts +118 -0
- package/templates/angular-sdk-reference/src/components/fields/email/email.component.ts +104 -0
- package/templates/angular-sdk-reference/src/components/fields/integer/integer.component.ts +106 -0
- package/templates/angular-sdk-reference/src/components/fields/phone/phone.component.ts +104 -0
- package/templates/angular-sdk-reference/src/components/fields/radio-buttons/radio-buttons.component.ts +113 -0
- package/templates/angular-sdk-reference/src/components/fields/text-area/text-area.component.ts +111 -0
- package/templates/angular-sdk-reference/src/components/fields/text-input/text-input.component.ts +110 -0
- package/templates/angular-sdk-reference/src/components/fields/url-input/url-input.component.ts +113 -0
- package/templates/angular-sdk-reference/src/components/helpers/sdk-helpers.ts +93 -0
- package/templates/angular-sdk-reference/src/components/infra/assignment/assignment.component.ts +206 -0
- package/templates/angular-sdk-reference/src/components/infra/case-summary/case-summary.component.ts +75 -0
- package/templates/angular-sdk-reference/src/components/infra/case-view/case-view.component.ts +126 -0
- package/templates/angular-sdk-reference/src/components/infra/flow-container/flow-container.component.ts +411 -0
- package/templates/angular-sdk-reference/src/components/infra/reference/reference.component.ts +158 -0
- package/templates/angular-sdk-reference/src/components/infra/region/region.component.ts +39 -0
- package/templates/angular-sdk-reference/src/components/infra/root-container/root-container.component.ts +199 -0
- package/templates/angular-sdk-reference/src/components/infra/stages/stages.component.ts +89 -0
- package/templates/angular-sdk-reference/src/components/infra/view/view.component.ts +144 -0
- package/templates/angular-sdk-reference/src/components/infra/view-container/view-container.component.ts +191 -0
- package/templates/angular-sdk-reference/src/components/templates/default-form/default-form.component.ts +105 -0
- package/templates/angular-sdk-reference/src/components/templates/narrow-wide/narrow-wide.component.ts +37 -0
- package/templates/angular-sdk-reference/src/components/templates/one-column/one-column.component.ts +37 -0
- package/templates/angular-sdk-reference/src/components/templates/two-column/two-column.component.ts +37 -0
- package/templates/angular-sdk-reference/src/components/templates/wide-narrow/wide-narrow.component.ts +37 -0
- package/templates/angular-sdk-reference/tsconfig.app.json +13 -0
- package/templates/react-sdk-reference/.ai-common/agents/embedded-flow-expert.md +75 -34
- package/templates/react-sdk-reference/.ai-common/agents/implementation-expert.md +74 -38
- package/templates/react-sdk-reference/.ai-common/global/ai-agent-instructions-embedded.md +33 -1
- package/templates/react-sdk-reference/.ai-common/global/ai-agent-instructions.md +57 -22
- package/templates/react-sdk-reference/.ai-common/instructions/embedded-component.md +25 -10
- package/templates/react-sdk-reference/.ai-common/prompts/add-component.md +40 -19
- package/templates/react-sdk-reference/.ai-common/prompts/component-manifest.json +62 -1
- package/templates/react-sdk-reference/.ai-common/prompts/embedded-component-manifest.md +26 -4
- package/templates/react-sdk-reference/.ai-common/prompts/generate-all-components.md +84 -33
- package/templates/react-sdk-reference/.ai-common/prompts/generate-dse-components.md +46 -26
- package/templates/react-sdk-reference/.ai-common/prompts/generate-embedded-components.md +28 -15
- package/templates/react-sdk-reference/.ai-common/prompts/generate-field-components.md +24 -6
- package/templates/react-sdk-reference/.ai-common/prompts/generate-infra-components.md +24 -6
- package/templates/react-sdk-reference/.ai-common/prompts/generate-template-components.md +24 -6
- package/templates/react-sdk-reference/.ai-common/prompts/generate-widget-components.md +24 -6
- package/templates/react-sdk-reference/.ai-common/prompts/identify-components.md +2 -0
- package/templates/react-sdk-reference/.ai-common/prompts/replace-design-system.md +44 -17
- package/templates/react-sdk-reference/.ai-common/skills/connect-pega-server.md +14 -1
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/AssignmentHeader.md +79 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension-skills/Toast.md +96 -0
- package/templates/react-sdk-reference/.ai-common/skills/design-system-extension.md +56 -35
- package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/analyze-customer-repo.md +29 -3
- package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/run-and-verify-integration.md +97 -37
- package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/wire-integration.md +91 -60
- package/templates/react-sdk-reference/.ai-common/skills/field-components.md +88 -30
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/AutoComplete.md +133 -101
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/EmbeddedData.md +385 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/EmbeddedDataMulti.md +506 -0
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/ObjectReference.md +549 -86
- package/templates/react-sdk-reference/.ai-common/skills/field-skills/UserReference.md +181 -83
- package/templates/react-sdk-reference/.ai-common/skills/infra-components.md +13 -1
- package/templates/react-sdk-reference/.ai-common/skills/portal-flow/run-and-verify-portal.md +290 -0
- package/templates/react-sdk-reference/.ai-common/skills/template-components.md +13 -1
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/ListView.md +125 -153
- package/templates/react-sdk-reference/.ai-common/skills/template-skills/SimpleTable.md +90 -81
- package/templates/react-sdk-reference/.ai-common/skills/widget-components.md +13 -1
- package/templates/react-sdk-reference/assets/icons/trash.svg +3 -0
- package/templates/react-sdk-reference/index.html +0 -1
- package/templates/react-sdk-reference/package.json +2 -2
- package/templates/react-sdk-reference/package.minimal.json +2 -2
- package/templates/react-sdk-reference/sdk-config.json +3 -3
- package/templates/react-sdk-reference/src/FallbackComponent.tsx +1 -1
- package/templates/react-sdk-reference/src/MashupApp.tsx +33 -78
- package/templates/react-sdk-reference/src/PortalApp.tsx +23 -100
- package/templates/react-sdk-reference/src/components/component-map.ts +15 -1
- package/templates/react-sdk-reference/src/components/designSystemExtension/AssignmentHeader/AssignmentHeader.tsx +15 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/AssignmentHeader/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/FieldGroup.tsx +1 -1
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/FieldGroupList.tsx +1 -1
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/FieldValueList.tsx +16 -4
- package/templates/react-sdk-reference/src/components/designSystemExtension/ModalDialog/ModalDialog.tsx +26 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/ModalDialog/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/Toast/Toast.tsx +35 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/Toast/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +362 -24
- package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.tsx +1 -1
- package/templates/react-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +3 -1
- package/templates/react-sdk-reference/src/components/field/Currency/Currency.tsx +6 -3
- package/templates/react-sdk-reference/src/components/field/Date/Date.tsx +2 -1
- package/templates/react-sdk-reference/src/components/field/DateTime/DateTime.tsx +2 -1
- package/templates/react-sdk-reference/src/components/field/Decimal/Decimal.tsx +4 -3
- package/templates/react-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +2 -0
- package/templates/react-sdk-reference/src/components/field/Email/Email.tsx +2 -1
- package/templates/react-sdk-reference/src/components/field/EmbeddedDataMulti/EmbeddedDataMulti.tsx +121 -0
- package/templates/react-sdk-reference/src/components/field/EmbeddedDataMulti/config-ext.json +7 -0
- package/templates/react-sdk-reference/src/components/field/EmbeddedDataMulti/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/Integer/Integer.tsx +2 -1
- package/templates/react-sdk-reference/src/components/field/Location/Location.tsx +1 -1
- package/templates/react-sdk-reference/src/components/field/Multiselect/Multiselect.tsx +40 -20
- package/templates/react-sdk-reference/src/components/field/ObjectReference/ObjectReference.tsx +554 -49
- package/templates/react-sdk-reference/src/components/field/ObjectReference/utils.ts +111 -20
- package/templates/react-sdk-reference/src/components/field/Percentage/Percentage.tsx +4 -3
- package/templates/react-sdk-reference/src/components/field/Phone/Phone.tsx +2 -1
- package/templates/react-sdk-reference/src/components/field/SelectableCard/SelectableCard.tsx +2 -1
- package/templates/react-sdk-reference/src/components/field/TextArea/TextArea.tsx +2 -1
- package/templates/react-sdk-reference/src/components/field/TextInput/TextInput.tsx +2 -1
- package/templates/react-sdk-reference/src/components/field/Time/Time.tsx +2 -1
- package/templates/react-sdk-reference/src/components/field/URL/URL.tsx +2 -1
- package/templates/react-sdk-reference/src/components/field/UserReference/UserReference.tsx +1 -1
- package/templates/react-sdk-reference/src/components/helpers/field-utils.ts +44 -0
- package/templates/react-sdk-reference/src/components/helpers/simpleTableHelpers.ts +19 -7
- package/templates/react-sdk-reference/src/components/infra/ModalViewContainer/DataViewActionButtons/DataViewActionButtons.tsx +97 -0
- package/templates/react-sdk-reference/src/components/infra/ModalViewContainer/DataViewActionButtons/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/infra/ModalViewContainer/ListViewActionButtons/ListViewActionButtons.tsx +53 -0
- package/templates/react-sdk-reference/src/components/infra/ModalViewContainer/ListViewActionButtons/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/SearchGroups.tsx +2 -2
- package/templates/react-sdk-reference/src/components/template/CaseSummary/CaseSummary.tsx +3 -1
- package/templates/react-sdk-reference/src/components/template/DataReference/SearchForm.tsx +4 -4
- package/templates/react-sdk-reference/src/components/template/HierarchicalForm/HierarchicalForm.tsx +2 -2
- package/templates/react-sdk-reference/src/components/template/InlineDashboard/InlineDashboard.tsx +1 -1
- package/templates/react-sdk-reference/src/components/template/ListView/ListView.tsx +7 -3
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +173 -99
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +63 -56
- package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.tsx +1 -1
- package/templates/react-sdk-reference/vite.config.ts +26 -4
- package/templates/react-sdk-reference/.ai-common/instructions/dse-component.md +0 -47
- package/templates/react-sdk-reference/.ai-common/instructions/field-component.md +0 -50
- package/templates/react-sdk-reference/.ai-common/instructions/infra-component.md +0 -76
- package/templates/react-sdk-reference/.ai-common/instructions/template-component.md +0 -43
- package/templates/react-sdk-reference/.ai-common/instructions/widget-component.md +0 -45
- package/templates/react-sdk-reference/.ai-common/skills/embedded-flow/authenticate.md +0 -311
- package/templates/react-sdk-reference/pega-constellationjs-0.26.3-local.tgz +0 -0
- package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
package/templates/react-sdk-reference/src/components/field/EmbeddedDataMulti/EmbeddedDataMulti.tsx
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import type { PConnProps } from '@pega/sdk-react';
|
|
2
|
+
|
|
3
|
+
interface EmbeddedDataMultiProps extends PConnProps {
|
|
4
|
+
addEditAction?: string;
|
|
5
|
+
addEditView?: string;
|
|
6
|
+
displayAs?: string;
|
|
7
|
+
editAction?: string;
|
|
8
|
+
editMode?: string;
|
|
9
|
+
editType?: string;
|
|
10
|
+
editView?: string;
|
|
11
|
+
readOnly?: boolean;
|
|
12
|
+
repeatingView?: string;
|
|
13
|
+
targetObjectClass?: string;
|
|
14
|
+
useSeparateActionForEdit?: boolean;
|
|
15
|
+
useSeparateViewForEdit?: boolean;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export default function EmbeddedDataMulti(props: EmbeddedDataMultiProps) {
|
|
19
|
+
const {
|
|
20
|
+
getPConnect,
|
|
21
|
+
addEditAction,
|
|
22
|
+
addEditView,
|
|
23
|
+
displayAs,
|
|
24
|
+
editAction,
|
|
25
|
+
editMode,
|
|
26
|
+
editType,
|
|
27
|
+
editView,
|
|
28
|
+
readOnly = false,
|
|
29
|
+
repeatingView,
|
|
30
|
+
targetObjectClass,
|
|
31
|
+
useSeparateActionForEdit,
|
|
32
|
+
useSeparateViewForEdit,
|
|
33
|
+
} = props;
|
|
34
|
+
|
|
35
|
+
const pConn = getPConnect();
|
|
36
|
+
const rawMetadata = pConn.getRawMetadata() as any;
|
|
37
|
+
const rawMetadataConfig = rawMetadata?.config;
|
|
38
|
+
|
|
39
|
+
if (!rawMetadataConfig) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const renderMode = readOnly ? 'ReadOnly' : 'Editable';
|
|
44
|
+
|
|
45
|
+
let columnsChildren;
|
|
46
|
+
if (displayAs === 'table' || displayAs === 'simpleTable') {
|
|
47
|
+
columnsChildren = [
|
|
48
|
+
{
|
|
49
|
+
children: rawMetadataConfig.columns || [],
|
|
50
|
+
name: 'Columns',
|
|
51
|
+
type: 'Region',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
let regionWithView: unknown[] = [];
|
|
57
|
+
if (displayAs === 'repeatingView') {
|
|
58
|
+
regionWithView = [
|
|
59
|
+
{
|
|
60
|
+
children: [
|
|
61
|
+
{
|
|
62
|
+
type: 'reference',
|
|
63
|
+
config: {
|
|
64
|
+
type: 'view',
|
|
65
|
+
name: repeatingView,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
name: 'view',
|
|
70
|
+
type: 'Region',
|
|
71
|
+
},
|
|
72
|
+
];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const { pagelistValue } = rawMetadataConfig;
|
|
76
|
+
const authorContext = pagelistValue?.startsWith('@P') ? pagelistValue.substring(3) : pagelistValue;
|
|
77
|
+
|
|
78
|
+
const simpleTableComponent = pConn.createComponent({
|
|
79
|
+
type: 'View',
|
|
80
|
+
config: {
|
|
81
|
+
template: 'SimpleTable',
|
|
82
|
+
type: 'multirecordlist',
|
|
83
|
+
authorContext,
|
|
84
|
+
name: authorContext?.substring(1),
|
|
85
|
+
renderMode,
|
|
86
|
+
multiRecordDisplayAs: displayAs === 'repeatingView' ? 'fieldGroup' : displayAs,
|
|
87
|
+
referenceList: pagelistValue,
|
|
88
|
+
contextClass: targetObjectClass,
|
|
89
|
+
editMode,
|
|
90
|
+
editModeConfig: {
|
|
91
|
+
editType,
|
|
92
|
+
defaultView: addEditView,
|
|
93
|
+
defaultAction: addEditAction,
|
|
94
|
+
useSeparateViewForEdit,
|
|
95
|
+
useSeparateActionForEdit,
|
|
96
|
+
editView,
|
|
97
|
+
editAction,
|
|
98
|
+
},
|
|
99
|
+
label: rawMetadataConfig.label,
|
|
100
|
+
children: columnsChildren,
|
|
101
|
+
displayField: rawMetadataConfig.displayField,
|
|
102
|
+
uniqueField: rawMetadataConfig.uniqueField,
|
|
103
|
+
targetClassLabel: rawMetadataConfig.targetClassLabel,
|
|
104
|
+
targetClassLabelOption: rawMetadataConfig.targetClassLabelOption,
|
|
105
|
+
fieldHeader: rawMetadataConfig.repeatingViewHeadingSource,
|
|
106
|
+
heading: rawMetadataConfig.repeatingViewHeading,
|
|
107
|
+
allowActions: {
|
|
108
|
+
allowAdd: rawMetadataConfig.allowAdd ?? true,
|
|
109
|
+
allowEdit: rawMetadataConfig.allowEdit ?? true,
|
|
110
|
+
allowDelete: rawMetadataConfig.allowDelete ?? true,
|
|
111
|
+
allowDragDrop: rawMetadataConfig.allowDragDrop ?? true,
|
|
112
|
+
},
|
|
113
|
+
allowRowDelete: rawMetadataConfig.allowRowDelete ?? true,
|
|
114
|
+
allowRowEdit: rawMetadataConfig.allowRowEdit ?? true,
|
|
115
|
+
displayAs: displayAs === 'repeatingView' ? 'fieldGroup' : displayAs,
|
|
116
|
+
},
|
|
117
|
+
children: regionWithView,
|
|
118
|
+
} as any);
|
|
119
|
+
|
|
120
|
+
return <>{simpleTableComponent}</>;
|
|
121
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './EmbeddedDataMulti';
|
|
@@ -6,6 +6,7 @@ import { getComponentFromRegistry } from '@pega/sdk-react';
|
|
|
6
6
|
import type { PConnFieldProps } from '@pega/sdk-react';
|
|
7
7
|
|
|
8
8
|
interface IntegerProps extends PConnFieldProps {
|
|
9
|
+
variant?: string;
|
|
9
10
|
// If any, enter additional props that only exist on Integer here
|
|
10
11
|
}
|
|
11
12
|
|
|
@@ -43,7 +44,7 @@ export default function Integer(props: IntegerProps) {
|
|
|
43
44
|
}, [value]);
|
|
44
45
|
|
|
45
46
|
if (displayMode === 'DISPLAY_ONLY') {
|
|
46
|
-
return <FieldValueList name={hideLabel ? '' : label} value={value} />;
|
|
47
|
+
return <FieldValueList name={hideLabel ? '' : label} value={value} variant={props.variant} />;
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
@@ -198,7 +198,7 @@ export default function Location(props: LocationProps) {
|
|
|
198
198
|
|
|
199
199
|
const map = (
|
|
200
200
|
<div style={{ opacity: disabled ? 0.7 : 1 }}>
|
|
201
|
-
<Box
|
|
201
|
+
<Box sx={{ mt: 1 }} style={{ flex: 1 }}>
|
|
202
202
|
<GoogleMap
|
|
203
203
|
mapContainerStyle={mapContainerStyle}
|
|
204
204
|
center={mapCenter}
|
|
@@ -44,13 +44,30 @@ export default function Multiselect(props) {
|
|
|
44
44
|
},
|
|
45
45
|
];
|
|
46
46
|
let secondaryColumns: any = [];
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
// Raw metadata keeps property paths ("@P .pyLabel"); resolved props would hold data values instead
|
|
48
|
+
const columnsFormatter = (getPConnect().getRawMetadata()?.config as any)?.columnsFormatter;
|
|
49
|
+
const secondaryFieldsFromFormatter = columnsFormatter
|
|
50
|
+
? columnsFormatter
|
|
51
|
+
.map((item) => {
|
|
52
|
+
const property = item?.config?.value;
|
|
53
|
+
if (typeof property === 'string') {
|
|
54
|
+
if (property.startsWith('@USER ')) return property.substring(6);
|
|
55
|
+
if (property.startsWith('@P ')) return property.substring(3);
|
|
56
|
+
return property;
|
|
57
|
+
}
|
|
58
|
+
return undefined;
|
|
59
|
+
})
|
|
60
|
+
.filter(Boolean)
|
|
61
|
+
: undefined;
|
|
62
|
+
const updatedSecondaryFields = secondaryFieldsFromFormatter || secondaryFields;
|
|
63
|
+
if (updatedSecondaryFields) {
|
|
64
|
+
secondaryColumns = updatedSecondaryFields.map((secondaryField) => ({
|
|
65
|
+
value: typeof secondaryField === 'string' ? secondaryField : undefined,
|
|
50
66
|
display: 'true',
|
|
51
67
|
secondary: 'true',
|
|
52
68
|
useForSearch: 'true',
|
|
53
69
|
}));
|
|
70
|
+
secondaryColumns = secondaryColumns.filter((col) => col.value);
|
|
54
71
|
} else {
|
|
55
72
|
secondaryColumns = [
|
|
56
73
|
{
|
|
@@ -106,11 +123,11 @@ export default function Multiselect(props) {
|
|
|
106
123
|
);
|
|
107
124
|
|
|
108
125
|
const displayFieldMeta = listType !== 'associated' ? getDisplayFieldsMetaData(dataConfig.columns) : null;
|
|
109
|
-
const getCaseListBasedOnParamsDebounced: any = useRef();
|
|
126
|
+
const getCaseListBasedOnParamsDebounced: any = useRef(null);
|
|
110
127
|
const pConn = getPConnect();
|
|
111
128
|
const contextName = pConn.getContextName();
|
|
112
129
|
const listActions = pConn.getListActions();
|
|
113
|
-
const dataApiObj: any = useRef();
|
|
130
|
+
const dataApiObj: any = useRef(null);
|
|
114
131
|
|
|
115
132
|
// main search function trigger
|
|
116
133
|
const getCaseListBasedOnParams = async (
|
|
@@ -120,20 +137,6 @@ export default function Multiselect(props) {
|
|
|
120
137
|
currentItemsTree,
|
|
121
138
|
isTriggeredFromSearch = false,
|
|
122
139
|
) => {
|
|
123
|
-
if (referenceList && referenceList.length > 0) {
|
|
124
|
-
selectedRows = await listActions.getSelectedRows(true);
|
|
125
|
-
|
|
126
|
-
selectedRows =
|
|
127
|
-
selectedRows &&
|
|
128
|
-
selectedRows.map((item) => {
|
|
129
|
-
return {
|
|
130
|
-
id: item[selectionKey.startsWith('.') ? selectionKey.substring(1) : selectionKey],
|
|
131
|
-
primary: item[primaryField.startsWith('.') ? primaryField.substring(1) : primaryField],
|
|
132
|
-
};
|
|
133
|
-
});
|
|
134
|
-
setSelectedItems(selectedRows);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
140
|
// if items tree is null or text search is triggered then always should use fresh data object, we use the original object
|
|
138
141
|
const initalItemsTree = isTriggeredFromSearch || !currentItemsTree ? [...itemsTreeBaseData] : [...currentItemsTree];
|
|
139
142
|
const res = await doSearch(
|
|
@@ -148,6 +151,20 @@ export default function Multiselect(props) {
|
|
|
148
151
|
selectedRows || [],
|
|
149
152
|
);
|
|
150
153
|
setItemsTree(res);
|
|
154
|
+
if (referenceList && referenceList.length > 0) {
|
|
155
|
+
selectedRows = await listActions.getSelectedRows(true);
|
|
156
|
+
selectedRows =
|
|
157
|
+
selectedRows &&
|
|
158
|
+
selectedRows.map((item) => {
|
|
159
|
+
const id = item[selectionKey.startsWith('.') ? selectionKey.substring(1) : selectionKey];
|
|
160
|
+
let primary = item[primaryField.startsWith('.') ? primaryField.substring(1) : primaryField];
|
|
161
|
+
if (primary === undefined) {
|
|
162
|
+
primary = res.find((r) => r.id === id)?.primary;
|
|
163
|
+
}
|
|
164
|
+
return { id, primary, selected: true };
|
|
165
|
+
});
|
|
166
|
+
setSelectedItems(selectedRows);
|
|
167
|
+
}
|
|
151
168
|
};
|
|
152
169
|
|
|
153
170
|
useEffect(() => {
|
|
@@ -169,6 +186,9 @@ export default function Multiselect(props) {
|
|
|
169
186
|
if (!isGroupData) {
|
|
170
187
|
getCaseListBasedOnParamsDebounced.current(inputValue ?? '', '', [...selectedItems], [...itemsTree]);
|
|
171
188
|
}
|
|
189
|
+
})
|
|
190
|
+
.catch((e) => {
|
|
191
|
+
console.error(e);
|
|
172
192
|
});
|
|
173
193
|
}
|
|
174
194
|
}, [dataConfig, listType, dataConfig.columns, inputValue, dataConfig.groupColumnsConfig, showSecondaryInSearchOnly]);
|
|
@@ -227,7 +247,7 @@ export default function Multiselect(props) {
|
|
|
227
247
|
fullWidth
|
|
228
248
|
options={itemsTree}
|
|
229
249
|
disableCloseOnSelect
|
|
230
|
-
|
|
250
|
+
isOptionEqualToValue={(option: any, val: any) => option?.id === val?.id}
|
|
231
251
|
getOptionLabel={(option: any) => option?.primary}
|
|
232
252
|
onChange={handleChange}
|
|
233
253
|
value={selectedItems}
|