@pega/react-sdk-components 0.23.17 → 0.23.18

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 (142) hide show
  1. package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.d.ts.map +1 -1
  2. package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.js +20 -3
  3. package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.js.map +1 -1
  4. package/lib/components/designSystemExtension/FieldGroup/FieldGroup.d.ts.map +1 -1
  5. package/lib/components/designSystemExtension/FieldGroup/FieldGroup.js +1 -2
  6. package/lib/components/designSystemExtension/FieldGroup/FieldGroup.js.map +1 -1
  7. package/lib/components/designSystemExtension/FieldValueList/FieldValueList.d.ts.map +1 -1
  8. package/lib/components/designSystemExtension/FieldValueList/FieldValueList.js +23 -40
  9. package/lib/components/designSystemExtension/FieldValueList/FieldValueList.js.map +1 -1
  10. package/lib/components/field/AutoComplete/AutoComplete.d.ts.map +1 -1
  11. package/lib/components/field/AutoComplete/AutoComplete.js +5 -5
  12. package/lib/components/field/AutoComplete/AutoComplete.js.map +1 -1
  13. package/lib/components/field/Checkbox/Checkbox.d.ts.map +1 -1
  14. package/lib/components/field/Checkbox/Checkbox.js +5 -5
  15. package/lib/components/field/Checkbox/Checkbox.js.map +1 -1
  16. package/lib/components/field/Currency/Currency.d.ts.map +1 -1
  17. package/lib/components/field/Currency/Currency.js +21 -6
  18. package/lib/components/field/Currency/Currency.js.map +1 -1
  19. package/lib/components/field/Currency/currency-utils.d.ts +11 -0
  20. package/lib/components/field/Currency/currency-utils.d.ts.map +1 -0
  21. package/lib/components/field/Currency/currency-utils.js +60 -0
  22. package/lib/components/field/Currency/currency-utils.js.map +1 -0
  23. package/lib/components/field/Date/Date.d.ts.map +1 -1
  24. package/lib/components/field/Date/Date.js +17 -6
  25. package/lib/components/field/Date/Date.js.map +1 -1
  26. package/lib/components/field/DateTime/DateTime.d.ts.map +1 -1
  27. package/lib/components/field/DateTime/DateTime.js +16 -7
  28. package/lib/components/field/DateTime/DateTime.js.map +1 -1
  29. package/lib/components/field/Decimal/Decimal.d.ts.map +1 -1
  30. package/lib/components/field/Decimal/Decimal.js +5 -5
  31. package/lib/components/field/Decimal/Decimal.js.map +1 -1
  32. package/lib/components/field/Dropdown/Dropdown.d.ts.map +1 -1
  33. package/lib/components/field/Dropdown/Dropdown.js +5 -5
  34. package/lib/components/field/Dropdown/Dropdown.js.map +1 -1
  35. package/lib/components/field/Email/Email.js +5 -5
  36. package/lib/components/field/Email/Email.js.map +1 -1
  37. package/lib/components/field/Integer/Integer.d.ts.map +1 -1
  38. package/lib/components/field/Integer/Integer.js +5 -5
  39. package/lib/components/field/Integer/Integer.js.map +1 -1
  40. package/lib/components/field/Percentage/Percentage.d.ts.map +1 -1
  41. package/lib/components/field/Percentage/Percentage.js +5 -5
  42. package/lib/components/field/Percentage/Percentage.js.map +1 -1
  43. package/lib/components/field/Phone/Phone.d.ts.map +1 -1
  44. package/lib/components/field/Phone/Phone.js +5 -5
  45. package/lib/components/field/Phone/Phone.js.map +1 -1
  46. package/lib/components/field/RadioButtons/RadioButtons.d.ts.map +1 -1
  47. package/lib/components/field/RadioButtons/RadioButtons.js +5 -5
  48. package/lib/components/field/RadioButtons/RadioButtons.js.map +1 -1
  49. package/lib/components/field/SemanticLink/SemanticLink.d.ts.map +1 -1
  50. package/lib/components/field/SemanticLink/SemanticLink.js +5 -1
  51. package/lib/components/field/SemanticLink/SemanticLink.js.map +1 -1
  52. package/lib/components/field/TextArea/TextArea.d.ts.map +1 -1
  53. package/lib/components/field/TextArea/TextArea.js +5 -5
  54. package/lib/components/field/TextArea/TextArea.js.map +1 -1
  55. package/lib/components/field/TextInput/TextInput.d.ts.map +1 -1
  56. package/lib/components/field/TextInput/TextInput.js +5 -5
  57. package/lib/components/field/TextInput/TextInput.js.map +1 -1
  58. package/lib/components/field/Time/Time.d.ts.map +1 -1
  59. package/lib/components/field/Time/Time.js +5 -5
  60. package/lib/components/field/Time/Time.js.map +1 -1
  61. package/lib/components/field/URL/URL.d.ts.map +1 -1
  62. package/lib/components/field/URL/URL.js +5 -5
  63. package/lib/components/field/URL/URL.js.map +1 -1
  64. package/lib/components/helpers/date-format-utils.d.ts +13 -0
  65. package/lib/components/helpers/date-format-utils.d.ts.map +1 -0
  66. package/lib/components/helpers/date-format-utils.js +59 -0
  67. package/lib/components/helpers/date-format-utils.js.map +1 -0
  68. package/lib/components/helpers/formatters/Currency.js +11 -5
  69. package/lib/components/helpers/formatters/Currency.js.map +1 -1
  70. package/lib/components/helpers/formatters/common.d.ts.map +1 -1
  71. package/lib/components/helpers/formatters/common.js +6 -1
  72. package/lib/components/helpers/formatters/common.js.map +1 -1
  73. package/lib/components/helpers/formatters/index.d.ts.map +1 -1
  74. package/lib/components/helpers/formatters/index.js +4 -0
  75. package/lib/components/helpers/formatters/index.js.map +1 -1
  76. package/lib/components/helpers/template-utils.d.ts +14 -0
  77. package/lib/components/helpers/template-utils.d.ts.map +1 -0
  78. package/lib/components/helpers/template-utils.js +65 -0
  79. package/lib/components/helpers/template-utils.js.map +1 -0
  80. package/lib/components/infra/Containers/FlowContainer/FlowContainer.d.ts.map +1 -1
  81. package/lib/components/infra/Containers/FlowContainer/FlowContainer.js +52 -53
  82. package/lib/components/infra/Containers/FlowContainer/FlowContainer.js.map +1 -1
  83. package/lib/components/infra/MultiStep/MultiStep.css +4 -18
  84. package/lib/components/infra/NavBar/NavBar.d.ts +1 -1
  85. package/lib/components/infra/NavBar/NavBar.d.ts.map +1 -1
  86. package/lib/components/infra/NavBar/NavBar.js +57 -121
  87. package/lib/components/infra/NavBar/NavBar.js.map +1 -1
  88. package/lib/components/infra/View/View.d.ts.map +1 -1
  89. package/lib/components/infra/View/View.js +12 -3
  90. package/lib/components/infra/View/View.js.map +1 -1
  91. package/lib/components/template/CaseView/CaseView.d.ts.map +1 -1
  92. package/lib/components/template/CaseView/CaseView.js +2 -3
  93. package/lib/components/template/CaseView/CaseView.js.map +1 -1
  94. package/lib/components/template/DefaultForm/DefaultForm.d.ts.map +1 -1
  95. package/lib/components/template/DefaultForm/DefaultForm.js +6 -1
  96. package/lib/components/template/DefaultForm/DefaultForm.js.map +1 -1
  97. package/lib/components/template/Details/Details/Details.d.ts +2 -0
  98. package/lib/components/template/Details/Details/Details.d.ts.map +1 -1
  99. package/lib/components/template/Details/Details/Details.js +35 -18
  100. package/lib/components/template/Details/Details/Details.js.map +1 -1
  101. package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.d.ts +12 -1
  102. package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.d.ts.map +1 -1
  103. package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.js +43 -27
  104. package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.js.map +1 -1
  105. package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.d.ts +12 -1
  106. package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.d.ts.map +1 -1
  107. package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.js +43 -25
  108. package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.js.map +1 -1
  109. package/lib/components/template/ListView/DefaultViewMeta.d.ts +91 -0
  110. package/lib/components/template/ListView/DefaultViewMeta.d.ts.map +1 -0
  111. package/lib/components/template/ListView/DefaultViewMeta.js +208 -0
  112. package/lib/components/template/ListView/DefaultViewMeta.js.map +1 -0
  113. package/lib/components/template/ListView/ListView.d.ts.map +1 -1
  114. package/lib/components/template/ListView/ListView.js +143 -45
  115. package/lib/components/template/ListView/ListView.js.map +1 -1
  116. package/lib/components/template/ListView/hooks.d.ts +2 -0
  117. package/lib/components/template/ListView/hooks.d.ts.map +1 -0
  118. package/lib/components/template/ListView/hooks.js +73 -0
  119. package/lib/components/template/ListView/hooks.js.map +1 -0
  120. package/lib/components/template/ListView/utils.d.ts +63 -0
  121. package/lib/components/template/ListView/utils.d.ts.map +1 -0
  122. package/lib/components/template/ListView/utils.js +537 -0
  123. package/lib/components/template/ListView/utils.js.map +1 -0
  124. package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.d.ts +12 -1
  125. package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.d.ts.map +1 -1
  126. package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.js +45 -29
  127. package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.js.map +1 -1
  128. package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.d.ts +12 -1
  129. package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.d.ts.map +1 -1
  130. package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.js +45 -29
  131. package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.js.map +1 -1
  132. package/lib/components/widget/Attachment/Attachment.css +7 -0
  133. package/lib/components/widget/Attachment/Attachment.d.ts.map +1 -1
  134. package/lib/components/widget/Attachment/Attachment.js +25 -2
  135. package/lib/components/widget/Attachment/Attachment.js.map +1 -1
  136. package/lib/components/widget/SummaryItem/SummaryItem.js +1 -1
  137. package/lib/components/widget/SummaryItem/SummaryItem.js.map +1 -1
  138. package/package.json +1 -1
  139. package/lib/components/template/utils.d.ts +0 -3
  140. package/lib/components/template/utils.d.ts.map +0 -1
  141. package/lib/components/template/utils.js +0 -22
  142. package/lib/components/template/utils.js.map +0 -1
