@pega/react-sdk-components 0.23.34 → 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 (40) 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/Currency/Currency.d.ts.map +1 -1
  6. package/lib/components/field/Currency/Currency.js.map +1 -1
  7. package/lib/components/field/Decimal/Decimal.d.ts +1 -0
  8. package/lib/components/field/Decimal/Decimal.d.ts.map +1 -1
  9. package/lib/components/field/Decimal/Decimal.js +10 -3
  10. package/lib/components/field/Decimal/Decimal.js.map +1 -1
  11. package/lib/components/field/MultiSelect/Multiselect.d.ts +3 -0
  12. package/lib/components/field/MultiSelect/Multiselect.d.ts.map +1 -0
  13. package/lib/components/field/MultiSelect/Multiselect.js +175 -0
  14. package/lib/components/field/MultiSelect/Multiselect.js.map +1 -0
  15. package/lib/components/field/MultiSelect/index.d.ts +2 -0
  16. package/lib/components/field/MultiSelect/index.d.ts.map +1 -0
  17. package/lib/components/field/MultiSelect/index.js +2 -0
  18. package/lib/components/field/MultiSelect/index.js.map +1 -0
  19. package/lib/components/field/MultiSelect/utils.d.ts +10 -0
  20. package/lib/components/field/MultiSelect/utils.d.ts.map +1 -0
  21. package/lib/components/field/MultiSelect/utils.js +197 -0
  22. package/lib/components/field/MultiSelect/utils.js.map +1 -0
  23. package/lib/components/field/Percentage/Percentage.d.ts.map +1 -1
  24. package/lib/components/field/Percentage/Percentage.js.map +1 -1
  25. package/lib/components/helpers/instructions-utils.d.ts +5 -0
  26. package/lib/components/helpers/instructions-utils.d.ts.map +1 -0
  27. package/lib/components/helpers/instructions-utils.js +36 -0
  28. package/lib/components/helpers/instructions-utils.js.map +1 -0
  29. package/lib/components/infra/Reference/Reference.js +1 -1
  30. package/lib/components/infra/Reference/Reference.js.map +1 -1
  31. package/lib/components/template/ListView/ListView.d.ts.map +1 -1
  32. package/lib/components/template/ListView/ListView.js +6 -5
  33. package/lib/components/template/ListView/ListView.js.map +1 -1
  34. package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js +4 -4
  35. package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js.map +1 -1
  36. package/lib/doc/KeyReleaseUpdates.md +1 -2
  37. package/lib/sdk-pega-component-map.d.ts +2 -0
  38. package/lib/sdk-pega-component-map.js +2 -0
  39. package/lib/sdk-pega-component-map.js.map +1 -1
  40. 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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Percentage.d.ts","sourceRoot":"","sources":["../../../../src/components/field/Percentage/Percentage.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAK5D,UAAU,eAAgB,SAAQ,eAAe;IAE/C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,eAAe,eAgFxD"}
