@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.
Files changed (35) hide show
  1. package/lib/components/field/Checkbox/Checkbox.d.ts +7 -0
  2. package/lib/components/field/Checkbox/Checkbox.d.ts.map +1 -1
  3. package/lib/components/field/Checkbox/Checkbox.js +51 -9
  4. package/lib/components/field/Checkbox/Checkbox.js.map +1 -1
  5. package/lib/components/field/Decimal/Decimal.d.ts +1 -0
  6. package/lib/components/field/Decimal/Decimal.d.ts.map +1 -1
  7. package/lib/components/field/Decimal/Decimal.js +10 -3
  8. package/lib/components/field/Decimal/Decimal.js.map +1 -1
  9. package/lib/components/field/MultiSelect/Multiselect.d.ts +3 -0
  10. package/lib/components/field/MultiSelect/Multiselect.d.ts.map +1 -0
  11. package/lib/components/field/MultiSelect/Multiselect.js +175 -0
  12. package/lib/components/field/MultiSelect/Multiselect.js.map +1 -0
  13. package/lib/components/field/MultiSelect/index.d.ts +2 -0
  14. package/lib/components/field/MultiSelect/index.d.ts.map +1 -0
  15. package/lib/components/field/MultiSelect/index.js +2 -0
  16. package/lib/components/field/MultiSelect/index.js.map +1 -0
  17. package/lib/components/field/MultiSelect/utils.d.ts +10 -0
  18. package/lib/components/field/MultiSelect/utils.d.ts.map +1 -0
  19. package/lib/components/field/MultiSelect/utils.js +197 -0
  20. package/lib/components/field/MultiSelect/utils.js.map +1 -0
  21. package/lib/components/helpers/instructions-utils.d.ts +5 -0
  22. package/lib/components/helpers/instructions-utils.d.ts.map +1 -0
  23. package/lib/components/helpers/instructions-utils.js +36 -0
  24. package/lib/components/helpers/instructions-utils.js.map +1 -0
  25. package/lib/components/infra/Reference/Reference.js +1 -1
  26. package/lib/components/infra/Reference/Reference.js.map +1 -1
  27. package/lib/components/template/ListView/ListView.js +4 -4
  28. package/lib/components/template/ListView/ListView.js.map +1 -1
  29. package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js +4 -4
  30. package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js.map +1 -1
  31. package/lib/doc/KeyReleaseUpdates.md +1 -2
  32. package/lib/sdk-pega-component-map.d.ts +2 -0
  33. package/lib/sdk-pega-component-map.js +2 -0
  34. package/lib/sdk-pega-component-map.js.map +1 -1
  35. 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;KACvB,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\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"]}
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));