@pega/react-sdk-components 0.23.8 → 0.23.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/lib/components/designSystemExtensions/FieldGroupList/FieldGroupList.d.ts.map +1 -1
  2. package/lib/components/designSystemExtensions/FieldGroupList/FieldGroupList.js +4 -4
  3. package/lib/components/designSystemExtensions/FieldGroupList/FieldGroupList.js.map +1 -1
  4. package/lib/components/forms/AutoComplete/AutoComplete.d.ts.map +1 -1
  5. package/lib/components/forms/AutoComplete/AutoComplete.js +7 -2
  6. package/lib/components/forms/AutoComplete/AutoComplete.js.map +1 -1
  7. package/lib/components/helpers/reactContextHelpers.d.ts +9 -0
  8. package/lib/components/helpers/reactContextHelpers.d.ts.map +1 -0
  9. package/lib/components/helpers/reactContextHelpers.js +9 -0
  10. package/lib/components/helpers/reactContextHelpers.js.map +1 -0
  11. package/lib/components/infra/Assignment/Assignment.d.ts +2 -2
  12. package/lib/components/infra/Assignment/Assignment.d.ts.map +1 -1
  13. package/lib/components/infra/Assignment/Assignment.js +6 -4
  14. package/lib/components/infra/Assignment/Assignment.js.map +1 -1
  15. package/lib/components/infra/Containers/ModalViewContainer/ModalViewContainer.js +1 -1
  16. package/lib/components/infra/Containers/ModalViewContainer/ModalViewContainer.js.map +1 -1
  17. package/lib/components/infra/NavBar/NavBar.js +1 -1
  18. package/lib/components/infra/NavBar/NavBar.js.map +1 -1
  19. package/lib/components/infra/VerticalTabs/VerticalTabs/VerticalTabs.js +1 -1
  20. package/lib/components/infra/VerticalTabs/VerticalTabs/VerticalTabs.js.map +1 -1
  21. package/lib/components/templates/AppShell/AppShell.d.ts +0 -4
  22. package/lib/components/templates/AppShell/AppShell.d.ts.map +1 -1
  23. package/lib/components/templates/AppShell/AppShell.js +2 -3
  24. package/lib/components/templates/AppShell/AppShell.js.map +1 -1
  25. package/lib/components/templates/AppShell/index.js.map +1 -1
  26. package/lib/components/templates/CaseViewActionsMenu/CaseViewActionsMenu.js +1 -1
  27. package/lib/components/templates/CaseViewActionsMenu/CaseViewActionsMenu.js.map +1 -1
  28. package/lib/components/templates/FieldGroupTemplate/FieldGroupTemplate.d.ts.map +1 -1
  29. package/lib/components/templates/FieldGroupTemplate/FieldGroupTemplate.js +12 -4
  30. package/lib/components/templates/FieldGroupTemplate/FieldGroupTemplate.js.map +1 -1
  31. package/lib/components/{infra → widgets}/Attachment/Attachment.css +0 -0
  32. package/lib/components/{infra → widgets}/Attachment/Attachment.d.ts +0 -0
  33. package/lib/components/widgets/Attachment/Attachment.d.ts.map +1 -0
  34. package/lib/components/{infra → widgets}/Attachment/Attachment.js +0 -0
  35. package/lib/components/widgets/Attachment/Attachment.js.map +1 -0
  36. package/lib/components/{infra → widgets}/Attachment/AttachmentUtils.d.ts +0 -0
  37. package/lib/components/widgets/Attachment/AttachmentUtils.d.ts.map +1 -0
  38. package/lib/components/{infra → widgets}/Attachment/AttachmentUtils.js +0 -0
  39. package/lib/components/widgets/Attachment/AttachmentUtils.js.map +1 -0
  40. package/lib/components/{infra → widgets}/Attachment/index.d.ts +0 -0
  41. package/lib/components/widgets/Attachment/index.d.ts.map +1 -0
  42. package/lib/components/{infra → widgets}/Attachment/index.js +0 -0
  43. package/lib/components/widgets/Attachment/index.js.map +1 -0
  44. package/lib/components/widgets/FileUtility/FileUtility/FileUtility.js +1 -1
  45. package/lib/components/widgets/FileUtility/FileUtility/FileUtility.js.map +1 -1
  46. package/lib/sdk-pega-component-map.d.ts +1 -1
  47. package/lib/sdk-pega-component-map.js +1 -1
  48. package/lib/sdk-pega-component-map.js.map +1 -1
  49. package/package.json +1 -1
  50. package/lib/components/infra/Attachment/Attachment.d.ts.map +0 -1
  51. package/lib/components/infra/Attachment/Attachment.js.map +0 -1
  52. package/lib/components/infra/Attachment/AttachmentUtils.d.ts.map +0 -1
  53. package/lib/components/infra/Attachment/AttachmentUtils.js.map +0 -1
  54. package/lib/components/infra/Attachment/index.d.ts.map +0 -1
  55. package/lib/components/infra/Attachment/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VerticalTabs.js","sourceRoot":"","sources":["../../../../../src/components/infra/VerticalTabs/VerticalTabs/VerticalTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,IAAI,MAAM,wBAAwB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,gDAAgD,CAAC;AAGlF,+FAA+F;AAC/F,2FAA2F;AAC3F,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACpC;IACA,IAAI,EAAE;QACJ,cAAc,EAAE;YACd,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;YACxC,KAAK,EAAE,KAAK;SACb;KACF;CACJ,CAAC,CAAC,CAAC;AAEJ,8CAA8C;AAC9C,4FAA4F;AAC5F,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,cAAuC,EAAsB,EAAE;IAC3G,IAAI,MAAM,EAAE;QACV,OAAO,IAAI,WAAW,CAAC,SAAS,EAAE;YAChC,MAAM,EAAE,EAAE,cAAc,EAAE;SAC3B,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAGF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK;IACxC,sFAAsF;IACtF,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5B,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QAEb,MAAM,SAAS,GAAG,EAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAC,CAAC;QACpD,MAAM,OAAO,GAAG,iBAAiB,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAEjE,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,QAAQ,CAAC,aAAa,CAAE,OAAO,CAAE,CAAC;SACnC;IAEH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,YAAY,GAAG,CAAC,KAA4B,EAAE,QAAgB,EAAE,EAAE;QACtE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO,CACL,6BAAK,EAAE,EAAC,cAAc;QAEpB,oBAAC,IAAI,IACH,SAAS,EAAE,OAAO,CAAC,IAAI,EACvB,WAAW,EAAC,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,IACrB,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAC,oBAAoB,OAAK,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,GAAI,CAAC,CACvF,CACH,CACP,CAAA;AACH,CAAC;AAED,YAAY,CAAC,YAAY,GAAG;IAC1B,SAAS,EAAE,EAAE;CACd,CAAC;AAEF,YAAY,CAAC,SAAS,GAAG;IACvB,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;CAC/C,CAAC","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { makeStyles } from '@material-ui/core/styles'\n\nimport Tabs from '@material-ui/core/Tabs';\nimport LeftAlignVerticalTab from '../LeftAlignVerticalTabs/LeftAlignVerticalTabs';\n\n\n// The MuiTabs-indicator class is in a span whose parent is div (under the Tabs root component)\n// So, we're going to make the selected vertical tab indicator use a color from our theme.\nconst useStyles = makeStyles((theme) => (\n {\n tabs: {\n '& div > span': {\n backgroundColor: theme.palette.info.dark,\n width: \"3px\"\n },\n },\n}));\n\n// Implementation of custom event inspired by:\n// https://betterprogramming.pub/master-your-react-skills-with-event-listeners-ebc01dde4fad\nconst createCustomEvent = (eventName: string, additionalData: {[key: string]: string}): CustomEvent | null => {\n if (window) {\n return new CustomEvent(eventName, {\n detail: { additionalData }\n });\n }\n\n return null;\n};\n\n\nexport default function VerticalTabs(props) {\n // Get a React warning when we use tabConfig as mixed case. So all lowercase tabconfig\n const { tabconfig } = props;\n const classes = useStyles();\n const [value, setValue] = useState(0);\n\n useEffect(() => {\n\n const eventData = {\"itemClicked\": value.toString()};\n const myEvent = createCustomEvent('VerticalTabClick', eventData);\n\n if (myEvent !== null) {\n document.dispatchEvent( myEvent );\n }\n\n }, [value]);\n\n const handleChange = (event: React.ChangeEvent<{}>, newValue: number) => {\n setValue(newValue);\n };\n\n return (\n <div id=\"VerticalTabs\">\n {/* VerticalTabs: {JSON.stringify(tabconfig)} */}\n <Tabs\n className={classes.tabs}\n orientation=\"vertical\"\n value={value}\n onChange={handleChange}>\n {tabconfig.map((tab) => <LeftAlignVerticalTab {...props} label={tab.name} key={tab.name} />)}\n </Tabs>\n </div>\n )\n}\n\nVerticalTabs.defaultProps = {\n tabconfig: []\n};\n\nVerticalTabs.propTypes = {\n tabconfig: PropTypes.arrayOf(PropTypes.object)\n};\n"]}