1
+ {"version":3,"file":"Percentage.d.ts","sourceRoot":"","sources":["../../../../src/components/field/Percentage/Percentage.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAQ5D,UAAU,eAAgB,SAAQ,eAAe;IAE/C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,eAAe,eAgFxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Percentage.js","sourceRoot":"","sources":["../../../../src/components/field/Percentage/Percentage.tsx"],"names":[],"mappings":";AAAA,OAAO,iBAAiB,MAAM,wCAAwC,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAEhF,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAOlD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAsB;IACvD,8EAA8E;IAC9E,MAAM,cAAc,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAE7D,MAAM,EACJ,WAAW,EACX,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,GAAG,EAAE,EACV,eAAe,EACf,MAAM;IACN,YAAY;IACZ,UAAU;IACV,QAAQ,EACR,eAAe,GAAG,KAAK,EACvB,MAAM,EACN,UAAU,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACZ,GAAG,KAAK,CAAC;IAEV,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAI,KAAK,CAAC,aAAa,EAAU,CAAC,KAAK,CAAC;IACtD,MAAM,mBAAmB,GAAG,eAAe,IAAI,UAAU,CAAC;IAE1D,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,WAAW,EAAE,EAAE,kBAAkB,CAAC,CAAC;IAEjG,8DAA8D;IAE9D,IAAI,WAAW,KAAK,aAAa,EAAE;QACjC,OAAO,KAAC,cAAc,IAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,GAAI,CAAC;KAChF;IAED,IAAI,WAAW,KAAK,mBAAmB,EAAE;QACvC,OAAO,KAAC,cAAc,IAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAC,SAAS,GAAG,CAAC;KAClG;IAED,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,QAAQ,GAAG;QACT,cAAc,EAAE,MAAM;KACvB,CAAC;IAEF,MAAM,UAAU,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,UAAU,CAAC,mBAAmB,CAAC;IAClD,MAAM,UAAU,GAAG,UAAU,CAAC,sBAAsB,CAAC;IAErD,SAAS,gBAAgB,CAAC,KAAK,EAAE,OAAO;QACtC,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,CACL,KAAC,iBAAiB,IAChB,SAAS,QACT,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAC3C,UAAU,EAAE,mBAAmB,EAC/B,WAAW,EAAE,WAAW,IAAI,EAAE,EAC9B,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ,EACpB,KAAK,EAAE,MAAM,KAAK,OAAO,EACzB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,IAAI,EAAC,MAAM,EACX,YAAY,EAAC,QAAQ,EACrB,SAAS,EAAC,MAAM,EAChB,UAAU,EAAE;YACV,UAAU,EAAE,EAAE,GAAG,QAAQ,EAAE;SAC5B,EACD,cAAc,EAAC,EAAE,EACjB,gBAAgB,EAAE,UAAU,EAC5B,mBAAmB,EAAE,UAAU,EAC/B,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,GAChD,CACH,CAAC;AACJ,CAAC","sourcesContent":["import CurrencyTextField from '@unicef/material-ui-currency-textfield';\n\nimport { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';\nimport { PConnFieldProps } from '../../../types/PConnProps';\nimport { getCurrencyCharacters, getCurrencyOptions } from '../Currency/currency-utils';\nimport handleEvent from '../../helpers/event-utils';\nimport { format } from '../../helpers/formatters';\n\ninterface PercentageProps extends PConnFieldProps {\n // If any, enter additional props that only exist on Percentage here\n currencyISOCode?: string;\n}\n\nexport default function Percentage(props: PercentageProps) {\n // Get emitted components from map (so we can get any override that may exist)\n const FieldValueList = getComponentFromMap('FieldValueList');\n\n const {\n getPConnect,\n label,\n required,\n disabled,\n value = '',\n validatemessage,\n status,\n // onChange,\n // onBlur,\n readOnly,\n currencyISOCode = 'USD',\n testId,\n helperText,\n displayMode,\n hideLabel,\n placeholder\n } = props;\n\n const pConn = getPConnect();\n const actions = pConn.getActionsApi();\n const propName = (pConn.getStateProps() as any).value;\n const helperTextToDisplay = validatemessage || helperText;\n\n const theCurrencyOptions = getCurrencyOptions(currencyISOCode);\n const formattedValue = format(value, pConn.getComponentName().toLowerCase(), theCurrencyOptions);\n\n // console.log(`Percentage: label: ${label} value: ${value}`);\n\n if (displayMode === 'LABELS_LEFT') {\n return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} />;\n }\n\n if (displayMode === 'STACKED_LARGE_VAL') {\n return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} variant='stacked' />;\n }\n\n let testProp = {};\n\n testProp = {\n 'data-test-id': testId\n };\n\n const theSymbols = getCurrencyCharacters(currencyISOCode);\n const theCurrDec = theSymbols.theDecimalIndicator;\n const theCurrSep = theSymbols.theDigitGroupSeparator;\n\n function PercentageOnBlur(event, inValue) {\n handleEvent(actions, 'changeNblur', propName, inValue !== '' ? Number(inValue) : inValue);\n }\n\n return (\n <CurrencyTextField\n fullWidth\n variant={readOnly ? 'standard' : 'outlined'}\n helperText={helperTextToDisplay}\n placeholder={placeholder ?? ''}\n size='small'\n required={required}\n disabled={disabled}\n readOnly={!!readOnly}\n error={status === 'error'}\n label={label}\n value={value}\n type='text'\n outputFormat='number'\n textAlign='left'\n InputProps={{\n inputProps: { ...testProp }\n }}\n currencySymbol=''\n decimalCharacter={theCurrDec}\n digitGroupSeparator={theCurrSep}\n onBlur={!readOnly ? PercentageOnBlur : undefined}\n />\n );\n}\n"]}
1
+ {"version":3,"file":"Percentage.js","sourceRoot":"","sources":["../../../../src/components/field/Percentage/Percentage.tsx"],"names":[],"mappings":"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","sourcesContent":["import CurrencyTextField from '@unicef/material-ui-currency-textfield';\n\nimport { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';\nimport { PConnFieldProps } from '../../../types/PConnProps';\nimport { getCurrencyCharacters, getCurrencyOptions } from '../Currency/currency-utils';\nimport handleEvent from '../../helpers/event-utils';\nimport { format } from '../../helpers/formatters';\n\n/* Using @unicef/material-ui-currency-textfield component here, since it allows formatting decimal values,\nas per the locale.\n*/\ninterface PercentageProps extends PConnFieldProps {\n // If any, enter additional props that only exist on Percentage here\n currencyISOCode?: string;\n}\n\nexport default function Percentage(props: PercentageProps) {\n // Get emitted components from map (so we can get any override that may exist)\n const FieldValueList = getComponentFromMap('FieldValueList');\n\n const {\n getPConnect,\n label,\n required,\n disabled,\n value = '',\n validatemessage,\n status,\n // onChange,\n // onBlur,\n readOnly,\n currencyISOCode = 'USD',\n testId,\n helperText,\n displayMode,\n hideLabel,\n placeholder\n } = props;\n\n const pConn = getPConnect();\n const actions = pConn.getActionsApi();\n const propName = (pConn.getStateProps() as any).value;\n const helperTextToDisplay = validatemessage || helperText;\n\n const theCurrencyOptions = getCurrencyOptions(currencyISOCode);\n const formattedValue = format(value, pConn.getComponentName().toLowerCase(), theCurrencyOptions);\n\n // console.log(`Percentage: label: ${label} value: ${value}`);\n\n if (displayMode === 'LABELS_LEFT') {\n return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} />;\n }\n\n if (displayMode === 'STACKED_LARGE_VAL') {\n return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} variant='stacked' />;\n }\n\n let testProp = {};\n\n testProp = {\n 'data-test-id': testId\n };\n\n const theSymbols = getCurrencyCharacters(currencyISOCode);\n const theCurrDec = theSymbols.theDecimalIndicator;\n const theCurrSep = theSymbols.theDigitGroupSeparator;\n\n function PercentageOnBlur(event, inValue) {\n handleEvent(actions, 'changeNblur', propName, inValue !== '' ? Number(inValue) : inValue);\n }\n\n return (\n <CurrencyTextField\n fullWidth\n variant={readOnly ? 'standard' : 'outlined'}\n helperText={helperTextToDisplay}\n placeholder={placeholder ?? ''}\n size='small'\n required={required}\n disabled={disabled}\n readOnly={!!readOnly}\n error={status === 'error'}\n label={label}\n value={value}\n type='text'\n outputFormat='number'\n textAlign='left'\n InputProps={{\n inputProps: { ...testProp }\n }}\n currencySymbol=''\n decimalCharacter={theCurrDec}\n digitGroupSeparator={theCurrSep}\n onBlur={!readOnly ? PercentageOnBlur : undefined}\n />\n );\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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../../../../src/components/template/ListView/ListView.tsx"],"names":[],"mappings":";AAwCA,OAAO,gBAAgB,CAAC;AAMxB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,UAAU,aAAc,SAAQ,UAAU;IAExC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IAEtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,GAAG,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC;CACZ;AAeD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,aAAa,eAwpCpD"}
1
+ {"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../../../../src/components/template/ListView/ListView.tsx"],"names":[],"mappings":";AAwCA,OAAO,gBAAgB,CAAC;AAMxB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,UAAU,aAAc,SAAQ,UAAU;IAExC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IAEtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,GAAG,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC;CACZ;AAeD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,aAAa,eAypCpD"}
@@ -103,7 +103,8 @@ export default function ListView(props) {
103
103
  paper: {
104
104
  width: '100%',
105
105
  marginTop: theme.spacing(2),
106
- marginBottom: theme.spacing(2)
106
+ marginBottom: theme.spacing(2),
107
+ display: 'grid'
107
108
  },
108
109
  search: {
109
110
  padding: '5px 5px'
@@ -152,10 +153,10 @@ export default function ListView(props) {
152
153
  handleRequestSort(event, property);
153
154
  };
154
155
  function descendingComparator(a, b, orderedBy) {
155
- if (b[orderedBy] < a[orderedBy]) {
156
+ if (!b[orderedBy] || b[orderedBy] < a[orderedBy]) {
156
157
  return -1;
157
158
  }
158
- if (b[orderedBy] > a[orderedBy]) {
159
+ if (!a[orderedBy] || b[orderedBy] > a[orderedBy]) {
159
160
  return 1;
160
161
  }
161
162
  return 0;
@@ -808,7 +809,7 @@ export default function ListView(props) {
808
809
  val = format(value, column.type, theCurrencyOptions);
809
810
  break;
810
811
  default:
811
- val = column.format && typeof value === 'number' ? column.format(value) : value;
812
+ val = column.format && typeof value === 'number' ? column.format(value) : value || '---';
812
813
  }
813
814
  return val;
814
815
  };
@@ -823,7 +824,7 @@ export default function ListView(props) {
823
824
  const value = row[column.id];
824
825
  return (_jsx(TableCell, { align: column.align, className: classes.cell, children: _showButton(column.id, row) || column.displayAsLink ? (_jsx(Link, { component: 'button', onClick: () => {
825
826
  _listViewClick(row, column);
826
- }, 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));
827
828
  }) }, row.pxRefObjectInsName || row.pyID));
828
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 => {
829
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));