@pega/react-sdk-components 0.23.4 → 0.23.5
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/forms/AutoComplete/AutoComplete.d.ts.map +1 -1
- package/lib/components/forms/AutoComplete/AutoComplete.js +14 -4
- package/lib/components/forms/AutoComplete/AutoComplete.js.map +1 -1
- package/lib/components/infra/Attachment/Attachment.d.ts.map +1 -1
- package/lib/components/infra/Attachment/Attachment.js +2 -1
- package/lib/components/infra/Attachment/Attachment.js.map +1 -1
- package/lib/components/infra/Containers/FlowContainer/FlowContainer.d.ts.map +1 -1
- package/lib/components/infra/Containers/FlowContainer/FlowContainer.js +3 -7
- package/lib/components/infra/Containers/FlowContainer/FlowContainer.js.map +1 -1
- package/lib/components/infra/ToDo/ToDo.d.ts +1 -1
- package/lib/components/infra/ToDo/ToDo.d.ts.map +1 -1
- package/lib/components/infra/ToDo/ToDo.js +80 -110
- package/lib/components/infra/ToDo/ToDo.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoComplete.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/AutoComplete/AutoComplete.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"AutoComplete.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/AutoComplete/AutoComplete.tsx"],"names":[],"mappings":";AAoCA,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,KAAA,eAkJzC"}
|
|
@@ -4,6 +4,7 @@ import Autocomplete from '@material-ui/lab/Autocomplete';
|
|
|
4
4
|
import Utils from '../../helpers/utils';
|
|
5
5
|
import TextInput from '../TextInput';
|
|
6
6
|
import isDeepEqual from 'fast-deep-equal/react';
|
|
7
|
+
import { getDataPage } from '../../helpers/data_page';
|
|
7
8
|
const preProcessColumns = columnList => {
|
|
8
9
|
return columnList.map(col => {
|
|
9
10
|
const tempColObj = { ...col };
|
|
@@ -28,6 +29,8 @@ const getDisplayFieldsMetaData = columnList => {
|
|
|
28
29
|
};
|
|
29
30
|
export default function AutoComplete(props) {
|
|
30
31
|
const { getPConnect, label, required, placeholder, value = '', validatemessage, onChange, readOnly, testId, displayMode, deferDatasource, datasourceMetadata, status, helperText } = props;
|
|
32
|
+
let parameters = datasourceMetadata?.datasource?.parameters;
|
|
33
|
+
const context = getPConnect().getContextName();
|
|
31
34
|
let { listType, datasource = [], columns = [] } = props;
|
|
32
35
|
const [inputValue, setInputValue] = useState('');
|
|
33
36
|
const [options, setOptions] = useState([]);
|
|
@@ -38,11 +41,20 @@ export default function AutoComplete(props) {
|
|
|
38
41
|
// inbound datasource is different, so update theDatasource (to trigger useEffect)
|
|
39
42
|
setDatasource(datasource);
|
|
40
43
|
}
|
|
44
|
+
const flattenParameters = (params = {}) => {
|
|
45
|
+
const flatParams = {};
|
|
46
|
+
Object.keys(params).forEach((key) => {
|
|
47
|
+
const { name, value: theVal } = params[key];
|
|
48
|
+
flatParams[name] = theVal;
|
|
49
|
+
});
|
|
50
|
+
return flatParams;
|
|
51
|
+
};
|
|
41
52
|
// convert associated to datapage listtype and transform props
|
|
42
53
|
// Process deferDatasource when datapage name is present. WHhen tableType is promptList / localList
|
|
43
54
|
if (deferDatasource && datasourceMetadata?.datasource?.name) {
|
|
44
55
|
listType = 'datapage';
|
|
45
56
|
datasource = datasourceMetadata.datasource.name;
|
|
57
|
+
parameters = flattenParameters(parameters);
|
|
46
58
|
const displayProp = datasourceMetadata.datasource.propertyForDisplayText.startsWith('@P')
|
|
47
59
|
? datasourceMetadata.datasource.propertyForDisplayText.substring(3)
|
|
48
60
|
: datasourceMetadata.datasource.propertyForDisplayText;
|
|
@@ -71,15 +83,13 @@ export default function AutoComplete(props) {
|
|
|
71
83
|
}, [theDatasource]);
|
|
72
84
|
useEffect(() => {
|
|
73
85
|
if (!displayMode && listType !== 'associated') {
|
|
74
|
-
|
|
75
|
-
workListData.then((workListJSON) => {
|
|
86
|
+
getDataPage(datasource, parameters, context).then((results) => {
|
|
76
87
|
const optionsData = [];
|
|
77
|
-
const results = workListJSON['data'].data;
|
|
78
88
|
const displayColumn = getDisplayFieldsMetaData(columns);
|
|
79
89
|
results?.forEach(element => {
|
|
80
90
|
const val = element[displayColumn.primary]?.toString();
|
|
81
91
|
const obj = {
|
|
82
|
-
key: element.
|
|
92
|
+
key: element[displayColumn.key] || element.pyGUID,
|
|
83
93
|
value: val
|
|
84
94
|
};
|
|
85
95
|
optionsData.push(obj);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoComplete.js","sourceRoot":"","sources":["../../../../src/components/forms/AutoComplete/AutoComplete.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { TextField } from '@material-ui/core';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport Utils from '../../helpers/utils';\nimport TextInput from '../TextInput';\nimport isDeepEqual from 'fast-deep-equal/react';\n\ndeclare const PCore;\n\ninterface IOption {\n key: string;\n value: string;\n}\n\nconst preProcessColumns = columnList => {\n return columnList.map(col => {\n const tempColObj = { ...col };\n tempColObj.value = col.value && col.value.startsWith('.') ? col.value.substring(1) : col.value;\n return tempColObj;\n });\n};\n\nconst getDisplayFieldsMetaData = columnList => {\n const displayColumns = columnList.filter(col => col.display === 'true');\n const metaDataObj: any = { key: '', primary: '', secondary: [] };\n const keyCol = columnList.filter(col => col.key === 'true');\n metaDataObj.key = keyCol.length > 0 ? keyCol[0].value : 'auto';\n for (let index = 0; index < displayColumns.length; index += 1) {\n if (displayColumns[index].primary === 'true') {\n metaDataObj.primary = displayColumns[index].value;\n } else {\n metaDataObj.secondary.push(displayColumns[index].value);\n }\n }\n return metaDataObj;\n};\n\nexport default function AutoComplete(props) {\n const {\n getPConnect,\n label,\n required,\n placeholder,\n value = '',\n validatemessage,\n onChange,\n readOnly,\n testId,\n displayMode,\n deferDatasource,\n datasourceMetadata,\n status,\n helperText\n } = props;\n let { listType, datasource = [], columns = [] } = props;\n const [inputValue, setInputValue] = useState('');\n const [options, setOptions] = useState<Array<IOption>>([]);\n const [theDatasource, setDatasource] = useState(null);\n let selectedValue: any = '';\n const helperTextToDisplay = validatemessage || helperText;\n\n if (!isDeepEqual(datasource, theDatasource)) {\n // inbound datasource is different, so update theDatasource (to trigger useEffect)\n setDatasource(datasource);\n }\n\n // convert associated to datapage listtype and transform props\n // Process deferDatasource when datapage name is present. WHhen tableType is promptList / localList\n if (deferDatasource && datasourceMetadata?.datasource?.name) {\n listType = 'datapage';\n datasource = datasourceMetadata.datasource.name;\n const displayProp = datasourceMetadata.datasource.propertyForDisplayText.startsWith('@P')\n ? datasourceMetadata.datasource.propertyForDisplayText.substring(3)\n : datasourceMetadata.datasource.propertyForDisplayText;\n const valueProp = datasourceMetadata.datasource.propertyForValue.startsWith('@P')\n ? datasourceMetadata.datasource.propertyForValue.substring(3)\n : datasourceMetadata.datasource.propertyForValue;\n columns = [\n {\n key: 'true',\n setProperty: 'Associated property',\n value: valueProp\n },\n {\n display: 'true',\n primary: 'true',\n useForSearch: true,\n value: displayProp\n }\n ];\n }\n\n columns = preProcessColumns(columns);\n\n useEffect(() => {\n if (listType === 'associated') {\n setOptions(Utils.getOptionList(props, getPConnect().getDataObject()));\n }\n }, [theDatasource]);\n\n useEffect(() => {\n if (!displayMode && listType !== 'associated') {\n const workListData = PCore.getDataApiUtils().getData(datasource, {});\n\n workListData.then((workListJSON: Object) => {\n const optionsData: Array<IOption> = [];\n const results = workListJSON['data'].data;\n const displayColumn = getDisplayFieldsMetaData(columns);\n results?.forEach(element => {\n const val = element[displayColumn.primary]?.toString();\n const obj = {\n key: element.pyGUID || val,\n value: val\n };\n optionsData.push(obj);\n });\n setOptions(optionsData);\n });\n }\n }, []);\n\n if (value) {\n const index = options?.findIndex(element => element.key === value);\n if (index > -1) {\n selectedValue = options[index].value;\n } else {\n selectedValue = value;\n }\n }\n\n const handleChange = (event: object, newValue) => {\n onChange({ value: newValue ? newValue.key : '' });\n };\n\n const handleInputValue = (event, newInputValue) => {\n setInputValue(newInputValue);\n };\n\n if (readOnly) {\n const theValAsString = options?.find(opt => opt.key === value)?.value;\n return <TextInput {...props} value={theValAsString} />;\n }\n // Need to use both getOptionLabel and getOptionSelected to map our\n // key/value structure to what Autocomplete expects\n return (\n <Autocomplete\n options={options}\n getOptionLabel={(option: IOption) => {\n return option.value ? option.value : '';\n }}\n getOptionSelected={(option: any) => {\n return option.value ? option.value : '';\n }}\n fullWidth\n onChange={handleChange}\n value={selectedValue}\n inputValue={inputValue || selectedValue}\n onInputChange={handleInputValue}\n renderInput={params => (\n <TextField\n {...params}\n fullWidth\n variant='outlined'\n helperText={helperTextToDisplay}\n placeholder={placeholder}\n size='small'\n required={required}\n error={status === 'error'}\n label={label}\n data-test-id={testId}\n />\n )}\n />\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AutoComplete.js","sourceRoot":"","sources":["../../../../src/components/forms/AutoComplete/AutoComplete.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { TextField } from '@material-ui/core';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport Utils from '../../helpers/utils';\nimport TextInput from '../TextInput';\nimport isDeepEqual from 'fast-deep-equal/react';\nimport { getDataPage } from '../../helpers/data_page';\n\ninterface IOption {\n key: string;\n value: string;\n}\n\nconst preProcessColumns = columnList => {\n return columnList.map(col => {\n const tempColObj = { ...col };\n tempColObj.value = col.value && col.value.startsWith('.') ? col.value.substring(1) : col.value;\n return tempColObj;\n });\n};\n\nconst getDisplayFieldsMetaData = columnList => {\n const displayColumns = columnList.filter(col => col.display === 'true');\n const metaDataObj: any = { key: '', primary: '', secondary: [] };\n const keyCol = columnList.filter(col => col.key === 'true');\n metaDataObj.key = keyCol.length > 0 ? keyCol[0].value : 'auto';\n for (let index = 0; index < displayColumns.length; index += 1) {\n if (displayColumns[index].primary === 'true') {\n metaDataObj.primary = displayColumns[index].value;\n } else {\n metaDataObj.secondary.push(displayColumns[index].value);\n }\n }\n return metaDataObj;\n};\n\nexport default function AutoComplete(props) {\n const {\n getPConnect,\n label,\n required,\n placeholder,\n value = '',\n validatemessage,\n onChange,\n readOnly,\n testId,\n displayMode,\n deferDatasource,\n datasourceMetadata,\n status,\n helperText\n } = props;\n let parameters = datasourceMetadata?.datasource?.parameters;\n const context = getPConnect().getContextName();\n let { listType, datasource = [], columns = [] } = props;\n const [inputValue, setInputValue] = useState('');\n const [options, setOptions] = useState<Array<IOption>>([]);\n const [theDatasource, setDatasource] = useState(null);\n let selectedValue: any = '';\n const helperTextToDisplay = validatemessage || helperText;\n\n if (!isDeepEqual(datasource, theDatasource)) {\n // inbound datasource is different, so update theDatasource (to trigger useEffect)\n setDatasource(datasource);\n }\n\n const flattenParameters = (params = {}) => {\n const flatParams = {};\n Object.keys(params).forEach((key) => {\n const { name, value: theVal } = params[key];\n flatParams[name] = theVal;\n });\n\n return flatParams;\n };\n\n // convert associated to datapage listtype and transform props\n // Process deferDatasource when datapage name is present. WHhen tableType is promptList / localList\n if (deferDatasource && datasourceMetadata?.datasource?.name) {\n listType = 'datapage';\n datasource = datasourceMetadata.datasource.name;\n parameters = flattenParameters(parameters);\n const displayProp = datasourceMetadata.datasource.propertyForDisplayText.startsWith('@P')\n ? datasourceMetadata.datasource.propertyForDisplayText.substring(3)\n : datasourceMetadata.datasource.propertyForDisplayText;\n const valueProp = datasourceMetadata.datasource.propertyForValue.startsWith('@P')\n ? datasourceMetadata.datasource.propertyForValue.substring(3)\n : datasourceMetadata.datasource.propertyForValue;\n columns = [\n {\n key: 'true',\n setProperty: 'Associated property',\n value: valueProp\n },\n {\n display: 'true',\n primary: 'true',\n useForSearch: true,\n value: displayProp\n }\n ];\n }\n columns = preProcessColumns(columns);\n\n useEffect(() => {\n if (listType === 'associated') {\n setOptions(Utils.getOptionList(props, getPConnect().getDataObject()));\n }\n }, [theDatasource]);\n\n useEffect(() => {\n if (!displayMode && listType !== 'associated') {\n getDataPage(datasource, parameters, context).then((results: any) => {\n const optionsData: Array<any> = [];\n const displayColumn = getDisplayFieldsMetaData(columns);\n results?.forEach(element => {\n const val = element[displayColumn.primary]?.toString();\n const obj = {\n key: element[displayColumn.key] || element.pyGUID,\n value: val\n };\n optionsData.push(obj);\n });\n setOptions(optionsData);\n });\n }\n }, []);\n\n if (value) {\n const index = options?.findIndex(element => element.key === value);\n if (index > -1) {\n selectedValue = options[index].value;\n } else {\n selectedValue = value;\n }\n }\n\n const handleChange = (event: object, newValue) => {\n onChange({ value: newValue ? newValue.key : '' });\n };\n\n const handleInputValue = (event, newInputValue) => {\n setInputValue(newInputValue);\n };\n\n if (readOnly) {\n const theValAsString = options?.find(opt => opt.key === value)?.value;\n return <TextInput {...props} value={theValAsString} />;\n }\n // Need to use both getOptionLabel and getOptionSelected to map our\n // key/value structure to what Autocomplete expects\n return (\n <Autocomplete\n options={options}\n getOptionLabel={(option: IOption) => {\n return option.value ? option.value : '';\n }}\n getOptionSelected={(option: any) => {\n return option.value ? option.value : '';\n }}\n fullWidth\n onChange={handleChange}\n value={selectedValue}\n inputValue={inputValue || selectedValue}\n onInputChange={handleInputValue}\n renderInput={params => (\n <TextField\n {...params}\n fullWidth\n variant='outlined'\n helperText={helperTextToDisplay}\n placeholder={placeholder}\n size='small'\n required={required}\n error={status === 'error'}\n label={label}\n data-test-id={testId}\n />\n )}\n />\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Attachment.d.ts","sourceRoot":"","sources":["../../../../src/components/infra/Attachment/Attachment.tsx"],"names":[],"mappings":";AAKA,OAAO,kBAAkB,CAAC;AAW1B,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,KAAA,
|
|
1
|
+
{"version":3,"file":"Attachment.d.ts","sourceRoot":"","sources":["../../../../src/components/infra/Attachment/Attachment.tsx"],"names":[],"mappings":";AAKA,OAAO,kBAAkB,CAAC;AAW1B,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,KAAA,eAmYvC"}
|
|
@@ -159,7 +159,8 @@ export default function Attachment(props) {
|
|
|
159
159
|
handle: fileRes.ID,
|
|
160
160
|
ID: fileRes.clientFileID
|
|
161
161
|
};
|
|
162
|
-
|
|
162
|
+
const currentAttachmentList = getCurrentAttachmentsList(pConn.getContextName()).filter((f) => f.label !== valueRef);
|
|
163
|
+
PCore.getStateUtils().updateState(pConn.getContextName(), 'attachmentsList', [...currentAttachmentList, reqObj], {
|
|
163
164
|
pageReference: 'context_data',
|
|
164
165
|
isArrayDeepMerge: false
|
|
165
166
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Attachment.js","sourceRoot":"","sources":["../../../../src/components/infra/Attachment/Attachment.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable react/jsx-boolean-value */\n\nimport { Button } from '@material-ui/core';\nimport React, { useState, useEffect } from 'react';\nimport { buildFilePropsFromResponse, getIconFromFileType, validateMaxSize, getIconForAttachment } from './AttachmentUtils';\nimport './Attachment.css';\nimport SummaryList from '../../widgets/SummaryList'\nimport { CircularProgress } from \"@material-ui/core\";\nimport download from \"downloadjs\";\n\ndeclare const PCore: any;\n\nfunction getCurrentAttachmentsList(context) {\n return PCore.getStoreValue('.attachmentsList', 'context_data', context) || [];\n}\n\nexport default function Attachment(props) {\n const {value, getPConnect, label} = props;\n /* this is a temporary fix because required is supposed to be passed as a boolean and NOT as a string */\n let { required, disabled } = props;\n [required, disabled] = [required, disabled].map(\n prop => prop === true || (typeof prop === 'string' && prop === 'true')\n );\n let arFileList$: Array<any> = [];\n const pConn = getPConnect();\n\n let fileTemp: any = {};\n\n let categoryName = '';\n if (value && value.pyCategoryName) {\n categoryName = value.pyCategoryName;\n }\n\n let valueRef = pConn.getStateProps().value;\n valueRef = valueRef.indexOf('.') === 0 ? valueRef.substring(1) : valueRef;\n const [file, setFile] = useState(fileTemp);\n\n const fileDownload = (data, fileName, ext) => {\n const fileData = ext ? `${fileName}.${ext}` : fileName;\n download(atob(data), fileData);\n };\n\n function _downloadFileFromList(fileObj: any) {\n PCore.getAttachmentUtils()\n .downloadAttachment(fileObj.pzInsKey, pConn.getContextName())\n .then((content) => {\n const extension = fileObj.pyAttachName.split(\".\").pop();\n fileDownload(content.data, fileObj.pyFileName, extension);\n })\n .catch(() => {});\n }\n\n function setNewFiles(arFiles) {\n let index = 0;\n for (const item of arFiles) {\n if (!validateMaxSize(item, 5)) {\n item.error = true;\n item.meta = \"File is too big. Max allowed size is 5MB.\";\n }\n item.mimeType = item.type;\n item.icon = getIconFromFileType(item.type);\n item.ID = `${new Date().getTime()}I${index}`;\n index+=1;\n }\n return arFiles;\n }\n\n function getFiles(arFiles: Array<any>) {\n return setNewFiles(arFiles);\n }\n\n function getNewListUtilityItemProps({\n att,\n cancelFile,\n downloadFile,\n deleteFile,\n removeFile\n }) {\n let actions;\n if (att.progress && att.progress !== 100) {\n actions = [\n {\n id: `Cancel-${att.ID}`,\n text: \"Cancel\",\n icon: \"times\",\n onClick: cancelFile\n }\n ];\n } else if (att.links) {\n const isFile = att.type === \"FILE\";\n const ID = att.ID.replace(/\\s/gi, \"\");\n const actionsMap = new Map([\n [\n \"download\",\n {\n id: `download-${ID}`,\n text: isFile ? \"Download\" : \"Open\",\n icon: isFile ? \"download\" : \"open\",\n onClick: downloadFile\n }\n ],\n [\n \"delete\",\n {\n id: `Delete-${ID}`,\n text: \"Delete\",\n icon: \"trash\",\n onClick: deleteFile\n }\n ]\n ]);\n actions = [];\n actionsMap.forEach((action, actionKey) => {\n if (att.links[actionKey]) {\n actions.push(action);\n }\n });\n } else if (att.error) {\n actions = [\n {\n id: `Remove-${att.ID}`,\n text: \"Remove\",\n icon: \"trash\",\n onClick: removeFile\n }\n ];\n }\n return {\n id: att.ID,\n visual: {\n icon: getIconForAttachment(att),\n progress: att.progress === 100 ? undefined: att.progress,\n },\n primary: {\n type: att.type,\n name: att.name,\n icon: \"trash\",\n click: removeFile,\n },\n secondary: {\n text: att.meta\n },\n actions\n };\n };\n\n const onFileAdded = (event) => {\n const addedFile = event.target.files[0];\n setFile({\n props: {\n name: addedFile.name,\n icon: getIconFromFileType(addedFile.type),\n },\n inProgress: true\n });\n const arFiles$ = getFiles(event.target.files);\n const myFiles: any = Array.from(arFiles$);\n\n const onUploadProgress = () => {};\n\n const errorHandler = () => {};\n\n PCore.getAttachmentUtils()\n .uploadAttachment(\n myFiles[0],\n onUploadProgress,\n errorHandler,\n pConn.getContextName()\n )\n .then((fileRes) => {\n let reqObj;\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n reqObj = {\n type: \"File\",\n attachmentFieldName: valueRef,\n category: categoryName,\n ID: fileRes.ID\n };\n pConn.attachmentsInfo = reqObj;\n } else {\n reqObj = {\n type: \"File\",\n label: valueRef,\n category: categoryName,\n handle: fileRes.ID,\n ID: fileRes.clientFileID\n };\n PCore.getStateUtils().updateState(\n pConn.getContextName(),\n 'attachmentsList',\n [reqObj],\n {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n }\n );\n }\n const fieldName = pConn.getStateProps().value;\n const context = pConn.getContextName();\n\n PCore.getMessageManager().clearMessages({\n type: PCore.getConstants().MESSAGES.MESSAGES_TYPE_ERROR,\n property: fieldName,\n pageReference: pConn.getPageReference(),\n context\n });\n myFiles[0].meta = \"Uploaded Successfully\";\n\n arFileList$ = myFiles.map((att) => {\n return getNewListUtilityItemProps({\n att,\n downloadFile: null,\n cancelFile: null,\n deleteFile: null,\n removeFile: null\n });\n });\n setFile((current) => {\n return {\n ...current,\n props: {\n ...current.props,\n arFileList$\n },\n inProgress: false,\n attachmentUploaded: true,\n showMenuIcon: false\n };\n });\n })\n\n .catch(() => {\n // just catching the rethrown error at uploadAttachment\n // to handle Unhandled rejections\n });\n };\n\n function _removeFileFromList(item: any, list) {\n const arFileList = file.props ? file.props.arFileList$ : list;\n const fileIndex = arFileList.findIndex(element => element?.id === item?.id);\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n if (value) {\n pConn.attachmentsInfo = {\n type: \"File\",\n attachmentFieldName: valueRef,\n delete: true\n };\n }\n if (fileIndex > -1) { arFileList.splice(parseInt(fileIndex, 10), 1) };\n setFile((current) => {\n return {\n ...current,\n props: {\n ...current.props,\n arFileList\n },\n };\n });\n } else {\n const attachmentsList = [];\n const currentAttachmentList = getCurrentAttachmentsList(pConn.getContextName()).filter(\n (f) => f.label !== valueRef\n );\n if (value && value.pxResults && +value.pyCount > 0) {\n const deletedFile = {\n type: \"File\",\n label: valueRef,\n delete: true,\n responseProps: {\n pzInsKey: arFileList[fileIndex].id\n },\n };\n // updating the redux store to help form-handler in passing the data to delete the file from server\n PCore.getStateUtils().updateState(\n pConn.getContextName(),\n 'attachmentsList',\n [...currentAttachmentList, deletedFile],\n {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n }\n );\n } else {\n PCore.getStateUtils().updateState(\n pConn.getContextName(),\n 'attachmentsList',\n [...currentAttachmentList, ...attachmentsList],\n {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n }\n );\n }\n if (fileIndex > -1) { arFileList.splice(parseInt(fileIndex, 10), 1) };\n setFile((current) => {\n return {\n ...current,\n props: {\n ...current.props,\n arFileList\n },\n };\n });\n }\n }\n\n useEffect(() => {\n if (value && value.pxResults && +value.pyCount > 0) {\n fileTemp = buildFilePropsFromResponse(value.pxResults[0]);\n\n if (fileTemp.responseProps) {\n if (!pConn.attachmentsInfo) {\n pConn.attachmentsInfo = {\n type: \"File\",\n attachmentFieldName: valueRef,\n category: categoryName\n };\n }\n\n if (fileTemp.responseProps.pzInsKey && !fileTemp.responseProps.pzInsKey.includes(\"temp\")) {\n\n fileTemp.props.type = fileTemp.responseProps.pyMimeFileExtension;\n fileTemp.props.mimeType = fileTemp.responseProps.pyMimeFileExtension;\n fileTemp.props.ID = fileTemp.responseProps.pzInsKey;\n // create the actions for the \"more\" menu on the attachment\n const arMenuList: Array<any> = [];\n let oMenu: any = {};\n\n oMenu.icon = \"download\";\n oMenu.text = \"Download\";\n oMenu.onClick = () => { _downloadFileFromList(value.pxResults[0])}\n arMenuList.push(oMenu);\n oMenu = {};\n oMenu.icon = \"trash\";\n oMenu.text = \"Delete\";\n oMenu.onClick = () => { _removeFileFromList(arFileList$[0], arFileList$)}\n arMenuList.push(oMenu);\n\n arFileList$.push(getNewListUtilityItemProps({\n att: fileTemp.props,\n downloadFile: null,\n cancelFile: null,\n deleteFile: null,\n removeFile: null\n }));\n arFileList$[0].actions = arMenuList;\n\n setFile((current) => {\n return {\n ...current,\n props: {\n ...current.props,\n arFileList$\n },\n inProgress: false,\n attachmentUploaded: true,\n showMenuIcon: true\n };\n });\n }\n }\n }\n }, [\"\"]);\n\n let content = (\n <div className='file-div'>\n {file.inProgress && (<div className=\"progress-div\"><CircularProgress /></div>)}\n <div hidden={true} id=\"attachment-ID\">{valueRef}</div>\n <label htmlFor={valueRef}>\n <input\n style={{ display: 'none' }}\n id={valueRef}\n name='upload-photo'\n type='file'\n required={required}\n onChange={onFileAdded}\n />\n <Button variant='outlined' color='primary' component=\"span\">\n Upload file\n </Button>\n </label>\n </div>\n );\n\n if (file && file.attachmentUploaded && file.props.arFileList$ && file.props.arFileList$.length > 0) {\n content = (\n <div>\n {file.showMenuIcon && (<SummaryList arItems$={file.props.arFileList$} menuIconOverrideAction$={_removeFileFromList}></SummaryList>)}\n {!file.showMenuIcon && (<SummaryList menuIconOverride$='trash' arItems$={file.props.arFileList$} menuIconOverrideAction$={_removeFileFromList}></SummaryList>)}\n </div>\n\n );\n }\n\n return (\n <div className='file-upload-container'>\n <span className='label'>{label}</span>\n <section>{content}</section>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Attachment.js","sourceRoot":"","sources":["../../../../src/components/infra/Attachment/Attachment.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable react/jsx-boolean-value */\n\nimport { Button } from '@material-ui/core';\nimport React, { useState, useEffect } from 'react';\nimport { buildFilePropsFromResponse, getIconFromFileType, validateMaxSize, getIconForAttachment } from './AttachmentUtils';\nimport './Attachment.css';\nimport SummaryList from '../../widgets/SummaryList'\nimport { CircularProgress } from \"@material-ui/core\";\nimport download from \"downloadjs\";\n\ndeclare const PCore: any;\n\nfunction getCurrentAttachmentsList(context) {\n return PCore.getStoreValue('.attachmentsList', 'context_data', context) || [];\n}\n\nexport default function Attachment(props) {\n const {value, getPConnect, label} = props;\n /* this is a temporary fix because required is supposed to be passed as a boolean and NOT as a string */\n let { required, disabled } = props;\n [required, disabled] = [required, disabled].map(\n prop => prop === true || (typeof prop === 'string' && prop === 'true')\n );\n let arFileList$: Array<any> = [];\n const pConn = getPConnect();\n\n let fileTemp: any = {};\n\n let categoryName = '';\n if (value && value.pyCategoryName) {\n categoryName = value.pyCategoryName;\n }\n\n let valueRef = pConn.getStateProps().value;\n valueRef = valueRef.indexOf('.') === 0 ? valueRef.substring(1) : valueRef;\n const [file, setFile] = useState(fileTemp);\n\n const fileDownload = (data, fileName, ext) => {\n const fileData = ext ? `${fileName}.${ext}` : fileName;\n download(atob(data), fileData);\n };\n\n function _downloadFileFromList(fileObj: any) {\n PCore.getAttachmentUtils()\n .downloadAttachment(fileObj.pzInsKey, pConn.getContextName())\n .then((content) => {\n const extension = fileObj.pyAttachName.split(\".\").pop();\n fileDownload(content.data, fileObj.pyFileName, extension);\n })\n .catch(() => {});\n }\n\n function setNewFiles(arFiles) {\n let index = 0;\n for (const item of arFiles) {\n if (!validateMaxSize(item, 5)) {\n item.error = true;\n item.meta = \"File is too big. Max allowed size is 5MB.\";\n }\n item.mimeType = item.type;\n item.icon = getIconFromFileType(item.type);\n item.ID = `${new Date().getTime()}I${index}`;\n index+=1;\n }\n return arFiles;\n }\n\n function getFiles(arFiles: Array<any>) {\n return setNewFiles(arFiles);\n }\n\n function getNewListUtilityItemProps({\n att,\n cancelFile,\n downloadFile,\n deleteFile,\n removeFile\n }) {\n let actions;\n if (att.progress && att.progress !== 100) {\n actions = [\n {\n id: `Cancel-${att.ID}`,\n text: \"Cancel\",\n icon: \"times\",\n onClick: cancelFile\n }\n ];\n } else if (att.links) {\n const isFile = att.type === \"FILE\";\n const ID = att.ID.replace(/\\s/gi, \"\");\n const actionsMap = new Map([\n [\n \"download\",\n {\n id: `download-${ID}`,\n text: isFile ? \"Download\" : \"Open\",\n icon: isFile ? \"download\" : \"open\",\n onClick: downloadFile\n }\n ],\n [\n \"delete\",\n {\n id: `Delete-${ID}`,\n text: \"Delete\",\n icon: \"trash\",\n onClick: deleteFile\n }\n ]\n ]);\n actions = [];\n actionsMap.forEach((action, actionKey) => {\n if (att.links[actionKey]) {\n actions.push(action);\n }\n });\n } else if (att.error) {\n actions = [\n {\n id: `Remove-${att.ID}`,\n text: \"Remove\",\n icon: \"trash\",\n onClick: removeFile\n }\n ];\n }\n return {\n id: att.ID,\n visual: {\n icon: getIconForAttachment(att),\n progress: att.progress === 100 ? undefined: att.progress,\n },\n primary: {\n type: att.type,\n name: att.name,\n icon: \"trash\",\n click: removeFile,\n },\n secondary: {\n text: att.meta\n },\n actions\n };\n };\n\n const onFileAdded = (event) => {\n const addedFile = event.target.files[0];\n setFile({\n props: {\n name: addedFile.name,\n icon: getIconFromFileType(addedFile.type),\n },\n inProgress: true\n });\n const arFiles$ = getFiles(event.target.files);\n const myFiles: any = Array.from(arFiles$);\n\n const onUploadProgress = () => {};\n\n const errorHandler = () => {};\n\n PCore.getAttachmentUtils()\n .uploadAttachment(\n myFiles[0],\n onUploadProgress,\n errorHandler,\n pConn.getContextName()\n )\n .then((fileRes) => {\n let reqObj;\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n reqObj = {\n type: \"File\",\n attachmentFieldName: valueRef,\n category: categoryName,\n ID: fileRes.ID\n };\n pConn.attachmentsInfo = reqObj;\n } else {\n reqObj = {\n type: \"File\",\n label: valueRef,\n category: categoryName,\n handle: fileRes.ID,\n ID: fileRes.clientFileID\n };\n const currentAttachmentList = getCurrentAttachmentsList(pConn.getContextName()).filter(\n (f) => f.label !== valueRef\n );\n PCore.getStateUtils().updateState(\n pConn.getContextName(),\n 'attachmentsList',\n [...currentAttachmentList, reqObj],\n {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n }\n );\n }\n const fieldName = pConn.getStateProps().value;\n const context = pConn.getContextName();\n\n PCore.getMessageManager().clearMessages({\n type: PCore.getConstants().MESSAGES.MESSAGES_TYPE_ERROR,\n property: fieldName,\n pageReference: pConn.getPageReference(),\n context\n });\n myFiles[0].meta = \"Uploaded Successfully\";\n\n arFileList$ = myFiles.map((att) => {\n return getNewListUtilityItemProps({\n att,\n downloadFile: null,\n cancelFile: null,\n deleteFile: null,\n removeFile: null\n });\n });\n setFile((current) => {\n return {\n ...current,\n props: {\n ...current.props,\n arFileList$\n },\n inProgress: false,\n attachmentUploaded: true,\n showMenuIcon: false\n };\n });\n })\n\n .catch(() => {\n // just catching the rethrown error at uploadAttachment\n // to handle Unhandled rejections\n });\n };\n\n function _removeFileFromList(item: any, list) {\n const arFileList = file.props ? file.props.arFileList$ : list;\n const fileIndex = arFileList.findIndex(element => element?.id === item?.id);\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n if (value) {\n pConn.attachmentsInfo = {\n type: \"File\",\n attachmentFieldName: valueRef,\n delete: true\n };\n }\n if (fileIndex > -1) { arFileList.splice(parseInt(fileIndex, 10), 1) };\n setFile((current) => {\n return {\n ...current,\n props: {\n ...current.props,\n arFileList\n },\n };\n });\n } else {\n const attachmentsList = [];\n const currentAttachmentList = getCurrentAttachmentsList(pConn.getContextName()).filter(\n (f) => f.label !== valueRef\n );\n if (value && value.pxResults && +value.pyCount > 0) {\n const deletedFile = {\n type: \"File\",\n label: valueRef,\n delete: true,\n responseProps: {\n pzInsKey: arFileList[fileIndex].id\n },\n };\n // updating the redux store to help form-handler in passing the data to delete the file from server\n PCore.getStateUtils().updateState(\n pConn.getContextName(),\n 'attachmentsList',\n [...currentAttachmentList, deletedFile],\n {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n }\n );\n } else {\n PCore.getStateUtils().updateState(\n pConn.getContextName(),\n 'attachmentsList',\n [...currentAttachmentList, ...attachmentsList],\n {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n }\n );\n }\n if (fileIndex > -1) { arFileList.splice(parseInt(fileIndex, 10), 1) };\n setFile((current) => {\n return {\n ...current,\n props: {\n ...current.props,\n arFileList\n },\n };\n });\n }\n }\n\n useEffect(() => {\n if (value && value.pxResults && +value.pyCount > 0) {\n fileTemp = buildFilePropsFromResponse(value.pxResults[0]);\n\n if (fileTemp.responseProps) {\n if (!pConn.attachmentsInfo) {\n pConn.attachmentsInfo = {\n type: \"File\",\n attachmentFieldName: valueRef,\n category: categoryName\n };\n }\n\n if (fileTemp.responseProps.pzInsKey && !fileTemp.responseProps.pzInsKey.includes(\"temp\")) {\n\n fileTemp.props.type = fileTemp.responseProps.pyMimeFileExtension;\n fileTemp.props.mimeType = fileTemp.responseProps.pyMimeFileExtension;\n fileTemp.props.ID = fileTemp.responseProps.pzInsKey;\n // create the actions for the \"more\" menu on the attachment\n const arMenuList: Array<any> = [];\n let oMenu: any = {};\n\n oMenu.icon = \"download\";\n oMenu.text = \"Download\";\n oMenu.onClick = () => { _downloadFileFromList(value.pxResults[0])}\n arMenuList.push(oMenu);\n oMenu = {};\n oMenu.icon = \"trash\";\n oMenu.text = \"Delete\";\n oMenu.onClick = () => { _removeFileFromList(arFileList$[0], arFileList$)}\n arMenuList.push(oMenu);\n\n arFileList$.push(getNewListUtilityItemProps({\n att: fileTemp.props,\n downloadFile: null,\n cancelFile: null,\n deleteFile: null,\n removeFile: null\n }));\n arFileList$[0].actions = arMenuList;\n\n setFile((current) => {\n return {\n ...current,\n props: {\n ...current.props,\n arFileList$\n },\n inProgress: false,\n attachmentUploaded: true,\n showMenuIcon: true\n };\n });\n }\n }\n }\n }, [\"\"]);\n\n let content = (\n <div className='file-div'>\n {file.inProgress && (<div className=\"progress-div\"><CircularProgress /></div>)}\n <div hidden={true} id=\"attachment-ID\">{valueRef}</div>\n <label htmlFor={valueRef}>\n <input\n style={{ display: 'none' }}\n id={valueRef}\n name='upload-photo'\n type='file'\n required={required}\n onChange={onFileAdded}\n />\n <Button variant='outlined' color='primary' component=\"span\">\n Upload file\n </Button>\n </label>\n </div>\n );\n\n if (file && file.attachmentUploaded && file.props.arFileList$ && file.props.arFileList$.length > 0) {\n content = (\n <div>\n {file.showMenuIcon && (<SummaryList arItems$={file.props.arFileList$} menuIconOverrideAction$={_removeFileFromList}></SummaryList>)}\n {!file.showMenuIcon && (<SummaryList menuIconOverride$='trash' arItems$={file.props.arFileList$} menuIconOverrideAction$={_removeFileFromList}></SummaryList>)}\n </div>\n\n );\n }\n\n return (\n <div className='file-upload-container'>\n <span className='label'>{label}</span>\n <section>{content}</section>\n </div>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowContainer.d.ts","sourceRoot":"","sources":["../../../../../src/components/infra/Containers/FlowContainer/FlowContainer.tsx"],"names":[],"mappings":";AAGA,OAAO,SAAS,MAAM,YAAY,CAAC;AAgDnC,iBAAwB,aAAa,CAAC,KAAK,KAAA,
|
|
1
|
+
{"version":3,"file":"FlowContainer.d.ts","sourceRoot":"","sources":["../../../../../src/components/infra/Containers/FlowContainer/FlowContainer.tsx"],"names":[],"mappings":";AAGA,OAAO,SAAS,MAAM,YAAY,CAAC;AAgDnC,iBAAwB,aAAa,CAAC,KAAK,KAAA,eAwb1C;kBAxbuB,aAAa;;;;;;;;;;;;;;;;;;eAAb,aAAa"}
|
|
@@ -40,6 +40,8 @@ const useStyles = makeStyles((theme) => ({
|
|
|
40
40
|
}));
|
|
41
41
|
export default function FlowContainer(props) {
|
|
42
42
|
const pCoreConstants = PCore.getConstants();
|
|
43
|
+
const { TODO } = pCoreConstants;
|
|
44
|
+
const todo_headerText = "To do";
|
|
43
45
|
const { getPConnect, routingInfo } = props;
|
|
44
46
|
const { displayOnlyFA } = useContext(StoreContext);
|
|
45
47
|
const thePConn = getPConnect();
|
|
@@ -52,10 +54,6 @@ export default function FlowContainer(props) {
|
|
|
52
54
|
const [todo_showTodoList, setShowTodoList] = useState(false);
|
|
53
55
|
const [todo_datasource, setTodoDatasource] = useState({});
|
|
54
56
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
|
|
55
|
-
const [todo_headerText, setTodoHeaderText] = useState("To do");
|
|
56
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
|
|
57
|
-
const [todo_type, setTodoType] = useState("");
|
|
58
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
|
|
59
57
|
const [todo_context, setTodoContext] = useState("");
|
|
60
58
|
const [caseMessages, setCaseMessages] = useState("");
|
|
61
59
|
const [bHasCaseMessages, setHasCaseMessages] = useState(false);
|
|
@@ -207,9 +205,7 @@ export default function FlowContainer(props) {
|
|
|
207
205
|
}
|
|
208
206
|
// From WC SDK updateSelf - so do this in useEffect that's run only when the props change...
|
|
209
207
|
useEffect(() => {
|
|
210
|
-
// debugger;
|
|
211
208
|
const localPConn = arNewChildren[0].getPConnect();
|
|
212
|
-
// debugger;
|
|
213
209
|
setBuildName(getBuildName());
|
|
214
210
|
// routingInfo was added as component prop in populateAdditionalProps
|
|
215
211
|
// let routingInfo = this.getComponentProp("routingInfo");
|
|
@@ -345,7 +341,7 @@ export default function FlowContainer(props) {
|
|
|
345
341
|
React.createElement(Assignment, { getPConnect: getPConnect, itemKey: itemKey }, arNewChildrenAsReact)))
|
|
346
342
|
:
|
|
347
343
|
React.createElement("div", null,
|
|
348
|
-
React.createElement(ToDo, { getPConnect: getPConnect, caseInfoID: todo_caseInfoID, datasource: todo_datasource, showTodoList: todo_showTodoList, headerText: todo_headerText, type:
|
|
344
|
+
React.createElement(ToDo, { getPConnect: getPConnect, caseInfoID: todo_caseInfoID, datasource: todo_datasource, showTodoList: todo_showTodoList, headerText: todo_headerText, type: TODO, context: todo_context, itemKey: itemKey }))
|
|
349
345
|
:
|
|
350
346
|
React.createElement("div", { className: classes.alert },
|
|
351
347
|
React.createElement(Alert, { severity: "success" }, caseMessages))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowContainer.js","sourceRoot":"","sources":["../../../../../src/components/infra/Containers/FlowContainer/FlowContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-nested-ternary */\n/* eslint-disable camelcase */\nimport React, { useState, useEffect, useContext, createElement } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Card, CardHeader, Avatar, Typography } from \"@material-ui/core\";\nimport { Utils } from '../../../helpers/utils';\nimport { Alert } from '@material-ui/lab';\n\nimport Assignment from '../../Assignment';\nimport ToDo from \"../../ToDo\";\n\nimport createPConnectComponent from '../../../../bridge/react_pconnect';\nimport StoreContext from \"../../../../bridge/Context/StoreContext\";\nimport DayjsUtils from \"@date-io/dayjs\";\nimport { MuiPickersUtilsProvider } from \"@material-ui/pickers\";\n\nimport { addContainerItem, getToDoAssignments } from './helpers';\n\ndeclare const PCore;\n\n//\n// WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with\n// Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and\n// is totally at your own risk.\n//\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n paddingRight: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingTop: theme.spacing(1.5),\n paddingBottom: theme.spacing(1.5),\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1),\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n alert: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1),\n },\n avatar: {\n backgroundColor: theme.palette.primary.light,\n color: theme.palette.getContrastText(theme.palette.primary.light),\n }\n}));\n\n\n\nexport default function FlowContainer(props) {\n const pCoreConstants = PCore.getConstants();\n\n const { getPConnect, routingInfo } = props;\n\n const {displayOnlyFA} = useContext(StoreContext);\n\n const thePConn = getPConnect();\n\n // const [init, setInit] = useState(true);\n // const [fcState, setFCState] = useState({ hasError: false });\n const [arNewChildren, setArNewChildren] = useState<Array<any>>(thePConn.getChildren());\n const [arNewChildrenAsReact, setArNewChildrenAsReact] = useState<Array<any>>([]);\n\n const [todo_showTodo, setShowTodo] = useState(false);\n const [todo_caseInfoID, setCaseInfoID] = useState(\"\");\n const [todo_showTodoList, setShowTodoList] = useState(false);\n const [todo_datasource, setTodoDatasource] = useState({});\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [todo_headerText, setTodoHeaderText] = useState(\"To do\");\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [todo_type, setTodoType] = useState(\"\");\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [todo_context, setTodoContext] = useState(\"\");\n\n\n const [caseMessages, setCaseMessages] = useState(\"\");\n const [bHasCaseMessages, setHasCaseMessages] = useState(false);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [checkSvg, setCheckSvg] = useState(\"\");\n\n\n const [itemKey, setItemKey] = useState(\"\");\n const [containerName, setContainerName] = useState(\"\");\n const [buildName, setBuildName] = useState(\"\");\n\n const classes = useStyles();\n\n function initContainer() {\n\n const ourPConn = getPConnect();\n const containerMgr = ourPConn.getContainerManager();\n const baseContext = ourPConn.getContextName();\n const theContainerName = ourPConn.getContainerName();\n const containerType = \"single\";\n\n const flowContainerTarget = `${baseContext}/${theContainerName}`;\n const isContainerItemAvailable = PCore.getContainerUtils().getActiveContainerItemName(\n flowContainerTarget\n );\n\n window.sessionStorage.setItem(\"okToInitFlowContainer\", \"false\");\n\n if (!isContainerItemAvailable) {\n containerMgr.initializeContainers({\n type: containerType\n });\n\n // updated for 8.7 - 30-Mar-2022\n addContainerItem(ourPConn);\n }\n }\n\n\n function getBuildName(): string {\n const ourPConn = getPConnect();\n\n // let { getPConnect, name } = this.pConn$.pConn;\n const context = ourPConn.getContextName();\n let viewContainerName = ourPConn.getContainerName();\n\n if (!viewContainerName) viewContainerName = \"\";\n return `${context.toUpperCase()}/${viewContainerName.toUpperCase()}`;\n }\n\n\n function getTodoVisibility() {\n const caseViewMode = getPConnect().getValue(\"context_data.caseViewMode\");\n if (caseViewMode && caseViewMode === \"review\") {\n return true;\n }\n // eslint-disable-next-line sonarjs/prefer-single-boolean-return\n if (caseViewMode && caseViewMode === \"perform\") {\n return false;\n }\n\n return true;\n }\n\n\n function initComponent(bLoadChildren: boolean) {\n\n const ourPConn = getPConnect();\n\n // when true, update arChildren from pConn, otherwise, arChilren will be updated in updateSelf()\n if (bLoadChildren) {\n setArNewChildren(ourPConn.getChildren());\n }\n\n // debugging/investigation help\n // console.log(`${ourPConn.getComponentName()}: children update for main draw`);\n\n // const oData = ourPConn.getDataObject();\n\n // const activeActionLabel = \"\";\n // const child0_getPConnect = arNewChildren[0].getPConnect();\n\n // this.templateName$ = this.configProps$[\"template\"];\n\n // debugger;\n setShowTodo(getTodoVisibility());\n\n // create pointers to functions\n // const containerMgr = ourPConn.getContainerManager();\n // const actionsAPI = thePConn.getActionsApi();\n const baseContext = ourPConn.getContextName();\n const acName = ourPConn.getContainerName();\n\n // for now, in general this should be overridden by updateSelf(), and not be blank\n if (itemKey === \"\") {\n // debugger;\n setItemKey(baseContext.concat(\"/\").concat(acName));\n }\n\n\n ourPConn.isBoundToState();\n\n\n // inside\n // get fist kid, get the name and displa\n // pass first kid to a view container, which will disperse it to a view which will use one column, two column, etc.\n const oWorkItem = arNewChildren[0].getPConnect(); // child0_getPConnect;\n const oWorkData = oWorkItem.getDataObject();\n\n if (bLoadChildren && oWorkData) {\n // debugger;\n setContainerName(oWorkData.caseInfo.assignments[0].name);\n }\n\n // debugger;\n setBuildName(getBuildName());\n\n }\n\n\n useEffect(() => {\n // from WC SDK connectedCallback (mount)\n initComponent(true);\n initContainer();\n }, []);\n\n\n function isCaseWideLocalAction() {\n const ourPConn = getPConnect();\n\n const actionID = ourPConn.getValue(pCoreConstants.CASE_INFO.ACTIVE_ACTION_ID);\n const caseActions = ourPConn.getValue(pCoreConstants.CASE_INFO.AVAILABLEACTIONS);\n let bCaseWideAction = false;\n if (caseActions && actionID) {\n const actionObj = caseActions.find(\n (caseAction) => caseAction.ID === actionID\n );\n if (actionObj) {\n bCaseWideAction = actionObj.type === \"Case\";\n }\n }\n return bCaseWideAction;\n }\n\n\n function hasChildCaseAssignments() {\n const ourPConn = getPConnect();\n\n const childCases = ourPConn.getValue(pCoreConstants.CASE_INFO.CHILD_ASSIGNMENTS);\n // const allAssignments = [];\n // eslint-disable-next-line sonarjs/prefer-single-boolean-return\n if (childCases && childCases.length > 0) {\n return true;\n }\n return false;\n }\n\n\n function hasAssignments() {\n const ourPConn = getPConnect();\n\n let bHasAssignments = false;\n const assignmentsList: Array<any> = ourPConn.getValue(pCoreConstants.CASE_INFO.D_CASE_ASSIGNMENTS_RESULTS);\n const thisOperator = PCore.getEnvironmentInfo().getOperatorIdentifier();\n // 8.7 includes assignments in Assignments List that may be assigned to\n // a different operator. So, see if there are any assignments for\n // the current operator\n let bAssignmentsForThisOperator = false;\n\n // Bail out if there isn't an assignmentsList\n if (!assignmentsList) {\n return bHasAssignments;\n }\n\n for (const assignment of assignmentsList) {\n if (assignment[\"assigneeInfo\"][\"ID\"] === thisOperator) {\n bAssignmentsForThisOperator = true;\n }\n }\n\n const bHasChildCaseAssignments = hasChildCaseAssignments();\n\n if (\n bAssignmentsForThisOperator ||\n bHasChildCaseAssignments ||\n isCaseWideLocalAction()\n ) {\n bHasAssignments = true;\n }\n\n return bHasAssignments;\n }\n\n\n\n function getActiveViewLabel() {\n const ourPConn = getPConnect();\n\n let activeActionLabel = \"\";\n\n const { CASE_INFO: CASE_CONSTS } = pCoreConstants;\n\n const caseActions = ourPConn.getValue(CASE_CONSTS.CASE_INFO_ACTIONS);\n const activeActionID = ourPConn.getValue(CASE_CONSTS.ACTIVE_ACTION_ID);\n const activeAction = caseActions.find(\n (action) => action.ID === activeActionID\n );\n if (activeAction) {\n activeActionLabel = activeAction.name;\n }\n return activeActionLabel;\n }\n\n\n // From WC SDK updateSelf - so do this in useEffect that's run only when the props change...\n\n useEffect(() => {\n\n // debugger;\n\n const localPConn = arNewChildren[0].getPConnect();\n\n // debugger;\n setBuildName(getBuildName());\n\n // routingInfo was added as component prop in populateAdditionalProps\n // let routingInfo = this.getComponentProp(\"routingInfo\");\n\n let loadingInfo: any;\n try {\n loadingInfo = thePConn.getLoadingStatus();\n }\n catch (ex) {\n // eslint-disable-next-line no-console\n console.error(`${thePConn.getComponentName()}: loadingInfo catch block`);\n }\n\n\n // let configProps = this.thePConn.resolveConfigProps(this.thePConn.getConfigProps());\n\n\n if (!loadingInfo) {\n // turn off spinner\n // this.psService.sendMessage(false);\n }\n\n const caseViewMode = thePConn.getValue(\"context_data.caseViewMode\");\n\n const { CASE_INFO: CASE_CONSTS } = pCoreConstants;\n\n\n if (caseViewMode && caseViewMode === \"review\") {\n\n setTimeout(() => {\n\n // updated for 8.7 - 30-Mar-2022\n\n const todoAssignments = getToDoAssignments(thePConn);\n\n if (todoAssignments && todoAssignments.length > 0) {\n setCaseInfoID(thePConn.getValue(CASE_CONSTS.CASE_INFO_ID));\n setTodoDatasource({ source: todoAssignments });\n }\n\n setShowTodo(true);\n setShowTodoList(false);\n\n\n }, 100);\n\n\n // in React, when cancel is called, somehow the constructor for flowContainer is called which\n // does init/add of containers. This mimics that\n initContainer();\n\n }\n else if (caseViewMode && caseViewMode === \"perform\") {\n // perform\n // debugger;\n setShowTodo(false);\n\n // this is different than Angular SDK, as we need to initContainer if root container reloaded\n if (window.sessionStorage.getItem(\"okToInitFlowContainer\") === \"true\") {\n initContainer();\n }\n }\n\n // if have caseMessage show message and end\n const theCaseMessages = thePConn.getValue(\"caseMessages\");\n\n if (theCaseMessages || !hasAssignments()) {\n\n // Temp fix for 8.7 change: confirmationNote no longer coming through in caseMessages$.\n // So, if we get here and caseMessages$ is empty, use default value in DX API response\n setCaseMessages(theCaseMessages || \"Thank you! The next step in this case has been routed appropriately.\");\n setHasCaseMessages(true);\n\n\n // publish this \"assignmentFinished\" for mashup, need to get approved as a standard\n PCore.getPubSubUtils().publish(\n \"assignmentFinished\");\n\n\n // debugger;\n setCheckSvg(Utils.getImageSrc(\"check\", PCore.getAssetLoader().getStaticServerUrl()));\n return;\n }\n else {\n // debugger;\n setHasCaseMessages(false);\n }\n\n\n // this check in routingInfo, mimic React to check and get the internals of the\n // flowContainer and force updates to pConnect/redux\n if (routingInfo && loadingInfo !== undefined) {\n\n // debugging/investigation help\n // console.log(`${thePConn.getComponentName()}: >>routingInfo: ${JSON.stringify(routingInfo)}`);\n\n const currentOrder = routingInfo.accessedOrder;\n const currentItems = routingInfo.items;\n const type = routingInfo.type;\n if (currentOrder && currentItems) { // JA - making more similar to React version\n const key = currentOrder[currentOrder.length - 1];\n\n // save off itemKey to be used for finishAssignment, etc.\n // debugger;\n setItemKey(key);\n\n if (currentOrder.length > 0 &&\n currentItems[key] &&\n currentItems[key].view &&\n type === \"single\" &&\n !Utils.isEmptyObject(currentItems[key].view)) {\n const currentItem = currentItems[key];\n const rootView = currentItem.view;\n const { context } = rootView.config;\n const config = { meta: rootView };\n\n config[\"options\"] = {\n context: currentItem.context,\n pageReference: context || localPConn.getPageReference(),\n hasForm: true,\n isFlowContainer: true,\n containerName: localPConn.getContainerName(),\n containerItemName: key,\n parentPageReference: localPConn.getPageReference()\n };\n\n const configObject = PCore.createPConnect(config);\n\n // Since we're setting an array, need to add in an appropriate key\n // to remove React warning.\n configObject[\"key\"] = config[\"options\"].parentPageReference;\n\n // keep track of these changes\n const theNewChildren: Array<Object> = [];\n theNewChildren.push(configObject);\n setArNewChildren(theNewChildren);\n\n // JEA - adapted from Nebula FlowContainer since we want to render children that are React components\n const root = createElement(createPConnectComponent(), configObject);\n setArNewChildrenAsReact([root]);\n\n const oWorkItem = configObject.getPConnect(); // was theNewChildren[0].getPConnect()\n const oWorkData = oWorkItem.getDataObject();\n\n\n // check if have oWorkData, there are times due to timing of state change, when this\n // may not be available\n if (oWorkData) {\n setContainerName(getActiveViewLabel() || oWorkData.caseInfo.assignments[0].name);\n }\n }\n }\n\n }\n\n\n }, [props]);\n\n const caseId = thePConn.getCaseSummary().content.pyID;\n const urgency = getPConnect().getCaseSummary().assignments ? getPConnect().getCaseSummary().assignments[0].urgency : \"\";\n const operatorInitials = Utils.getInitials(PCore.getEnvironmentInfo().getOperatorName());\n let instructionText = thePConn.getCaseSummary()?.assignments?.[0]?.instructions;\n if (instructionText === undefined) {\n instructionText = \"\";\n }\n\n return (\n <div style={{ textAlign: \"left\" }} id={buildName} className=\"psdk-flow-container-top\">\n {!bHasCaseMessages ?\n (!todo_showTodo) ?\n (!displayOnlyFA) ?\n <Card className={classes.root}>\n <CardHeader\n title={<Typography variant=\"h6\">{containerName}</Typography>}\n subheader={`Task in ${caseId} \\u2022 Priority ${urgency}`}\n avatar={\n <Avatar className={classes.avatar}>\n {operatorInitials}\n </Avatar>\n }\n ></CardHeader>\n { instructionText !== '' ? <Typography variant=\"caption\">{instructionText}</Typography> : null }\n <MuiPickersUtilsProvider utils={DayjsUtils}>\n <Assignment getPConnect={getPConnect} itemKey={itemKey}>\n {arNewChildrenAsReact}\n </Assignment>\n </MuiPickersUtilsProvider>\n </Card>\n :\n <Card className={classes.root}>\n <Typography variant=\"h6\">{containerName}</Typography>\n { instructionText !== '' ? <Typography variant=\"caption\">{instructionText}</Typography> : null }\n <MuiPickersUtilsProvider utils={DayjsUtils}>\n <Assignment getPConnect={getPConnect} itemKey={itemKey}>\n {arNewChildrenAsReact}\n </Assignment>\n </MuiPickersUtilsProvider>\n </Card>\n :\n <div>\n <ToDo getPConnect={getPConnect} caseInfoID={todo_caseInfoID} datasource={todo_datasource}\n showTodoList={todo_showTodoList} headerText={todo_headerText} type={todo_type}\n context={todo_context} itemKey={itemKey}></ToDo>\n </div>\n :\n <div className={classes.alert}>\n <Alert severity=\"success\">{caseMessages}</Alert>\n </div>\n }\n </div>\n )\n}\n\nFlowContainer.defaultProps = {\n children: null,\n getPConnect: null,\n name: \"\",\n routingInfo: null,\n pageMessages: null\n};\n\nFlowContainer.propTypes = {\n // eslint-disable-next-line react/no-unused-prop-types\n children: PropTypes.node,\n getPConnect: PropTypes.func,\n // eslint-disable-next-line react/no-unused-prop-types\n name: PropTypes.string,\n routingInfo: PropTypes.objectOf(PropTypes.any),\n // eslint-disable-next-line react/no-unused-prop-types\n pageMessages: PropTypes.arrayOf(PropTypes.any)\n};\n"]}
|
|
1
|
+
{"version":3,"file":"FlowContainer.js","sourceRoot":"","sources":["../../../../../src/components/infra/Containers/FlowContainer/FlowContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-nested-ternary */\n/* eslint-disable camelcase */\nimport React, { useState, useEffect, useContext, createElement } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Card, CardHeader, Avatar, Typography } from \"@material-ui/core\";\nimport { Utils } from '../../../helpers/utils';\nimport { Alert } from '@material-ui/lab';\n\nimport Assignment from '../../Assignment';\nimport ToDo from \"../../ToDo\";\n\nimport createPConnectComponent from '../../../../bridge/react_pconnect';\nimport StoreContext from \"../../../../bridge/Context/StoreContext\";\nimport DayjsUtils from \"@date-io/dayjs\";\nimport { MuiPickersUtilsProvider } from \"@material-ui/pickers\";\n\nimport { addContainerItem, getToDoAssignments } from './helpers';\n\ndeclare const PCore;\n\n//\n// WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with\n// Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and\n// is totally at your own risk.\n//\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n paddingRight: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingTop: theme.spacing(1.5),\n paddingBottom: theme.spacing(1.5),\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1),\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n alert: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1),\n },\n avatar: {\n backgroundColor: theme.palette.primary.light,\n color: theme.palette.getContrastText(theme.palette.primary.light),\n }\n}));\n\n\n\nexport default function FlowContainer(props) {\n const pCoreConstants = PCore.getConstants();\n const { TODO } = pCoreConstants;\n const todo_headerText = \"To do\";\n\n const { getPConnect, routingInfo } = props;\n\n const {displayOnlyFA} = useContext(StoreContext);\n\n const thePConn = getPConnect();\n\n // const [init, setInit] = useState(true);\n // const [fcState, setFCState] = useState({ hasError: false });\n const [arNewChildren, setArNewChildren] = useState<Array<any>>(thePConn.getChildren());\n const [arNewChildrenAsReact, setArNewChildrenAsReact] = useState<Array<any>>([]);\n\n const [todo_showTodo, setShowTodo] = useState(false);\n const [todo_caseInfoID, setCaseInfoID] = useState(\"\");\n const [todo_showTodoList, setShowTodoList] = useState(false);\n const [todo_datasource, setTodoDatasource] = useState({});\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [todo_context, setTodoContext] = useState(\"\");\n\n\n const [caseMessages, setCaseMessages] = useState(\"\");\n const [bHasCaseMessages, setHasCaseMessages] = useState(false);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [checkSvg, setCheckSvg] = useState(\"\");\n\n\n const [itemKey, setItemKey] = useState(\"\");\n const [containerName, setContainerName] = useState(\"\");\n const [buildName, setBuildName] = useState(\"\");\n\n const classes = useStyles();\n\n function initContainer() {\n\n const ourPConn = getPConnect();\n const containerMgr = ourPConn.getContainerManager();\n const baseContext = ourPConn.getContextName();\n const theContainerName = ourPConn.getContainerName();\n const containerType = \"single\";\n\n const flowContainerTarget = `${baseContext}/${theContainerName}`;\n const isContainerItemAvailable = PCore.getContainerUtils().getActiveContainerItemName(\n flowContainerTarget\n );\n\n window.sessionStorage.setItem(\"okToInitFlowContainer\", \"false\");\n\n if (!isContainerItemAvailable) {\n containerMgr.initializeContainers({\n type: containerType\n });\n\n // updated for 8.7 - 30-Mar-2022\n addContainerItem(ourPConn);\n }\n }\n\n\n function getBuildName(): string {\n const ourPConn = getPConnect();\n\n // let { getPConnect, name } = this.pConn$.pConn;\n const context = ourPConn.getContextName();\n let viewContainerName = ourPConn.getContainerName();\n\n if (!viewContainerName) viewContainerName = \"\";\n return `${context.toUpperCase()}/${viewContainerName.toUpperCase()}`;\n }\n\n\n function getTodoVisibility() {\n const caseViewMode = getPConnect().getValue(\"context_data.caseViewMode\");\n if (caseViewMode && caseViewMode === \"review\") {\n return true;\n }\n // eslint-disable-next-line sonarjs/prefer-single-boolean-return\n if (caseViewMode && caseViewMode === \"perform\") {\n return false;\n }\n\n return true;\n }\n\n\n function initComponent(bLoadChildren: boolean) {\n\n const ourPConn = getPConnect();\n\n // when true, update arChildren from pConn, otherwise, arChilren will be updated in updateSelf()\n if (bLoadChildren) {\n setArNewChildren(ourPConn.getChildren());\n }\n\n // debugging/investigation help\n // console.log(`${ourPConn.getComponentName()}: children update for main draw`);\n\n // const oData = ourPConn.getDataObject();\n\n // const activeActionLabel = \"\";\n // const child0_getPConnect = arNewChildren[0].getPConnect();\n\n // this.templateName$ = this.configProps$[\"template\"];\n\n // debugger;\n setShowTodo(getTodoVisibility());\n\n // create pointers to functions\n // const containerMgr = ourPConn.getContainerManager();\n // const actionsAPI = thePConn.getActionsApi();\n const baseContext = ourPConn.getContextName();\n const acName = ourPConn.getContainerName();\n\n // for now, in general this should be overridden by updateSelf(), and not be blank\n if (itemKey === \"\") {\n // debugger;\n setItemKey(baseContext.concat(\"/\").concat(acName));\n }\n\n\n ourPConn.isBoundToState();\n\n\n // inside\n // get fist kid, get the name and displa\n // pass first kid to a view container, which will disperse it to a view which will use one column, two column, etc.\n const oWorkItem = arNewChildren[0].getPConnect(); // child0_getPConnect;\n const oWorkData = oWorkItem.getDataObject();\n\n if (bLoadChildren && oWorkData) {\n // debugger;\n setContainerName(oWorkData.caseInfo.assignments[0].name);\n }\n\n // debugger;\n setBuildName(getBuildName());\n\n }\n\n\n useEffect(() => {\n // from WC SDK connectedCallback (mount)\n initComponent(true);\n initContainer();\n }, []);\n\n\n function isCaseWideLocalAction() {\n const ourPConn = getPConnect();\n\n const actionID = ourPConn.getValue(pCoreConstants.CASE_INFO.ACTIVE_ACTION_ID);\n const caseActions = ourPConn.getValue(pCoreConstants.CASE_INFO.AVAILABLEACTIONS);\n let bCaseWideAction = false;\n if (caseActions && actionID) {\n const actionObj = caseActions.find(\n (caseAction) => caseAction.ID === actionID\n );\n if (actionObj) {\n bCaseWideAction = actionObj.type === \"Case\";\n }\n }\n return bCaseWideAction;\n }\n\n\n function hasChildCaseAssignments() {\n const ourPConn = getPConnect();\n\n const childCases = ourPConn.getValue(pCoreConstants.CASE_INFO.CHILD_ASSIGNMENTS);\n // const allAssignments = [];\n // eslint-disable-next-line sonarjs/prefer-single-boolean-return\n if (childCases && childCases.length > 0) {\n return true;\n }\n return false;\n }\n\n\n function hasAssignments() {\n const ourPConn = getPConnect();\n\n let bHasAssignments = false;\n const assignmentsList: Array<any> = ourPConn.getValue(pCoreConstants.CASE_INFO.D_CASE_ASSIGNMENTS_RESULTS);\n const thisOperator = PCore.getEnvironmentInfo().getOperatorIdentifier();\n // 8.7 includes assignments in Assignments List that may be assigned to\n // a different operator. So, see if there are any assignments for\n // the current operator\n let bAssignmentsForThisOperator = false;\n\n // Bail out if there isn't an assignmentsList\n if (!assignmentsList) {\n return bHasAssignments;\n }\n\n for (const assignment of assignmentsList) {\n if (assignment[\"assigneeInfo\"][\"ID\"] === thisOperator) {\n bAssignmentsForThisOperator = true;\n }\n }\n\n const bHasChildCaseAssignments = hasChildCaseAssignments();\n\n if (\n bAssignmentsForThisOperator ||\n bHasChildCaseAssignments ||\n isCaseWideLocalAction()\n ) {\n bHasAssignments = true;\n }\n\n return bHasAssignments;\n }\n\n\n\n function getActiveViewLabel() {\n const ourPConn = getPConnect();\n\n let activeActionLabel = \"\";\n\n const { CASE_INFO: CASE_CONSTS } = pCoreConstants;\n\n const caseActions = ourPConn.getValue(CASE_CONSTS.CASE_INFO_ACTIONS);\n const activeActionID = ourPConn.getValue(CASE_CONSTS.ACTIVE_ACTION_ID);\n const activeAction = caseActions.find(\n (action) => action.ID === activeActionID\n );\n if (activeAction) {\n activeActionLabel = activeAction.name;\n }\n return activeActionLabel;\n }\n\n\n // From WC SDK updateSelf - so do this in useEffect that's run only when the props change...\n\n useEffect(() => {\n const localPConn = arNewChildren[0].getPConnect();\n\n setBuildName(getBuildName());\n\n // routingInfo was added as component prop in populateAdditionalProps\n // let routingInfo = this.getComponentProp(\"routingInfo\");\n\n let loadingInfo: any;\n try {\n loadingInfo = thePConn.getLoadingStatus();\n }\n catch (ex) {\n // eslint-disable-next-line no-console\n console.error(`${thePConn.getComponentName()}: loadingInfo catch block`);\n }\n\n // let configProps = this.thePConn.resolveConfigProps(this.thePConn.getConfigProps());\n\n if (!loadingInfo) {\n // turn off spinner\n // this.psService.sendMessage(false);\n }\n\n const caseViewMode = thePConn.getValue(\"context_data.caseViewMode\");\n const { CASE_INFO: CASE_CONSTS } = pCoreConstants;\n if (caseViewMode && caseViewMode === \"review\") {\n setTimeout(() => {\n // updated for 8.7 - 30-Mar-2022\n const todoAssignments = getToDoAssignments(thePConn);\n if (todoAssignments && todoAssignments.length > 0) {\n setCaseInfoID(thePConn.getValue(CASE_CONSTS.CASE_INFO_ID));\n setTodoDatasource({ source: todoAssignments });\n }\n setShowTodo(true);\n setShowTodoList(false);\n }, 100);\n\n // in React, when cancel is called, somehow the constructor for flowContainer is called which\n // does init/add of containers. This mimics that\n initContainer();\n }\n else if (caseViewMode && caseViewMode === \"perform\") {\n // perform\n // debugger;\n setShowTodo(false);\n\n // this is different than Angular SDK, as we need to initContainer if root container reloaded\n if (window.sessionStorage.getItem(\"okToInitFlowContainer\") === \"true\") {\n initContainer();\n }\n }\n\n // if have caseMessage show message and end\n const theCaseMessages = thePConn.getValue(\"caseMessages\");\n\n if (theCaseMessages || !hasAssignments()) {\n\n // Temp fix for 8.7 change: confirmationNote no longer coming through in caseMessages$.\n // So, if we get here and caseMessages$ is empty, use default value in DX API response\n setCaseMessages(theCaseMessages || \"Thank you! The next step in this case has been routed appropriately.\");\n setHasCaseMessages(true);\n\n\n // publish this \"assignmentFinished\" for mashup, need to get approved as a standard\n PCore.getPubSubUtils().publish(\n \"assignmentFinished\");\n\n\n // debugger;\n setCheckSvg(Utils.getImageSrc(\"check\", PCore.getAssetLoader().getStaticServerUrl()));\n return;\n }\n else {\n // debugger;\n setHasCaseMessages(false);\n }\n\n\n // this check in routingInfo, mimic React to check and get the internals of the\n // flowContainer and force updates to pConnect/redux\n if (routingInfo && loadingInfo !== undefined) {\n\n // debugging/investigation help\n // console.log(`${thePConn.getComponentName()}: >>routingInfo: ${JSON.stringify(routingInfo)}`);\n\n const currentOrder = routingInfo.accessedOrder;\n const currentItems = routingInfo.items;\n const type = routingInfo.type;\n if (currentOrder && currentItems) { // JA - making more similar to React version\n const key = currentOrder[currentOrder.length - 1];\n\n // save off itemKey to be used for finishAssignment, etc.\n // debugger;\n setItemKey(key);\n\n if (currentOrder.length > 0 &&\n currentItems[key] &&\n currentItems[key].view &&\n type === \"single\" &&\n !Utils.isEmptyObject(currentItems[key].view)) {\n const currentItem = currentItems[key];\n const rootView = currentItem.view;\n const { context } = rootView.config;\n const config = { meta: rootView };\n\n config[\"options\"] = {\n context: currentItem.context,\n pageReference: context || localPConn.getPageReference(),\n hasForm: true,\n isFlowContainer: true,\n containerName: localPConn.getContainerName(),\n containerItemName: key,\n parentPageReference: localPConn.getPageReference()\n };\n\n const configObject = PCore.createPConnect(config);\n\n // Since we're setting an array, need to add in an appropriate key\n // to remove React warning.\n configObject[\"key\"] = config[\"options\"].parentPageReference;\n\n // keep track of these changes\n const theNewChildren: Array<Object> = [];\n theNewChildren.push(configObject);\n setArNewChildren(theNewChildren);\n\n // JEA - adapted from Nebula FlowContainer since we want to render children that are React components\n const root = createElement(createPConnectComponent(), configObject);\n setArNewChildrenAsReact([root]);\n\n const oWorkItem = configObject.getPConnect(); // was theNewChildren[0].getPConnect()\n const oWorkData = oWorkItem.getDataObject();\n\n\n // check if have oWorkData, there are times due to timing of state change, when this\n // may not be available\n if (oWorkData) {\n setContainerName(getActiveViewLabel() || oWorkData.caseInfo.assignments[0].name);\n }\n }\n }\n\n }\n\n\n }, [props]);\n\n const caseId = thePConn.getCaseSummary().content.pyID;\n const urgency = getPConnect().getCaseSummary().assignments ? getPConnect().getCaseSummary().assignments[0].urgency : \"\";\n const operatorInitials = Utils.getInitials(PCore.getEnvironmentInfo().getOperatorName());\n let instructionText = thePConn.getCaseSummary()?.assignments?.[0]?.instructions;\n if (instructionText === undefined) {\n instructionText = \"\";\n }\n\n return (\n <div style={{ textAlign: \"left\" }} id={buildName} className=\"psdk-flow-container-top\">\n {!bHasCaseMessages ?\n (!todo_showTodo) ?\n (!displayOnlyFA) ?\n <Card className={classes.root}>\n <CardHeader\n title={<Typography variant=\"h6\">{containerName}</Typography>}\n subheader={`Task in ${caseId} \\u2022 Priority ${urgency}`}\n avatar={\n <Avatar className={classes.avatar}>\n {operatorInitials}\n </Avatar>\n }\n ></CardHeader>\n { instructionText !== '' ? <Typography variant=\"caption\">{instructionText}</Typography> : null }\n <MuiPickersUtilsProvider utils={DayjsUtils}>\n <Assignment getPConnect={getPConnect} itemKey={itemKey}>\n {arNewChildrenAsReact}\n </Assignment>\n </MuiPickersUtilsProvider>\n </Card>\n :\n <Card className={classes.root}>\n <Typography variant=\"h6\">{containerName}</Typography>\n { instructionText !== '' ? <Typography variant=\"caption\">{instructionText}</Typography> : null }\n <MuiPickersUtilsProvider utils={DayjsUtils}>\n <Assignment getPConnect={getPConnect} itemKey={itemKey}>\n {arNewChildrenAsReact}\n </Assignment>\n </MuiPickersUtilsProvider>\n </Card>\n :\n <div>\n <ToDo getPConnect={getPConnect} caseInfoID={todo_caseInfoID} datasource={todo_datasource}\n showTodoList={todo_showTodoList} headerText={todo_headerText} type={TODO}\n context={todo_context} itemKey={itemKey}></ToDo>\n </div>\n :\n <div className={classes.alert}>\n <Alert severity=\"success\">{caseMessages}</Alert>\n </div>\n }\n </div>\n )\n}\n\nFlowContainer.defaultProps = {\n children: null,\n getPConnect: null,\n name: \"\",\n routingInfo: null,\n pageMessages: null\n};\n\nFlowContainer.propTypes = {\n // eslint-disable-next-line react/no-unused-prop-types\n children: PropTypes.node,\n getPConnect: PropTypes.func,\n // eslint-disable-next-line react/no-unused-prop-types\n name: PropTypes.string,\n routingInfo: PropTypes.objectOf(PropTypes.any),\n // eslint-disable-next-line react/no-unused-prop-types\n pageMessages: PropTypes.arrayOf(PropTypes.any)\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToDo.d.ts","sourceRoot":"","sources":["../../../../src/components/infra/ToDo/ToDo.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAyBnC,OAAO,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ToDo.d.ts","sourceRoot":"","sources":["../../../../src/components/infra/ToDo/ToDo.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAyBnC,OAAO,YAAY,CAAC;AAiCpB,iBAAwB,IAAI,CAAC,KAAK,KAAA,eA2LjC;kBA3LuB,IAAI;;;;;;;;;;;;;;;;;;;;;;;eAAJ,IAAI"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React, { useState } from
|
|
2
|
-
import PropTypes from
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
3
|
import { Utils } from '../../helpers/utils';
|
|
4
|
-
import { Box, Button, Card, CardContent, CardHeader, Avatar, Typography, Badge, List, ListItem, ListItemText, ListItemSecondaryAction
|
|
4
|
+
import { Box, Button, Card, CardContent, CardHeader, Avatar, Typography, Badge, List, ListItem, ListItemText, ListItemSecondaryAction } from '@material-ui/core';
|
|
5
5
|
import Snackbar from '@material-ui/core/Snackbar';
|
|
6
6
|
import IconButton from '@material-ui/core/IconButton';
|
|
7
7
|
import CloseIcon from '@material-ui/icons/Close';
|
|
@@ -10,79 +10,70 @@ import { makeStyles } from '@material-ui/core/styles';
|
|
|
10
10
|
import { useTheme } from '@material-ui/core/styles';
|
|
11
11
|
import useMediaQuery from '@material-ui/core/useMediaQuery';
|
|
12
12
|
import './ToDo.css';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
13
|
+
function topThreeAssignments(assignmentsSource) {
|
|
14
|
+
return Array.isArray(assignmentsSource) ? assignmentsSource.slice(0, 3) : [];
|
|
15
|
+
}
|
|
16
|
+
function getID(assignment) {
|
|
17
|
+
if (assignment.value) {
|
|
18
|
+
const refKey = assignment.value;
|
|
19
|
+
return refKey.substring(refKey.lastIndexOf(' ') + 1);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
const refKey = assignment.ID;
|
|
23
|
+
const arKeys = refKey.split('!')[0].split(' ');
|
|
24
|
+
return arKeys[2];
|
|
25
25
|
}
|
|
26
|
-
return result;
|
|
27
26
|
}
|
|
28
|
-
const useStyles = makeStyles(
|
|
27
|
+
const useStyles = makeStyles(theme => ({
|
|
29
28
|
root: {
|
|
30
29
|
marginTop: theme.spacing(1),
|
|
31
30
|
marginBottom: theme.spacing(1),
|
|
32
31
|
paddingBottom: theme.spacing(1),
|
|
33
|
-
borderLeft:
|
|
32
|
+
borderLeft: '6px solid',
|
|
34
33
|
borderLeftColor: theme.palette.primary.light
|
|
35
34
|
},
|
|
36
35
|
avatar: {
|
|
37
36
|
backgroundColor: theme.palette.primary.light,
|
|
38
|
-
color: theme.palette.getContrastText(theme.palette.primary.light)
|
|
37
|
+
color: theme.palette.getContrastText(theme.palette.primary.light)
|
|
39
38
|
}
|
|
40
39
|
}));
|
|
41
40
|
export default function ToDo(props) {
|
|
42
|
-
const {
|
|
41
|
+
const { datasource, getPConnect, headerText, showTodoList, myWorkList, type } = props;
|
|
42
|
+
const CONSTS = PCore.getConstants();
|
|
43
43
|
const bLogging = true;
|
|
44
|
-
const [bShowMore, setBShowMore] = useState(true);
|
|
45
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
|
|
46
|
-
const [currentUser, setCurrentUser] = useState(PCore.getEnvironmentInfo().getOperatorName());
|
|
47
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
|
|
48
|
-
const [currentUserInitials, setCurrentUserInitials] = useState(Utils.getInitials(currentUser));
|
|
49
|
-
const [showSnackbar, setShowSnackbar] = useState(false);
|
|
50
|
-
const [snackbarMessage, setSnackbarMessage] = useState("");
|
|
51
|
-
const thePConn = getPConnect();
|
|
52
44
|
let assignmentCount = 0;
|
|
45
|
+
const currentUser = PCore.getEnvironmentInfo().getOperatorName();
|
|
46
|
+
const currentUserInitials = Utils.getInitials(currentUser);
|
|
53
47
|
const assignmentsSource = datasource?.source || myWorkList?.source;
|
|
54
|
-
|
|
48
|
+
const [bShowMore, setBShowMore] = useState(true);
|
|
49
|
+
const [showSnackbar, setShowSnackbar] = useState(false);
|
|
50
|
+
const [snackbarMessage, setSnackbarMessage] = useState('');
|
|
55
51
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
56
|
-
const [
|
|
52
|
+
const [assignments, setAssignments] = useState(initAssignments());
|
|
53
|
+
const thePConn = getPConnect();
|
|
57
54
|
const classes = useStyles();
|
|
58
55
|
const theme = useTheme();
|
|
59
56
|
const isDesktop = useMediaQuery(theme.breakpoints.up('md'));
|
|
60
57
|
// const { setOpen } = useNavBar();
|
|
61
|
-
function
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
if (len > 3)
|
|
66
|
-
len = 3;
|
|
67
|
-
for (let i = 0; i < len; i += 1) {
|
|
68
|
-
arList3.push(arList[i]);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return arList3;
|
|
72
|
-
}
|
|
73
|
-
function getID(assignment) {
|
|
74
|
-
let sID = "";
|
|
75
|
-
if (assignment.value) {
|
|
76
|
-
const refKey = assignment.value;
|
|
77
|
-
sID = refKey.substring(refKey.lastIndexOf(" ") + 1);
|
|
58
|
+
function initAssignments() {
|
|
59
|
+
if (assignmentsSource) {
|
|
60
|
+
assignmentCount = assignmentsSource.length;
|
|
61
|
+
return topThreeAssignments(assignmentsSource);
|
|
78
62
|
}
|
|
79
63
|
else {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
sID = arKeys[2];
|
|
64
|
+
// turn off todolist
|
|
65
|
+
return [];
|
|
83
66
|
}
|
|
84
|
-
return sID;
|
|
85
67
|
}
|
|
68
|
+
const getAssignmentkey = assignment => {
|
|
69
|
+
return type === CONSTS.TODO ? assignment.ID : assignment.id;
|
|
70
|
+
};
|
|
71
|
+
const getPriority = assignment => {
|
|
72
|
+
return type === CONSTS.TODO ? assignment.urgency : assignment.priority;
|
|
73
|
+
};
|
|
74
|
+
const getAssignmentName = assignment => {
|
|
75
|
+
return type === CONSTS.TODO ? assignment.name : assignment.stepName;
|
|
76
|
+
};
|
|
86
77
|
function showToast(message) {
|
|
87
78
|
const theMessage = `Assignment: ${message}`;
|
|
88
79
|
// eslint-disable-next-line no-console
|
|
@@ -96,40 +87,37 @@ export default function ToDo(props) {
|
|
|
96
87
|
}
|
|
97
88
|
setShowSnackbar(false);
|
|
98
89
|
}
|
|
99
|
-
;
|
|
100
90
|
function _showMore() {
|
|
101
91
|
setBShowMore(false);
|
|
102
|
-
|
|
92
|
+
setAssignments(assignmentsSource);
|
|
103
93
|
}
|
|
104
94
|
function _showLess() {
|
|
105
95
|
setBShowMore(true);
|
|
106
|
-
|
|
96
|
+
setAssignments(topThreeAssignments(assignmentsSource));
|
|
107
97
|
}
|
|
108
|
-
function clickGo(
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
// Disable closing the side bar per standup vote
|
|
112
|
-
//
|
|
113
|
-
// setOpen(false);
|
|
114
|
-
const { id } = inAssignmentArray[0];
|
|
115
|
-
let { classname = "" } = inAssignmentArray[0];
|
|
98
|
+
function clickGo(assignment) {
|
|
99
|
+
const { id } = assignment;
|
|
100
|
+
let { classname = '' } = assignment;
|
|
116
101
|
const sTarget = thePConn.getContainerName();
|
|
117
102
|
const sTargetContainerName = sTarget;
|
|
118
|
-
const options = {
|
|
119
|
-
if (classname === null || classname ===
|
|
103
|
+
const options = { containerName: sTargetContainerName };
|
|
104
|
+
if (classname === null || classname === '') {
|
|
120
105
|
classname = thePConn.getCaseInfo().getClassName();
|
|
121
106
|
}
|
|
122
|
-
if (sTarget ===
|
|
123
|
-
options[
|
|
124
|
-
options[
|
|
125
|
-
options[
|
|
126
|
-
options[
|
|
107
|
+
if (sTarget === 'workarea') {
|
|
108
|
+
options['isActionFromToDoList'] = true;
|
|
109
|
+
options['target'] = '';
|
|
110
|
+
options['context'] = null;
|
|
111
|
+
options['isChild'] = undefined;
|
|
127
112
|
}
|
|
128
113
|
else {
|
|
129
|
-
options[
|
|
130
|
-
options[
|
|
114
|
+
options['isActionFromToDoList'] = false;
|
|
115
|
+
options['target'] = sTarget;
|
|
131
116
|
}
|
|
132
|
-
thePConn
|
|
117
|
+
thePConn
|
|
118
|
+
.getActionsApi()
|
|
119
|
+
.openAssignment(id, classname, options)
|
|
120
|
+
.then(() => {
|
|
133
121
|
if (bLogging) {
|
|
134
122
|
// eslint-disable-next-line no-console
|
|
135
123
|
console.log(`openAssignment completed`);
|
|
@@ -139,56 +127,39 @@ export default function ToDo(props) {
|
|
|
139
127
|
showToast(`Submit failed!`);
|
|
140
128
|
});
|
|
141
129
|
}
|
|
142
|
-
function initAssignments() {
|
|
143
|
-
if (showTodoList) {
|
|
144
|
-
if (assignmentsSource) {
|
|
145
|
-
assignmentCount = (assignmentsSource !== null) ? assignmentsSource.length : 0;
|
|
146
|
-
return topThreeAssignments(assignmentsSource);
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
// turn off todolist
|
|
150
|
-
return [];
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
else if (caseInfoID !== undefined) {
|
|
154
|
-
// get caseInfoId assignment.
|
|
155
|
-
return getCaseInfoAssignment(assignmentsSource, caseInfoID);
|
|
156
|
-
}
|
|
157
|
-
return [];
|
|
158
|
-
}
|
|
159
130
|
const getListItemComponent = assignment => {
|
|
160
131
|
if (isDesktop) {
|
|
161
132
|
return (React.createElement(React.Fragment, null,
|
|
162
133
|
"Task in",
|
|
163
|
-
React.createElement(Button, { size:
|
|
134
|
+
React.createElement(Button, { size: 'small', color: 'primary' }, `${assignment.name} ${getID(assignment)}`),
|
|
164
135
|
` \u2022 `,
|
|
165
|
-
React.createElement("span", { className:
|
|
166
|
-
` \u2022
|
|
136
|
+
React.createElement("span", { className: 'psdk-todo-assignment-status' }, assignment.status),
|
|
137
|
+
` \u2022 Urgency ${getPriority(assignment)}`));
|
|
167
138
|
}
|
|
168
139
|
return (React.createElement(React.Fragment, null,
|
|
169
|
-
React.createElement(Button, { size:
|
|
170
|
-
` \u2022
|
|
140
|
+
React.createElement(Button, { size: 'small', color: 'primary' }, `${assignment.name} ${getID(assignment)}`),
|
|
141
|
+
` \u2022 Urgency ${getPriority(assignment)}`));
|
|
171
142
|
};
|
|
172
143
|
return (React.createElement(React.Fragment, null,
|
|
173
144
|
React.createElement(Card, { className: classes.root },
|
|
174
|
-
showTodoList && (React.createElement(CardHeader, { title: React.createElement(Badge, { badgeContent: assignmentCount, color:
|
|
175
|
-
React.createElement(Typography, { variant:
|
|
145
|
+
showTodoList && (React.createElement(CardHeader, { title: React.createElement(Badge, { badgeContent: assignmentCount, color: 'primary' },
|
|
146
|
+
React.createElement(Typography, { variant: 'h6' },
|
|
176
147
|
headerText,
|
|
177
148
|
"\u00A0\u00A0\u00A0")), avatar: React.createElement(Avatar, { className: classes.avatar }, currentUserInitials) })),
|
|
178
149
|
React.createElement(CardContent, null,
|
|
179
|
-
React.createElement(List, null,
|
|
180
|
-
React.createElement(ListItemText, { primary: assignment
|
|
150
|
+
React.createElement(List, null, assignments.map(assignment => (React.createElement(ListItem, { key: getAssignmentkey(assignment), dense: true, divider: true, onClick: () => clickGo(assignment) },
|
|
151
|
+
React.createElement(ListItemText, { primary: getAssignmentName(assignment), secondary: getListItemComponent(assignment) }),
|
|
181
152
|
React.createElement(ListItemSecondaryAction, null,
|
|
182
|
-
React.createElement(IconButton, { onClick: () => clickGo(
|
|
153
|
+
React.createElement(IconButton, { onClick: () => clickGo(assignment) },
|
|
183
154
|
React.createElement(ArrowForwardIosOutlinedIcon, null)))))))),
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
React.createElement(CloseIcon, { fontSize: "small" })) })));
|
|
155
|
+
assignmentCount > 3 && (React.createElement(Box, { display: 'flex', justifyContent: 'center' }, bShowMore ? (React.createElement(Button, { color: 'primary', onClick: _showMore }, "Show more")) : (React.createElement(Button, { onClick: _showLess }, "Show less"))))),
|
|
156
|
+
React.createElement(Snackbar, { open: showSnackbar, autoHideDuration: 3000, onClose: handleSnackbarClose, message: snackbarMessage, action: React.createElement(IconButton, { size: 'small', "aria-label": 'close', color: 'inherit', onClick: handleSnackbarClose },
|
|
157
|
+
React.createElement(CloseIcon, { fontSize: 'small' })) })));
|
|
188
158
|
}
|
|
189
159
|
ToDo.propTypes = {
|
|
190
160
|
datasource: PropTypes.instanceOf(Object),
|
|
191
161
|
myWorkList: PropTypes.instanceOf(Object),
|
|
162
|
+
// eslint-disable-next-line react/no-unused-prop-types
|
|
192
163
|
caseInfoID: PropTypes.string,
|
|
193
164
|
// buildName: PropTypes.string,
|
|
194
165
|
getPConnect: PropTypes.func.isRequired,
|
|
@@ -197,25 +168,24 @@ ToDo.propTypes = {
|
|
|
197
168
|
itemKey: PropTypes.string,
|
|
198
169
|
showTodoList: PropTypes.bool,
|
|
199
170
|
// target: PropTypes.string,
|
|
200
|
-
// eslint-disable-next-line react/no-unused-prop-types
|
|
201
171
|
type: PropTypes.string,
|
|
202
172
|
// pageMessages: PropTypes.arrayOf(PropTypes.any),
|
|
203
173
|
// eslint-disable-next-line react/no-unused-prop-types
|
|
204
|
-
context: PropTypes.string
|
|
174
|
+
context: PropTypes.string
|
|
205
175
|
// hideActionButtons: PropTypes.bool
|
|
206
176
|
};
|
|
207
177
|
ToDo.defaultProps = {
|
|
208
|
-
caseInfoID:
|
|
178
|
+
caseInfoID: '',
|
|
209
179
|
datasource: [],
|
|
210
180
|
myWorkList: {},
|
|
211
181
|
// buildName: "",
|
|
212
|
-
headerText:
|
|
213
|
-
itemKey:
|
|
182
|
+
headerText: 'To do',
|
|
183
|
+
itemKey: '',
|
|
214
184
|
showTodoList: true,
|
|
215
185
|
// target: "",
|
|
216
|
-
type:
|
|
186
|
+
type: 'worklist',
|
|
217
187
|
// pageMessages: null,
|
|
218
|
-
context:
|
|
188
|
+
context: ''
|
|
219
189
|
// hideActionButtons: false
|
|
220
190
|
};
|
|
221
191
|
//# sourceMappingURL=ToDo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToDo.js","sourceRoot":"","sources":["../../../../src/components/infra/ToDo/ToDo.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Utils } from '../../helpers/utils';\nimport {\n Box,\n Button,\n Card,\n CardContent,\n CardHeader,\n Avatar,\n Typography,\n Badge,\n List,\n ListItem,\n ListItemText,\n ListItemSecondaryAction,\n} from \"@material-ui/core\";\nimport Snackbar from '@material-ui/core/Snackbar';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport ArrowForwardIosOutlinedIcon from '@material-ui/icons/ArrowForwardIosOutlined';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTheme } from '@material-ui/core/styles';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\n\nimport './ToDo.css';\n\n// import { useNavBar } from \"../templates/AppShell\";\n\nfunction getCaseInfoAssignment(assignmentsSource: Array<any>, caseInfoID: string) {\n const result: Array<any> = [];\n for (const source of assignmentsSource) {\n if (source.ID.indexOf(caseInfoID) >= 0) {\n const listRow = JSON.parse(JSON.stringify(source));\n // urgency becomes priority\n listRow['priority'] = listRow.urgency || undefined;\n // mimic regular list\n listRow['id'] = listRow['ID'] || undefined;\n result.push(listRow);\n }\n }\n\n return result;\n}\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n borderLeft: \"6px solid\",\n borderLeftColor: theme.palette.primary.light\n },\n avatar: {\n backgroundColor: theme.palette.primary.light,\n color: theme.palette.getContrastText(theme.palette.primary.light),\n }\n}));\n\ndeclare const PCore: any;\n\nexport default function ToDo(props) {\n const {\n caseInfoID,\n datasource,\n getPConnect,\n headerText,\n showTodoList,\n myWorkList\n } = props;\n\n const bLogging = true;\n const [bShowMore, setBShowMore] = useState( true );\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const[currentUser, setCurrentUser] = useState(PCore.getEnvironmentInfo().getOperatorName());\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const[currentUserInitials, setCurrentUserInitials] = useState(Utils.getInitials(currentUser));\n const [showSnackbar, setShowSnackbar] = useState(false);\n const [snackbarMessage, setSnackbarMessage]: any = useState(\"\");\n\n\n const thePConn = getPConnect();\n let assignmentCount = 0;\n const assignmentsSource = datasource?.source || myWorkList?.source;\n // let arAssignments : Array<any> = [];\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const[arAssignments, setArAssignments] = useState<Array<any>>( initAssignments() );\n const classes = useStyles();\n const theme = useTheme();\n const isDesktop = useMediaQuery(theme.breakpoints.up('md'));\n // const { setOpen } = useNavBar();\n\n function topThreeAssignments(arList: Array<any>): Array<any> {\n const arList3: Array<any> = new Array<any>();\n\n if (arList && typeof(arList) === \"object\") {\n let len = arList.length;\n if (len > 3) len = 3;\n\n for (let i =0; i < len; i+=1) {\n arList3.push(arList[i]);\n }\n }\n return arList3;\n }\n\n function getID(assignment: any) {\n let sID = \"\";\n if (assignment.value) {\n const refKey = assignment.value;\n sID = refKey.substring(refKey.lastIndexOf(\" \") + 1);\n }\n else {\n const refKey = assignment.ID;\n const arKeys = refKey.split(\"!\")[0].split(\" \");\n sID = arKeys[2];\n }\n return sID;\n }\n\n\n function showToast(message: string) {\n const theMessage = `Assignment: ${message}`;\n // eslint-disable-next-line no-console\n console.error(theMessage);\n setSnackbarMessage(message);\n setShowSnackbar(true);\n }\n\n\n function handleSnackbarClose(event: React.SyntheticEvent | React.MouseEvent, reason?: string) {\n if (reason === 'clickaway') {\n return;\n }\n setShowSnackbar(false);\n };\n\n\n function _showMore() {\n setBShowMore(false);\n setArAssignments(assignmentsSource);\n }\n\n\n function _showLess() {\n setBShowMore(true);\n setArAssignments(topThreeAssignments(assignmentsSource));\n }\n\n\n function clickGo(inAssignmentArray: any) {\n //\n // By Sherif\n // Disable closing the side bar per standup vote\n //\n // setOpen(false);\n\n const { id } = inAssignmentArray[0];\n let { classname = \"\" } = inAssignmentArray[0];\n const sTarget = thePConn.getContainerName();\n const sTargetContainerName = sTarget;\n\n const options = { \"containerName\": sTargetContainerName};\n\n if (classname === null || classname === \"\") {\n classname = thePConn.getCaseInfo().getClassName();\n }\n\n if (sTarget === \"workarea\") {\n options[\"isActionFromToDoList\"] = true;\n options[\"target\"] = \"\";\n options[\"context\"] = null;\n options[\"isChild\"] = undefined;\n }\n else {\n options[\"isActionFromToDoList\"] = false;\n options[\"target\"] = sTarget;\n }\n\n thePConn.getActionsApi().openAssignment(id, classname, options).then(() => {\n if (bLogging) {\n // eslint-disable-next-line no-console\n console.log(`openAssignment completed`);\n }\n })\n .catch(() => {\n showToast( `Submit failed!`);\n });\n\n }\n\n\n function initAssignments() : Array<any> {\n if (showTodoList) {\n if (assignmentsSource) {\n assignmentCount = (assignmentsSource !== null) ? assignmentsSource.length : 0;\n return topThreeAssignments(assignmentsSource);\n }else {\n // turn off todolist\n return [];\n }\n }\n else if (caseInfoID !== undefined) {\n // get caseInfoId assignment.\n return getCaseInfoAssignment(assignmentsSource, caseInfoID);\n }\n return [];\n }\n\n const getListItemComponent = assignment => {\n if (isDesktop) {\n return (\n <>\n Task in\n <Button size=\"small\" color=\"primary\">{`${assignment.name} ${getID(assignment)}`}</Button>\n {` \\u2022 `}<span className=\"psdk-todo-assignment-status\">{assignment.status}</span>\n {` \\u2022 Priority ${assignment.priority}`}\n </>\n )\n } return (\n <>\n <Button size=\"small\" color=\"primary\">{`${assignment.name} ${getID(assignment)}`}</Button>\n {` \\u2022 Priority ${assignment.priority}`}\n </>\n )\n }\n\n return (\n <React.Fragment>\n <Card className={classes.root}>\n {\n showTodoList && (\n <CardHeader\n title={\n <Badge badgeContent={assignmentCount} color=\"primary\">\n <Typography variant=\"h6\">{headerText} </Typography>\n </Badge>\n }\n avatar={\n <Avatar className={classes.avatar}>\n {currentUserInitials}\n </Avatar>\n }\n ></CardHeader>\n )\n }\n <CardContent>\n <List>\n {\n arAssignments.map(assignment => (\n <ListItem\n key={assignment.id}\n dense\n divider\n onClick={() => clickGo([assignment])}\n >\n <ListItemText\n primary={assignment.stepName}\n secondary={getListItemComponent(assignment)}\n />\n <ListItemSecondaryAction>\n <IconButton onClick={() => clickGo([assignment])}>\n <ArrowForwardIosOutlinedIcon />\n </IconButton>\n </ListItemSecondaryAction>\n </ListItem>\n ))\n }\n </List>\n </CardContent>\n {\n showTodoList && (\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n >\n {\n bShowMore ? <Button color=\"primary\" onClick={_showMore}>Show more</Button>\n : <Button onClick={_showLess}>Show less</Button>\n }\n </Box>\n )\n }\n </Card>\n\n <Snackbar\n open={showSnackbar}\n autoHideDuration={3000}\n onClose={handleSnackbarClose}\n message={snackbarMessage}\n action={\n <IconButton size=\"small\" aria-label=\"close\" color=\"inherit\" onClick={handleSnackbarClose}>\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n }\n />\n </React.Fragment>\n );\n}\n\nToDo.propTypes = {\n datasource: PropTypes.instanceOf(Object),\n myWorkList: PropTypes.instanceOf(Object),\n caseInfoID: PropTypes.string,\n // buildName: PropTypes.string,\n getPConnect: PropTypes.func.isRequired,\n headerText: PropTypes.string,\n // eslint-disable-next-line react/no-unused-prop-types\n itemKey: PropTypes.string,\n showTodoList: PropTypes.bool,\n // target: PropTypes.string,\n // eslint-disable-next-line react/no-unused-prop-types\n type: PropTypes.string,\n // pageMessages: PropTypes.arrayOf(PropTypes.any),\n // eslint-disable-next-line react/no-unused-prop-types\n context: PropTypes.string,\n // hideActionButtons: PropTypes.bool\n};\n\nToDo.defaultProps = {\n caseInfoID: \"\",\n datasource: [],\n myWorkList: {},\n // buildName: \"\",\n headerText: \"To do\",\n itemKey: \"\",\n showTodoList: true,\n // target: \"\",\n type: \"worklist\",\n // pageMessages: null,\n context: \"\",\n // hideActionButtons: false\n};\n"]}
|
|
1
|
+
{"version":3,"file":"ToDo.js","sourceRoot":"","sources":["../../../../src/components/infra/ToDo/ToDo.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Utils } from '../../helpers/utils';\nimport {\n Box,\n Button,\n Card,\n CardContent,\n CardHeader,\n Avatar,\n Typography,\n Badge,\n List,\n ListItem,\n ListItemText,\n ListItemSecondaryAction\n} from '@material-ui/core';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport ArrowForwardIosOutlinedIcon from '@material-ui/icons/ArrowForwardIosOutlined';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTheme } from '@material-ui/core/styles';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\n\nimport './ToDo.css';\n\ndeclare const PCore: any;\n\nfunction topThreeAssignments(assignmentsSource: Array<any>): Array<any> {\n return Array.isArray(assignmentsSource) ? assignmentsSource.slice(0, 3) : [];\n}\n\nfunction getID(assignment: any) {\n if (assignment.value) {\n const refKey = assignment.value;\n return refKey.substring(refKey.lastIndexOf(' ') + 1);\n } else {\n const refKey = assignment.ID;\n const arKeys = refKey.split('!')[0].split(' ');\n return arKeys[2];\n }\n}\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n borderLeft: '6px solid',\n borderLeftColor: theme.palette.primary.light\n },\n avatar: {\n backgroundColor: theme.palette.primary.light,\n color: theme.palette.getContrastText(theme.palette.primary.light)\n }\n}));\n\nexport default function ToDo(props) {\n const { datasource, getPConnect, headerText, showTodoList, myWorkList, type } = props;\n\n const CONSTS = PCore.getConstants();\n\n const bLogging = true;\n let assignmentCount = 0;\n const currentUser = PCore.getEnvironmentInfo().getOperatorName();\n const currentUserInitials = Utils.getInitials(currentUser);\n const assignmentsSource = datasource?.source || myWorkList?.source;\n\n const [bShowMore, setBShowMore] = useState(true);\n const [showSnackbar, setShowSnackbar] = useState(false);\n const [snackbarMessage, setSnackbarMessage]: any = useState('');\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const [assignments, setAssignments] = useState<Array<any>>(initAssignments());\n\n const thePConn = getPConnect();\n const classes = useStyles();\n const theme = useTheme();\n const isDesktop = useMediaQuery(theme.breakpoints.up('md'));\n // const { setOpen } = useNavBar();\n\n function initAssignments(): Array<any> {\n if (assignmentsSource) {\n assignmentCount = assignmentsSource.length;\n return topThreeAssignments(assignmentsSource);\n } else {\n // turn off todolist\n return [];\n }\n }\n\n const getAssignmentkey = assignment => {\n return type === CONSTS.TODO ? assignment.ID : assignment.id;\n };\n\n const getPriority = assignment => {\n return type === CONSTS.TODO ? assignment.urgency : assignment.priority;\n };\n\n const getAssignmentName = assignment => {\n return type === CONSTS.TODO ? assignment.name : assignment.stepName;\n };\n\n function showToast(message: string) {\n const theMessage = `Assignment: ${message}`;\n // eslint-disable-next-line no-console\n console.error(theMessage);\n setSnackbarMessage(message);\n setShowSnackbar(true);\n }\n\n function handleSnackbarClose(event: React.SyntheticEvent | React.MouseEvent, reason?: string) {\n if (reason === 'clickaway') {\n return;\n }\n setShowSnackbar(false);\n }\n\n function _showMore() {\n setBShowMore(false);\n setAssignments(assignmentsSource);\n }\n\n function _showLess() {\n setBShowMore(true);\n setAssignments(topThreeAssignments(assignmentsSource));\n }\n\n function clickGo(assignment) {\n const { id } = assignment;\n let { classname = '' } = assignment;\n const sTarget = thePConn.getContainerName();\n const sTargetContainerName = sTarget;\n\n const options = { containerName: sTargetContainerName };\n\n if (classname === null || classname === '') {\n classname = thePConn.getCaseInfo().getClassName();\n }\n\n if (sTarget === 'workarea') {\n options['isActionFromToDoList'] = true;\n options['target'] = '';\n options['context'] = null;\n options['isChild'] = undefined;\n } else {\n options['isActionFromToDoList'] = false;\n options['target'] = sTarget;\n }\n\n thePConn\n .getActionsApi()\n .openAssignment(id, classname, options)\n .then(() => {\n if (bLogging) {\n // eslint-disable-next-line no-console\n console.log(`openAssignment completed`);\n }\n })\n .catch(() => {\n showToast(`Submit failed!`);\n });\n }\n\n const getListItemComponent = assignment => {\n if (isDesktop) {\n return (\n <>\n Task in\n <Button size='small' color='primary'>{`${assignment.name} ${getID(assignment)}`}</Button>\n {` \\u2022 `}\n <span className='psdk-todo-assignment-status'>{assignment.status}</span>\n {` \\u2022 Urgency ${getPriority(assignment)}`}\n </>\n );\n }\n return (\n <>\n <Button size='small' color='primary'>{`${assignment.name} ${getID(assignment)}`}</Button>\n {` \\u2022 Urgency ${getPriority(assignment)}`}\n </>\n );\n };\n\n return (\n <React.Fragment>\n <Card className={classes.root}>\n {showTodoList && (\n <CardHeader\n title={\n <Badge badgeContent={assignmentCount} color='primary'>\n <Typography variant='h6'>{headerText} </Typography>\n </Badge>\n }\n avatar={<Avatar className={classes.avatar}>{currentUserInitials}</Avatar>}\n ></CardHeader>\n )}\n <CardContent>\n <List>\n {assignments.map(assignment => (\n <ListItem\n key={getAssignmentkey(assignment)}\n dense\n divider\n onClick={() => clickGo(assignment)}\n >\n <ListItemText\n primary={getAssignmentName(assignment)}\n secondary={getListItemComponent(assignment)}\n />\n <ListItemSecondaryAction>\n <IconButton onClick={() => clickGo(assignment)}>\n <ArrowForwardIosOutlinedIcon />\n </IconButton>\n </ListItemSecondaryAction>\n </ListItem>\n ))}\n </List>\n </CardContent>\n {assignmentCount > 3 && (\n <Box display='flex' justifyContent='center'>\n {bShowMore ? (\n <Button color='primary' onClick={_showMore}>\n Show more\n </Button>\n ) : (\n <Button onClick={_showLess}>Show less</Button>\n )}\n </Box>\n )}\n </Card>\n\n <Snackbar\n open={showSnackbar}\n autoHideDuration={3000}\n onClose={handleSnackbarClose}\n message={snackbarMessage}\n action={\n <IconButton size='small' aria-label='close' color='inherit' onClick={handleSnackbarClose}>\n <CloseIcon fontSize='small' />\n </IconButton>\n }\n />\n </React.Fragment>\n );\n}\n\nToDo.propTypes = {\n datasource: PropTypes.instanceOf(Object),\n myWorkList: PropTypes.instanceOf(Object),\n // eslint-disable-next-line react/no-unused-prop-types\n caseInfoID: PropTypes.string,\n // buildName: PropTypes.string,\n getPConnect: PropTypes.func.isRequired,\n headerText: PropTypes.string,\n // eslint-disable-next-line react/no-unused-prop-types\n itemKey: PropTypes.string,\n showTodoList: PropTypes.bool,\n // target: PropTypes.string,\n type: PropTypes.string,\n // pageMessages: PropTypes.arrayOf(PropTypes.any),\n // eslint-disable-next-line react/no-unused-prop-types\n context: PropTypes.string\n // hideActionButtons: PropTypes.bool\n};\n\nToDo.defaultProps = {\n caseInfoID: '',\n datasource: [],\n myWorkList: {},\n // buildName: \"\",\n headerText: 'To do',\n itemKey: '',\n showTodoList: true,\n // target: \"\",\n type: 'worklist',\n // pageMessages: null,\n context: ''\n // hideActionButtons: false\n};\n"]}
|
package/package.json
CHANGED