@pega/react-sdk-components 0.23.31 → 0.23.33
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/helpers/simpleTableHelpers.js +1 -1
- package/lib/components/helpers/simpleTableHelpers.js.map +1 -1
- package/lib/components/template/ListView/utils.d.ts.map +1 -1
- package/lib/components/template/ListView/utils.js +3 -1
- package/lib/components/template/ListView/utils.js.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.d.ts.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js +15 -1
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js.map +1 -1
- package/lib/components/widget/QuickCreate/QuickCreate.d.ts.map +1 -1
- package/lib/components/widget/QuickCreate/QuickCreate.js +52 -23
- package/lib/components/widget/QuickCreate/QuickCreate.js.map +1 -1
- package/package.json +1 -1
|
@@ -123,7 +123,7 @@ export const buildFieldsForTable = (configFields, fields, showDeleteButton) => {
|
|
|
123
123
|
type: 'text',
|
|
124
124
|
label: fields[index].config.label || fields[index].config.caption,
|
|
125
125
|
fillAvailableSpace: !!field.config.fillAvailableSpace,
|
|
126
|
-
id: index
|
|
126
|
+
id: `${index}`,
|
|
127
127
|
name: field.config.value.substr(4),
|
|
128
128
|
cellRenderer: TABLE_CELL,
|
|
129
129
|
sort: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpleTableHelpers.js","sourceRoot":"","sources":["../../../src/components/helpers/simpleTableHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { Utils } from './utils';\n\nexport const TABLE_CELL = 'SdkRenderer';\nexport const DELETE_ICON = 'DeleteIcon';\n\n// BUG-615253: Workaround for autosize in table with lazy loading components\n/* istanbul ignore next */\nfunction getFieldWidth(field, label) {\n let width: number;\n switch (field.type) {\n case 'Time':\n width = 150;\n break;\n case 'Date':\n width = 160;\n break;\n case 'DateTime':\n width = 205;\n break;\n case 'AutoComplete':\n case 'TextArea':\n width = 190;\n break;\n case 'Currency':\n case 'TextInput':\n width = 182;\n break;\n case 'Checkbox':\n // eslint-disable-next-line no-case-declarations\n const text = document.createElement('span');\n document.body.appendChild(text);\n text.style.fontSize = '13px';\n text.style.position = 'absolute';\n text.innerHTML = label;\n width = Math.ceil(text.clientWidth) + 30;\n document.body.removeChild(text);\n break;\n default:\n width = 180;\n }\n return width;\n}\n\nexport const getContext = thePConn => {\n const contextName = thePConn.getContextName();\n const pageReference = thePConn.getPageReference();\n const { referenceList } = thePConn.getStateProps()?.config || thePConn.getStateProps();\n const pageReferenceForRows = referenceList.startsWith('.') ? `${pageReference}.${referenceList.substring(1)}` : referenceList;\n\n // removing \"caseInfo.content\" prefix to avoid setting it as a target while preparing pageInstructions\n // skipping the removal as StateMachine itself is removing this case info prefix while preparing pageInstructions\n // referenceList = pageReferenceForRows.replace(\n // PCore.getConstants().CASE_INFO.CASE_INFO_CONTENT,\n // \"\"\n // );\n\n return {\n contextName,\n referenceListStr: referenceList,\n pageReferenceForRows\n };\n};\n\nexport const populateRowKey = rawData => {\n return rawData.map((row: any, index: number) => {\n return { ...row, index };\n });\n};\n\nexport const getApiContext = (processedData, pConnect, reorderCB) => {\n return {\n fetchData: () => {\n return new Promise(resolve => {\n resolve({\n data: processedData,\n filteredRecordCount: processedData.length,\n totalRecordCount: processedData.length\n });\n });\n },\n fetchPersonalizations: () => {\n return Promise.resolve({});\n },\n applyRowReorder: (sourceKey, destinationKey) => {\n // indexes are keys for simple table so, it should work.\n reorderCB();\n return Promise.resolve(pConnect.getListActions().reorder(parseInt(sourceKey, 10), parseInt(destinationKey, 10)));\n }\n };\n};\n\nexport const buildMetaForListView = (fieldMetadata, fields, type, ruleClass, name, propertyLabel, isDataObject, parameters) => {\n return {\n name,\n config: {\n type,\n referenceList: fieldMetadata.datasource.name,\n parameters: parameters ?? fieldMetadata.datasource.parameters,\n personalization: false,\n isDataObject,\n grouping: true,\n globalSearch: true,\n reorderFields: true,\n toggleFieldVisibility: true,\n title: propertyLabel,\n personalizationId: '' /* TODO */,\n template: 'ListView',\n presets: [\n {\n name: 'presets',\n template: 'Table',\n config: {},\n children: [\n {\n name: 'Columns',\n type: 'Region',\n children: fields\n }\n ],\n label: propertyLabel,\n id: 'P_' /* TODO */\n }\n ],\n ruleClass\n }\n };\n};\n\nexport const buildFieldsForTable = (configFields, fields, showDeleteButton) => {\n const fieldDefs = configFields.map((field, index) => {\n return {\n type: 'text',\n label: fields[index].config.label || fields[index].config.caption,\n fillAvailableSpace: !!field.config.fillAvailableSpace,\n id: index,\n name: field.config.value.substr(4),\n cellRenderer: TABLE_CELL,\n sort: false,\n noContextMenu: true,\n showMenu: false,\n meta: {\n ...field\n },\n // BUG-615253: Workaround for autosize in table with lazy loading components\n width: getFieldWidth(field, fields[index].config.label)\n };\n });\n\n // ONLY add DELETE_ICON to fields when the table is requested as EDITABLE\n if (showDeleteButton) {\n fieldDefs.push({\n type: 'text',\n id: fieldDefs.length,\n cellRenderer: DELETE_ICON,\n sort: false,\n noContextMenu: true,\n showMenu: false,\n // BUG-615253: Workaround for autosize in table with lazy loading components\n width: 46\n });\n }\n\n return fieldDefs;\n};\n\nexport const createMetaForTable = (fields, renderMode) => {\n return {\n height: {\n minHeight: 'auto',\n fitHeightToElement: 'fitHeightToElement',\n deltaAdjustment: 'deltaAdjustment',\n autoSize: true\n },\n fieldDefs: fields,\n itemKey: 'index',\n grouping: false,\n reorderFields: false,\n reorderItems: renderMode === 'Editable',\n dragHandle: renderMode === 'Editable',\n globalSearch: false,\n personalization: false,\n toggleFieldVisibility: false,\n toolbar: false,\n footer: false,\n filterExpression: null,\n editing: false,\n timezone: PCore.getEnvironmentInfo().getTimeZone()\n };\n};\n\n/**\n * This method returns a callBack function for Add action.\n * @param {object} pConnect - PConnect object\n * @param {number} index - index of the page list to add\n */\nexport const getAddRowCallback = (pConnect, index) => {\n return () => pConnect.getListActions().insert({}, index, ''); // 3rd arg null until typedef marked correctly as optional\n};\n\n/**\n * This method creates a PConnect object with proper options for Add and Delete actions\n * @param {string} contextName - contextName\n * @param {string} referenceList - referenceList\n * @param {string} pageReference - pageReference\n */\n// NOTE: use of type \"any\" is required since TypeScript doesn't allow private/protected properties\n// to be exported from a class (TS4094 error)\nexport function createPConnect(contextName, referenceList, pageReference): any {\n const options = {\n context: contextName,\n pageReference,\n referenceList\n };\n\n // create PConnect object\n const config = { meta: {}, options };\n const { getPConnect } = PCore.createPConnect(config);\n\n return getPConnect();\n}\n\nexport const filterData = filterByColumns => {\n return function filteringData(item) {\n let bKeep = true;\n for (const filterObj of filterByColumns) {\n if (filterObj.containsFilterValue !== '' || filterObj.containsFilter === 'null' || filterObj.containsFilter === 'notnull') {\n let value: any;\n let filterValue: any;\n\n switch (filterObj.type) {\n case 'Date':\n case 'DateTime':\n case 'Time':\n value = item[filterObj.ref] !== null ?? item[filterObj.ref] !== '' ? Utils.getSeconds(item[filterObj.ref]) : null;\n filterValue =\n filterObj.containsFilterValue !== null && filterObj.containsFilterValue !== '' ? Utils.getSeconds(filterObj.containsFilterValue) : null;\n\n // eslint-disable-next-line sonarjs/no-nested-switch\n switch (filterObj.containsFilter) {\n case 'notequal':\n // becasue filterValue is in minutes, need to have a range of less than 60 secons\n\n if (value !== null && filterValue !== null) {\n // get rid of milliseconds\n value /= 1000;\n filterValue /= 1000;\n\n const diff = value - filterValue;\n if (diff >= 0 && diff < 60) {\n bKeep = false;\n }\n }\n\n break;\n\n case 'equal':\n // becasue filterValue is in minutes, need to have a range of less than 60 secons\n\n if (value !== null && filterValue !== null) {\n // get rid of milliseconds\n value /= 1000;\n filterValue /= 1000;\n\n const diff = value - filterValue;\n if (diff !== 0) {\n bKeep = false;\n }\n }\n\n break;\n\n case 'after':\n if (value < filterValue) {\n bKeep = false;\n }\n break;\n\n case 'before':\n if (value > filterValue) {\n bKeep = false;\n }\n break;\n\n case 'null':\n if (value !== null) {\n bKeep = false;\n }\n break;\n\n case 'notnull':\n if (value === null) {\n bKeep = false;\n }\n break;\n\n default:\n break;\n }\n break;\n\n default:\n value = item[filterObj.ref].toLowerCase();\n filterValue = filterObj.containsFilterValue.toLowerCase();\n\n // eslint-disable-next-line sonarjs/no-nested-switch\n switch (filterObj.containsFilter) {\n case 'contains':\n if (value.indexOf(filterValue) < 0) {\n bKeep = false;\n }\n break;\n\n case 'equals':\n if (value !== filterValue) {\n bKeep = false;\n }\n break;\n\n case 'startswith':\n if (value.indexOf(filterValue) !== 0) {\n bKeep = false;\n }\n break;\n\n default:\n break;\n }\n\n break;\n }\n }\n\n // if don't keep stop filtering\n if (!bKeep) {\n break;\n }\n }\n return bKeep;\n };\n};\n"]}
|
|
1
|
+
{"version":3,"file":"simpleTableHelpers.js","sourceRoot":"","sources":["../../../src/components/helpers/simpleTableHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { Utils } from './utils';\n\nexport const TABLE_CELL = 'SdkRenderer';\nexport const DELETE_ICON = 'DeleteIcon';\n\n// BUG-615253: Workaround for autosize in table with lazy loading components\n/* istanbul ignore next */\nfunction getFieldWidth(field, label) {\n let width: number;\n switch (field.type) {\n case 'Time':\n width = 150;\n break;\n case 'Date':\n width = 160;\n break;\n case 'DateTime':\n width = 205;\n break;\n case 'AutoComplete':\n case 'TextArea':\n width = 190;\n break;\n case 'Currency':\n case 'TextInput':\n width = 182;\n break;\n case 'Checkbox':\n // eslint-disable-next-line no-case-declarations\n const text = document.createElement('span');\n document.body.appendChild(text);\n text.style.fontSize = '13px';\n text.style.position = 'absolute';\n text.innerHTML = label;\n width = Math.ceil(text.clientWidth) + 30;\n document.body.removeChild(text);\n break;\n default:\n width = 180;\n }\n return width;\n}\n\nexport const getContext = thePConn => {\n const contextName = thePConn.getContextName();\n const pageReference = thePConn.getPageReference();\n const { referenceList } = thePConn.getStateProps()?.config || thePConn.getStateProps();\n const pageReferenceForRows = referenceList.startsWith('.') ? `${pageReference}.${referenceList.substring(1)}` : referenceList;\n\n // removing \"caseInfo.content\" prefix to avoid setting it as a target while preparing pageInstructions\n // skipping the removal as StateMachine itself is removing this case info prefix while preparing pageInstructions\n // referenceList = pageReferenceForRows.replace(\n // PCore.getConstants().CASE_INFO.CASE_INFO_CONTENT,\n // \"\"\n // );\n\n return {\n contextName,\n referenceListStr: referenceList,\n pageReferenceForRows\n };\n};\n\nexport const populateRowKey = rawData => {\n return rawData.map((row: any, index: number) => {\n return { ...row, index };\n });\n};\n\nexport const getApiContext = (processedData, pConnect, reorderCB) => {\n return {\n fetchData: () => {\n return new Promise(resolve => {\n resolve({\n data: processedData,\n filteredRecordCount: processedData.length,\n totalRecordCount: processedData.length\n });\n });\n },\n fetchPersonalizations: () => {\n return Promise.resolve({});\n },\n applyRowReorder: (sourceKey, destinationKey) => {\n // indexes are keys for simple table so, it should work.\n reorderCB();\n return Promise.resolve(pConnect.getListActions().reorder(parseInt(sourceKey, 10), parseInt(destinationKey, 10)));\n }\n };\n};\n\nexport const buildMetaForListView = (fieldMetadata, fields, type, ruleClass, name, propertyLabel, isDataObject, parameters) => {\n return {\n name,\n config: {\n type,\n referenceList: fieldMetadata.datasource.name,\n parameters: parameters ?? fieldMetadata.datasource.parameters,\n personalization: false,\n isDataObject,\n grouping: true,\n globalSearch: true,\n reorderFields: true,\n toggleFieldVisibility: true,\n title: propertyLabel,\n personalizationId: '' /* TODO */,\n template: 'ListView',\n presets: [\n {\n name: 'presets',\n template: 'Table',\n config: {},\n children: [\n {\n name: 'Columns',\n type: 'Region',\n children: fields\n }\n ],\n label: propertyLabel,\n id: 'P_' /* TODO */\n }\n ],\n ruleClass\n }\n };\n};\n\nexport const buildFieldsForTable = (configFields, fields, showDeleteButton) => {\n const fieldDefs = configFields.map((field, index) => {\n return {\n type: 'text',\n label: fields[index].config.label || fields[index].config.caption,\n fillAvailableSpace: !!field.config.fillAvailableSpace,\n id: `${index}`,\n name: field.config.value.substr(4),\n cellRenderer: TABLE_CELL,\n sort: false,\n noContextMenu: true,\n showMenu: false,\n meta: {\n ...field\n },\n // BUG-615253: Workaround for autosize in table with lazy loading components\n width: getFieldWidth(field, fields[index].config.label)\n };\n });\n\n // ONLY add DELETE_ICON to fields when the table is requested as EDITABLE\n if (showDeleteButton) {\n fieldDefs.push({\n type: 'text',\n id: fieldDefs.length,\n cellRenderer: DELETE_ICON,\n sort: false,\n noContextMenu: true,\n showMenu: false,\n // BUG-615253: Workaround for autosize in table with lazy loading components\n width: 46\n });\n }\n\n return fieldDefs;\n};\n\nexport const createMetaForTable = (fields, renderMode) => {\n return {\n height: {\n minHeight: 'auto',\n fitHeightToElement: 'fitHeightToElement',\n deltaAdjustment: 'deltaAdjustment',\n autoSize: true\n },\n fieldDefs: fields,\n itemKey: 'index',\n grouping: false,\n reorderFields: false,\n reorderItems: renderMode === 'Editable',\n dragHandle: renderMode === 'Editable',\n globalSearch: false,\n personalization: false,\n toggleFieldVisibility: false,\n toolbar: false,\n footer: false,\n filterExpression: null,\n editing: false,\n timezone: PCore.getEnvironmentInfo().getTimeZone()\n };\n};\n\n/**\n * This method returns a callBack function for Add action.\n * @param {object} pConnect - PConnect object\n * @param {number} index - index of the page list to add\n */\nexport const getAddRowCallback = (pConnect, index) => {\n return () => pConnect.getListActions().insert({}, index, ''); // 3rd arg null until typedef marked correctly as optional\n};\n\n/**\n * This method creates a PConnect object with proper options for Add and Delete actions\n * @param {string} contextName - contextName\n * @param {string} referenceList - referenceList\n * @param {string} pageReference - pageReference\n */\n// NOTE: use of type \"any\" is required since TypeScript doesn't allow private/protected properties\n// to be exported from a class (TS4094 error)\nexport function createPConnect(contextName, referenceList, pageReference): any {\n const options = {\n context: contextName,\n pageReference,\n referenceList\n };\n\n // create PConnect object\n const config = { meta: {}, options };\n const { getPConnect } = PCore.createPConnect(config);\n\n return getPConnect();\n}\n\nexport const filterData = filterByColumns => {\n return function filteringData(item) {\n let bKeep = true;\n for (const filterObj of filterByColumns) {\n if (filterObj.containsFilterValue !== '' || filterObj.containsFilter === 'null' || filterObj.containsFilter === 'notnull') {\n let value: any;\n let filterValue: any;\n\n switch (filterObj.type) {\n case 'Date':\n case 'DateTime':\n case 'Time':\n value = item[filterObj.ref] !== null ?? item[filterObj.ref] !== '' ? Utils.getSeconds(item[filterObj.ref]) : null;\n filterValue =\n filterObj.containsFilterValue !== null && filterObj.containsFilterValue !== '' ? Utils.getSeconds(filterObj.containsFilterValue) : null;\n\n // eslint-disable-next-line sonarjs/no-nested-switch\n switch (filterObj.containsFilter) {\n case 'notequal':\n // becasue filterValue is in minutes, need to have a range of less than 60 secons\n\n if (value !== null && filterValue !== null) {\n // get rid of milliseconds\n value /= 1000;\n filterValue /= 1000;\n\n const diff = value - filterValue;\n if (diff >= 0 && diff < 60) {\n bKeep = false;\n }\n }\n\n break;\n\n case 'equal':\n // becasue filterValue is in minutes, need to have a range of less than 60 secons\n\n if (value !== null && filterValue !== null) {\n // get rid of milliseconds\n value /= 1000;\n filterValue /= 1000;\n\n const diff = value - filterValue;\n if (diff !== 0) {\n bKeep = false;\n }\n }\n\n break;\n\n case 'after':\n if (value < filterValue) {\n bKeep = false;\n }\n break;\n\n case 'before':\n if (value > filterValue) {\n bKeep = false;\n }\n break;\n\n case 'null':\n if (value !== null) {\n bKeep = false;\n }\n break;\n\n case 'notnull':\n if (value === null) {\n bKeep = false;\n }\n break;\n\n default:\n break;\n }\n break;\n\n default:\n value = item[filterObj.ref].toLowerCase();\n filterValue = filterObj.containsFilterValue.toLowerCase();\n\n // eslint-disable-next-line sonarjs/no-nested-switch\n switch (filterObj.containsFilter) {\n case 'contains':\n if (value.indexOf(filterValue) < 0) {\n bKeep = false;\n }\n break;\n\n case 'equals':\n if (value !== filterValue) {\n bKeep = false;\n }\n break;\n\n case 'startswith':\n if (value.indexOf(filterValue) !== 0) {\n bKeep = false;\n }\n break;\n\n default:\n break;\n }\n\n break;\n }\n }\n\n // if don't keep stop filtering\n if (!bKeep) {\n break;\n }\n }\n return bKeep;\n };\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/template/ListView/utils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe;;;;CAI3B,CAAC;AAiCF,wBAAsB,UAAU,CAAC,eAAe,KAAA;;;;;GAY/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAAC,YAAY,KAAA,OAO7D;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,KAAA,OAMnD;AAED,eAAO,MAAM,eAAe,yBAM3B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,KAAA,OAE9C;AAED,eAAO,MAAM,gBAAgB,iDAU5B,CAAC;AAEF;;;;;;;;;;;GAWG;AAEH,wBAAgB,oBAAoB,CAAC,YAAY,KAAA,EAAE,OAAO,KAAA,OAQzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,KAAA,EAAE,OAAO,KAAA,EAAE,OAAO,KAAA,OA0B3D;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,KAAA,EAAE,OAAO,KAAA,SAgBhE;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,wBAAwB,KAAA,EAAE,UAAU,KAAA,SAOjF;AAiFD;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,KAAA,EAAE,iBAAiB,KAAA,EAAE,WAAW,KAAA,EAAE,OAAO,KAAA,EAAE,aAAa,KAAA,EAAE,UAAU,KAAA;;;;;;;;;;;;EAqE1H;AAoKD,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,GAAG,EAAO,EAAE,iBAAiB,GAAE,GAAU,SAoClF;AAED,eAAO,MAAM,UAAU,sBAQtB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,MAAM,KAAA,EAAE,YAAY,UAAQ,EAAE,OAAO,SAAK,SAgCjF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,KAAA,EAAE,aAAa,KAAA,OAYjE;AAED,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/template/ListView/utils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe;;;;CAI3B,CAAC;AAiCF,wBAAsB,UAAU,CAAC,eAAe,KAAA;;;;;GAY/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAAC,YAAY,KAAA,OAO7D;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,KAAA,OAMnD;AAED,eAAO,MAAM,eAAe,yBAM3B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,KAAA,OAE9C;AAED,eAAO,MAAM,gBAAgB,iDAU5B,CAAC;AAEF;;;;;;;;;;;GAWG;AAEH,wBAAgB,oBAAoB,CAAC,YAAY,KAAA,EAAE,OAAO,KAAA,OAQzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,KAAA,EAAE,OAAO,KAAA,EAAE,OAAO,KAAA,OA0B3D;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,KAAA,EAAE,OAAO,KAAA,SAgBhE;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,wBAAwB,KAAA,EAAE,UAAU,KAAA,SAOjF;AAiFD;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,KAAA,EAAE,iBAAiB,KAAA,EAAE,WAAW,KAAA,EAAE,OAAO,KAAA,EAAE,aAAa,KAAA,EAAE,UAAU,KAAA;;;;;;;;;;;;EAqE1H;AAoKD,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,GAAG,EAAO,EAAE,iBAAiB,GAAE,GAAU,SAoClF;AAED,eAAO,MAAM,UAAU,sBAQtB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,MAAM,KAAA,EAAE,YAAY,UAAQ,EAAE,OAAO,SAAK,SAgCjF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,KAAA,EAAE,aAAa,KAAA,OAYjE;AAED,eAAO,MAAM,mBAAmB,8CAgG/B,CAAC"}
|
|
@@ -619,7 +619,9 @@ export const readContextResponse = async (context, params) => {
|
|
|
619
619
|
if (compositeKeys.length) {
|
|
620
620
|
otherContext.setCompositeKeys(compositeKeys);
|
|
621
621
|
}
|
|
622
|
-
otherContext
|
|
622
|
+
if (otherContext) {
|
|
623
|
+
otherContext.fetchRowActionDetails = null;
|
|
624
|
+
}
|
|
623
625
|
}
|
|
624
626
|
const presetArray = [];
|
|
625
627
|
const rawMetadata = getPConnect().getRawMetadata().config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/template/ListView/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import getDefaultViewMeta from './DefaultViewMeta';\n\nconst USER_REFERENCE = 'UserReference';\nconst PAGE = '!P!';\nconst PAGELIST = '!PL!';\n\nexport const formatConstants = {\n WorkStatus: 'WorkStatus',\n Integer: 'Integer',\n WorkLink: 'WorkLink'\n};\n\nclass DataApi {\n mappedPropertyToOriginalProperty: any;\n originalPropertyToMappedProperty: any;\n constructor() {\n this.originalPropertyToMappedProperty = {};\n this.mappedPropertyToOriginalProperty = {};\n this.setPropertyMaps = this.setPropertyMaps.bind(this);\n this.getMappedProperty = this.getMappedProperty.bind(this);\n this.getOriginalProperty = this.getOriginalProperty.bind(this);\n }\n\n setPropertyMaps(originalToMappedPropertyObj = {}, mappedToOriginalPropertyObj = {}) {\n this.originalPropertyToMappedProperty = {\n ...this.originalPropertyToMappedProperty,\n ...originalToMappedPropertyObj\n };\n this.mappedPropertyToOriginalProperty = {\n ...this.mappedPropertyToOriginalProperty,\n ...mappedToOriginalPropertyObj\n };\n }\n\n getMappedProperty(propertyName) {\n return this.originalPropertyToMappedProperty[propertyName] ?? propertyName;\n }\n\n getOriginalProperty(propertyName) {\n return this.mappedPropertyToOriginalProperty[propertyName] ?? propertyName;\n }\n}\n\nexport async function getContext(componentConfig) {\n const {\n promisesArray = [] // array of promises which can be invoked paralelly,\n } = componentConfig;\n const promisesResponseArray = await Promise.all(promisesArray);\n const dataApi = new DataApi();\n return {\n promisesResponseArray,\n setPropertyMaps: dataApi.setPropertyMaps,\n getMappedProperty: dataApi.getMappedProperty,\n getOriginalProperty: dataApi.getOriginalProperty\n };\n}\n\n/**\n * [getFieldNameFromEmbeddedFieldName]\n * Description - converting embeddedField name starting with !P! or !PL! to normal field\n * @ignore\n * @param {string} propertyName EmbeddedField name starting with !P! or !PL!\n * @returns {string} returns converted string without !P! or !PL! and :\n *\n * @example <caption>Example for getFieldNameFromEmbeddedFieldName </caption>\n * getFieldNameFromEmbeddedFieldName('!P!Organisation:Name') return 'Organisation.Name'\n * getFieldNameFromEmbeddedFieldName('!PL!Employees:Name') return 'Employees.Name'\n */\nexport function getFieldNameFromEmbeddedFieldName(propertyName) {\n let value = propertyName;\n if (value.startsWith(PAGE) || value.startsWith(PAGELIST)) {\n value = value.substring(value.lastIndexOf('!') + 1);\n value = value.replace(/:/g, '.');\n }\n return value;\n}\n\n/**\n * [updateMetaEmbeddedFieldID]\n * Description - If the fieldID in meta starts with '!P!' or '!PL!' and contains ':' then replace them with .(dot)\n * @ignore\n * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields.\n */\nexport function updateMetaEmbeddedFieldID(metaFields) {\n return metaFields.forEach(metaField => {\n if (metaField.fieldID?.startsWith(PAGE) || metaField.fieldID?.startsWith(PAGELIST)) {\n metaField.fieldID = getFieldNameFromEmbeddedFieldName(metaField.fieldID);\n }\n });\n}\n\nexport const isEmbeddedField = field => {\n if (field?.startsWith('@')) {\n field = field.substring(field.indexOf(' ') + 1);\n if (field[0] === '.') field = field.substring(1);\n }\n return field?.indexOf('.') > 0;\n};\n\n/**\n * [isPageListProperty]\n * Description - checking if propertyName is pageList or not\n * @ignore\n * @param {string} propertyName PropertyName\n * @returns {boolean} true if property is pageList else false\n *\n * @example <caption>Example for isPageListProperty </caption>\n * isPageListProperty('!PL!Employees.Name') return true\n * isPageListProperty('!P!Employees.Name') return false\n * isPageListProperty('Name') return false\n */\nexport function isPageListProperty(propertyName) {\n return propertyName.startsWith(PAGELIST);\n}\n\nexport const isPageListInPath = (propertyName, currentClassID) => {\n if (!propertyName.includes('.')) {\n return false;\n }\n const [first, ...rest] = propertyName.split('.');\n const metadata: any = PCore.getMetadataUtils().getPropertyMetadata(first, currentClassID);\n if (metadata?.type === 'Page List') {\n return true;\n }\n return isPageListInPath(rest.join('.'), metadata?.pageClass);\n};\n\n/**\n * [getEmbeddedFieldName]\n * Description - converting normal field name to embedded field starting with !P! or !PL!\n * @ignore\n * @param {string} propertyName Field name\n * @param {string} classID classID of datapage\n * @returns {string} returns converted string with !P! or !PL! and :\n *\n * @example <caption>Example for getEmbeddedFieldName </caption>\n * For page property, getEmbeddedFieldName('Organisation.Name') return '!P!Organisation:Name'\n * For pageList property, getEmbeddedFieldName('Employees.Name') return '!PL!Employees:Name'\n */\n\nexport function getEmbeddedFieldName(propertyName, classID) {\n let value = propertyName;\n if (isPageListInPath(value, classID)) {\n value = `!PL!${value.replace(/\\./g, ':')}`;\n } else {\n value = `!P!${value.replace(/\\./g, ':')}`;\n }\n return value;\n}\n\n/**\n * [preparePropertyMaps]\n * Description - preparing maps for property names and set it in dataApi context\n * @ignore\n * @param {Array} fields fields array\n * @param {string} classID classID of datapage\n * @param {string} context dataApi context\n * @returns {boolean} true if pageListProperty is present\n */\nexport function preparePropertyMaps(fields, classID, context) {\n const { setPropertyMaps } = context;\n const maps = fields.reduce(\n (acc, field) => {\n let { value } = field.config;\n if (value.startsWith('@')) {\n value = value.substring(value.indexOf(' ') + 1);\n if (value[0] === '.') value = value.substring(1);\n }\n let name = value;\n // Preparing name for embedded property\n if (isEmbeddedField(name)) {\n name = getEmbeddedFieldName(name, classID);\n }\n if (isPageListProperty(name) && !acc[2]) {\n acc[2] = true;\n }\n acc[0][value] = name;\n acc[1][name] = value;\n\n return acc;\n },\n [{}, {}, false]\n );\n setPropertyMaps(maps[0], maps[1]);\n return maps[2];\n}\n\n/**\n * [getConfigEmbeddedFieldsMeta]\n * Description - Get the metadata for configured embedded fields\n * @ignore\n * @param {Set} configFields Set of config fields\n * @param {string} classID clasID of datapage\n * @returns {Array} Metadata of configured embedded fields\n */\nexport function getConfigEmbeddedFieldsMeta(configFields, classID) {\n const configEmbeddedFieldsMeta: any[] = [];\n configFields.forEach(field => {\n let value = field;\n if (isEmbeddedField(value)) {\n // conversion Page.PageList[].property => Page.PageList.property\n if (value.includes('[')) {\n value = value.substring(0, value.indexOf('[')) + value.substring(value.indexOf(']') + 1);\n }\n // @ts-ignore - Expected 3 arguments, but got 2.\n const meta: any = PCore.getMetadataUtils().getEmbeddedPropertyMetadata(value, classID);\n meta.fieldID = field;\n configEmbeddedFieldsMeta.push(meta);\n }\n });\n return configEmbeddedFieldsMeta;\n}\n\n/**\n * [mergeConfigEmbeddedFieldsMeta]\n * Description - Get the metadata for configured embedded fields\n * @ignore\n * @param {Array} configEmbeddedFieldsMeta config fields metadata.\n * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields\n */\nexport function mergeConfigEmbeddedFieldsMeta(configEmbeddedFieldsMeta, metaFields) {\n const mergedMetaFields = [...metaFields];\n configEmbeddedFieldsMeta.forEach(configFieldMeta => {\n const fieldMeta = metaFields.find(metaField => metaField.fieldID === configFieldMeta.fieldID);\n if (!fieldMeta) mergedMetaFields.push(configFieldMeta);\n });\n return mergedMetaFields;\n}\n\nconst oldToNewFieldTypeMapping = {\n 'Date Time': 'Date & time',\n Date: 'Date only'\n};\n\n/**\n * [updateFieldType]\n * Description - Updates the field type if its changed in the new implementation. Such mapping is maintained in oldToNewFieldTypeMapping.\n * @ignore\n * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields.\n */\nfunction updateFieldType(metaFields) {\n metaFields.forEach(metaField => {\n if (metaField.type) metaField.type = oldToNewFieldTypeMapping[metaField.type] || metaField.type;\n });\n}\n\nfunction getPresetMetaAttribute(attribute) {\n const {\n type,\n config: { label, value }\n } = attribute;\n return {\n type,\n name: value.startsWith('@') ? value.substring(4) : value,\n label: label.startsWith('@') ? label.substring(3) : label\n };\n}\n\n/**\n * [generateViewMetaData]\n * Description - Returns a list of metaobjects of the fields provided.\n * @ignore\n * @param {Array} rawFields List of fields to update meta for\n * @param {string} classID Class ID from the response\n * @returns {Array} List of fields with updated meta objects.\n */\nfunction generateViewMetaData(rawFields, classID, showField) {\n return rawFields.map(item => getDefaultViewMeta(item, classID, showField));\n}\n\n/**\n * [getConfigFields]\n * Description - Returns list of config fields with primary fields meta updated.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {Array} primaryFields List of Primary Fields\n * @param {Array} metaFields Metadata of all fields\n * @param {string} classID Class ID from the response\n * @returns {Array} List of all fields with their meta updated.\n */\nfunction getConfigFields(configFields, primaryFields, metaFields, classID) {\n const presetConfigFields = configFields;\n const primaryFieldsViewIndex = presetConfigFields.findIndex(field => field.config.value === 'pyPrimaryFields');\n if (!primaryFields || !primaryFields.length) {\n if (primaryFieldsViewIndex < 0) return presetConfigFields;\n\n presetConfigFields.splice(primaryFieldsViewIndex, 1);\n\n return presetConfigFields;\n }\n\n if (primaryFieldsViewIndex > -1) {\n // list of uncommon fields - non overlap of primary fields grouped view and independent entity columns of primary type\n const uncommonFieldsList = primaryFields.filter(\n primaryField => !presetConfigFields.some(presetConfigField => presetConfigField.config.value.split('.')[1] === primaryField)\n );\n const uncommonFieldsRawMeta: any[] = [];\n uncommonFieldsList.forEach(uncommonField => {\n const uncommonFieldMeta = metaFields.find(metaField => metaField.fieldID === uncommonField);\n if (uncommonFieldMeta) uncommonFieldsRawMeta.push(uncommonFieldMeta);\n });\n const uncommonFieldsConfigMeta = generateViewMetaData(uncommonFieldsRawMeta, classID, true);\n\n presetConfigFields.splice(primaryFieldsViewIndex, 1, ...uncommonFieldsConfigMeta);\n }\n return presetConfigFields;\n}\n\n/**\n * [getTableConfigFromPresetMeta]\n * Description - Get the table config from the presets meta.\n * @ignore\n * @param {object} presetMeta Presets meta\n * @param {boolean} isMetaWithPresets true if meta has presets else false\n * @param {Function} getPConnect Callback to get the PConnect object\n * @param {string} classID Class ID from the response\n * @param {Array} primaryFields List of Primary Fields\n * @param {Array} metaFields List of all metafields\n * @returns {object} Table config object\n */\nexport function getTableConfigFromPresetMeta(presetMeta, isMetaWithPresets, getPConnect, classID, primaryFields, metaFields) {\n let presetId;\n let presetName;\n let cardHeader;\n let secondaryText;\n let timelineDate;\n let timelineTitle;\n let timelineStatus;\n let timelineIcon;\n let { filterExpression } = getPConnect().getRawMetadata().config;\n let fieldsMeta;\n let configFields;\n if (isMetaWithPresets) {\n presetId = presetMeta.id;\n presetName = presetMeta.label;\n cardHeader = presetMeta.cardHeader && getPresetMetaAttribute(presetMeta.cardHeader);\n secondaryText = presetMeta.secondaryText && getPresetMetaAttribute(presetMeta.secondaryText);\n timelineDate = presetMeta.timelineDate && getPresetMetaAttribute(presetMeta.timelineDate);\n timelineTitle = presetMeta.timelineTitle && getPresetMetaAttribute(presetMeta.timelineTitle);\n timelineStatus = presetMeta.timelineStatus && getPresetMetaAttribute(presetMeta.timelineStatus);\n timelineIcon = presetMeta.timelineIcon && getPresetMetaAttribute(presetMeta.timelineIcon);\n filterExpression = presetMeta.config.filterExpression;\n [fieldsMeta] = presetMeta.children;\n if (\n presetMeta.timelineTitle &&\n !fieldsMeta.children.find(fieldMeta => {\n return fieldMeta?.config?.value === presetMeta.timelineTitle?.config?.value;\n })\n ) {\n const { type, config } = presetMeta.timelineTitle;\n fieldsMeta.children.push({ type, config: { ...config, show: false } });\n }\n if (\n presetMeta.timelineDate &&\n !fieldsMeta.children.find(fieldMeta => {\n return fieldMeta?.config?.value === presetMeta.timelineDate?.config?.value;\n })\n ) {\n const { type, config } = presetMeta.timelineDate;\n fieldsMeta.children.push({ type, config: { ...config, show: false } });\n }\n configFields = getConfigFields(fieldsMeta.children, primaryFields, metaFields, classID);\n } else {\n fieldsMeta = presetMeta.props;\n configFields = getConfigFields(\n fieldsMeta\n .getPConnect()\n .getChildren()\n ?.map(child => {\n return child.getPConnect().getRawMetadata();\n }),\n primaryFields,\n metaFields,\n classID\n );\n }\n return {\n presetId,\n presetName,\n cardHeader,\n secondaryText,\n timelineDate,\n timelineTitle,\n timelineStatus,\n timelineIcon,\n filterExpression,\n fieldsMeta,\n configFields\n };\n}\n\n/**\n * [getReportColumns]\n * Description - Returns a set of columns from the report response.\n * @ignore\n * @param {object} response -\n * @returns {Set} Set of columns from the report response\n */\nfunction getReportColumns(response) {\n const {\n data: { data: reportColumns }\n } = response;\n const reportColumnsSet = new Set();\n reportColumns?.forEach(item => {\n let val = item.pyFieldName;\n // Remove '.' from index 0 only, if '.' is present\n if (val[0] === '.') {\n val = val.substring(1);\n }\n reportColumnsSet.add(val);\n });\n return reportColumnsSet;\n}\n\n/**\n * [getConfigFieldValue]\n * Descritpion - Returns a valid value for a configuration field. Remove any annotations and also \".\"\n * @ignore\n * @param {object} config\n * config.value - Raw value\n * @returns {string} value - Value with out any annotations or \".\"\n */\nfunction getConfigFieldValue(config) {\n let { value } = config;\n if (value.startsWith('@')) {\n value = value.substring(value.indexOf(' ') + 1);\n if (value[0] === '.') value = value.substring(1);\n }\n return value;\n}\n\n/**\n * [prepareConfigFields]\n * Description - Prepares a set of configuration fields and pushes each config type to a set using the callback parameter.\n * @ignore\n * @param {object} configFields List of Authored fields\n * @param {Function} pushToComponentsList Callback to push the field type to a set.\n * @returns {Set} configFieldSet\n */\nfunction prepareConfigFields(configFields, pushToComponentsList) {\n const configFieldSet = new Set();\n configFields.forEach(item => {\n pushToComponentsList(item.type);\n const val = getConfigFieldValue(item.config);\n configFieldSet.add(val);\n });\n return configFieldSet;\n}\n\n/**\n * [findAuthoredField]\n * Description - Finds an authored field from yhe list of config fields.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {string} fieldID Filter\n * @returns {object} config with its field value equal to fieldID, which means an authored field\n */\nfunction findAuthoredField(configFields, fieldID) {\n return configFields.find(configField => {\n const val = getConfigFieldValue(configField.config);\n return val === fieldID;\n });\n}\n\n/**\n * [findAndUpdateAuthoredFieldConfig]\n * Description - Find the authored field, and update its config.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {object} item Field item to copy displayAs and category information\n * @param {string} classId classID from the response\n */\nfunction findAndUpdateAuthoredFieldConfig(configFields, item, classId) {\n const authoredField = findAuthoredField(configFields, item.fieldID);\n if (authoredField?.config) {\n if (item.displayAs) {\n authoredField.config.displayAs = item.displayAs;\n }\n authoredField.config.classID = item.classID ?? classId;\n\n if (authoredField.type === USER_REFERENCE) {\n authoredField.config.associationID = item.associationID || item.fieldID;\n }\n authoredField.config.category = item.category;\n // FieldType identifies whether the field is configured as pickList\n authoredField.config.fieldType = item.fieldType;\n // type defined on the property rule,\n // used for the picklist field to assign the appropriate type\n authoredField.config.propertyType = item.dataType || item.type;\n }\n}\n\n/**\n * [isAnExtraField]\n * Description - Returns true if the field is an extra field. Extra field is the one which is not authored but part of the report.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {Set} configFieldSet Set if Authored filed values\n * @param {Set} reportColumnsSet Set of columns from the report\n * @param {object} item Config field item\n * @param {string} classId Class ID from the response\n * @param {boolean} showDynamicFields Flag indicating whether fields are fetched dynamically at runtime\n * @returns {boolean} true If the field is an extra field else false.\n */\nfunction isAnExtraField(configFields, configFieldSet, reportColumnsSet, item, classId, showDynamicFields) {\n // Is the field already present in authoring metadata?\n // Mutates config fields to copy displayAs and category information\n if (configFieldSet.has(item.fieldID)) {\n findAndUpdateAuthoredFieldConfig(configFields, item, classId);\n return false;\n }\n\n // If field is not authored and not part of report columns then discard it\n return showDynamicFields || !!reportColumnsSet.has(item.fieldID);\n}\n\n/**\n * [prepareExtraFields]\n * Description - Returns a list of extra fields with their meta updated.\n * @ignore\n * @param {Array} metaFields List of fields\n * @param {Array} configFields List of Authored fields\n * @param {Set} configFieldSet Set if Authored filed values\n * @param {Set} reportColumnsSet Set of columns from the report\n * @param {string} classID Class ID from the response\n * @param {boolean} showDynamicFields Flag indicating whether fields are fetched dynamically at runtime\n * @returns {Array} List of extra fields with their meta updated.\n */\nfunction prepareExtraFields(metaFields, configFields, configFieldSet, reportColumnsSet, classID, showDynamicFields) {\n // Filter all the extra fields\n const extraFileds = metaFields.filter(item => {\n return isAnExtraField(configFields, configFieldSet, reportColumnsSet, item, classID, showDynamicFields);\n });\n return generateViewMetaData(extraFileds, classID, false);\n // Update the meta object of each of the extra fields.\n}\n\nconst AssignDashObjects = ['Assign-Worklist', 'Assign-WorkBasket'];\n\nfunction populateRenderingOptions(name, config, field) {\n const shouldDisplayAsSemanticLink = 'displayAsLink' in field.config && field.config.displayAsLink;\n if (shouldDisplayAsSemanticLink) {\n config.customObject.isAssignmentLink = AssignDashObjects.includes(field.config.classID);\n if (field.config.value.startsWith('@CA')) {\n config.customObject.isAssociation = true;\n }\n config.cellRenderer = formatConstants.WorkLink;\n } else if (name === 'pyStatusWork' || name === 'pyAssignmentStatus') {\n config.cellRenderer = formatConstants.WorkStatus;\n } else if (name === 'pxUrgencyWork') {\n config.cellRenderer = formatConstants.Integer;\n }\n}\nexport function initializeColumns(fields: any[] = [], getMappedProperty: any = null) {\n return fields.map((field, originalColIndex) => {\n let name = field.config.value;\n\n if (name.startsWith('@')) {\n name = name.substring(name.indexOf(' ') + 1);\n if (name[0] === '.') name = name.substring(1);\n }\n name = getMappedProperty?.(name) ?? name;\n\n let label = field.config.label || field.config.caption;\n const { show = true, displayAs } = field.config;\n if (label.startsWith('@')) {\n label = label.substring(3);\n }\n\n const config = {\n name,\n label,\n show,\n classID: field.config.classID,\n id: field.id || name || originalColIndex,\n displayAs,\n associationID: field.config.associationID,\n ...(field.config.classID && { category: field.config.category }),\n customObject: {},\n fieldType: field.config.fieldType,\n meta: {\n ...field\n }\n };\n\n populateRenderingOptions(name, config, field);\n\n return config;\n });\n}\n\nexport const getItemKey = fields => {\n let itemKey;\n if (fields.findIndex(field => field.id === 'pyGUID') > -1) {\n itemKey = 'pyGUID';\n } else {\n itemKey = 'pzInsKey';\n }\n return itemKey;\n};\n\nexport function preparePatchQueryFields(fields, isDataObject = false, classID = '') {\n const queryFields: any[] = [];\n fields.forEach(field => {\n const patchFields: any[] = [];\n if (field.cellRenderer === 'WorkLink') {\n if (field.customObject && field.customObject.isAssignmentLink) {\n const associationName = field.name.includes(':') ? `${field.name.split(':')[0]}:` : '';\n patchFields.push(`${associationName}pzInsKey`);\n patchFields.push(`${associationName}pxRefObjectClass`);\n } else if (field.customObject && field.customObject.isAssociation) {\n const associationCategory = field.name.split(':')[0];\n patchFields.push(`${associationCategory}:pyID`);\n patchFields.push(`${associationCategory}:pzInsKey`);\n patchFields.push(`${associationCategory}:pxObjClass`);\n } else if (isDataObject) {\n const dataViewName = PCore.getDataTypeUtils().getSavableDataPage(classID);\n const dataPageKeys = PCore.getDataTypeUtils().getDataPageKeys(dataViewName);\n dataPageKeys?.forEach(item => (item.isAlternateKeyStorage ? patchFields.push(item.linkedField) : patchFields.push(item.keyName)));\n } else {\n patchFields.push('pyID');\n patchFields.push('pzInsKey');\n patchFields.push('pxObjClass');\n }\n }\n patchFields.forEach(k => {\n if (!queryFields.find(q => q === k)) {\n queryFields.push(k);\n }\n });\n });\n\n return queryFields;\n}\n\n/**\n * Update the renderer type for the properties of type Page.\n */\nexport function updatePageFieldsConfig(configFields, parentClassID) {\n return configFields.forEach(item => {\n const {\n type,\n config: { value }\n } = item;\n const propertyName = PCore.getAnnotationUtils().getPropertyName(value);\n if (isEmbeddedField(value) && !isPageListInPath(propertyName, parentClassID)) {\n item.config.componentType = type;\n item.type = 'PagePropertyRenderer';\n }\n });\n}\n\nexport const readContextResponse = async (context, params) => {\n const { getPConnect, apiContext, setListContext, children, showDynamicFields, referenceList, isDataObject } = params;\n const { promisesResponseArray, apiContext: otherContext } = context;\n // eslint-disable-next-line sonarjs/no-unused-collection\n const listOfComponents: any[] = [];\n const {\n data: { fields: metaFields, classID, isQueryable }\n } = promisesResponseArray[0];\n let {\n data: { primaryFields }\n } = promisesResponseArray[0];\n // When list is configured with Include all class fields configuration, provide support for Primary fields column\n if (showDynamicFields) {\n const sourceMetadata: any = PCore.getMetadataUtils().getDataPageMetadata(referenceList);\n if (sourceMetadata?.primaryFields) {\n primaryFields = sourceMetadata.primaryFields;\n }\n // updating metaData fieldID to normal property if it has fieldID starts with !P! or !PL!\n updateMetaEmbeddedFieldID(metaFields);\n }\n updateFieldType(metaFields);\n\n if (isDataObject) {\n const compositeKeys: any[] = [];\n const dataViewName = PCore.getDataTypeUtils().getSavableDataPage(classID);\n const dataPageKeys = PCore.getDataTypeUtils().getDataPageKeys(dataViewName);\n dataPageKeys?.forEach(item => (item.isAlternateKeyStorage ? compositeKeys.push(item.linkedField) : compositeKeys.push(item.keyName)));\n if (compositeKeys.length) {\n otherContext.setCompositeKeys(compositeKeys);\n }\n otherContext.fetchRowActionDetails = null;\n }\n\n const presetArray = [];\n const rawMetadata = getPConnect().getRawMetadata().config;\n const rawPresets = rawMetadata.presets;\n const isMetaWithPresets = rawPresets && rawPresets.length !== 0;\n const childrenIterator = isMetaWithPresets ? rawPresets : children;\n const resolvedPresets = getPConnect().getConfigProps().presets;\n let fields;\n let tableConfig;\n childrenIterator?.forEach((presetMeta, index) => {\n const { configFields } = getTableConfigFromPresetMeta(\n { ...presetMeta, label: resolvedPresets[index].label },\n isMetaWithPresets,\n getPConnect,\n classID,\n primaryFields,\n metaFields\n );\n const pushToComponentsList = fieldType => {\n listOfComponents.push(fieldType);\n };\n // read report columns response - in case of nonqueryable ignore the response and rely only on the fields configured at authoing time in presets\n const reportColumnsSet = isQueryable ? getReportColumns(promisesResponseArray[1]) : new Set();\n\n const configFieldSet = prepareConfigFields(configFields, pushToComponentsList);\n\n // FIXME #EmbeddedPropertyPatch\n // TODO: Remove this merge logic when the metadata response includes all optimized embedded page and pagelists\n // merging configured embedded properties with metadata so that while preparing extra fields, config fields can get other properties from meta(eg: category, displayAsLink)\n // get configured embedded properties metadata and get new mergedMetaFields\n const configEmbeddedFieldsMeta = getConfigEmbeddedFieldsMeta(configFieldSet, classID);\n const mergedMetaFields = mergeConfigEmbeddedFieldsMeta(configEmbeddedFieldsMeta, metaFields);\n\n const extraFields = prepareExtraFields(\n mergedMetaFields, // passing new merged meta fields which has meta of configured embedded fields of current preset\n configFields,\n configFieldSet,\n reportColumnsSet,\n classID,\n showDynamicFields\n );\n\n if (isQueryable) {\n updatePageFieldsConfig(configFields, classID);\n preparePropertyMaps([...configFields, ...extraFields], classID, context);\n }\n\n const { getMappedProperty } = context;\n\n fields = initializeColumns([...configFields, ...extraFields], getMappedProperty);\n const patchQueryFields = preparePatchQueryFields(fields, isDataObject, classID);\n const itemKey = getItemKey(fields);\n tableConfig = { fieldDefs: fields, patchQueryFields, itemKey, isQueryable };\n });\n const meta = tableConfig;\n setListContext({\n meta,\n presets: presetArray,\n apiContext: {\n ...apiContext\n }\n });\n};\n"]}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/template/ListView/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import getDefaultViewMeta from './DefaultViewMeta';\n\nconst USER_REFERENCE = 'UserReference';\nconst PAGE = '!P!';\nconst PAGELIST = '!PL!';\n\nexport const formatConstants = {\n WorkStatus: 'WorkStatus',\n Integer: 'Integer',\n WorkLink: 'WorkLink'\n};\n\nclass DataApi {\n mappedPropertyToOriginalProperty: any;\n originalPropertyToMappedProperty: any;\n constructor() {\n this.originalPropertyToMappedProperty = {};\n this.mappedPropertyToOriginalProperty = {};\n this.setPropertyMaps = this.setPropertyMaps.bind(this);\n this.getMappedProperty = this.getMappedProperty.bind(this);\n this.getOriginalProperty = this.getOriginalProperty.bind(this);\n }\n\n setPropertyMaps(originalToMappedPropertyObj = {}, mappedToOriginalPropertyObj = {}) {\n this.originalPropertyToMappedProperty = {\n ...this.originalPropertyToMappedProperty,\n ...originalToMappedPropertyObj\n };\n this.mappedPropertyToOriginalProperty = {\n ...this.mappedPropertyToOriginalProperty,\n ...mappedToOriginalPropertyObj\n };\n }\n\n getMappedProperty(propertyName) {\n return this.originalPropertyToMappedProperty[propertyName] ?? propertyName;\n }\n\n getOriginalProperty(propertyName) {\n return this.mappedPropertyToOriginalProperty[propertyName] ?? propertyName;\n }\n}\n\nexport async function getContext(componentConfig) {\n const {\n promisesArray = [] // array of promises which can be invoked paralelly,\n } = componentConfig;\n const promisesResponseArray = await Promise.all(promisesArray);\n const dataApi = new DataApi();\n return {\n promisesResponseArray,\n setPropertyMaps: dataApi.setPropertyMaps,\n getMappedProperty: dataApi.getMappedProperty,\n getOriginalProperty: dataApi.getOriginalProperty\n };\n}\n\n/**\n * [getFieldNameFromEmbeddedFieldName]\n * Description - converting embeddedField name starting with !P! or !PL! to normal field\n * @ignore\n * @param {string} propertyName EmbeddedField name starting with !P! or !PL!\n * @returns {string} returns converted string without !P! or !PL! and :\n *\n * @example <caption>Example for getFieldNameFromEmbeddedFieldName </caption>\n * getFieldNameFromEmbeddedFieldName('!P!Organisation:Name') return 'Organisation.Name'\n * getFieldNameFromEmbeddedFieldName('!PL!Employees:Name') return 'Employees.Name'\n */\nexport function getFieldNameFromEmbeddedFieldName(propertyName) {\n let value = propertyName;\n if (value.startsWith(PAGE) || value.startsWith(PAGELIST)) {\n value = value.substring(value.lastIndexOf('!') + 1);\n value = value.replace(/:/g, '.');\n }\n return value;\n}\n\n/**\n * [updateMetaEmbeddedFieldID]\n * Description - If the fieldID in meta starts with '!P!' or '!PL!' and contains ':' then replace them with .(dot)\n * @ignore\n * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields.\n */\nexport function updateMetaEmbeddedFieldID(metaFields) {\n return metaFields.forEach(metaField => {\n if (metaField.fieldID?.startsWith(PAGE) || metaField.fieldID?.startsWith(PAGELIST)) {\n metaField.fieldID = getFieldNameFromEmbeddedFieldName(metaField.fieldID);\n }\n });\n}\n\nexport const isEmbeddedField = field => {\n if (field?.startsWith('@')) {\n field = field.substring(field.indexOf(' ') + 1);\n if (field[0] === '.') field = field.substring(1);\n }\n return field?.indexOf('.') > 0;\n};\n\n/**\n * [isPageListProperty]\n * Description - checking if propertyName is pageList or not\n * @ignore\n * @param {string} propertyName PropertyName\n * @returns {boolean} true if property is pageList else false\n *\n * @example <caption>Example for isPageListProperty </caption>\n * isPageListProperty('!PL!Employees.Name') return true\n * isPageListProperty('!P!Employees.Name') return false\n * isPageListProperty('Name') return false\n */\nexport function isPageListProperty(propertyName) {\n return propertyName.startsWith(PAGELIST);\n}\n\nexport const isPageListInPath = (propertyName, currentClassID) => {\n if (!propertyName.includes('.')) {\n return false;\n }\n const [first, ...rest] = propertyName.split('.');\n const metadata: any = PCore.getMetadataUtils().getPropertyMetadata(first, currentClassID);\n if (metadata?.type === 'Page List') {\n return true;\n }\n return isPageListInPath(rest.join('.'), metadata?.pageClass);\n};\n\n/**\n * [getEmbeddedFieldName]\n * Description - converting normal field name to embedded field starting with !P! or !PL!\n * @ignore\n * @param {string} propertyName Field name\n * @param {string} classID classID of datapage\n * @returns {string} returns converted string with !P! or !PL! and :\n *\n * @example <caption>Example for getEmbeddedFieldName </caption>\n * For page property, getEmbeddedFieldName('Organisation.Name') return '!P!Organisation:Name'\n * For pageList property, getEmbeddedFieldName('Employees.Name') return '!PL!Employees:Name'\n */\n\nexport function getEmbeddedFieldName(propertyName, classID) {\n let value = propertyName;\n if (isPageListInPath(value, classID)) {\n value = `!PL!${value.replace(/\\./g, ':')}`;\n } else {\n value = `!P!${value.replace(/\\./g, ':')}`;\n }\n return value;\n}\n\n/**\n * [preparePropertyMaps]\n * Description - preparing maps for property names and set it in dataApi context\n * @ignore\n * @param {Array} fields fields array\n * @param {string} classID classID of datapage\n * @param {string} context dataApi context\n * @returns {boolean} true if pageListProperty is present\n */\nexport function preparePropertyMaps(fields, classID, context) {\n const { setPropertyMaps } = context;\n const maps = fields.reduce(\n (acc, field) => {\n let { value } = field.config;\n if (value.startsWith('@')) {\n value = value.substring(value.indexOf(' ') + 1);\n if (value[0] === '.') value = value.substring(1);\n }\n let name = value;\n // Preparing name for embedded property\n if (isEmbeddedField(name)) {\n name = getEmbeddedFieldName(name, classID);\n }\n if (isPageListProperty(name) && !acc[2]) {\n acc[2] = true;\n }\n acc[0][value] = name;\n acc[1][name] = value;\n\n return acc;\n },\n [{}, {}, false]\n );\n setPropertyMaps(maps[0], maps[1]);\n return maps[2];\n}\n\n/**\n * [getConfigEmbeddedFieldsMeta]\n * Description - Get the metadata for configured embedded fields\n * @ignore\n * @param {Set} configFields Set of config fields\n * @param {string} classID clasID of datapage\n * @returns {Array} Metadata of configured embedded fields\n */\nexport function getConfigEmbeddedFieldsMeta(configFields, classID) {\n const configEmbeddedFieldsMeta: any[] = [];\n configFields.forEach(field => {\n let value = field;\n if (isEmbeddedField(value)) {\n // conversion Page.PageList[].property => Page.PageList.property\n if (value.includes('[')) {\n value = value.substring(0, value.indexOf('[')) + value.substring(value.indexOf(']') + 1);\n }\n // @ts-ignore - Expected 3 arguments, but got 2.\n const meta: any = PCore.getMetadataUtils().getEmbeddedPropertyMetadata(value, classID);\n meta.fieldID = field;\n configEmbeddedFieldsMeta.push(meta);\n }\n });\n return configEmbeddedFieldsMeta;\n}\n\n/**\n * [mergeConfigEmbeddedFieldsMeta]\n * Description - Get the metadata for configured embedded fields\n * @ignore\n * @param {Array} configEmbeddedFieldsMeta config fields metadata.\n * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields\n */\nexport function mergeConfigEmbeddedFieldsMeta(configEmbeddedFieldsMeta, metaFields) {\n const mergedMetaFields = [...metaFields];\n configEmbeddedFieldsMeta.forEach(configFieldMeta => {\n const fieldMeta = metaFields.find(metaField => metaField.fieldID === configFieldMeta.fieldID);\n if (!fieldMeta) mergedMetaFields.push(configFieldMeta);\n });\n return mergedMetaFields;\n}\n\nconst oldToNewFieldTypeMapping = {\n 'Date Time': 'Date & time',\n Date: 'Date only'\n};\n\n/**\n * [updateFieldType]\n * Description - Updates the field type if its changed in the new implementation. Such mapping is maintained in oldToNewFieldTypeMapping.\n * @ignore\n * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields.\n */\nfunction updateFieldType(metaFields) {\n metaFields.forEach(metaField => {\n if (metaField.type) metaField.type = oldToNewFieldTypeMapping[metaField.type] || metaField.type;\n });\n}\n\nfunction getPresetMetaAttribute(attribute) {\n const {\n type,\n config: { label, value }\n } = attribute;\n return {\n type,\n name: value.startsWith('@') ? value.substring(4) : value,\n label: label.startsWith('@') ? label.substring(3) : label\n };\n}\n\n/**\n * [generateViewMetaData]\n * Description - Returns a list of metaobjects of the fields provided.\n * @ignore\n * @param {Array} rawFields List of fields to update meta for\n * @param {string} classID Class ID from the response\n * @returns {Array} List of fields with updated meta objects.\n */\nfunction generateViewMetaData(rawFields, classID, showField) {\n return rawFields.map(item => getDefaultViewMeta(item, classID, showField));\n}\n\n/**\n * [getConfigFields]\n * Description - Returns list of config fields with primary fields meta updated.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {Array} primaryFields List of Primary Fields\n * @param {Array} metaFields Metadata of all fields\n * @param {string} classID Class ID from the response\n * @returns {Array} List of all fields with their meta updated.\n */\nfunction getConfigFields(configFields, primaryFields, metaFields, classID) {\n const presetConfigFields = configFields;\n const primaryFieldsViewIndex = presetConfigFields.findIndex(field => field.config.value === 'pyPrimaryFields');\n if (!primaryFields || !primaryFields.length) {\n if (primaryFieldsViewIndex < 0) return presetConfigFields;\n\n presetConfigFields.splice(primaryFieldsViewIndex, 1);\n\n return presetConfigFields;\n }\n\n if (primaryFieldsViewIndex > -1) {\n // list of uncommon fields - non overlap of primary fields grouped view and independent entity columns of primary type\n const uncommonFieldsList = primaryFields.filter(\n primaryField => !presetConfigFields.some(presetConfigField => presetConfigField.config.value.split('.')[1] === primaryField)\n );\n const uncommonFieldsRawMeta: any[] = [];\n uncommonFieldsList.forEach(uncommonField => {\n const uncommonFieldMeta = metaFields.find(metaField => metaField.fieldID === uncommonField);\n if (uncommonFieldMeta) uncommonFieldsRawMeta.push(uncommonFieldMeta);\n });\n const uncommonFieldsConfigMeta = generateViewMetaData(uncommonFieldsRawMeta, classID, true);\n\n presetConfigFields.splice(primaryFieldsViewIndex, 1, ...uncommonFieldsConfigMeta);\n }\n return presetConfigFields;\n}\n\n/**\n * [getTableConfigFromPresetMeta]\n * Description - Get the table config from the presets meta.\n * @ignore\n * @param {object} presetMeta Presets meta\n * @param {boolean} isMetaWithPresets true if meta has presets else false\n * @param {Function} getPConnect Callback to get the PConnect object\n * @param {string} classID Class ID from the response\n * @param {Array} primaryFields List of Primary Fields\n * @param {Array} metaFields List of all metafields\n * @returns {object} Table config object\n */\nexport function getTableConfigFromPresetMeta(presetMeta, isMetaWithPresets, getPConnect, classID, primaryFields, metaFields) {\n let presetId;\n let presetName;\n let cardHeader;\n let secondaryText;\n let timelineDate;\n let timelineTitle;\n let timelineStatus;\n let timelineIcon;\n let { filterExpression } = getPConnect().getRawMetadata().config;\n let fieldsMeta;\n let configFields;\n if (isMetaWithPresets) {\n presetId = presetMeta.id;\n presetName = presetMeta.label;\n cardHeader = presetMeta.cardHeader && getPresetMetaAttribute(presetMeta.cardHeader);\n secondaryText = presetMeta.secondaryText && getPresetMetaAttribute(presetMeta.secondaryText);\n timelineDate = presetMeta.timelineDate && getPresetMetaAttribute(presetMeta.timelineDate);\n timelineTitle = presetMeta.timelineTitle && getPresetMetaAttribute(presetMeta.timelineTitle);\n timelineStatus = presetMeta.timelineStatus && getPresetMetaAttribute(presetMeta.timelineStatus);\n timelineIcon = presetMeta.timelineIcon && getPresetMetaAttribute(presetMeta.timelineIcon);\n filterExpression = presetMeta.config.filterExpression;\n [fieldsMeta] = presetMeta.children;\n if (\n presetMeta.timelineTitle &&\n !fieldsMeta.children.find(fieldMeta => {\n return fieldMeta?.config?.value === presetMeta.timelineTitle?.config?.value;\n })\n ) {\n const { type, config } = presetMeta.timelineTitle;\n fieldsMeta.children.push({ type, config: { ...config, show: false } });\n }\n if (\n presetMeta.timelineDate &&\n !fieldsMeta.children.find(fieldMeta => {\n return fieldMeta?.config?.value === presetMeta.timelineDate?.config?.value;\n })\n ) {\n const { type, config } = presetMeta.timelineDate;\n fieldsMeta.children.push({ type, config: { ...config, show: false } });\n }\n configFields = getConfigFields(fieldsMeta.children, primaryFields, metaFields, classID);\n } else {\n fieldsMeta = presetMeta.props;\n configFields = getConfigFields(\n fieldsMeta\n .getPConnect()\n .getChildren()\n ?.map(child => {\n return child.getPConnect().getRawMetadata();\n }),\n primaryFields,\n metaFields,\n classID\n );\n }\n return {\n presetId,\n presetName,\n cardHeader,\n secondaryText,\n timelineDate,\n timelineTitle,\n timelineStatus,\n timelineIcon,\n filterExpression,\n fieldsMeta,\n configFields\n };\n}\n\n/**\n * [getReportColumns]\n * Description - Returns a set of columns from the report response.\n * @ignore\n * @param {object} response -\n * @returns {Set} Set of columns from the report response\n */\nfunction getReportColumns(response) {\n const {\n data: { data: reportColumns }\n } = response;\n const reportColumnsSet = new Set();\n reportColumns?.forEach(item => {\n let val = item.pyFieldName;\n // Remove '.' from index 0 only, if '.' is present\n if (val[0] === '.') {\n val = val.substring(1);\n }\n reportColumnsSet.add(val);\n });\n return reportColumnsSet;\n}\n\n/**\n * [getConfigFieldValue]\n * Descritpion - Returns a valid value for a configuration field. Remove any annotations and also \".\"\n * @ignore\n * @param {object} config\n * config.value - Raw value\n * @returns {string} value - Value with out any annotations or \".\"\n */\nfunction getConfigFieldValue(config) {\n let { value } = config;\n if (value.startsWith('@')) {\n value = value.substring(value.indexOf(' ') + 1);\n if (value[0] === '.') value = value.substring(1);\n }\n return value;\n}\n\n/**\n * [prepareConfigFields]\n * Description - Prepares a set of configuration fields and pushes each config type to a set using the callback parameter.\n * @ignore\n * @param {object} configFields List of Authored fields\n * @param {Function} pushToComponentsList Callback to push the field type to a set.\n * @returns {Set} configFieldSet\n */\nfunction prepareConfigFields(configFields, pushToComponentsList) {\n const configFieldSet = new Set();\n configFields.forEach(item => {\n pushToComponentsList(item.type);\n const val = getConfigFieldValue(item.config);\n configFieldSet.add(val);\n });\n return configFieldSet;\n}\n\n/**\n * [findAuthoredField]\n * Description - Finds an authored field from yhe list of config fields.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {string} fieldID Filter\n * @returns {object} config with its field value equal to fieldID, which means an authored field\n */\nfunction findAuthoredField(configFields, fieldID) {\n return configFields.find(configField => {\n const val = getConfigFieldValue(configField.config);\n return val === fieldID;\n });\n}\n\n/**\n * [findAndUpdateAuthoredFieldConfig]\n * Description - Find the authored field, and update its config.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {object} item Field item to copy displayAs and category information\n * @param {string} classId classID from the response\n */\nfunction findAndUpdateAuthoredFieldConfig(configFields, item, classId) {\n const authoredField = findAuthoredField(configFields, item.fieldID);\n if (authoredField?.config) {\n if (item.displayAs) {\n authoredField.config.displayAs = item.displayAs;\n }\n authoredField.config.classID = item.classID ?? classId;\n\n if (authoredField.type === USER_REFERENCE) {\n authoredField.config.associationID = item.associationID || item.fieldID;\n }\n authoredField.config.category = item.category;\n // FieldType identifies whether the field is configured as pickList\n authoredField.config.fieldType = item.fieldType;\n // type defined on the property rule,\n // used for the picklist field to assign the appropriate type\n authoredField.config.propertyType = item.dataType || item.type;\n }\n}\n\n/**\n * [isAnExtraField]\n * Description - Returns true if the field is an extra field. Extra field is the one which is not authored but part of the report.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {Set} configFieldSet Set if Authored filed values\n * @param {Set} reportColumnsSet Set of columns from the report\n * @param {object} item Config field item\n * @param {string} classId Class ID from the response\n * @param {boolean} showDynamicFields Flag indicating whether fields are fetched dynamically at runtime\n * @returns {boolean} true If the field is an extra field else false.\n */\nfunction isAnExtraField(configFields, configFieldSet, reportColumnsSet, item, classId, showDynamicFields) {\n // Is the field already present in authoring metadata?\n // Mutates config fields to copy displayAs and category information\n if (configFieldSet.has(item.fieldID)) {\n findAndUpdateAuthoredFieldConfig(configFields, item, classId);\n return false;\n }\n\n // If field is not authored and not part of report columns then discard it\n return showDynamicFields || !!reportColumnsSet.has(item.fieldID);\n}\n\n/**\n * [prepareExtraFields]\n * Description - Returns a list of extra fields with their meta updated.\n * @ignore\n * @param {Array} metaFields List of fields\n * @param {Array} configFields List of Authored fields\n * @param {Set} configFieldSet Set if Authored filed values\n * @param {Set} reportColumnsSet Set of columns from the report\n * @param {string} classID Class ID from the response\n * @param {boolean} showDynamicFields Flag indicating whether fields are fetched dynamically at runtime\n * @returns {Array} List of extra fields with their meta updated.\n */\nfunction prepareExtraFields(metaFields, configFields, configFieldSet, reportColumnsSet, classID, showDynamicFields) {\n // Filter all the extra fields\n const extraFileds = metaFields.filter(item => {\n return isAnExtraField(configFields, configFieldSet, reportColumnsSet, item, classID, showDynamicFields);\n });\n return generateViewMetaData(extraFileds, classID, false);\n // Update the meta object of each of the extra fields.\n}\n\nconst AssignDashObjects = ['Assign-Worklist', 'Assign-WorkBasket'];\n\nfunction populateRenderingOptions(name, config, field) {\n const shouldDisplayAsSemanticLink = 'displayAsLink' in field.config && field.config.displayAsLink;\n if (shouldDisplayAsSemanticLink) {\n config.customObject.isAssignmentLink = AssignDashObjects.includes(field.config.classID);\n if (field.config.value.startsWith('@CA')) {\n config.customObject.isAssociation = true;\n }\n config.cellRenderer = formatConstants.WorkLink;\n } else if (name === 'pyStatusWork' || name === 'pyAssignmentStatus') {\n config.cellRenderer = formatConstants.WorkStatus;\n } else if (name === 'pxUrgencyWork') {\n config.cellRenderer = formatConstants.Integer;\n }\n}\nexport function initializeColumns(fields: any[] = [], getMappedProperty: any = null) {\n return fields.map((field, originalColIndex) => {\n let name = field.config.value;\n\n if (name.startsWith('@')) {\n name = name.substring(name.indexOf(' ') + 1);\n if (name[0] === '.') name = name.substring(1);\n }\n name = getMappedProperty?.(name) ?? name;\n\n let label = field.config.label || field.config.caption;\n const { show = true, displayAs } = field.config;\n if (label.startsWith('@')) {\n label = label.substring(3);\n }\n\n const config = {\n name,\n label,\n show,\n classID: field.config.classID,\n id: field.id || name || originalColIndex,\n displayAs,\n associationID: field.config.associationID,\n ...(field.config.classID && { category: field.config.category }),\n customObject: {},\n fieldType: field.config.fieldType,\n meta: {\n ...field\n }\n };\n\n populateRenderingOptions(name, config, field);\n\n return config;\n });\n}\n\nexport const getItemKey = fields => {\n let itemKey;\n if (fields.findIndex(field => field.id === 'pyGUID') > -1) {\n itemKey = 'pyGUID';\n } else {\n itemKey = 'pzInsKey';\n }\n return itemKey;\n};\n\nexport function preparePatchQueryFields(fields, isDataObject = false, classID = '') {\n const queryFields: any[] = [];\n fields.forEach(field => {\n const patchFields: any[] = [];\n if (field.cellRenderer === 'WorkLink') {\n if (field.customObject && field.customObject.isAssignmentLink) {\n const associationName = field.name.includes(':') ? `${field.name.split(':')[0]}:` : '';\n patchFields.push(`${associationName}pzInsKey`);\n patchFields.push(`${associationName}pxRefObjectClass`);\n } else if (field.customObject && field.customObject.isAssociation) {\n const associationCategory = field.name.split(':')[0];\n patchFields.push(`${associationCategory}:pyID`);\n patchFields.push(`${associationCategory}:pzInsKey`);\n patchFields.push(`${associationCategory}:pxObjClass`);\n } else if (isDataObject) {\n const dataViewName = PCore.getDataTypeUtils().getSavableDataPage(classID);\n const dataPageKeys = PCore.getDataTypeUtils().getDataPageKeys(dataViewName);\n dataPageKeys?.forEach(item => (item.isAlternateKeyStorage ? patchFields.push(item.linkedField) : patchFields.push(item.keyName)));\n } else {\n patchFields.push('pyID');\n patchFields.push('pzInsKey');\n patchFields.push('pxObjClass');\n }\n }\n patchFields.forEach(k => {\n if (!queryFields.find(q => q === k)) {\n queryFields.push(k);\n }\n });\n });\n\n return queryFields;\n}\n\n/**\n * Update the renderer type for the properties of type Page.\n */\nexport function updatePageFieldsConfig(configFields, parentClassID) {\n return configFields.forEach(item => {\n const {\n type,\n config: { value }\n } = item;\n const propertyName = PCore.getAnnotationUtils().getPropertyName(value);\n if (isEmbeddedField(value) && !isPageListInPath(propertyName, parentClassID)) {\n item.config.componentType = type;\n item.type = 'PagePropertyRenderer';\n }\n });\n}\n\nexport const readContextResponse = async (context, params) => {\n const { getPConnect, apiContext, setListContext, children, showDynamicFields, referenceList, isDataObject } = params;\n const { promisesResponseArray, apiContext: otherContext } = context;\n // eslint-disable-next-line sonarjs/no-unused-collection\n const listOfComponents: any[] = [];\n const {\n data: { fields: metaFields, classID, isQueryable }\n } = promisesResponseArray[0];\n let {\n data: { primaryFields }\n } = promisesResponseArray[0];\n // When list is configured with Include all class fields configuration, provide support for Primary fields column\n if (showDynamicFields) {\n const sourceMetadata: any = PCore.getMetadataUtils().getDataPageMetadata(referenceList);\n if (sourceMetadata?.primaryFields) {\n primaryFields = sourceMetadata.primaryFields;\n }\n // updating metaData fieldID to normal property if it has fieldID starts with !P! or !PL!\n updateMetaEmbeddedFieldID(metaFields);\n }\n updateFieldType(metaFields);\n\n if (isDataObject) {\n const compositeKeys: any[] = [];\n const dataViewName = PCore.getDataTypeUtils().getSavableDataPage(classID);\n const dataPageKeys = PCore.getDataTypeUtils().getDataPageKeys(dataViewName);\n dataPageKeys?.forEach(item => (item.isAlternateKeyStorage ? compositeKeys.push(item.linkedField) : compositeKeys.push(item.keyName)));\n if (compositeKeys.length) {\n otherContext.setCompositeKeys(compositeKeys);\n }\n if (otherContext) {\n otherContext.fetchRowActionDetails = null;\n }\n }\n\n const presetArray = [];\n const rawMetadata = getPConnect().getRawMetadata().config;\n const rawPresets = rawMetadata.presets;\n const isMetaWithPresets = rawPresets && rawPresets.length !== 0;\n const childrenIterator = isMetaWithPresets ? rawPresets : children;\n const resolvedPresets = getPConnect().getConfigProps().presets;\n let fields;\n let tableConfig;\n childrenIterator?.forEach((presetMeta, index) => {\n const { configFields } = getTableConfigFromPresetMeta(\n { ...presetMeta, label: resolvedPresets[index].label },\n isMetaWithPresets,\n getPConnect,\n classID,\n primaryFields,\n metaFields\n );\n const pushToComponentsList = fieldType => {\n listOfComponents.push(fieldType);\n };\n // read report columns response - in case of nonqueryable ignore the response and rely only on the fields configured at authoing time in presets\n const reportColumnsSet = isQueryable ? getReportColumns(promisesResponseArray[1]) : new Set();\n\n const configFieldSet = prepareConfigFields(configFields, pushToComponentsList);\n\n // FIXME #EmbeddedPropertyPatch\n // TODO: Remove this merge logic when the metadata response includes all optimized embedded page and pagelists\n // merging configured embedded properties with metadata so that while preparing extra fields, config fields can get other properties from meta(eg: category, displayAsLink)\n // get configured embedded properties metadata and get new mergedMetaFields\n const configEmbeddedFieldsMeta = getConfigEmbeddedFieldsMeta(configFieldSet, classID);\n const mergedMetaFields = mergeConfigEmbeddedFieldsMeta(configEmbeddedFieldsMeta, metaFields);\n\n const extraFields = prepareExtraFields(\n mergedMetaFields, // passing new merged meta fields which has meta of configured embedded fields of current preset\n configFields,\n configFieldSet,\n reportColumnsSet,\n classID,\n showDynamicFields\n );\n\n if (isQueryable) {\n updatePageFieldsConfig(configFields, classID);\n preparePropertyMaps([...configFields, ...extraFields], classID, context);\n }\n\n const { getMappedProperty } = context;\n\n fields = initializeColumns([...configFields, ...extraFields], getMappedProperty);\n const patchQueryFields = preparePatchQueryFields(fields, isDataObject, classID);\n const itemKey = getItemKey(fields);\n tableConfig = { fieldDefs: fields, patchQueryFields, itemKey, isQueryable };\n });\n const meta = tableConfig;\n setListContext({\n meta,\n presets: presetArray,\n apiContext: {\n ...apiContext\n }\n });\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleTableManual.d.ts","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"SimpleTableManual.d.ts","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,iBAAiB,EAAgD,MAAM,OAAO,CAAC;AA8B/F,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,UAAU,sBAAuB,SAAQ,UAAU;IAEjD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,GAAG,CAAC;IAC3B,sBAAsB,CAAC,EAAE,GAAG,CAAC;IAC7B,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,GAAG,CAAC;IAC5B,gBAAgB,EAAE,GAAG,CAAC;CACvB;AAoCD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,sBAAsB,CAAC,eAwrBzF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
/* eslint-disable no-nested-ternary */
|
|
3
|
-
import { useEffect, useRef, useState } from 'react';
|
|
3
|
+
import { useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
4
4
|
import Table from '@material-ui/core/Table';
|
|
5
5
|
import TableBody from '@material-ui/core/TableBody';
|
|
6
6
|
import TableCell from '@material-ui/core/TableCell';
|
|
@@ -140,6 +140,17 @@ export default function SimpleTableManual(props) {
|
|
|
140
140
|
// unchanged config info. For now, much of the info here is carried over from
|
|
141
141
|
// Constellation DX Components.
|
|
142
142
|
const fieldDefs = buildFieldsForTable(rawFields, resolvedFields, showDeleteButton);
|
|
143
|
+
useLayoutEffect(() => {
|
|
144
|
+
if (allowEditingInModal) {
|
|
145
|
+
getPConnect()
|
|
146
|
+
.getListActions()
|
|
147
|
+
.initDefaultPageInstructions(getPConnect().getReferenceList(), fieldDefs.filter(item => item.name).map(item => item.name));
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// @ts-ignore - An argument for 'fields' was not provided
|
|
151
|
+
getPConnect().getListActions().initDefaultPageInstructions(getPConnect().getReferenceList());
|
|
152
|
+
}
|
|
153
|
+
}, []);
|
|
143
154
|
const displayedColumns = fieldDefs.map(field => {
|
|
144
155
|
return field.name ? field.name : field.cellRenderer;
|
|
145
156
|
});
|
|
@@ -228,6 +239,9 @@ export default function SimpleTableManual(props) {
|
|
|
228
239
|
else {
|
|
229
240
|
pConn.getListActions().insert({ classID: contextClass }, referenceList.length);
|
|
230
241
|
}
|
|
242
|
+
getPConnect().clearErrorMessages({
|
|
243
|
+
property: getPConnect().getStateProps()?.referenceList?.substring(1)
|
|
244
|
+
});
|
|
231
245
|
};
|
|
232
246
|
const editRecord = () => {
|
|
233
247
|
setEditAnchorEl(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleTableManual.js","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-nested-ternary */\nimport React, { PropsWithChildren, useEffect, useRef, useState } from 'react';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Paper from '@material-ui/core/Paper';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Link from '@material-ui/core/Link';\nimport { createElement } from 'react';\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\nimport MoreIcon from '@material-ui/icons/MoreVert';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport FilterListIcon from '@material-ui/icons/FilterList';\nimport SubjectIcon from '@material-ui/icons/Subject';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Select from '@material-ui/core/Select';\nimport Button from '@material-ui/core/Button';\nimport TextField from '@material-ui/core/TextField';\n\nimport createPConnectComponent from '../../../../bridge/react_pconnect';\nimport { Utils } from '../../../helpers/utils';\nimport { getReferenceList } from '../../../helpers/field-group-utils';\nimport { getDataPage } from '../../../helpers/data_page';\nimport { buildFieldsForTable, filterData, getContext } from '../../../helpers/simpleTableHelpers';\nimport { PConnProps } from '../../../../types/PConnProps';\nimport { format } from '../../../helpers/formatters';\n\ninterface SimpleTableManualProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n hideAddRow?: boolean;\n hideDeleteRow?: boolean;\n referenceList?: any[];\n renderMode?: string;\n presets?: any[];\n label?: string;\n showLabel?: boolean;\n dataPageName?: string;\n contextClass?: string;\n propertyLabel?: string;\n fieldMetadata?: any;\n editMode?: string;\n addAndEditRowsWithin?: any;\n viewForAddAndEditModal?: any;\n editModeConfig?: any;\n displayMode?: string;\n useSeparateViewForEdit: any;\n viewForEditModal: any;\n}\n\nconst useStyles = makeStyles((/* theme */) => ({\n label: {\n margin: '8px'\n },\n header: {\n background: '#f5f5f5'\n },\n tableCell: {\n borderRight: '1px solid lightgray',\n padding: '8px'\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1\n },\n moreIcon: {\n verticalAlign: 'bottom'\n }\n}));\n\nlet menuColumnId = '';\nlet menuColumnType = '';\nlet menuColumnLabel = '';\n\nconst filterByColumns: any[] = [];\nlet myRows: any[];\n\nexport default function SimpleTableManual(props: PropsWithChildren<SimpleTableManualProps>) {\n const classes = useStyles();\n const {\n getPConnect,\n referenceList = [], // if referenceList not in configProps$, default to empy list\n children,\n renderMode,\n presets,\n label: labelProp,\n showLabel,\n dataPageName,\n contextClass,\n hideAddRow,\n hideDeleteRow,\n propertyLabel,\n fieldMetadata,\n editMode,\n addAndEditRowsWithin,\n viewForAddAndEditModal,\n editModeConfig,\n displayMode,\n useSeparateViewForEdit,\n viewForEditModal\n } = props;\n const pConn = getPConnect();\n const [rowData, setRowData] = useState([]);\n const [elements, setElementsData] = useState([]);\n const [order, setOrder] = useState<Order>('asc');\n const [orderBy, setOrderBy] = useState<keyof any>('');\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [editAnchorEl, setEditAnchorEl] = useState<null | HTMLElement>(null);\n const [open, setOpen] = useState(false);\n const [filterBy, setFilterBy] = useState<string>();\n const [containsDateOrTime, setContainsDateOrTime] = useState<boolean>(false);\n const [filterType, setFilterType] = useState<string>('string');\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [displayDialogFilterName, setDisplayDialogFilterName] = useState<string>('');\n const [displayDialogContainsFilter, setDisplayDialogContainsFilter] = useState<string>('contains');\n const [displayDialogContainsValue, setDisplayDialogContainsValue] = useState<string>('');\n const [displayDialogDateFilter, setDisplayDialogDateFilter] = useState<string>('notequal');\n const [displayDialogDateValue, setDisplayDialogDateValue] = useState<string>('');\n const selectedRowIndex: any = useRef(null);\n\n const parameters = fieldMetadata?.datasource?.parameters;\n const { referenceListStr } = getContext(getPConnect());\n const label = labelProp || propertyLabel;\n const propsToUse = { label, showLabel, ...getPConnect().getInheritedProps() };\n if (propsToUse.showLabel === false) {\n propsToUse.label = '';\n }\n // Getting current context\n const context = getPConnect().getContextName();\n const resolvedList = getReferenceList(pConn);\n pConn.setReferenceList(resolvedList);\n const menuIconOverride$ = Utils.getImageSrc('trash', Utils.getSDKStaticConentUrl());\n\n const resolvedFields = children?.[0]?.children || presets?.[0].children?.[0].children;\n // NOTE: props has each child.config with datasource and value undefined\n // but getRawMetadata() has each child.config with datasource and value showing their unresolved values (ex: \"@P thePropName\")\n // We need to use the prop name as the \"glue\" to tie the table dataSource, displayColumns and data together.\n // So, in the code below, we'll use the unresolved config.value (but replacing the space with an underscore to keep things happy)\n const rawMetadata: any = getPConnect().getRawMetadata();\n\n // get raw config since @P and other annotations are processed and don't appear in the resolved config.\n // Destructure \"raw\" children into array var: \"rawFields\"\n // NOTE: when config.listType == \"associated\", the property can be found in either\n // config.value (ex: \"@P .DeclarantChoice\") or\n // config.datasource (ex: \"@ASSOCIATED .DeclarantChoice\")\n // Neither of these appear in the resolved props\n\n const rawConfig = rawMetadata?.config;\n const rawFields = rawConfig?.children?.[0]?.children || rawConfig?.presets?.[0].children?.[0]?.children;\n const isDisplayModeEnabled = displayMode === 'DISPLAY_ONLY';\n const readOnlyMode = renderMode === 'ReadOnly';\n const editableMode = renderMode === 'Editable';\n const showAddRowButton = !readOnlyMode && !hideAddRow;\n const allowEditingInModal =\n (editMode ? editMode === 'modal' : addAndEditRowsWithin === 'modal') && !(renderMode === 'ReadOnly' || isDisplayModeEnabled);\n const showDeleteButton = editableMode && !hideDeleteRow;\n const defaultView = editModeConfig ? editModeConfig.defaultView : viewForAddAndEditModal;\n const bUseSeparateViewForEdit = editModeConfig ? editModeConfig.useSeparateViewForEdit : useSeparateViewForEdit;\n const editView = editModeConfig ? editModeConfig.editView : viewForEditModal;\n\n const fieldsWithPropNames = rawFields.map((field, index) => {\n return { ...resolvedFields[index], propName: field.config.value.replace('@P .', '') };\n });\n\n useEffect(() => {\n if (editableMode && !allowEditingInModal) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n buildElementsForTable();\n }\n }, [referenceList.length]);\n\n useEffect(() => {\n if (readOnlyMode || allowEditingInModal) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n generateRowsData();\n }\n }, [referenceList]);\n\n // fieldDefs will be an array where each entry will have a \"name\" which will be the\n // \"resolved\" property name (that we can use as the colId) though it's not really\n // resolved. The buildFieldsForTable helper just removes the \"@P \" (which is what\n // Constellation DX Components do). It will also have the \"label\", and \"meta\" contains the original,\n // unchanged config info. For now, much of the info here is carried over from\n // Constellation DX Components.\n const fieldDefs = buildFieldsForTable(rawFields, resolvedFields, showDeleteButton);\n\n const displayedColumns = fieldDefs.map(field => {\n return field.name ? field.name : field.cellRenderer;\n });\n\n const getFormattedValue = (val, key) => {\n const rawField = fieldsWithPropNames.find(item => item.propName === key);\n let options = {};\n if (rawField && ['Boolean', 'Checkbox'].includes(rawField.type)) {\n const { trueLabel, falseLabel } = rawField.config;\n options = {\n trueLabel,\n falseLabel\n };\n }\n return rawField ? format(val, rawField.type, options) : val;\n };\n\n // console.log(`SimpleTable displayedColumns:`);\n // console.log(displayedColumns);\n\n // return the value that should be shown as the contents for the given row data\n // of the given row field\n function getRowValue(inRowData: Object, inColKey: string): any {\n // See what data (if any) we have to display\n const refKeys: string[] = inColKey?.split('.');\n let valBuilder = inRowData;\n for (const key of refKeys) {\n valBuilder = valBuilder[key];\n }\n return getFormattedValue(valBuilder, inColKey);\n }\n\n const formatRowsData = data => {\n if (!data) return {};\n\n return data.map(item => {\n return displayedColumns.reduce((dataForRow, colKey) => {\n dataForRow[colKey] = getRowValue(item, colKey);\n return dataForRow;\n }, {});\n });\n };\n\n function generateRowsData() {\n // if referenceList is empty and dataPageName property value exists then make a datapage fetch call and get the list of data.\n if (!referenceList.length && dataPageName) {\n getDataPage(dataPageName, parameters, context).then(listData => {\n const data = formatRowsData(listData);\n myRows = data;\n setRowData(data);\n });\n } else {\n // The referenceList prop has the JSON data for each row to be displayed\n // in the table. So, iterate over referenceList to create the dataRows that\n // we're using as the table's dataSource\n const data: any = [];\n for (const row of referenceList) {\n const dataForRow: Object = {};\n for (const col of displayedColumns) {\n const colKey: string = col;\n const theVal = getRowValue(row, colKey);\n dataForRow[colKey] = theVal || '';\n }\n data.push(dataForRow);\n myRows = data;\n }\n setRowData(data);\n }\n }\n\n // May be useful for debugging or understanding how it works.\n // These are the data structures referred to in the html file.\n // These are the relationships that make the table work\n // displayedColumns: key/value pairs where key is order of column and\n // value is the property shown in that column. Ex: 1: \"FirstName\"\n // rowData: array of each row's key/value pairs. Inside each row,\n // each key is an entry in displayedColumns: ex: \"FirstName\": \"Charles\"\n // Ex: { 1: {config: {label: \"First Name\", readOnly: true: name: \"FirstName\"}}, type: \"TextInput\" }\n // The \"type\" indicates the type of component that should be used for editing (when editing is enabled)\n //\n // console.log(\"SimpleTable displayedColumns:\");\n // console.log(displayedColumns);\n // console.log(`SimpleTable rowData (${rowData.length} row(s)):`);\n // console.log(JSON.stringify(rowData));\n\n const addRecord = () => {\n if (allowEditingInModal && defaultView) {\n pConn\n .getActionsApi()\n .openEmbeddedDataModal(defaultView, pConn, referenceListStr, referenceList.length, PCore.getConstants().RESOURCE_STATUS.CREATE);\n } else {\n pConn.getListActions().insert({ classID: contextClass }, referenceList.length);\n }\n };\n\n const editRecord = () => {\n setEditAnchorEl(null);\n if (typeof selectedRowIndex.current === 'number') {\n pConn\n .getActionsApi()\n .openEmbeddedDataModal(\n bUseSeparateViewForEdit ? editView : defaultView,\n pConn,\n referenceListStr,\n selectedRowIndex.current,\n PCore.getConstants().RESOURCE_STATUS.UPDATE\n );\n }\n };\n\n const deleteRecord = () => {\n setEditAnchorEl(null);\n pConn.getListActions().deleteEntry(selectedRowIndex.current);\n };\n\n const deleteRecordFromInlineEditable = (index: number) => {\n pConn.getListActions().deleteEntry(index);\n };\n\n function buildElementsForTable() {\n const eleData: any = [];\n referenceList.forEach((element, index) => {\n const data: any = [];\n rawFields.forEach(item => {\n // removing label field from config to hide title in the table cell\n item = { ...item, config: { ...item.config, label: '' } };\n const referenceListData = getReferenceList(pConn);\n const isDatapage = referenceListData.startsWith('D_');\n const pageReferenceValue = isDatapage\n ? `${referenceListData}[${index}]`\n : `${pConn.getPageReference()}${referenceListData.substring(referenceListData.lastIndexOf('.'))}[${index}]`;\n const config = {\n meta: item,\n options: {\n context,\n pageReference: pageReferenceValue,\n referenceList: referenceListData,\n hasForm: true\n }\n };\n const view = PCore.createPConnect(config);\n data.push(createElement(createPConnectComponent(), view));\n });\n eleData.push(data);\n });\n setElementsData(eleData);\n }\n\n const handleRequestSort = (event: React.MouseEvent<unknown>, property: keyof any) => {\n const isAsc = orderBy === property && order === 'asc';\n setOrder(isAsc ? 'desc' : 'asc');\n setOrderBy(property);\n };\n\n const createSortHandler = (property: keyof any) => (event: React.MouseEvent<unknown>) => {\n handleRequestSort(event, property);\n };\n\n function descendingComparator<T>(a: T, b: T, orderedBy: keyof T) {\n if (b[orderedBy] < a[orderedBy]) {\n return -1;\n }\n if (b[orderedBy] > a[orderedBy]) {\n return 1;\n }\n return 0;\n }\n\n type Order = 'asc' | 'desc';\n\n function getComparator<Key extends keyof any>(\n theOrder: Order,\n orderedBy: Key\n ): (a: { [key in Key]: number | string }, b: { [key in Key]: number | string }) => number {\n return theOrder === 'desc' ? (a, b) => descendingComparator(a, b, orderedBy) : (a, b) => -descendingComparator(a, b, orderedBy);\n }\n\n function stableSort<T>(array: T[], comparator: (a: T, b: T) => number) {\n const stabilizedThis = array.map((el, index) => [el, index] as [T, number]);\n stabilizedThis.sort((a, b) => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const order = comparator(a[0], b[0]);\n if (order !== 0) return order;\n return a[1] - b[1];\n });\n\n return stabilizedThis.map(el => el[0]);\n }\n\n function _menuClick(event, columnId: string, columnType: string, labelValue: string) {\n menuColumnId = columnId;\n menuColumnType = columnType;\n menuColumnLabel = labelValue;\n\n setAnchorEl(event.currentTarget);\n }\n\n function editMenuClick(event, index) {\n selectedRowIndex.current = index;\n setEditAnchorEl(event.currentTarget);\n }\n\n function _menuClose() {\n setAnchorEl(null);\n setEditAnchorEl(null);\n }\n\n function _filterMenu() {\n setAnchorEl(null);\n\n let bFound = false;\n\n for (const filterObj of filterByColumns) {\n if (filterObj.ref === menuColumnId) {\n setFilterBy(menuColumnLabel);\n if (filterObj.type === 'Date' || filterObj.type === 'DateTime' || filterObj.type === 'Time') {\n setContainsDateOrTime(true);\n setFilterType(filterObj.type);\n setDisplayDialogDateFilter(filterObj.containsFilter);\n setDisplayDialogDateValue(filterObj.containsFilterValue);\n } else {\n setContainsDateOrTime(false);\n setFilterType('string');\n setDisplayDialogContainsFilter(filterObj.containsFilter);\n setDisplayDialogContainsValue(filterObj.containsFilterValue);\n }\n bFound = true;\n break;\n }\n }\n\n if (!bFound) {\n setFilterBy(menuColumnLabel);\n setDisplayDialogFilterName(menuColumnId);\n setDisplayDialogContainsValue('');\n\n switch (menuColumnType) {\n case 'Date':\n case 'DateTime':\n case 'Time':\n setContainsDateOrTime(true);\n setFilterType(menuColumnType);\n break;\n default:\n setContainsDateOrTime(false);\n setFilterType('string');\n break;\n }\n }\n\n // open dialog\n setOpen(true);\n }\n\n function _groupMenu() {}\n\n function _closeDialog() {\n setOpen(false);\n }\n\n function _dialogContainsFilter(event) {\n setDisplayDialogContainsFilter(event.target.value);\n }\n\n function _dialogContainsValue(event) {\n setDisplayDialogContainsValue(event.target.value);\n }\n\n function _dialogDateFilter(event) {\n setDisplayDialogDateFilter(event.target.value);\n }\n\n function _dialogDateValue(event) {\n setDisplayDialogDateValue(event.target.value);\n }\n\n function filterSortGroupBy() {\n // get original data set\n let theData: any = myRows.slice();\n\n // last filter config data is global\n theData = theData.filter(filterData(filterByColumns));\n\n // move data to array and then sort\n setRowData(theData);\n }\n\n function updateFilterWithInfo() {\n let bFound = false;\n for (const filterObj of filterByColumns) {\n if (filterObj.ref === menuColumnId) {\n filterObj.type = filterType;\n if (containsDateOrTime) {\n filterObj.containsFilter = displayDialogDateFilter;\n filterObj.containsFilterValue = displayDialogDateValue;\n } else {\n filterObj.containsFilter = displayDialogContainsFilter;\n filterObj.containsFilterValue = displayDialogContainsValue;\n }\n bFound = true;\n break;\n }\n }\n\n if (!bFound) {\n // add in\n const filterObj: any = {};\n filterObj.ref = menuColumnId;\n filterObj.type = filterType;\n if (containsDateOrTime) {\n filterObj.containsFilter = displayDialogDateFilter;\n filterObj.containsFilterValue = displayDialogDateValue;\n } else {\n filterObj.containsFilter = displayDialogContainsFilter;\n filterObj.containsFilterValue = displayDialogContainsValue;\n }\n\n filterByColumns.push(filterObj);\n }\n }\n\n function _submitFilter() {\n updateFilterWithInfo();\n filterSortGroupBy();\n\n setOpen(false);\n }\n\n function _showFilteredIcon(columnId) {\n for (const filterObj of filterByColumns) {\n if (filterObj.ref === columnId) {\n // eslint-disable-next-line sonarjs/prefer-single-boolean-return\n if (filterObj.containsFilterValue !== '') {\n return true;\n }\n return false;\n }\n }\n\n return false;\n }\n\n function results() {\n const len = editableMode ? elements.length : rowData.length;\n\n return len ? (\n <span style={{ fontSize: '0.9em', opacity: '0.7' }}>\n {len} result{len > 1 ? 's' : ''}\n </span>\n ) : null;\n }\n\n return (\n <>\n <TableContainer component={Paper} style={{ margin: '4px 0px' }} id='simple-table-manual'>\n {propsToUse.label && (\n <h3 className={classes.label}>\n {propsToUse.label} {results()}\n </h3>\n )}\n <Table>\n <TableHead className={classes.header}>\n <TableRow>\n {fieldDefs.map((field: any, index) => {\n return (\n <TableCell key={`head-${displayedColumns[index]}`} className={classes.tableCell}>\n {readOnlyMode ? (\n <div>\n <TableSortLabel\n active={orderBy === displayedColumns[index]}\n direction={orderBy === displayedColumns[index] ? order : 'asc'}\n onClick={createSortHandler(displayedColumns[index])}\n >\n {field.label}\n {_showFilteredIcon(field.name) && <FilterListIcon className={classes.moreIcon} />}\n {orderBy === displayedColumns[index] ? (\n <span className={classes.visuallyHidden}>{order === 'desc' ? 'sorted descending' : 'sorted ascending'}</span>\n ) : null}\n </TableSortLabel>\n <MoreIcon\n id='menu-icon'\n className={classes.moreIcon}\n onClick={event => {\n _menuClick(event, field.name, field.meta.type, field.label);\n }}\n />\n </div>\n ) : (\n field.label\n )}\n </TableCell>\n );\n })}\n </TableRow>\n </TableHead>\n <TableBody>\n {editableMode &&\n elements.map((row: any, index) => {\n const theKey = `row-${index}`;\n return (\n <TableRow key={theKey}>\n {row.map((item, childIndex) => {\n const theColKey = `data-${index}-${childIndex}`;\n return (\n <TableCell key={theColKey} className={classes.tableCell}>\n {item}\n </TableCell>\n );\n })}\n {showDeleteButton && (\n <TableCell>\n <button\n type='button'\n className='psdk-utility-button'\n id='delete-button'\n aria-label='Delete Cell'\n onClick={() => deleteRecordFromInlineEditable(index)}\n >\n <img className='psdk-utility-card-action-svg-icon' src={menuIconOverride$} />\n </button>\n </TableCell>\n )}\n </TableRow>\n );\n })}\n {(readOnlyMode || allowEditingInModal) &&\n rowData &&\n rowData.length > 0 &&\n stableSort(rowData, getComparator(order, orderBy))\n .slice(0)\n .map((row, index) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n <TableRow key={index}>\n {displayedColumns.map(colKey => {\n return (\n <TableCell key={colKey} className={classes.tableCell}>\n {showDeleteButton && colKey === 'DeleteIcon' ? (\n <div>\n <MoreIcon\n id='table-edit-menu-icon'\n className={classes.moreIcon}\n onClick={event => {\n editMenuClick(event, index);\n }}\n />\n <Menu id='table-edit-menu' anchorEl={editAnchorEl} keepMounted open={Boolean(editAnchorEl)} onClose={_menuClose}>\n <MenuItem onClick={() => editRecord()}>Edit</MenuItem>\n <MenuItem onClick={() => deleteRecord()}>Delete</MenuItem>\n </Menu>\n </div>\n ) : typeof row[colKey] === 'boolean' && !row[colKey] ? (\n 'False'\n ) : typeof row[colKey] === 'boolean' && row[colKey] ? (\n 'True'\n ) : (\n row[colKey]\n )}\n </TableCell>\n );\n })}\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n {readOnlyMode && rowData && rowData.length === 0 && (\n <div className='no-records' id='no-records'>\n No records found.\n </div>\n )}\n {editableMode && referenceList && referenceList.length === 0 && (\n <div className='no-records' id='no-records'>\n No records found.\n </div>\n )}\n </TableContainer>\n {showAddRowButton && (\n <div style={{ fontSize: '1rem' }}>\n <Link style={{ cursor: 'pointer' }} onClick={addRecord}>\n + Add\n </Link>\n </div>\n )}\n <Menu id='simple-menu' anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={_menuClose}>\n <MenuItem onClick={_filterMenu}>\n <FilterListIcon /> Filter\n </MenuItem>\n <MenuItem onClick={_groupMenu}>\n <SubjectIcon /> Group\n </MenuItem>\n </Menu>\n <Dialog open={open} onClose={_closeDialog} aria-labelledby='form-dialog-title'>\n <DialogTitle id='form-dialog-title'>Filter: {filterBy}</DialogTitle>\n <DialogContent>\n {containsDateOrTime ? (\n <>\n <Select value={displayDialogDateFilter} onChange={_dialogDateFilter} fullWidth>\n <MenuItem value='notequal'>is not equal to</MenuItem>\n <MenuItem value='equal'>is equal to</MenuItem>\n <MenuItem value='after'>after</MenuItem>\n <MenuItem value='before'>before</MenuItem>\n <MenuItem value='null'>is null</MenuItem>\n <MenuItem value='notnull'>is not null</MenuItem>\n </Select>\n {filterType === 'Date' && (\n <TextField\n autoFocus\n margin='dense'\n id='containsFilter'\n type='date'\n fullWidth\n value={displayDialogDateValue}\n onChange={_dialogDateValue}\n />\n )}\n {filterType === 'DateTime' && (\n <TextField\n autoFocus\n margin='dense'\n id='containsFilter'\n type='datetime-local'\n fullWidth\n value={displayDialogDateValue}\n onChange={_dialogDateValue}\n />\n )}\n {filterType === 'Time' && (\n <TextField\n autoFocus\n margin='dense'\n id='containsFilter'\n type='time'\n fullWidth\n value={displayDialogDateValue}\n onChange={_dialogDateValue}\n />\n )}\n </>\n ) : (\n <>\n <Select id='filter' fullWidth onChange={_dialogContainsFilter} value={displayDialogContainsFilter}>\n <MenuItem value='contains'>Contains</MenuItem>\n <MenuItem value='equals'>Equals</MenuItem>\n <MenuItem value='startswith'>Starts with</MenuItem>\n </Select>\n <TextField\n autoFocus\n margin='dense'\n id='containsFilter'\n type='text'\n fullWidth\n value={displayDialogContainsValue}\n onChange={_dialogContainsValue}\n />\n </>\n )}\n </DialogContent>\n <DialogActions>\n <Button onClick={_closeDialog} color='secondary'>\n Cancel\n </Button>\n <Button onClick={_submitFilter} color='primary'>\n Submit\n </Button>\n </DialogActions>\n </Dialog>\n </>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SimpleTableManual.js","sourceRoot":"","sources":["../../../../../src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-nested-ternary */\nimport React, { PropsWithChildren, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Paper from '@material-ui/core/Paper';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Link from '@material-ui/core/Link';\nimport { createElement } from 'react';\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\nimport MoreIcon from '@material-ui/icons/MoreVert';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport FilterListIcon from '@material-ui/icons/FilterList';\nimport SubjectIcon from '@material-ui/icons/Subject';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Select from '@material-ui/core/Select';\nimport Button from '@material-ui/core/Button';\nimport TextField from '@material-ui/core/TextField';\n\nimport createPConnectComponent from '../../../../bridge/react_pconnect';\nimport { Utils } from '../../../helpers/utils';\nimport { getReferenceList } from '../../../helpers/field-group-utils';\nimport { getDataPage } from '../../../helpers/data_page';\nimport { buildFieldsForTable, filterData, getContext } from '../../../helpers/simpleTableHelpers';\nimport { PConnProps } from '../../../../types/PConnProps';\nimport { format } from '../../../helpers/formatters';\n\ninterface SimpleTableManualProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n hideAddRow?: boolean;\n hideDeleteRow?: boolean;\n referenceList?: any[];\n renderMode?: string;\n presets?: any[];\n label?: string;\n showLabel?: boolean;\n dataPageName?: string;\n contextClass?: string;\n propertyLabel?: string;\n fieldMetadata?: any;\n editMode?: string;\n addAndEditRowsWithin?: any;\n viewForAddAndEditModal?: any;\n editModeConfig?: any;\n displayMode?: string;\n useSeparateViewForEdit: any;\n viewForEditModal: any;\n}\n\nconst useStyles = makeStyles((/* theme */) => ({\n label: {\n margin: '8px'\n },\n header: {\n background: '#f5f5f5'\n },\n tableCell: {\n borderRight: '1px solid lightgray',\n padding: '8px'\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1\n },\n moreIcon: {\n verticalAlign: 'bottom'\n }\n}));\n\nlet menuColumnId = '';\nlet menuColumnType = '';\nlet menuColumnLabel = '';\n\nconst filterByColumns: any[] = [];\nlet myRows: any[];\n\nexport default function SimpleTableManual(props: PropsWithChildren<SimpleTableManualProps>) {\n const classes = useStyles();\n const {\n getPConnect,\n referenceList = [], // if referenceList not in configProps$, default to empy list\n children,\n renderMode,\n presets,\n label: labelProp,\n showLabel,\n dataPageName,\n contextClass,\n hideAddRow,\n hideDeleteRow,\n propertyLabel,\n fieldMetadata,\n editMode,\n addAndEditRowsWithin,\n viewForAddAndEditModal,\n editModeConfig,\n displayMode,\n useSeparateViewForEdit,\n viewForEditModal\n } = props;\n const pConn = getPConnect();\n const [rowData, setRowData] = useState([]);\n const [elements, setElementsData] = useState([]);\n const [order, setOrder] = useState<Order>('asc');\n const [orderBy, setOrderBy] = useState<keyof any>('');\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [editAnchorEl, setEditAnchorEl] = useState<null | HTMLElement>(null);\n const [open, setOpen] = useState(false);\n const [filterBy, setFilterBy] = useState<string>();\n const [containsDateOrTime, setContainsDateOrTime] = useState<boolean>(false);\n const [filterType, setFilterType] = useState<string>('string');\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [displayDialogFilterName, setDisplayDialogFilterName] = useState<string>('');\n const [displayDialogContainsFilter, setDisplayDialogContainsFilter] = useState<string>('contains');\n const [displayDialogContainsValue, setDisplayDialogContainsValue] = useState<string>('');\n const [displayDialogDateFilter, setDisplayDialogDateFilter] = useState<string>('notequal');\n const [displayDialogDateValue, setDisplayDialogDateValue] = useState<string>('');\n const selectedRowIndex: any = useRef(null);\n\n const parameters = fieldMetadata?.datasource?.parameters;\n const { referenceListStr } = getContext(getPConnect());\n const label = labelProp || propertyLabel;\n const propsToUse = { label, showLabel, ...getPConnect().getInheritedProps() };\n if (propsToUse.showLabel === false) {\n propsToUse.label = '';\n }\n // Getting current context\n const context = getPConnect().getContextName();\n const resolvedList = getReferenceList(pConn);\n pConn.setReferenceList(resolvedList);\n const menuIconOverride$ = Utils.getImageSrc('trash', Utils.getSDKStaticConentUrl());\n\n const resolvedFields = children?.[0]?.children || presets?.[0].children?.[0].children;\n // NOTE: props has each child.config with datasource and value undefined\n // but getRawMetadata() has each child.config with datasource and value showing their unresolved values (ex: \"@P thePropName\")\n // We need to use the prop name as the \"glue\" to tie the table dataSource, displayColumns and data together.\n // So, in the code below, we'll use the unresolved config.value (but replacing the space with an underscore to keep things happy)\n const rawMetadata: any = getPConnect().getRawMetadata();\n\n // get raw config since @P and other annotations are processed and don't appear in the resolved config.\n // Destructure \"raw\" children into array var: \"rawFields\"\n // NOTE: when config.listType == \"associated\", the property can be found in either\n // config.value (ex: \"@P .DeclarantChoice\") or\n // config.datasource (ex: \"@ASSOCIATED .DeclarantChoice\")\n // Neither of these appear in the resolved props\n\n const rawConfig = rawMetadata?.config;\n const rawFields = rawConfig?.children?.[0]?.children || rawConfig?.presets?.[0].children?.[0]?.children;\n const isDisplayModeEnabled = displayMode === 'DISPLAY_ONLY';\n const readOnlyMode = renderMode === 'ReadOnly';\n const editableMode = renderMode === 'Editable';\n const showAddRowButton = !readOnlyMode && !hideAddRow;\n const allowEditingInModal =\n (editMode ? editMode === 'modal' : addAndEditRowsWithin === 'modal') && !(renderMode === 'ReadOnly' || isDisplayModeEnabled);\n const showDeleteButton = editableMode && !hideDeleteRow;\n const defaultView = editModeConfig ? editModeConfig.defaultView : viewForAddAndEditModal;\n const bUseSeparateViewForEdit = editModeConfig ? editModeConfig.useSeparateViewForEdit : useSeparateViewForEdit;\n const editView = editModeConfig ? editModeConfig.editView : viewForEditModal;\n\n const fieldsWithPropNames = rawFields.map((field, index) => {\n return { ...resolvedFields[index], propName: field.config.value.replace('@P .', '') };\n });\n\n useEffect(() => {\n if (editableMode && !allowEditingInModal) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n buildElementsForTable();\n }\n }, [referenceList.length]);\n\n useEffect(() => {\n if (readOnlyMode || allowEditingInModal) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n generateRowsData();\n }\n }, [referenceList]);\n\n // fieldDefs will be an array where each entry will have a \"name\" which will be the\n // \"resolved\" property name (that we can use as the colId) though it's not really\n // resolved. The buildFieldsForTable helper just removes the \"@P \" (which is what\n // Constellation DX Components do). It will also have the \"label\", and \"meta\" contains the original,\n // unchanged config info. For now, much of the info here is carried over from\n // Constellation DX Components.\n const fieldDefs = buildFieldsForTable(rawFields, resolvedFields, showDeleteButton);\n\n useLayoutEffect(() => {\n if (allowEditingInModal) {\n getPConnect()\n .getListActions()\n .initDefaultPageInstructions(\n getPConnect().getReferenceList(),\n fieldDefs.filter(item => item.name).map(item => item.name)\n );\n } else {\n // @ts-ignore - An argument for 'fields' was not provided\n getPConnect().getListActions().initDefaultPageInstructions(getPConnect().getReferenceList());\n }\n }, []);\n\n const displayedColumns = fieldDefs.map(field => {\n return field.name ? field.name : field.cellRenderer;\n });\n\n const getFormattedValue = (val, key) => {\n const rawField = fieldsWithPropNames.find(item => item.propName === key);\n let options = {};\n if (rawField && ['Boolean', 'Checkbox'].includes(rawField.type)) {\n const { trueLabel, falseLabel } = rawField.config;\n options = {\n trueLabel,\n falseLabel\n };\n }\n return rawField ? format(val, rawField.type, options) : val;\n };\n\n // console.log(`SimpleTable displayedColumns:`);\n // console.log(displayedColumns);\n\n // return the value that should be shown as the contents for the given row data\n // of the given row field\n function getRowValue(inRowData: Object, inColKey: string): any {\n // See what data (if any) we have to display\n const refKeys: string[] = inColKey?.split('.');\n let valBuilder = inRowData;\n for (const key of refKeys) {\n valBuilder = valBuilder[key];\n }\n return getFormattedValue(valBuilder, inColKey);\n }\n\n const formatRowsData = data => {\n if (!data) return {};\n\n return data.map(item => {\n return displayedColumns.reduce((dataForRow, colKey) => {\n dataForRow[colKey] = getRowValue(item, colKey);\n return dataForRow;\n }, {});\n });\n };\n\n function generateRowsData() {\n // if referenceList is empty and dataPageName property value exists then make a datapage fetch call and get the list of data.\n if (!referenceList.length && dataPageName) {\n getDataPage(dataPageName, parameters, context).then(listData => {\n const data = formatRowsData(listData);\n myRows = data;\n setRowData(data);\n });\n } else {\n // The referenceList prop has the JSON data for each row to be displayed\n // in the table. So, iterate over referenceList to create the dataRows that\n // we're using as the table's dataSource\n const data: any = [];\n for (const row of referenceList) {\n const dataForRow: Object = {};\n for (const col of displayedColumns) {\n const colKey: string = col;\n const theVal = getRowValue(row, colKey);\n dataForRow[colKey] = theVal || '';\n }\n data.push(dataForRow);\n myRows = data;\n }\n setRowData(data);\n }\n }\n\n // May be useful for debugging or understanding how it works.\n // These are the data structures referred to in the html file.\n // These are the relationships that make the table work\n // displayedColumns: key/value pairs where key is order of column and\n // value is the property shown in that column. Ex: 1: \"FirstName\"\n // rowData: array of each row's key/value pairs. Inside each row,\n // each key is an entry in displayedColumns: ex: \"FirstName\": \"Charles\"\n // Ex: { 1: {config: {label: \"First Name\", readOnly: true: name: \"FirstName\"}}, type: \"TextInput\" }\n // The \"type\" indicates the type of component that should be used for editing (when editing is enabled)\n //\n // console.log(\"SimpleTable displayedColumns:\");\n // console.log(displayedColumns);\n // console.log(`SimpleTable rowData (${rowData.length} row(s)):`);\n // console.log(JSON.stringify(rowData));\n\n const addRecord = () => {\n if (allowEditingInModal && defaultView) {\n pConn\n .getActionsApi()\n .openEmbeddedDataModal(defaultView, pConn, referenceListStr, referenceList.length, PCore.getConstants().RESOURCE_STATUS.CREATE);\n } else {\n pConn.getListActions().insert({ classID: contextClass }, referenceList.length);\n }\n\n getPConnect().clearErrorMessages({\n property: (getPConnect().getStateProps() as any)?.referenceList?.substring(1)\n } as any);\n };\n\n const editRecord = () => {\n setEditAnchorEl(null);\n if (typeof selectedRowIndex.current === 'number') {\n pConn\n .getActionsApi()\n .openEmbeddedDataModal(\n bUseSeparateViewForEdit ? editView : defaultView,\n pConn,\n referenceListStr,\n selectedRowIndex.current,\n PCore.getConstants().RESOURCE_STATUS.UPDATE\n );\n }\n };\n\n const deleteRecord = () => {\n setEditAnchorEl(null);\n pConn.getListActions().deleteEntry(selectedRowIndex.current);\n };\n\n const deleteRecordFromInlineEditable = (index: number) => {\n pConn.getListActions().deleteEntry(index);\n };\n\n function buildElementsForTable() {\n const eleData: any = [];\n referenceList.forEach((element, index) => {\n const data: any = [];\n rawFields.forEach(item => {\n // removing label field from config to hide title in the table cell\n item = { ...item, config: { ...item.config, label: '' } };\n const referenceListData = getReferenceList(pConn);\n const isDatapage = referenceListData.startsWith('D_');\n const pageReferenceValue = isDatapage\n ? `${referenceListData}[${index}]`\n : `${pConn.getPageReference()}${referenceListData.substring(referenceListData.lastIndexOf('.'))}[${index}]`;\n const config = {\n meta: item,\n options: {\n context,\n pageReference: pageReferenceValue,\n referenceList: referenceListData,\n hasForm: true\n }\n };\n const view = PCore.createPConnect(config);\n data.push(createElement(createPConnectComponent(), view));\n });\n eleData.push(data);\n });\n setElementsData(eleData);\n }\n\n const handleRequestSort = (event: React.MouseEvent<unknown>, property: keyof any) => {\n const isAsc = orderBy === property && order === 'asc';\n setOrder(isAsc ? 'desc' : 'asc');\n setOrderBy(property);\n };\n\n const createSortHandler = (property: keyof any) => (event: React.MouseEvent<unknown>) => {\n handleRequestSort(event, property);\n };\n\n function descendingComparator<T>(a: T, b: T, orderedBy: keyof T) {\n if (b[orderedBy] < a[orderedBy]) {\n return -1;\n }\n if (b[orderedBy] > a[orderedBy]) {\n return 1;\n }\n return 0;\n }\n\n type Order = 'asc' | 'desc';\n\n function getComparator<Key extends keyof any>(\n theOrder: Order,\n orderedBy: Key\n ): (a: { [key in Key]: number | string }, b: { [key in Key]: number | string }) => number {\n return theOrder === 'desc' ? (a, b) => descendingComparator(a, b, orderedBy) : (a, b) => -descendingComparator(a, b, orderedBy);\n }\n\n function stableSort<T>(array: T[], comparator: (a: T, b: T) => number) {\n const stabilizedThis = array.map((el, index) => [el, index] as [T, number]);\n stabilizedThis.sort((a, b) => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const order = comparator(a[0], b[0]);\n if (order !== 0) return order;\n return a[1] - b[1];\n });\n\n return stabilizedThis.map(el => el[0]);\n }\n\n function _menuClick(event, columnId: string, columnType: string, labelValue: string) {\n menuColumnId = columnId;\n menuColumnType = columnType;\n menuColumnLabel = labelValue;\n\n setAnchorEl(event.currentTarget);\n }\n\n function editMenuClick(event, index) {\n selectedRowIndex.current = index;\n setEditAnchorEl(event.currentTarget);\n }\n\n function _menuClose() {\n setAnchorEl(null);\n setEditAnchorEl(null);\n }\n\n function _filterMenu() {\n setAnchorEl(null);\n\n let bFound = false;\n\n for (const filterObj of filterByColumns) {\n if (filterObj.ref === menuColumnId) {\n setFilterBy(menuColumnLabel);\n if (filterObj.type === 'Date' || filterObj.type === 'DateTime' || filterObj.type === 'Time') {\n setContainsDateOrTime(true);\n setFilterType(filterObj.type);\n setDisplayDialogDateFilter(filterObj.containsFilter);\n setDisplayDialogDateValue(filterObj.containsFilterValue);\n } else {\n setContainsDateOrTime(false);\n setFilterType('string');\n setDisplayDialogContainsFilter(filterObj.containsFilter);\n setDisplayDialogContainsValue(filterObj.containsFilterValue);\n }\n bFound = true;\n break;\n }\n }\n\n if (!bFound) {\n setFilterBy(menuColumnLabel);\n setDisplayDialogFilterName(menuColumnId);\n setDisplayDialogContainsValue('');\n\n switch (menuColumnType) {\n case 'Date':\n case 'DateTime':\n case 'Time':\n setContainsDateOrTime(true);\n setFilterType(menuColumnType);\n break;\n default:\n setContainsDateOrTime(false);\n setFilterType('string');\n break;\n }\n }\n\n // open dialog\n setOpen(true);\n }\n\n function _groupMenu() {}\n\n function _closeDialog() {\n setOpen(false);\n }\n\n function _dialogContainsFilter(event) {\n setDisplayDialogContainsFilter(event.target.value);\n }\n\n function _dialogContainsValue(event) {\n setDisplayDialogContainsValue(event.target.value);\n }\n\n function _dialogDateFilter(event) {\n setDisplayDialogDateFilter(event.target.value);\n }\n\n function _dialogDateValue(event) {\n setDisplayDialogDateValue(event.target.value);\n }\n\n function filterSortGroupBy() {\n // get original data set\n let theData: any = myRows.slice();\n\n // last filter config data is global\n theData = theData.filter(filterData(filterByColumns));\n\n // move data to array and then sort\n setRowData(theData);\n }\n\n function updateFilterWithInfo() {\n let bFound = false;\n for (const filterObj of filterByColumns) {\n if (filterObj.ref === menuColumnId) {\n filterObj.type = filterType;\n if (containsDateOrTime) {\n filterObj.containsFilter = displayDialogDateFilter;\n filterObj.containsFilterValue = displayDialogDateValue;\n } else {\n filterObj.containsFilter = displayDialogContainsFilter;\n filterObj.containsFilterValue = displayDialogContainsValue;\n }\n bFound = true;\n break;\n }\n }\n\n if (!bFound) {\n // add in\n const filterObj: any = {};\n filterObj.ref = menuColumnId;\n filterObj.type = filterType;\n if (containsDateOrTime) {\n filterObj.containsFilter = displayDialogDateFilter;\n filterObj.containsFilterValue = displayDialogDateValue;\n } else {\n filterObj.containsFilter = displayDialogContainsFilter;\n filterObj.containsFilterValue = displayDialogContainsValue;\n }\n\n filterByColumns.push(filterObj);\n }\n }\n\n function _submitFilter() {\n updateFilterWithInfo();\n filterSortGroupBy();\n\n setOpen(false);\n }\n\n function _showFilteredIcon(columnId) {\n for (const filterObj of filterByColumns) {\n if (filterObj.ref === columnId) {\n // eslint-disable-next-line sonarjs/prefer-single-boolean-return\n if (filterObj.containsFilterValue !== '') {\n return true;\n }\n return false;\n }\n }\n\n return false;\n }\n\n function results() {\n const len = editableMode ? elements.length : rowData.length;\n\n return len ? (\n <span style={{ fontSize: '0.9em', opacity: '0.7' }}>\n {len} result{len > 1 ? 's' : ''}\n </span>\n ) : null;\n }\n\n return (\n <>\n <TableContainer component={Paper} style={{ margin: '4px 0px' }} id='simple-table-manual'>\n {propsToUse.label && (\n <h3 className={classes.label}>\n {propsToUse.label} {results()}\n </h3>\n )}\n <Table>\n <TableHead className={classes.header}>\n <TableRow>\n {fieldDefs.map((field: any, index) => {\n return (\n <TableCell key={`head-${displayedColumns[index]}`} className={classes.tableCell}>\n {readOnlyMode ? (\n <div>\n <TableSortLabel\n active={orderBy === displayedColumns[index]}\n direction={orderBy === displayedColumns[index] ? order : 'asc'}\n onClick={createSortHandler(displayedColumns[index])}\n >\n {field.label}\n {_showFilteredIcon(field.name) && <FilterListIcon className={classes.moreIcon} />}\n {orderBy === displayedColumns[index] ? (\n <span className={classes.visuallyHidden}>{order === 'desc' ? 'sorted descending' : 'sorted ascending'}</span>\n ) : null}\n </TableSortLabel>\n <MoreIcon\n id='menu-icon'\n className={classes.moreIcon}\n onClick={event => {\n _menuClick(event, field.name, field.meta.type, field.label);\n }}\n />\n </div>\n ) : (\n field.label\n )}\n </TableCell>\n );\n })}\n </TableRow>\n </TableHead>\n <TableBody>\n {editableMode &&\n elements.map((row: any, index) => {\n const theKey = `row-${index}`;\n return (\n <TableRow key={theKey}>\n {row.map((item, childIndex) => {\n const theColKey = `data-${index}-${childIndex}`;\n return (\n <TableCell key={theColKey} className={classes.tableCell}>\n {item}\n </TableCell>\n );\n })}\n {showDeleteButton && (\n <TableCell>\n <button\n type='button'\n className='psdk-utility-button'\n id='delete-button'\n aria-label='Delete Cell'\n onClick={() => deleteRecordFromInlineEditable(index)}\n >\n <img className='psdk-utility-card-action-svg-icon' src={menuIconOverride$} />\n </button>\n </TableCell>\n )}\n </TableRow>\n );\n })}\n {(readOnlyMode || allowEditingInModal) &&\n rowData &&\n rowData.length > 0 &&\n stableSort(rowData, getComparator(order, orderBy))\n .slice(0)\n .map((row, index) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n <TableRow key={index}>\n {displayedColumns.map(colKey => {\n return (\n <TableCell key={colKey} className={classes.tableCell}>\n {showDeleteButton && colKey === 'DeleteIcon' ? (\n <div>\n <MoreIcon\n id='table-edit-menu-icon'\n className={classes.moreIcon}\n onClick={event => {\n editMenuClick(event, index);\n }}\n />\n <Menu id='table-edit-menu' anchorEl={editAnchorEl} keepMounted open={Boolean(editAnchorEl)} onClose={_menuClose}>\n <MenuItem onClick={() => editRecord()}>Edit</MenuItem>\n <MenuItem onClick={() => deleteRecord()}>Delete</MenuItem>\n </Menu>\n </div>\n ) : typeof row[colKey] === 'boolean' && !row[colKey] ? (\n 'False'\n ) : typeof row[colKey] === 'boolean' && row[colKey] ? (\n 'True'\n ) : (\n row[colKey]\n )}\n </TableCell>\n );\n })}\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n {readOnlyMode && rowData && rowData.length === 0 && (\n <div className='no-records' id='no-records'>\n No records found.\n </div>\n )}\n {editableMode && referenceList && referenceList.length === 0 && (\n <div className='no-records' id='no-records'>\n No records found.\n </div>\n )}\n </TableContainer>\n {showAddRowButton && (\n <div style={{ fontSize: '1rem' }}>\n <Link style={{ cursor: 'pointer' }} onClick={addRecord}>\n + Add\n </Link>\n </div>\n )}\n <Menu id='simple-menu' anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={_menuClose}>\n <MenuItem onClick={_filterMenu}>\n <FilterListIcon /> Filter\n </MenuItem>\n <MenuItem onClick={_groupMenu}>\n <SubjectIcon /> Group\n </MenuItem>\n </Menu>\n <Dialog open={open} onClose={_closeDialog} aria-labelledby='form-dialog-title'>\n <DialogTitle id='form-dialog-title'>Filter: {filterBy}</DialogTitle>\n <DialogContent>\n {containsDateOrTime ? (\n <>\n <Select value={displayDialogDateFilter} onChange={_dialogDateFilter} fullWidth>\n <MenuItem value='notequal'>is not equal to</MenuItem>\n <MenuItem value='equal'>is equal to</MenuItem>\n <MenuItem value='after'>after</MenuItem>\n <MenuItem value='before'>before</MenuItem>\n <MenuItem value='null'>is null</MenuItem>\n <MenuItem value='notnull'>is not null</MenuItem>\n </Select>\n {filterType === 'Date' && (\n <TextField\n autoFocus\n margin='dense'\n id='containsFilter'\n type='date'\n fullWidth\n value={displayDialogDateValue}\n onChange={_dialogDateValue}\n />\n )}\n {filterType === 'DateTime' && (\n <TextField\n autoFocus\n margin='dense'\n id='containsFilter'\n type='datetime-local'\n fullWidth\n value={displayDialogDateValue}\n onChange={_dialogDateValue}\n />\n )}\n {filterType === 'Time' && (\n <TextField\n autoFocus\n margin='dense'\n id='containsFilter'\n type='time'\n fullWidth\n value={displayDialogDateValue}\n onChange={_dialogDateValue}\n />\n )}\n </>\n ) : (\n <>\n <Select id='filter' fullWidth onChange={_dialogContainsFilter} value={displayDialogContainsFilter}>\n <MenuItem value='contains'>Contains</MenuItem>\n <MenuItem value='equals'>Equals</MenuItem>\n <MenuItem value='startswith'>Starts with</MenuItem>\n </Select>\n <TextField\n autoFocus\n margin='dense'\n id='containsFilter'\n type='text'\n fullWidth\n value={displayDialogContainsValue}\n onChange={_dialogContainsValue}\n />\n </>\n )}\n </DialogContent>\n <DialogActions>\n <Button onClick={_closeDialog} color='secondary'>\n Cancel\n </Button>\n <Button onClick={_submitFilter} color='primary'>\n Submit\n </Button>\n </DialogActions>\n </Dialog>\n </>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuickCreate.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/QuickCreate/QuickCreate.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"QuickCreate.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/QuickCreate/QuickCreate.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,UAAU,gBAAiB,SAAQ,UAAU;IAE3C,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,GAAG,EAAE,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,gBAAgB,eA4E1D"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
2
3
|
import { Utils } from '../../helpers/utils';
|
|
3
4
|
import { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';
|
|
4
5
|
export default function QuickCreate(props) {
|
|
@@ -15,32 +16,60 @@ export default function QuickCreate(props) {
|
|
|
15
16
|
console.log('Error in case creation: ', error?.message);
|
|
16
17
|
});
|
|
17
18
|
};
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
let label = '';
|
|
19
|
+
const [quickCreatecases, setCases] = useState([]);
|
|
20
|
+
/* If the classFilter is empty and has no entries - we will default to the default set of case types
|
|
21
|
+
It will usually come from the envInfo but for Launchpad, this is not populated - instead get the list of cases from the store */
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
const cases = [];
|
|
24
|
+
const defaultCases = [];
|
|
25
|
+
const envInfo = PCore.getEnvironmentInfo();
|
|
26
|
+
if (envInfo?.environmentInfoObject?.pyCaseTypeList) {
|
|
27
27
|
envInfo.environmentInfoObject.pyCaseTypeList.forEach(casetype => {
|
|
28
|
-
if (casetype.
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
if (casetype.pyWorkTypeName && casetype.pyWorkTypeImplementationClassName) {
|
|
29
|
+
defaultCases.push({
|
|
30
|
+
classname: casetype.pyWorkTypeImplementationClassName,
|
|
31
|
+
onClick: () => {
|
|
32
|
+
createCase(casetype.pyWorkTypeImplementationClassName);
|
|
33
|
+
},
|
|
34
|
+
...(showCaseIcons && { icon: Utils.getImageSrc(casetype?.pxIcon, Utils.getSDKStaticConentUrl()) }),
|
|
35
|
+
label: casetype.pyWorkTypeName
|
|
36
|
+
});
|
|
31
37
|
}
|
|
32
38
|
});
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
const pConnectInAppContext = PCore.createPConnect({
|
|
42
|
+
options: { context: PCore.getConstants().APP.APP }
|
|
43
|
+
}).getPConnect();
|
|
44
|
+
const pyPortalInAppContext = pConnectInAppContext.getValue('pyPortal');
|
|
45
|
+
pyPortalInAppContext?.pyCaseTypesAvailableToCreate?.forEach(casetype => {
|
|
46
|
+
if (casetype.pyClassName && casetype.pyLabel) {
|
|
47
|
+
defaultCases.push({
|
|
48
|
+
classname: casetype.pyClassName,
|
|
49
|
+
onClick: () => {
|
|
50
|
+
createCase(casetype.pyClassName);
|
|
51
|
+
},
|
|
52
|
+
...(showCaseIcons && { icon: Utils.getImageSrc(casetype?.pxIcon, Utils.getSDKStaticConentUrl()) }),
|
|
53
|
+
label: casetype.pyLabel
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/* If classFilter is not empty - filter from the list of defaultCases */
|
|
59
|
+
if (classFilter?.length > 0) {
|
|
60
|
+
classFilter.forEach(item => {
|
|
61
|
+
defaultCases.forEach(casetype => {
|
|
62
|
+
if (casetype.classname === item) {
|
|
63
|
+
cases.push(casetype);
|
|
64
|
+
}
|
|
40
65
|
});
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
66
|
+
});
|
|
67
|
+
setCases(cases);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
setCases(defaultCases);
|
|
71
|
+
}
|
|
72
|
+
}, []);
|
|
73
|
+
return (_jsx("div", { children: _jsx(WssQuickCreate, { heading: heading, actions: quickCreatecases }) }));
|
|
45
74
|
}
|
|
46
75
|
//# sourceMappingURL=QuickCreate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuickCreate.js","sourceRoot":"","sources":["../../../../src/components/widget/QuickCreate/QuickCreate.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAUhF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAuB;IACzD,8EAA8E;IAC9E,MAAM,cAAc,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAE7D,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IACnE,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,SAAS,CAAC,EAAE;QAC7B,KAAK;aACF,aAAa,EAAE;aACf,UAAU,CAAC,SAAS,EAAE,EAAS,CAAC;aAChC,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,KAAK,GAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"QuickCreate.js","sourceRoot":"","sources":["../../../../src/components/widget/QuickCreate/QuickCreate.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\nimport { Utils } from '../../helpers/utils';\nimport { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';\nimport { PConnProps } from '../../../types/PConnProps';\n\ninterface QuickCreateProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n heading: string;\n showCaseIcons: boolean;\n classFilter: any[];\n}\n\nexport default function QuickCreate(props: QuickCreateProps) {\n // Get emitted components from map (so we can get any override that may exist)\n const WssQuickCreate = getComponentFromMap('WssQuickCreate');\n\n const { getPConnect, heading, showCaseIcons, classFilter } = props;\n const pConn = getPConnect();\n const createCase = className => {\n pConn\n .getActionsApi()\n .createWork(className, {} as any)\n .catch(error => {\n // eslint-disable-next-line no-console\n console.log('Error in case creation: ', error?.message);\n });\n };\n\n const [quickCreatecases, setCases] = useState([]);\n\n /* If the classFilter is empty and has no entries - we will default to the default set of case types\n It will usually come from the envInfo but for Launchpad, this is not populated - instead get the list of cases from the store */\n useEffect(() => {\n const cases: any = [];\n const defaultCases: any = [];\n const envInfo = PCore.getEnvironmentInfo();\n if (envInfo?.environmentInfoObject?.pyCaseTypeList) {\n envInfo.environmentInfoObject.pyCaseTypeList.forEach(casetype => {\n if (casetype.pyWorkTypeName && casetype.pyWorkTypeImplementationClassName) {\n defaultCases.push({\n classname: casetype.pyWorkTypeImplementationClassName,\n onClick: () => {\n createCase(casetype.pyWorkTypeImplementationClassName);\n },\n ...(showCaseIcons && { icon: Utils.getImageSrc(casetype?.pxIcon, Utils.getSDKStaticConentUrl()) }),\n label: casetype.pyWorkTypeName\n });\n }\n });\n } else {\n const pConnectInAppContext = PCore.createPConnect({\n options: { context: PCore.getConstants().APP.APP }\n }).getPConnect();\n const pyPortalInAppContext = pConnectInAppContext.getValue('pyPortal') as any;\n pyPortalInAppContext?.pyCaseTypesAvailableToCreate?.forEach(casetype => {\n if (casetype.pyClassName && casetype.pyLabel) {\n defaultCases.push({\n classname: casetype.pyClassName,\n onClick: () => {\n createCase(casetype.pyClassName);\n },\n ...(showCaseIcons && { icon: Utils.getImageSrc(casetype?.pxIcon, Utils.getSDKStaticConentUrl()) }),\n label: casetype.pyLabel\n });\n }\n });\n }\n\n /* If classFilter is not empty - filter from the list of defaultCases */\n if (classFilter?.length > 0) {\n classFilter.forEach(item => {\n defaultCases.forEach(casetype => {\n if (casetype.classname === item) {\n cases.push(casetype);\n }\n });\n });\n setCases(cases);\n } else {\n setCases(defaultCases);\n }\n }, []);\n\n return (\n <div>\n <WssQuickCreate heading={heading} actions={quickCreatecases} />\n </div>\n );\n}\n"]}
|
package/package.json
CHANGED