@pega/react-sdk-overrides 0.23.26 → 0.23.27

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 (238) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +17 -0
  3. package/SECURITY.md +10 -0
  4. package/lib/designSystemExtension/AlertBanner/AlertBanner.tsx +39 -0
  5. package/lib/designSystemExtension/AlertBanner/index.tsx +1 -0
  6. package/lib/designSystemExtension/Banner/Banner.tsx +21 -7
  7. package/lib/designSystemExtension/CaseSummaryFields/CaseSummaryFields.css +0 -1
  8. package/lib/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +36 -26
  9. package/lib/designSystemExtension/DetailsFields/DetailsFields.tsx +21 -28
  10. package/lib/designSystemExtension/DetailsFields/index.tsx +1 -1
  11. package/lib/designSystemExtension/FieldGroup/FieldGroup.tsx +50 -18
  12. package/lib/designSystemExtension/FieldGroupList/FieldGroupList.tsx +13 -12
  13. package/lib/designSystemExtension/FieldValueList/FieldValueList.tsx +18 -27
  14. package/lib/designSystemExtension/Operator/Operator.tsx +106 -87
  15. package/lib/designSystemExtension/Pulse/Pulse.tsx +21 -19
  16. package/lib/designSystemExtension/RichTextEditor/RichTextEditor.tsx +122 -0
  17. package/lib/designSystemExtension/RichTextEditor/index.tsx +1 -0
  18. package/lib/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +21 -12
  19. package/lib/field/AutoComplete/AutoComplete.tsx +33 -16
  20. package/lib/field/AutoComplete/config-ext.json +2 -3
  21. package/lib/field/CancelAlert/CancelAlert.tsx +21 -15
  22. package/lib/field/CancelAlert/index.tsx +1 -1
  23. package/lib/field/Checkbox/Checkbox.tsx +29 -19
  24. package/lib/field/Checkbox/config-ext.json +2 -3
  25. package/lib/field/Currency/Currency.tsx +27 -38
  26. package/lib/field/Currency/config-ext.json +2 -3
  27. package/lib/field/Currency/currency-utils.ts +10 -18
  28. package/lib/field/Date/Date.tsx +33 -15
  29. package/lib/field/Date/config-ext.json +2 -3
  30. package/lib/field/DateTime/DateTime.tsx +22 -11
  31. package/lib/field/DateTime/config-ext.json +1 -2
  32. package/lib/field/Decimal/Decimal.tsx +64 -17
  33. package/lib/field/Decimal/config-ext.json +1 -2
  34. package/lib/field/Decimal/index.tsx +1 -1
  35. package/lib/field/Dropdown/Dropdown.tsx +154 -18
  36. package/lib/field/Dropdown/config-ext.json +1 -2
  37. package/lib/field/Email/Email.tsx +16 -7
  38. package/lib/field/Email/config-ext.json +1 -2
  39. package/lib/field/Email/index.tsx +1 -1
  40. package/lib/field/Group/Group.tsx +37 -0
  41. package/lib/field/Group/config-ext.json +7 -0
  42. package/lib/field/Group/index.tsx +1 -0
  43. package/lib/field/Integer/Integer.tsx +15 -6
  44. package/lib/field/Integer/config-ext.json +1 -2
  45. package/lib/field/Percentage/Percentage.tsx +14 -6
  46. package/lib/field/Percentage/config-ext.json +1 -2
  47. package/lib/field/Phone/Phone.tsx +17 -7
  48. package/lib/field/Phone/index.tsx +1 -1
  49. package/lib/field/RadioButtons/RadioButtons.tsx +55 -24
  50. package/lib/field/RadioButtons/config-ext.json +1 -2
  51. package/lib/field/RichText/RichText.tsx +96 -0
  52. package/lib/field/RichText/index.tsx +1 -0
  53. package/lib/field/ScalarList/ScalarList.tsx +63 -0
  54. package/lib/field/ScalarList/config-ext.json +7 -0
  55. package/lib/field/ScalarList/index.tsx +1 -0
  56. package/lib/field/SemanticLink/SemanticLink.tsx +26 -25
  57. package/lib/field/SemanticLink/config-ext.json +1 -2
  58. package/lib/field/SemanticLink/utils.ts +8 -10
  59. package/lib/field/TextArea/TextArea.tsx +15 -5
  60. package/lib/field/TextArea/config-ext.json +1 -2
  61. package/lib/field/TextContent/TextContent.tsx +9 -2
  62. package/lib/field/TextContent/config-ext.json +1 -2
  63. package/lib/field/TextInput/TextInput.tsx +41 -10
  64. package/lib/field/TextInput/config-ext.json +1 -2
  65. package/lib/field/TextInput/index.tsx +1 -1
  66. package/lib/field/Time/Time.tsx +21 -18
  67. package/lib/field/Time/config-ext.json +1 -2
  68. package/lib/field/URL/URL.tsx +23 -6
  69. package/lib/field/URL/config-ext.json +1 -2
  70. package/lib/field/URL/index.tsx +1 -1
  71. package/lib/field/UserReference/UserReference.tsx +52 -58
  72. package/lib/field/UserReference/UserReferenceUtils.ts +2 -2
  73. package/lib/field/UserReference/config-ext.json +1 -2
  74. package/lib/helpers/{attachmentHelpers.js → attachmentHelpers.ts} +16 -11
  75. package/lib/helpers/case-utils.tsx +99 -0
  76. package/lib/helpers/common-utils.ts +8 -0
  77. package/lib/helpers/data_page.ts +3 -6
  78. package/lib/helpers/date-format-utils.ts +29 -19
  79. package/lib/helpers/{event-utils.js → event-utils.ts} +4 -4
  80. package/lib/helpers/{field-group-utils.js → field-group-utils.ts} +9 -10
  81. package/lib/helpers/formatters/Boolean.ts +21 -0
  82. package/lib/helpers/formatters/{Currency.js → Currency.ts} +22 -27
  83. package/lib/helpers/formatters/CurrencyMap.ts +915 -0
  84. package/lib/helpers/formatters/{Date.js → Date.ts} +20 -26
  85. package/lib/helpers/formatters/{common.js → common.ts} +3 -4
  86. package/lib/helpers/formatters/{index.js → index.ts} +22 -22
  87. package/lib/helpers/{reactContextHelpers.js → reactContextHelpers.ts} +2 -2
  88. package/lib/helpers/simpleTableHelpers.ts +65 -85
  89. package/lib/helpers/state-utils.tsx +43 -0
  90. package/lib/helpers/template-utils.ts +4 -8
  91. package/lib/helpers/utils.ts +16 -8
  92. package/lib/helpers/versionHelpers.ts +1 -5
  93. package/lib/infra/ActionButtons/ActionButtons.tsx +46 -42
  94. package/lib/infra/ActionButtons/index.tsx +1 -1
  95. package/lib/infra/Assignment/Assignment.tsx +99 -84
  96. package/lib/infra/Assignment/index.tsx +1 -1
  97. package/lib/infra/AssignmentCard/AssignmentCard.tsx +19 -26
  98. package/lib/infra/AssignmentCard/index.tsx +1 -1
  99. package/lib/infra/Containers/FlowContainer/FlowContainer.tsx +98 -232
  100. package/lib/infra/Containers/FlowContainer/helpers.ts +138 -0
  101. package/lib/infra/Containers/FlowContainer/index.tsx +1 -1
  102. package/lib/infra/Containers/ModalViewContainer/ListViewActionButtons/ListViewActionButtons.tsx +66 -0
  103. package/lib/infra/Containers/ModalViewContainer/ListViewActionButtons/index.tsx +1 -0
  104. package/lib/infra/Containers/ModalViewContainer/ModalViewContainer.tsx +105 -70
  105. package/lib/infra/Containers/ModalViewContainer/index.tsx +1 -1
  106. package/lib/infra/Containers/SimpleView/SimpleView.tsx +48 -0
  107. package/lib/infra/Containers/SimpleView/helper.ts +125 -0
  108. package/lib/infra/Containers/SimpleView/index.tsx +1 -0
  109. package/lib/infra/Containers/ViewContainer/ViewContainer.tsx +49 -64
  110. package/lib/infra/Containers/helpers.ts +6 -0
  111. package/lib/infra/DashboardFilter/DashboardFilter.tsx +26 -51
  112. package/lib/infra/DashboardFilter/filterUtils.tsx +12 -40
  113. package/lib/infra/DeferLoad/DeferLoad.tsx +22 -31
  114. package/lib/infra/DeferLoad/index.tsx +1 -1
  115. package/lib/infra/ErrorBoundary/ErrorBoundary.tsx +25 -38
  116. package/lib/infra/MultiStep/MultiStep.css +11 -15
  117. package/lib/infra/MultiStep/MultiStep.tsx +180 -216
  118. package/lib/infra/MultiStep/index.tsx +1 -1
  119. package/lib/infra/NavBar/NavBar.css +103 -105
  120. package/lib/infra/NavBar/NavBar.tsx +28 -43
  121. package/lib/infra/Reference/Reference.tsx +16 -22
  122. package/lib/infra/Region/Region.tsx +9 -9
  123. package/lib/infra/RootContainer/RootContainer.tsx +82 -125
  124. package/lib/infra/RootContainer/index.tsx +1 -1
  125. package/lib/infra/Stages/Stages.tsx +38 -39
  126. package/lib/infra/VerticalTabs/LeftAlignVerticalTabs/LeftAlignVerticalTabs.tsx +17 -10
  127. package/lib/infra/VerticalTabs/VerticalTabs/VerticalTabs.tsx +29 -36
  128. package/lib/infra/View/View.tsx +32 -63
  129. package/lib/template/AppShell/AppShell.css +22 -23
  130. package/lib/template/AppShell/AppShell.tsx +51 -69
  131. package/lib/template/BannerPage/BannerPage.tsx +26 -33
  132. package/lib/template/CaseSummary/CaseSummary.tsx +23 -18
  133. package/lib/template/CaseSummary/config-ext.json +1 -2
  134. package/lib/template/CaseView/CaseView.tsx +122 -114
  135. package/lib/template/CaseView/config-ext.json +1 -2
  136. package/lib/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +46 -35
  137. package/lib/template/Confirmation/Confirmation.tsx +25 -53
  138. package/lib/template/Confirmation/config-ext.json +1 -2
  139. package/lib/template/DataReference/DataReference.tsx +112 -140
  140. package/lib/template/DataReference/config-ext.json +1 -2
  141. package/lib/template/DefaultForm/DefaultForm.css +7 -3
  142. package/lib/template/DefaultForm/DefaultForm.tsx +26 -20
  143. package/lib/template/DefaultForm/config-ext.json +1 -2
  144. package/lib/template/DefaultForm/utils/index.ts +33 -0
  145. package/lib/template/Details/Details/Details.tsx +24 -28
  146. package/lib/template/Details/DetailsSubTabs/DetailsSubTabs.tsx +15 -22
  147. package/lib/template/Details/DetailsSubTabs/config-ext.json +1 -2
  148. package/lib/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +25 -29
  149. package/lib/template/Details/DetailsThreeColumn/config-ext.json +1 -2
  150. package/lib/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +25 -29
  151. package/lib/template/Details/DetailsTwoColumn/config-ext.json +1 -2
  152. package/lib/template/Details/DetailsTwoColumn/index.tsx +1 -1
  153. package/lib/template/Details/DynamicTabs/DynamicTabs.tsx +79 -0
  154. package/lib/template/Details/DynamicTabs/config.json +36 -0
  155. package/lib/template/Details/DynamicTabs/index.tsx +1 -0
  156. package/lib/template/FieldGroupTemplate/FieldGroupTemplate.tsx +24 -34
  157. package/lib/template/InlineDashboard/InlineDashboard.tsx +16 -14
  158. package/lib/template/InlineDashboardPage/InlineDashboardPage.tsx +19 -21
  159. package/lib/template/ListPage/ListPage.tsx +12 -16
  160. package/lib/template/ListPage/config-ext.json +1 -2
  161. package/lib/template/ListView/{DefaultViewMeta.js → DefaultViewMeta.ts} +1 -3
  162. package/lib/template/ListView/ListView.tsx +245 -306
  163. package/lib/template/ListView/config-ext.json +1 -2
  164. package/lib/template/ListView/{hooks.js → hooks.ts} +24 -24
  165. package/lib/template/ListView/{utils.js → utils.ts} +202 -91
  166. package/lib/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +25 -30
  167. package/lib/template/NarrowWide/NarrowWide/NarrowWide.css +0 -2
  168. package/lib/template/NarrowWide/NarrowWide/NarrowWide.tsx +31 -29
  169. package/lib/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +27 -31
  170. package/lib/template/NarrowWide/NarrowWideDetails/config-ext.json +1 -2
  171. package/lib/template/NarrowWide/NarrowWideForm/NarrowWideForm.css +0 -2
  172. package/lib/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +17 -19
  173. package/lib/template/NarrowWide/NarrowWideForm/config-ext.json +1 -2
  174. package/lib/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +16 -26
  175. package/lib/template/NarrowWide/NarrowWidePage/config-ext.json +1 -2
  176. package/lib/template/OneColumn/OneColumn/OneColumn.tsx +17 -17
  177. package/lib/template/OneColumn/OneColumn/config-ext.json +1 -2
  178. package/lib/template/OneColumn/OneColumnPage/OneColumnPage.tsx +9 -16
  179. package/lib/template/OneColumn/OneColumnPage/config-ext.json +1 -2
  180. package/lib/template/OneColumn/OneColumnTab/OneColumnTab.tsx +8 -14
  181. package/lib/template/OneColumn/OneColumnTab/config-ext.json +1 -2
  182. package/lib/template/PromotedFilters/PromotedFilters.css +1 -1
  183. package/lib/template/PromotedFilters/PromotedFilters.tsx +44 -34
  184. package/lib/template/SimpleTable/SimpleTable/SimpleTable.tsx +115 -14
  185. package/lib/template/SimpleTable/SimpleTable/config-ext.json +1 -2
  186. package/lib/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +171 -100
  187. package/lib/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +34 -40
  188. package/lib/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +45 -48
  189. package/lib/template/SubTabs/SubTabs.tsx +26 -45
  190. package/lib/template/SubTabs/config-ext.json +1 -2
  191. package/lib/template/SubTabs/tabUtils.ts +2 -7
  192. package/lib/template/TwoColumn/TwoColumn/TwoColumn.css +0 -1
  193. package/lib/template/TwoColumn/TwoColumn/TwoColumn.tsx +33 -36
  194. package/lib/template/TwoColumn/TwoColumn/config-ext.json +1 -2
  195. package/lib/template/TwoColumn/TwoColumnPage/TwoColumnPage.tsx +9 -16
  196. package/lib/template/TwoColumn/TwoColumnPage/config-ext.json +1 -2
  197. package/lib/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +33 -33
  198. package/lib/template/TwoColumn/TwoColumnTab/config-ext.json +1 -2
  199. package/lib/template/WideNarrow/WideNarrow/WideNarrow.css +0 -2
  200. package/lib/template/WideNarrow/WideNarrow/WideNarrow.tsx +29 -27
  201. package/lib/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +39 -33
  202. package/lib/template/WideNarrow/WideNarrowDetails/config-ext.json +1 -2
  203. package/lib/template/WideNarrow/WideNarrowForm/WideNarrowForm.css +0 -2
  204. package/lib/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +16 -18
  205. package/lib/template/WideNarrow/WideNarrowForm/config-ext.json +1 -2
  206. package/lib/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +15 -25
  207. package/lib/template/WideNarrow/WideNarrowPage/config-ext.json +1 -2
  208. package/lib/template/WideNarrow/WideNarrowPage/index.tsx +1 -1
  209. package/lib/template/WssNavBar/WssNavBar.tsx +20 -9
  210. package/lib/widget/AppAnnouncement/AppAnnouncement.tsx +34 -41
  211. package/lib/widget/AppAnnouncement/config-ext.json +1 -2
  212. package/lib/widget/Attachment/Attachment.css +75 -4
  213. package/lib/widget/Attachment/Attachment.tsx +370 -388
  214. package/lib/widget/Attachment/index.tsx +1 -1
  215. package/lib/widget/CaseHistory/CaseHistory.tsx +67 -67
  216. package/lib/widget/CaseHistory/config-ext.json +1 -2
  217. package/lib/widget/CaseHistory/index.tsx +1 -1
  218. package/lib/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +19 -9
  219. package/lib/widget/FileUtility/FileUtility/FileUtility.css +2 -2
  220. package/lib/widget/FileUtility/FileUtility/FileUtility.tsx +324 -246
  221. package/lib/widget/FileUtility/FileUtility/config-ext.json +1 -2
  222. package/lib/widget/Followers/Followers.tsx +27 -25
  223. package/lib/widget/Followers/config-ext.json +1 -2
  224. package/lib/widget/QuickCreate/QuickCreate.tsx +24 -16
  225. package/lib/widget/SummaryItem/SummaryItem.css +9 -9
  226. package/lib/widget/SummaryItem/SummaryItem.tsx +62 -54
  227. package/lib/widget/SummaryItem/index.tsx +1 -1
  228. package/lib/widget/SummaryList/SummaryList.tsx +15 -4
  229. package/lib/widget/ToDo/ToDo.css +4 -4
  230. package/lib/widget/ToDo/ToDo.tsx +80 -116
  231. package/lib/widget/ToDo/config-ext.json +1 -2
  232. package/package.json +5 -2
  233. package/lib/helpers/auth.js +0 -483
  234. package/lib/helpers/authManager.js +0 -631
  235. package/lib/helpers/config_access.js +0 -268
  236. package/lib/helpers/formatters/Boolean.js +0 -38
  237. package/lib/helpers/formatters/CurrencyMap.js +0 -908
  238. package/lib/infra/Containers/FlowContainer/helpers.js +0 -147