1
+ {"version":3,"file":"VerticalTabs.js","sourceRoot":"","sources":["../../../../../src/components/infra/VerticalTabs/VerticalTabs/VerticalTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,IAAI,MAAM,wBAAwB,CAAC;AAC1C,OAAO,oBAAoB,MAAM,0BAA0B,CAAC;AAG5D,+FAA+F;AAC/F,2FAA2F;AAC3F,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACpC;IACA,IAAI,EAAE;QACJ,cAAc,EAAE;YACd,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;YACxC,KAAK,EAAE,KAAK;SACb;KACF;CACJ,CAAC,CAAC,CAAC;AAEJ,8CAA8C;AAC9C,4FAA4F;AAC5F,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,cAAuC,EAAsB,EAAE;IAC3G,IAAI,MAAM,EAAE;QACV,OAAO,IAAI,WAAW,CAAC,SAAS,EAAE;YAChC,MAAM,EAAE,EAAE,cAAc,EAAE;SAC3B,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAGF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK;IACxC,sFAAsF;IACtF,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5B,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QAEb,MAAM,SAAS,GAAG,EAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAC,CAAC;QACpD,MAAM,OAAO,GAAG,iBAAiB,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAEjE,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,QAAQ,CAAC,aAAa,CAAE,OAAO,CAAE,CAAC;SACnC;IAEH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,YAAY,GAAG,CAAC,KAA4B,EAAE,QAAgB,EAAE,EAAE;QACtE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO,CACL,6BAAK,EAAE,EAAC,cAAc;QAEpB,oBAAC,IAAI,IACH,SAAS,EAAE,OAAO,CAAC,IAAI,EACvB,WAAW,EAAC,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,IACrB,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAC,oBAAoB,OAAK,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,GAAI,CAAC,CACvF,CACH,CACP,CAAA;AACH,CAAC;AAED,YAAY,CAAC,YAAY,GAAG;IAC1B,SAAS,EAAE,EAAE;CACd,CAAC;AAEF,YAAY,CAAC,SAAS,GAAG;IACvB,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;CAC/C,CAAC","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { makeStyles } from '@material-ui/core/styles'\n\nimport Tabs from '@material-ui/core/Tabs';\nimport LeftAlignVerticalTab from '../LeftAlignVerticalTabs';\n\n\n// The MuiTabs-indicator class is in a span whose parent is div (under the Tabs root component)\n// So, we're going to make the selected vertical tab indicator use a color from our theme.\nconst useStyles = makeStyles((theme) => (\n {\n tabs: {\n '& div > span': {\n backgroundColor: theme.palette.info.dark,\n width: \"3px\"\n },\n },\n}));\n\n// Implementation of custom event inspired by:\n// https://betterprogramming.pub/master-your-react-skills-with-event-listeners-ebc01dde4fad\nconst createCustomEvent = (eventName: string, additionalData: {[key: string]: string}): CustomEvent | null => {\n if (window) {\n return new CustomEvent(eventName, {\n detail: { additionalData }\n });\n }\n\n return null;\n};\n\n\nexport default function VerticalTabs(props) {\n // Get a React warning when we use tabConfig as mixed case. So all lowercase tabconfig\n const { tabconfig } = props;\n const classes = useStyles();\n const [value, setValue] = useState(0);\n\n useEffect(() => {\n\n const eventData = {\"itemClicked\": value.toString()};\n const myEvent = createCustomEvent('VerticalTabClick', eventData);\n\n if (myEvent !== null) {\n document.dispatchEvent( myEvent );\n }\n\n }, [value]);\n\n const handleChange = (event: React.ChangeEvent<{}>, newValue: number) => {\n setValue(newValue);\n };\n\n return (\n <div id=\"VerticalTabs\">\n {/* VerticalTabs: {JSON.stringify(tabconfig)} */}\n <Tabs\n className={classes.tabs}\n orientation=\"vertical\"\n value={value}\n onChange={handleChange}>\n {tabconfig.map((tab) => <LeftAlignVerticalTab {...props} label={tab.name} key={tab.name} />)}\n </Tabs>\n </div>\n )\n}\n\nVerticalTabs.defaultProps = {\n tabconfig: []\n};\n\nVerticalTabs.propTypes = {\n tabconfig: PropTypes.arrayOf(PropTypes.object)\n};\n"]}
@@ -1,10 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import PropTypes from "prop-types";
3
3
  import './AppShell.css';
4
- export declare const useNavBar: () => {
5
- open: boolean;
6
- setOpen: (f: any) => any;
7
- };
8
4
  declare function AppShell(props: any): JSX.Element;
