@pega/dx-component-builder-sdk 23.1.15 → 24.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/README.md +3 -3
  2. package/package.json +1 -1
  3. package/src/cli.js +1 -1
  4. package/src/constants.js +4 -0
  5. package/src/tasks/build-all/helper.js +6 -0
  6. package/src/tasks/build-comp/helper.js +6 -0
  7. package/src/tasks/bundle/builderAngular/webpack.config.js +14 -1
  8. package/src/tasks/bundle/builderAssociated/webpack.config.js +13 -0
  9. package/src/tasks/bundle/builderReact/webpack.config.js +14 -1
  10. package/src/tasks/create/templates/Constellation/field/Boolean/index.tsx.mustache +3 -2
  11. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/PConnProps.d.ts.mustache +46 -0
  12. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/config.json.mustache +64 -0
  13. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/demo.stories.tsx.mustache +99 -0
  14. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/index.tsx.mustache +204 -0
  15. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/mock.ts.mustache +5 -0
  16. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/styles.ts.mustache +8 -0
  17. package/src/tasks/create/templates/Constellation/field/Picklist/index.tsx.mustache +0 -1
  18. package/src/tasks/create/templates/Constellation/field/Picklist-Autocomplete/date.ts.mustache +15 -37
  19. package/src/tasks/create/templates/Constellation/field/Picklist-Autocomplete/index.tsx.mustache +11 -0
  20. package/src/tasks/create/templates/Constellation/field/Picklist-Autocomplete/utils.ts.mustache +3 -0
  21. package/src/tasks/create/templates/Constellation/field/Text/index.tsx.mustache +94 -4
  22. package/src/tasks/create/templates/Constellation/template/DETAILS/Avatar.tsx.mustache +78 -0
  23. package/src/tasks/create/templates/Constellation/template/DETAILS/DetailsRender.tsx.mustache +55 -0
  24. package/src/tasks/create/templates/Constellation/template/DETAILS/HighlightRender.tsx.mustache +49 -0
  25. package/src/tasks/create/templates/Constellation/template/DETAILS/Operator.tsx.mustache +218 -0
  26. package/src/tasks/create/templates/Constellation/template/DETAILS/demo.stories.tsx.mustache +77 -23
  27. package/src/tasks/create/templates/Constellation/template/DETAILS/index.tsx.mustache +51 -40
  28. package/src/tasks/create/templates/Constellation/template/DETAILS/mock.ts.mustache +78 -20
  29. package/src/tasks/create/templates/Constellation/template/DETAILS/styles.ts.mustache +16 -0
  30. package/src/tasks/create/templates/Constellation/template/DETAILS-region/Avatar.tsx.mustache +78 -0
  31. package/src/tasks/create/templates/Constellation/template/DETAILS-region/DetailsRender.tsx.mustache +55 -0
  32. package/src/tasks/create/templates/Constellation/template/DETAILS-region/HighlightRender.tsx.mustache +49 -0
  33. package/src/tasks/create/templates/Constellation/template/DETAILS-region/Operator.tsx.mustache +218 -0
  34. package/src/tasks/create/templates/Constellation/template/DETAILS-region/demo.stories.tsx.mustache +95 -26
  35. package/src/tasks/create/templates/Constellation/template/DETAILS-region/index.tsx.mustache +42 -39
  36. package/src/tasks/create/templates/Constellation/template/DETAILS-region/mock.ts.mustache +68 -10
  37. package/src/tasks/create/templates/Constellation/template/DETAILS-region/styles.ts.mustache +15 -0
  38. package/src/tasks/create/templates/Constellation/template/FORM/DetailsRender.tsx +59 -0
  39. package/src/tasks/create/templates/Constellation/template/FORM/demo.stories.tsx.mustache +73 -8
  40. package/src/tasks/create/templates/Constellation/template/FORM/index.tsx.mustache +33 -5
  41. package/src/tasks/create/templates/Constellation/template/FORM-region/DetailsRender.tsx +59 -0
  42. package/src/tasks/create/templates/Constellation/template/FORM-region/demo.stories.tsx.mustache +95 -15
  43. package/src/tasks/create/templates/Constellation/template/FORM-region/index.tsx.mustache +29 -7
  44. package/src/tasks/create/templates/Constellation/template/PAGE/GetNextWork.tsx.mustache +2 -1
  45. package/src/tasks/create/templates/Constellation/template/PAGE/localizations.json.mustache +4 -2
  46. package/src/tasks/create/templates/Constellation/widget/PAGE/demo.stories.tsx.mustache +87 -6
  47. package/src/tasks/create/templates/Constellation/widget/PAGE/index.tsx.mustache +67 -5
  48. package/src/tasks/create/templates/SDK-Angular/field/Boolean/boolean.component.html.mustache +19 -18
  49. package/src/tasks/create/templates/SDK-Angular/field/Boolean/boolean.component.ts.mustache +127 -44
  50. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/config.json.mustache +64 -0
  51. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/demo.stories.tsx.mustache +63 -0
  52. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/icon-button-url.component.html.mustache +40 -0
  53. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/icon-button-url.component.scss.mustache +24 -0
  54. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/icon-button-url.component.spec.ts.mustache +26 -0
  55. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/icon-button-url.component.ts.mustache +195 -0
  56. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/mock.ts.mustache +37 -0
  57. package/src/tasks/create/templates/SDK-Angular/field/Text-URL/text-url.component.html.mustache +1 -0
  58. package/src/tasks/create/templates/SDK-Angular/field/Text-URL/text-url.component.ts.mustache +2 -0
  59. package/src/tasks/create/templates/SDK-Angular/field/TimeOfDay/time-of-day.component.html.mustache +1 -0
  60. package/src/tasks/create/templates/SDK-Angular/field/TimeOfDay/time-of-day.component.ts.mustache +2 -0
  61. package/src/tasks/create/templates/SDK-Angular/template/FORM-region/form.component.scss.mustache +1 -1
  62. package/src/tasks/create/templates/SDK-Angular/widget/CASE/case.component.ts.mustache +2 -2
  63. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/demo.stories.tsx.mustache +22 -5
  64. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/mock.ts.mustache +25 -0
  65. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/page.component.html.mustache +11 -1
  66. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/page.component.ts.mustache +93 -1
  67. package/src/tasks/create/templates/SDK-React/field/Boolean/demo.stories.tsx.mustache +1 -1
  68. package/src/tasks/create/templates/SDK-React/field/Boolean/mock.ts.mustache +8 -8
  69. package/src/tasks/create/templates/SDK-React/field/Date/index.tsx.mustache +2 -2
  70. package/src/tasks/create/templates/SDK-React/field/Date/mock.ts.mustache +7 -7
  71. package/src/tasks/create/templates/SDK-React/field/DateTime/demo.stories.tsx.mustache +1 -1
  72. package/src/tasks/create/templates/SDK-React/field/DateTime/index.tsx.mustache +2 -3
  73. package/src/tasks/create/templates/SDK-React/field/DateTime/mock.ts.mustache +6 -6
  74. package/src/tasks/create/templates/SDK-React/field/Decimal/index.tsx.mustache +51 -35
  75. package/src/tasks/create/templates/SDK-React/field/Decimal/mock.ts.mustache +1 -1
  76. package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/config.json.mustache +1 -1
  77. package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/demo.stories.tsx.mustache +1 -1
  78. package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/index.tsx.mustache +47 -37
  79. package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/mock.ts.mustache +1 -1
  80. package/src/tasks/create/templates/SDK-React/field/Decimal-Percentage/config.json.mustache +1 -1
  81. package/src/tasks/create/templates/SDK-React/field/Decimal-Percentage/index.tsx.mustache +36 -21
  82. package/src/tasks/create/templates/SDK-React/field/Decimal-Percentage/mock.ts.mustache +1 -1
  83. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/config.json.mustache +64 -0
  84. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/demo.stories.tsx.mustache +91 -0
  85. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/index.tsx.mustache +160 -0
  86. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/mock.ts.mustache +4 -0
  87. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/styles.js.mustache +7 -0
  88. package/src/tasks/create/templates/SDK-React/field/Integer/config.json.mustache +1 -1
  89. package/src/tasks/create/templates/SDK-React/field/Integer/index.tsx.mustache +19 -20
  90. package/src/tasks/create/templates/SDK-React/field/Integer/mock.ts.mustache +1 -1
  91. package/src/tasks/create/templates/SDK-React/field/Picklist/index.tsx.mustache +26 -26
  92. package/src/tasks/create/templates/SDK-React/field/Picklist-RadioButtons/mock.ts.mustache +0 -1
  93. package/src/tasks/create/templates/SDK-React/field/Text/config.json.mustache +1 -1
  94. package/src/tasks/create/templates/SDK-React/field/Text/index.tsx.mustache +0 -1
  95. package/src/tasks/create/templates/SDK-React/field/Text/mock.ts.mustache +1 -1
  96. package/src/tasks/create/templates/SDK-React/field/Text-Email/config.json.mustache +1 -1
  97. package/src/tasks/create/templates/SDK-React/field/Text-Email/mock.ts.mustache +1 -1
  98. package/src/tasks/create/templates/SDK-React/field/Text-Input/config.json.mustache +1 -1
  99. package/src/tasks/create/templates/SDK-React/field/Text-Input/index.tsx.mustache +0 -1
  100. package/src/tasks/create/templates/SDK-React/field/Text-Input/mock.ts.mustache +1 -1
  101. package/src/tasks/create/templates/SDK-React/field/Text-Paragraph/index.tsx.mustache +1 -3
  102. package/src/tasks/create/templates/SDK-React/field/Text-Paragraph/mock.ts.mustache +1 -1
  103. package/src/tasks/create/templates/SDK-React/field/Text-Phone/index.tsx.mustache +17 -9
  104. package/src/tasks/create/templates/SDK-React/field/Text-URL/index.tsx.mustache +1 -2
  105. package/src/tasks/create/templates/SDK-React/field/Text-URL/mock.ts.mustache +1 -1
  106. package/src/tasks/create/templates/SDK-React/field/TimeOfDay/demo.stories.tsx.mustache +4 -4
  107. package/src/tasks/create/templates/SDK-React/field/TimeOfDay/index.tsx.mustache +0 -2
  108. package/src/tasks/create/templates/SDK-React/field/TimeOfDay/mock.ts.mustache +6 -6
  109. package/src/tasks/create/templates/SDK-React/template/DETAILS/demo.stories.tsx.mustache +1 -7
  110. package/src/tasks/create/templates/SDK-React/template/DETAILS/index.tsx.mustache +4 -9
  111. package/src/tasks/create/templates/SDK-React/template/DETAILS/mock.ts.mustache +197 -164
  112. package/src/tasks/create/templates/SDK-React/template/DETAILS-region/demo.stories.tsx.mustache +1 -6
  113. package/src/tasks/create/templates/SDK-React/template/DETAILS-region/index.tsx.mustache +4 -9
  114. package/src/tasks/create/templates/SDK-React/template/DETAILS-region/mock.ts.mustache +207 -163
  115. package/src/tasks/create/templates/SDK-React/template/FORM/config.json.mustache +1 -1
  116. package/src/tasks/create/templates/SDK-React/template/FORM/demo.stories.tsx.mustache +13 -1
  117. package/src/tasks/create/templates/SDK-React/template/FORM/index.tsx.mustache +14 -16
  118. package/src/tasks/create/templates/SDK-React/template/FORM/utils.ts.mustache +1 -1
  119. package/src/tasks/create/templates/SDK-React/template/FORM-region/demo.stories.tsx.mustache +0 -2
  120. package/src/tasks/create/templates/SDK-React/template/FORM-region/mock.ts.mustache +121 -122
  121. package/src/tasks/create/templates/SDK-React/template/PAGE/OneColumn.tsx.mustache +12 -13
  122. package/src/tasks/create/templates/SDK-React/template/PAGE/demo.stories.tsx.mustache +1 -1
  123. package/src/tasks/create/templates/SDK-React/template/PAGE/index.tsx.mustache +3 -5
  124. package/src/tasks/create/templates/SDK-React/template/PAGE/mock.ts.mustache +8 -9
  125. package/src/tasks/create/templates/SDK-React/widget/CASE/config.json.mustache +2 -2
  126. package/src/tasks/create/templates/SDK-React/widget/CASE/demo.stories.tsx.mustache +19 -20
  127. package/src/tasks/create/templates/SDK-React/widget/CASE/index.tsx.mustache +3 -3
  128. package/src/tasks/create/templates/SDK-React/widget/PAGE/config.json.mustache +43 -43
  129. package/src/tasks/create/templates/SDK-React/widget/PAGE/demo.stories.tsx.mustache +45 -2
  130. package/src/tasks/create/templates/SDK-React/widget/PAGE/index.tsx.mustache +168 -3
  131. package/src/tasks/create/templates/SDK-React/widget/PAGE/mock.ts.mustache +26 -1
  132. package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/demo.stories.tsx.mustache +20 -21
  133. package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/index.tsx.mustache +0 -1
  134. package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/mock.ts.mustache +0 -1
  135. package/src/tasks/create-all/index.js +3 -0
  136. package/src/tasks/publish/helper.js +4 -0
  137. package/src/tasks/publish-all/helper.js +6 -2
  138. package/src/tasks/validator/index.js +7 -1
  139. package/tests/assets/sdk-r/components/create/custom-constellation/field/Pega_DXIL_MyTestText/index.tsx +94 -4
  140. package/tests/assets/sdk-r/components/create/custom-sdk/field/Pega_DXIL_MyTestText/config.json +1 -1
  141. package/tests/assets/sdk-r/components/create/custom-sdk/field/Pega_DXIL_MyTestText/index.tsx +0 -1
  142. package/tests/assets/sdk-r/components/create/custom-sdk/field/Pega_DXIL_MyTestText/mock.ts +1 -1
  143. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +2 -2
  144. package/tests/assets/sdk-r/components/create/override-sdk/field/CancelAlert/CancelAlert.tsx +2 -0
  145. package/tests/assets/sdk-r/components/create/override-sdk/field/Currency/Currency.tsx +36 -26
  146. package/tests/assets/sdk-r/components/create/override-sdk/field/Decimal/Decimal.tsx +33 -19
  147. package/tests/assets/sdk-r/components/create/override-sdk/field/Multiselect/Multiselect.tsx +1 -1
  148. package/tests/assets/sdk-r/components/create/override-sdk/field/Percentage/Percentage.tsx +33 -18
  149. package/tests/assets/sdk-r/components/create/override-sdk/field/Phone/Phone.tsx +16 -7
  150. package/tests/assets/sdk-r/components/create/override-sdk/field/ScalarList/ScalarList.tsx +2 -0
  151. package/tests/assets/sdk-r/components/create/override-sdk/field/UserReference/UserReference.tsx +11 -1
  152. package/tests/assets/sdk-r/components/create/override-sdk/infra/Assignment/Assignment.tsx +28 -1
  153. package/tests/assets/sdk-r/components/create/override-sdk/infra/DashboardFilter/DashboardFilter.tsx +1 -1
  154. package/tests/assets/sdk-r/components/create/override-sdk/infra/DeferLoad/DeferLoad.tsx +5 -1
  155. package/tests/assets/sdk-r/components/create/override-sdk/infra/MultiStep/MultiStep.tsx +3 -1
  156. package/tests/assets/sdk-r/components/create/override-sdk/infra/NavBar/NavBar.tsx +2 -2
  157. package/tests/assets/sdk-r/components/create/override-sdk/template/CaseView/CaseView.tsx +2 -1
  158. package/tests/assets/sdk-r/components/create/override-sdk/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +1 -1
  159. package/tests/assets/sdk-r/components/create/override-sdk/template/DataReference/DataReference.tsx +1 -1
  160. package/tests/assets/sdk-r/components/create/override-sdk/template/DefaultForm/utils/index.ts +2 -7
  161. package/tests/assets/sdk-r/components/create/override-sdk/template/Details/Details.tsx +1 -1
  162. package/tests/assets/sdk-r/components/create/override-sdk/template/DetailsThreeColumn/DetailsThreeColumn.tsx +1 -1
  163. package/tests/assets/sdk-r/components/create/override-sdk/template/DetailsTwoColumn/DetailsTwoColumn.tsx +1 -1
  164. package/tests/assets/sdk-r/components/create/override-sdk/template/FieldGroupTemplate/FieldGroupTemplate.tsx +2 -0
  165. package/tests/assets/sdk-r/components/create/override-sdk/template/ListView/ListView.tsx +20 -31
  166. package/tests/assets/sdk-r/components/create/override-sdk/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +1 -1
  167. package/tests/assets/sdk-r/components/create/override-sdk/template/NarrowWideDetails/NarrowWideDetails.tsx +1 -1
  168. package/tests/assets/sdk-r/components/create/override-sdk/template/PromotedFilters/PromotedFilters.tsx +1 -0
  169. package/tests/assets/sdk-r/components/create/override-sdk/template/SimpleTableManual/SimpleTableManual.tsx +4 -0
  170. package/tests/assets/sdk-r/components/create/override-sdk/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +1 -1
  171. package/tests/assets/sdk-r/components/create/override-sdk/template/WideNarrowDetails/WideNarrowDetails.tsx +1 -1
  172. package/tests/assets/sdk-r/components/create/override-sdk/widget/Attachment/Attachment.tsx +3 -2
  173. package/tests/assets/sdk-r/components/create/override-sdk/widget/FileUtility/FileUtility.tsx +1 -1
  174. package/tests/assets/sdk-r/components/create/override-sdk/widget/QuickCreate/QuickCreate.tsx +1 -0
  175. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyBoolean/index.tsx +3 -2
  176. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyIconButtonURL/PConnProps.d.ts +46 -0
  177. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyIconButtonURL/demo.stories.tsx +99 -0
  178. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyIconButtonURL/index.tsx +201 -0
  179. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyIconButtonURL/mock.ts +5 -0
  180. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyIconButtonURL/styles.ts +8 -0
  181. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyPicklist/index.tsx +0 -1
  182. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MySearchbox/date.ts +15 -37
  183. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MySearchbox/index.tsx +11 -0
  184. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MySearchbox/utils.ts +3 -0
  185. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyText/index.tsx +94 -4
  186. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/Avatar.tsx +78 -0
  187. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/DetailsRender.tsx +52 -0
  188. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/HighlightRender.tsx +46 -0
  189. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/Operator.tsx +215 -0
  190. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/demo.stories.tsx +77 -23
  191. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/index.tsx +48 -37
  192. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/mock.ts +78 -20
  193. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/styles.ts +16 -0
  194. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyForm/DetailsRender.tsx +59 -0
  195. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyForm/demo.stories.tsx +73 -8
  196. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyForm/index.tsx +30 -5
  197. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyPage/GetNextWork.tsx +2 -1
  198. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyPage/localizations.json +4 -2
  199. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/Avatar.tsx +78 -0
  200. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/DetailsRender.tsx +52 -0
  201. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/HighlightRender.tsx +46 -0
  202. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/Operator.tsx +215 -0
  203. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/demo.stories.tsx +95 -26
  204. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/index.tsx +39 -36
  205. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/mock.ts +68 -10
  206. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/styles.ts +15 -0
  207. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnForm/DetailsRender.tsx +59 -0
  208. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnForm/demo.stories.tsx +95 -15
  209. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnForm/index.tsx +23 -4
  210. package/tests/assets/sdk-r/components/createAll/custom-constellation/widget/Pega_DXIL_MyPageWidget/demo.stories.tsx +87 -6
  211. package/tests/assets/sdk-r/components/createAll/custom-constellation/widget/Pega_DXIL_MyPageWidget/index.tsx +67 -5
  212. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyBoolean/demo.stories.tsx +1 -1
  213. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyBoolean/mock.ts +8 -8
  214. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyCurrency/config.json +1 -1
  215. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyCurrency/demo.stories.tsx +1 -1
  216. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyCurrency/index.tsx +44 -34
  217. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyCurrency/mock.ts +1 -1
  218. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDate/index.tsx +2 -2
  219. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDate/mock.ts +7 -7
  220. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDateTime/demo.stories.tsx +1 -1
  221. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDateTime/index.tsx +2 -3
  222. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDateTime/mock.ts +6 -6
  223. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDecimal/index.tsx +48 -32
  224. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDecimal/mock.ts +1 -1
  225. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyEmail/config.json +1 -1
  226. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyEmail/mock.ts +1 -1
  227. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyIconButtonURL/config.json +64 -0
  228. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyIconButtonURL/demo.stories.tsx +91 -0
  229. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyIconButtonURL/index.tsx +157 -0
  230. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyIconButtonURL/mock.ts +4 -0
  231. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyIconButtonURL/styles.js +7 -0
  232. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyInteger/config.json +1 -1
  233. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyInteger/index.tsx +16 -17
  234. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyInteger/mock.ts +1 -1
  235. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyParagraph/index.tsx +1 -3
  236. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyParagraph/mock.ts +1 -1
  237. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPercentage/config.json +1 -1
  238. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPercentage/index.tsx +34 -19
  239. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPercentage/mock.ts +1 -1
  240. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPhone/index.tsx +17 -9
  241. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPicklist/index.tsx +23 -23
  242. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyRadiobuttons/mock.ts +0 -1
  243. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyText/config.json +1 -1
  244. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyText/index.tsx +0 -1
  245. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyText/mock.ts +1 -1
  246. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTextInput/config.json +1 -1
  247. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTextInput/index.tsx +0 -1
  248. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTextInput/mock.ts +1 -1
  249. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTimeOfDay/demo.stories.tsx +4 -4
  250. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTimeOfDay/index.tsx +0 -2
  251. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTimeOfDay/mock.ts +6 -6
  252. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyURL/index.tsx +1 -2
  253. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyURL/mock.ts +1 -1
  254. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyDetails/demo.stories.tsx +1 -7
  255. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyDetails/index.tsx +4 -9
  256. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyDetails/mock.ts +197 -164
  257. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyForm/config.json +1 -1
  258. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyForm/demo.stories.tsx +13 -1
  259. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyForm/index.tsx +11 -13
  260. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyForm/utils.ts +1 -1
  261. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyPage/OneColumn.tsx +12 -13
  262. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyPage/demo.stories.tsx +1 -1
  263. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyPage/index.tsx +3 -5
  264. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyPage/mock.ts +8 -9
  265. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyTwoColumnDetails/demo.stories.tsx +1 -6
  266. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyTwoColumnDetails/index.tsx +4 -9
  267. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyTwoColumnDetails/mock.ts +207 -163
  268. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyTwoColumnForm/demo.stories.tsx +0 -2
  269. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyTwoColumnForm/mock.ts +121 -122
  270. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyCaseWidget/config.json +2 -2
  271. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyCaseWidget/demo.stories.tsx +19 -20
  272. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyCaseWidget/index.tsx +3 -3
  273. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageCaseWidget/demo.stories.tsx +20 -21
  274. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageCaseWidget/index.tsx +0 -1
  275. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageCaseWidget/mock.ts +0 -1
  276. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageWidget/config.json +43 -43
  277. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageWidget/demo.stories.tsx +45 -2
  278. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageWidget/index.tsx +168 -3
  279. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageWidget/mock.ts +26 -1
  280. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +2 -2
  281. package/tests/assets/sdk-r/components/createAll/override-sdk/field/CancelAlert/CancelAlert.tsx +2 -0
  282. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Currency/Currency.tsx +36 -26
  283. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Decimal/Decimal.tsx +33 -19
  284. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Multiselect/Multiselect.tsx +1 -1
  285. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Percentage/Percentage.tsx +33 -18
  286. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Phone/Phone.tsx +16 -7
  287. package/tests/assets/sdk-r/components/createAll/override-sdk/field/ScalarList/ScalarList.tsx +2 -0
  288. package/tests/assets/sdk-r/components/createAll/override-sdk/field/UserReference/UserReference.tsx +11 -1
  289. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/Assignment/Assignment.tsx +28 -1
  290. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/DashboardFilter/DashboardFilter.tsx +1 -1
  291. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/DeferLoad/DeferLoad.tsx +5 -1
  292. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/MultiStep/MultiStep.tsx +3 -1
  293. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/NavBar/NavBar.tsx +2 -2
  294. package/tests/assets/sdk-r/components/createAll/override-sdk/template/CaseView/CaseView.tsx +2 -1
  295. package/tests/assets/sdk-r/components/createAll/override-sdk/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +1 -1
  296. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DataReference/DataReference.tsx +1 -1
  297. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DefaultForm/utils/index.ts +2 -7
  298. package/tests/assets/sdk-r/components/createAll/override-sdk/template/Details/Details.tsx +1 -1
  299. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DetailsThreeColumn/DetailsThreeColumn.tsx +1 -1
  300. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DetailsTwoColumn/DetailsTwoColumn.tsx +1 -1
  301. package/tests/assets/sdk-r/components/createAll/override-sdk/template/FieldGroupTemplate/FieldGroupTemplate.tsx +2 -0
  302. package/tests/assets/sdk-r/components/createAll/override-sdk/template/ListView/ListView.tsx +20 -31
  303. package/tests/assets/sdk-r/components/createAll/override-sdk/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +1 -1
  304. package/tests/assets/sdk-r/components/createAll/override-sdk/template/NarrowWideDetails/NarrowWideDetails.tsx +1 -1
  305. package/tests/assets/sdk-r/components/createAll/override-sdk/template/PromotedFilters/PromotedFilters.tsx +1 -0
  306. package/tests/assets/sdk-r/components/createAll/override-sdk/template/SimpleTableManual/SimpleTableManual.tsx +4 -0
  307. package/tests/assets/sdk-r/components/createAll/override-sdk/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +1 -1
  308. package/tests/assets/sdk-r/components/createAll/override-sdk/template/WideNarrowDetails/WideNarrowDetails.tsx +1 -1
  309. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/Attachment/Attachment.tsx +3 -2
  310. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/FileUtility/FileUtility.tsx +1 -1
  311. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/QuickCreate/QuickCreate.tsx +1 -0
