@pega/dx-component-builder-sdk 25.1.15 → 26.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 (209) hide show
  1. package/package.json +1 -1
  2. package/pega-dx-component-builder-sdk-26.1.10.tgz +0 -0
  3. package/src/constants.js +4 -0
  4. package/src/tasks/create/templates/Constellation/field/Picklist-Autocomplete/utils.ts.mustache +1 -1
  5. package/src/tasks/create/templates/Constellation/template/DETAILS/DetailsRender.tsx.mustache +1 -1
  6. package/src/tasks/create/templates/Constellation/template/DETAILS-region/DetailsRender.tsx.mustache +1 -1
  7. package/src/tasks/create/templates/Constellation/template/FORM/DetailsRender.tsx +1 -1
  8. package/src/tasks/create/templates/Constellation/template/FORM-region/DetailsRender.tsx +1 -1
  9. package/src/tasks/create/templates/SDK-React/field/Boolean/index.tsx.mustache +22 -6
  10. package/src/tasks/create/templates/SDK-React/field/Date/demo.stories.tsx.mustache +8 -1
  11. package/src/tasks/create/templates/SDK-React/field/Date/index.tsx.mustache +22 -13
  12. package/src/tasks/create/templates/SDK-React/field/DateTime/demo.stories.tsx.mustache +9 -1
  13. package/src/tasks/create/templates/SDK-React/field/DateTime/index.tsx.mustache +23 -14
  14. package/src/tasks/create/templates/SDK-React/field/Decimal/index.tsx.mustache +24 -8
  15. package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/index.tsx.mustache +24 -8
  16. package/src/tasks/create/templates/SDK-React/field/Decimal-Percentage/index.tsx.mustache +24 -10
  17. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/index.tsx.mustache +2 -2
  18. package/src/tasks/create/templates/SDK-React/field/Integer/index.tsx.mustache +26 -14
  19. package/src/tasks/create/templates/SDK-React/field/Picklist/index.tsx.mustache +34 -8
  20. package/src/tasks/create/templates/SDK-React/field/Picklist-Autocomplete/index.tsx.mustache +25 -9
  21. package/src/tasks/create/templates/SDK-React/field/Picklist-RadioButtons/index.tsx.mustache +21 -5
  22. package/src/tasks/create/templates/SDK-React/field/Text/index.tsx.mustache +25 -14
  23. package/src/tasks/create/templates/SDK-React/field/Text-Email/index.tsx.mustache +32 -21
  24. package/src/tasks/create/templates/SDK-React/field/Text-Input/index.tsx.mustache +25 -10
  25. package/src/tasks/create/templates/SDK-React/field/Text-Paragraph/index.tsx.mustache +26 -14
  26. package/src/tasks/create/templates/SDK-React/field/Text-Phone/index.tsx.mustache +28 -10
  27. package/src/tasks/create/templates/SDK-React/field/Text-URL/index.tsx.mustache +26 -14
  28. package/src/tasks/create/templates/SDK-React/field/TimeOfDay/demo.stories.tsx.mustache +9 -1
  29. package/src/tasks/create/templates/SDK-React/field/TimeOfDay/index.tsx.mustache +22 -17
  30. package/src/tasks/create/templates/SDK-React/template/FORM/DefaultForm.css +82 -2
  31. package/src/tasks/create/templates/SDK-React/template/FORM/index.tsx.mustache +51 -11
  32. package/src/tasks/create/templates/SDK-React/widget/CASE/index.tsx.mustache +19 -15
  33. package/src/tasks/create/templates/SDK-React/widget/PAGE/index.tsx.mustache +2 -167
  34. package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/index.tsx.mustache +72 -15
  35. package/tests/assets/sdk-r/components/create/custom-sdk/field/Pega_DXIL_MyTestText/index.tsx +25 -14
  36. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/AlertBanner/AlertBanner.css +46 -0
  37. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/AlertBanner/AlertBanner.tsx +37 -20
  38. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.css +14 -0
  39. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +57 -5
  40. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/FieldGroup/FieldGroup.tsx +18 -11
  41. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/FieldGroupList/FieldGroupList.tsx +1 -1
  42. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/FieldValueList/FieldValueList.tsx +19 -4
  43. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/Operator/Operator.tsx +125 -74
  44. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/RichTextEditor/RichTextEditor.tsx +184 -90
  45. package/tests/assets/sdk-r/components/create/override-sdk/field/AutoComplete/AutoComplete.tsx +372 -26
  46. package/tests/assets/sdk-r/components/create/override-sdk/field/Checkbox/Checkbox.tsx +22 -6
  47. package/tests/assets/sdk-r/components/create/override-sdk/field/Currency/Currency.tsx +22 -4
  48. package/tests/assets/sdk-r/components/create/override-sdk/field/Date/Date.tsx +35 -4
  49. package/tests/assets/sdk-r/components/create/override-sdk/field/DateTime/DateTime.tsx +35 -4
  50. package/tests/assets/sdk-r/components/create/override-sdk/field/Decimal/Decimal.tsx +22 -4
  51. package/tests/assets/sdk-r/components/create/override-sdk/field/Dropdown/Dropdown.tsx +48 -16
  52. package/tests/assets/sdk-r/components/create/override-sdk/field/Email/Email.tsx +21 -4
  53. package/tests/assets/sdk-r/components/create/override-sdk/field/Group/Group.tsx +28 -4
  54. package/tests/assets/sdk-r/components/create/override-sdk/field/Integer/Integer.tsx +21 -4
  55. package/tests/assets/sdk-r/components/create/override-sdk/field/Multiselect/Multiselect.tsx +42 -20
  56. package/tests/assets/sdk-r/components/create/override-sdk/field/Multiselect/utils.ts +5 -3
  57. package/tests/assets/sdk-r/components/create/override-sdk/field/ObjectReference/ObjectReference.tsx +554 -66
  58. package/tests/assets/sdk-r/components/create/override-sdk/field/ObjectReference/utils.ts +108 -20
  59. package/tests/assets/sdk-r/components/create/override-sdk/field/Percentage/Percentage.tsx +22 -4
  60. package/tests/assets/sdk-r/components/create/override-sdk/field/Phone/Phone.tsx +23 -4
  61. package/tests/assets/sdk-r/components/create/override-sdk/field/RadioButtons/RadioButtons.tsx +20 -4
  62. package/tests/assets/sdk-r/components/create/override-sdk/field/RichText/RichText.css +0 -79
  63. package/tests/assets/sdk-r/components/create/override-sdk/field/RichText/RichText.tsx +1 -1
  64. package/tests/assets/sdk-r/components/create/override-sdk/field/SelectableCard/SelectableCard.tsx +25 -10
  65. package/tests/assets/sdk-r/components/create/override-sdk/field/TextArea/TextArea.tsx +22 -4
  66. package/tests/assets/sdk-r/components/create/override-sdk/field/TextInput/TextInput.tsx +21 -4
  67. package/tests/assets/sdk-r/components/create/override-sdk/field/Time/Time.tsx +35 -4
  68. package/tests/assets/sdk-r/components/create/override-sdk/field/URL/URL.tsx +22 -4
  69. package/tests/assets/sdk-r/components/create/override-sdk/field/UserReference/UserReference.tsx +10 -6
  70. package/tests/assets/sdk-r/components/create/override-sdk/infra/Assignment/Assignment.tsx +36 -14
  71. package/tests/assets/sdk-r/components/create/override-sdk/infra/Assignment/useValidationBanner.ts +29 -0
  72. package/tests/assets/sdk-r/components/create/override-sdk/infra/DeferLoad/DeferLoad.tsx +31 -10
  73. package/tests/assets/sdk-r/components/create/override-sdk/infra/FlowContainer/FlowContainer.tsx +5 -6
  74. package/tests/assets/sdk-r/components/create/override-sdk/infra/LeftAlignVerticalTabs/LeftAlignVerticalTabs.tsx +1 -1
  75. package/tests/assets/sdk-r/components/create/override-sdk/infra/ModalViewContainer/DataViewActionButtons/DataViewActionButtons.tsx +138 -0
  76. package/tests/assets/sdk-r/components/create/override-sdk/infra/ModalViewContainer/ModalViewContainer.tsx +110 -64
  77. package/tests/assets/sdk-r/components/create/override-sdk/infra/MultiStep/MultiStep.css +63 -0
  78. package/tests/assets/sdk-r/components/create/override-sdk/infra/MultiStep/MultiStep.tsx +23 -52
  79. package/tests/assets/sdk-r/components/create/override-sdk/infra/NavBar/NavBar.tsx +8 -3
  80. package/tests/assets/sdk-r/components/create/override-sdk/infra/Reference/Reference.tsx +5 -0
  81. package/tests/assets/sdk-r/components/create/override-sdk/infra/RootContainer/RootContainer.tsx +4 -5
  82. package/tests/assets/sdk-r/components/create/override-sdk/infra/View/View.css +1 -0
  83. package/tests/assets/sdk-r/components/create/override-sdk/infra/View/View.tsx +10 -17
  84. package/tests/assets/sdk-r/components/create/override-sdk/infra/ViewContainer/ViewContainer.tsx +8 -10
  85. package/tests/assets/sdk-r/components/create/override-sdk/template/AppShell/AppShell.css +0 -4
  86. package/tests/assets/sdk-r/components/create/override-sdk/template/AppShell/AppShell.tsx +7 -1
  87. package/tests/assets/sdk-r/components/create/override-sdk/template/CaseSummary/CaseSummary.tsx +9 -42
  88. package/tests/assets/sdk-r/components/create/override-sdk/template/CaseView/CaseView.tsx +8 -2
  89. package/tests/assets/sdk-r/components/create/override-sdk/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +58 -3
  90. package/tests/assets/sdk-r/components/create/override-sdk/template/DataReference/DataReference.tsx +56 -33
  91. package/tests/assets/sdk-r/components/create/override-sdk/template/DataReference/SearchForm.tsx +3 -4
  92. package/tests/assets/sdk-r/components/create/override-sdk/template/DefaultForm/DefaultForm.css +71 -0
  93. package/tests/assets/sdk-r/components/create/override-sdk/template/DefaultForm/DefaultForm.tsx +45 -9
  94. package/tests/assets/sdk-r/components/create/override-sdk/template/FieldGroupTemplate/FieldGroupTemplate.tsx +10 -3
  95. package/tests/assets/sdk-r/components/create/override-sdk/template/ListView/ListView.tsx +139 -59
  96. package/tests/assets/sdk-r/components/create/override-sdk/template/ListView/hooks.ts +80 -13
  97. package/tests/assets/sdk-r/components/create/override-sdk/template/ListView/utils.ts +13 -3
  98. package/tests/assets/sdk-r/components/create/override-sdk/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +16 -1
  99. package/tests/assets/sdk-r/components/create/override-sdk/template/SimpleTableManual/SimpleTableManual.tsx +167 -93
  100. package/tests/assets/sdk-r/components/create/override-sdk/template/SimpleTableSelect/SimpleTableSelect.tsx +71 -56
  101. package/tests/assets/sdk-r/components/create/override-sdk/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +12 -7
  102. package/tests/assets/sdk-r/components/create/override-sdk/widget/Attachment/Attachment.tsx +119 -26
  103. package/tests/assets/sdk-r/components/create/override-sdk/widget/Attachment/AttachmentUtils.ts +1 -1
  104. package/tests/assets/sdk-r/components/create/override-sdk/widget/CaseHistory/CaseHistory.tsx +16 -12
  105. package/tests/assets/sdk-r/components/create/override-sdk/widget/FileUtility/FileUtility.tsx +40 -28
  106. package/tests/assets/sdk-r/components/create/override-sdk/widget/ToDo/ToDo.tsx +14 -6
  107. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MySearchbox/utils.ts +1 -1
  108. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/DetailsRender.tsx +1 -1
  109. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyForm/DetailsRender.tsx +1 -1
  110. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/DetailsRender.tsx +1 -1
  111. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnForm/DetailsRender.tsx +1 -1
  112. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyBoolean/index.tsx +22 -6
  113. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyCurrency/index.tsx +24 -8
  114. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDate/demo.stories.tsx +8 -1
  115. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDate/index.tsx +22 -13
  116. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDateTime/demo.stories.tsx +9 -1
  117. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDateTime/index.tsx +23 -14
  118. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDecimal/index.tsx +24 -8
  119. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyEmail/index.tsx +32 -21
  120. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyIconButtonURL/index.tsx +2 -2
  121. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyInteger/index.tsx +26 -14
  122. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyParagraph/index.tsx +26 -14
  123. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPercentage/index.tsx +24 -10
  124. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPhone/index.tsx +25 -10
  125. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPicklist/index.tsx +34 -8
  126. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyRadiobuttons/index.tsx +21 -5
  127. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MySearchbox/index.tsx +22 -9
  128. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyText/index.tsx +25 -14
  129. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTextInput/index.tsx +25 -10
  130. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTimeOfDay/demo.stories.tsx +9 -1
  131. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTimeOfDay/index.tsx +22 -17
  132. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyURL/index.tsx +26 -14
  133. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyForm/DefaultForm.css +82 -2
  134. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyForm/index.tsx +45 -8
  135. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyCaseWidget/index.tsx +19 -15
  136. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageCaseWidget/index.tsx +66 -15
  137. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageWidget/index.tsx +2 -167
  138. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/AlertBanner/AlertBanner.css +46 -0
  139. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/AlertBanner/AlertBanner.tsx +37 -20
  140. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.css +14 -0
  141. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +57 -5
  142. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/FieldGroup/FieldGroup.tsx +18 -11
  143. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/FieldGroupList/FieldGroupList.tsx +1 -1
  144. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/FieldValueList/FieldValueList.tsx +19 -4
  145. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/Operator/Operator.tsx +125 -74
  146. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/RichTextEditor/RichTextEditor.tsx +184 -90
  147. package/tests/assets/sdk-r/components/createAll/override-sdk/field/AutoComplete/AutoComplete.tsx +372 -26
  148. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Checkbox/Checkbox.tsx +22 -6
  149. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Currency/Currency.tsx +22 -4
  150. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Date/Date.tsx +35 -4
  151. package/tests/assets/sdk-r/components/createAll/override-sdk/field/DateTime/DateTime.tsx +35 -4
  152. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Decimal/Decimal.tsx +22 -4
  153. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Dropdown/Dropdown.tsx +48 -16
  154. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Email/Email.tsx +21 -4
  155. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Group/Group.tsx +28 -4
  156. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Integer/Integer.tsx +21 -4
  157. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Multiselect/Multiselect.tsx +42 -20
  158. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Multiselect/utils.ts +5 -3
  159. package/tests/assets/sdk-r/components/createAll/override-sdk/field/ObjectReference/ObjectReference.tsx +554 -66
  160. package/tests/assets/sdk-r/components/createAll/override-sdk/field/ObjectReference/utils.ts +108 -20
  161. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Percentage/Percentage.tsx +22 -4
  162. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Phone/Phone.tsx +23 -4
  163. package/tests/assets/sdk-r/components/createAll/override-sdk/field/RadioButtons/RadioButtons.tsx +20 -4
  164. package/tests/assets/sdk-r/components/createAll/override-sdk/field/RichText/RichText.css +0 -79
  165. package/tests/assets/sdk-r/components/createAll/override-sdk/field/RichText/RichText.tsx +1 -1
  166. package/tests/assets/sdk-r/components/createAll/override-sdk/field/SelectableCard/SelectableCard.tsx +25 -10
  167. package/tests/assets/sdk-r/components/createAll/override-sdk/field/TextArea/TextArea.tsx +22 -4
  168. package/tests/assets/sdk-r/components/createAll/override-sdk/field/TextInput/TextInput.tsx +21 -4
  169. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Time/Time.tsx +35 -4
  170. package/tests/assets/sdk-r/components/createAll/override-sdk/field/URL/URL.tsx +22 -4
  171. package/tests/assets/sdk-r/components/createAll/override-sdk/field/UserReference/UserReference.tsx +10 -6
  172. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/Assignment/Assignment.tsx +36 -14
  173. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/Assignment/useValidationBanner.ts +29 -0
  174. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/DeferLoad/DeferLoad.tsx +31 -10
  175. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/FlowContainer/FlowContainer.tsx +5 -6
  176. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/LeftAlignVerticalTabs/LeftAlignVerticalTabs.tsx +1 -1
  177. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/ModalViewContainer/DataViewActionButtons/DataViewActionButtons.tsx +138 -0
  178. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/ModalViewContainer/ModalViewContainer.tsx +110 -64
  179. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/MultiStep/MultiStep.css +63 -0
  180. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/MultiStep/MultiStep.tsx +23 -52
  181. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/NavBar/NavBar.tsx +8 -3
  182. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/Reference/Reference.tsx +5 -0
  183. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/RootContainer/RootContainer.tsx +4 -5
  184. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/View/View.css +1 -0
  185. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/View/View.tsx +10 -17
  186. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/ViewContainer/ViewContainer.tsx +8 -10
  187. package/tests/assets/sdk-r/components/createAll/override-sdk/template/AppShell/AppShell.css +0 -4
  188. package/tests/assets/sdk-r/components/createAll/override-sdk/template/AppShell/AppShell.tsx +7 -1
  189. package/tests/assets/sdk-r/components/createAll/override-sdk/template/CaseSummary/CaseSummary.tsx +9 -42
  190. package/tests/assets/sdk-r/components/createAll/override-sdk/template/CaseView/CaseView.tsx +8 -2
  191. package/tests/assets/sdk-r/components/createAll/override-sdk/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +58 -3
  192. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DataReference/DataReference.tsx +56 -33
  193. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DataReference/SearchForm.tsx +3 -4
  194. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DefaultForm/DefaultForm.css +71 -0
  195. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DefaultForm/DefaultForm.tsx +45 -9
  196. package/tests/assets/sdk-r/components/createAll/override-sdk/template/FieldGroupTemplate/FieldGroupTemplate.tsx +10 -3
  197. package/tests/assets/sdk-r/components/createAll/override-sdk/template/ListView/ListView.tsx +139 -59
  198. package/tests/assets/sdk-r/components/createAll/override-sdk/template/ListView/hooks.ts +80 -13
  199. package/tests/assets/sdk-r/components/createAll/override-sdk/template/ListView/utils.ts +13 -3
  200. package/tests/assets/sdk-r/components/createAll/override-sdk/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +16 -1
  201. package/tests/assets/sdk-r/components/createAll/override-sdk/template/SimpleTableManual/SimpleTableManual.tsx +167 -93
  202. package/tests/assets/sdk-r/components/createAll/override-sdk/template/SimpleTableSelect/SimpleTableSelect.tsx +71 -56
  203. package/tests/assets/sdk-r/components/createAll/override-sdk/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +12 -7
  204. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/Attachment/Attachment.tsx +119 -26
  205. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/Attachment/AttachmentUtils.ts +1 -1
  206. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/CaseHistory/CaseHistory.tsx +16 -12
  207. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/FileUtility/FileUtility.tsx +40 -28
  208. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/ToDo/ToDo.tsx +14 -6
  209. package/SECURITY.md +0 -10