9
5
  declare namespace AppShell {
10
6
  var defaultProps: {
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/AppShell/AppShell.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAanC,OAAO,gBAAgB,CAAC;AAsBxB,eAAO,MAAM,SAAS;;;CAA+B,CAAC;AAMtD,iBAAwB,QAAQ,CAAC,KAAK,KAAA,eA0XrC;kBA1XuB,QAAQ;;;;;;;;;;;;;;eAAR,QAAQ"}
1
+ {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/AppShell/AppShell.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAenC,OAAO,gBAAgB,CAAC;AAyBxB,iBAAwB,QAAQ,CAAC,KAAK,KAAA,eA0XrC;kBA1XuB,QAAQ;;;;;;;;;;;;;;eAAR,QAAQ"}
@@ -1,6 +1,7 @@
1
- import React, { useEffect, useState, createContext, useContext } from "react";
1
+ import React, { useEffect, useState } from "react";
2
2
  import PropTypes from "prop-types";
3
3
  import { makeStyles } from '@material-ui/core/styles';
4
+ import { NavContext } from '../../helpers/reactContextHelpers';
4
5
  // import {
5
6
  // Avatar,
6
7
  // Toaster,
@@ -24,8 +25,6 @@ const useStyles = makeStyles((theme) => ({
24
25
  marginRight: theme.spacing(2),
25
26
  },
26
27
  }));
27
- const NavContext = createContext({ open: false, setOpen: f => f });
28
- export const useNavBar = () => useContext(NavContext);
29
28
  /*
30
29
  * The wrapper handles knowing how to take in just children and mapping
31
30
  * to the Cosmos template. This could be a combination of things but it knows...
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.js","sourceRoot":"","sources":["../../../../src/components/templates/AppShell/AppShell.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useState, createContext, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { makeStyles } from '@material-ui/core/styles';\n\n// import {\n// Avatar,\n// Toaster,\n// Banner,\n// AppShell as CosmosAppShell\n// } from \"@pega/cosmos-react-core\";\n\n// import createPConnectComponent from \"../../../bridge/react_pconnect\";\n// import { buildRecentList, onRecentClickHandler } from \"./Recents/utils\";\n\nimport './AppShell.css';\n\n// AppShell can emit NavBar and ViewContainer\nimport NavBar from '../../infra/NavBar';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n },\n content: {\n flexGrow: 1,\n height: '100vh',\n overflow: 'auto',\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2),\n },\n}));\n\ndeclare const PCore;\n\n\nconst NavContext = createContext({open: false, setOpen: f => f});\nexport const useNavBar = () => useContext(NavContext);\n\n/*\n * The wrapper handles knowing how to take in just children and mapping\n * to the Cosmos template. This could be a combination of things but it knows...\n */\nexport default function AppShell(props) {\n const {\n pages,\n caseTypes,\n showAppName,\n children,\n getPConnect,\n } = props;\n const [open, setOpen] = useState(true);\n\n const pConn = getPConnect();\n // const actionsAPI = pConn.getActionsApi();\n const envInfo = PCore.getEnvironmentInfo();\n\n // const bannerRef = useRef(null);\n // const hasBanner = httpMessages && httpMessages.length ? httpMessages.length > 0 : false;\n\n const appNameToDisplay = showAppName ? envInfo.getApplicationLabel() : \"\";\n\n const classes = useStyles();\n // let banners = null;\n // banners = hasBanner && (\n // <Banner\n // ref={bannerRef}\n // id=\"appShellBanner\"\n // variant=\"urgent\"\n // heading=\"Error\"\n // onDismiss={() =>\n // pConn.clearErrorMessages({\n // category: \"HTTP\",\n // context: null\n // })\n // }\n // messages={httpMessages}\n // />\n // );\n\n // useEffect(() => {\n // if (hasBanner && bannerRef.current) {\n // bannerRef.current.focus();\n // window.scrollTo(0, bannerRef.current.offsetTop);\n // }\n // }, [hasBanner]);\n\n /**\n *\n * Function to dispatch a show page action for the page links in\n * the left nav of the app shell\n *\n * @param {string} searchString Name of view to show\n */\n // function showSearchResults(searchString) {\n // if (searchString === \"\") {\n // actionsAPI.showPage(\"pySearchPage\", \"Data-Portal\");\n // return;\n // }\n // const searchTerm = searchString.replace(/['\"]+/g, \"\");\n // PCore.getDataApiUtils()\n // .getData(\n // \"D_pySearch\",\n // `{\"dataViewParameters\": {\"SearchString\": \"${encodeURIComponent(\n // searchTerm\n // )}\"}}`\n // )\n // .then((response) => {\n // if (\n // response.data.data !== null &&\n // response.data.resultCount === 1 &&\n // response.data.data[0].pyID === searchTerm\n // ) {\n // /* This is a match for a work item - then we will open it */\n // pConn\n // .getActionsApi()\n // .openWorkByHandle(\n // response.data.data[0].pzInsKey,\n // response.data.data[0].pzCategoryActionKeys\n // );\n // return;\n // }\n // // window.searchResults = {\n // // searchString: searchTerm,\n // // results: response.data\n // // };\n // actionsAPI.showPage(\"pySearchPage\", \"Data-Portal\");\n // });\n // }\n\n /**\n *\n * Function to dispatch a show page action for the page links in\n * the left nav of the app shell\n *\n * @param {string} viewName Name of view to show\n * @param {string} className Pega Applies to class of the page\n */\n // function showPage(viewName, className) {\n // actionsAPI.showPage(viewName, className);\n // }\n\n /**\n *\n * Function to dispatch a create work action\n * @param {string} className - placeholder string of case type being created\n */\n // function createWork(className) {\n // actionsAPI\n // .createWork(className)\n // .catch((error) =>\n // // eslint-disable-next-line no-console\n // console.log(\"Error in case creation: \", error?.message)\n // );\n // }\n\n /**\n * Returns the Custome Component for each active case\n */\n // const VisualComponent = useCallback(\n // (context) => {\n // if (activeCases && activeCases.length > 0) {\n // const meta = PCore.getViewResources().fetchViewResources(\n // \"pyCaseVisual\",\n // getPConnect(),\n // PCore.getStoreValue(\".caseTypeID\", \"caseInfo\", context)\n // );\n // if (meta?.config && !meta.config.defaultVisual) {\n // const config = {\n // meta,\n // options: {\n // context,\n // pageReference: \"caseInfo.content\"\n // }\n // };\n // const visualConfig = PCore.createPConnect(config);\n // return React.createElement(createPConnectComponent(), visualConfig);\n // }\n // }\n // return undefined;\n // },\n // [getPConnect, activeCases]\n // );\n\n /**\n * Transforms the active cases information into the model that cosmos expect.\n */\n // function getActiveCases() {\n // if (activeCases) {\n // const activeCaseLinks = [];\n // activeCases.forEach((activeCase) => {\n // const { caseID, className, workID, active, context } = activeCase;\n // // activeCaseLinks.push({\n // // onDismiss: () => {\n // // PCore.getContainerUtils().closeContainerItem(\n // // activeCase.containerItemID\n // // );\n // // },\n // // key: caseID,\n // // name: caseID,\n // // onClick: () => {\n // // actionsAPI.openWorkByHandle(workID, className);\n // // },\n // // active,\n // // visual: VisualComponent(context)\n // // });\n // });\n // return activeCaseLinks;\n // }\n // return activeCases;\n // }\n\n /**\n * Translate Pega Data Page into the model that Cosmos expects\n *\n * Example:\n * pxPageViewIcon: \"pi pi-home-solid\"\n * pxURLPath: \"Home\"\n * pyClassName: \"Data-Portal\"\n * pyLabel: \"Home\"\n * pyRuleName: \"pyHome\"\n */\n // const links = !pages\n // ? []\n // : pages.map((page) => {\n // return {\n // name: page.pyLabel,\n // icon: page.pxPageViewIcon.replace(\"pi pi-\", \"\"),\n // onClick: () => showPage(page.pyRuleName, page.pyClassName)\n // };\n // });\n\n // const userName = envInfo.getOperatorName();\n // const imageKey = envInfo.getOperatorImageInsKey();\n\n // const logOffAction = () => {\n // actionsAPI.logout().then(() => window?.top?.location?.reload());\n // };\n\n // const getOperator = () => {\n // const operatorActions = [\n // [{ text: \"Logoff\", id: \"1\", onClick: logOffAction }]\n // ];\n // if (imageKey) {\n // return {\n // avatar: (\n // <div id=\"AvatarWithImageKey\">Avatar with image key</div>\n // // <Avatar\n // // name={userName}\n // // imageSrc={getPConnect().getImagePath(imageKey)}\n // // />\n // ),\n // actions: operatorActions,\n // name: userName\n // };\n // }\n // return {\n // avatar: (\n // <div id=\"Avatar\">Avatar</div>\n // // <Avatar name={userName}>\n // // {userName\n // // .split(\" \")\n // // .map((i) => i.charAt(0))\n // // .join(\"\")\n // // .toUpperCase()}\n // // </Avatar>\n // ),\n // actions: operatorActions,\n // name: userName\n // };\n // };\n\n /**\n * Translate Case Types page into what is expected by Cosmos\n *\n * Example:\n * pyClassName: \"\"\n * pyFlowType: \"\"\n * pyLabel: \"No case types defined\"\n */\n // const cases = !caseTypes\n // ? []\n // : caseTypes.map((caseType) => {\n // let action = {};\n // // Only add actions to entries with a class name to create so in case of empty message no action is added\n // if (caseType.pyClassName) {\n // action = { onClick: () => createWork(caseType.pyClassName) };\n // }\n // return {\n // name: caseType.pyLabel,\n // ...action\n // };\n // });\n\n // const [recents, setRecents] = useState([]);\n\n // const [searchVal, setSearchVal] = useState(\"\");\n\n // // default the icon to be empty. This will cause the image to be initially broken.\n // const [iconURL, setIconURL] = useState(\"\");\n // useEffect(() => {\n // // using the default icon then fetch it from the static folder (not auth involved)\n // if (\n // !portalLogo ||\n // portalLogo.toLowerCase().includes(\"pzpega-logo-mark\") ||\n // portalLogo.toLowerCase().includes(\"py-logo\")\n // ) {\n // setIconURL(\n // `${PCore.getAssetLoader().getStaticServerUrl()}static/py-logo.svg`\n // );\n // }\n // // not using default icon to fetch it using the way which uses authentication\n // else {\n // PCore.getAssetLoader()\n // .getSvcImage(portalLogo)\n // .then((data) => {\n // setIconURL(window.URL.createObjectURL(data));\n // })\n // .catch(() => {\n // console.error(\n // `Unable to load the image for the portal logo/icon with the insName:${portalLogo}`\n // );\n // });\n // }\n // }, [portalLogo]);\n\n /**\n * To fetch recents and translate items into what Cosmos expects\n */\n // const fetchRecents = () => {\n // actionsAPI.getRecents(15).then((response) => {\n // const recentsitems = response.data.recents;\n // // setRecents(buildRecentList(recentsitems));\n // });\n // };\n\n /**\n * To handle on click of any recent item after the drawer is open\n *\n * @param {*} id : Recent item unique id\n */\n\n // const onItemClick = (id, e) => {\n // e.preventDefault();\n // // onRecentClickHandler(id, actionsAPI);\n // };\n\n // useState for appName and mapChildren - note these are ONLY updated once (on component mount!)\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [appName, setAppName] = useState(\"\");\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [mapChildren, setMapChildren] = useState([]);\n\n // Initial setting of appName and mapChildren\n useEffect( () => {\n setAppName(PCore.getEnvironmentInfo().getApplicationName());\n\n const tempMap = pConn.getChildren().map((child, index) => {\n const theChildComp = child.getPConnect().getComponentName();\n const theKey = `.${index}`;\n return <div id={theChildComp} key={theKey} style={{border: \"solid 1px silver\", margin: \"1px\"}}>{theChildComp} will be here</div>\n });\n\n setMapChildren(tempMap)\n\n }, []);\n\n if (pConn.hasChildren()) {\n // const theChildren = pConn.getChildren();\n // const mapChildCompNames = theChildren.map((child) => { return child.getPConnect().getComponentName()});\n\n // debugging/investigation help\n // console.log(`AppShell has children: ${theChildren.length}`);\n // console.log(`--> ${mapChildCompNames.map((name) => {return name;})}`);\n }\n\n return (\n\n <NavContext.Provider value={{open, setOpen}}>\n <div id=\"AppShell\" className={classes.root}>\n <NavBar pConn={getPConnect()} appName={appNameToDisplay} pages={pages} caseTypes={caseTypes}></NavBar>\n <div className={classes.content}>\n {children}\n </div>\n </div>\n </NavContext.Provider>\n\n // <Toaster dismissAfter={3000}>\n // <CosmosAppShell\n // {...{\n // appInfo: {\n // imageSrc: `${iconURL}`,\n // appName: `${appNameToDisplay}`,\n // portalName\n // },\n // recents: {\n // items: recents,\n // onDrawerOpen: fetchRecents,\n // onItemClick\n // },\n // searchInput: {\n // onSearchChange: (value) => {\n // setSearchVal(value);\n // },\n // onSearchSubmit: (value) => {\n // showSearchResults(value.trim());\n // setSearchVal(\"\");\n // },\n // value: searchVal\n // },\n // caseTypes: cases,\n // links,\n // cases: getActiveCases(),\n // operator: getOperator()\n // }}\n // main={[children]}\n // banners={banners}\n // className=\"app-shell\"\n // />\n // </Toaster>\n );\n}\nAppShell.defaultProps = {\n pages: [],\n caseTypes: [],\n children: [],\n // httpMessages: [],\n // activeCases: null\n};\nAppShell.propTypes = {\n // portalName: PropTypes.string/* .isRequired */,\n // portalLogo: PropTypes.string/* .isRequired */,\n showAppName: PropTypes.bool/* .isRequired */,\n pages: PropTypes.arrayOf(PropTypes.object),\n caseTypes: PropTypes.arrayOf(PropTypes.object),\n children: PropTypes.arrayOf(PropTypes.node),\n getPConnect: PropTypes.func.isRequired,\n // httpMessages: PropTypes.arrayOf(PropTypes.string),\n // activeCases: PropTypes.arrayOf(PropTypes.object)\n};\n"]}
1
+ {"version":3,"file":"AppShell.js","sourceRoot":"","sources":["../../../../src/components/templates/AppShell/AppShell.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { NavContext } from '../../helpers/reactContextHelpers';\n\n// import {\n// Avatar,\n// Toaster,\n// Banner,\n// AppShell as CosmosAppShell\n// } from \"@pega/cosmos-react-core\";\n\n// import createPConnectComponent from \"../../../bridge/react_pconnect\";\n// import { buildRecentList, onRecentClickHandler } from \"./Recents/utils\";\n\nimport './AppShell.css';\n\n// AppShell can emit NavBar and ViewContainer\nimport NavBar from '../../infra/NavBar';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n },\n content: {\n flexGrow: 1,\n height: '100vh',\n overflow: 'auto',\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2),\n },\n}));\n\ndeclare const PCore;\n\n\n/*\n * The wrapper handles knowing how to take in just children and mapping\n * to the Cosmos template. This could be a combination of things but it knows...\n */\nexport default function AppShell(props) {\n const {\n pages,\n caseTypes,\n showAppName,\n children,\n getPConnect,\n } = props;\n const [open, setOpen] = useState(true);\n\n const pConn = getPConnect();\n // const actionsAPI = pConn.getActionsApi();\n const envInfo = PCore.getEnvironmentInfo();\n\n // const bannerRef = useRef(null);\n // const hasBanner = httpMessages && httpMessages.length ? httpMessages.length > 0 : false;\n\n const appNameToDisplay = showAppName ? envInfo.getApplicationLabel() : \"\";\n\n const classes = useStyles();\n // let banners = null;\n // banners = hasBanner && (\n // <Banner\n // ref={bannerRef}\n // id=\"appShellBanner\"\n // variant=\"urgent\"\n // heading=\"Error\"\n // onDismiss={() =>\n // pConn.clearErrorMessages({\n // category: \"HTTP\",\n // context: null\n // })\n // }\n // messages={httpMessages}\n // />\n // );\n\n // useEffect(() => {\n // if (hasBanner && bannerRef.current) {\n // bannerRef.current.focus();\n // window.scrollTo(0, bannerRef.current.offsetTop);\n // }\n // }, [hasBanner]);\n\n /**\n *\n * Function to dispatch a show page action for the page links in\n * the left nav of the app shell\n *\n * @param {string} searchString Name of view to show\n */\n // function showSearchResults(searchString) {\n // if (searchString === \"\") {\n // actionsAPI.showPage(\"pySearchPage\", \"Data-Portal\");\n // return;\n // }\n // const searchTerm = searchString.replace(/['\"]+/g, \"\");\n // PCore.getDataApiUtils()\n // .getData(\n // \"D_pySearch\",\n // `{\"dataViewParameters\": {\"SearchString\": \"${encodeURIComponent(\n // searchTerm\n // )}\"}}`\n // )\n // .then((response) => {\n // if (\n // response.data.data !== null &&\n // response.data.resultCount === 1 &&\n // response.data.data[0].pyID === searchTerm\n // ) {\n // /* This is a match for a work item - then we will open it */\n // pConn\n // .getActionsApi()\n // .openWorkByHandle(\n // response.data.data[0].pzInsKey,\n // response.data.data[0].pzCategoryActionKeys\n // );\n // return;\n // }\n // // window.searchResults = {\n // // searchString: searchTerm,\n // // results: response.data\n // // };\n // actionsAPI.showPage(\"pySearchPage\", \"Data-Portal\");\n // });\n // }\n\n /**\n *\n * Function to dispatch a show page action for the page links in\n * the left nav of the app shell\n *\n * @param {string} viewName Name of view to show\n * @param {string} className Pega Applies to class of the page\n */\n // function showPage(viewName, className) {\n // actionsAPI.showPage(viewName, className);\n // }\n\n /**\n *\n * Function to dispatch a create work action\n * @param {string} className - placeholder string of case type being created\n */\n // function createWork(className) {\n // actionsAPI\n // .createWork(className)\n // .catch((error) =>\n // // eslint-disable-next-line no-console\n // console.log(\"Error in case creation: \", error?.message)\n // );\n // }\n\n /**\n * Returns the Custome Component for each active case\n */\n // const VisualComponent = useCallback(\n // (context) => {\n // if (activeCases && activeCases.length > 0) {\n // const meta = PCore.getViewResources().fetchViewResources(\n // \"pyCaseVisual\",\n // getPConnect(),\n // PCore.getStoreValue(\".caseTypeID\", \"caseInfo\", context)\n // );\n // if (meta?.config && !meta.config.defaultVisual) {\n // const config = {\n // meta,\n // options: {\n // context,\n // pageReference: \"caseInfo.content\"\n // }\n // };\n // const visualConfig = PCore.createPConnect(config);\n // return React.createElement(createPConnectComponent(), visualConfig);\n // }\n // }\n // return undefined;\n // },\n // [getPConnect, activeCases]\n // );\n\n /**\n * Transforms the active cases information into the model that cosmos expect.\n */\n // function getActiveCases() {\n // if (activeCases) {\n // const activeCaseLinks = [];\n // activeCases.forEach((activeCase) => {\n // const { caseID, className, workID, active, context } = activeCase;\n // // activeCaseLinks.push({\n // // onDismiss: () => {\n // // PCore.getContainerUtils().closeContainerItem(\n // // activeCase.containerItemID\n // // );\n // // },\n // // key: caseID,\n // // name: caseID,\n // // onClick: () => {\n // // actionsAPI.openWorkByHandle(workID, className);\n // // },\n // // active,\n // // visual: VisualComponent(context)\n // // });\n // });\n // return activeCaseLinks;\n // }\n // return activeCases;\n // }\n\n /**\n * Translate Pega Data Page into the model that Cosmos expects\n *\n * Example:\n * pxPageViewIcon: \"pi pi-home-solid\"\n * pxURLPath: \"Home\"\n * pyClassName: \"Data-Portal\"\n * pyLabel: \"Home\"\n * pyRuleName: \"pyHome\"\n */\n // const links = !pages\n // ? []\n // : pages.map((page) => {\n // return {\n // name: page.pyLabel,\n // icon: page.pxPageViewIcon.replace(\"pi pi-\", \"\"),\n // onClick: () => showPage(page.pyRuleName, page.pyClassName)\n // };\n // });\n\n // const userName = envInfo.getOperatorName();\n // const imageKey = envInfo.getOperatorImageInsKey();\n\n // const logOffAction = () => {\n // actionsAPI.logout().then(() => window?.top?.location?.reload());\n // };\n\n // const getOperator = () => {\n // const operatorActions = [\n // [{ text: \"Logoff\", id: \"1\", onClick: logOffAction }]\n // ];\n // if (imageKey) {\n // return {\n // avatar: (\n // <div id=\"AvatarWithImageKey\">Avatar with image key</div>\n // // <Avatar\n // // name={userName}\n // // imageSrc={getPConnect().getImagePath(imageKey)}\n // // />\n // ),\n // actions: operatorActions,\n // name: userName\n // };\n // }\n // return {\n // avatar: (\n // <div id=\"Avatar\">Avatar</div>\n // // <Avatar name={userName}>\n // // {userName\n // // .split(\" \")\n // // .map((i) => i.charAt(0))\n // // .join(\"\")\n // // .toUpperCase()}\n // // </Avatar>\n // ),\n // actions: operatorActions,\n // name: userName\n // };\n // };\n\n /**\n * Translate Case Types page into what is expected by Cosmos\n *\n * Example:\n * pyClassName: \"\"\n * pyFlowType: \"\"\n * pyLabel: \"No case types defined\"\n */\n // const cases = !caseTypes\n // ? []\n // : caseTypes.map((caseType) => {\n // let action = {};\n // // Only add actions to entries with a class name to create so in case of empty message no action is added\n // if (caseType.pyClassName) {\n // action = { onClick: () => createWork(caseType.pyClassName) };\n // }\n // return {\n // name: caseType.pyLabel,\n // ...action\n // };\n // });\n\n // const [recents, setRecents] = useState([]);\n\n // const [searchVal, setSearchVal] = useState(\"\");\n\n // // default the icon to be empty. This will cause the image to be initially broken.\n // const [iconURL, setIconURL] = useState(\"\");\n // useEffect(() => {\n // // using the default icon then fetch it from the static folder (not auth involved)\n // if (\n // !portalLogo ||\n // portalLogo.toLowerCase().includes(\"pzpega-logo-mark\") ||\n // portalLogo.toLowerCase().includes(\"py-logo\")\n // ) {\n // setIconURL(\n // `${PCore.getAssetLoader().getStaticServerUrl()}static/py-logo.svg`\n // );\n // }\n // // not using default icon to fetch it using the way which uses authentication\n // else {\n // PCore.getAssetLoader()\n // .getSvcImage(portalLogo)\n // .then((data) => {\n // setIconURL(window.URL.createObjectURL(data));\n // })\n // .catch(() => {\n // console.error(\n // `Unable to load the image for the portal logo/icon with the insName:${portalLogo}`\n // );\n // });\n // }\n // }, [portalLogo]);\n\n /**\n * To fetch recents and translate items into what Cosmos expects\n */\n // const fetchRecents = () => {\n // actionsAPI.getRecents(15).then((response) => {\n // const recentsitems = response.data.recents;\n // // setRecents(buildRecentList(recentsitems));\n // });\n // };\n\n /**\n * To handle on click of any recent item after the drawer is open\n *\n * @param {*} id : Recent item unique id\n */\n\n // const onItemClick = (id, e) => {\n // e.preventDefault();\n // // onRecentClickHandler(id, actionsAPI);\n // };\n\n // useState for appName and mapChildren - note these are ONLY updated once (on component mount!)\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [appName, setAppName] = useState(\"\");\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [mapChildren, setMapChildren] = useState([]);\n\n // Initial setting of appName and mapChildren\n useEffect( () => {\n setAppName(PCore.getEnvironmentInfo().getApplicationName());\n\n const tempMap = pConn.getChildren().map((child, index) => {\n const theChildComp = child.getPConnect().getComponentName();\n const theKey = `.${index}`;\n return <div id={theChildComp} key={theKey} style={{border: \"solid 1px silver\", margin: \"1px\"}}>{theChildComp} will be here</div>\n });\n\n setMapChildren(tempMap)\n\n }, []);\n\n if (pConn.hasChildren()) {\n // const theChildren = pConn.getChildren();\n // const mapChildCompNames = theChildren.map((child) => { return child.getPConnect().getComponentName()});\n\n // debugging/investigation help\n // console.log(`AppShell has children: ${theChildren.length}`);\n // console.log(`--> ${mapChildCompNames.map((name) => {return name;})}`);\n }\n\n return (\n\n <NavContext.Provider value={{open, setOpen}}>\n <div id=\"AppShell\" className={classes.root}>\n <NavBar pConn={getPConnect()} appName={appNameToDisplay} pages={pages} caseTypes={caseTypes}></NavBar>\n <div className={classes.content}>\n {children}\n </div>\n </div>\n </NavContext.Provider>\n\n // <Toaster dismissAfter={3000}>\n // <CosmosAppShell\n // {...{\n // appInfo: {\n // imageSrc: `${iconURL}`,\n // appName: `${appNameToDisplay}`,\n // portalName\n // },\n // recents: {\n // items: recents,\n // onDrawerOpen: fetchRecents,\n // onItemClick\n // },\n // searchInput: {\n // onSearchChange: (value) => {\n // setSearchVal(value);\n // },\n // onSearchSubmit: (value) => {\n // showSearchResults(value.trim());\n // setSearchVal(\"\");\n // },\n // value: searchVal\n // },\n // caseTypes: cases,\n // links,\n // cases: getActiveCases(),\n // operator: getOperator()\n // }}\n // main={[children]}\n // banners={banners}\n // className=\"app-shell\"\n // />\n // </Toaster>\n );\n}\nAppShell.defaultProps = {\n pages: [],\n caseTypes: [],\n children: [],\n // httpMessages: [],\n // activeCases: null\n};\nAppShell.propTypes = {\n // portalName: PropTypes.string/* .isRequired */,\n // portalLogo: PropTypes.string/* .isRequired */,\n showAppName: PropTypes.bool/* .isRequired */,\n pages: PropTypes.arrayOf(PropTypes.object),\n caseTypes: PropTypes.arrayOf(PropTypes.object),\n children: PropTypes.arrayOf(PropTypes.node),\n getPConnect: PropTypes.func.isRequired,\n // httpMessages: PropTypes.arrayOf(PropTypes.string),\n // activeCases: PropTypes.arrayOf(PropTypes.object)\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/templates/AppShell/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC","sourcesContent":["export { default } from './AppShell';"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/templates/AppShell/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC","sourcesContent":["export { default } from './AppShell';\n"]}
@@ -17,7 +17,7 @@ export default function CaseViewActionsMenu(props) {
17
17
  function _actionMenuActionsClick(data) {
18
18
  const actionsAPI = thePConn.getActionsApi();
19
19
  const openLocalAction = actionsAPI.openLocalAction.bind(actionsAPI);
20
- openLocalAction(data.ID, { ...data });
20
+ openLocalAction(data.ID, { ...data, containerName: 'modal', type: 'express' });
21
21
  // after doing the action, close the menu...
22
22
  handleClose();
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CaseViewActionsMenu.js","sourceRoot":"","sources":["../../../../src/components/templates/CaseViewActionsMenu/CaseViewActionsMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,IAAI,MAAM,wBAAwB,CAAC;AAC1C,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAElD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,KAAK;IAC/C,MAAM,EAAC,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAC,GAAG,KAAK,CAAC;IAClE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAG/B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAEnE,MAAM,WAAW,GAAG,CAAC,KAA0C,EAAE,EAAE;QACjE,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAe,EAAE,CAAC;IAGnC,SAAS,uBAAuB,CAAC,IAAI;QAEnC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpE,eAAe,CAAE,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAC,CAAC,CAAC;QACtC,4CAA4C;QAC5C,WAAW,EAAE,CAAC;IAEhB,CAAC;IAGD,gBAAgB,CAAC,OAAO,CAAE,CAAC,MAAM,EAAE,EAAE;QACnC,WAAW,CAAC,IAAI,CAAE,oBAAC,QAAQ,IAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAG,MAAM,CAAC,IAAI,CAAY,CAAE,CAAA;IACxH,CAAC,CAAC,CAAC;IAEH,kBAAkB,CAAC,OAAO,CAAE,CAAC,OAAO,EAAE,EAAE;QACtC,WAAW,CAAC,IAAI,CAAE,oBAAC,QAAQ,IAAC,OAAO,EAAE,WAAW,IAAG,OAAO,CAAC,IAAI,CAAY,CAAE,CAAA;IAC/E,CAAC,CAAC,CAAC;IAGH,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ;QACb,oBAAC,MAAM,qBAAe,aAAa,mBAAe,MAAM,EAAC,OAAO,EAAE,WAAW,iBAEpE;QACT,oBAAC,IAAI,IACH,EAAE,EAAC,aAAa,EAChB,QAAQ,EAAE,QAAQ,EAClB,WAAW,QACX,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EACvB,OAAO,EAAE,WAAW,IAEnB,WAAW,CACP,CACQ,CAClB,CAAC;AACJ,CAAC;AAED,mBAAmB,CAAC,YAAY,GAAG;IACjC,gBAAgB,EAAE,EAAE;IACpB,kBAAkB,EAAE,EAAE;CACvB,CAAA;AAED,mBAAmB,CAAC,SAAS,GAAG;IAC9B,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACtC,gBAAgB,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;IACrD,kBAAkB,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;CACrD,CAAC","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from \"prop-types\";\nimport Button from '@material-ui/core/Button';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\n\nexport default function CaseViewActionsMenu(props) {\n const {getPConnect, availableActions, availableProcesses} = props;\n const thePConn = getPConnect();\n\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const arMenuItems: Array<any> = [];\n\n\n function _actionMenuActionsClick(data) {\n\n const actionsAPI = thePConn.getActionsApi();\n const openLocalAction = actionsAPI.openLocalAction.bind(actionsAPI);\n\n openLocalAction( data.ID, { ...data});\n // after doing the action, close the menu...\n handleClose();\n\n }\n\n\n availableActions.forEach( (action) => {\n arMenuItems.push( <MenuItem key={action.ID} onClick={() => _actionMenuActionsClick(action)}>{action.name}</MenuItem> )\n });\n\n availableProcesses.forEach( (process) => {\n arMenuItems.push( <MenuItem onClick={handleClose}>{process.name}</MenuItem> )\n });\n\n\n return (\n <React.Fragment>\n <Button aria-controls=\"simple-menu\" aria-haspopup=\"true\" onClick={handleClick}>\n Actions...\n </Button>\n <Menu\n id=\"simple-menu\"\n anchorEl={anchorEl}\n keepMounted\n open={Boolean(anchorEl)}\n onClose={handleClose}\n >\n {arMenuItems}\n </Menu>\n </React.Fragment>\n );\n}\n\nCaseViewActionsMenu.defaultProps = {\n availableActions: [],\n availableProcesses: []\n}\n\nCaseViewActionsMenu.propTypes = {\n getPConnect: PropTypes.func.isRequired,\n availableActions: PropTypes.arrayOf(PropTypes.object),\n availableProcesses: PropTypes.arrayOf(PropTypes.any)\n};\n"]}
1
+ {"version":3,"file":"CaseViewActionsMenu.js","sourceRoot":"","sources":["../../../../src/components/templates/CaseViewActionsMenu/CaseViewActionsMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,IAAI,MAAM,wBAAwB,CAAC;AAC1C,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAElD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,KAAK;IAC/C,MAAM,EAAC,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAC,GAAG,KAAK,CAAC;IAClE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAG/B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAEnE,MAAM,WAAW,GAAG,CAAC,KAA0C,EAAE,EAAE;QACjE,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAe,EAAE,CAAC;IAGnC,SAAS,uBAAuB,CAAC,IAAI;QAEnC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpE,eAAe,CAAE,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC,CAAC;QAC/E,4CAA4C;QAC5C,WAAW,EAAE,CAAC;IAEhB,CAAC;IAGD,gBAAgB,CAAC,OAAO,CAAE,CAAC,MAAM,EAAE,EAAE;QACnC,WAAW,CAAC,IAAI,CAAE,oBAAC,QAAQ,IAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAG,MAAM,CAAC,IAAI,CAAY,CAAE,CAAA;IACxH,CAAC,CAAC,CAAC;IAEH,kBAAkB,CAAC,OAAO,CAAE,CAAC,OAAO,EAAE,EAAE;QACtC,WAAW,CAAC,IAAI,CAAE,oBAAC,QAAQ,IAAC,OAAO,EAAE,WAAW,IAAG,OAAO,CAAC,IAAI,CAAY,CAAE,CAAA;IAC/E,CAAC,CAAC,CAAC;IAGH,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ;QACb,oBAAC,MAAM,qBAAe,aAAa,mBAAe,MAAM,EAAC,OAAO,EAAE,WAAW,iBAEpE;QACT,oBAAC,IAAI,IACH,EAAE,EAAC,aAAa,EAChB,QAAQ,EAAE,QAAQ,EAClB,WAAW,QACX,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EACvB,OAAO,EAAE,WAAW,IAEnB,WAAW,CACP,CACQ,CAClB,CAAC;AACJ,CAAC;AAED,mBAAmB,CAAC,YAAY,GAAG;IACjC,gBAAgB,EAAE,EAAE;IACpB,kBAAkB,EAAE,EAAE;CACvB,CAAA;AAED,mBAAmB,CAAC,SAAS,GAAG;IAC9B,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACtC,gBAAgB,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;IACrD,kBAAkB,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;CACrD,CAAC","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from \"prop-types\";\nimport Button from '@material-ui/core/Button';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\n\nexport default function CaseViewActionsMenu(props) {\n const {getPConnect, availableActions, availableProcesses} = props;\n const thePConn = getPConnect();\n\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const arMenuItems: Array<any> = [];\n\n\n function _actionMenuActionsClick(data) {\n\n const actionsAPI = thePConn.getActionsApi();\n const openLocalAction = actionsAPI.openLocalAction.bind(actionsAPI);\n\n openLocalAction( data.ID, { ...data, containerName: 'modal', type: 'express'});\n // after doing the action, close the menu...\n handleClose();\n\n }\n\n\n availableActions.forEach( (action) => {\n arMenuItems.push( <MenuItem key={action.ID} onClick={() => _actionMenuActionsClick(action)}>{action.name}</MenuItem> )\n });\n\n availableProcesses.forEach( (process) => {\n arMenuItems.push( <MenuItem onClick={handleClose}>{process.name}</MenuItem> )\n });\n\n\n return (\n <React.Fragment>\n <Button aria-controls=\"simple-menu\" aria-haspopup=\"true\" onClick={handleClick}>\n Actions...\n </Button>\n <Menu\n id=\"simple-menu\"\n anchorEl={anchorEl}\n keepMounted\n open={Boolean(anchorEl)}\n onClose={handleClose}\n >\n {arMenuItems}\n </Menu>\n </React.Fragment>\n );\n}\n\nCaseViewActionsMenu.defaultProps = {\n availableActions: [],\n availableProcesses: []\n}\n\nCaseViewActionsMenu.propTypes = {\n getPConnect: PropTypes.func.isRequired,\n availableActions: PropTypes.arrayOf(PropTypes.object),\n availableProcesses: PropTypes.arrayOf(PropTypes.any)\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldGroupTemplate.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/FieldGroupTemplate/FieldGroupTemplate.tsx"],"names":[],"mappings":";AAEA,OAAO,SAAS,MAAM,YAAY,CAAC;AAQnC,iBAAwB,kBAAkB,CAAC,KAAK,KAAA,eAkE/C;kBAlEuB,kBAAkB;;;;;;;;;;;;;;;;;eAAlB,kBAAkB"}
1
+ {"version":3,"file":"FieldGroupTemplate.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/FieldGroupTemplate/FieldGroupTemplate.tsx"],"names":[],"mappings":";AAEA,OAAO,SAAS,MAAM,YAAY,CAAC;AAQnC,iBAAwB,kBAAkB,CAAC,KAAK,KAAA,eA8E/C;kBA9EuB,kBAAkB;;;;;;;;;;;;;;;;;eAAlB,kBAAkB"}
@@ -5,13 +5,19 @@ import FieldGroup from '../../designSystemExtensions/FieldGroup';
5
5
  import FieldGroupList from '../../designSystemExtensions/FieldGroupList';
6
6
  import { getReferenceList, buildView } from '../../helpers/field-group-utils';
7
7
  export default function FieldGroupTemplate(props) {
8
- const { referenceList, renderMode, contextClass, getPConnect, lookForChildInConfig, heading, displayMode } = props;
8
+ const { referenceList, renderMode, contextClass, getPConnect, lookForChildInConfig, heading, displayMode, fieldHeader, allowTableEdit: allowAddEdit } = props;
9
9
  const pConn = getPConnect();
10
10
  const resolvedList = getReferenceList(pConn);
11
11
  pConn.setReferenceList(resolvedList);
12
12
  const pageReference = `${pConn.getPageReference()}${resolvedList}`;
13
13
  const isReadonlyMode = renderMode === 'ReadOnly' || displayMode === 'LABELS_LEFT';
14
14
  const HEADING = heading ?? 'Row';
15
+ const getDynamicHeaderProp = (item, index) => {
16
+ if (fieldHeader === 'propertyRef' && heading && item[heading.substring(1)]) {
17
+ return item[heading.substring(1)];
18
+ }
19
+ return `Row ${index + 1}`;
20
+ };
15
21
  const addRecord = () => {
16
22
  if (PCore.getPCoreVersion()?.includes('8.7')) {
17
23
  pConn.getListActions().insert({ classID: contextClass }, referenceList.length, pageReference);
@@ -32,17 +38,19 @@ export default function FieldGroupTemplate(props) {
32
38
  pConn.getListActions().deleteEntry(index);
33
39
  }
34
40
  };
35
- if (referenceList.length === 0) {
41
+ if (referenceList.length === 0 && allowAddEdit !== false) {
36
42
  addFieldGroupItem();
37
43
  }
38
44
  const MemoisedChildren = useMemo(() => {
39
45
  return referenceList.map((item, index) => ({
40
46
  id: index,
41
- name: `${HEADING} ${index + 1}`,
47
+ name: fieldHeader === 'propertyRef'
48
+ ? getDynamicHeaderProp(item, index)
49
+ : `${HEADING} ${index + 1}`,
42
50
  children: buildView(pConn, index, lookForChildInConfig)
43
51
  }));
44
52
  }, [referenceList?.length]);
45
- return (React.createElement(FieldGroupList, { items: MemoisedChildren, onAdd: addFieldGroupItem, onDelete: deleteFieldGroupItem }));
53
+ return (React.createElement(FieldGroupList, { items: MemoisedChildren, onAdd: allowAddEdit !== false ? addFieldGroupItem : undefined, onDelete: allowAddEdit !== false ? deleteFieldGroupItem : undefined }));
46
54
  }
47
55
  pConn.setInheritedProp('displayMode', 'LABELS_LEFT');
48
56
  const memoisedReadOnlyList = useMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"FieldGroupTemplate.js","sourceRoot":"","sources":["../../../../src/components/templates/FieldGroupTemplate/FieldGroupTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable react-hooks/rules-of-hooks */\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FieldGroup from '../../designSystemExtensions/FieldGroup';\nimport FieldGroupList from '../../designSystemExtensions/FieldGroupList';\nimport { getReferenceList, buildView } from '../../helpers/field-group-utils';\n\ndeclare const PCore: any;\n\nexport default function FieldGroupTemplate(props) {\n const {\n referenceList,\n renderMode,\n contextClass,\n getPConnect,\n lookForChildInConfig,\n heading,\n displayMode\n } = props;\n const pConn = getPConnect();\n const resolvedList = getReferenceList(pConn);\n pConn.setReferenceList(resolvedList);\n const pageReference = `${pConn.getPageReference()}${resolvedList}`;\n const isReadonlyMode = renderMode === 'ReadOnly' || displayMode === 'LABELS_LEFT';\n const HEADING = heading ?? 'Row';\n\n const addRecord = () => {\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n pConn.getListActions().insert({ classID: contextClass }, referenceList.length, pageReference);\n } else {\n pConn.getListActions().insert({ classID: contextClass }, referenceList.length);\n }\n }\n\n if (!isReadonlyMode) {\n const addFieldGroupItem = () => {\n addRecord();\n };\n const deleteFieldGroupItem = index => {\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n pConn.getListActions().deleteEntry(index, pageReference);\n } else {\n pConn.getListActions().deleteEntry(index);\n }\n };\n if (referenceList.length === 0) {\n addFieldGroupItem();\n }\n\n const MemoisedChildren = useMemo(() => {\n return referenceList.map((item, index) => ({\n id: index,\n name: `${HEADING} ${index + 1}`,\n children: buildView(pConn, index, lookForChildInConfig)\n }));\n }, [referenceList?.length]);\n\n return (\n <FieldGroupList\n items={MemoisedChildren}\n onAdd={addFieldGroupItem}\n onDelete={deleteFieldGroupItem}\n />\n );\n }\n\n pConn.setInheritedProp('displayMode', 'LABELS_LEFT');\n const memoisedReadOnlyList = useMemo(() => {\n return referenceList.map((item, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <FieldGroup item={item} key={index} name={`${HEADING} ${index + 1}`} />\n ));\n }, []);\n\n return <div>{memoisedReadOnlyList}</div>;\n}\n\nFieldGroupTemplate.defaultProps = {\n referenceList: [],\n heading: undefined,\n contextClass: null,\n displayMode: undefined\n};\n\nFieldGroupTemplate.propTypes = {\n referenceList: PropTypes.arrayOf(Object),\n contextClass: PropTypes.string,\n getPConnect: PropTypes.func.isRequired,\n renderMode: PropTypes.string.isRequired,\n heading: PropTypes.string,\n lookForChildInConfig: PropTypes.bool,\n displayMode: PropTypes.string\n};\n"]}
1
+ {"version":3,"file":"FieldGroupTemplate.js","sourceRoot":"","sources":["../../../../src/components/templates/FieldGroupTemplate/FieldGroupTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable react-hooks/rules-of-hooks */\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FieldGroup from '../../designSystemExtensions/FieldGroup';\nimport FieldGroupList from '../../designSystemExtensions/FieldGroupList';\nimport { getReferenceList, buildView } from '../../helpers/field-group-utils';\n\ndeclare const PCore: any;\n\nexport default function FieldGroupTemplate(props) {\n const {\n referenceList,\n renderMode,\n contextClass,\n getPConnect,\n lookForChildInConfig,\n heading,\n displayMode,\n fieldHeader,\n allowTableEdit: allowAddEdit\n } = props;\n const pConn = getPConnect();\n const resolvedList = getReferenceList(pConn);\n pConn.setReferenceList(resolvedList);\n const pageReference = `${pConn.getPageReference()}${resolvedList}`;\n const isReadonlyMode = renderMode === 'ReadOnly' || displayMode === 'LABELS_LEFT';\n const HEADING = heading ?? 'Row';\n\n const getDynamicHeaderProp = (item, index) => {\n if (fieldHeader === 'propertyRef' && heading && item[heading.substring(1)]) {\n return item[heading.substring(1)];\n }\n return `Row ${index + 1}`;\n };\n\n const addRecord = () => {\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n pConn.getListActions().insert({ classID: contextClass }, referenceList.length, pageReference);\n } else {\n pConn.getListActions().insert({ classID: contextClass }, referenceList.length);\n }\n };\n\n if (!isReadonlyMode) {\n const addFieldGroupItem = () => {\n addRecord();\n };\n const deleteFieldGroupItem = index => {\n if (PCore.getPCoreVersion()?.includes('8.7')) {\n pConn.getListActions().deleteEntry(index, pageReference);\n } else {\n pConn.getListActions().deleteEntry(index);\n }\n };\n if (referenceList.length === 0 && allowAddEdit !== false) {\n addFieldGroupItem();\n }\n\n const MemoisedChildren = useMemo(() => {\n return referenceList.map((item, index) => ({\n id: index,\n name:\n fieldHeader === 'propertyRef'\n ? getDynamicHeaderProp(item, index)\n : `${HEADING} ${index + 1}`,\n children: buildView(pConn, index, lookForChildInConfig)\n }));\n }, [referenceList?.length]);\n\n return (\n <FieldGroupList\n items={MemoisedChildren}\n onAdd={allowAddEdit !== false ? addFieldGroupItem : undefined}\n onDelete={allowAddEdit !== false ? deleteFieldGroupItem : undefined}\n />\n );\n }\n\n pConn.setInheritedProp('displayMode', 'LABELS_LEFT');\n const memoisedReadOnlyList = useMemo(() => {\n return referenceList.map((item, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <FieldGroup item={item} key={index} name={`${HEADING} ${index + 1}`} />\n ));\n }, []);\n\n return <div>{memoisedReadOnlyList}</div>;\n}\n\nFieldGroupTemplate.defaultProps = {\n referenceList: [],\n heading: undefined,\n contextClass: null,\n displayMode: undefined\n};\n\nFieldGroupTemplate.propTypes = {\n referenceList: PropTypes.arrayOf(Object),\n contextClass: PropTypes.string,\n getPConnect: PropTypes.func.isRequired,\n renderMode: PropTypes.string.isRequired,\n heading: PropTypes.string,\n lookForChildInConfig: PropTypes.bool,\n displayMode: PropTypes.string\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Attachment.d.ts","sourceRoot":"","sources":["../../../../src/components/widgets/Attachment/Attachment.tsx"],"names":[],"mappings":";AAKA,OAAO,kBAAkB,CAAC;AAW1B,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,KAAA,eAsavC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Attachment.js","sourceRoot":"","sources":["../../../../src/components/widgets/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.error ? att.fileName : att.name,\n icon: \"trash\",\n click: removeFile,\n },\n secondary: {\n text: att.meta,\n error: att.error\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 = (isFetchCanceled) => {\n return (error) => {\n if (!isFetchCanceled(error)) {\n let uploadFailMsg = pConn.getLocalizedValue('Something went wrong');\n if (error.response && error.response.data && error.response.data.errorDetails) {\n uploadFailMsg = pConn.getLocalizedValue(error.response.data.errorDetails[0].localizedValue);\n }\n myFiles[0].meta = uploadFailMsg;\n myFiles[0].error = true;\n myFiles[0].fileName = pConn.getLocalizedValue('Unable to upload file');\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 throw error;\n };\n };\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"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentUtils.d.ts","sourceRoot":"","sources":["../../../../src/components/widgets/Attachment/AttachmentUtils.js"],"names":[],"mappings":"AAEO,yEAGN;AAEM,uEAQN;AAEM,2DAyBN;AAEM,2DAaN;AAEM;;;;;;;EAWN"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentUtils.js","sourceRoot":"","sources":["../../../../src/components/widgets/Attachment/AttachmentUtils.js"],"names":[],"mappings":"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","sourcesContent":["import download from 'downloadjs';\n\nexport const validateMaxSize = (fileObj, maxSizeInMB) => {\n const fileSize = (fileObj.size / 1048576).toFixed(2);\n return parseFloat(fileSize) < parseFloat(maxSizeInMB);\n};\n\nexport const fileDownload = (data, fileName, ext) => {\n const name = ext ? `${fileName}.${ext}` : fileName;\n // Temp fix: downloading EMAIl type attachment as html file\n if (ext === 'html') {\n download(data, name, 'text/html');\n } else {\n download(atob(data), name);\n }\n};\n\nexport const getIconFromFileType = (fileType) => {\n let icon = 'document-doc';\n if (!fileType) return icon;\n if (fileType.startsWith('audio')) {\n icon = 'audio';\n } else if (fileType.startsWith('video')) {\n icon = 'video';\n } else if (fileType.startsWith('image')) {\n icon = 'picture';\n } else if (fileType.includes('pdf')) {\n icon = 'document-pdf';\n } else {\n const [, subtype] = fileType.split('/');\n const foundMatch = (sources) => {\n return sources.some((key) => subtype.includes(key));\n };\n\n if (foundMatch(['excel', 'spreadsheet'])) {\n icon = 'document-xls';\n } else if (foundMatch(['zip', 'compressed', 'gzip', 'rar', 'tar'])) {\n icon = 'document-compress';\n }\n }\n\n return icon;\n};\n\nexport const getIconForAttachment = (attachment) => {\n let icon;\n switch (attachment.type) {\n case \"FILE\":\n icon = this.getIconFromFileType(attachment.mimeType);\n break;\n case \"URL\":\n icon = \"chain\";\n break;\n default:\n icon = \"document-doc\";\n }\n return icon;\n};\n\nexport const buildFilePropsFromResponse = (respObj) => {\n return {\n props: {\n meta: `${respObj.pyCategoryName}, ${respObj.pxCreateOperator}`,\n name: respObj.pyAttachName,\n icon: getIconFromFileType(respObj.pyMimeFileExtension)\n },\n responseProps: {\n ...respObj\n }\n };\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/widgets/Attachment/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/widgets/Attachment/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC","sourcesContent":["export { default } from './Attachment';"]}
@@ -8,7 +8,7 @@ import './FileUtility.css';
8
8
  import { IconButton, Menu, MenuItem } from '@material-ui/core';
9
9
  import MoreVertIcon from '@material-ui/icons/MoreVert';
10
10
  import { Button } from '@material-ui/core';
11
- import { validateMaxSize } from '../../../infra/Attachment/AttachmentUtils';
11
+ import { validateMaxSize } from '../../../widgets/Attachment/AttachmentUtils';
12
12
  import { CircularProgress } from "@material-ui/core";
13
13
  export default function FileUtility(props) {
14
14
  const { getPConnect } = props;