@@ -1,18 +1,19 @@
1
- import CurrencyTextField from '@unicef/material-ui-currency-textfield';
2
-
1
+ import { TextField } from '@material-ui/core';
2
+ import { useState } from 'react';
3
+ import { NumericFormat } from 'react-number-format';
3
4
  import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
4
5
  import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
5
6
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
6
7
  import { format } from '@pega/react-sdk-components/lib/components/helpers/formatters';
7
8
  import { getCurrencyCharacters, getCurrencyOptions } from './currency-utils';
8
9
 
9
- /* Using @unicef/material-ui-currency-textfield component here, since it allows formatting decimal values,
10
+ /* Using react-number-format component here, since it allows formatting decimal values,
10
11
  as per the locale.
11
12
  */
12
-
13
13
  interface CurrrencyProps extends PConnFieldProps {
14
14
  // If any, enter additional props that only exist on Currency here
15
15
  currencyISOCode?: string;
16
+ allowDecimals: boolean;
16
17
  }
17
18
 
18
19
  export default function Currency(props: CurrrencyProps) {
@@ -34,15 +35,15 @@ export default function Currency(props: CurrrencyProps) {
34
35
  displayMode,
35
36
  hideLabel,
36
37
  currencyISOCode = 'USD',
37
- placeholder
38
+ placeholder,
39
+ allowDecimals
38
40
  } = props;
39
41
 
40
42
  const pConn = getPConnect();
41
43
  const actions = pConn.getActionsApi();
42
44
  const propName = (pConn.getStateProps() as any).value;
43
45
  const helperTextToDisplay = validatemessage || helperText;
44
-
45
- // console.log(`Currency: label: ${label} value: ${value}`);
46
+ const [values, setValues] = useState(value.toString());
46
47
 
47
48
  const testProp = {
48
49
  'data-test-id': testId
@@ -57,6 +58,15 @@ export default function Currency(props: CurrrencyProps) {
57
58
  const theCurrencyOptions = getCurrencyOptions(currencyISOCode);
58
59
  const formattedValue = format(value, pConn.getComponentName().toLowerCase(), theCurrencyOptions);
59
60
 
61
+ let readOnlyProp = {}; // Note: empty if NOT ReadOnly
62
+
63
+ if (readOnly) {
64
+ readOnlyProp = { readOnly: true };
65
+ }
66
+
67
+ let currencyProp = {};
68
+ currencyProp = { prefix: theCurrSym, decimalSeparator: theCurrDec, thousandSeparator: theCurrSep };
69
+
60
70
  if (displayMode === 'LABELS_LEFT') {
61
71
  return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} />;
62
72
  }
@@ -65,34 +75,34 @@ export default function Currency(props: CurrrencyProps) {
65
75
  return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} variant='stacked' />;
66
76
  }
67
77
 
68
- function currOnBlur(event, inValue) {
69
- // console.log(`Currency currOnBlur inValue: ${inValue}`);
70
- handleEvent(actions, 'changeNblur', propName, inValue !== '' ? Number(inValue) : inValue);
78
+ function currOnBlur() {
79
+ handleEvent(actions, 'changeNblur', propName, values);
71
80
  }
72
81
 
73
- // console.log(`theCurrSym: ${theCurrSym} | theCurrDec: ${theCurrDec} | theCurrSep: ${theCurrSep}`);
82
+ const handleChange = val => {
83
+ setValues(val.value);
84
+ };
74
85
 
75
86
  return (
76
- <CurrencyTextField
77
- fullWidth
78
- variant={readOnly ? 'standard' : 'outlined'}
87
+ <NumericFormat
88
+ valueIsNumericString
89
+ label={label}
79
90
  helperText={helperTextToDisplay}
80
91
  placeholder={placeholder ?? ''}
81
- size='small'
82
92
  required={required}
83
93
  disabled={disabled}
84
- readOnly={!!readOnly}
85
- error={status === 'error'}
86
- label={label}
87
- value={value}
88
- type='text'
89
- outputFormat='number'
90
- textAlign='left'
91
- InputProps={{ inputProps: { ...testProp } }}
92
- currencySymbol={theCurrSym}
93
- decimalCharacter={theCurrDec}
94
- digitGroupSeparator={theCurrSep}
94
+ onValueChange={val => {
95
+ handleChange(val);
96
+ }}
95
97
  onBlur={!readOnly ? currOnBlur : undefined}
98
+ error={status === 'error'}
99
+ name='numberformat'
100
+ value={values}
101
+ {...currencyProp}
102
+ decimalScale={allowDecimals !== false ? 2 : 0}
103
+ fixedDecimalScale={allowDecimals}
104
+ InputProps={{ ...readOnlyProp, inputProps: { ...testProp } }}
105
+ customInput={TextField}
96
106
  />
97
107
  );
98
108
  }
@@ -1,12 +1,13 @@
1
- import CurrencyTextField from '@unicef/material-ui-currency-textfield';
2
-
1
+ import { TextField } from '@material-ui/core';
2
+ import { NumericFormat } from 'react-number-format';
3
+ import { useState } from 'react';
3
4
  import { getCurrencyCharacters, getCurrencyOptions } from '@pega/react-sdk-components/lib/components/field/Currency/currency-utils';
4
5
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
5
6
  import { format } from '@pega/react-sdk-components/lib/components/helpers/formatters';
6
7
  import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
7
8
  import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
8
9
 
9
- /* Using @unicef/material-ui-currency-textfield component here, since it allows formatting decimal values,
10
+ /* Using react-number-format component here, since it allows formatting decimal values,
10
11
  as per the locale.
11
12
  */
12
13
 
@@ -14,7 +15,7 @@ interface DecimalProps extends PConnFieldProps {
14
15
  // If any, enter additional props that only exist on Decimal here
15
16
  currencyISOCode?: string;
16
17
  decimalPrecision?: number;
17
- showGroupSeparators?: string;
18
+ showGroupSeparators?: boolean;
18
19
  formatter?: string;
19
20
  }
20
21
 
@@ -36,13 +37,15 @@ export default function Decimal(props: DecimalProps) {
36
37
  displayMode,
37
38
  hideLabel,
38
39
  currencyISOCode = 'USD',
39
- decimalPrecision = 2,
40
- showGroupSeparators = true,
40
+ decimalPrecision,
41
+ showGroupSeparators,
41
42
  testId,
42
43
  placeholder,
43
44
  formatter
44
45
  } = props;
45
46
 
47
+ const [values, setValues] = useState(value.toString());
48
+
46
49
  const pConn = getPConnect();
47
50
  const actions = pConn.getActionsApi();
48
51
  const propName = (pConn.getStateProps() as any).value;
@@ -55,6 +58,12 @@ export default function Decimal(props: DecimalProps) {
55
58
 
56
59
  const theCurrencyOptions = getCurrencyOptions(currencyISOCode);
57
60
 
61
+ let readOnlyProp = {}; // Note: empty if NOT ReadOnly
62
+
63
+ if (readOnly) {
64
+ readOnlyProp = { readOnly: true };
65
+ }
66
+
58
67
  let formattedValue = '';
59
68
  if (formatter === 'Currency') {
60
69
  formattedValue = format(value, formatter.toLowerCase(), theCurrencyOptions);
@@ -74,12 +83,17 @@ export default function Decimal(props: DecimalProps) {
74
83
  'data-test-id': testId
75
84
  };
76
85
 
77
- function decimalOnBlur(event, inValue) {
78
- handleEvent(actions, 'changeNblur', propName, inValue !== '' ? Number(inValue) : inValue);
86
+ function decimalOnBlur() {
87
+ handleEvent(actions, 'changeNblur', propName, values);
79
88
  }
80
89
 
90
+ const handleChange = val => {
91
+ setValues(val.value);
92
+ };
93
+
81
94
  return (
82
- <CurrencyTextField
95
+ <NumericFormat
96
+ valueIsNumericString
83
97
  fullWidth
84
98
  variant={readOnly ? 'standard' : 'outlined'}
85
99
  helperText={helperTextToDisplay}
@@ -89,17 +103,17 @@ export default function Decimal(props: DecimalProps) {
89
103
  disabled={disabled}
90
104
  error={status === 'error'}
91
105
  label={label}
92
- value={value}
93
- readOnly={!!readOnly}
94
- type='text'
95
- outputFormat='number'
96
- textAlign='left'
97
- InputProps={{ inputProps: { ...testProp } }}
98
- currencySymbol={readOnly && formatter === 'Currency' ? theCurrSym : ''}
99
- decimalCharacter={theCurrDec}
100
- digitGroupSeparator={showGroupSeparators ? theCurrSep : ''}
101
- decimalPlaces={decimalPrecision}
106
+ value={values}
107
+ onValueChange={val => {
108
+ handleChange(val);
109
+ }}
102
110
  onBlur={!readOnly ? decimalOnBlur : undefined}
111
+ prefix={readOnly && formatter === 'Currency' ? theCurrSym : ''}
112
+ decimalSeparator={theCurrDec}
113
+ thousandSeparator={showGroupSeparators ? theCurrSep : ''}
114
+ decimalScale={readOnly && formatter === 'Currency' ? undefined : decimalPrecision}
115
+ InputProps={{ ...readOnlyProp, inputProps: { ...testProp } }}
116
+ customInput={TextField}
103
117
  />
104
118
  );
105
119
  }
@@ -115,7 +115,7 @@ export default function Multiselect(props) {
115
115
  const pConn = getPConnect();
116
116
  const contextName = pConn.getContextName();
117
117
  const listActions = pConn.getListActions();
118
- const dataApiObj = useRef();
118
+ const dataApiObj: any = useRef();
119
119
 
120
120
  // main search function trigger
121
121
  const getCaseListBasedOnParams = async (searchText, group, selectedRows, currentItemsTree, isTriggeredFromSearch = false) => {
@@ -1,17 +1,20 @@
1
- import CurrencyTextField from '@unicef/material-ui-currency-textfield';
2
-
1
+ import { TextField } from '@material-ui/core';
2
+ import { NumericFormat } from 'react-number-format';
3
+ import { useState } from 'react';
3
4
  import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
4
5
  import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
5
6
  import { getCurrencyCharacters, getCurrencyOptions } from '@pega/react-sdk-components/lib/components/field/Currency/currency-utils';
6
7
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
7
8
  import { format } from '@pega/react-sdk-components/lib/components/helpers/formatters';
8
9
 
9
- /* Using @unicef/material-ui-currency-textfield component here, since it allows formatting decimal values,
10
+ /* Using react-number-format component here, since it allows formatting decimal values,
10
11
  as per the locale.
11
12
  */
12
13
  interface PercentageProps extends PConnFieldProps {
13
14
  // If any, enter additional props that only exist on Percentage here
14
15
  currencyISOCode?: string;
16
+ showGroupSeparators?: string;
17
+ decimalPrecision?: number;
15
18
  }
16
19
 
17
20
  export default function Percentage(props: PercentageProps) {
@@ -34,9 +37,13 @@ export default function Percentage(props: PercentageProps) {
34
37
  helperText,
35
38
  displayMode,
36
39
  hideLabel,
37
- placeholder
40
+ placeholder,
41
+ showGroupSeparators,
42
+ decimalPrecision
38
43
  } = props;
39
44
 
45
+ const [values, setValues] = useState(value.toString());
46
+
40
47
  const pConn = getPConnect();
41
48
  const actions = pConn.getActionsApi();
42
49
  const propName = (pConn.getStateProps() as any).value;
@@ -45,7 +52,11 @@ export default function Percentage(props: PercentageProps) {
45
52
  const theCurrencyOptions = getCurrencyOptions(currencyISOCode);
46
53
  const formattedValue = format(value, pConn.getComponentName().toLowerCase(), theCurrencyOptions);
47
54
 
48
- // console.log(`Percentage: label: ${label} value: ${value}`);
55
+ let readOnlyProp = {}; // Note: empty if NOT ReadOnly
56
+
57
+ if (readOnly) {
58
+ readOnlyProp = { readOnly: true };
59
+ }
49
60
 
50
61
  if (displayMode === 'LABELS_LEFT') {
51
62
  return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} />;
@@ -65,12 +76,17 @@ export default function Percentage(props: PercentageProps) {
65
76
  const theCurrDec = theSymbols.theDecimalIndicator;
66
77
  const theCurrSep = theSymbols.theDigitGroupSeparator;
67
78
 
68
- function PercentageOnBlur(event, inValue) {
69
- handleEvent(actions, 'changeNblur', propName, inValue !== '' ? Number(inValue) : inValue);
79
+ function PercentageOnBlur() {
80
+ handleEvent(actions, 'changeNblur', propName, values);
70
81
  }
71
82
 
83
+ const handleChange = val => {
84
+ setValues(val.value);
85
+ };
86
+
72
87
  return (
73
- <CurrencyTextField
88
+ <NumericFormat
89
+ valueIsNumericString
74
90
  fullWidth
75
91
  variant={readOnly ? 'standard' : 'outlined'}
76
92
  helperText={helperTextToDisplay}
@@ -78,20 +94,19 @@ export default function Percentage(props: PercentageProps) {
78
94
  size='small'
79
95
  required={required}
80
96
  disabled={disabled}
81
- readOnly={!!readOnly}
82
97
  error={status === 'error'}
83
98
  label={label}
84
- value={value}
85
- type='text'
86
- outputFormat='number'
87
- textAlign='left'
88
- InputProps={{
89
- inputProps: { ...testProp }
99
+ value={values}
100
+ onValueChange={val => {
101
+ handleChange(val);
90
102
  }}
91
- currencySymbol=''
92
- decimalCharacter={theCurrDec}
93
- digitGroupSeparator={theCurrSep}
94
103
  onBlur={!readOnly ? PercentageOnBlur : undefined}
104
+ decimalSeparator={theCurrDec}
105
+ thousandSeparator={showGroupSeparators ? theCurrSep : ''}
106
+ decimalScale={decimalPrecision}
107
+ suffix='%'
108
+ InputProps={{ ...readOnlyProp, inputProps: { ...testProp } }}
109
+ customInput={TextField}
95
110
  />
96
111
  );
97
112
  }
@@ -1,7 +1,9 @@
1
1
  import MuiPhoneNumber from 'material-ui-phone-number';
2
+ import { useEffect, useState } from 'react';
2
3
 
3
4
  import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
4
5
  import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
6
+ import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
5
7
 
6
8
  interface PhoneProps extends PConnFieldProps {
7
9
  // If any, enter additional props that only exist on Phone here
@@ -12,6 +14,7 @@ export default function Phone(props: PhoneProps) {
12
14
  const FieldValueList = getComponentFromMap('FieldValueList');
13
15
 
14
16
  const {
17
+ getPConnect,
15
18
  label,
16
19
  required,
17
20
  disabled,
@@ -19,7 +22,6 @@ export default function Phone(props: PhoneProps) {
19
22
  validatemessage,
20
23
  status,
21
24
  onChange,
22
- onBlur,
23
25
  readOnly,
24
26
  testId,
25
27
  helperText,
@@ -27,6 +29,14 @@ export default function Phone(props: PhoneProps) {
27
29
  hideLabel,
28
30
  placeholder
29
31
  } = props;
32
+
33
+ const pConn = getPConnect();
34
+ const actions = pConn.getActionsApi();
35
+ const propName = (pConn.getStateProps() as any).value;
36
+
37
+ const [inputValue, setInputValue] = useState(value);
38
+ useEffect(() => setInputValue(value), [value]);
39
+
30
40
  const helperTextToDisplay = validatemessage || helperText;
31
41
 
32
42
  let testProp = {};
@@ -69,15 +79,14 @@ export default function Phone(props: PhoneProps) {
69
79
  }
70
80
 
71
81
  const handleChange = inputVal => {
72
- let phoneValue = inputVal && inputVal.replace(/\D+/g, '');
73
- phoneValue = `+${phoneValue}`;
74
- onChange({ value: phoneValue });
82
+ setInputValue(inputVal);
75
83
  };
76
84
 
77
85
  const handleBlur = event => {
78
86
  const phoneValue = event?.target?.value;
79
- event.target.value = `+${phoneValue && phoneValue.replace(/\D+/g, '')}`;
80
- onBlur(event);
87
+ let phoneNumber = phoneValue.split(' ').slice(1).join();
88
+ phoneNumber = phoneNumber ? `+${phoneValue && phoneValue.replace(/\D+/g, '')}` : '';
89
+ handleEvent(actions, 'changeNblur', propName, phoneNumber);
81
90
  };
82
91
 
83
92
  return (
@@ -94,7 +103,7 @@ export default function Phone(props: PhoneProps) {
94
103
  onBlur={!readOnly ? handleBlur : undefined}
95
104
  error={status === 'error'}
96
105
  label={label}
97
- value={value}
106
+ value={inputValue}
98
107
  InputProps={{ ...testProp }}
99
108
  />
100
109
  );
@@ -36,10 +36,12 @@ export default function ScalarList(props: ScalarListProps) {
36
36
  {
37
37
  type: componentType,
38
38
  config: {
39
+ // @ts-ignore - Type '{ readOnly: true; displayInModal: boolean; value: any; displayMode: string; label: string; }' is not assignable to type 'ComponentMetadataConfig'.
39
40
  value: scalarValue,
40
41
  displayMode: 'LABELS_LEFT',
41
42
  label,
42
43
  ...restProps,
44
+ // @ts-ignore - Type 'string' is not assignable to type 'boolean | undefined'.
43
45
  readOnly: 'true'
44
46
  }
45
47
  },
@@ -4,6 +4,7 @@ import { Typography } from '@material-ui/core';
4
4
  import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
5
5
  import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
6
6
 
7
+ import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
7
8
  import { getUserId, isUserNameAvailable } from './UserReferenceUtils';
8
9
 
9
10
  const DROPDOWN_LIST = 'Drop-down list';
@@ -12,6 +13,7 @@ const SEARCH_BOX = 'Search box';
12
13
  interface UserReferenceProps extends PConnProps {
13
14
  // If any, enter additional props that only exist on URLComponent here
14
15
  displayAs?: string;
16
+ displayMode?: string;
15
17
  label?: string;
16
18
  value?: any;
17
19
  testId?: string;
@@ -36,6 +38,7 @@ const UserReference = (props: UserReferenceProps) => {
36
38
  const {
37
39
  label = '',
38
40
  displayAs = '',
41
+ displayMode = '',
39
42
  getPConnect,
40
43
  value = '',
41
44
  testId = '',
@@ -96,6 +99,14 @@ const UserReference = (props: UserReferenceProps) => {
96
99
 
97
100
  let userReferenceComponent: any = null;
98
101
 
102
+ if (displayMode === 'LABELS_LEFT') {
103
+ return <FieldValueList name={hideLabel ? '' : label} value={userName || ''} />;
104
+ }
105
+
106
+ if (displayMode === 'STACKED_LARGE_VAL') {
107
+ return <FieldValueList name={hideLabel ? '' : label} value={userName || ''} variant='stacked' />;
108
+ }
109
+
99
110
  if (readOnly && showAsFormattedText) {
100
111
  if (userId) {
101
112
  userReferenceComponent = (
@@ -172,7 +183,6 @@ const UserReference = (props: UserReferenceProps) => {
172
183
  );
173
184
  }
174
185
  }
175
-
176
186
  return userReferenceComponent;
177
187
  };
178
188
 
@@ -41,6 +41,8 @@ export default function Assignment(props: PropsWithChildren<AssignmentProps>) {
41
41
  const cancelAssignment = actionsAPI.cancelAssignment.bind(actionsAPI);
42
42
  const saveAssignment = actionsAPI.saveAssignment?.bind(actionsAPI);
43
43
  const cancelCreateStageAssignment = actionsAPI.cancelCreateStageAssignment.bind(actionsAPI);
44
+ const approveCase = actionsAPI.approveCase?.bind(actionsAPI);
45
+ const rejectCase = actionsAPI.rejectCase?.bind(actionsAPI);
44
46
  // const showPage = actionsAPI.showPage.bind(actionsAPI);
45
47
 
46
48
  const [showSnackbar, setShowSnackbar] = useState(false);
@@ -167,6 +169,7 @@ export default function Assignment(props: PropsWithChildren<AssignmentProps>) {
167
169
 
168
170
  savePromise
169
171
  .then(() => {
172
+ // @ts-ignore - Property 'c11nEnv' is private and only accessible within class 'CaseInfo'.
170
173
  const caseType = thePConn.getCaseInfo().c11nEnv.getValue(PCore.getConstants().CASE_INFO.CASE_TYPE_ID);
171
174
  onSaveActionSuccess({ caseType, caseID, assignmentID });
172
175
  })
@@ -211,6 +214,18 @@ export default function Assignment(props: PropsWithChildren<AssignmentProps>) {
211
214
  break;
212
215
  }
213
216
 
217
+ case 'rejectCase': {
218
+ const rejectPromise = rejectCase(itemKey);
219
+
220
+ rejectPromise
221
+ .then(() => {})
222
+ .catch(() => {
223
+ showToast(`${localizedVal('Rejection failed!', localeCategory)}`);
224
+ });
225
+
226
+ break;
227
+ }
228
+
214
229
  default:
215
230
  break;
216
231
  }
@@ -229,6 +244,18 @@ export default function Assignment(props: PropsWithChildren<AssignmentProps>) {
229
244
  break;
230
245
  }
231
246
 
247
+ case 'approveCase': {
248
+ const approvePromise = approveCase(itemKey);
249
+
250
+ approvePromise
251
+ .then(() => {})
252
+ .catch(() => {
253
+ showToast(`${localizedVal('Approve failed!', localeCategory)}`);
254
+ });
255
+
256
+ break;
257
+ }
258
+
232
259
  default:
233
260
  break;
234
261
  }
@@ -263,7 +290,7 @@ export default function Assignment(props: PropsWithChildren<AssignmentProps>) {
263
290
  refreshProps.forEach(prop => {
264
291
  PCore.getRefreshManager().registerForRefresh(
265
292
  'PROP_CHANGE',
266
- thePConn.getActionsApi().refreshCaseView.bind(thePConn.getActionsApi(), caseKey, null, pageReference, {
293
+ thePConn.getActionsApi().refreshCaseView.bind(thePConn.getActionsApi(), caseKey, '', pageReference, {
267
294
  ...refreshOptions,
268
295
  refreshFor: prop[0]
269
296
  }),
@@ -97,7 +97,7 @@ export default function DashboardFilter(props: PropsWithChildren<DashboardFilter
97
97
  metadata.config.onRecordChange = e => {
98
98
  fireFilterChange(e.id);
99
99
  };
100
- return getPConnect().createComponent(metadata, '', '', {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional);
100
+ return getPConnect().createComponent(metadata, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional);
101
101
  };
102
102
 
103
103
  const onChange = dates => {
@@ -137,8 +137,12 @@ export default function DeferLoad(props: DeferLoadProps) {
137
137
  getPConnect()
138
138
  .getActionsApi()
139
139
  .refreshCaseView(encodeURI(loadViewCaseID), name, '') // 3rd arg empty string until typedef allows optional
140
- .then(data => {
140
+ .then((data: any) => {
141
141
  onResponse(data.root);
142
+ })
143
+ .catch(error => {
144
+ // eslint-disable-next-line no-console
145
+ console.log(`deferload: ${error}`);
142
146
  });
143
147
  }
144
148
  }, [name, getPConnect, currentLoadedAssignment]);
@@ -144,7 +144,9 @@ export default function MultiStep(props: PropsWithChildren<MultiStepProps>) {
144
144
  </div>
145
145
  </div>
146
146
  <div className={_getHLabelClass(mainStep.visited_status)}>
147
- <div className='psdk-horizontal-step-text-label'>{mainStep.name}</div>
147
+ <div className='psdk-horizontal-step-text-label' id='selected-label'>
148
+ {mainStep.name}
149
+ </div>
148
150
  </div>
149
151
  </div>
150
152
  {_showHLine(index) && <div className='psdk-horizontal-step-line' />}
@@ -249,8 +249,8 @@ export default function NavBar(props: NavBarProps) {
249
249
  <Divider />
250
250
  <List className='marginTopAuto'>
251
251
  <>
252
- <ListItem onClick={navPanelOperatorButtonClick} style={{ cursor: 'pointer' }}>
253
- <ListItemIcon>
252
+ <ListItem onClick={navPanelOperatorButtonClick}>
253
+ <ListItemIcon id='person-icon'>
254
254
  <PersonOutlineIcon fontSize='large' />
255
255
  </ListItemIcon>
256
256
  <ListItemText primary={portalOperator} />
@@ -186,6 +186,7 @@ export default function CaseView(props: PropsWithChildren<CaseViewProps>) {
186
186
  <Box>
187
187
  {editAction && (
188
188
  <Button
189
+ id='edit'
189
190
  onClick={() => {
190
191
  _editClick();
191
192
  }}
@@ -217,7 +218,7 @@ export default function CaseView(props: PropsWithChildren<CaseViewProps>) {
217
218
  <CardHeader
218
219
  className={classes.caseViewHeader}
219
220
  title={
220
- <Typography variant='h6' component='div'>
221
+ <Typography variant='h6' component='div' id='case-name'>
221
222
  {PCore.getLocaleUtils().getLocaleValue(header, '', localeKey)}
222
223
  </Typography>
223
224
  }
@@ -95,7 +95,7 @@ export default function CaseViewActionsMenu(props: CaseViewActionsMenuProps) {
95
95
 
96
96
  return (
97
97
  <>
98
- <Button aria-controls='simple-menu' aria-haspopup='true' onClick={handleClick}>
98
+ <Button id='actions-menu' aria-controls='simple-menu' aria-haspopup='true' onClick={handleClick}>
99
99
  {localizedVal('Actions...', localeCategory)}
100
100
  </Button>
101
101
  <Menu id='simple-menu' anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={handleClose}>
@@ -128,7 +128,7 @@ export default function DataReference(props: PropsWithChildren<DataReferenceProp
128
128
  const refreshOptions = { autoDetectRefresh: true };
129
129
  if (canBeChangedInReviewMode && pConn.getValue('__currentPageTabViewName', '')) {
130
130
  // 2nd arg empty string until typedef marked correctly
131
- getPConnect().getActionsApi().refreshCaseView(caseKey, pConn.getValue('__currentPageTabViewName', ''), null, refreshOptions); // 2nd arg empty string until typedef marked correctly
131
+ getPConnect().getActionsApi().refreshCaseView(caseKey, pConn.getValue('__currentPageTabViewName', ''), '', refreshOptions); // 2nd arg empty string until typedef marked correctly
132
132
  PCore.getDeferLoadManager().refreshActiveComponents(pConn.getContextName());
133
133
  } else {
134
134
  const pgRef = pConn.getPageReference().replace('caseInfo.content', '');
@@ -20,13 +20,8 @@ export const getKeyForMappedField = field => {
20
20
 
21
21
  const pConnect = field?.getPConnect?.();
22
22
 
23
- if (pConnect?.meta?.type && pConnect?.meta?.config?.name) {
24
- return `${pConnect.meta.type}_${pConnect.meta.config.name}`;
25
- }
26
-
27
- // Using label as a fallback if name is not defined.
28
- if (pConnect?.meta?.type && pConnect?.meta?.config?.label) {
29
- return `${pConnect.meta.type}_${pConnect.meta.config.label}`;
23
+ if (pConnect?.meta) {
24
+ return JSON.stringify(pConnect.meta);
30
25
  }
31
26
 
32
27
  return uuidv4();
@@ -46,7 +46,7 @@ export default function Details(props: DetailsProps) {
46
46
  field.config.displayAsStatus = true;
47
47
  }
48
48
 
49
- return getPConnect().createComponent(field, '', '', {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional
49
+ return getPConnect().createComponent(field, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional
50
50
  });
51
51
  }
52
52
 
@@ -46,7 +46,7 @@ export default function DetailsThreeColumn(props: DetailsThreeColumnProps) {
46
46
  field.config.displayAsStatus = true;
47
47
  }
48
48
 
49
- return getPConnect().createComponent(field, '', '', {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional);
49
+ return getPConnect().createComponent(field, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional);
50
50
  });
51
51
  }
52
52
 
@@ -46,7 +46,7 @@ export default function DetailsTwoColumn(props: DetailsTwoColumnProps) {
46
46
  field.config.displayAsStatus = true;
47
47
  }
48
48
 
49
- return getPConnect().createComponent(field, '', '', {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional
49
+ return getPConnect().createComponent(field, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional
50
50
  });
51
51
  }
52
52