@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,16 +1,17 @@
1
1
  import { getLocale } from './formatters/common';
2
2
 
3
-
4
3
  export const dateFormatInfoDefault = {
5
- dateFormatString: "MM/DD/YYYY",
6
- dateFormatStringLong: "MMM DD, YYYY",
7
- dateFormatStringLC: "mm/dd/yyyy",
8
- dateFormatMask: "__/__/____"
9
- }
4
+ dateFormatString: 'MM/DD/YYYY',
5
+ dateFormatStringLong: 'MMM DD, YYYY',
6
+ dateFormatStringLC: 'mm/dd/yyyy',
7
+ dateFormatMask: '__/__/____'
8
+ };
10
9
 
11
- export const getDateFormatInfo = () => {
10
+ export const getDateFormatInfo = (): typeof dateFormatInfoDefault => {
11
+ const localizedVal = PCore.getLocaleUtils().getLocaleValue;
12
+ const localeCategory = 'CosmosFields';
12
13
  const theDateFormatInfo = dateFormatInfoDefault;
13
- const theLocale = getLocale(); // PCore.getEnvironmentInfo().getUseLocale() || "US-en";
14
+ const theLocale = getLocale();
14
15
 
15
16
  // NOTE: this date was chosen since it has a day larger than 12. If you change it,
16
17
  // you'll need to change the indexOf values below!
@@ -25,29 +26,38 @@ export const getDateFormatInfo = () => {
25
26
  const locDD = theTestDateLocaleString.indexOf('30');
26
27
  const locYYYY = theTestDateLocaleString.indexOf('2023');
27
28
 
29
+ // If localized placeholder exists for one of day/month/year then show it otherwise fall back to ddmmyyyy
30
+ const localizedPlaceholderExists =
31
+ localizedVal('month_placeholder', localeCategory) !== 'month_placeholder' ||
32
+ localizedVal('day_placeholder', localeCategory) !== 'day_placeholder' ||
33
+ localizedVal('year_placeholder', localeCategory) !== 'year_placeholder';
34
+
28
35
  const arrPieces = [
29
36
  {
30
37
  loc: locMM,
31
38
  format: 'MM',
32
39
  longFormat: 'MMM',
33
- placeholder: 'mm',
34
- mask: '__'
40
+ placeholder: localizedPlaceholderExists ? localizedVal('month_placeholder', localeCategory) : 'mm',
41
+ mask: '__',
42
+ separator: theTestDateLocaleString[locMM + 2]
35
43
  },
36
44
  {
37
45
  loc: locDD,
38
46
  format: 'DD',
39
47
  longFormat: 'DD',
40
- placeholder: 'dd',
41
- mask: '__'
48
+ placeholder: localizedPlaceholderExists ? localizedVal('day_placeholder', localeCategory) : 'dd',
49
+ mask: '__',
50
+ separator: theTestDateLocaleString[locDD + 2]
42
51
  },
43
52
  {
44
53
  loc: locYYYY,
45
54
  format: 'YYYY',
46
55
  longFormat: 'YYYY',
47
- placeholder: 'yyyy',
48
- mask: '____'
56
+ placeholder: localizedPlaceholderExists ? localizedVal('year_placeholder', localeCategory) : 'yyyy',
57
+ mask: '____',
58
+ separator: theTestDateLocaleString[locYYYY + 4]
49
59
  }
50
- ];
60
+ ];
51
61
 
52
62
  // Sort the associative array by order of appearance (loc) of each piece
53
63
  arrPieces.sort((a, b) => {
@@ -57,10 +67,10 @@ export const getDateFormatInfo = () => {
57
67
  });
58
68
 
59
69
  // Construct the structure to return...
60
- theDateFormatInfo.dateFormatString = `${arrPieces[0].format}/${arrPieces[1].format}/${arrPieces[2].format}`;
70
+ theDateFormatInfo.dateFormatString = `${arrPieces[0].format}${arrPieces[0].separator}${arrPieces[1].format}${arrPieces[1].separator}${arrPieces[2].format}`;
61
71
  theDateFormatInfo.dateFormatStringLong = `${arrPieces[0].longFormat} ${arrPieces[1].longFormat}, ${arrPieces[2].longFormat}`;
62
- theDateFormatInfo.dateFormatStringLC = `${arrPieces[0].placeholder}/${arrPieces[1].placeholder}/${arrPieces[2].placeholder}`;
63
- theDateFormatInfo.dateFormatMask = `${arrPieces[0].mask}/${arrPieces[1].mask}/${arrPieces[2].mask}`;
72
+ theDateFormatInfo.dateFormatStringLC = `${arrPieces[0].placeholder}${arrPieces[0].separator}${arrPieces[1].placeholder}${arrPieces[1].separator}${arrPieces[2].placeholder}`;
73
+ theDateFormatInfo.dateFormatMask = `${arrPieces[0].mask}${arrPieces[0].separator}${arrPieces[1].mask}${arrPieces[1].separator}${arrPieces[2].mask}`;
64
74
 
65
75
  return theDateFormatInfo;
66
- }
76
+ };
@@ -1,14 +1,14 @@
1
1
  // From DX Components src/utils/event-utils.js
2
2
 
3
- const handleEvent = (actions, eventType, propName, value) => {
3
+ const handleEvent = (actions: any, eventType: string, propName: string, value: string) => {
4
4
  switch (eventType) {
5
- case "change":
5
+ case 'change':
6
6
  actions.updateFieldValue(propName, value);
7
7
  break;
8
- case "blur":
8
+ case 'blur':
9
9
  actions.triggerFieldChange(propName, value);
10
10
  break;
11
- case "changeNblur":
11
+ case 'changeNblur':
12
12
  actions.updateFieldValue(propName, value);
13
13
  actions.triggerFieldChange(propName, value);
14
14
  break;
@@ -1,4 +1,4 @@
1
- import { createElement } from 'react';
1
+ import { createElement, ReactElement } from 'react';
2
2
 
3
3
  import createPConnectComponent from '@pega/react-sdk-components/lib/bridge/react_pconnect';
4
4
 
@@ -28,17 +28,16 @@ export const getReferenceList = pConn => {
28
28
  * @param {*} viewConfigPath - boolean value to check for children in config
29
29
  * @returns {*} - return the react element of the view
30
30
  */
31
- export const buildView = (pConn, index, viewConfigPath) => {
31
+ export function buildView(pConn, index, viewConfigPath): ReactElement {
32
32
  const context = pConn.getContextName();
33
33
  const referenceList = getReferenceList(pConn);
34
34
 
35
35
  const isDatapage = referenceList.startsWith('D_');
36
- const pageReference = isDatapage
37
- ? `${referenceList}[${index}]`
38
- : `${pConn.getPageReference()}${referenceList}[${index}]`;
39
- const meta = viewConfigPath
40
- ? pConn.getRawMetadata().children[0].children[0]
41
- : pConn.getRawMetadata().children[0];
36
+ const pageReference = isDatapage ? `${referenceList}[${index}]` : `${pConn.getPageReference()}${referenceList}[${index}]`;
37
+ const meta = viewConfigPath ? pConn.getRawMetadata().children[0].children[0] : pConn.getRawMetadata().children[0];
38
+
39
+ delete meta?.config?.ruleClass;
40
+
42
41
  const config = {
43
42
  meta,
44
43
  options: {
@@ -48,10 +47,10 @@ export const buildView = (pConn, index, viewConfigPath) => {
48
47
  hasForm: true
49
48
  }
50
49
  };
51
- // eslint-disable-next-line no-undef
50
+
52
51
  const view = PCore.createPConnect(config);
53
52
  if (pConn.getConfigProps()?.displayMode === 'LABELS_LEFT') {
54
53
  view.getPConnect()?.setInheritedProp('displayMode', 'LABELS_LEFT');
55
54
  }
56
55
  return createElement(createPConnectComponent(), view);
57
- };
56
+ }
@@ -0,0 +1,21 @@
1
+ function Boolean(value, { allowEmpty = true, tick = '', cross = '' } = {}) {
2
+ if ((!allowEmpty && !value) || value === false || value?.toString()?.toLowerCase() === 'false' || value === 0 || value === '0') {
3
+ return cross || '';
4
+ }
5
+ if (value === true || value?.toString()?.toLowerCase() === 'true' || value === 1 || value === '1') {
6
+ return tick || '';
7
+ }
8
+ if (allowEmpty && (value === 'null' || value === '' || value === null || typeof value === 'undefined')) {
9
+ return '- -';
10
+ }
11
+ return value;
12
+ }
13
+
14
+ export default {
15
+ TrueFalse: (value, options) =>
16
+ Boolean(value, {
17
+ ...options,
18
+ tick: options.trueLabel || 'True',
19
+ cross: options.falseLabel || 'False'
20
+ })
21
+ };
@@ -1,8 +1,9 @@
1
- import { getLocale } from "./common";
2
- import CurrencyMap from "./CurrencyMap";
1
+ import { getLocale } from './common';
2
+ import CurrencyMap from './CurrencyMap';
3
3
 
4
- function NumberFormatter(value, { locale, decPlaces = 2 } = {}) {
5
- const currentLocale = getLocale(locale);
4
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
+ function NumberFormatter(value, { locale = 'en-US', decPlaces = 2, style = '', currency = 'USD' } = {}): string {
6
+ const currentLocale: string | undefined = getLocale(locale);
6
7
  if (value !== null && value !== undefined) {
7
8
  return Number(value).toLocaleString(currentLocale, {
8
9
  minimumFractionDigits: decPlaces,
@@ -13,11 +14,11 @@ function NumberFormatter(value, { locale, decPlaces = 2 } = {}) {
13
14
  }
14
15
 
15
16
  function CurrencyFormatter(
16
- value,
17
- { symbol = true, position, locale, decPlaces = 2, style = "currency", currency = "USD" } = {}
18
- ) {
19
- const currentLocale = getLocale(locale);
20
- let formattedValue = value;
17
+ value: string,
18
+ { symbol = true, position = 'before', locale = 'en-US', decPlaces = 2, style = 'currency', currency = 'USD' } = {}
19
+ ): string {
20
+ const currentLocale: string | undefined = getLocale(locale);
21
+ let formattedValue: string = value;
21
22
  if (value !== null && value !== undefined && value !== '') {
22
23
  formattedValue = NumberFormatter(value, {
23
24
  locale: currentLocale,
@@ -26,14 +27,14 @@ function CurrencyFormatter(
26
27
  currency
27
28
  });
28
29
 
29
- let countryCode = currentLocale.split("-")[1].toUpperCase();
30
+ let countryCode: string | undefined = currentLocale?.split('-')[1].toUpperCase();
30
31
 
31
32
  // If countryCode is still undefined, setting it as US
32
- if( !countryCode ){
33
+ if (!countryCode) {
33
34
  countryCode = 'US';
34
35
  }
35
36
 
36
- let code;
37
+ let code: string;
37
38
  if (symbol) {
38
39
  code = CurrencyMap[countryCode]?.symbolFormat;
39
40
  } else {
@@ -42,22 +43,19 @@ function CurrencyFormatter(
42
43
 
43
44
  // if position is provided, change placeholder accordingly.
44
45
  if (position && code) {
45
- if (position.toLowerCase() === "before" && code.indexOf("{#}") === 0) {
46
+ if (position.toLowerCase() === 'before' && code.startsWith('{#}')) {
46
47
  code = code.slice(3) + code.slice(0, 3);
47
- } else if (
48
- position.toLowerCase() === "after" &&
49
- code.indexOf("{#}") === code.length - 3
50
- ) {
48
+ } else if (position.toLowerCase() === 'after' && code.indexOf('{#}') === code.length - 3) {
51
49
  code = code.slice(-3) + code.slice(0, -3);
52
50
  }
53
51
  }
54
- return code?.replace("{#}", formattedValue) || formattedValue;
52
+ return code?.replace('{#}', formattedValue) || formattedValue;
55
53
  }
56
54
  return formattedValue;
57
55
  }
58
56
 
59
- function SymbolFormatter(value, { symbol, suffix = true, locale } = {}) {
60
- let formattedValue = value;
57
+ function SymbolFormatter(value, { symbol = '$', suffix = true, locale = 'en-US' } = {}): string {
58
+ let formattedValue: string = value;
61
59
  if (value !== null && value !== undefined) {
62
60
  formattedValue = NumberFormatter(value, { locale });
63
61
  return suffix ? `${formattedValue}${symbol}` : `${symbol}${formattedValue}`;
@@ -67,16 +65,13 @@ function SymbolFormatter(value, { symbol, suffix = true, locale } = {}) {
67
65
 
68
66
  export default {
69
67
  Currency: (value, options) => CurrencyFormatter(value, options),
70
- "Currency-Code": (value, options) =>
71
- CurrencyFormatter(value, { ...options, symbol: false }),
68
+ 'Currency-Code': (value, options) => CurrencyFormatter(value, { ...options, symbol: false }),
72
69
  Decimal: (value, options) => NumberFormatter(value, options),
73
- "Decimal-Auto": (value, options) =>
70
+ 'Decimal-Auto': (value, options) =>
74
71
  NumberFormatter(value, {
75
72
  ...options,
76
73
  decPlaces: Number.isInteger(value) ? 0 : 2
77
74
  }),
78
- Integer: (value, options) =>
79
- NumberFormatter(value, { ...options, decPlaces: 0 }),
80
- Percentage: (value, options) =>
81
- SymbolFormatter(value, { ...options, symbol: "%" })
75
+ Integer: (value, options) => NumberFormatter(value, { ...options, decPlaces: 0 }),
76
+ Percentage: (value, options) => SymbolFormatter(value, { ...options, symbol: '%' })
82
77
  };