@pega/react-sdk-overrides 0.23.26 → 0.23.28

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,19 +1,33 @@
1
- import PropTypes from "prop-types";
1
+ import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
2
2
 
3
- export default function SingleReferenceReadOnly(props) {
3
+ interface SingleReferenceReadOnlyProps extends PConnProps {
4
+ // If any, enter additional props that only exist on this component
5
+ config: any;
6
+ displayAs?: string;
7
+ ruleClass?: string;
8
+ label?: string;
9
+ displayMode?: string;
10
+ type: string;
11
+ referenceType?: string;
12
+ hideLabel?: boolean;
13
+ dataRelationshipContext?: string;
14
+ }
15
+
16
+ export default function SingleReferenceReadOnly(props: SingleReferenceReadOnlyProps) {
4
17
  const {
5
18
  getPConnect,
6
- displayAs,
7
- ruleClass,
8
- label,
9
- type,
10
- displayMode,
11
- referenceType,
12
- hideLabel,
13
- dataRelationshipContext,
19
+ displayAs = '',
20
+ ruleClass = '',
21
+ label = '',
22
+ type = '',
23
+ displayMode = '',
24
+ referenceType = '',
25
+ hideLabel = false,
26
+ dataRelationshipContext = null,
14
27
  config
15
28
  } = props;
16
- const editableComponents = ["AutoComplete", "SimpleTableSelect", "Dropdown"];
29
+
30
+ const editableComponents = ['AutoComplete', 'SimpleTableSelect', 'Dropdown'];
17
31
 
18
32
  if (editableComponents.includes(type)) {
19
33
  config.caseClass = ruleClass;
@@ -21,46 +35,29 @@ export default function SingleReferenceReadOnly(props) {
21
35
  config.caseID = config.value;
22
36
  config.contextPage = `@P .${dataRelationshipContext}`;
23
37
  config.resourceParams = {
24
- "workID": displayAs === "table" ? config.selectionKey : config.value
38
+ workID: displayAs === 'table' ? config.selectionKey : config.value
25
39
  };
26
40
  config.resourcePayload = {
27
- "caseClassName": ruleClass
41
+ caseClassName: ruleClass
28
42
  };
29
43
  }
30
44
 
31
- return getPConnect().createComponent({
32
- type: 'SemanticLink',
33
- config: {
34
- ...config,
35
- label,
36
- displayMode,
37
- referenceType,
38
- hideLabel,
39
- dataRelationshipContext
40
- }
41
- });
42
- }
43
-
44
- SingleReferenceReadOnly.defaultProps = {
45
- displayAs: "",
46
- ruleClass: "",
47
- label: "",
48
- displayMode: "",
49
- type: "",
50
- referenceType: "",
51
- hideLabel: false,
52
- dataRelationshipContext: null
53
- };
45
+ const component = getPConnect().createComponent(
46
+ {
47
+ type: 'SemanticLink',
48
+ config: {
49
+ ...config,
50
+ label,
51
+ displayMode,
52
+ referenceType,
53
+ hideLabel,
54
+ dataRelationshipContext
55
+ }
56
+ },
57
+ '',
58
+ '',
59
+ {}
60
+ ); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional
54
61
 
55
- SingleReferenceReadOnly.propTypes = {
56
- config: PropTypes.object,
57
- getPConnect: PropTypes.func.isRequired,
58
- displayAs: PropTypes.string,
59
- ruleClass: PropTypes.string,
60
- label: PropTypes.string,
61
- displayMode: PropTypes.string,
62
- type: PropTypes.string,
63
- referenceType: PropTypes.string,
64
- hideLabel: PropTypes.bool,
65
- dataRelationshipContext: PropTypes.string
66
- };
62
+ return <>{component}</>;
63
+ }
@@ -1,65 +1,46 @@
1
- import React, { Fragment, useEffect, useState } from "react";
2
- import PropTypes from "prop-types";
3
- import { Tab, Tabs } from "@material-ui/core";
1
+ import { Children, PropsWithChildren, useEffect, useState } from 'react';
2
+ import { Tab, Tabs } from '@material-ui/core';
4
3
  import { TabContext, TabPanel } from '@material-ui/lab';
4
+
5
5
  import { getTransientTabs, getVisibleTabs, tabClick } from './tabUtils';
6
+ import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
7
+
8
+ interface SubTabsProps extends PConnProps {
9
+ // If any, enter additional props that only exist on this component
10
+ }
6
11
 
7
- export default function SubTabs(props) {
8
- const { children } = props;
12
+ export default function SubTabs(props: PropsWithChildren<SubTabsProps>) {
13
+ const { children = [] } = props;
9
14
 
10
15
  const defaultTabIndex = 0;
11
- const deferLoadedTabs = children[0];
12
- const availableTabs = getVisibleTabs(deferLoadedTabs, "tabsSubs");
16
+ const deferLoadedTabs = Children.toArray(children)[0];
17
+ const availableTabs = getVisibleTabs(deferLoadedTabs, 'tabsSubs');
13
18
  const [currentTabId, setCurrentTabId] = useState(defaultTabIndex.toString());
14
19
 
15
- const [tabItems, setTabitem] = useState<Array<any>>([]);
20
+ const [tabItems, setTabitem] = useState<any[]>([]);
16
21
  useEffect(() => {
17
- const tempTabItems = getTransientTabs(
18
- availableTabs,
19
- currentTabId,
20
- tabItems
21
- );
22
+ const tempTabItems = getTransientTabs(availableTabs, currentTabId, tabItems);
22
23
  setTabitem(tempTabItems);
23
24
  }, [currentTabId]);
24
25
 
25
-
26
26
  const handleTabClick = (id, index: string) => {
27
27
  setCurrentTabId(index);
28
28
  tabClick(index, availableTabs, currentTabId, setCurrentTabId, tabItems);
29
29
  };
30
30
 
31
31
  return (
32
- <Fragment>
33
- <TabContext value={currentTabId.toString()}>
34
- <Tabs
35
- onChange={handleTabClick}
36
- value={currentTabId}
37
- variant="scrollable"
38
- >
39
- {tabItems.map((tab:any) =>
40
- <Tab
41
- key={tab.id}
42
- label={tab.name}
43
- value={tab.id}
44
- />
45
- )}
46
- </Tabs>
47
-
48
- {
49
- tabItems.map((tab:any) => (
50
- <TabPanel key={tab.id} value={tab.id} tabIndex={+tab.id}>
51
- <div>{tab.content ? tab.content : "No content exists"}</div>
52
- </TabPanel>
32
+ <TabContext value={currentTabId.toString()}>
33
+ <Tabs onChange={handleTabClick} value={currentTabId} variant='scrollable'>
34
+ {tabItems.map((tab: any) => (
35
+ <Tab key={tab.id} label={tab.name} value={tab.id} />
53
36
  ))}
54
- </TabContext>
55
- </Fragment>
37
+ </Tabs>
38
+
39
+ {tabItems.map((tab: any) => (
40
+ <TabPanel key={tab.id} value={tab.id} tabIndex={+tab.id}>
41
+ <div>{tab.content ? tab.content : 'No content exists'}</div>
42
+ </TabPanel>
43
+ ))}
44
+ </TabContext>
56
45
  );
57
46
  }
58
-
59
- SubTabs.defaultProps = {
60
- children: []
61
- }
62
-
63
- SubTabs.propTypes = {
64
- children: PropTypes.arrayOf(PropTypes.node)
65
- };
@@ -4,6 +4,5 @@
4
4
  "description": "Sub tabs view",
5
5
  "type": "Template",
6
6
  "subtype": "TAB",
7
- "properties": [
8
- ]
7
+ "properties": []
9
8
  }
@@ -1,6 +1,3 @@
1
-
2
- declare const PCore;
3
-
4
1
  export const getDeferFriendlyTabs = allTabs => {
5
2
  return allTabs.map(tab => {
6
3
  const theTabCompConfig = tab.getPConnect().getConfigProps();
@@ -40,9 +37,7 @@ export const getTransientTabs = (availableTabs, currentTabId, tabItems) => {
40
37
  PCore.getLocaleUtils().getLocaleValue('No label specified in config', 'Generic');
41
38
  const tabContent = () => {
42
39
  if (i.toString() === currentTabId) {
43
- return tabItems?.[i.toString()]?.content
44
- ? tabItems?.[i.toString()]?.content
45
- : child.getPConnect().getComponent();
40
+ return tabItems?.[i.toString()]?.content ? tabItems?.[i.toString()]?.content : child.getPConnect().getComponent();
46
41
  }
47
42
  return tabItems?.[i.toString()]?.content;
48
43
  };
@@ -67,7 +62,7 @@ export const tabClick = (id, availableTabs, currentTabId, setCurrentTabId, tabIt
67
62
  }
68
63
 
69
64
  const nextPConn = availableTabs[id].getPConnect();
70
- const { deferLoadId: activeId } = nextPConn?.getConfigProps();
65
+ const { deferLoadId: activeId } = nextPConn?.getConfigProps() || {};
71
66
  PCore.getDeferLoadManager().activate(activeId, nextPConn?.getContextName());
72
67
  PCore.getDeferLoadManager().refreshComponent(activeId, nextPConn?.getContextName());
73
68
  };
@@ -9,5 +9,4 @@
9
9
  float: left;
10
10
  padding: 0rem 0.3125rem;
11
11
  height: 100%;
12
-
13
12
  }
@@ -1,25 +1,31 @@
1
- import React from "react";
2
- import PropTypes from "prop-types";
3
- import { Grid, GridSize } from "@material-ui/core";
1
+ import { PropsWithChildren, ReactElement } from 'react';
2
+ import { Grid, GridSize } from '@material-ui/core';
4
3
  import { makeStyles } from '@material-ui/core/styles';
4
+ import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
5
+
6
+ interface TwoColumnProps extends PConnProps {
7
+ // If any, enter additional props that only exist on this component
8
+ templateCol?: string;
9
+ }
5
10
 
6
11
  const useStyles = makeStyles(() => ({
7
12
  colStyles: {
8
- display: "grid",
9
- gap: "1rem",
10
- alignContent: "baseline",
11
- },
13
+ display: 'grid',
14
+ gap: '1rem',
15
+ alignContent: 'baseline'
16
+ }
12
17
  }));
13
18
 
14
- export default function TwoColumn(props) {
19
+ export default function TwoColumn(props: PropsWithChildren<TwoColumnProps>) {
15
20
  const classes = useStyles();
16
21
 
17
- const {children, templateCol} = props;
22
+ const { children, templateCol = '1fr 1fr' } = props;
23
+ const childrenToRender = children as ReactElement[];
18
24
 
19
- if (children.length !== 2) {
20
- // eslint-disable-next-line no-console
21
- console.error( `TwoColumn template sees more than 2 columns: ${children.length}`);
22
- }
25
+ if (childrenToRender.length !== 2) {
26
+ // eslint-disable-next-line no-console
27
+ console.error(`TwoColumn template sees more than 2 columns: ${childrenToRender.length}`);
28
+ }
23
29
 
24
30
  // Calculate the size
25
31
  // Default to assume the 2 columns are evenly split. However, override if templateCol
@@ -27,32 +33,23 @@ export default function TwoColumn(props) {
27
33
  let aSize: GridSize = 6;
28
34
  let bSize: GridSize = 6;
29
35
 
30
- const colAArray = templateCol.replaceAll(/[a-z]+/g, "").split(/\s/).map(itm => Number(itm));
36
+ const colAArray = templateCol
37
+ .replaceAll(/[a-z]+/g, '')
38
+ .split(/\s/)
39
+ .map(itm => Number(itm));
31
40
  const totalCols = colAArray.reduce((v, itm) => itm + v, 0);
32
41
  const ratio = 12 / totalCols;
33
42
  aSize = (ratio * colAArray[0]) as GridSize;
34
43
  bSize = (ratio * colAArray[1]) as GridSize;
35
44
 
36
- return (
37
- <Grid container spacing={1}>
38
- <Grid item xs={12} md={aSize} className={classes.colStyles}>
39
- {children[0]}
40
- </Grid>
41
- <Grid item xs={12} md={bSize} className={classes.colStyles}>
42
- {children[1]}
43
- </Grid>
44
- </Grid>
45
- )
45
+ return (
46
+ <Grid container spacing={1}>
47
+ <Grid item xs={12} md={aSize} className={classes.colStyles}>
48
+ {childrenToRender[0]}
49
+ </Grid>
50
+ <Grid item xs={12} md={bSize} className={classes.colStyles}>
51
+ {childrenToRender[1]}
52
+ </Grid>
53
+ </Grid>
54
+ );
46
55
  }
47
-
48
- TwoColumn.propTypes = {
49
- children: PropTypes.arrayOf(PropTypes.node).isRequired,
50
- // title: PropTypes.string,
51
- templateCol: PropTypes.string,
52
- // icon: PropTypes.string
53
- };
54
-
55
- TwoColumn.defaultProps = {
56
- templateCol: "1fr 1fr",
57
- // icon: ""
58
- };
@@ -4,6 +4,5 @@
4
4
  "description": "TwoColumn Template",
5
5
  "type": "Template",
6
6
  "subtype": "FORM",
7
- "properties": [
8
- ]
7
+ "properties": []
9
8
  }
@@ -1,24 +1,17 @@
1
- import React from "react";
2
- import PropTypes from "prop-types";
1
+ import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
2
+ import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
3
3
 
4
- import TwoColumn from '@pega/react-sdk-components/lib/components/template/TwoColumn/TwoColumn';
4
+ interface TwoColumnPageProps extends PConnProps {
5
+ // If any, enter additional props that only exist on this component
6
+ }
5
7
 
6
8
  /*
7
9
  * The wrapper handles knowing how to take in just children
8
10
  * and mapping to the TwoColumn template.
9
11
  */
10
- export default function TwoColumnPage(props) {
12
+ export default function TwoColumnPage(props: TwoColumnPageProps) {
13
+ // Get emitted components from map (so we can get any override that may exist)
14
+ const TwoColumn = getComponentFromMap('TwoColumn');
11
15
 
12
- return (
13
- <TwoColumn
14
- {...props}
15
- />
16
- );
16
+ return <TwoColumn {...props} />;
17
17
  }
18
-
19
- TwoColumnPage.propTypes = {
20
- children: PropTypes.arrayOf(PropTypes.node).isRequired,
21
- };
22
-
23
- TwoColumnPage.defaultProps = {
24
- };
@@ -4,6 +4,5 @@
4
4
  "description": "TwoColumn Page Template",
5
5
  "type": "Template",
6
6
  "subtype": "PAGE",
7
- "properties": [
8
- ]
7
+ "properties": []
9
8
  }
@@ -1,25 +1,31 @@
1
- import React from "react";
2
- import PropTypes from "prop-types";
3
- import { Grid, GridSize } from "@material-ui/core";
1
+ import { PropsWithChildren, ReactElement } from 'react';
2
+ import { Grid, GridSize } from '@material-ui/core';
4
3
  import { makeStyles } from '@material-ui/core/styles';
4
+ import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
5
+
6
+ interface TwoColumnTabProps extends PConnProps {
7
+ // If any, enter additional props that only exist on this component
8
+ templateCol?: string;
9
+ }
5
10
 
6
11
  const useStyles = makeStyles(() => ({
7
12
  colStyles: {
8
- display: "grid",
9
- gap: "1rem",
10
- alignContent: "baseline",
11
- },
13
+ display: 'grid',
14
+ gap: '1rem',
15
+ alignContent: 'baseline'
16
+ }
12
17
  }));
13
18
 
14
- export default function TwoColumnTab(props) {
19
+ export default function TwoColumnTab(props: PropsWithChildren<TwoColumnTabProps>) {
15
20
  const classes = useStyles();
16
21
 
17
- const {children, templateCol} = props;
22
+ const { children, templateCol = '1fr 1fr' } = props;
23
+ const childrenToRender = children as ReactElement[];
18
24
 
19
- if (children.length !== 2) {
20
- // eslint-disable-next-line no-console
21
- console.error( `TwoColumn template sees more than 2 columns: ${children.length}`);
22
- }
25
+ if (childrenToRender.length !== 2) {
26
+ // eslint-disable-next-line no-console
27
+ console.error(`TwoColumn template sees more than 2 columns: ${childrenToRender.length}`);
28
+ }
23
29
 
24
30
  // Calculate the size
25
31
  // Default to assume the 2 columns are evenly split. However, override if templateCol
@@ -27,29 +33,23 @@ export default function TwoColumnTab(props) {
27
33
  let aSize: GridSize = 6;
28
34
  let bSize: GridSize = 6;
29
35
 
30
- const colAArray = templateCol.replaceAll(/[a-z]+/g, "").split(/\s/).map(itm => Number(itm));
36
+ const colAArray = templateCol
37
+ .replaceAll(/[a-z]+/g, '')
38
+ .split(/\s/)
39
+ .map(itm => Number(itm));
31
40
  const totalCols = colAArray.reduce((v, itm) => itm + v, 0);
32
41
  const ratio = 12 / totalCols;
33
42
  aSize = (ratio * colAArray[0]) as GridSize;
34
43
  bSize = (ratio * colAArray[1]) as GridSize;
35
44
 
36
- return (
37
- <Grid container spacing={1}>
38
- <Grid item xs={12} md={aSize} className={classes.colStyles}>
39
- {children[0]}
40
- </Grid>
41
- <Grid item xs={12} md={bSize} className={classes.colStyles}>
42
- {children[1]}
43
- </Grid>
44
- </Grid>
45
- )
45
+ return (
46
+ <Grid container spacing={1}>
47
+ <Grid item xs={12} md={aSize} className={classes.colStyles}>
48
+ {childrenToRender[0]}
49
+ </Grid>
50
+ <Grid item xs={12} md={bSize} className={classes.colStyles}>
51
+ {childrenToRender[1]}
52
+ </Grid>
53
+ </Grid>
54
+ );
46
55
  }
47
-
48
- TwoColumnTab.propTypes = {
49
- children: PropTypes.arrayOf(PropTypes.node).isRequired,
50
- templateCol: PropTypes.string,
51
- };
52
-
53
- TwoColumnTab.defaultProps = {
54
- templateCol: "1fr 1fr",
55
- };
@@ -4,6 +4,5 @@
4
4
  "description": "Two column",
5
5
  "type": "Template",
6
6
  "subtype": "TAB",
7
- "properties": [
8
- ]
7
+ "properties": []
9
8
  }
@@ -9,7 +9,6 @@
9
9
  float: left;
10
10
  padding: 0rem 0rem 0rem 0.3125rem;
11
11
  height: 100%;
12
-
13
12
  }
14
13
 
15
14
  .psdk-wide-narrow-column .psdk-wide-column-column {
@@ -17,5 +16,4 @@
17
16
  float: left;
18
17
  padding: 0rem 0.3125rem 0rem 0rem;
19
18
  height: 100%;
20
-
21
19
  }
@@ -1,35 +1,37 @@
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 './WideNarrow.css';
4
4
 
5
- export default function WideNarrow(props) {
5
+ interface WideNarrowProps extends PConnProps {
6
+ // If any, enter additional props that only exist on this component
7
+ a: any;
8
+ b: any;
9
+ // eslint-disable-next-line react/no-unused-prop-types
10
+ title?: string;
11
+ // eslint-disable-next-line react/no-unused-prop-types
12
+ cols?: string;
13
+ // eslint-disable-next-line react/no-unused-prop-types
14
+ icon?: string;
15
+ }
16
+
17
+ export default function WideNarrow(props: PropsWithChildren<WideNarrowProps>) {
6
18
  // const {a, b /*, cols, icon, title */ } = props;
7
- const { a, b, children } = props;
19
+ const { a, b, children = [] } = props;
8
20
 
9
21
  return (
10
- <React.Fragment>
11
- {children && children.length === 2 &&
12
- <div className="psdk-wide-narrow-column">
13
- <div className="psdk-wide-column-column">
14
- {children[0]}
15
- </div>
16
- <div className="psdk-narrow-column-column">
17
- {children[1]}
22
+ <>
23
+ {children && (children as ReactElement[]).length === 2 && (
24
+ <div className='psdk-wide-narrow-column'>
25
+ <div className='psdk-wide-column-column'>{children[0]}</div>
26
+ <div className='psdk-narrow-column-column'>{children[1]}</div>
18
27
  </div>
19
- </div>
20
- }
21
- {a && b &&
22
- <div className="psdk-wide-narrow-column">
23
- <div className="psdk-wide-column-column">
24
- {a}
28
+ )}
29
+ {a && b && (
30
+ <div className='psdk-wide-narrow-column'>
31
+ <div className='psdk-wide-column-column'>{a}</div>
32
+ <div className='psdk-narrow-column-column'>{b}</div>
25
33
  </div>
26
- <div className="psdk-narrow-column-column">
27
- {b}
28
- </div>
29
- </div>
30
- }
31
- </React.Fragment>
32
-
33
- )
34
-
34
+ )}
35
+ </>
36
+ );
35
37
  }