@@ -6,6 +6,8 @@ import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event
6
6
  import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
7
7
  import { insertInstruction, deleteInstruction, updateNewInstuctions } from '@pega/react-sdk-components/lib/components/helpers/instructions-utils';
8
8
  import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
9
+ import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
10
+ import { getFormControlSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
9
11
 
10
12
  import StyledPegaDxilMyBooleanWrapper from './styles';
11
13
 
@@ -30,6 +32,11 @@ interface PegaDxilMyBooleanProps extends Omit<PConnFieldProps, 'value'> {
30
32
  showImageDescription: string;
31
33
  renderMode: string;
32
34
  image: string;
35
+ showFieldMessage?: boolean;
36
+ messageConfig?: {
37
+ content?: string;
38
+ visibility?: boolean;
39
+ };
33
40
  }
34
41
 
35
42
  const useStyles = makeStyles(() => ({
@@ -61,7 +68,6 @@ export default function PegaDxilMyBoolean(props: PegaDxilMyBooleanProps) {
61
68
  testId,
62
69
  required,
63
70
  disabled,
64
- status,
65
71
  helperText,
66
72
  validatemessage,
67
73
  displayMode,
@@ -82,18 +88,28 @@ export default function PegaDxilMyBoolean(props: PegaDxilMyBooleanProps) {
82
88
  imageSize,
83
89
  showImageDescription,
84
90
  renderMode,
85
- image
91
+ image,
92
+ showFieldMessage,
93
+ messageConfig = {}
86
94
  } = props;
87
95
 
88
96
  const readOnlyMode = renderMode === 'ReadOnly' || displayMode === 'DISPLAY_ONLY' || readOnly;
89
97
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
90
98
  const [theSelectedButton, setSelectedButton] = useState(value);
91
99
  const classes = useStyles();
92
- const helperTextToDisplay = validatemessage || helperText;
100
+ const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
101
+ const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
93
102
  const thePConn = getPConnect();
94
103
  const actionsApi = thePConn.getActionsApi();
95
104
  const propName = (thePConn.getStateProps() as any).value;
96
105
 
106
+ const status = useStatus({
107
+ showFieldMessage,
108
+ messageVisibility: messageConfig.visibility,
109
+ validatemessage,
110
+ readOnly
111
+ });
112
+
97
113
  const [checked, setChecked] = useState<any>(false);
98
114
  useEffect(() => {
99
115
  // This update theSelectedButton which will update the UI to show the selected button correctly
@@ -114,11 +130,11 @@ export default function PegaDxilMyBoolean(props: PegaDxilMyBooleanProps) {
114
130
  }, [value]);
115
131
 
116
132
  if (displayMode === 'DISPLAY_ONLY') {
117
- return <FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} />;
133
+ return <FieldValueList name={caption} value={value ? trueLabel : falseLabel} variant={props.variant} />;
118
134
  }
119
135
 
120
136
  if (displayMode === 'STACKED_LARGE_VAL') {
121
- return <FieldValueList name={hideLabel ? '' : caption} value={value ? trueLabel : falseLabel} variant='stacked' />;
137
+ return <FieldValueList name={caption} value={value ? trueLabel : falseLabel} variant='stacked' />;
122
138
  }
123
139
 
124
140
  const handleChange = event => {
@@ -255,7 +271,7 @@ const handleCheckboxChange = (event, item) => {
255
271
 
256
272
  return (
257
273
  <StyledPegaDxilMyBooleanWrapper>
258
- <FormControl variant='standard' required={required} error={status === 'error'}>
274
+ <FormControl variant='standard' required={required} error={status === 'error'} sx={getFormControlSx(status)}>
259
275
  {!hideLabel && <FormLabel component='legend'>{label}</FormLabel>}
260
276
  <FormGroup>{theCheckbox}</FormGroup>
261
277
  <FormHelperText>{helperTextToDisplay}</FormHelperText>
@@ -6,6 +6,8 @@ import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps
6
6
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
7
7
  import { format } from '@pega/react-sdk-components/lib/components/helpers/formatters';
8
8
  import { getCurrencyCharacters, getCurrencyOptions } from '@pega/react-sdk-components/lib/components/field/Currency/currency-utils.js';
9
+ import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
10
+ import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
9
11
 
10
12
  import StyledPegaDxilMyCurrencyWrapper from './styles';
11
13
 
@@ -17,6 +19,12 @@ interface PegaDxilMyCurrencyProps extends PConnFieldProps {
17
19
  // If any, enter additional props that only exist on this componentName
18
20
  currencyISOCode?: string;
19
21
  allowDecimals: boolean;
22
+ showFieldMessage?: boolean;
23
+ messageConfig?: {
24
+ content?: string;
25
+ visibility?: boolean;
26
+ };
27
+ variant?: string;
20
28
  }
21
29
 
22
30
  // Duplicated runtime code from React SDK
@@ -33,7 +41,6 @@ export default function PegaDxilMyCurrency(props: PegaDxilMyCurrencyProps) {
33
41
  disabled,
34
42
  value = '',
35
43
  validatemessage,
36
- status,
37
44
  /* onChange, onBlur, */
38
45
  readOnly,
39
46
  testId,
@@ -42,18 +49,26 @@ export default function PegaDxilMyCurrency(props: PegaDxilMyCurrencyProps) {
42
49
  hideLabel,
43
50
  currencyISOCode = 'USD',
44
51
  placeholder,
45
- allowDecimals
52
+ allowDecimals,
53
+ showFieldMessage,
54
+ messageConfig = {}
46
55
  } = props;
47
56
 
48
57
  const pConn = getPConnect();
49
58
  const actions = pConn.getActionsApi();
50
59
  const propName = (pConn.getStateProps() as any).value;
51
- const helperTextToDisplay = validatemessage || helperText;
60
+ const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
61
+ const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
52
62
  const [values, setValues] = useState(value.toString());
53
63
 
54
- const testProp = {
55
- 'data-test-id': testId
56
- };
64
+ const status = useStatus({
65
+ showFieldMessage,
66
+ messageVisibility: messageConfig.visibility,
67
+ validatemessage,
68
+ readOnly
69
+ });
70
+
71
+ const testProps: any = { 'data-test-id': testId };
57
72
 
58
73
  useEffect(() => {
59
74
  setValues(value.toString());
@@ -78,7 +93,7 @@ export default function PegaDxilMyCurrency(props: PegaDxilMyCurrencyProps) {
78
93
  currencyProp = { prefix: theCurrSym, decimalSeparator: theCurrDec, thousandSeparator: theCurrSep };
79
94
 
80
95
  if (displayMode === 'DISPLAY_ONLY') {
81
- return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} />;
96
+ return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} variant={props.variant} />;
82
97
  }
83
98
 
84
99
  if (displayMode === 'STACKED_LARGE_VAL') {
@@ -113,7 +128,8 @@ export default function PegaDxilMyCurrency(props: PegaDxilMyCurrencyProps) {
113
128
  {...currencyProp}
114
129
  decimalScale={allowDecimals !== false ? 2 : 0}
115
130
  fixedDecimalScale={allowDecimals}
116
- InputProps={{ ...readOnlyProp, inputProps: { ...testProp } }}
131
+ slotProps={{ input: { ...readOnlyProp, inputProps: { ...testProps } } }}
132
+ sx={getFieldSx(status)}
117
133
  customInput={TextField}
118
134
  />
119
135
  </StyledPegaDxilMyCurrencyWrapper>
@@ -1,5 +1,8 @@
1
1
  import { useState } from 'react';
2
2
 
3
+ import { LocalizationProvider } from '@mui/x-date-pickers';
4
+ import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
5
+
3
6
  import type { Meta, StoryObj } from '@storybook/react';
4
7
 
5
8
  import PegaDxilMyDate from './index';
@@ -41,7 +44,11 @@ export const BasePegaDxilMyDate: Story = args => {
41
44
  }
42
45
  };
43
46
 
44
- return <PegaDxilMyDate {...props} {...args} />;
47
+ return (
48
+ <LocalizationProvider dateAdapter={AdapterDayjs}>
49
+ <PegaDxilMyDate {...props} {...args} />
50
+ </LocalizationProvider>
51
+ );
45
52
  };
46
53
 
47
54
  BasePegaDxilMyDate.args = {
@@ -1,7 +1,5 @@
1
1
  import { useEffect, useState } from 'react';
2
2
  import { DatePicker } from '@mui/x-date-pickers/DatePicker';
3
- import { LocalizationProvider } from '@mui/x-date-pickers';
4
- import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
5
3
  import dayjs, { Dayjs } from 'dayjs';
6
4
 
7
5
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
@@ -9,6 +7,8 @@ import { format } from '@pega/react-sdk-components/lib/components/helpers/format
9
7
  import { dateFormatInfoDefault, getDateFormatInfo } from '@pega/react-sdk-components/lib/components/helpers/date-format-utils';
10
8
  import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
11
9
  import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
10
+ import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
11
+ import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
12
12
 
13
13
  import StyledPegaDxilMyDateWrapper from './styles';
14
14
 
@@ -19,6 +19,12 @@ function getFormattedDate(date) {
19
19
 
20
20
  interface PegaDxilMyDateProps extends PConnFieldProps {
21
21
  // If any, enter additional props that only exist on this componentName
22
+ showFieldMessage?: boolean;
23
+ messageConfig?: {
24
+ content?: string;
25
+ visibility?: boolean;
26
+ };
27
+ variant?: string;
22
28
  }
23
29
 
24
30
  // Duplicated runtime code from React SDK
@@ -29,14 +35,22 @@ export default function PegaDxilMyDate(props: PegaDxilMyDateProps) {
29
35
  const TextInput = getComponentFromMap('TextInput');
30
36
  const FieldValueList = getComponentFromMap('FieldValueList');
31
37
 
32
- const { getPConnect, label, required, disabled, value, validatemessage, status, readOnly, testId, helperText, displayMode, hideLabel } = props;
38
+ const { getPConnect, label, required, disabled, value, validatemessage, readOnly, testId, helperText, displayMode, hideLabel, showFieldMessage, messageConfig = {} } = props;
33
39
 
34
40
  const [dateValue, setDateValue] = useState<Dayjs | null>(value ? dayjs(value) : null);
35
41
 
36
42
  const pConn = getPConnect();
37
43
  const actions = pConn.getActionsApi();
38
44
  const propName = (pConn.getStateProps() as any).value;
39
- const helperTextToDisplay = validatemessage || helperText;
45
+ const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
46
+ const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
47
+
48
+ const status = useStatus({
49
+ showFieldMessage,
50
+ messageVisibility: messageConfig.visibility,
51
+ validatemessage,
52
+ readOnly
53
+ });
40
54
 
41
55
  // Start with default dateFormatInfo
42
56
  const dateFormatInfo = dateFormatInfoDefault;
@@ -54,7 +68,7 @@ export default function PegaDxilMyDate(props: PegaDxilMyDateProps) {
54
68
  const formattedDate = format(props.value, 'date', {
55
69
  format: dateFormatInfo.dateFormatString
56
70
  });
57
- return <FieldValueList name={hideLabel ? '' : label} value={formattedDate} />;
71
+ return <FieldValueList name={hideLabel ? '' : label} value={formattedDate} variant={props.variant} />;
58
72
  }
59
73
 
60
74
  if (displayMode === 'STACKED_LARGE_VAL') {
@@ -69,11 +83,7 @@ export default function PegaDxilMyDate(props: PegaDxilMyDateProps) {
69
83
  return <TextInput {...props} />;
70
84
  }
71
85
 
72
- let testProp = {};
73
-
74
- testProp = {
75
- 'data-test-id': testId
76
- };
86
+ const testProps: any = { 'data-test-id': testId };
77
87
 
78
88
  const handleChange = date => {
79
89
  if (date && date.isValid()) {
@@ -84,7 +94,6 @@ export default function PegaDxilMyDate(props: PegaDxilMyDateProps) {
84
94
 
85
95
  return (
86
96
  <StyledPegaDxilMyDateWrapper>
87
- <LocalizationProvider dateAdapter={AdapterDayjs}>
88
97
  <DatePicker
89
98
  label={label}
90
99
  disabled={disabled}
@@ -98,12 +107,12 @@ export default function PegaDxilMyDate(props: PegaDxilMyDateProps) {
98
107
  error: status === 'error',
99
108
  helperText: helperTextToDisplay,
100
109
  size: 'small',
101
- InputProps: { ...testProp }
110
+ InputProps: { ...testProps },
111
+ sx: getFieldSx(status)
102
112
  }
103
113
  }}
104
114
  onChange={handleChange}
105
115
  />
106
- </LocalizationProvider>
107
116
  </StyledPegaDxilMyDateWrapper>
108
117
  );
109
118
  }
@@ -1,4 +1,8 @@
1
1
  import { useState } from 'react';
2
+
3
+ import { LocalizationProvider } from '@mui/x-date-pickers';
4
+ import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
5
+
2
6
  import type { Meta, StoryObj } from '@storybook/react';
3
7
 
4
8
  import PegaDxilMyDateTime from './index';
@@ -40,7 +44,11 @@ export const BasePegaDxilMyDateTime: Story = args => {
40
44
  }
41
45
  };
42
46
 
43
- return <PegaDxilMyDateTime {...props} {...args} />;
47
+ return (
48
+ <LocalizationProvider dateAdapter={AdapterDayjs}>
49
+ <PegaDxilMyDateTime {...props} {...args} />
50
+ </LocalizationProvider>
51
+ );
44
52
  };
45
53
 
46
54
  BasePegaDxilMyDateTime.args = {
@@ -1,7 +1,5 @@
1
1
  import { useEffect, useState } from 'react';
2
2
  import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';
3
- import { LocalizationProvider } from '@mui/x-date-pickers';
4
- import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
5
3
  import dayjs, { Dayjs } from 'dayjs';
6
4
  import DateFormatter from '@pega/react-sdk-components/lib/components/helpers/formatters/Date';
7
5
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
@@ -9,11 +7,19 @@ import { format } from '@pega/react-sdk-components/lib/components/helpers/format
9
7
  import { dateFormatInfoDefault, getDateFormatInfo } from '@pega/react-sdk-components/lib/components/helpers/date-format-utils';
10
8
  import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
11
9
  import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
10
+ import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
11
+ import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
12
12
 
13
13
  import StyledPegaDxilMyDateTimeWrapper from './styles';
14
14
 
15
15
  interface PegaDxilMyDateTimeProps extends PConnFieldProps {
16
16
  // If any, enter additional props that only exist on this componentName
17
+ showFieldMessage?: boolean;
18
+ messageConfig?: {
19
+ content?: string;
20
+ visibility?: boolean;
21
+ };
22
+ variant?: string;
17
23
  }
18
24
 
19
25
  // Duplicated runtime code from React SDK
@@ -24,7 +30,7 @@ export default function PegaDxilMyDateTime(props: PegaDxilMyDateTimeProps) {
24
30
  const TextInput = getComponentFromMap('TextInput');
25
31
  const FieldValueList = getComponentFromMap('FieldValueList');
26
32
 
27
- const { getPConnect, label, required, disabled, value = '', validatemessage, status, readOnly, testId, helperText, displayMode, hideLabel } = props;
33
+ const { getPConnect, label, required, disabled, value = '', validatemessage, readOnly, testId, helperText, displayMode, hideLabel, showFieldMessage, messageConfig = {} } = props;
28
34
 
29
35
  const environmentInfo = PCore.getEnvironmentInfo();
30
36
  const timezone = environmentInfo && environmentInfo.getTimeZone();
@@ -34,7 +40,15 @@ export default function PegaDxilMyDateTime(props: PegaDxilMyDateTimeProps) {
34
40
  const pConn = getPConnect();
35
41
  const actions = pConn.getActionsApi();
36
42
  const propName = (pConn.getStateProps() as any).value;
37
- const helperTextToDisplay = validatemessage || helperText;
43
+ const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
44
+ const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
45
+
46
+ const status = useStatus({
47
+ showFieldMessage,
48
+ messageVisibility: messageConfig.visibility,
49
+ validatemessage,
50
+ readOnly
51
+ });
38
52
 
39
53
  // Start with default dateFormatInfo
40
54
  const dateFormatInfo = dateFormatInfoDefault;
@@ -52,7 +66,7 @@ export default function PegaDxilMyDateTime(props: PegaDxilMyDateTimeProps) {
52
66
  const formattedDateTime = format(props.value, 'datetime', {
53
67
  format: `${dateFormatInfo.dateFormatString} hh:mm a`
54
68
  });
55
- return <FieldValueList name={hideLabel ? '' : label} value={formattedDateTime} />;
69
+ return <FieldValueList name={hideLabel ? '' : label} value={formattedDateTime} variant={props.variant} />;
56
70
  }
57
71
 
58
72
  if (displayMode === 'STACKED_LARGE_VAL') {
@@ -67,14 +81,10 @@ export default function PegaDxilMyDateTime(props: PegaDxilMyDateTimeProps) {
67
81
  return <TextInput {...props} value={formattedDateTime} />;
68
82
  }
69
83
 
70
- let testProp = {};
71
-
72
- testProp = {
73
- 'data-test-id': testId
74
- };
84
+ const testProps: any = { 'data-test-id': testId };
75
85
 
76
86
  const handleChange = date => {
77
- const timeZoneDateTime = dayjs.tz(date.format('YYYY-MM-DDTHH:mm:ss'), timezone);
87
+ const timeZoneDateTime = (dayjs as any).tz(date.format('YYYY-MM-DDTHH:mm:ss'), timezone);
78
88
  const changeValue = timeZoneDateTime && timeZoneDateTime.isValid() ? timeZoneDateTime.toISOString() : '';
79
89
  setDateValue(timeZoneDateTime);
80
90
  handleEvent(actions, 'changeNblur', propName, changeValue);
@@ -87,7 +97,6 @@ export default function PegaDxilMyDateTime(props: PegaDxilMyDateTimeProps) {
87
97
 
88
98
  return (
89
99
  <StyledPegaDxilMyDateTimeWrapper>
90
- <LocalizationProvider dateAdapter={AdapterDayjs}>
91
100
  <DateTimePicker
92
101
  // fullWidth
93
102
  // autoOk
@@ -107,11 +116,11 @@ export default function PegaDxilMyDateTime(props: PegaDxilMyDateTimeProps) {
107
116
  error: status === 'error',
108
117
  helperText: helperTextToDisplay,
109
118
  size: 'small',
110
- InputProps: { ...testProp }
119
+ InputProps: { ...testProps },
120
+ sx: getFieldSx(status)
111
121
  }
112
122
  }}
113
123
  />
114
- </LocalizationProvider>
115
124
  </StyledPegaDxilMyDateTimeWrapper>
116
125
  );
117
126
  }
@@ -6,6 +6,8 @@ import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event
6
6
  import { format } from '@pega/react-sdk-components/lib/components/helpers/formatters';
7
7
  import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
8
8
  import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
9
+ import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
10
+ import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
9
11
 
10
12
  import StyledPegaDxilMyDecimalWrapper from './styles';
11
13
 
@@ -19,6 +21,12 @@ interface PegaDxilMyDecimalProps extends PConnFieldProps {
19
21
  decimalPrecision?: number;
20
22
  showGroupSeparators?: boolean;
21
23
  formatter?: string;
24
+ showFieldMessage?: boolean;
25
+ messageConfig?: {
26
+ content?: string;
27
+ visibility?: boolean;
28
+ };
29
+ variant?: string;
22
30
  }
23
31
 
24
32
  // Duplicated runtime code from React SDK
@@ -35,7 +43,6 @@ export default function PegaDxilMyDecimal(props: PegaDxilMyDecimalProps) {
35
43
  disabled,
36
44
  value = '',
37
45
  validatemessage,
38
- status,
39
46
  /* onChange, onBlur, */
40
47
  readOnly,
41
48
  helperText,
@@ -46,7 +53,9 @@ export default function PegaDxilMyDecimal(props: PegaDxilMyDecimalProps) {
46
53
  showGroupSeparators,
47
54
  testId,
48
55
  placeholder,
49
- formatter
56
+ formatter,
57
+ showFieldMessage,
58
+ messageConfig = {}
50
59
  } = props;
51
60
 
52
61
  const [values, setValues] = useState(value.toString());
@@ -54,7 +63,15 @@ export default function PegaDxilMyDecimal(props: PegaDxilMyDecimalProps) {
54
63
  const pConn = getPConnect();
55
64
  const actions = pConn.getActionsApi();
56
65
  const propName = (pConn.getStateProps() as any).value;
57
- const helperTextToDisplay = validatemessage || helperText;
66
+ const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
67
+ const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
68
+
69
+ const status = useStatus({
70
+ showFieldMessage,
71
+ messageVisibility: messageConfig.visibility,
72
+ validatemessage,
73
+ readOnly
74
+ });
58
75
 
59
76
  const theSymbols = getCurrencyCharacters(currencyISOCode);
60
77
  const theCurrDec = theSymbols.theDecimalIndicator;
@@ -81,16 +98,14 @@ export default function PegaDxilMyDecimal(props: PegaDxilMyDecimalProps) {
81
98
  }
82
99
 
83
100
  if (displayMode === 'DISPLAY_ONLY') {
84
- return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} />;
101
+ return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} variant={props.variant} />;
85
102
  }
86
103
 
87
104
  if (displayMode === 'STACKED_LARGE_VAL') {
88
105
  return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} variant='stacked' />;
89
106
  }
90
107
 
91
- const testProp = {
92
- 'data-test-id': testId
93
- };
108
+ const testProps: any = { 'data-test-id': testId };
94
109
 
95
110
  function decimalOnBlur() {
96
111
  handleEvent(actions, 'changeNblur', propName, values);
@@ -123,7 +138,8 @@ export default function PegaDxilMyDecimal(props: PegaDxilMyDecimalProps) {
123
138
  decimalSeparator={theCurrDec}
124
139
  thousandSeparator={showGroupSeparators ? theCurrSep : ''}
125
140
  decimalScale={readOnly && formatter === 'Currency' ? undefined : decimalPrecision}
126
- InputProps={{ ...readOnlyProp, inputProps: { ...testProp } }}
141
+ slotProps={{ input: { ...readOnlyProp, inputProps: { ...testProps } } }}
142
+ sx={getFieldSx(status)}
127
143
  customInput={TextField}
128
144
  />
129
145
  </StyledPegaDxilMyDecimalWrapper>
@@ -5,11 +5,19 @@ import MailOutlineIcon from '@mui/icons-material/MailOutline';
5
5
  import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
6
6
  import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
7
7
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
8
+ import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
9
+ import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
8
10
 
9
11
  import StyledPegaDxilMyEmailWrapper from './styles';
10
12
 
11
13
  interface PegaDxilMyEmailProps extends PConnFieldProps {
12
14
  // If any, enter additional props that only exist on this componentName
15
+ showFieldMessage?: boolean;
16
+ messageConfig?: {
17
+ content?: string;
18
+ visibility?: boolean;
19
+ };
20
+ variant?: string;
13
21
  }
14
22
 
15
23
  // Duplicated runtime code from React SDK
@@ -27,20 +35,28 @@ export default function PegaDxilMyEmail(props: PegaDxilMyEmailProps) {
27
35
  disabled,
28
36
  value = '',
29
37
  validatemessage,
30
- status,
31
38
  readOnly,
32
39
  testId,
33
40
  helperText,
34
41
  displayMode,
35
42
  hideLabel,
36
- placeholder
43
+ placeholder,
44
+ showFieldMessage,
45
+ messageConfig = {}
37
46
  } = props;
38
47
 
39
48
  const pConn = getPConnect();
40
49
  const actions = pConn.getActionsApi();
41
50
  const propName = (pConn.getStateProps() as any).value;
42
-
43
- const helperTextToDisplay = validatemessage || helperText;
51
+ const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
52
+ const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
53
+
54
+ const status = useStatus({
55
+ showFieldMessage,
56
+ messageVisibility: messageConfig.visibility,
57
+ validatemessage,
58
+ readOnly
59
+ });
44
60
 
45
61
  const [inputValue, setInputValue] = useState('');
46
62
 
@@ -49,22 +65,14 @@ export default function PegaDxilMyEmail(props: PegaDxilMyEmailProps) {
49
65
  }, [value]);
50
66
 
51
67
  if (displayMode === 'DISPLAY_ONLY') {
52
- return <FieldValueList name={hideLabel ? '' : label} value={value} />;
53
- }
54
-
55
- if (displayMode === 'STACKED_LARGE_VAL') {
56
- return <FieldValueList name={hideLabel ? '' : label} value={value} variant='stacked' />;
68
+ return <FieldValueList name={hideLabel ? '' : label} value={value} variant={props.variant} />;
57
69
  }
58
70
 
59
71
  if (readOnly) {
60
72
  return <TextInput {...props} />;
61
73
  }
62
74
 
63
- let testProp = {};
64
-
65
- testProp = {
66
- 'data-test-id': testId
67
- };
75
+ const testProps: any = { 'data-test-id': testId };
68
76
 
69
77
  function handleChange(event) {
70
78
  // update internal value
@@ -91,14 +99,17 @@ export default function PegaDxilMyEmail(props: PegaDxilMyEmailProps) {
91
99
  label={label}
92
100
  value={inputValue}
93
101
  type='email'
94
- InputProps={{
95
- startAdornment: (
96
- <InputAdornment position='start'>
97
- <MailOutlineIcon />
98
- </InputAdornment>
99
- ),
100
- inputProps: { ...testProp }
102
+ slotProps={{
103
+ input: {
104
+ startAdornment: (
105
+ <InputAdornment position='start'>
106
+ <MailOutlineIcon />
107
+ </InputAdornment>
108
+ ),
109
+ inputProps: { ...testProps }
110
+ }
101
111
  }}
112
+ sx={getFieldSx(status)}
102
113
  />
103
114
  </StyledPegaDxilMyEmailWrapper>
104
115
  );
@@ -99,7 +99,7 @@ export default function PegaDxilMyIconButtonUrl(props: PegaDxilMyIconButtonUrlPr
99
99
  console.log(error);
100
100
  });
101
101
  }
102
- }, [PConnect, countryCode, showTable]);
102
+ }, [countryCode, showTable]);
103
103
 
104
104
  // when DISPLAY_ONLY, in this example we will just show the URL.
105
105
  if (displayMode === 'DISPLAY_ONLY') {
@@ -116,7 +116,7 @@ export default function PegaDxilMyIconButtonUrl(props: PegaDxilMyIconButtonUrlPr
116
116
  <StyledPegaDxilMyIconButtonUrlWrapper>
117
117
  <div style={{ display: 'flex', alignItems: 'center' }} data-testid={testId}>
118
118
  <ArrowForwardIcon />
119
- <TextContent displayAs='body' content={localLabel} />
119
+ <TextContent displayAs='Paragraph' content={localLabel} />
120
120
  <Tooltip title={PConnect.getLocalizedValue('Click to show/hide state list', '', '')}>
121
121
  <IconButton onClick={showHideTable} style={{ padding: '0 0.25rem' }}>
122
122
  <FormatListNumberedIcon />