@@ -1,14 +1,25 @@
1
- import React, { createElement } from 'react';
2
- import PropTypes from 'prop-types';
3
- import Grid from '@material-ui/core/Grid';
4
- import { GridSize } from '@material-ui/core/Grid';
1
+ import { createElement } from 'react';
2
+ import Grid, { GridSize } from '@material-ui/core/Grid';
3
+
5
4
  import createPConnectComponent from '@pega/react-sdk-components/lib/bridge/react_pconnect';
6
- import FieldGroup from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldGroup';
5
+ import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
6
+
7
+ import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
8
+
9
+ interface WideNarrowDetailsProps extends PConnProps {
10
+ // If any, enter additional props that only exist on this component
11
+ showLabel?: boolean;
12
+ label?: string;
13
+ showHighlightedData?: boolean;
14
+ }
7
15
 
8
16
  const COLUMN_WIDTHS = [8, 4];
9
17
 
10
- export default function WideNarrowDetails(props) {
11
- const { label, showLabel, getPConnect, showHighlightedData } = props;
18
+ export default function WideNarrowDetails(props: WideNarrowDetailsProps) {
19
+ // Get emitted components from map (so we can get any override that may exist)
20
+ const FieldGroup = getComponentFromMap('FieldGroup');
21
+
22
+ const { label, showLabel = true, getPConnect, showHighlightedData = false } = props;
12
23
 
13
24
  // Get the inherited props from the parent to determine label settings
14
25
  const propsToUse = { label, showLabel, ...getPConnect().getInheritedProps() };
@@ -17,20 +28,23 @@ export default function WideNarrowDetails(props) {
17
28
  // in a readonly (display) mode instead of a editable
18
29
  getPConnect().setInheritedProp('displayMode', 'LABELS_LEFT');
19
30
  getPConnect().setInheritedProp('readOnly', true);
20
- const children = getPConnect()
21
- .getChildren()
22
- .map((configObject, index) =>
23
- createElement(createPConnectComponent(), {
24
- ...configObject,
25
- // eslint-disable-next-line react/no-array-index-key
26
- key: index.toString()
27
- })
28
- );
31
+ const children = (getPConnect().getChildren() as any[])?.map((configObject, index) => {
32
+ let theConfigObject: object = configObject;
33
+ if (!theConfigObject) {
34
+ theConfigObject = {};
35
+ }
36
+
37
+ return createElement(createPConnectComponent(), {
38
+ ...theConfigObject,
39
+ // eslint-disable-next-line react/no-array-index-key
40
+ key: index.toString()
41
+ });
42
+ });
29
43
 
30
44
  // Set up highlighted data to pass in return if is set to show, need raw metadata to pass to createComponent
31
45
  let highlightedDataArr = [];
32
46
  if (showHighlightedData) {
33
- const { highlightedData = [] } = getPConnect().getRawMetadata().config;
47
+ const { highlightedData = [] } = (getPConnect().getRawMetadata() as any).config;
34
48
  highlightedDataArr = highlightedData.map(field => {
35
49
  field.config.displayMode = 'STACKED_LARGE_VAL';
36
50
 
@@ -40,12 +54,17 @@ export default function WideNarrowDetails(props) {
40
54
  field.config.displayAsStatus = true;
41
55
  }
42
56
 
43
- return getPConnect().createComponent(field);
57
+ return getPConnect().createComponent(field, '', '', {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional
44
58
  });
45
59
  }
46
60
 
61
+ let theName = '';
62
+ if (propsToUse?.showLabel && propsToUse.label) {
63
+ theName = propsToUse.label;
64
+ }
65
+
47
66
  return (
48
- <FieldGroup name={propsToUse.showLabel ? propsToUse.label : ''}>
67
+ <FieldGroup name={theName}>
49
68
  {showHighlightedData && highlightedDataArr.length > 0 && (
50
69
  <Grid container spacing={1} style={{ padding: '0 0 1em' }}>
51
70
  {highlightedDataArr.map((child, i) => (
@@ -56,7 +75,7 @@ export default function WideNarrowDetails(props) {
56
75
  </Grid>
57
76
  )}
58
77
  <Grid container spacing={1}>
59
- {children.map((child, i) => (
78
+ {children?.map((child, i) => (
60
79
  <Grid item xs={COLUMN_WIDTHS[i] as GridSize} key={`r-${i + 1}`}>
61
80
  {child}
62
81
  </Grid>
@@ -65,16 +84,3 @@ export default function WideNarrowDetails(props) {
65
84
  </FieldGroup>
66
85
  );
67
86
  }
68
-
69
- WideNarrowDetails.defaultProps = {
70
- label: undefined,
71
- showLabel: true,
72
- showHighlightedData: false
73
- };
74
-
75
- WideNarrowDetails.propTypes = {
76
- showLabel: PropTypes.bool,
77
- label: PropTypes.string,
78
- getPConnect: PropTypes.func.isRequired,
79
- showHighlightedData: PropTypes.bool
80
- };
@@ -4,6 +4,5 @@
4
4
  "description": "Details (Wide-narrow) template",
5
5
  "type": "Template",
6
6
  "subtype": "DETAILS",
7
- "properties": [
8
- ]
7
+ "properties": []
9
8
  }
@@ -9,7 +9,6 @@
9
9
  float: left;
10
10
  padding: 0rem 0.3125rem 0rem 0rem;
11
11
  height: 100%;
12
-
13
12
  }
14
13
 
15
14
  .psd-wide-narrow-column .psdk-wide-column-column {
@@ -17,5 +16,4 @@
17
16
  float: left;
18
17
  padding: 0rem 0rem 0rem 0.3125rem;
19
18
  height: 100%;
20
-
21
19
  }
@@ -1,24 +1,22 @@
1
- import React from "react";
2
-
1
+ import { PropsWithChildren, ReactElement } from 'react';
2
+ import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
3
3
  import './WideNarrowForm.css';
4
4
 
5
- export default function WideNarrowForm(props) {
6
- const {children} = props;
5
+ interface WideNarrowFormProps extends PConnProps {
6
+ // If any, enter additional props that only exist on this component
7
+ }
8
+
9
+ export default function WideNarrowForm(props: PropsWithChildren<WideNarrowFormProps>) {
10
+ const { children } = props;
7
11
 
8
12
  return (
9
- <React.Fragment>
10
- {children && children.length === 2 &&
11
- <div className="psdk-wide-narrow-column">
12
- <div className="psdk-wide-column-column">
13
- {children[0]}
13
+ <>
14
+ {children && (children as ReactElement[]).length === 2 && (
15
+ <div className='psdk-wide-narrow-column'>
16
+ <div className='psdk-wide-column-column'>{children[0]}</div>
17
+ <div className='psdk-narrow-column-column'>{children[1]}</div>
14
18
  </div>
15
- <div className="psdk-narrow-column-column">
16
- {children[1]}
17
- </div>
18
- </div>
19
- }
20
- </React.Fragment>
21
-
22
- )
23
-
19
+ )}
20
+ </>
21
+ );
24
22
  }
@@ -4,6 +4,5 @@
4
4
  "description": "WideNarrow Template",
5
5
  "type": "Template",
6
6
  "subtype": "FORM",
7
- "properties": [
8
- ]
7
+ "properties": []
9
8
  }
@@ -1,38 +1,28 @@
1
- import React, { Children } from "react";
2
- import PropTypes from "prop-types";
1
+ import { Children, PropsWithChildren } from 'react';
2
+ import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
3
+ import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
3
4
 
4
- // import { TwoColumnPage as TwoColumn } from "@pega/cosmos-react-core";
5
- import WideNarrow from '@pega/react-sdk-components/lib/components/template/WideNarrow/WideNarrow';
5
+ interface WideNarrowPageProps extends PConnProps {
6
+ // If any, enter additional props that only exist on this component
7
+ title: string;
8
+ templateCol?: string;
9
+ icon?: string;
10
+ }
6
11
 
7
12
  /*
8
13
  * The wrapper handles knowing how to take in just children and mapping
9
14
  * to the Cosmos template.
10
15
  */
11
- export default function WideNarrowPage(props) {
12
- const { children, title, templateCol, icon } = props;
16
+ export default function WideNarrowPage(props: PropsWithChildren<WideNarrowPageProps>) {
17
+ // Get emitted components from map (so we can get any override that may exist)
18
+ const WideNarrow = getComponentFromMap('WideNarrow');
19
+
20
+ const { children, title, templateCol = '1fr 1fr', icon = '' } = props;
13
21
  const childArray = Children.toArray(children);
14
22
 
15
23
  return (
16
24
  <div>
17
- <WideNarrow
18
- a={childArray[0]}
19
- b={childArray[1]}
20
- title={title}
21
- cols={templateCol}
22
- icon={icon?.replace("pi pi-", "")}
23
- />
25
+ <WideNarrow a={childArray[0]} b={childArray[1]} title={title} cols={templateCol} icon={icon?.replace('pi pi-', '')} />
24
26
  </div>
25
27
  );
26
28
  }
27
-
28
- WideNarrowPage.propTypes = {
29
- children: PropTypes.arrayOf(PropTypes.node).isRequired,
30
- title: PropTypes.string.isRequired,
31
- templateCol: PropTypes.string,
32
- icon: PropTypes.string
33
- };
34
-
35
- WideNarrowPage.defaultProps = {
36
- templateCol: "1fr 1fr",
37
- icon: ""
38
- };
@@ -4,6 +4,5 @@
4
4
  "description": "Wide-narrow Page Template",
5
5
  "type": "Template",
6
6
  "subtype": "PAGE",
7
- "properties": [
8
- ]
7
+ "properties": []
9
8
  }
@@ -1 +1 @@
1
- export { default } from './WideNarrowPage';
1
+ export { default } from './WideNarrowPage';
@@ -4,13 +4,27 @@ import AppBar from '@material-ui/core/AppBar';
4
4
  import Box from '@material-ui/core/Box';
5
5
  import Toolbar from '@material-ui/core/Toolbar';
6
6
  import Container from '@material-ui/core/Container';
7
- import { IconButton, Menu, MenuItem, Typography } from '@material-ui/core';
8
- import { Button } from '@material-ui/core';
7
+ import { IconButton, Menu, MenuItem, Typography, Button } from '@material-ui/core';
9
8
  import Avatar from '@material-ui/core/Avatar';
10
9
  import MenuIcon from '@material-ui/icons/Menu';
11
- import { logout } from '@pega/react-sdk-components/lib/components/helpers/authManager';
10
+ import { logout } from '@pega/auth/lib/sdk-auth-manager';
11
+ import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
12
12
  import './WssNavBar.css';
13
13
 
14
+ interface WssNavBarProps extends PConnProps {
15
+ // If any, enter additional props that only exist on this component
16
+ appInfo: any;
17
+ navLinks: any[];
18
+ operator: { currentUserInitials: string };
19
+ navDisplayOptions: { alignment: string; position: string };
20
+ // eslint-disable-next-line react/no-unused-prop-types
21
+ portalName: string;
22
+ imageSrc: string;
23
+ // eslint-disable-next-line react/no-unused-prop-types
24
+ fullImageSrc: string;
25
+ appName: any;
26
+ }
27
+
14
28
  const useStyles = makeStyles(theme => ({
15
29
  root: {
16
30
  display: 'flex'
@@ -32,7 +46,7 @@ const useStyles = makeStyles(theme => ({
32
46
  }
33
47
  }));
34
48
 
35
- export default function WssNavBar(props) {
49
+ export default function WssNavBar(props: WssNavBarProps) {
36
50
  const { appInfo, navLinks, operator, navDisplayOptions } = props;
37
51
  const { alignment, position } = navDisplayOptions;
38
52
  const classes = useStyles();
@@ -56,10 +70,7 @@ export default function WssNavBar(props) {
56
70
  };
57
71
 
58
72
  const navLinksContent = (
59
- <Box
60
- sx={{ flexGrow: 1, display: { xs: 'none', md: 'flex' } }}
61
- style={{ justifyContent: alignment }}
62
- >
73
+ <Box id='nav-links' sx={{ flexGrow: 1, display: { xs: 'none', md: 'flex' } }} style={{ justifyContent: alignment }}>
63
74
  {navLinks.map(link => (
64
75
  <Button className='link-style' key={link.text} onClick={link.onClick}>
65
76
  {link.text}
@@ -73,7 +84,7 @@ export default function WssNavBar(props) {
73
84
  <AppBar position='static' color='primary'>
74
85
  <Container maxWidth='xl'>
75
86
  <Toolbar disableGutters style={{ justifyContent: 'space-between' }}>
76
- <Button style={{ textTransform: 'capitalize' }} onClick={appInfo.onClick}>
87
+ <Button id='appName' style={{ textTransform: 'capitalize' }} onClick={appInfo.onClick}>
77
88
  <img src={appInfo.imageSrc} className={classes.appListLogo} />
78
89
  <span className={classes.appName}>{appInfo.appName}</span>
79
90
  </Button>
@@ -1,22 +1,29 @@
1
- import React from "react";
2
- import PropTypes from "prop-types";
3
- import { Card, CardContent, CardHeader, Typography, CardActions, Button } from "@material-ui/core";
1
+ import { Card, CardContent, CardHeader, Typography, CardActions, Button } from '@material-ui/core';
4
2
  import { makeStyles } from '@material-ui/core/styles';
3
+ import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
5
4
 
6
- const useStyles = makeStyles((theme) => ({
5
+ interface AppAnnouncementProps extends PConnProps {
6
+ // If any, enter additional props that only exist on this component
7
+ header?: string;
8
+ description?: string;
9
+ datasource?: any;
10
+ whatsnewlink?: string;
11
+ }
12
+
13
+ const useStyles = makeStyles(theme => ({
7
14
  root: {
8
15
  marginTop: theme.spacing(1),
9
16
  marginBottom: theme.spacing(1),
10
- borderLeft: "6px solid",
17
+ borderLeft: '6px solid',
11
18
  borderLeftColor: theme.palette.primary.light
12
- },
19
+ }
13
20
  }));
14
21
 
15
- const AppAnnouncement = (props) => {
16
- const { header, description, datasource, whatsnewlink } = props;
22
+ export default function AppAnnouncement(props: AppAnnouncementProps) {
23
+ const { header = '', description = '', datasource = [], whatsnewlink = '' } = props;
17
24
  let details = [];
18
25
  if (datasource && datasource.source) {
19
- details = datasource.source.map((item) => {
26
+ details = datasource.source.map(item => {
20
27
  return item.name;
21
28
  });
22
29
  }
@@ -25,43 +32,29 @@ const AppAnnouncement = (props) => {
25
32
 
26
33
  const handleClick = () => {
27
34
  window.open(whatsnewlink);
28
- }
35
+ };
29
36
 
30
37
  return (
31
- <Card title="AppAnnouncement" className={classes.root}>
32
- <CardHeader title={<Typography variant="h6">{header}</Typography>} />
38
+ <Card title='AppAnnouncement' className={classes.root}>
39
+ <CardHeader title={<Typography variant='h6'>{header}</Typography>} />
33
40
  <CardContent>
34
- <Typography variant="body1" gutterBottom>{description}</Typography>
35
- {
36
- details.map((itm, idx) => {
37
- const theKey = `AppAnn-item-${idx}`;
38
- return (
39
- <Typography key={theKey} variant="body2">- {itm}</Typography>
40
- )
41
- })
42
- }
41
+ <Typography variant='body1' gutterBottom>
42
+ {description}
43
+ </Typography>
44
+ {details.map((itm, idx) => {
45
+ const theKey = `AppAnn-item-${idx}`;
46
+ return (
47
+ <Typography key={theKey} variant='body2'>
48
+ - {itm}
49
+ </Typography>
50
+ );
51
+ })}
43
52
  </CardContent>
44
53
  <CardActions>
45
- <Button color="primary" onClick={handleClick} size="small">See what&apos;s new</Button>
54
+ <Button color='primary' onClick={handleClick} size='small'>
55
+ See what&apos;s new
56
+ </Button>
46
57
  </CardActions>
47
58
  </Card>
48
59
  );
49
- };
50
-
51
- AppAnnouncement.propTypes = {
52
- header: PropTypes.string,
53
- description: PropTypes.string,
54
- datasource: PropTypes.instanceOf(Object),
55
- whatsnewlink: PropTypes.string,
56
- // image: PropTypes.string
57
- };
58
-
59
- AppAnnouncement.defaultProps = {
60
- header: "",
61
- description: "",
62
- // image: "",
63
- datasource: [],
64
- whatsnewlink: ""
65
- };
66
-
67
- export default AppAnnouncement;
60
+ }
@@ -4,6 +4,5 @@
4
4
  "description": "App announcement widget",
5
5
  "type": "Widget",
6
6
  "subtype": "PAGE",
7
- "properties": [
8
- ]
7
+ "properties": []
9
8
  }
@@ -4,7 +4,15 @@
4
4
  }
5
5
 
6
6
  .file-div {
7
- border: 1px dashed #262626;
7
+ border: 1px dashed var(--app-neutral-dark-color);
8
+ width: 100%;
9
+ padding: 0.5rem;
10
+ text-align: center;
11
+ position: relative;
12
+ }
13
+
14
+ .file-div-error {
15
+ border: 1px dashed var(--app-error-color);
8
16
  width: 100%;
9
17
  padding: 0.5rem;
10
18
  text-align: center;
@@ -17,9 +25,72 @@
17
25
  left: 47%;
18
26
  }
19
27
 
20
- file-label::after {
28
+ .file-label::after {
21
29
  display: inline;
22
- content: " *";
30
+ content: ' *';
23
31
  vertical-align: top;
24
- color: rgb(217, 28, 41);
32
+ color: var(--app-neutral-dark-color);
33
+ }
34
+
35
+ .file-error {
36
+ color: var(--app-error-color);
37
+ }
38
+
39
+ .psdk-utility-card {
40
+ display: flex;
41
+ flex-direction: row;
42
+ padding: 0.25rem 0rem 0.25rem 0.25rem;
43
+ margin-bottom: 0.5rem;
44
+ }
45
+
46
+ .psdk-utility-card-icon {
47
+ flex-grow: 1;
48
+ max-width: 2.813rem;
49
+ align-content: center;
50
+ display: flex;
51
+ }
52
+
53
+ .psdk-utility-card-svg-icon {
54
+ width: 2.5rem;
55
+ display: inline-block;
56
+ }
57
+
58
+ .psdk-utility-card-main {
59
+ flex-grow: 2;
60
+ margin-left: 5px;
61
+ }
62
+
63
+ .psdk-utility-card-main-primary-label {
64
+ font-weight: bold;
65
+ text-overflow: ellipsis;
66
+ overflow: hidden;
67
+ white-space: normal;
68
+ }
69
+
70
+ .psdk-utility-card-action-svg-icon {
71
+ width: 1.4rem;
72
+ display: inline-block;
73
+ }
74
+
75
+ .psdk-utility-card {
76
+ display: flex;
77
+ align-items: center;
78
+ border: 0.0625rem solid rgb(207, 207, 207);
79
+ border-radius: calc(0.25rem);
80
+ min-height: 3rem;
81
+ }
82
+
83
+ .psdk-utility-button {
84
+ background: none;
85
+ border: none;
86
+ cursor: pointer;
87
+ }
88
+
89
+ .psdk-utility-action {
90
+ flex-grow: 1;
91
+ text-align: right;
92
+ }
93
+
94
+ .file-disabled {
95
+ opacity: 0.4;
25
96
  }