@@ -1,7 +1,7 @@
1
- import React, { useEffect, useState } from "react";
1
+ import React, { useEffect, useState } from 'react';
2
2
  import { makeStyles, useTheme } from '@material-ui/core/styles';
3
3
  import clsx from 'clsx';
4
- import PropTypes from "prop-types";
4
+ import PropTypes from 'prop-types';
5
5
  import { Utils } from '../../helpers/utils';
6
6
  import './NavBar.css';
7
7
  import { Drawer, List, ListItem, ListItemIcon, ListItemText, ListItemSecondaryAction, Collapse, Divider, IconButton, Menu, MenuItem, Typography } from '@material-ui/core';
@@ -17,117 +17,99 @@ import WorkOutlineIcon from '@material-ui/icons/WorkOutline';
17
17
  import ClearOutlinedIcon from '@material-ui/icons/ClearOutlined';
18
18
  import ArrowBackIcon from '@material-ui/icons/ArrowBack';
19
19
  import useMediaQuery from '@material-ui/core/useMediaQuery';
20
- import { useNavBar } from "../../helpers/reactContextHelpers";
20
+ import { useNavBar } from '../../helpers/reactContextHelpers';
21
21
  import { logout } from '../../helpers/authManager';
22
22
  const iconMap = {
23
- "pi pi-headline": React.createElement(HomeOutlinedIcon, { fontSize: "large" }),
24
- "pi pi-flag-solid": React.createElement(FlagOutlinedIcon, { fontSize: "large" })
23
+ 'pi pi-headline': React.createElement(HomeOutlinedIcon, { fontSize: 'large' }),
24
+ 'pi pi-flag-solid': React.createElement(FlagOutlinedIcon, { fontSize: 'large' })
25
25
  };
26
26
  const drawerWidth = 300;
