@pega/dx-component-builder-sdk 25.1.16 → 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 (208) 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/Integer/index.tsx.mustache +26 -14
  18. package/src/tasks/create/templates/SDK-React/field/Picklist/index.tsx.mustache +34 -8
  19. package/src/tasks/create/templates/SDK-React/field/Picklist-Autocomplete/index.tsx.mustache +25 -9
  20. package/src/tasks/create/templates/SDK-React/field/Picklist-RadioButtons/index.tsx.mustache +21 -5
  21. package/src/tasks/create/templates/SDK-React/field/Text/index.tsx.mustache +25 -14
  22. package/src/tasks/create/templates/SDK-React/field/Text-Email/index.tsx.mustache +32 -21
  23. package/src/tasks/create/templates/SDK-React/field/Text-Input/index.tsx.mustache +25 -10
  24. package/src/tasks/create/templates/SDK-React/field/Text-Paragraph/index.tsx.mustache +26 -14
  25. package/src/tasks/create/templates/SDK-React/field/Text-Phone/index.tsx.mustache +28 -10
  26. package/src/tasks/create/templates/SDK-React/field/Text-URL/index.tsx.mustache +26 -14
  27. package/src/tasks/create/templates/SDK-React/field/TimeOfDay/demo.stories.tsx.mustache +9 -1
  28. package/src/tasks/create/templates/SDK-React/field/TimeOfDay/index.tsx.mustache +22 -17
  29. package/src/tasks/create/templates/SDK-React/template/FORM/DefaultForm.css +82 -2
  30. package/src/tasks/create/templates/SDK-React/template/FORM/index.tsx.mustache +51 -11
  31. package/src/tasks/create/templates/SDK-React/widget/CASE/index.tsx.mustache +19 -15
  32. package/src/tasks/create/templates/SDK-React/widget/PAGE/index.tsx.mustache +2 -167
  33. package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/index.tsx.mustache +72 -15
  34. package/tests/assets/sdk-r/components/create/custom-sdk/field/Pega_DXIL_MyTestText/index.tsx +25 -14
  35. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/AlertBanner/AlertBanner.css +46 -0
  36. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/AlertBanner/AlertBanner.tsx +37 -20
  37. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.css +14 -0
  38. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +57 -5
  39. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/FieldGroup/FieldGroup.tsx +18 -11
  40. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/FieldGroupList/FieldGroupList.tsx +1 -1
  41. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/FieldValueList/FieldValueList.tsx +19 -4
  42. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/Operator/Operator.tsx +125 -74
  43. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/RichTextEditor/RichTextEditor.tsx +184 -90
  44. package/tests/assets/sdk-r/components/create/override-sdk/field/AutoComplete/AutoComplete.tsx +372 -26
  45. package/tests/assets/sdk-r/components/create/override-sdk/field/Checkbox/Checkbox.tsx +22 -6
  46. package/tests/assets/sdk-r/components/create/override-sdk/field/Currency/Currency.tsx +22 -4
  47. package/tests/assets/sdk-r/components/create/override-sdk/field/Date/Date.tsx +35 -4
  48. package/tests/assets/sdk-r/components/create/override-sdk/field/DateTime/DateTime.tsx +35 -4
  49. package/tests/assets/sdk-r/components/create/override-sdk/field/Decimal/Decimal.tsx +22 -4
  50. package/tests/assets/sdk-r/components/create/override-sdk/field/Dropdown/Dropdown.tsx +48 -16
  51. package/tests/assets/sdk-r/components/create/override-sdk/field/Email/Email.tsx +21 -4
  52. package/tests/assets/sdk-r/components/create/override-sdk/field/Group/Group.tsx +28 -4
  53. package/tests/assets/sdk-r/components/create/override-sdk/field/Integer/Integer.tsx +21 -4
  54. package/tests/assets/sdk-r/components/create/override-sdk/field/Multiselect/Multiselect.tsx +42 -20
  55. package/tests/assets/sdk-r/components/create/override-sdk/field/Multiselect/utils.ts +5 -3
  56. package/tests/assets/sdk-r/components/create/override-sdk/field/ObjectReference/ObjectReference.tsx +554 -66
  57. package/tests/assets/sdk-r/components/create/override-sdk/field/ObjectReference/utils.ts +108 -20
  58. package/tests/assets/sdk-r/components/create/override-sdk/field/Percentage/Percentage.tsx +22 -4
  59. package/tests/assets/sdk-r/components/create/override-sdk/field/Phone/Phone.tsx +23 -4
  60. package/tests/assets/sdk-r/components/create/override-sdk/field/RadioButtons/RadioButtons.tsx +20 -4
  61. package/tests/assets/sdk-r/components/create/override-sdk/field/RichText/RichText.css +0 -79
  62. package/tests/assets/sdk-r/components/create/override-sdk/field/RichText/RichText.tsx +1 -1
  63. package/tests/assets/sdk-r/components/create/override-sdk/field/SelectableCard/SelectableCard.tsx +25 -10
  64. package/tests/assets/sdk-r/components/create/override-sdk/field/TextArea/TextArea.tsx +22 -4
  65. package/tests/assets/sdk-r/components/create/override-sdk/field/TextInput/TextInput.tsx +21 -4
  66. package/tests/assets/sdk-r/components/create/override-sdk/field/Time/Time.tsx +35 -4
  67. package/tests/assets/sdk-r/components/create/override-sdk/field/URL/URL.tsx +22 -4
  68. package/tests/assets/sdk-r/components/create/override-sdk/field/UserReference/UserReference.tsx +10 -6
  69. package/tests/assets/sdk-r/components/create/override-sdk/infra/Assignment/Assignment.tsx +36 -14
  70. package/tests/assets/sdk-r/components/create/override-sdk/infra/Assignment/useValidationBanner.ts +29 -0
  71. package/tests/assets/sdk-r/components/create/override-sdk/infra/DeferLoad/DeferLoad.tsx +31 -10
  72. package/tests/assets/sdk-r/components/create/override-sdk/infra/FlowContainer/FlowContainer.tsx +5 -6
  73. package/tests/assets/sdk-r/components/create/override-sdk/infra/LeftAlignVerticalTabs/LeftAlignVerticalTabs.tsx +1 -1
  74. package/tests/assets/sdk-r/components/create/override-sdk/infra/ModalViewContainer/DataViewActionButtons/DataViewActionButtons.tsx +138 -0
  75. package/tests/assets/sdk-r/components/create/override-sdk/infra/ModalViewContainer/ModalViewContainer.tsx +110 -64
  76. package/tests/assets/sdk-r/components/create/override-sdk/infra/MultiStep/MultiStep.css +63 -0
  77. package/tests/assets/sdk-r/components/create/override-sdk/infra/MultiStep/MultiStep.tsx +23 -52
  78. package/tests/assets/sdk-r/components/create/override-sdk/infra/NavBar/NavBar.tsx +8 -3
  79. package/tests/assets/sdk-r/components/create/override-sdk/infra/Reference/Reference.tsx +5 -0
  80. package/tests/assets/sdk-r/components/create/override-sdk/infra/RootContainer/RootContainer.tsx +4 -5
  81. package/tests/assets/sdk-r/components/create/override-sdk/infra/View/View.css +1 -0
  82. package/tests/assets/sdk-r/components/create/override-sdk/infra/View/View.tsx +10 -17
  83. package/tests/assets/sdk-r/components/create/override-sdk/infra/ViewContainer/ViewContainer.tsx +8 -10
  84. package/tests/assets/sdk-r/components/create/override-sdk/template/AppShell/AppShell.css +0 -4
  85. package/tests/assets/sdk-r/components/create/override-sdk/template/AppShell/AppShell.tsx +7 -1
  86. package/tests/assets/sdk-r/components/create/override-sdk/template/CaseSummary/CaseSummary.tsx +9 -42
  87. package/tests/assets/sdk-r/components/create/override-sdk/template/CaseView/CaseView.tsx +8 -2
  88. package/tests/assets/sdk-r/components/create/override-sdk/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +58 -3
  89. package/tests/assets/sdk-r/components/create/override-sdk/template/DataReference/DataReference.tsx +56 -33
  90. package/tests/assets/sdk-r/components/create/override-sdk/template/DataReference/SearchForm.tsx +3 -4
  91. package/tests/assets/sdk-r/components/create/override-sdk/template/DefaultForm/DefaultForm.css +71 -0
  92. package/tests/assets/sdk-r/components/create/override-sdk/template/DefaultForm/DefaultForm.tsx +45 -9
  93. package/tests/assets/sdk-r/components/create/override-sdk/template/FieldGroupTemplate/FieldGroupTemplate.tsx +10 -3
  94. package/tests/assets/sdk-r/components/create/override-sdk/template/ListView/ListView.tsx +139 -59
  95. package/tests/assets/sdk-r/components/create/override-sdk/template/ListView/hooks.ts +80 -13
  96. package/tests/assets/sdk-r/components/create/override-sdk/template/ListView/utils.ts +13 -3
  97. package/tests/assets/sdk-r/components/create/override-sdk/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +16 -1
  98. package/tests/assets/sdk-r/components/create/override-sdk/template/SimpleTableManual/SimpleTableManual.tsx +167 -93
  99. package/tests/assets/sdk-r/components/create/override-sdk/template/SimpleTableSelect/SimpleTableSelect.tsx +71 -56
  100. package/tests/assets/sdk-r/components/create/override-sdk/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +12 -7
  101. package/tests/assets/sdk-r/components/create/override-sdk/widget/Attachment/Attachment.tsx +119 -26
  102. package/tests/assets/sdk-r/components/create/override-sdk/widget/Attachment/AttachmentUtils.ts +1 -1
  103. package/tests/assets/sdk-r/components/create/override-sdk/widget/CaseHistory/CaseHistory.tsx +16 -12
  104. package/tests/assets/sdk-r/components/create/override-sdk/widget/FileUtility/FileUtility.tsx +40 -28
  105. package/tests/assets/sdk-r/components/create/override-sdk/widget/ToDo/ToDo.tsx +14 -6
  106. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MySearchbox/utils.ts +1 -1
  107. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/DetailsRender.tsx +1 -1
  108. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyForm/DetailsRender.tsx +1 -1
  109. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/DetailsRender.tsx +1 -1
  110. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnForm/DetailsRender.tsx +1 -1
  111. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyBoolean/index.tsx +22 -6
  112. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyCurrency/index.tsx +24 -8
  113. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDate/demo.stories.tsx +8 -1
  114. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDate/index.tsx +22 -13
  115. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDateTime/demo.stories.tsx +9 -1
  116. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDateTime/index.tsx +23 -14
  117. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDecimal/index.tsx +24 -8
  118. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyEmail/index.tsx +32 -21
  119. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyIconButtonURL/index.tsx +2 -2
  120. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyInteger/index.tsx +26 -14
  121. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyParagraph/index.tsx +26 -14
  122. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPercentage/index.tsx +24 -10
  123. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPhone/index.tsx +25 -10
  124. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPicklist/index.tsx +34 -8
  125. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyRadiobuttons/index.tsx +21 -5
  126. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MySearchbox/index.tsx +22 -9
  127. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyText/index.tsx +25 -14
  128. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTextInput/index.tsx +25 -10
  129. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTimeOfDay/demo.stories.tsx +9 -1
  130. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTimeOfDay/index.tsx +22 -17
  131. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyURL/index.tsx +26 -14
  132. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyForm/DefaultForm.css +82 -2
  133. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyForm/index.tsx +45 -8
  134. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyCaseWidget/index.tsx +19 -15
  135. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageCaseWidget/index.tsx +66 -15
  136. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageWidget/index.tsx +2 -167
  137. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/AlertBanner/AlertBanner.css +46 -0
  138. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/AlertBanner/AlertBanner.tsx +37 -20
  139. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.css +14 -0
  140. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +57 -5
  141. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/FieldGroup/FieldGroup.tsx +18 -11
  142. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/FieldGroupList/FieldGroupList.tsx +1 -1
  143. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/FieldValueList/FieldValueList.tsx +19 -4
  144. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/Operator/Operator.tsx +125 -74
  145. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/RichTextEditor/RichTextEditor.tsx +184 -90
  146. package/tests/assets/sdk-r/components/createAll/override-sdk/field/AutoComplete/AutoComplete.tsx +372 -26
  147. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Checkbox/Checkbox.tsx +22 -6
  148. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Currency/Currency.tsx +22 -4
  149. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Date/Date.tsx +35 -4
  150. package/tests/assets/sdk-r/components/createAll/override-sdk/field/DateTime/DateTime.tsx +35 -4
  151. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Decimal/Decimal.tsx +22 -4
  152. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Dropdown/Dropdown.tsx +48 -16
  153. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Email/Email.tsx +21 -4
  154. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Group/Group.tsx +28 -4
  155. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Integer/Integer.tsx +21 -4
  156. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Multiselect/Multiselect.tsx +42 -20
  157. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Multiselect/utils.ts +5 -3
  158. package/tests/assets/sdk-r/components/createAll/override-sdk/field/ObjectReference/ObjectReference.tsx +554 -66
  159. package/tests/assets/sdk-r/components/createAll/override-sdk/field/ObjectReference/utils.ts +108 -20
  160. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Percentage/Percentage.tsx +22 -4
  161. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Phone/Phone.tsx +23 -4
  162. package/tests/assets/sdk-r/components/createAll/override-sdk/field/RadioButtons/RadioButtons.tsx +20 -4
  163. package/tests/assets/sdk-r/components/createAll/override-sdk/field/RichText/RichText.css +0 -79
  164. package/tests/assets/sdk-r/components/createAll/override-sdk/field/RichText/RichText.tsx +1 -1
  165. package/tests/assets/sdk-r/components/createAll/override-sdk/field/SelectableCard/SelectableCard.tsx +25 -10
  166. package/tests/assets/sdk-r/components/createAll/override-sdk/field/TextArea/TextArea.tsx +22 -4
  167. package/tests/assets/sdk-r/components/createAll/override-sdk/field/TextInput/TextInput.tsx +21 -4
  168. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Time/Time.tsx +35 -4
  169. package/tests/assets/sdk-r/components/createAll/override-sdk/field/URL/URL.tsx +22 -4
  170. package/tests/assets/sdk-r/components/createAll/override-sdk/field/UserReference/UserReference.tsx +10 -6
  171. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/Assignment/Assignment.tsx +36 -14
  172. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/Assignment/useValidationBanner.ts +29 -0
  173. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/DeferLoad/DeferLoad.tsx +31 -10
  174. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/FlowContainer/FlowContainer.tsx +5 -6
  175. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/LeftAlignVerticalTabs/LeftAlignVerticalTabs.tsx +1 -1
  176. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/ModalViewContainer/DataViewActionButtons/DataViewActionButtons.tsx +138 -0
  177. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/ModalViewContainer/ModalViewContainer.tsx +110 -64
  178. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/MultiStep/MultiStep.css +63 -0
  179. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/MultiStep/MultiStep.tsx +23 -52
  180. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/NavBar/NavBar.tsx +8 -3
  181. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/Reference/Reference.tsx +5 -0
  182. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/RootContainer/RootContainer.tsx +4 -5
  183. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/View/View.css +1 -0
  184. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/View/View.tsx +10 -17
  185. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/ViewContainer/ViewContainer.tsx +8 -10
  186. package/tests/assets/sdk-r/components/createAll/override-sdk/template/AppShell/AppShell.css +0 -4
  187. package/tests/assets/sdk-r/components/createAll/override-sdk/template/AppShell/AppShell.tsx +7 -1
  188. package/tests/assets/sdk-r/components/createAll/override-sdk/template/CaseSummary/CaseSummary.tsx +9 -42
  189. package/tests/assets/sdk-r/components/createAll/override-sdk/template/CaseView/CaseView.tsx +8 -2
  190. package/tests/assets/sdk-r/components/createAll/override-sdk/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +58 -3
  191. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DataReference/DataReference.tsx +56 -33
  192. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DataReference/SearchForm.tsx +3 -4
  193. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DefaultForm/DefaultForm.css +71 -0
  194. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DefaultForm/DefaultForm.tsx +45 -9
  195. package/tests/assets/sdk-r/components/createAll/override-sdk/template/FieldGroupTemplate/FieldGroupTemplate.tsx +10 -3
  196. package/tests/assets/sdk-r/components/createAll/override-sdk/template/ListView/ListView.tsx +139 -59
  197. package/tests/assets/sdk-r/components/createAll/override-sdk/template/ListView/hooks.ts +80 -13
  198. package/tests/assets/sdk-r/components/createAll/override-sdk/template/ListView/utils.ts +13 -3
  199. package/tests/assets/sdk-r/components/createAll/override-sdk/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +16 -1
  200. package/tests/assets/sdk-r/components/createAll/override-sdk/template/SimpleTableManual/SimpleTableManual.tsx +167 -93
  201. package/tests/assets/sdk-r/components/createAll/override-sdk/template/SimpleTableSelect/SimpleTableSelect.tsx +71 -56
  202. package/tests/assets/sdk-r/components/createAll/override-sdk/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +12 -7
  203. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/Attachment/Attachment.tsx +119 -26
  204. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/Attachment/AttachmentUtils.ts +1 -1
  205. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/CaseHistory/CaseHistory.tsx +16 -12
  206. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/FileUtility/FileUtility.tsx +40 -28
  207. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/ToDo/ToDo.tsx +14 -6
  208. package/SECURITY.md +0 -10
