@pega/react-sdk-components 0.23.35 → 0.23.36
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/components/field/Checkbox/Checkbox.d.ts +7 -0
- package/lib/components/field/Checkbox/Checkbox.d.ts.map +1 -1
- package/lib/components/field/Checkbox/Checkbox.js +51 -9
- package/lib/components/field/Checkbox/Checkbox.js.map +1 -1
- package/lib/components/field/Decimal/Decimal.d.ts +1 -0
- package/lib/components/field/Decimal/Decimal.d.ts.map +1 -1
- package/lib/components/field/Decimal/Decimal.js +10 -3
- package/lib/components/field/Decimal/Decimal.js.map +1 -1
- package/lib/components/field/MultiSelect/Multiselect.d.ts +3 -0
- package/lib/components/field/MultiSelect/Multiselect.d.ts.map +1 -0
- package/lib/components/field/MultiSelect/Multiselect.js +175 -0
- package/lib/components/field/MultiSelect/Multiselect.js.map +1 -0
- package/lib/components/field/MultiSelect/index.d.ts +2 -0
- package/lib/components/field/MultiSelect/index.d.ts.map +1 -0
- package/lib/components/field/MultiSelect/index.js +2 -0
- package/lib/components/field/MultiSelect/index.js.map +1 -0
- package/lib/components/field/MultiSelect/utils.d.ts +10 -0
- package/lib/components/field/MultiSelect/utils.d.ts.map +1 -0
- package/lib/components/field/MultiSelect/utils.js +197 -0
- package/lib/components/field/MultiSelect/utils.js.map +1 -0
- package/lib/components/helpers/instructions-utils.d.ts +5 -0
- package/lib/components/helpers/instructions-utils.d.ts.map +1 -0
- package/lib/components/helpers/instructions-utils.js +36 -0
- package/lib/components/helpers/instructions-utils.js.map +1 -0
- package/lib/components/infra/Reference/Reference.js +1 -1
- package/lib/components/infra/Reference/Reference.js.map +1 -1
- package/lib/components/template/ListView/ListView.js +4 -4
- package/lib/components/template/ListView/ListView.js.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js +4 -4
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js.map +1 -1
- package/lib/doc/KeyReleaseUpdates.md +1 -2
- package/lib/sdk-pega-component-map.d.ts +2 -0
- package/lib/sdk-pega-component-map.js +2 -0
- package/lib/sdk-pega-component-map.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { useRef } from 'react';
|
|
2
|
+
import equal from 'fast-deep-equal';
|
|
3
|
+
import cloneDeep from 'lodash/cloneDeep';
|
|
4
|
+
import { updateNewInstuctions, insertInstruction, deleteInstruction } from '../../helpers/instructions-utils';
|
|
5
|
+
export const setVisibilityForList = (c11nEnv, visibility) => {
|
|
6
|
+
const { selectionMode, selectionList, renderMode, referenceList } = c11nEnv.getComponentConfig();
|
|
7
|
+
// usecase:multiselect, fieldgroup, editable table
|
|
8
|
+
if ((selectionMode === PCore.getConstants().LIST_SELECTION_MODE.MULTI && selectionList) || (renderMode === 'Editable' && referenceList)) {
|
|
9
|
+
c11nEnv.getListActions().setVisibility(visibility);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
const useDeepMemo = (memoFn, key) => {
|
|
13
|
+
const ref = useRef();
|
|
14
|
+
if (!ref.current || !equal(key, ref.current.key)) {
|
|
15
|
+
ref.current = { key, value: memoFn() };
|
|
16
|
+
}
|
|
17
|
+
return ref.current.value;
|
|
18
|
+
};
|
|
19
|
+
const preProcessColumns = columns => {
|
|
20
|
+
return columns?.map(col => {
|
|
21
|
+
const tempColObj = { ...col };
|
|
22
|
+
tempColObj.value = col.value && col.value.startsWith('.') ? col.value.substring(1) : col.value;
|
|
23
|
+
if (tempColObj.setProperty) {
|
|
24
|
+
tempColObj.setProperty = col.setProperty && col.setProperty.startsWith('.') ? col.setProperty.substring(1) : col.setProperty;
|
|
25
|
+
}
|
|
26
|
+
return tempColObj;
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
const getDisplayFieldsMetaData = columns => {
|
|
30
|
+
const displayColumns = columns?.filter(col => col.display === 'true');
|
|
31
|
+
const metaDataObj = {
|
|
32
|
+
key: '',
|
|
33
|
+
primary: '',
|
|
34
|
+
secondary: []
|
|
35
|
+
};
|
|
36
|
+
const keyCol = columns?.filter(col => col.key === 'true');
|
|
37
|
+
metaDataObj.key = keyCol?.length > 0 ? keyCol[0].value : 'auto';
|
|
38
|
+
const itemsRecordsColumn = columns?.filter(col => col.itemsRecordsColumn === 'true');
|
|
39
|
+
if (itemsRecordsColumn?.length > 0) {
|
|
40
|
+
metaDataObj.itemsRecordsColumn = itemsRecordsColumn[0].value;
|
|
41
|
+
}
|
|
42
|
+
const itemsGroupKeyColumn = columns?.filter(col => col.itemsGroupKeyColumn === 'true');
|
|
43
|
+
if (itemsGroupKeyColumn?.length > 0) {
|
|
44
|
+
metaDataObj.itemsGroupKeyColumn = itemsGroupKeyColumn[0].value;
|
|
45
|
+
}
|
|
46
|
+
for (let index = 0; index < displayColumns?.length; index += 1) {
|
|
47
|
+
if (displayColumns[index].secondary === 'true') {
|
|
48
|
+
metaDataObj.secondary.push(displayColumns[index].value);
|
|
49
|
+
}
|
|
50
|
+
else if (displayColumns[index].primary === 'true') {
|
|
51
|
+
metaDataObj.primary = displayColumns[index].value;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return metaDataObj;
|
|
55
|
+
};
|
|
56
|
+
const createSingleTreeObejct = (entry, displayFieldMeta, showSecondaryData, selected) => {
|
|
57
|
+
const secondaryArr = [];
|
|
58
|
+
displayFieldMeta.secondary.forEach(col => {
|
|
59
|
+
secondaryArr.push(entry[col]);
|
|
60
|
+
});
|
|
61
|
+
const isSelected = selected.some(item => item.id === entry[displayFieldMeta.key]);
|
|
62
|
+
return {
|
|
63
|
+
id: entry[displayFieldMeta.key],
|
|
64
|
+
primary: entry[displayFieldMeta.primary],
|
|
65
|
+
secondary: showSecondaryData ? secondaryArr : [],
|
|
66
|
+
selected: isSelected
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
const putItemsDataInItemsTree = (listObjData, displayFieldMeta, itemsTree, showSecondaryInSearchOnly, selected) => {
|
|
70
|
+
let newTreeItems = itemsTree.slice();
|
|
71
|
+
const showSecondaryData = !showSecondaryInSearchOnly;
|
|
72
|
+
for (const obj of listObjData) {
|
|
73
|
+
const items = obj[displayFieldMeta.itemsRecordsColumn].map(entry => createSingleTreeObejct(entry, displayFieldMeta, showSecondaryData, selected));
|
|
74
|
+
newTreeItems = newTreeItems.map(caseObject => {
|
|
75
|
+
if (caseObject.id === obj[displayFieldMeta.itemsGroupKeyColumn]) {
|
|
76
|
+
caseObject.items = [...items];
|
|
77
|
+
}
|
|
78
|
+
return caseObject;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return newTreeItems;
|
|
82
|
+
};
|
|
83
|
+
const prepareSearchResults = (listObjData, displayFieldMeta) => {
|
|
84
|
+
const searchResults = [];
|
|
85
|
+
for (const obj of listObjData) {
|
|
86
|
+
searchResults.push(...obj[displayFieldMeta.itemsRecordsColumn]);
|
|
87
|
+
}
|
|
88
|
+
return searchResults;
|
|
89
|
+
};
|
|
90
|
+
const doSearch = async (searchText, clickedGroup, initialCaseClass, displayFieldMeta, dataApiObj, // deep clone of the dataApiObj
|
|
91
|
+
itemsTree, isGroupData, showSecondaryInSearchOnly, selected) => {
|
|
92
|
+
let searchTextForUngroupedData = '';
|
|
93
|
+
if (dataApiObj) {
|
|
94
|
+
// creating dataApiObject in grouped data cases
|
|
95
|
+
if (isGroupData) {
|
|
96
|
+
dataApiObj = cloneDeep(dataApiObj);
|
|
97
|
+
dataApiObj.fetchedNQData = false;
|
|
98
|
+
dataApiObj.cache = {};
|
|
99
|
+
// if we have no search text and no group selected, return the original tree
|
|
100
|
+
if (searchText === '' && clickedGroup === '') {
|
|
101
|
+
return itemsTree;
|
|
102
|
+
}
|
|
103
|
+
// setting the inital search text & search classes in ApiObject
|
|
104
|
+
dataApiObj.parameters[Object.keys(dataApiObj.parameters)[1]] = searchText;
|
|
105
|
+
dataApiObj.parameters[Object.keys(dataApiObj.parameters)[0]] = initialCaseClass;
|
|
106
|
+
// if we have a selected group
|
|
107
|
+
if (clickedGroup) {
|
|
108
|
+
// check if the data for this group is already present and no search text
|
|
109
|
+
if (searchText === '') {
|
|
110
|
+
const containsData = itemsTree.find(item => item.id === clickedGroup);
|
|
111
|
+
// do not make API call when items of respective group are already fetched
|
|
112
|
+
if (containsData?.items?.length)
|
|
113
|
+
return itemsTree;
|
|
114
|
+
}
|
|
115
|
+
dataApiObj.parameters[Object.keys(dataApiObj.parameters)[0]] = JSON.stringify([clickedGroup]);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
searchTextForUngroupedData = searchText;
|
|
120
|
+
}
|
|
121
|
+
// search API call
|
|
122
|
+
const response = await dataApiObj.fetchData(searchTextForUngroupedData).catch(() => {
|
|
123
|
+
return itemsTree;
|
|
124
|
+
});
|
|
125
|
+
let listObjData = response.data;
|
|
126
|
+
let newItemsTree = [];
|
|
127
|
+
if (isGroupData) {
|
|
128
|
+
if (searchText) {
|
|
129
|
+
listObjData = prepareSearchResults(listObjData, displayFieldMeta);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
newItemsTree = putItemsDataInItemsTree(listObjData, displayFieldMeta, itemsTree, showSecondaryInSearchOnly, selected);
|
|
133
|
+
return newItemsTree;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const showSecondaryData = showSecondaryInSearchOnly ? !!searchText : true;
|
|
137
|
+
if (listObjData !== undefined && listObjData.length > 0) {
|
|
138
|
+
newItemsTree = listObjData.map(entry => createSingleTreeObejct(entry, displayFieldMeta, showSecondaryData, selected));
|
|
139
|
+
}
|
|
140
|
+
return newItemsTree;
|
|
141
|
+
}
|
|
142
|
+
return itemsTree;
|
|
143
|
+
};
|
|
144
|
+
const setValuesToPropertyList = (searchText, assocProp, items, columns, actions, updatePropertyInRedux = true) => {
|
|
145
|
+
const setPropertyList = columns
|
|
146
|
+
?.filter(col => col.setProperty)
|
|
147
|
+
.map(col => {
|
|
148
|
+
return {
|
|
149
|
+
source: col.value,
|
|
150
|
+
target: col.setProperty,
|
|
151
|
+
key: col.key,
|
|
152
|
+
primary: col.primary
|
|
153
|
+
};
|
|
154
|
+
});
|
|
155
|
+
const valueToSet = [];
|
|
156
|
+
if (setPropertyList.length > 0) {
|
|
157
|
+
setPropertyList.forEach(prop => {
|
|
158
|
+
items.forEach(item => {
|
|
159
|
+
if (prop.key === 'true' && item) {
|
|
160
|
+
valueToSet.push(item.id);
|
|
161
|
+
}
|
|
162
|
+
else if (prop.primary === 'true' || !item) {
|
|
163
|
+
valueToSet.push(searchText);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
if (updatePropertyInRedux) {
|
|
167
|
+
// BUG-666851 setting options so that the store values are replaced and not merged
|
|
168
|
+
const options = {
|
|
169
|
+
isArrayDeepMerge: false
|
|
170
|
+
};
|
|
171
|
+
if (prop.target === 'Associated property') {
|
|
172
|
+
actions.updateFieldValue(assocProp, valueToSet, options);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
actions.updateFieldValue(`.${prop.target}`, valueToSet, options);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
return valueToSet;
|
|
181
|
+
};
|
|
182
|
+
const getGroupDataForItemsTree = (groupDataSource, groupsDisplayFieldMeta, showSecondaryInSearchOnly) => {
|
|
183
|
+
return groupDataSource?.map(group => {
|
|
184
|
+
const secondaryArr = [];
|
|
185
|
+
groupsDisplayFieldMeta.secondary.forEach(col => {
|
|
186
|
+
secondaryArr.push(group[col]);
|
|
187
|
+
});
|
|
188
|
+
return {
|
|
189
|
+
id: group[groupsDisplayFieldMeta.key],
|
|
190
|
+
primary: group[groupsDisplayFieldMeta.primary],
|
|
191
|
+
secondary: showSecondaryInSearchOnly ? [] : secondaryArr,
|
|
192
|
+
items: []
|
|
193
|
+
};
|
|
194
|
+
});
|
|
195
|
+
};
|
|
196
|
+
export { useDeepMemo, preProcessColumns, getDisplayFieldsMetaData, doSearch, setValuesToPropertyList, getGroupDataForItemsTree, updateNewInstuctions, insertInstruction, deleteInstruction };
|
|
197
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/field/MultiSelect/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { useRef } from 'react';\nimport equal from 'fast-deep-equal';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { updateNewInstuctions, insertInstruction, deleteInstruction } from '../../helpers/instructions-utils';\n\nexport const setVisibilityForList = (c11nEnv, visibility) => {\n const { selectionMode, selectionList, renderMode, referenceList } = c11nEnv.getComponentConfig();\n // usecase:multiselect, fieldgroup, editable table\n if ((selectionMode === PCore.getConstants().LIST_SELECTION_MODE.MULTI && selectionList) || (renderMode === 'Editable' && referenceList)) {\n c11nEnv.getListActions().setVisibility(visibility);\n }\n};\n\nconst useDeepMemo = (memoFn, key) => {\n const ref: any = useRef();\n if (!ref.current || !equal(key, ref.current.key)) {\n ref.current = { key, value: memoFn() };\n }\n return ref.current.value;\n};\n\nconst preProcessColumns = columns => {\n return columns?.map(col => {\n const tempColObj = { ...col };\n tempColObj.value = col.value && col.value.startsWith('.') ? col.value.substring(1) : col.value;\n if (tempColObj.setProperty) {\n tempColObj.setProperty = col.setProperty && col.setProperty.startsWith('.') ? col.setProperty.substring(1) : col.setProperty;\n }\n return tempColObj;\n });\n};\n\nconst getDisplayFieldsMetaData = columns => {\n const displayColumns = columns?.filter(col => col.display === 'true');\n const metaDataObj: any = {\n key: '',\n primary: '',\n secondary: []\n };\n const keyCol = columns?.filter(col => col.key === 'true');\n metaDataObj.key = keyCol?.length > 0 ? keyCol[0].value : 'auto';\n const itemsRecordsColumn = columns?.filter(col => col.itemsRecordsColumn === 'true');\n if (itemsRecordsColumn?.length > 0) {\n metaDataObj.itemsRecordsColumn = itemsRecordsColumn[0].value;\n }\n const itemsGroupKeyColumn = columns?.filter(col => col.itemsGroupKeyColumn === 'true');\n if (itemsGroupKeyColumn?.length > 0) {\n metaDataObj.itemsGroupKeyColumn = itemsGroupKeyColumn[0].value;\n }\n for (let index = 0; index < displayColumns?.length; index += 1) {\n if (displayColumns[index].secondary === 'true') {\n metaDataObj.secondary.push(displayColumns[index].value);\n } else if (displayColumns[index].primary === 'true') {\n metaDataObj.primary = displayColumns[index].value;\n }\n }\n return metaDataObj;\n};\n\nconst createSingleTreeObejct = (entry, displayFieldMeta, showSecondaryData, selected) => {\n const secondaryArr: any = [];\n displayFieldMeta.secondary.forEach(col => {\n secondaryArr.push(entry[col]);\n });\n const isSelected = selected.some(item => item.id === entry[displayFieldMeta.key]);\n\n return {\n id: entry[displayFieldMeta.key],\n primary: entry[displayFieldMeta.primary],\n secondary: showSecondaryData ? secondaryArr : [],\n selected: isSelected\n };\n};\n\nconst putItemsDataInItemsTree = (listObjData, displayFieldMeta, itemsTree, showSecondaryInSearchOnly, selected) => {\n let newTreeItems = itemsTree.slice();\n const showSecondaryData = !showSecondaryInSearchOnly;\n for (const obj of listObjData) {\n const items = obj[displayFieldMeta.itemsRecordsColumn].map(entry => createSingleTreeObejct(entry, displayFieldMeta, showSecondaryData, selected));\n\n newTreeItems = newTreeItems.map(caseObject => {\n if (caseObject.id === obj[displayFieldMeta.itemsGroupKeyColumn]) {\n caseObject.items = [...items];\n }\n return caseObject;\n });\n }\n return newTreeItems;\n};\n\nconst prepareSearchResults = (listObjData, displayFieldMeta) => {\n const searchResults: any = [];\n for (const obj of listObjData) {\n searchResults.push(...obj[displayFieldMeta.itemsRecordsColumn]);\n }\n return searchResults;\n};\n\nconst doSearch = async (\n searchText,\n clickedGroup,\n initialCaseClass,\n displayFieldMeta,\n dataApiObj, // deep clone of the dataApiObj\n itemsTree,\n isGroupData,\n showSecondaryInSearchOnly,\n selected\n) => {\n let searchTextForUngroupedData = '';\n if (dataApiObj) {\n // creating dataApiObject in grouped data cases\n if (isGroupData) {\n dataApiObj = cloneDeep(dataApiObj);\n dataApiObj.fetchedNQData = false;\n dataApiObj.cache = {};\n\n // if we have no search text and no group selected, return the original tree\n if (searchText === '' && clickedGroup === '') {\n return itemsTree;\n }\n\n // setting the inital search text & search classes in ApiObject\n dataApiObj.parameters[Object.keys(dataApiObj.parameters)[1]] = searchText;\n dataApiObj.parameters[Object.keys(dataApiObj.parameters)[0]] = initialCaseClass;\n\n // if we have a selected group\n if (clickedGroup) {\n // check if the data for this group is already present and no search text\n if (searchText === '') {\n const containsData = itemsTree.find(item => item.id === clickedGroup);\n // do not make API call when items of respective group are already fetched\n if (containsData?.items?.length) return itemsTree;\n }\n\n dataApiObj.parameters[Object.keys(dataApiObj.parameters)[0]] = JSON.stringify([clickedGroup]);\n }\n } else {\n searchTextForUngroupedData = searchText;\n }\n\n // search API call\n const response = await dataApiObj.fetchData(searchTextForUngroupedData).catch(() => {\n return itemsTree;\n });\n\n let listObjData = response.data;\n let newItemsTree = [];\n if (isGroupData) {\n if (searchText) {\n listObjData = prepareSearchResults(listObjData, displayFieldMeta);\n } else {\n newItemsTree = putItemsDataInItemsTree(listObjData, displayFieldMeta, itemsTree, showSecondaryInSearchOnly, selected);\n return newItemsTree;\n }\n }\n const showSecondaryData = showSecondaryInSearchOnly ? !!searchText : true;\n if (listObjData !== undefined && listObjData.length > 0) {\n newItemsTree = listObjData.map(entry => createSingleTreeObejct(entry, displayFieldMeta, showSecondaryData, selected));\n }\n return newItemsTree;\n }\n\n return itemsTree;\n};\n\nconst setValuesToPropertyList = (searchText, assocProp, items, columns, actions, updatePropertyInRedux = true) => {\n const setPropertyList = columns\n ?.filter(col => col.setProperty)\n .map(col => {\n return {\n source: col.value,\n target: col.setProperty,\n key: col.key,\n primary: col.primary\n };\n });\n const valueToSet: any = [];\n if (setPropertyList.length > 0) {\n setPropertyList.forEach(prop => {\n items.forEach(item => {\n if (prop.key === 'true' && item) {\n valueToSet.push(item.id);\n } else if (prop.primary === 'true' || !item) {\n valueToSet.push(searchText);\n }\n });\n\n if (updatePropertyInRedux) {\n // BUG-666851 setting options so that the store values are replaced and not merged\n const options = {\n isArrayDeepMerge: false\n };\n if (prop.target === 'Associated property') {\n actions.updateFieldValue(assocProp, valueToSet, options);\n } else {\n actions.updateFieldValue(`.${prop.target}`, valueToSet, options);\n }\n }\n });\n }\n return valueToSet;\n};\n\nconst getGroupDataForItemsTree = (groupDataSource, groupsDisplayFieldMeta, showSecondaryInSearchOnly) => {\n return groupDataSource?.map(group => {\n const secondaryArr: any = [];\n groupsDisplayFieldMeta.secondary.forEach(col => {\n secondaryArr.push(group[col]);\n });\n return {\n id: group[groupsDisplayFieldMeta.key],\n primary: group[groupsDisplayFieldMeta.primary],\n secondary: showSecondaryInSearchOnly ? [] : secondaryArr,\n items: []\n };\n });\n};\n\nexport {\n useDeepMemo,\n preProcessColumns,\n getDisplayFieldsMetaData,\n doSearch,\n setValuesToPropertyList,\n getGroupDataForItemsTree,\n updateNewInstuctions,\n insertInstruction,\n deleteInstruction\n};\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare const updateNewInstuctions: (c11nEnv: any, selectionList: any) => void;
|
|
2
|
+
declare const insertInstruction: (c11nEnv: any, selectionList: any, selectionKey: any, primaryField: any, item: any) => void;
|
|
3
|
+
declare const deleteInstruction: (c11nEnv: any, selectionList: any, selectionKey: any, item: any) => void;
|
|
4
|
+
export { updateNewInstuctions, insertInstruction, deleteInstruction };
|
|
5
|
+
//# sourceMappingURL=instructions-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions-utils.d.ts","sourceRoot":"","sources":["../../../src/components/helpers/instructions-utils.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,oBAAoB,4CAOzB,CAAC;AAEF,QAAA,MAAM,iBAAiB,6FAYtB,CAAC;AAEF,QAAA,MAAM,iBAAiB,0EAMtB,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const isSelfReferencedProperty = (param, referenceProp) => {
|
|
2
|
+
const [, parentPropName] = param.split('.');
|
|
3
|
+
const referencePropParent = referenceProp?.split('.').pop();
|
|
4
|
+
return parentPropName === referencePropParent;
|
|
5
|
+
};
|
|
6
|
+
const updateNewInstuctions = (c11nEnv, selectionList) => {
|
|
7
|
+
const { datasource: { parameters = {} } = {} } = c11nEnv.getFieldMetadata(selectionList) || {};
|
|
8
|
+
const compositeKeys = [];
|
|
9
|
+
Object.values(parameters).forEach((param) => {
|
|
10
|
+
if (isSelfReferencedProperty(param, selectionList))
|
|
11
|
+
compositeKeys.push(param.substring(param.lastIndexOf('.') + 1));
|
|
12
|
+
});
|
|
13
|
+
c11nEnv.getListActions().initDefaultPageInstructions(selectionList, compositeKeys);
|
|
14
|
+
};
|
|
15
|
+
const insertInstruction = (c11nEnv, selectionList, selectionKey, primaryField, item) => {
|
|
16
|
+
const { id, primary } = item;
|
|
17
|
+
const actualProperty = selectionKey.startsWith('.') ? selectionKey.substring(1) : selectionKey;
|
|
18
|
+
const displayProperty = primaryField.startsWith('.') ? primaryField.substring(1) : primaryField;
|
|
19
|
+
const rows = c11nEnv.getValue(`${c11nEnv.getPageReference()}${selectionList}`) || [];
|
|
20
|
+
const startIndex = rows.length;
|
|
21
|
+
const content = {
|
|
22
|
+
[actualProperty]: id,
|
|
23
|
+
[displayProperty]: primary,
|
|
24
|
+
nonFormProperties: actualProperty !== displayProperty ? [displayProperty] : []
|
|
25
|
+
};
|
|
26
|
+
c11nEnv.getListActions().insert(content, startIndex);
|
|
27
|
+
};
|
|
28
|
+
const deleteInstruction = (c11nEnv, selectionList, selectionKey, item) => {
|
|
29
|
+
const { id } = item;
|
|
30
|
+
const actualProperty = selectionKey.startsWith('.') ? selectionKey.substring(1) : selectionKey;
|
|
31
|
+
const rows = c11nEnv.getValue(`${c11nEnv.getPageReference()}${selectionList}`) || [];
|
|
32
|
+
const index = rows.findIndex(row => row[actualProperty] === id);
|
|
33
|
+
c11nEnv.getListActions().deleteEntry(index);
|
|
34
|
+
};
|
|
35
|
+
export { updateNewInstuctions, insertInstruction, deleteInstruction };
|
|
36
|
+
//# sourceMappingURL=instructions-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions-utils.js","sourceRoot":"","sources":["../../../src/components/helpers/instructions-utils.ts"],"names":[],"mappings":"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","sourcesContent":["const isSelfReferencedProperty = (param, referenceProp) => {\n const [, parentPropName] = param.split('.');\n const referencePropParent = referenceProp?.split('.').pop();\n return parentPropName === referencePropParent;\n};\n\nconst updateNewInstuctions = (c11nEnv, selectionList) => {\n const { datasource: { parameters = {} } = {} } = c11nEnv.getFieldMetadata(selectionList) || {};\n const compositeKeys: any = [];\n Object.values(parameters).forEach((param: any) => {\n if (isSelfReferencedProperty(param, selectionList)) compositeKeys.push(param.substring(param.lastIndexOf('.') + 1));\n });\n c11nEnv.getListActions().initDefaultPageInstructions(selectionList, compositeKeys);\n};\n\nconst insertInstruction = (c11nEnv, selectionList, selectionKey, primaryField, item) => {\n const { id, primary } = item;\n const actualProperty = selectionKey.startsWith('.') ? selectionKey.substring(1) : selectionKey;\n const displayProperty = primaryField.startsWith('.') ? primaryField.substring(1) : primaryField;\n const rows = c11nEnv.getValue(`${c11nEnv.getPageReference()}${selectionList}`) || [];\n const startIndex = rows.length;\n const content = {\n [actualProperty]: id,\n [displayProperty]: primary,\n nonFormProperties: actualProperty !== displayProperty ? [displayProperty] : []\n };\n c11nEnv.getListActions().insert(content, startIndex);\n};\n\nconst deleteInstruction = (c11nEnv, selectionList, selectionKey, item) => {\n const { id } = item;\n const actualProperty = selectionKey.startsWith('.') ? selectionKey.substring(1) : selectionKey;\n const rows = c11nEnv.getValue(`${c11nEnv.getPageReference()}${selectionList}`) || [];\n const index = rows.findIndex(row => row[actualProperty] === id);\n c11nEnv.getListActions().deleteEntry(index);\n};\n\nexport { updateNewInstuctions, insertInstruction, deleteInstruction };\n"]}
|
|
@@ -21,7 +21,7 @@ export default function Reference(props) {
|
|
|
21
21
|
};
|
|
22
22
|
// @ts-ignore - Argument of type 'null' is not assignable to parameter of type 'string'.
|
|
23
23
|
const viewComponent = pConnect.createComponent(viewObject, null, null, {
|
|
24
|
-
pageReference: context
|
|
24
|
+
pageReference: context && context.startsWith('@CLASS') ? '' : context
|
|
25
25
|
});
|
|
26
26
|
viewComponent.props.getPConnect().setInheritedConfig({
|
|
27
27
|
...referenceConfig,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reference.js","sourceRoot":"","sources":["../../../../src/components/infra/Reference/Reference.tsx"],"names":[],"mappings":";AAUA,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAqB;IACrD,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,WAAW,EAAE,QAAQ,GAAG,KAAK,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IAEnG,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,oGAAoG;IACpG,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC;IAEnE,OAAO,eAAe,EAAE,IAAI,CAAC;IAC7B,OAAO,eAAe,EAAE,IAAI,CAAC;IAC7B,OAAO,eAAe,EAAE,UAAU,CAAC;IAEnC,MAAM,YAAY,GAAQ,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IAEvD,IAAI,CAAC,YAAY,EAAE;QACjB,iEAAiE;QACjE,OAAO,IAAI,CAAC;KACb;IAED,MAAM,UAAU,GAAG;QACjB,GAAG,YAAY;QACf,MAAM,EAAE;YACN,GAAG,YAAY,CAAC,MAAM;YACtB,GAAG,eAAe;SACnB;KACF,CAAC;IAEF,wFAAwF;IACxF,MAAM,aAAa,GAAQ,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;QAC1E,aAAa,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"Reference.js","sourceRoot":"","sources":["../../../../src/components/infra/Reference/Reference.tsx"],"names":[],"mappings":";AAUA,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAqB;IACrD,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,WAAW,EAAE,QAAQ,GAAG,KAAK,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IAEnG,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,oGAAoG;IACpG,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC;IAEnE,OAAO,eAAe,EAAE,IAAI,CAAC;IAC7B,OAAO,eAAe,EAAE,IAAI,CAAC;IAC7B,OAAO,eAAe,EAAE,UAAU,CAAC;IAEnC,MAAM,YAAY,GAAQ,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IAEvD,IAAI,CAAC,YAAY,EAAE;QACjB,iEAAiE;QACjE,OAAO,IAAI,CAAC;KACb;IAED,MAAM,UAAU,GAAG;QACjB,GAAG,YAAY;QACf,MAAM,EAAE;YACN,GAAG,YAAY,CAAC,MAAM;YACtB,GAAG,eAAe;SACnB;KACF,CAAC;IAEF,wFAAwF;IACxF,MAAM,aAAa,GAAQ,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;QAC1E,aAAa,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO;KACtE,CAAC,CAAC;IAEH,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,kBAAkB,CAAC;QACnD,GAAG,eAAe;QAClB,QAAQ;QACR,WAAW;KACZ,CAAC,CAAC;IAEH,IAAI,UAAU,KAAK,KAAK,EAAE;QACxB,OAAO,4BAAG,aAAa,GAAI,CAAC;KAC7B;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import { PConnProps } from '../../../types/PConnProps';\n\ninterface ReferenceProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n visibility?: boolean;\n context?: string;\n readOnly?: boolean;\n displayMode?: string;\n}\n\nexport default function Reference(props: ReferenceProps) {\n const { visibility = true, context = '', getPConnect, readOnly = false, displayMode = '' } = props;\n\n const pConnect = getPConnect();\n // @ts-ignore - Property 'getComponentConfig' is private and only accessible within class 'C11nEnv'.\n const referenceConfig = { ...pConnect.getComponentConfig() } || {};\n\n delete referenceConfig?.name;\n delete referenceConfig?.type;\n delete referenceConfig?.visibility;\n\n const viewMetadata: any = pConnect.getReferencedView();\n\n if (!viewMetadata) {\n // console.log(\"View not found \", pConnect.getComponentConfig());\n return null;\n }\n\n const viewObject = {\n ...viewMetadata,\n config: {\n ...viewMetadata.config,\n ...referenceConfig\n }\n };\n\n // @ts-ignore - Argument of type 'null' is not assignable to parameter of type 'string'.\n const viewComponent: any = pConnect.createComponent(viewObject, null, null, {\n pageReference: context && context.startsWith('@CLASS') ? '' : context\n });\n\n viewComponent.props.getPConnect().setInheritedConfig({\n ...referenceConfig,\n readOnly,\n displayMode\n });\n\n if (visibility !== false) {\n return <>{viewComponent}</>;\n }\n return null;\n}\n"]}
|
|
@@ -153,10 +153,10 @@ export default function ListView(props) {
|
|
|
153
153
|
handleRequestSort(event, property);
|
|
154
154
|
};
|
|
155
155
|
function descendingComparator(a, b, orderedBy) {
|
|
156
|
-
if (b[orderedBy] < a[orderedBy]) {
|
|
156
|
+
if (!b[orderedBy] || b[orderedBy] < a[orderedBy]) {
|
|
157
157
|
return -1;
|
|
158
158
|
}
|
|
159
|
-
if (b[orderedBy] > a[orderedBy]) {
|
|
159
|
+
if (!a[orderedBy] || b[orderedBy] > a[orderedBy]) {
|
|
160
160
|
return 1;
|
|
161
161
|
}
|
|
162
162
|
return 0;
|
|
@@ -809,7 +809,7 @@ export default function ListView(props) {
|
|
|
809
809
|
val = format(value, column.type, theCurrencyOptions);
|
|
810
810
|
break;
|
|
811
811
|
default:
|
|
812
|
-
val = column.format && typeof value === 'number' ? column.format(value) : value;
|
|
812
|
+
val = column.format && typeof value === 'number' ? column.format(value) : value || '---';
|
|
813
813
|
}
|
|
814
814
|
return val;
|
|
815
815
|
};
|
|
@@ -824,7 +824,7 @@ export default function ListView(props) {
|
|
|
824
824
|
const value = row[column.id];
|
|
825
825
|
return (_jsx(TableCell, { align: column.align, className: classes.cell, children: _showButton(column.id, row) || column.displayAsLink ? (_jsx(Link, { component: 'button', onClick: () => {
|
|
826
826
|
_listViewClick(row, column);
|
|
827
|
-
}, children: column.format && typeof value === 'number' ? column.format(value) : value })) : (_jsx(_Fragment, { children: column.format && typeof value === 'number' ? column.format(value) : value })) }, column.id));
|
|
827
|
+
}, children: column.format && typeof value === 'number' ? column.format(value) : value })) : (_jsx(_Fragment, { children: column.format && typeof value === 'number' ? column.format(value) : value || '---' })) }, column.id));
|
|
828
828
|
}) }, row.pxRefObjectInsName || row.pyID));
|
|
829
829
|
}) })] }) })) : (_jsxs(TableContainer, { id: 'list-view', children: [_jsxs(Table, { children: [_jsx(TableHead, { children: _jsxs(TableRow, { children: [(selectionMode === SELECTION_MODE.SINGLE || selectionMode === SELECTION_MODE.MULTI) && _jsx(TableCell, {}), arColumns.map(column => {
|
|
830
830
|
return (_jsx(TableCell, { className: classes.cell, sortDirection: orderBy === column.id ? order : false, children: _jsxs(TableSortLabel, { active: orderBy === column.id, direction: orderBy === column.id ? order : 'asc', onClick: createSortHandler(column.id), children: [column.label, orderBy === column.id ? (_jsx("span", { className: classes.visuallyHidden, children: order === 'desc' ? 'sorted descending' : 'sorted ascending' })) : null] }) }, column.id));
|