27
- const useStyles = makeStyles((theme) => ({
27
+ const useStyles = makeStyles(theme => ({
28
28
  drawerPaper: {
29
29
  position: 'relative',
30
30
  whiteSpace: 'nowrap',
31
31
  width: drawerWidth,
32
32
  transition: theme.transitions.create('width', {
33
33
  easing: theme.transitions.easing.sharp,
34
- duration: theme.transitions.duration.enteringScreen,
34
+ duration: theme.transitions.duration.enteringScreen
35
35
  }),
36
- height: "100vh"
36
+ height: '100vh'
37
37
  },
38
38
  drawerPaperClose: {
39
39
  overflowX: 'hidden',
40
40
  transition: theme.transitions.create('width', {
41
41
  easing: theme.transitions.easing.sharp,
42
- duration: theme.transitions.duration.leavingScreen,
42
+ duration: theme.transitions.duration.leavingScreen
43
43
  }),
44
44
  width: theme.spacing(7),
45
45
  [theme.breakpoints.up('md')]: {
46
- width: theme.spacing(9),
46
+ width: theme.spacing(9)
47
47
  },
48
- height: "100vh"
48
+ height: '100vh'
49
49
  },
50
50
  nested: {
51
- paddingLeft: theme.spacing(4),
51
+ paddingLeft: theme.spacing(4)
52
52
  },
53
53
  appListItem: {
54
54
  backgroundColor: theme.palette.primary.light,
55
- color: theme.palette.getContrastText(theme.palette.primary.light),
55
+ color: theme.palette.getContrastText(theme.palette.primary.light)
56
56
  },
57
57
  appListLogo: {
58
58
  marginRight: theme.spacing(2),
59
- width: "3.6rem",
59
+ width: '3.6rem'
60
60
  },
61
61
  appListIcon: {
62
- color: theme.palette.getContrastText(theme.palette.primary.light),
62
+ color: theme.palette.getContrastText(theme.palette.primary.light)
63
63
  },
64
64
  appListDiv: {
65
65
  backgroundColor: theme.palette.primary.light,
66
66
  color: theme.palette.getContrastText(theme.palette.primary.light),
67
67
  paddingTop: theme.spacing(2),
68
68
  paddingBottom: theme.spacing(2),
69
- display: "flex",
70
- alignItems: "center",
71
- justifyContent: "center"
69
+ display: 'flex',
70
+ alignItems: 'center',
71
+ justifyContent: 'center'
72
+ },
73
+ applicationLabel: {
74
+ whiteSpace: 'initial'
72
75
  }
73
76
  }));
74
77
  export default function NavBar(props) {
75
78
  const { pConn, pages, caseTypes } = props;
76
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
77
- const [navIcon, setNavIcon] = useState((PCore.getAssetLoader().getStaticServerUrl()).concat("pzpega-logo-mark.svg"));
78
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
79
- const [navExpandCollapse, setNavExpandCollapse] = useState(Utils.getImageSrc("plus", PCore.getAssetLoader().getStaticServerUrl()));
79
+ const classes = useStyles();
80
+ const theme = useTheme();
81
+ const isDesktop = useMediaQuery(theme.breakpoints.up('md'));
82
+ const { open, setOpen } = useNavBar();
80
83
  const [navPages, setNavPages] = useState(JSON.parse(JSON.stringify(pages)));
81
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
82
- const [portalLogoImage, setPortalLogoImage] = useState(Utils.getIconPath(PCore.getAssetLoader().getStaticServerUrl()).concat("pzpega-logo-mark.svg"));
83
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
84
- const [portalOperator, setPortalOperator] = useState(PCore.getEnvironmentInfo().getOperatorName());
85
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
86
- const [portalOperatorInitials, setPortalOperatorInitials] = useState(Utils.getInitials(portalOperator));
87
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
88
- const [portalApp, setPortalApp] = useState(PCore.getEnvironmentInfo().getApplicationLabel());
89
84
  const [bShowCaseTypes, setBShowCaseTypes] = useState(true);
90
85
  const [bShowOperatorButtons, setBShowOperatorButtons] = useState(false);
91
- const { open, setOpen } = useNavBar();
92
86
  const [anchorEl, setAnchorEl] = useState(null);
93
- const classes = useStyles();
94
- const theme = useTheme();
95
- const isDesktop = useMediaQuery(theme.breakpoints.up('md'));
87
+ const portalLogoImage = Utils.getIconPath(PCore.getAssetLoader().getStaticServerUrl()).concat('pzpega-logo-mark.svg');
88
+ const portalOperator = PCore.getEnvironmentInfo().getOperatorName();
89
+ const portalApp = PCore.getEnvironmentInfo().getApplicationLabel();
96
90
  useEffect(() => {
97
91
  setNavPages(JSON.parse(JSON.stringify(pages)));
98
92
  }, [pages]);
99
- // const caseTypesMap = caseTypes.map((caseType, index) => {
100
- // const theKey = `caseType.${index}`;
101
- // return <li key={theKey}>{caseType.pyLabel}</li>;
102
- // });
103
- // const pagesMap = pages.map((page, index) => {
104
- // const theKey = `page.${index}`;
105
- // return <li key={theKey}>{page.pyLabel}</li>;
106
- // });
107
93
  function navPanelButtonClick(oPageData) {
108
94
  const { pyClassName, pyRuleName } = oPageData;
109
- pConn.getActionsApi().showPage(pyRuleName, pyClassName).then(() => {
95
+ pConn
96
+ .getActionsApi()
97
+ .showPage(pyRuleName, pyClassName)
98
+ .then(() => {
110
99
  // eslint-disable-next-line no-console
111
100
  console.log(`showPage completed`);
112
101
  });
113
102
  }
114
- // function navPanelCreateButtonClick() {
115
- // if (navExpandCollapse.indexOf("plus") > 0) {
116
- // setNavExpandCollapse(Utils.getImageSrc("times", PCore.getAssetLoader().getStaticServerUrl()));
117
- // setBShowCaseTypes(true);
118
- // }
119
- // else {
120
- // setNavExpandCollapse(Utils.getImageSrc("plus", PCore.getAssetLoader().getStaticServerUrl()));
121
- // setBShowCaseTypes(false);
122
- // }
123
- // }
124
103
  function navPanelCreateCaseType(sCaseType, sFlowType) {
125
104
  setOpen(false);
126
105
  const actionInfo = {
127
- containerName: "primary",
128
- flowType: sFlowType || "pyStartCase"
106
+ containerName: 'primary',
107
+ flowType: sFlowType || 'pyStartCase'
129
108
  };
130
- pConn.getActionsApi().createWork(sCaseType, actionInfo).then(() => {
109
+ pConn
110
+ .getActionsApi()
111
+ .createWork(sCaseType, actionInfo)
112
+ .then(() => {
131
113
  // eslint-disable-next-line no-console
132
114
  console.log(`createWork completed`);
133
115
  });
@@ -140,46 +122,6 @@ export default function NavBar(props) {
140
122
  else
141
123
  setAnchorEl(null);
142
124
  }
143
- function navPanelLogoutClick() {
144
- try {
145
- // eslint-disable-next-line no-console
146
- console.log(`--> navPanelLogoutClick clicked`);
147
- // Commenting out until revokeToken API is available
148
- // pConn.getActionsApi().logout().then(() => {
149
- // // eslint-disable-next-line no-console
150
- // console.log(`logout completed`);
151
- // },
152
- // error => {
153
- // // eslint-disable-next-line no-console
154
- // console.error(`onRejected function called: ${error.message}`);
155
- // })
156
- }
157
- catch (err) {
158
- // eslint-disable-next-line no-console
159
- console.log(`--> Attempt to call logout api failed: ${err}`);
160
- }
161
- finally {
162
- // authLogout();
163
- logout();
164
- }
165
- }
166
- // const theCaseTypeButtons = caseTypes.map((caseType) => <div style={{display: "flex"}}>
167
- // <button className="btn btn-link text-white"
168
- // onClick={() => { navPanelCreateCaseType(caseType.pyClassName, caseType.pyFlowType)}}>{caseType.pyLabel}</button></div>
169
- // );
170
- // const theOperatorButtons = <button className="btn btn-link text-white" style={{marginLeft: "-0.05rem"}} onClick={navPanelLogoutClick}>Logoff</button>;
171
- // return <div id="NavBar" style={{border: "solid 1px silver", margin: "1px"}} >
172
- // NavBar for <strong>{appName}</strong>
173
- // <br></br>
174
- // caseTypes:
175
- // <ul>
176
- // {caseTypesMap}
177
- // </ul>
178
- // Pages:
179
- // <ul>
180
- // {pagesMap}
181
- // </ul>
182
- // </div>;
183
125
  const handleDrawerOpen = () => {
184
126
  setOpen(!open);
185
127
  };
@@ -191,39 +133,33 @@ export default function NavBar(props) {
191
133
  else
192
134
  setBShowCaseTypes(!bShowCaseTypes);
193
135
  };
194
- // const handlePopoverOpen = (event) => {
195
- // setAnchorEl(event.currentTarget);
196
- // };
197
- // const handlePopoverClose = () => {
198
- // setAnchorEl(null);
199
- // };
200
136
  useEffect(() => {
201
137
  if (!isDesktop)
202
138
  setOpen(false);
203
139
  else
204
140
  setOpen(true);
205
141
  }, [isDesktop]);
206
- return (React.createElement(Drawer, { variant: "permanent", classes: {
207
- paper: clsx(classes.drawerPaper, !open && classes.drawerPaperClose),
142
+ return (React.createElement(Drawer, { variant: 'permanent', classes: {
143
+ paper: clsx(classes.drawerPaper, !open && classes.drawerPaperClose)
208
144
  }, open: open && isDesktop },
209
145
  open ? (React.createElement(List, { className: classes.appListItem },
210
146
  React.createElement(ListItem, { onClick: handleDrawerOpen },
211
147
  React.createElement(ListItemIcon, null,
212
148
  React.createElement("img", { src: portalLogoImage, className: classes.appListLogo })),
213
- React.createElement(ListItemText, { primary: React.createElement(Typography, { variant: "h6" }, portalApp) }),
149
+ React.createElement(ListItemText, { primary: React.createElement(Typography, { variant: 'h6', className: classes.applicationLabel }, portalApp) }),
214
150
  React.createElement(ListItemSecondaryAction, null,
215
- React.createElement(IconButton, { edge: "end", onClick: handleDrawerOpen },
151
+ React.createElement(IconButton, { edge: 'end', onClick: handleDrawerOpen },
216
152
  React.createElement(ChevronLeftIcon, { className: classes.appListIcon })))))) : (React.createElement("div", { className: classes.appListDiv, onClick: handleDrawerOpen },
217
- React.createElement(ChevronRightIcon, { className: classes.appListIcon, id: "chevron-right-icon", fontSize: "large" }))),
153
+ React.createElement(ChevronRightIcon, { className: classes.appListIcon, id: 'chevron-right-icon', fontSize: 'large' }))),
218
154
  React.createElement(List, null,
219
155
  React.createElement(ListItem, { button: true, onClick: handleCaseItemClick },
220
- React.createElement(ListItemIcon, null, bShowCaseTypes && open ? React.createElement(ClearOutlinedIcon, { fontSize: "large" }) : React.createElement(AddIcon, { fontSize: "large" })),
221
- React.createElement(ListItemText, { primary: "Create" }),
156
+ React.createElement(ListItemIcon, null, bShowCaseTypes && open ? (React.createElement(ClearOutlinedIcon, { fontSize: 'large' })) : (React.createElement(AddIcon, { fontSize: 'large' }))),
157
+ React.createElement(ListItemText, { primary: 'Create' }),
222
158
  bShowCaseTypes ? React.createElement(ExpandLess, null) : React.createElement(ExpandMore, null))),
223
- React.createElement(Collapse, { in: bShowCaseTypes && open, timeout: "auto", unmountOnExit: true, className: 'scrollable' },
224
- React.createElement(List, { component: "div", disablePadding: true }, caseTypes.map(caseType => (React.createElement(ListItem, { button: true, className: classes.nested, onClick: () => navPanelCreateCaseType(caseType.pyClassName, caseType.pyFlowType), key: caseType.pyLabel },
159
+ React.createElement(Collapse, { in: bShowCaseTypes && open, timeout: 'auto', unmountOnExit: true, className: 'scrollable' },
160
+ React.createElement(List, { component: 'div', disablePadding: true }, caseTypes.map(caseType => (React.createElement(ListItem, { button: true, className: classes.nested, onClick: () => navPanelCreateCaseType(caseType.pyClassName, caseType.pyFlowType), key: caseType.pyLabel },
225
161
  React.createElement(ListItemIcon, null,
226
- React.createElement(WorkOutlineIcon, { fontSize: "large" })),
162
+ React.createElement(WorkOutlineIcon, { fontSize: 'large' })),
227
163
  React.createElement(ListItemText, { primary: caseType.pyLabel })))))),
228
164
  React.createElement(List, null, navPages.map(page => (React.createElement(ListItem, { button: true, onClick: () => navPanelButtonClick(page), key: page.pyLabel },
229
165
  React.createElement(ListItemIcon, null, iconMap[page.pxPageViewIcon]),
@@ -233,28 +169,28 @@ export default function NavBar(props) {
233
169
  React.createElement(React.Fragment, null,
234
170
  React.createElement(ListItem, { onClick: navPanelOperatorButtonClick },
235
171
  React.createElement(ListItemIcon, null,
236
- React.createElement(PersonOutlineIcon, { fontSize: "large" })),
172
+ React.createElement(PersonOutlineIcon, { fontSize: 'large' })),
237
173
  React.createElement(ListItemText, { primary: portalOperator }),
238
174
  open && (React.createElement(ListItemSecondaryAction, null,
239
- React.createElement(IconButton, { edge: "end", onClick: navPanelOperatorButtonClick },
175
+ React.createElement(IconButton, { edge: 'end', onClick: navPanelOperatorButtonClick },
240
176
  React.createElement(ChevronRightIcon, null))))),
241
177
  React.createElement(Menu, { anchorEl: anchorEl, keepMounted: bShowOperatorButtons, open: bShowOperatorButtons, onClick: navPanelOperatorButtonClick, anchorOrigin: {
242
178
  vertical: 'top',
243
- horizontal: 'right',
179
+ horizontal: 'right'
244
180
  }, transformOrigin: {
245
181
  vertical: 'top',
246
- horizontal: 'left',
182
+ horizontal: 'left'
247
183
  } },
248
- React.createElement(MenuItem, { onClick: navPanelLogoutClick },
184
+ React.createElement(MenuItem, { onClick: logout },
249
185
  React.createElement(ListItemIcon, null,
250
- React.createElement(ArrowBackIcon, { fontSize: "large" })),
251
- React.createElement(Typography, { variant: "inherit" }, "Logout")))))));
186
+ React.createElement(ArrowBackIcon, { fontSize: 'large' })),
187
+ React.createElement(Typography, { variant: 'inherit' }, "Logout")))))));
252
188
  }
253
189
  NavBar.defaultProps = {
254
190
  pConn: null,
255
- appName: "",
191
+ appName: '',
256
192
  pages: [],
257
- caseTypes: [],
193
+ caseTypes: []
258
194
  };
259
195
  NavBar.propTypes = {
260
196
  pConn: PropTypes.object,
@@ -1 +1 @@
1
- {"version":3,"file":"NavBar.js","sourceRoot":"","sources":["../../../../src/components/infra/NavBar/NavBar.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport clsx from 'clsx';\nimport PropTypes from \"prop-types\";\nimport { Utils } from '../../helpers/utils';\n\nimport './NavBar.css';\n\nimport {\n Drawer,\n List,\n ListItem,\n ListItemIcon,\n ListItemText,\n ListItemSecondaryAction,\n Collapse,\n Divider,\n IconButton,\n Menu,\n MenuItem,\n Typography\n} from '@material-ui/core';\n\nimport PersonOutlineIcon from '@material-ui/icons/PersonOutlineOutlined';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport FlagOutlinedIcon from '@material-ui/icons/FlagOutlined';\nimport HomeOutlinedIcon from '@material-ui/icons/HomeOutlined';\nimport ExpandLess from '@material-ui/icons/ExpandLess';\nimport ExpandMore from '@material-ui/icons/ExpandMore';\nimport AddIcon from '@material-ui/icons/Add';\nimport WorkOutlineIcon from '@material-ui/icons/WorkOutline';\nimport ClearOutlinedIcon from '@material-ui/icons/ClearOutlined';\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\n\nimport { useNavBar } from \"../../helpers/reactContextHelpers\";\nimport { logout } from '../../helpers/authManager';\n\ndeclare const PCore;\n\nconst iconMap = {\n \"pi pi-headline\" : <HomeOutlinedIcon fontSize=\"large\"/>,\n \"pi pi-flag-solid\": <FlagOutlinedIcon fontSize=\"large\"/>\n}\n\nconst drawerWidth = 300;\n\nconst useStyles = makeStyles((theme) => ({\n drawerPaper: {\n position: 'relative',\n whiteSpace: 'nowrap',\n width: drawerWidth,\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n height: \"100vh\"\n },\n drawerPaperClose: {\n overflowX: 'hidden',\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n width: theme.spacing(7),\n [theme.breakpoints.up('md')]: {\n width: theme.spacing(9),\n },\n height: \"100vh\"\n },\n nested: {\n paddingLeft: theme.spacing(4),\n },\n appListItem: {\n backgroundColor: theme.palette.primary.light,\n color: theme.palette.getContrastText(theme.palette.primary.light),\n },\n appListLogo: {\n marginRight: theme.spacing(2),\n width: \"3.6rem\",\n },\n appListIcon: {\n color: theme.palette.getContrastText(theme.palette.primary.light),\n },\n appListDiv: {\n backgroundColor: theme.palette.primary.light,\n color: theme.palette.getContrastText(theme.palette.primary.light),\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n }\n}));\n\nexport default function NavBar(props) {\n const {\n pConn,\n pages,\n caseTypes\n } = props;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [navIcon, setNavIcon] = useState((PCore.getAssetLoader().getStaticServerUrl()).concat(\"pzpega-logo-mark.svg\"));\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [navExpandCollapse, setNavExpandCollapse] = useState(Utils.getImageSrc(\"plus\", PCore.getAssetLoader().getStaticServerUrl()));\n const [navPages, setNavPages] = useState(JSON.parse(JSON.stringify(pages)));\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [portalLogoImage, setPortalLogoImage] = useState(Utils.getIconPath(PCore.getAssetLoader().getStaticServerUrl()).concat(\"pzpega-logo-mark.svg\"));\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [portalOperator, setPortalOperator] = useState(PCore.getEnvironmentInfo().getOperatorName());\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [portalOperatorInitials, setPortalOperatorInitials] = useState(Utils.getInitials(portalOperator));\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [portalApp, setPortalApp] = useState(PCore.getEnvironmentInfo().getApplicationLabel());\n const [bShowCaseTypes, setBShowCaseTypes] = useState(true);\n const [bShowOperatorButtons, setBShowOperatorButtons] = useState(false)\n const {open, setOpen} = useNavBar();\n const [anchorEl, setAnchorEl] = useState(null);\n\n const classes = useStyles();\n const theme = useTheme();\n const isDesktop = useMediaQuery(theme.breakpoints.up('md'));\n\n useEffect( () => {\n setNavPages(JSON.parse(JSON.stringify(pages)));\n },\n [pages]);\n\n // const caseTypesMap = caseTypes.map((caseType, index) => {\n // const theKey = `caseType.${index}`;\n // return <li key={theKey}>{caseType.pyLabel}</li>;\n // });\n\n // const pagesMap = pages.map((page, index) => {\n // const theKey = `page.${index}`;\n // return <li key={theKey}>{page.pyLabel}</li>;\n // });\n\n function navPanelButtonClick(oPageData: any) {\n const {\n pyClassName,\n pyRuleName\n } = oPageData;\n\n pConn.getActionsApi().showPage(pyRuleName, pyClassName).then(() => {\n // eslint-disable-next-line no-console\n console.log(`showPage completed`);\n });\n }\n\n // function navPanelCreateButtonClick() {\n // if (navExpandCollapse.indexOf(\"plus\") > 0) {\n // setNavExpandCollapse(Utils.getImageSrc(\"times\", PCore.getAssetLoader().getStaticServerUrl()));\n // setBShowCaseTypes(true);\n // }\n // else {\n // setNavExpandCollapse(Utils.getImageSrc(\"plus\", PCore.getAssetLoader().getStaticServerUrl()));\n // setBShowCaseTypes(false);\n // }\n // }\n\n function navPanelCreateCaseType(sCaseType: string, sFlowType: string) {\n setOpen(false);\n const actionInfo = {\n containerName: \"primary\",\n flowType: sFlowType || \"pyStartCase\"\n };\n\n pConn.getActionsApi().createWork(sCaseType, actionInfo).then(() => {\n // eslint-disable-next-line no-console\n console.log(`createWork completed`);\n });\n\n }\n\n // Toggle showing the Operator buttons\n function navPanelOperatorButtonClick(evt) {\n setBShowOperatorButtons(!bShowOperatorButtons);\n if (!bShowOperatorButtons) setAnchorEl(evt.currentTarget);\n else setAnchorEl(null);\n }\n\n function navPanelLogoutClick() {\n\n try {\n // eslint-disable-next-line no-console\n console.log(`--> navPanelLogoutClick clicked`);\n // Commenting out until revokeToken API is available\n // pConn.getActionsApi().logout().then(() => {\n // // eslint-disable-next-line no-console\n // console.log(`logout completed`);\n // },\n // error => {\n // // eslint-disable-next-line no-console\n // console.error(`onRejected function called: ${error.message}`);\n // })\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log(`--> Attempt to call logout api failed: ${err}`);\n }\n finally {\n // authLogout();\n logout();\n }\n }\n\n // const theCaseTypeButtons = caseTypes.map((caseType) => <div style={{display: \"flex\"}}>\n // <button className=\"btn btn-link text-white\"\n // onClick={() => { navPanelCreateCaseType(caseType.pyClassName, caseType.pyFlowType)}}>{caseType.pyLabel}</button></div>\n // );\n\n // const theOperatorButtons = <button className=\"btn btn-link text-white\" style={{marginLeft: \"-0.05rem\"}} onClick={navPanelLogoutClick}>Logoff</button>;\n\n\n // return <div id=\"NavBar\" style={{border: \"solid 1px silver\", margin: \"1px\"}} >\n // NavBar for <strong>{appName}</strong>\n // <br></br>\n // caseTypes:\n // <ul>\n // {caseTypesMap}\n // </ul>\n // Pages:\n // <ul>\n // {pagesMap}\n // </ul>\n // </div>;\n\n\n const handleDrawerOpen = () => {\n setOpen(!open);\n };\n\n const handleCaseItemClick = () => {\n if (!open) {\n setOpen(true);\n setBShowCaseTypes(true);\n } else setBShowCaseTypes(!bShowCaseTypes);\n }\n\n// const handlePopoverOpen = (event) => {\n// setAnchorEl(event.currentTarget);\n// };\n\n // const handlePopoverClose = () => {\n // setAnchorEl(null);\n // };\n\n\n useEffect(() => {\n if (!isDesktop) setOpen(false);\n else setOpen(true);\n }, [isDesktop])\n\n\n return (\n <Drawer\n variant=\"permanent\"\n classes={{\n paper: clsx(classes.drawerPaper, !open && classes.drawerPaperClose),\n }}\n open={open && isDesktop}\n >\n {\n open ? (\n <List className={classes.appListItem}>\n <ListItem onClick={handleDrawerOpen}>\n <ListItemIcon>\n <img src={portalLogoImage} className={classes.appListLogo}/>\n </ListItemIcon>\n <ListItemText\n primary={<Typography variant=\"h6\">{portalApp}</Typography>}\n />\n <ListItemSecondaryAction>\n <IconButton edge=\"end\" onClick={handleDrawerOpen}>\n <ChevronLeftIcon className={classes.appListIcon} />\n </IconButton>\n </ListItemSecondaryAction>\n </ListItem>\n </List>\n ) : (\n <div className={classes.appListDiv} onClick={handleDrawerOpen} >\n <ChevronRightIcon className={classes.appListIcon} id=\"chevron-right-icon\" fontSize=\"large\" />\n </div>\n )\n }\n <List>\n <ListItem button onClick={handleCaseItemClick}>\n <ListItemIcon>\n {\n bShowCaseTypes && open ? <ClearOutlinedIcon fontSize=\"large\" /> : <AddIcon fontSize=\"large\" />\n }\n </ListItemIcon>\n <ListItemText primary=\"Create\" />\n {bShowCaseTypes ? <ExpandLess /> : <ExpandMore />}\n </ListItem>\n </List>\n <Collapse in={bShowCaseTypes && open} timeout=\"auto\" unmountOnExit className='scrollable'>\n <List component=\"div\" disablePadding>\n {\n caseTypes.map(caseType => (\n <ListItem\n button\n className={classes.nested}\n onClick={() => navPanelCreateCaseType(caseType.pyClassName, caseType.pyFlowType)}\n key={caseType.pyLabel}\n >\n <ListItemIcon>\n <WorkOutlineIcon fontSize=\"large\" />\n </ListItemIcon>\n <ListItemText primary={caseType.pyLabel} />\n </ListItem>\n ))\n }\n </List>\n </Collapse>\n <List>\n {\n navPages.map(page => (\n <ListItem\n button\n onClick={() => navPanelButtonClick(page)}\n key={page.pyLabel}\n >\n <ListItemIcon>\n {iconMap[page.pxPageViewIcon]}\n </ListItemIcon>\n <ListItemText primary={page.pyLabel} />\n </ListItem>\n ))\n }\n </List>\n <Divider />\n <List className='marginTopAuto'>\n <>\n <ListItem onClick={navPanelOperatorButtonClick}>\n <ListItemIcon>\n <PersonOutlineIcon fontSize=\"large\" />\n </ListItemIcon>\n <ListItemText primary={portalOperator} />\n {\n open && (\n <ListItemSecondaryAction>\n <IconButton edge=\"end\" onClick={navPanelOperatorButtonClick}>\n <ChevronRightIcon/>\n </IconButton>\n </ListItemSecondaryAction>\n )\n }\n\n </ListItem>\n <Menu\n anchorEl={anchorEl}\n keepMounted={bShowOperatorButtons}\n open={bShowOperatorButtons}\n onClick={navPanelOperatorButtonClick}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n >\n <MenuItem onClick={navPanelLogoutClick}>\n <ListItemIcon>\n <ArrowBackIcon fontSize=\"large\" />\n </ListItemIcon>\n <Typography variant=\"inherit\">Logout</Typography>\n </MenuItem>\n </Menu>\n </>\n </List>\n </Drawer>\n );\n}\n\nNavBar.defaultProps = {\n pConn: null,\n appName: \"\",\n pages: [],\n caseTypes: [],\n};\n\nNavBar.propTypes = {\n pConn: PropTypes.object,\n // eslint-disable-next-line react/no-unused-prop-types\n appName: PropTypes.string,\n pages: PropTypes.arrayOf(PropTypes.object),\n caseTypes: PropTypes.arrayOf(PropTypes.object)\n};\n"]}
1
+ {"version":3,"file":"NavBar.js","sourceRoot":"","sources":["../../../../src/components/infra/NavBar/NavBar.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { Utils } from '../../helpers/utils';\nimport './NavBar.css';\nimport {\n Drawer,\n List,\n ListItem,\n ListItemIcon,\n ListItemText,\n ListItemSecondaryAction,\n Collapse,\n Divider,\n IconButton,\n Menu,\n MenuItem,\n Typography\n} from '@material-ui/core';\n\nimport PersonOutlineIcon from '@material-ui/icons/PersonOutlineOutlined';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport FlagOutlinedIcon from '@material-ui/icons/FlagOutlined';\nimport HomeOutlinedIcon from '@material-ui/icons/HomeOutlined';\nimport ExpandLess from '@material-ui/icons/ExpandLess';\nimport ExpandMore from '@material-ui/icons/ExpandMore';\nimport AddIcon from '@material-ui/icons/Add';\nimport WorkOutlineIcon from '@material-ui/icons/WorkOutline';\nimport ClearOutlinedIcon from '@material-ui/icons/ClearOutlined';\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\n\nimport { useNavBar } from '../../helpers/reactContextHelpers';\nimport { logout } from '../../helpers/authManager';\n\ndeclare const PCore;\n\nconst iconMap = {\n 'pi pi-headline': <HomeOutlinedIcon fontSize='large' />,\n 'pi pi-flag-solid': <FlagOutlinedIcon fontSize='large' />\n};\n\nconst drawerWidth = 300;\n\nconst useStyles = makeStyles(theme => ({\n drawerPaper: {\n position: 'relative',\n whiteSpace: 'nowrap',\n width: drawerWidth,\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen\n }),\n height: '100vh'\n },\n drawerPaperClose: {\n overflowX: 'hidden',\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen\n }),\n width: theme.spacing(7),\n [theme.breakpoints.up('md')]: {\n width: theme.spacing(9)\n },\n height: '100vh'\n },\n nested: {\n paddingLeft: theme.spacing(4)\n },\n appListItem: {\n backgroundColor: theme.palette.primary.light,\n color: theme.palette.getContrastText(theme.palette.primary.light)\n },\n appListLogo: {\n marginRight: theme.spacing(2),\n width: '3.6rem'\n },\n appListIcon: {\n color: theme.palette.getContrastText(theme.palette.primary.light)\n },\n appListDiv: {\n backgroundColor: theme.palette.primary.light,\n color: theme.palette.getContrastText(theme.palette.primary.light),\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n applicationLabel: {\n whiteSpace: 'initial'\n }\n}));\n\nexport default function NavBar(props) {\n const { pConn, pages, caseTypes } = props;\n\n const classes = useStyles();\n const theme = useTheme();\n const isDesktop = useMediaQuery(theme.breakpoints.up('md'));\n\n const { open, setOpen } = useNavBar();\n const [navPages, setNavPages] = useState(JSON.parse(JSON.stringify(pages)));\n const [bShowCaseTypes, setBShowCaseTypes] = useState(true);\n const [bShowOperatorButtons, setBShowOperatorButtons] = useState(false);\n const [anchorEl, setAnchorEl] = useState(null);\n\n const portalLogoImage = Utils.getIconPath(PCore.getAssetLoader().getStaticServerUrl()).concat(\n 'pzpega-logo-mark.svg'\n );\n const portalOperator = PCore.getEnvironmentInfo().getOperatorName();\n const portalApp = PCore.getEnvironmentInfo().getApplicationLabel();\n\n useEffect(() => {\n setNavPages(JSON.parse(JSON.stringify(pages)));\n }, [pages]);\n\n function navPanelButtonClick(oPageData: any) {\n const { pyClassName, pyRuleName } = oPageData;\n\n pConn\n .getActionsApi()\n .showPage(pyRuleName, pyClassName)\n .then(() => {\n // eslint-disable-next-line no-console\n console.log(`showPage completed`);\n });\n }\n\n function navPanelCreateCaseType(sCaseType: string, sFlowType: string) {\n setOpen(false);\n const actionInfo = {\n containerName: 'primary',\n flowType: sFlowType || 'pyStartCase'\n };\n\n pConn\n .getActionsApi()\n .createWork(sCaseType, actionInfo)\n .then(() => {\n // eslint-disable-next-line no-console\n console.log(`createWork completed`);\n });\n }\n\n // Toggle showing the Operator buttons\n function navPanelOperatorButtonClick(evt) {\n setBShowOperatorButtons(!bShowOperatorButtons);\n if (!bShowOperatorButtons) setAnchorEl(evt.currentTarget);\n else setAnchorEl(null);\n }\n\n const handleDrawerOpen = () => {\n setOpen(!open);\n };\n\n const handleCaseItemClick = () => {\n if (!open) {\n setOpen(true);\n setBShowCaseTypes(true);\n } else setBShowCaseTypes(!bShowCaseTypes);\n };\n\n useEffect(() => {\n if (!isDesktop) setOpen(false);\n else setOpen(true);\n }, [isDesktop]);\n\n return (\n <Drawer\n variant='permanent'\n classes={{\n paper: clsx(classes.drawerPaper, !open && classes.drawerPaperClose)\n }}\n open={open && isDesktop}\n >\n {open ? (\n <List className={classes.appListItem}>\n <ListItem onClick={handleDrawerOpen}>\n <ListItemIcon>\n <img src={portalLogoImage} className={classes.appListLogo} />\n </ListItemIcon>\n <ListItemText\n primary={\n <Typography variant='h6' className={classes.applicationLabel}>\n {portalApp}\n </Typography>\n }\n />\n <ListItemSecondaryAction>\n <IconButton edge='end' onClick={handleDrawerOpen}>\n <ChevronLeftIcon className={classes.appListIcon} />\n </IconButton>\n </ListItemSecondaryAction>\n </ListItem>\n </List>\n ) : (\n <div className={classes.appListDiv} onClick={handleDrawerOpen}>\n <ChevronRightIcon\n className={classes.appListIcon}\n id='chevron-right-icon'\n fontSize='large'\n />\n </div>\n )}\n <List>\n <ListItem button onClick={handleCaseItemClick}>\n <ListItemIcon>\n {bShowCaseTypes && open ? (\n <ClearOutlinedIcon fontSize='large' />\n ) : (\n <AddIcon fontSize='large' />\n )}\n </ListItemIcon>\n <ListItemText primary='Create' />\n {bShowCaseTypes ? <ExpandLess /> : <ExpandMore />}\n </ListItem>\n </List>\n <Collapse in={bShowCaseTypes && open} timeout='auto' unmountOnExit className='scrollable'>\n <List component='div' disablePadding>\n {caseTypes.map(caseType => (\n <ListItem\n button\n className={classes.nested}\n onClick={() => navPanelCreateCaseType(caseType.pyClassName, caseType.pyFlowType)}\n key={caseType.pyLabel}\n >\n <ListItemIcon>\n <WorkOutlineIcon fontSize='large' />\n </ListItemIcon>\n <ListItemText primary={caseType.pyLabel} />\n </ListItem>\n ))}\n </List>\n </Collapse>\n <List>\n {navPages.map(page => (\n <ListItem button onClick={() => navPanelButtonClick(page)} key={page.pyLabel}>\n <ListItemIcon>{iconMap[page.pxPageViewIcon]}</ListItemIcon>\n <ListItemText primary={page.pyLabel} />\n </ListItem>\n ))}\n </List>\n <Divider />\n <List className='marginTopAuto'>\n <>\n <ListItem onClick={navPanelOperatorButtonClick}>\n <ListItemIcon>\n <PersonOutlineIcon fontSize='large' />\n </ListItemIcon>\n <ListItemText primary={portalOperator} />\n {open && (\n <ListItemSecondaryAction>\n <IconButton edge='end' onClick={navPanelOperatorButtonClick}>\n <ChevronRightIcon />\n </IconButton>\n </ListItemSecondaryAction>\n )}\n </ListItem>\n <Menu\n anchorEl={anchorEl}\n keepMounted={bShowOperatorButtons}\n open={bShowOperatorButtons}\n onClick={navPanelOperatorButtonClick}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left'\n }}\n >\n <MenuItem onClick={logout}>\n <ListItemIcon>\n <ArrowBackIcon fontSize='large' />\n </ListItemIcon>\n <Typography variant='inherit'>Logout</Typography>\n </MenuItem>\n </Menu>\n </>\n </List>\n </Drawer>\n );\n}\n\nNavBar.defaultProps = {\n pConn: null,\n appName: '',\n pages: [],\n caseTypes: []\n};\n\nNavBar.propTypes = {\n pConn: PropTypes.object,\n // eslint-disable-next-line react/no-unused-prop-types\n appName: PropTypes.string,\n pages: PropTypes.arrayOf(PropTypes.object),\n caseTypes: PropTypes.arrayOf(PropTypes.object)\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../../src/components/infra/View/View.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAWnC,OAAO,YAAY,CAAC;AASpB,iBAAwB,IAAI,CAAC,KAAK,KAAA,eAuGjC;kBAvGuB,IAAI;;;;;;;;;;;;;;;;;eAAJ,IAAI"}
1
+ {"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../../src/components/infra/View/View.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAWnC,OAAO,YAAY,CAAC;AAkBpB,iBAAwB,IAAI,CAAC,KAAK,KAAA,eAqGjC;kBArGuB,IAAI;;;;;;;;;;;;;;;;;eAAJ,IAAI"}
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
4
4
  // import { LazyMap as LazyComponentMap } from "../../components_map";
5
5
  import { SdkComponentMap } from '../../../bridge/helpers/sdk_component_map';
6
6
  import ErrorBoundary from '../ErrorBoundary';
7
- import { getAllFields } from '../../template/utils';
7
+ import { getAllFields } from '../../helpers/template-utils';
8
8
  // Need to import any templates that we might render
9
9
  import './View.css';
10
10
  //
@@ -13,6 +13,15 @@ import './View.css';
13
13
  // is totally at your own risk.
14
14
  //
15
15
  const FORMTEMPLATES = ['OneColumn', 'TwoColumn', 'DefaultForm', 'WideNarrow', 'NarrowWide'];
16
+ const NO_HEADER_TEMPLATES = [
17
+ 'SubTabs',
18
+ 'SimpleTable',
19
+ 'Details',
20
+ 'DetailsTwoColumn',
21
+ 'DetailsThreeColumn',
22
+ 'NarrowWideDetails',
23
+ 'WideNarrowDetails'
24
+ ];
16
25
  export default function View(props) {
17
26
  const { children, template, getPConnect, mode } = props;
18
27
  let { label, showLabel = false } = props;
@@ -51,7 +60,7 @@ export default function View(props) {
51
60
  ViewTemplate = ErrorBoundary;
52
61
  }
53
62
  }
54
- if (template === "ListView") {
63
+ if (template === 'ListView') {
55
64
  // special case for ListView - add in a prop
56
65
  const bInForm = true;
57
66
  props = { ...props, bInForm };
@@ -78,7 +87,7 @@ export default function View(props) {
78
87
  /* name */ id: 'label', style: { marginBlockStart: '1rem' }, className: 'grid-column' }, RenderedTemplate));
79
88
  }
80
89
  return (React.createElement("div", { className: 'grid-column' },
81
- showLabel && template !== 'SubTabs' && template !== 'SimpleTable' && template !== 'Details' && (React.createElement("div", { className: 'template-title-container' },
90
+ showLabel && !NO_HEADER_TEMPLATES.includes(template) && (React.createElement("div", { className: 'template-title-container' },
82
91
  React.createElement("span", null, label))),
83
92
  RenderedTemplate));
84
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"View.js","sourceRoot":"","sources":["../../../../src/components/infra/View/View.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n// import { FieldGroup } from \"@pega/cosmos-react-core\";\n// import { LazyMap as LazyComponentMap } from \"../../components_map\";\n\nimport { SdkComponentMap } from '../../../bridge/helpers/sdk_component_map';\nimport ErrorBoundary from '../ErrorBoundary';\n\nimport { getAllFields } from '../../template/utils';\n\n// Need to import any templates that we might render\n\nimport './View.css';\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\nconst FORMTEMPLATES = ['OneColumn', 'TwoColumn', 'DefaultForm', 'WideNarrow', 'NarrowWide'];\n\nexport default function View(props) {\n const { children, template, getPConnect, mode } = props;\n let { label, showLabel = false } = props;\n\n // Get the inherited props from the parent to determine label settings. For 8.6, this is only for embedded data form views\n // Putting this logic here instead of copy/paste in every Form template index.js\n\n const inheritedProps = getPConnect().getInheritedProps();\n label = inheritedProps.label || label;\n showLabel = inheritedProps.showLabel || showLabel;\n\n const isEmbeddedDataView = mode === 'editable'; // would be better to check the reference child for `context` attribute if possible\n if (isEmbeddedDataView && showLabel === undefined) {\n showLabel = true;\n }\n\n // As long as the template is defined in the dependencies of the view\n // it will be loaded, otherwise fall back to single column\n // JA - React SDK not using LazyComponentMap yet\n if (template /* && LazyComponentMap[template] */) {\n // const ViewTemplate = LazyComponentMap[template];\n let ViewTemplate: any;\n\n if (SdkComponentMap) {\n // This is the node_modules version of react_pconnect!\n const theLocalComponent = SdkComponentMap.getLocalComponentMap()[template];\n if ( theLocalComponent !== undefined) {\n // eslint-disable-next-line no-console\n console.log(`View component found ${template}: Local`);\n ViewTemplate = theLocalComponent\n } else {\n const thePegaProvidedComponent = SdkComponentMap.getPegaProvidedComponentMap()[template];\n if ( thePegaProvidedComponent !== undefined) {\n // console.log(`View component found ${template}: Pega-provided`);\n ViewTemplate = thePegaProvidedComponent;\n } else {\n // eslint-disable-next-line no-console\n console.error(`View component can't find template type ${template}`);\n ViewTemplate = ErrorBoundary;\n }\n }\n\n if (template === \"ListView\") {\n // special case for ListView - add in a prop\n const bInForm = true;\n props = { ...props, bInForm};\n }\n } else {\n\n // eslint-disable-next-line no-console\n console.warn(`View: SdkComponentMap expected but not found.`)\n\n // eslint-disable-next-line no-console\n console.error(`View: Trying to render an unknown template: ${template}`);\n\n }\n\n // for debugging/investigation\n // console.log(`View rendering template: ${template}`);\n\n // spreading because all props should go to the template\n let RenderedTemplate = <ViewTemplate {...props}>{children}</ViewTemplate>;\n\n if (FORMTEMPLATES.includes(template) && showLabel) {\n // Original:\n // RenderedTemplate = (\n // <FieldGroup name={label} style={{ marginBlockStart: \"1rem\" }}>\n // {RenderedTemplate}\n // </FieldGroup>\n // );\n RenderedTemplate = (\n <div\n data-name='RenderedTemplate'\n data-template-type={template}\n /* name */ id='label'\n style={{ marginBlockStart: '1rem' }}\n className='grid-column'\n >\n {RenderedTemplate}\n </div>\n );\n }\n\n return (\n <div className='grid-column'>\n {showLabel && template !== 'SubTabs' && template !== 'SimpleTable' && template !== 'Details' && (\n <div className='template-title-container'>\n <span>{label}</span>\n </div>\n )}\n {RenderedTemplate}\n </div>\n );\n }\n\n // debugging/investigation help\n // console.log(`View about to render React.Fragment for children: ${children}`);\n\n if (children) {\n return <>{children}</>;\n } else {\n return <div id='View'>View has no children.</div>;\n }\n}\n\nView.defaultProps = {\n label: undefined,\n showLabel: undefined,\n mode: undefined\n};\n\nView.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.array\n ]) /* array might be empty */,\n template: PropTypes.string /* .isRequired */,\n getPConnect: PropTypes.func.isRequired,\n label: PropTypes.string,\n showLabel: PropTypes.bool,\n mode: PropTypes.string,\n title: PropTypes.string\n};\n\n// Adapted from Nebula/Constellation to add in additional props for some templates\nView.additionalProps = (state, getPConnect) => {\n const thePConn = getPConnect();\n const { template } = thePConn.getConfigProps();\n\n let propObj = {};\n let allFields = {};\n\n switch (template) {\n case 'CaseSummary':\n allFields = getAllFields(thePConn);\n // eslint-disable-next-line no-case-declarations\n const unresFields = {\n primaryFields: allFields[0],\n secondaryFields: allFields[1]\n };\n propObj = thePConn.resolveConfigProps(unresFields);\n break;\n\n case 'Details':\n allFields = getAllFields(thePConn);\n propObj = { fields: allFields[0] };\n break;\n\n default:\n break;\n }\n\n return propObj;\n};\n"]}
1
+ {"version":3,"file":"View.js","sourceRoot":"","sources":["../../../../src/components/infra/View/View.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n// import { FieldGroup } from \"@pega/cosmos-react-core\";\n// import { LazyMap as LazyComponentMap } from \"../../components_map\";\n\nimport { SdkComponentMap } from '../../../bridge/helpers/sdk_component_map';\nimport ErrorBoundary from '../ErrorBoundary';\n\nimport { getAllFields } from '../../helpers/template-utils';\n\n// Need to import any templates that we might render\n\nimport './View.css';\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\nconst FORMTEMPLATES = ['OneColumn', 'TwoColumn', 'DefaultForm', 'WideNarrow', 'NarrowWide'];\nconst NO_HEADER_TEMPLATES = [\n 'SubTabs',\n 'SimpleTable',\n 'Details',\n 'DetailsTwoColumn',\n 'DetailsThreeColumn',\n 'NarrowWideDetails',\n 'WideNarrowDetails'\n];\n\nexport default function View(props) {\n const { children, template, getPConnect, mode } = props;\n let { label, showLabel = false } = props;\n\n // Get the inherited props from the parent to determine label settings. For 8.6, this is only for embedded data form views\n // Putting this logic here instead of copy/paste in every Form template index.js\n\n const inheritedProps = getPConnect().getInheritedProps();\n label = inheritedProps.label || label;\n showLabel = inheritedProps.showLabel || showLabel;\n\n const isEmbeddedDataView = mode === 'editable'; // would be better to check the reference child for `context` attribute if possible\n if (isEmbeddedDataView && showLabel === undefined) {\n showLabel = true;\n }\n\n // As long as the template is defined in the dependencies of the view\n // it will be loaded, otherwise fall back to single column\n // JA - React SDK not using LazyComponentMap yet\n if (template /* && LazyComponentMap[template] */) {\n // const ViewTemplate = LazyComponentMap[template];\n let ViewTemplate: any;\n\n if (SdkComponentMap) {\n // This is the node_modules version of react_pconnect!\n const theLocalComponent = SdkComponentMap.getLocalComponentMap()[template];\n if (theLocalComponent !== undefined) {\n // eslint-disable-next-line no-console\n console.log(`View component found ${template}: Local`);\n ViewTemplate = theLocalComponent;\n } else {\n const thePegaProvidedComponent = SdkComponentMap.getPegaProvidedComponentMap()[template];\n if (thePegaProvidedComponent !== undefined) {\n // console.log(`View component found ${template}: Pega-provided`);\n ViewTemplate = thePegaProvidedComponent;\n } else {\n // eslint-disable-next-line no-console\n console.error(`View component can't find template type ${template}`);\n ViewTemplate = ErrorBoundary;\n }\n }\n\n if (template === 'ListView') {\n // special case for ListView - add in a prop\n const bInForm = true;\n props = { ...props, bInForm };\n }\n } else {\n // eslint-disable-next-line no-console\n console.warn(`View: SdkComponentMap expected but not found.`);\n\n // eslint-disable-next-line no-console\n console.error(`View: Trying to render an unknown template: ${template}`);\n }\n\n // for debugging/investigation\n // console.log(`View rendering template: ${template}`);\n\n // spreading because all props should go to the template\n let RenderedTemplate = <ViewTemplate {...props}>{children}</ViewTemplate>;\n\n if (FORMTEMPLATES.includes(template) && showLabel) {\n // Original:\n // RenderedTemplate = (\n // <FieldGroup name={label} style={{ marginBlockStart: \"1rem\" }}>\n // {RenderedTemplate}\n // </FieldGroup>\n // );\n RenderedTemplate = (\n <div\n data-name='RenderedTemplate'\n data-template-type={template}\n /* name */ id='label'\n style={{ marginBlockStart: '1rem' }}\n className='grid-column'\n >\n {RenderedTemplate}\n </div>\n );\n }\n\n return (\n <div className='grid-column'>\n {showLabel && !NO_HEADER_TEMPLATES.includes(template) && (\n <div className='template-title-container'>\n <span>{label}</span>\n </div>\n )}\n {RenderedTemplate}\n </div>\n );\n }\n\n // debugging/investigation help\n // console.log(`View about to render React.Fragment for children: ${children}`);\n\n if (children) {\n return <>{children}</>;\n } else {\n return <div id='View'>View has no children.</div>;\n }\n}\n\nView.defaultProps = {\n label: undefined,\n showLabel: undefined,\n mode: undefined\n};\n\nView.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.array\n ]) /* array might be empty */,\n template: PropTypes.string /* .isRequired */,\n getPConnect: PropTypes.func.isRequired,\n label: PropTypes.string,\n showLabel: PropTypes.bool,\n mode: PropTypes.string,\n title: PropTypes.string\n};\n\n// Adapted from Nebula/Constellation to add in additional props for some templates\nView.additionalProps = (state, getPConnect) => {\n const thePConn = getPConnect();\n const { template } = thePConn.getConfigProps();\n\n let propObj = {};\n let allFields = {};\n\n switch (template) {\n case 'CaseSummary':\n allFields = getAllFields(thePConn);\n // eslint-disable-next-line no-case-declarations\n const unresFields = {\n primaryFields: allFields[0],\n secondaryFields: allFields[1]\n };\n propObj = thePConn.resolveConfigProps(unresFields);\n break;\n\n case 'Details':\n allFields = getAllFields(thePConn);\n propObj = { fields: allFields[0] };\n break;\n\n default:\n break;\n }\n\n return propObj;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CaseView.d.ts","sourceRoot":"","sources":["../../../../src/components/template/CaseView/CaseView.tsx"],"names":[],"mappings":";AAGA,OAAO,SAAS,MAAM,YAAY,CAAC;AA2CnC,iBAAwB,QAAQ,CAAC,KAAK,KAAA,eAoMrC;kBApMuB,QAAQ;;;;;;;;;;;;;;;;;;;;eAAR,QAAQ"}
1
+ {"version":3,"file":"CaseView.d.ts","sourceRoot":"","sources":["../../../../src/components/template/CaseView/CaseView.tsx"],"names":[],"mappings":";AAGA,OAAO,SAAS,MAAM,YAAY,CAAC;AA2CnC,iBAAwB,QAAQ,CAAC,KAAK,KAAA,eAiMrC;kBAjMuB,QAAQ;;;;;;;;;;;;;;;;;;;;eAAR,QAAQ"}
@@ -44,6 +44,7 @@ export default function CaseView(props) {
44
44
  const { displayOnlyFA } = useContext(StoreContext);
45
45
  const thePConn = getPConnect();
46
46
  const classes = useStyles();
47
+ const editAction = availableActions.find((action) => action.ID === 'pyUpdateCaseDetails');
47
48
  /**
48
49
  *
49
50
  * @param inName the metadata <em>name</em> that will cause a region to be returned
@@ -121,15 +122,13 @@ export default function CaseView(props) {
121
122
  }
122
123
  }, [hasNewAttachments]);
123
124
  function _editClick() {
124
- const editAction = availableActions.find((action) => action.ID === "pyUpdateCaseDetails");
125
125
  const actionsAPI = thePConn.getActionsApi();
126
126
  const openLocalAction = actionsAPI.openLocalAction.bind(actionsAPI);
127
127
  openLocalAction(editAction.ID, { ...editAction });
128
128
  }
129
129
  function getActionButtonsHtml() {
130
130
  const aBHtml = React.createElement(Box, null,
131
- React.createElement(Button, { onClick: () => { _editClick(); } }, "Edit"),
132
- "\u00A0",
131
+ editAction && (React.createElement(Button, { onClick: () => { _editClick(); } }, "Edit")),
133
132
  React.createElement(CaseViewActionsMenu, { getPConnect: getPConnect, availableActions: availableActions, availableProcesses: availableProcesses }));
134
133
  return aBHtml;
135
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CaseView.js","sourceRoot":"","sources":["../../../../src/components/template/CaseView/CaseView.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable react/jsx-boolean-value */\n\nimport React, { useState, useEffect, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Utils } from '../../helpers/utils';\nimport { Card, CardHeader, Avatar, Typography, Divider } from \"@material-ui/core\";\nimport { makeStyles } from '@material-ui/core/styles';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport Grid from '@material-ui/core/Grid';\n\nimport StoreContext from \"../../../bridge/Context/StoreContext\";\nimport CaseViewActionsMenu from \"../CaseViewActionsMenu\";\nimport VerticalTabs from '../../infra/VerticalTabs/VerticalTabs';\nimport DeferLoad from '../../infra/DeferLoad';\n\n\ndeclare const PCore;\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n paddingRight: theme.spacing(1),\n paddingLeft: theme.spacing(1),\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1),\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n caseViewHeader: {\n backgroundColor: theme.palette.info.light,\n color: theme.palette.getContrastText(theme.palette.info.light),\n borderRadius: \"inherit\",\n },\n caseViewIconBox: {\n backgroundColor: theme.palette.info.dark,\n width: theme.spacing(8),\n height: theme.spacing(8),\n padding: theme.spacing(1),\n },\n caseViewIconImage: {\n filter: 'invert(100%)'\n }\n}));\n\nexport default function CaseView(props) {\n const {\n getPConnect,\n icon,\n header,\n subheader,\n children,\n caseInfo: { availableActions = [], availableProcesses = [], hasNewAttachments }\n } = props;\n const currentCaseID = props.caseInfo.ID;\n let isComponentMounted = true;\n\n const { displayOnlyFA } = useContext(StoreContext);\n\n const thePConn = getPConnect();\n\n const classes = useStyles();\n\n\n /**\n *\n * @param inName the metadata <em>name</em> that will cause a region to be returned\n */\n function getChildRegionByName(inName: string): any {\n\n for (const child of children) {\n const theMetadataType: string = child.props.getPConnect().getRawMetadata()['type'].toLowerCase();\n const theMetadataName: string = child.props.getPConnect().getRawMetadata()['name'].toLowerCase();\n\n if ((theMetadataType === \"region\") && (theMetadataName === inName )) {\n return child;\n }\n }\n\n return null;\n }\n\n\n const theSummaryRegion = getChildRegionByName(\"summary\");\n const theStagesRegion = getChildRegionByName(\"stages\");\n const theTodoRegion = getChildRegionByName(\"todo\");\n const theUtilitiesRegion = getChildRegionByName(\"utilities\");\n const theTabsRegion = getChildRegionByName(\"tabs\");\n\n const svgCase = Utils.getImageSrc(icon, PCore.getAssetLoader().getStaticServerUrl());\n\n const [activeVertTab, setActiveVertTab] = useState(0);\n\n // const tmpLoadData1 = { config: { label: \"Details\", name: \"pyDetailsTabContent\" }, type: \"DeferLoad\" };\n // const tmpLoadData2 = { config: { label: \"Case History\", name: \"CaseHistory\" }, type: \"DeferLoad\" };\n\n // Extract the tabs we need to display from theTabsRegion (one tab per entry in theTabsRegionChildren)\n const theTabsRegionChildren = theTabsRegion.props.getPConnect().getChildren();\n\n // vertTabInfo is sent to VerticalTabs component\n const vertTabInfo: Array<Object> = [];\n\n // deferLoadInfo is sent to DeferLoad component (currently selected entry)\n const deferLoadInfo: Array<any> = [];\n\n if (theTabsRegionChildren) {\n // populate vertTabInfo and deferLoadInfo\n theTabsRegionChildren.forEach((tabComp, index) => {\n const theTabCompConfig = tabComp.getPConnect().getConfigProps();\n // eslint-disable-next-line prefer-const\n let { label, inheritedProps } = theTabCompConfig;\n // For some tabs, \"label\" property is not avaialable in theTabCompConfig, so will get them from inheritedProps\n if (!label) {\n inheritedProps.forEach(inheritedProp => {\n if (inheritedProp.prop === 'label') {\n label = inheritedProp.value;\n }\n });\n }\n // We'll display the tabs when either visibility property doesn't exist or is true(if exists)\n if (theTabCompConfig.visibility === undefined || theTabCompConfig.visibility === true) {\n vertTabInfo.push({ name: label, id: index });\n deferLoadInfo.push({ type: 'DeferLoad', config: theTabCompConfig });\n }\n });\n }\n\n\n\n function handleVerticalTabClick(eventDetail: any) {\n const theItem = parseInt(eventDetail.additionalData.itemClicked, 10);\n\n // only call useEffectSetter if the component is mounted\n if (isComponentMounted) {\n setActiveVertTab(theItem);\n }\n }\n\n\n // Add and Remove event listener for VerticalTabClick only at startup and teardown\n useEffect(() => {\n document.addEventListener('VerticalTabClick', (event: any) => {\n handleVerticalTabClick(event.detail);\n });\n\n return ():void => {\n // inform that the component is unmounted so other code can\n // know not to try to call useState setters (to avoid console warnings)\n isComponentMounted = false;\n\n document.removeEventListener('VerticalTabClick', (event: any) => {\n handleVerticalTabClick(event.detail);\n });\n }\n }, [])\n\n useEffect(() => {\n if (hasNewAttachments) {\n PCore.getPubSubUtils().publish(PCore.getEvents().getCaseEvent().CASE_ATTACHMENTS_UPDATED_FROM_CASEVIEW, true);\n }\n }, [hasNewAttachments]);\n\n function _editClick() {\n\n const editAction = availableActions.find(\n (action) => action.ID === \"pyUpdateCaseDetails\"\n );\n const actionsAPI = thePConn.getActionsApi();\n const openLocalAction = actionsAPI.openLocalAction.bind(actionsAPI);\n\n openLocalAction( editAction.ID, { ...editAction});\n }\n\n\n function getActionButtonsHtml(): any {\n\n const aBHtml = <Box>\n <Button onClick={() => {_editClick()}}>Edit</Button>\n &nbsp;\n <CaseViewActionsMenu getPConnect={getPConnect} availableActions={availableActions} availableProcesses={availableProcesses} />\n </Box>;\n\n\n return aBHtml;\n\n }\n\n\n function getContainerContents() {\n\n if (!displayOnlyFA) {\n // show full portal\n return (\n <Grid container>\n <Grid item xs={3}>\n <div hidden={true} id=\"current-caseID\">{currentCaseID}</div>\n <Card className={classes.root} >\n <CardHeader className={classes.caseViewHeader}\n title={<Typography variant=\"h6\" component=\"div\">{header}</Typography>}\n subheader={<Typography variant=\"body1\" component=\"div\" id=\"caseId\">{subheader}</Typography>}\n avatar={\n <Avatar className={classes.caseViewIconBox} variant=\"square\">\n <img src={svgCase} className={classes.caseViewIconImage}/>\n </Avatar>\n }\n />\n {getActionButtonsHtml()}\n <Divider />\n {theSummaryRegion}\n <Divider />\n { vertTabInfo.length > 1 && <VerticalTabs tabconfig={vertTabInfo} />}\n </Card>\n </Grid>\n\n <Grid item xs={6}>\n {theStagesRegion}\n {theTodoRegion}\n { deferLoadInfo.length > 0 && <DeferLoad getPConnect={getPConnect} name={deferLoadInfo[activeVertTab].config.name } isTab />}\n </Grid>\n\n <Grid item xs={3}>\n {theUtilitiesRegion}\n </Grid>\n </Grid>\n )\n } else {\n // displayOnlyFA - only show the \"todo\" region\n return (\n <Grid container>\n <Grid item xs={12}>\n {theTodoRegion}\n </Grid>\n </Grid>\n )\n }\n }\n\n\n return (\n getContainerContents()\n );\n}\n\nCaseView.defaultProps = {\n icon: \"\",\n children: [],\n caseInfo: {},\n showIconInHeader: true,\n getPConnect: null\n};\n\nCaseView.propTypes = {\n icon: PropTypes.string,\n children: PropTypes.arrayOf(PropTypes.node),\n subheader: PropTypes.string.isRequired,\n header: PropTypes.string.isRequired,\n showIconInHeader: PropTypes.bool,\n caseInfo: PropTypes.objectOf(PropTypes.any),\n getPConnect: PropTypes.func\n};\n"]}
1
+ {"version":3,"file":"CaseView.js","sourceRoot":"","sources":["../../../../src/components/template/CaseView/CaseView.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable react/jsx-boolean-value */\n\nimport React, { useState, useEffect, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Utils } from '../../helpers/utils';\nimport { Card, CardHeader, Avatar, Typography, Divider } from \"@material-ui/core\";\nimport { makeStyles } from '@material-ui/core/styles';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport Grid from '@material-ui/core/Grid';\n\nimport StoreContext from \"../../../bridge/Context/StoreContext\";\nimport CaseViewActionsMenu from \"../CaseViewActionsMenu\";\nimport VerticalTabs from '../../infra/VerticalTabs/VerticalTabs';\nimport DeferLoad from '../../infra/DeferLoad';\n\n\ndeclare const PCore;\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n paddingRight: theme.spacing(1),\n paddingLeft: theme.spacing(1),\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1),\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n caseViewHeader: {\n backgroundColor: theme.palette.info.light,\n color: theme.palette.getContrastText(theme.palette.info.light),\n borderRadius: \"inherit\",\n },\n caseViewIconBox: {\n backgroundColor: theme.palette.info.dark,\n width: theme.spacing(8),\n height: theme.spacing(8),\n padding: theme.spacing(1),\n },\n caseViewIconImage: {\n filter: 'invert(100%)'\n }\n}));\n\nexport default function CaseView(props) {\n const {\n getPConnect,\n icon,\n header,\n subheader,\n children,\n caseInfo: { availableActions = [], availableProcesses = [], hasNewAttachments }\n } = props;\n const currentCaseID = props.caseInfo.ID;\n let isComponentMounted = true;\n\n const { displayOnlyFA } = useContext(StoreContext);\n\n const thePConn = getPConnect();\n\n const classes = useStyles();\n\n const editAction = availableActions.find((action) => action.ID === 'pyUpdateCaseDetails');\n\n /**\n *\n * @param inName the metadata <em>name</em> that will cause a region to be returned\n */\n function getChildRegionByName(inName: string): any {\n\n for (const child of children) {\n const theMetadataType: string = child.props.getPConnect().getRawMetadata()['type'].toLowerCase();\n const theMetadataName: string = child.props.getPConnect().getRawMetadata()['name'].toLowerCase();\n\n if ((theMetadataType === \"region\") && (theMetadataName === inName )) {\n return child;\n }\n }\n\n return null;\n }\n\n\n const theSummaryRegion = getChildRegionByName(\"summary\");\n const theStagesRegion = getChildRegionByName(\"stages\");\n const theTodoRegion = getChildRegionByName(\"todo\");\n const theUtilitiesRegion = getChildRegionByName(\"utilities\");\n const theTabsRegion = getChildRegionByName(\"tabs\");\n\n const svgCase = Utils.getImageSrc(icon, PCore.getAssetLoader().getStaticServerUrl());\n\n const [activeVertTab, setActiveVertTab] = useState(0);\n\n // const tmpLoadData1 = { config: { label: \"Details\", name: \"pyDetailsTabContent\" }, type: \"DeferLoad\" };\n // const tmpLoadData2 = { config: { label: \"Case History\", name: \"CaseHistory\" }, type: \"DeferLoad\" };\n\n // Extract the tabs we need to display from theTabsRegion (one tab per entry in theTabsRegionChildren)\n const theTabsRegionChildren = theTabsRegion.props.getPConnect().getChildren();\n\n // vertTabInfo is sent to VerticalTabs component\n const vertTabInfo: Array<Object> = [];\n\n // deferLoadInfo is sent to DeferLoad component (currently selected entry)\n const deferLoadInfo: Array<any> = [];\n\n if (theTabsRegionChildren) {\n // populate vertTabInfo and deferLoadInfo\n theTabsRegionChildren.forEach((tabComp, index) => {\n const theTabCompConfig = tabComp.getPConnect().getConfigProps();\n // eslint-disable-next-line prefer-const\n let { label, inheritedProps } = theTabCompConfig;\n // For some tabs, \"label\" property is not avaialable in theTabCompConfig, so will get them from inheritedProps\n if (!label) {\n inheritedProps.forEach(inheritedProp => {\n if (inheritedProp.prop === 'label') {\n label = inheritedProp.value;\n }\n });\n }\n // We'll display the tabs when either visibility property doesn't exist or is true(if exists)\n if (theTabCompConfig.visibility === undefined || theTabCompConfig.visibility === true) {\n vertTabInfo.push({ name: label, id: index });\n deferLoadInfo.push({ type: 'DeferLoad', config: theTabCompConfig });\n }\n });\n }\n\n\n\n function handleVerticalTabClick(eventDetail: any) {\n const theItem = parseInt(eventDetail.additionalData.itemClicked, 10);\n\n // only call useEffectSetter if the component is mounted\n if (isComponentMounted) {\n setActiveVertTab(theItem);\n }\n }\n\n\n // Add and Remove event listener for VerticalTabClick only at startup and teardown\n useEffect(() => {\n document.addEventListener('VerticalTabClick', (event: any) => {\n handleVerticalTabClick(event.detail);\n });\n\n return ():void => {\n // inform that the component is unmounted so other code can\n // know not to try to call useState setters (to avoid console warnings)\n isComponentMounted = false;\n\n document.removeEventListener('VerticalTabClick', (event: any) => {\n handleVerticalTabClick(event.detail);\n });\n }\n }, [])\n\n useEffect(() => {\n if (hasNewAttachments) {\n PCore.getPubSubUtils().publish(PCore.getEvents().getCaseEvent().CASE_ATTACHMENTS_UPDATED_FROM_CASEVIEW, true);\n }\n }, [hasNewAttachments]);\n\n function _editClick() {\n\n const actionsAPI = thePConn.getActionsApi();\n const openLocalAction = actionsAPI.openLocalAction.bind(actionsAPI);\n\n openLocalAction( editAction.ID, { ...editAction});\n }\n\n\n function getActionButtonsHtml(): any {\n\n const aBHtml = <Box>\n {editAction && (<Button onClick={() => {_editClick()}}>Edit</Button>)}\n <CaseViewActionsMenu getPConnect={getPConnect} availableActions={availableActions} availableProcesses={availableProcesses} />\n </Box>;\n\n\n return aBHtml;\n\n }\n\n\n function getContainerContents() {\n\n if (!displayOnlyFA) {\n // show full portal\n return (\n <Grid container>\n <Grid item xs={3}>\n <div hidden={true} id=\"current-caseID\">{currentCaseID}</div>\n <Card className={classes.root} >\n <CardHeader className={classes.caseViewHeader}\n title={<Typography variant=\"h6\" component=\"div\">{header}</Typography>}\n subheader={<Typography variant=\"body1\" component=\"div\" id=\"caseId\">{subheader}</Typography>}\n avatar={\n <Avatar className={classes.caseViewIconBox} variant=\"square\">\n <img src={svgCase} className={classes.caseViewIconImage}/>\n </Avatar>\n }\n />\n {getActionButtonsHtml()}\n <Divider />\n {theSummaryRegion}\n <Divider />\n { vertTabInfo.length > 1 && <VerticalTabs tabconfig={vertTabInfo} />}\n </Card>\n </Grid>\n\n <Grid item xs={6}>\n {theStagesRegion}\n {theTodoRegion}\n { deferLoadInfo.length > 0 && <DeferLoad getPConnect={getPConnect} name={deferLoadInfo[activeVertTab].config.name } isTab />}\n </Grid>\n\n <Grid item xs={3}>\n {theUtilitiesRegion}\n </Grid>\n </Grid>\n )\n } else {\n // displayOnlyFA - only show the \"todo\" region\n return (\n <Grid container>\n <Grid item xs={12}>\n {theTodoRegion}\n </Grid>\n </Grid>\n )\n }\n }\n\n\n return (\n getContainerContents()\n );\n}\n\nCaseView.defaultProps = {\n icon: \"\",\n children: [],\n caseInfo: {},\n showIconInHeader: true,\n getPConnect: null\n};\n\nCaseView.propTypes = {\n icon: PropTypes.string,\n children: PropTypes.arrayOf(PropTypes.node),\n subheader: PropTypes.string.isRequired,\n header: PropTypes.string.isRequired,\n showIconInHeader: PropTypes.bool,\n caseInfo: PropTypes.objectOf(PropTypes.any),\n getPConnect: PropTypes.func\n};\n"]}