@@ -4,12 +4,20 @@ import { TextField } from '@mui/material';
4
4
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
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
+ import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
8
+ import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
7
9
 
8
10
  import StyledPegaDxilMyTextWrapper from './styles';
9
11
 
10
12
  interface PegaDxilMyTextProps extends PConnFieldProps {
11
13
  // If any, enter additional props that only exist on this componentName
12
14
  fieldMetadata?: any;
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
@@ -26,7 +34,6 @@ export default function PegaDxilMyText(props: PegaDxilMyTextProps) {
26
34
  disabled,
27
35
  value = '',
28
36
  validatemessage,
29
- status,
30
37
  /* onChange, onBlur */
31
38
  readOnly,
32
39
  testId,
@@ -34,14 +41,23 @@ export default function PegaDxilMyText(props: PegaDxilMyTextProps) {
34
41
  helperText,
35
42
  displayMode,
36
43
  hideLabel,
37
- placeholder
44
+ placeholder,
45
+ showFieldMessage,
46
+ messageConfig = {}
38
47
  } = props;
39
48
 
40
49
  const pConn = getPConnect();
41
50
  const actions = pConn.getActionsApi();
42
51
  const propName = (pConn.getStateProps() as any).value;
52
+ const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
53
+ const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
43
54
 
44
- const helperTextToDisplay = validatemessage || helperText;
55
+ const status = useStatus({
56
+ showFieldMessage,
57
+ messageVisibility: messageConfig.visibility,
58
+ validatemessage,
59
+ readOnly
60
+ });
45
61
 
46
62
  const [inputValue, setInputValue] = useState('');
47
63
  const maxLength = fieldMetadata?.maxLength;
@@ -53,22 +69,14 @@ export default function PegaDxilMyText(props: PegaDxilMyTextProps) {
53
69
  }, [value]);
54
70
 
55
71
  if (displayMode === 'DISPLAY_ONLY') {
56
- return <FieldValueList name={hideLabel ? '' : label} value={value} />;
57
- }
58
-
59
- if (displayMode === 'STACKED_LARGE_VAL') {
60
- return <FieldValueList name={hideLabel ? '' : label} value={value} variant='stacked' />;
72
+ return <FieldValueList name={hideLabel ? '' : label} value={value} variant={props.variant} />;
61
73
  }
62
74
 
63
75
  if (readOnly) {
64
76
  readOnlyProp = { readOnly: true };
65
77
  }
66
78
 
67
- let testProp = {};
68
-
69
- testProp = {
70
- 'data-test-id': testId
71
- };
79
+ const testProps: any = { 'data-test-id': testId };
72
80
 
73
81
  function handleChange(event) {
74
82
  // update internal value
@@ -94,7 +102,10 @@ export default function PegaDxilMyText(props: PegaDxilMyTextProps) {
94
102
  error={status === 'error'}
95
103
  label={label}
96
104
  value={inputValue}
97
- InputProps={{ ...readOnlyProp, inputProps: { maxLength, ...testProp } }}
105
+ slotProps={{
106
+ input: { ...readOnlyProp, inputProps: { maxLength, ...testProps } }
107
+ }}
108
+ sx={getFieldSx(status)}
98
109
  />
99
110
  </StyledPegaDxilMyTextWrapper>
100
111
  );
@@ -4,12 +4,20 @@ import { TextField } from '@mui/material';
4
4
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
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
+ import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
8
+ import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
7
9
 
8
10
  import StyledPegaDxilMyTextInputWrapper from './styles';
9
11
 
10
12
  interface PegaDxilMyTextInputProps extends PConnFieldProps {
11
13
  // If any, enter additional props that only exist on this componentName
12
14
  fieldMetadata?: any;
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
@@ -26,7 +34,6 @@ export default function PegaDxilMyTextInput(props: PegaDxilMyTextInputProps) {
26
34
  disabled,
27
35
  value = '',
28
36
  validatemessage,
29
- status,
30
37
  /* onChange, onBlur */
31
38
  readOnly,
32
39
  testId,
@@ -34,14 +41,23 @@ export default function PegaDxilMyTextInput(props: PegaDxilMyTextInputProps) {
34
41
  helperText,
35
42
  displayMode,
36
43
  hideLabel,
37
- placeholder
44
+ placeholder,
45
+ showFieldMessage,
46
+ messageConfig = {}
38
47
  } = props;
39
48
 
40
49
  const pConn = getPConnect();
41
50
  const actions = pConn.getActionsApi();
42
51
  const propName = (pConn.getStateProps() as any).value;
52
+ const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
53
+ const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
43
54
 
44
- const helperTextToDisplay = validatemessage || helperText;
55
+ const status = useStatus({
56
+ showFieldMessage,
57
+ messageVisibility: messageConfig.visibility,
58
+ validatemessage,
59
+ readOnly
60
+ });
45
61
 
46
62
  const [inputValue, setInputValue] = useState('');
47
63
  const maxLength = fieldMetadata?.maxLength;
@@ -53,7 +69,7 @@ export default function PegaDxilMyTextInput(props: PegaDxilMyTextInputProps) {
53
69
  }, [value]);
54
70
 
55
71
  if (displayMode === 'DISPLAY_ONLY') {
56
- return <FieldValueList name={hideLabel ? '' : label} value={value} />;
72
+ return <FieldValueList name={hideLabel ? '' : label} value={value} variant={props.variant} />;
57
73
  }
58
74
 
59
75
  if (displayMode === 'STACKED_LARGE_VAL') {
@@ -64,11 +80,7 @@ export default function PegaDxilMyTextInput(props: PegaDxilMyTextInputProps) {
64
80
  readOnlyProp = { readOnly: true };
65
81
  }
66
82
 
67
- let testProp = {};
68
-
69
- testProp = {
70
- 'data-test-id': testId
71
- };
83
+ const testProps: any = { 'data-test-id': testId };
72
84
 
73
85
  function handleChange(event) {
74
86
  // update internal value
@@ -94,7 +106,10 @@ export default function PegaDxilMyTextInput(props: PegaDxilMyTextInputProps) {
94
106
  error={status === 'error'}
95
107
  label={label}
96
108
  value={inputValue}
97
- InputProps={{ ...readOnlyProp, inputProps: { maxLength, ...testProp } }}
109
+ slotProps={{
110
+ input: { ...readOnlyProp, inputProps: { maxLength, ...testProps } }
111
+ }}
112
+ sx={getFieldSx(status)}
98
113
  />
99
114
  </StyledPegaDxilMyTextInputWrapper>
100
115
  );
@@ -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 PegaDxilMyTimeOfDay from './index';
@@ -41,7 +45,11 @@ export const BasePegaDxilMyTimeOfDay: Story = args => {
41
45
  }
42
46
  };
43
47
 
44
- return <PegaDxilMyTimeOfDay {...props} {...args} />;
48
+ return (
49
+ <LocalizationProvider dateAdapter={AdapterDayjs}>
50
+ <PegaDxilMyTimeOfDay {...props} {...args} />
51
+ </LocalizationProvider>
52
+ );
45
53
  };
46
54
 
47
55
  BasePegaDxilMyTimeOfDay.args = {
@@ -1,17 +1,23 @@
1
1
  import { TimePicker } from '@mui/x-date-pickers/TimePicker';
2
2
  // import AccessTimeIcon from '@mui/icons-material/AccessTime';
3
- import { LocalizationProvider } from '@mui/x-date-pickers';
4
- import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
5
3
  import dayjs from 'dayjs';
6
4
 
7
5
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
8
6
  import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
9
7
  import { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
8
+ import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
9
+ import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
10
10
 
11
11
  import StyledPegaDxilMyTimeOfDayWrapper from './styles';
12
12
 
13
13
  interface PegaDxilMyTimeOfDayProps extends PConnFieldProps {
14
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;
15
21
  }
16
22
 
17
23
  // Duplicated runtime code from React SDK
@@ -22,29 +28,29 @@ export default function PegaDxilMyTimeOfDay(props: PegaDxilMyTimeOfDayProps) {
22
28
  const FieldValueList = getComponentFromMap('FieldValueList');
23
29
  const TextInput = getComponentFromMap('TextInput');
24
30
 
25
- const { getPConnect, label, required, disabled, value = '', validatemessage, status, readOnly, helperText, displayMode, hideLabel, testId } = props;
26
- const helperTextToDisplay = validatemessage || helperText;
31
+ const { getPConnect, label, required, disabled, value = '', validatemessage, readOnly, helperText, displayMode, hideLabel, testId, showFieldMessage, messageConfig = {} } = props;
32
+ const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
33
+ const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
27
34
  const pConn = getPConnect();
28
35
  const actions = pConn.getActionsApi();
29
36
  const propName = (pConn.getStateProps() as any).value;
30
37
 
31
- if (displayMode === 'DISPLAY_ONLY') {
32
- return <FieldValueList name={hideLabel ? '' : label} value={value} />;
33
- }
38
+ const status = useStatus({
39
+ showFieldMessage,
40
+ messageVisibility: messageConfig.visibility,
41
+ validatemessage,
42
+ readOnly
43
+ });
34
44
 
35
- if (displayMode === 'STACKED_LARGE_VAL') {
36
- return <FieldValueList name={hideLabel ? '' : label} value={value} variant='stacked' />;
45
+ if (displayMode === 'DISPLAY_ONLY') {
46
+ return <FieldValueList name={hideLabel ? '' : label} value={value} variant={props.variant} />;
37
47
  }
38
48
 
39
49
  if (readOnly) {
40
50
  return <TextInput {...props} />;
41
51
  }
42
52
 
43
- let testProp = {};
44
-
45
- testProp = {
46
- 'data-test-id': testId
47
- };
53
+ const testProps: any = { 'data-test-id': testId };
48
54
 
49
55
  const handleChange = date => {
50
56
  const theValue = date && date.isValid() ? date.format('HH:mm:ss') : null;
@@ -64,7 +70,6 @@ export default function PegaDxilMyTimeOfDay(props: PegaDxilMyTimeOfDayProps) {
64
70
 
65
71
  return (
66
72
  <StyledPegaDxilMyTimeOfDayWrapper>
67
- <LocalizationProvider dateAdapter={AdapterDayjs}>
68
73
  <TimePicker
69
74
  // keyboardIcon={<AccessTimeIcon />}
70
75
  // fullWidth
@@ -85,11 +90,11 @@ export default function PegaDxilMyTimeOfDay(props: PegaDxilMyTimeOfDayProps) {
85
90
  error: status === 'error',
86
91
  helperText: helperTextToDisplay,
87
92
  size: 'small',
88
- InputProps: { ...testProp }
93
+ InputProps: { ...testProps },
94
+ sx: getFieldSx(status)
89
95
  }
90
96
  }}
91
97
  />
92
- </LocalizationProvider>
93
98
  </StyledPegaDxilMyTimeOfDayWrapper>
94
99
  );
95
100
  }
@@ -4,11 +4,19 @@ import { TextField } from '@mui/material';
4
4
  import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
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
+ import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
8
+ import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
7
9
 
8
10
  import StyledPegaDxilMyUrlWrapper from './styles';
9
11
 
10
12
  interface PegaDxilMyUrlProps extends PConnFieldProps {
11
13
  // If any, enter additional props that only exist on this componentName
14
+ showFieldMessage?: boolean;
15
+ messageConfig?: {
16
+ content?: string;
17
+ visibility?: boolean;
18
+ };
19
+ variant?: string;
12
20
  }
13
21
 
14
22
  // Duplicated runtime code from React SDK
@@ -26,15 +34,17 @@ export default function PegaDxilMyUrl(props: PegaDxilMyUrlProps) {
26
34
  disabled,
27
35
  value = '',
28
36
  validatemessage,
29
- status,
30
37
  readOnly,
31
38
  testId,
32
39
  helperText,
33
40
  displayMode,
34
41
  hideLabel,
35
- placeholder
42
+ placeholder,
43
+ showFieldMessage,
44
+ messageConfig = {}
36
45
  } = props;
37
- const helperTextToDisplay = validatemessage || helperText;
46
+ const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
47
+ const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
38
48
 
39
49
  const [inputValue, setInputValue] = useState('');
40
50
 
@@ -42,27 +52,26 @@ export default function PegaDxilMyUrl(props: PegaDxilMyUrlProps) {
42
52
  const actions = pConn.getActionsApi();
43
53
  const propName = (pConn.getStateProps() as any).value;
44
54
 
55
+ const status = useStatus({
56
+ showFieldMessage,
57
+ messageVisibility: messageConfig.visibility,
58
+ validatemessage,
59
+ readOnly
60
+ });
61
+
45
62
  useEffect(() => {
46
63
  setInputValue(value);
47
64
  }, [value]);
48
65
 
49
66
  if (displayMode === 'DISPLAY_ONLY') {
50
- return <FieldValueList name={hideLabel ? '' : label} value={value} />;
51
- }
52
-
53
- if (displayMode === 'STACKED_LARGE_VAL') {
54
- return <FieldValueList name={hideLabel ? '' : label} value={value} variant='stacked' />;
67
+ return <FieldValueList name={hideLabel ? '' : label} value={value} variant={props.variant} />;
55
68
  }
56
69
 
57
70
  if (readOnly) {
58
71
  return <TextInput {...props} />;
59
72
  }
60
73
 
61
- let testProp = {};
62
-
63
- testProp = {
64
- 'data-test-id': testId
65
- };
74
+ const testProps: any = { 'data-test-id': testId };
66
75
 
67
76
  const handleChange = event => {
68
77
  setInputValue(event?.target?.value);
@@ -88,7 +97,10 @@ export default function PegaDxilMyUrl(props: PegaDxilMyUrlProps) {
88
97
  error={status === 'error'}
89
98
  label={label}
90
99
  value={inputValue}
91
- InputProps={{ inputProps: { ...testProp } }}
100
+ slotProps={{
101
+ input: { inputProps: { ...testProps } }
102
+ }}
103
+ sx={getFieldSx(status)}
92
104
  />
93
105
  </StyledPegaDxilMyUrlWrapper>
94
106
  );
@@ -16,10 +16,90 @@
16
16
  gap: calc(1rem);
17
17
  }
18
18
 
19
+ .psdk-default-form-three-column .grid-column {
20
+ grid-column: 1 / span 3;
21
+ }
22
+
19
23
  .psdk-default-form-two-column .grid-column {
20
24
  grid-column: 1 / span 2;
21
25
  }
22
26
 
23
- .psdk-default-form-three-column .grid-column {
24
- grid-column: 1 / span 3;
27
+ .psdk-default-form-one-column .grid-column {
28
+ grid-column: 1;
29
+ }
30
+
31
+ .psdk-default-form-instruction-text {
32
+ padding-top: 0.625rem;
33
+ padding-bottom: 0.625rem;
34
+ }
35
+
36
+ .psdk-default-form-instruction-text ul {
37
+ padding-left: 30px;
38
+ list-style-type: disc;
39
+ }
40
+
41
+ .psdk-default-form-instruction-text ol {
42
+ padding-left: 30px;
43
+ list-style-type: decimal;
44
+ }
45
+
46
+ /* Banner styles */
47
+ .psdk-banner {
48
+ display: flex;
49
+ align-items: flex-start;
50
+ padding: 0.75rem 1rem;
51
+ border-radius: 0.25rem;
52
+ margin-bottom: 1rem;
53
+ border: 1px solid;
54
+ gap: 0.75rem;
55
+ }
56
+
57
+ .psdk-banner-info {
58
+ background-color: color-mix(in srgb, var(--app-neutral-color) 12%, var(--app-form-bg-color));
59
+ border-color: var(--app-neutral-color);
60
+ color: var(--banner-text-color);
61
+ }
62
+
63
+ .psdk-banner-warning {
64
+ background-color: color-mix(in srgb, var(--app-warning-color-dark) 12%, var(--app-form-bg-color));
65
+ border-color: var(--app-warning-color-dark);
66
+ color: var(--app-warning-color-dark);
67
+ }
68
+
69
+ .psdk-banner-success {
70
+ background-color: color-mix(in srgb, var(--stepper-completed-bg-color) 12%, var(--app-form-bg-color));
71
+ border-color: var(--stepper-completed-bg-color);
72
+ color: var(--stepper-completed-bg-color);
73
+ }
74
+
75
+ .psdk-banner-icon {
76
+ flex-shrink: 0;
77
+ display: flex;
78
+ align-items: center;
79
+ padding-top: 0.125rem;
80
+ }
81
+
82
+ .psdk-banner-content {
83
+ flex: 1;
84
+ line-height: 1.5;
85
+ }
86
+
87
+ .psdk-banner-content p {
88
+ margin: 0;
89
+ }
90
+
91
+ .psdk-banner-dismiss {
92
+ flex-shrink: 0;
93
+ background: none;
94
+ border: none;
95
+ cursor: pointer;
96
+ padding: 0.25rem;
97
+ color: inherit;
98
+ opacity: 0.7;
99
+ display: flex;
100
+ align-items: center;
101
+ }
102
+
103
+ .psdk-banner-dismiss:hover {
104
+ opacity: 1;
25
105
  }
@@ -1,6 +1,11 @@
1
- import { createElement, PropsWithChildren } from 'react';
1
+ import { createElement, PropsWithChildren, useState } from 'react';
2
2
 
3
- import { getInstructions } from '@pega/react-sdk-components/lib/components/helpers/template-utils';
3
+ import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
4
+ import WarningAmberIcon from '@mui/icons-material/WarningAmber';
5
+ import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline';
6
+ import CloseIcon from '@mui/icons-material/Close';
7
+
8
+ import { getInstructions, getInstructionsType, getDismissBanner, mapInstructionsTypeToBannerVariant } from '@pega/react-sdk-components/lib/components/helpers/template-utils';
4
9
  import createPConnectComponent from '@pega/react-sdk-components/lib/bridge/react_pconnect';
5
10
  import connectToState from '@pega/react-sdk-components/lib/components/helpers/state-utils';
6
11
 
@@ -22,12 +27,24 @@ const Child = connectToState(mapStateToProps)(props => {
22
27
  return createElement(createPConnectComponent(), { ...rest, key, visibility });
23
28
  });
24
29
 
30
+ const bannerIconMap = {
31
+ info: <InfoOutlinedIcon fontSize='small' />,
32
+ warning: <WarningAmberIcon fontSize='small' />,
33
+ success: <CheckCircleOutlineIcon fontSize='small' />
34
+ };
35
+
25
36
  // Duplicated runtime code from React SDK
26
37
 
27
38
  // props passed in combination of props from property panel (config.json) and run time props from Constellation
28
39
  export default function PegaDxilMyForm(props: PropsWithChildren<PegaDxilMyFormProps>) {
29
40
  const { getPConnect, NumCols = '1' } = props;
30
41
  const instructions = getInstructions(getPConnect(), props.instructions);
42
+ const [bannerDismissed, setBannerDismissed] = useState(false);
43
+
44
+ const instructionsType = getInstructionsType(props.instructions);
45
+ const isBanner = typeof props.instructions === 'object' && (props.instructions as any)?.isBanner;
46
+ const dismissBanner = getDismissBanner(props.instructions);
47
+ const bannerVariant = mapInstructionsTypeToBannerVariant(instructionsType);
31
48
 
32
49
  let divClass: string;
33
50
 
@@ -55,15 +72,35 @@ export default function PegaDxilMyForm(props: PropsWithChildren<PegaDxilMyFormPr
55
72
  const arChildren = getPConnect().getChildren()[0].getPConnect().getChildren();
56
73
  const dfChildren = arChildren?.map(kid => <Child key={getKeyForMappedField(kid)} {...kid} />);
57
74
 
75
+ const renderInstructions = () => {
76
+ if (!instructions || bannerDismissed) return null;
77
+
78
+ if (isBanner) {
79
+ return (
80
+ <div className={`psdk-banner psdk-banner-${bannerVariant}`}>
81
+ <div className='psdk-banner-icon'>{bannerIconMap[bannerVariant]}</div>
82
+ <div className='psdk-banner-content' dangerouslySetInnerHTML={{ __html: instructions }} />
83
+ {dismissBanner && (
84
+ <button type='button' className='psdk-banner-dismiss' aria-label='Dismiss banner' onClick={() => setBannerDismissed(true)}>
85
+ <CloseIcon fontSize='small' />
86
+ </button>
87
+ )}
88
+ </div>
89
+ );
90
+ }
91
+
92
+ return (
93
+ <div className='psdk-default-form-instruction-text'>
94
+ {/* server performs sanitization method for instructions html content */}
95
+ <div key='instructions' id='instruction-text' dangerouslySetInnerHTML={{ __html: instructions }} />
96
+ </div>
97
+ );
98
+ };
99
+
58
100
  return (
59
101
  <StyledPegaDxilMyFormWrapper>
60
102
  <>
61
- {instructions && (
62
- <div className='psdk-default-form-instruction-text'>
63
- {/* server performs sanitization method for instructions html content */}
64
- <div key='instructions' id='instruction-text' dangerouslySetInnerHTML={{ __html: instructions }} />
65
- </div>
66
- )}
103
+ {renderInstructions()}
67
104
  <div className={divClass}>{dfChildren}</div>
68
105
  </>
69
106
  </StyledPegaDxilMyFormWrapper>
@@ -108,18 +108,22 @@ export default function PegaDxilMyCaseWidget(props: PegaDxilMyCaseWidgetProps) {
108
108
  context
109
109
  ) as Promise<any>;
110
110
 
111
- historyData.then((historyJSON: any) => {
112
- const tableDataResults = historyJSON.data.data;
113
-
114
- // compute the rowData using the tableDataResults
115
- computeRowData(tableDataResults);
116
-
117
- // At this point, if we have data ready to render and haven't been asked
118
- // to NOT call setWaitingForData, we can stop progress indicator
119
- if (bCallSetWaitingForData) {
120
- setWaitingForData(false);
121
- }
122
- });
111
+ historyData
112
+ .then((historyJSON: any) => {
113
+ const tableDataResults = historyJSON.data.data;
114
+
115
+ // compute the rowData using the tableDataResults
116
+ computeRowData(tableDataResults);
117
+
118
+ // At this point, if we have data ready to render and haven't been asked
119
+ // to NOT call setWaitingForData, we can stop progress indicator
120
+ if (bCallSetWaitingForData) {
121
+ setWaitingForData(false);
122
+ }
123
+ })
124
+ .catch(e => {
125
+ console.error(e);
126
+ });
123
127
 
124
128
  return () => {
125
129
  // Inspired by https://juliangaramendy.dev/blog/use-promise-subscription
@@ -154,9 +158,9 @@ export default function PegaDxilMyCaseWidget(props: PegaDxilMyCaseWidgetProps) {
154
158
  const theKey = `CaseHistory-${index}`;
155
159
  theDataRows.push(
156
160
  <TableRow key={theKey}>
157
- <StyledTableCell>{dataRow[0] ? (dataRow[0]) : '---' as any}</StyledTableCell>
158
- <StyledTableCell>{dataRow[1] ? (dataRow[1]) : '---' as any}</StyledTableCell>
159
- <StyledTableCell>{dataRow[2] ? (dataRow[2]) : '---' as any}</StyledTableCell>
161
+ <StyledTableCell>{dataRow[0] ? dataRow[0] : ('---' as any)}</StyledTableCell>
162
+ <StyledTableCell>{dataRow[1] ? dataRow[1] : ('---' as any)}</StyledTableCell>
163
+ <StyledTableCell>{dataRow[2] ? dataRow[2] : ('---' as any)}</StyledTableCell>
160
164
  </TableRow>
161
165
  );
162
166
  });