@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
@@ -13,11 +13,17 @@ import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpe
13
13
  import { getBanners } from '@pega/react-sdk-components/lib/components/helpers/case-utils';
14
14
  import type { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
15
15
 
16
+ /**
17
+ * WARNING: This file is part of the infrastructure component responsible for working with Redux and managing the creation and update of Redux containers and PConnect.
18
+ * You may override Material components within this component if needed, but do not modify any container-related logic. Changing this logic can lead to unexpected behavior.
19
+ */
20
+
16
21
  interface ModalViewContainerProps extends PConnProps {
17
22
  // If any, enter additional props that only exist on this component
18
23
  loadingInfo?: string;
19
24
  routingInfo?: any;
20
25
  pageMessages?: string[];
26
+ httpMessages?: any[];
21
27
  }
22
28
 
23
29
  function isOpenModalAction(prevModalCollection, currentModalList) {
@@ -109,12 +115,12 @@ export default function ModalViewContainer(props: ModalViewContainerProps) {
109
115
  const Assignment = getComponentFromMap('Assignment');
110
116
  const CancelAlert = getComponentFromMap('CancelAlert');
111
117
  const ListViewActionButtons = getComponentFromMap('ListViewActionButtons');
112
-
118
+ const DataViewActionButtons = getComponentFromMap('DataViewActionButtons');
113
119
  const classes = useStyles();
114
120
 
115
121
  const modalCollection = useRef({});
116
122
  const routingInfoRef = useRef({});
117
- const { getPConnect, routingInfo = null, pageMessages = [] } = props;
123
+ const { getPConnect, routingInfo = null, pageMessages = [], httpMessages = [] } = props;
118
124
  const pConn = getPConnect();
119
125
  const { acTertiary } = pConn.getConfigProps() as any;
120
126
  const {
@@ -122,19 +128,28 @@ export default function ModalViewContainer(props: ModalViewContainerProps) {
122
128
  PUB_SUB_EVENTS: { EVENT_SHOW_CANCEL_ALERT }
123
129
  } = PCore.getConstants();
124
130
  const { subscribe, unsubscribe } = PCore.getPubSubUtils();
125
- const [bShowModal, setShowModal] = useState(false);
126
131
  const [bShowCancelAlert, setShowCancelAlert] = useState(false);
127
- const [createdView, setCreatedView] = useState<any>(null);
128
- const [title, setTitle] = useState('');
129
- const [arNewChildrenAsReact, setArNewChildrenAsReact] = useState<any[]>([]);
130
- const [itemKey, setItemKey] = useState('');
131
132
  const [cancelAlertProps, setCancelAlertProps] = useState({});
132
- const [isMultiRecordData, setMultiRecordData] = useState(false);
133
133
  const localizedVal = PCore.getLocaleUtils().getLocaleValue;
134
134
  const localeCategory = 'ModalContainer';
135
135
 
136
136
  const ERROR_WHILE_RENDERING = 'ERROR_WHILE_RENDERING';
137
137
 
138
+ // Stack of open modals — each entry represents one stacked modal
139
+ interface ModalEntry {
140
+ key: string;
141
+ title: string;
142
+ createdView: any;
143
+ arNewChildrenAsReact: any[];
144
+ isMultiRecordData: boolean;
145
+ isDataObjectModal: boolean;
146
+ dataRecordKeys: string;
147
+ dataObjectActionID: string;
148
+ dataObjectAction: string;
149
+ dataObjectClassId: string;
150
+ }
151
+ const [modalStack, setModalStack] = useState<ModalEntry[]>([]);
152
+
138
153
  function showAlert(payload) {
139
154
  const { latestItem } = getKeyAndLatestItem(routingInfoRef.current, pConn, { acTertiary });
140
155
  const isReverseCoexistence = (PCore.getCoexistenceManager().getBroadcastUtils() as any).isReverseCoexistenceCaseLoaded();
@@ -175,7 +190,8 @@ export default function ModalViewContainer(props: ModalViewContainerProps) {
175
190
  const modifiedModalCollection = { ...tempModalCollection };
176
191
  delete modifiedModalCollection[closedModalKey];
177
192
  modalCollection.current = modifiedModalCollection;
178
- setShowModal(false);
193
+ // Remove the closed modal from the stack
194
+ setModalStack(prev => prev.filter(entry => entry.key !== closedModalKey));
179
195
  }
180
196
  }
181
197
 
@@ -183,21 +199,26 @@ export default function ModalViewContainer(props: ModalViewContainerProps) {
183
199
  setShowCancelAlert(false);
184
200
 
185
201
  if (dismissAllModals) {
186
- setShowModal(false);
202
+ setModalStack([]);
187
203
  }
188
204
  };
189
205
 
190
- function getModalHeading(dataObjectAction) {
191
- return dataObjectAction === PCore.getConstants().RESOURCE_STATUS.CREATE
192
- ? localizedVal('Add Record', localeCategory)
193
- : localizedVal('Edit Record', localeCategory);
206
+ function getModalHeading(dataObjectAction, actionName) {
207
+ switch (dataObjectAction) {
208
+ case PCore.getConstants().RESOURCE_STATUS.CREATE:
209
+ return localizedVal('Add Record', localeCategory);
210
+ case PCore.getConstants().RESOURCE_STATUS.OPEN_FLOW_ACTION:
211
+ return localizedVal(actionName, localeCategory);
212
+ default:
213
+ return localizedVal('Edit Record', localeCategory);
214
+ }
194
215
  }
195
216
 
196
- function determineModalHeaderByAction(actionName, caseTypeName, ID, caseLocaleRef) {
217
+ function determineModalHeaderByAction(actionName, caseTypeName, caseLocaleRef) {
197
218
  if (actionName) {
198
219
  return localizedVal(actionName, localeCategory);
199
220
  }
200
- return `${localizedVal('Create', localeCategory)} ${localizedVal(caseTypeName, undefined, caseLocaleRef)} (${ID})`;
221
+ return `${localizedVal('Create', localeCategory)} ${localizedVal(caseTypeName, undefined, caseLocaleRef)}`;
201
222
  }
202
223
 
203
224
  useEffect(() => {
@@ -242,7 +263,6 @@ export default function ModalViewContainer(props: ModalViewContainerProps) {
242
263
  (isOpenModalAction(modalCollection.current, accessedOrder) || isUpdateModalAction(modalCollection.current, accessedOrder))
243
264
  ) {
244
265
  const { actionName } = latestItem;
245
- // const { isDockable = false } = latestItem?.modalOptions || {};
246
266
  const configObject: any = getConfigObject(latestItem, null, false);
247
267
  const pConnect = configObject.getPConnect();
248
268
  const caseInfo: any = pConnect.getCaseInfo();
@@ -250,19 +270,26 @@ export default function ModalViewContainer(props: ModalViewContainerProps) {
250
270
  const caseTypeName = caseInfo.getCaseTypeName();
251
271
  const ID = caseInfo.getBusinessID() || caseInfo.getID();
252
272
  const isDataObject = routingInfo.items[latestItem.context].resourceType === PCore.getConstants().RESOURCE_TYPES.DATA;
253
- const dataObjectAction = routingInfo.items[latestItem.context].resourceStatus;
254
- const isMultiRecord = routingInfo.items[latestItem.context].isMultiRecordData;
255
- const headingValue =
256
- isDataObject || isMultiRecord
257
- ? getModalHeading(dataObjectAction)
258
- : determineModalHeaderByAction(actionName, caseTypeName, ID, pConnect?.getCaseLocaleReference());
273
+ const dataObjAction = routingInfo.items[latestItem.context].resourceStatus;
274
+ const multiRecordData = routingInfo.items[latestItem.context].isMultiRecordData;
275
+ const actionID = routingInfo.items[latestItem.context].actionID;
276
+
277
+ const getHeadingValue = () => {
278
+ if (multiRecordData) {
279
+ return routingInfo.items[latestItem.context].heading;
280
+ }
281
+ if (isDataObject) {
282
+ if (actionName) {
283
+ return localizedVal(actionName, localeCategory);
284
+ }
285
+ return getModalHeading(dataObjAction, actionName);
286
+ }
287
+ return determineModalHeaderByAction(actionName, caseTypeName, pConnect?.getCaseLocaleReference());
288
+ };
259
289
 
260
290
  let arChildrenAsReact: any[] = [];
261
291
 
262
292
  if (pConnect.getComponentName() === 'reference') {
263
- // Reference component doesn't have children. It can build the View we want.
264
- // The Reference component getPConnect is in configObject
265
-
266
293
  arChildrenAsReact.push(
267
294
  createElement(createPConnectComponent(), {
268
295
  ...configObject,
@@ -270,11 +297,7 @@ export default function ModalViewContainer(props: ModalViewContainerProps) {
270
297
  })
271
298
  );
272
299
  } else {
273
- // This is the 8.6 implementation. Leaving it in for reference for now.
274
- // And create a similar array of the children as React components
275
- // passed to Assignment component when rendered
276
300
  arChildrenAsReact = (pConnect.getChildren() as []).map((child: any) => {
277
- // Use Case Summary ID as the React element's key
278
301
  const caseSummaryID = child.getPConnect().getCaseSummary().ID;
279
302
  return createElement(createPConnectComponent(), {
280
303
  ...child,
@@ -283,19 +306,26 @@ export default function ModalViewContainer(props: ModalViewContainerProps) {
283
306
  });
284
307
  }
285
308
 
286
- if (arChildrenAsReact.length > 0) setArNewChildrenAsReact(arChildrenAsReact);
287
- setMultiRecordData(isMultiRecord);
288
- setTitle(headingValue);
289
- setCreatedView({ configObject, latestItem });
290
- setItemKey(key);
291
- setShowModal(true);
309
+ const modalEntry: ModalEntry = {
310
+ key,
311
+ title: getHeadingValue(),
312
+ createdView: { configObject, latestItem },
313
+ arNewChildrenAsReact: arChildrenAsReact.length > 0 ? arChildrenAsReact : [],
314
+ isMultiRecordData: multiRecordData,
315
+ isDataObjectModal: isDataObject && !multiRecordData,
316
+ dataRecordKeys: latestItem.key || '',
317
+ dataObjectActionID: actionID || '',
318
+ dataObjectAction: dataObjAction || '',
319
+ dataObjectClassId: pConnect.getValue('.classID') || ''
320
+ };
292
321
 
293
- // Update modal use case which happens when assignment in submitted in modal.
294
322
  if (isUpdateModalAction(modalCollection.current, accessedOrder)) {
295
- // handleModalUpdate(key);
323
+ // Update existing modal in the stack
324
+ setModalStack(prev => prev.map(entry => (entry.key === key ? modalEntry : entry)));
296
325
  } else if (isOpenModalAction(modalCollection.current, accessedOrder)) {
297
- // New modal open scenario
326
+ // Push new modal onto the stack
298
327
  handleModalOpen(key);
328
+ setModalStack(prev => [...prev, modalEntry]);
299
329
  }
300
330
  } else if (isCloseModalAction(modalCollection.current, accessedOrder)) {
301
331
  handleModalClose(accessedOrder);
@@ -303,43 +333,59 @@ export default function ModalViewContainer(props: ModalViewContainerProps) {
303
333
  }
304
334
  }, [routingInfo]);
305
335
 
306
- function closeActionsDialog() {
307
- // actionsDialog.current = true;
308
- setShowModal(false);
336
+ function closeActionsDialog(modalKey?: string) {
337
+ if (modalKey) {
338
+ setModalStack(prev => prev.filter(entry => entry.key !== modalKey));
339
+ } else {
340
+ // Close the topmost modal
341
+ setModalStack(prev => prev.slice(0, -1));
342
+ }
309
343
  }
310
344
 
311
345
  return (
312
346
  <>
313
- <Dialog open={bShowModal} aria-labelledby='form-dialog-title' maxWidth={false}>
314
- <DialogTitle id='form-dialog-title' className={`${classes.dlgTitle} psdk-dialog-title`}>
315
- {title}
316
- </DialogTitle>
317
- <DialogContent className={`${classes.dlgContent} psdk-dialog-content`}>
318
- {bShowModal ? (
347
+ {modalStack.map(modal => (
348
+ <Dialog key={modal.key} open aria-labelledby={`form-dialog-title-${modal.key}`} maxWidth='md' fullWidth>
349
+ <DialogTitle id={`form-dialog-title-${modal.key}`} className={`${classes.dlgTitle} psdk-dialog-title`}>
350
+ {modal.title}
351
+ </DialogTitle>
352
+ <DialogContent className={`${classes.dlgContent} psdk-dialog-content`}>
319
353
  <LocalizationProvider dateAdapter={AdapterDayjs}>
320
354
  <Assignment
321
- getPConnect={createdView.configObject.getPConnect}
322
- itemKey={itemKey}
355
+ getPConnect={modal.createdView.configObject.getPConnect}
356
+ itemKey={modal.key}
323
357
  isInModal
324
358
  banners={getBanners({
325
- target: itemKey,
326
- pageMessages
359
+ target: modal.key,
360
+ pageMessages,
361
+ httpMessages
327
362
  })}
328
363
  >
329
- {arNewChildrenAsReact}
364
+ {modal.arNewChildrenAsReact}
330
365
  </Assignment>
331
366
  </LocalizationProvider>
332
- ) : null}
333
- </DialogContent>
334
-
335
- {isMultiRecordData && (
336
- <ListViewActionButtons
337
- getPConnect={createdView.configObject.getPConnect}
338
- context={createdView.latestItem.context}
339
- closeActionsDialog={closeActionsDialog}
340
- />
341
- )}
342
- </Dialog>
367
+ </DialogContent>
368
+
369
+ {modal.isMultiRecordData && (
370
+ <ListViewActionButtons
371
+ getPConnect={modal.createdView.configObject.getPConnect}
372
+ context={modal.createdView.latestItem.context}
373
+ closeActionsDialog={() => closeActionsDialog(modal.key)}
374
+ />
375
+ )}
376
+ {modal.isDataObjectModal && (
377
+ <DataViewActionButtons
378
+ getPConnect={modal.createdView.configObject.getPConnect}
379
+ context={modal.createdView.latestItem.context}
380
+ classId={modal.dataObjectClassId}
381
+ dataObjectAction={modal.dataObjectAction}
382
+ dataRecordKeys={modal.dataRecordKeys}
383
+ actionID={modal.dataObjectActionID}
384
+ closeActionsDialog={() => closeActionsDialog(modal.key)}
385
+ />
386
+ )}
387
+ </Dialog>
388
+ ))}
343
389
  {bShowCancelAlert && <CancelAlert {...cancelAlertProps} dismiss={dismissCancelAlert} />}
344
390
  </>
345
391
  );
@@ -146,6 +146,69 @@ mat-horizontal-stepper {
146
146
  border-left-color: var(--app-neutral-color);
147
147
  }
148
148
 
149
+ .psdk-vertical-stepper-container {
150
+ display: grid;
151
+ gap: 2rem;
152
+ }
153
+
154
+ .psdk-vertical-stepper-container.stepper-end {
155
+ grid-template-columns: 1fr minmax(12rem, auto);
156
+ grid-template-areas: 'content stepper';
157
+ }
158
+
159
+ .psdk-vertical-stepper-container.stepper-start {
160
+ grid-template-columns: minmax(12rem, auto) 1fr;
161
+ grid-template-areas: 'stepper content';
162
+ }
163
+
164
+ .psdk-stepper-rail {
165
+ grid-area: stepper;
166
+ }
167
+
168
+ .psdk-stepper-content {
169
+ grid-area: content;
170
+ }
171
+
172
+ .psdk-stepper-rail .psdk-vertical-step-header {
173
+ height: auto;
174
+ overflow: visible;
175
+ padding: 0.75rem 0;
176
+ }
177
+
178
+ .psdk-stepper-rail .psdk-vertical-step-icon {
179
+ flex-shrink: 0;
180
+ }
181
+
182
+ .psdk-stepper-rail .psdk-vertical-step {
183
+ position: relative;
184
+ }
185
+
186
+ .psdk-stepper-rail .psdk-vertical-step-body {
187
+ display: none;
188
+ }
189
+
190
+ .psdk-stepper-rail .psdk-vertical-step:not(:last-child)::after {
191
+ content: '';
192
+ position: absolute;
193
+ left: 12px;
194
+ top: calc(0.75rem + 24px + 4px);
195
+ bottom: -4px;
196
+ width: 1px;
197
+ background-color: var(--app-neutral-color);
198
+ }
199
+
200
+ .psdk-stepper-rail .psdk-vertical-step-label {
201
+ white-space: nowrap;
202
+ font-size: 0.875rem;
203
+ font-weight: 400;
204
+ color: var(--text-secondary-color);
205
+ }
206
+
207
+ .psdk-stepper-rail .current .psdk-vertical-step-label {
208
+ font-weight: 700;
209
+ color: var(--app-text-color);
210
+ }
211
+
149
212
  .psdk-horizontal-stepper {
150
213
  background-color: transparent;
151
214
  display: block;
@@ -10,7 +10,7 @@ interface MultiStepProps extends PConnProps {
10
10
  itemKey: string;
11
11
  actionButtons: any[];
12
12
  onButtonPress: any;
13
- bIsVertical: boolean;
13
+ stepIndicator?: 'horizontal' | 'vertical' | 'vertical-start';
14
14
  arNavigationSteps: any;
15
15
  }
16
16
 
@@ -19,7 +19,9 @@ export default function MultiStep(props: PropsWithChildren<MultiStepProps>) {
19
19
  const AssignmentCard = getComponentFromMap('AssignmentCard');
20
20
 
21
21
  const { getPConnect, children, itemKey = '', actionButtons, onButtonPress } = props;
22
- const { bIsVertical, arNavigationSteps } = props;
22
+ const { stepIndicator = 'horizontal', arNavigationSteps } = props;
23
+
24
+ const isVertical = stepIndicator === 'vertical' || stepIndicator === 'vertical-start';
23
25
 
24
26
  let currentStep = arNavigationSteps.find(({ visited_status: vs }) => vs === 'current');
25
27
  if (!currentStep) {
@@ -56,59 +58,28 @@ export default function MultiStep(props: PropsWithChildren<MultiStepProps>) {
56
58
 
57
59
  return (
58
60
  <div>
59
- {bIsVertical ? (
60
- <div className='psdk-vertical-stepper'>
61
- {arNavigationSteps.map((mainStep, index) => {
62
- return (
63
- <React.Fragment key={mainStep.actionID}>
64
- <div className='psdk-vertical-step'>
65
- <div className={`psdk-vertical-step-header ${mainStep.visited_status}`}>
66
- <div className={`psdk-vertical-step-icon`}>
67
- <div className='psdk-vertical-step-icon-content'>
68
- <span>{index + 1}</span>
69
- </div>
61
+ {isVertical ? (
62
+ <div className={`psdk-vertical-stepper-container ${stepIndicator === 'vertical-start' ? 'stepper-start' : 'stepper-end'}`}>
63
+ <div className='psdk-stepper-rail'>
64
+ {arNavigationSteps.map((mainStep, index) => (
65
+ <div key={mainStep.actionID} className='psdk-vertical-step'>
66
+ <div className={`psdk-vertical-step-header ${mainStep.visited_status}`}>
67
+ <div className='psdk-vertical-step-icon'>
68
+ <div className='psdk-vertical-step-icon-content'>
69
+ <span>{index + 1}</span>
70
70
  </div>
71
- <div className='psdk-vertical-step-label'>{mainStep.visited_status === 'current' && mainStep.name}</div>
72
- </div>
73
- <div className={_getVBodyClass(index)}>
74
- {mainStep?.steps && (
75
- <ul
76
- style={{
77
- paddingInlineStart: '0rem',
78
- marginLeft: '-7px'
79
- }}
80
- >
81
- {mainStep.steps.forEach(subStep => {
82
- <li className='psdk-sub-step-list'>
83
- <div style={{ display: 'inline-flex' }}>
84
- {subStep.visited_status === 'current' && <img className='psdk-current-svg-icon' src='{svgCurrent}' />}
85
- {subStep.visited_status !== 'current' && <img className='psdk-not-current-svg-icon' src='{svgNotCurrent}' />}
86
- {subStep.visited_status === 'current' && <label className='psdk-sub-step-current'>{subStep.name}</label>}
87
- {subStep.visited_status !== 'current' && <label className='psdk-sub-step-not-current'>{subStep.name}</label>}
88
- </div>
89
- {subStep.visited_status === 'current' && (
90
- <div>
91
- <AssignmentCard getPConnect={getPConnect} itemKey={itemKey} actionButtons={actionButtons} onButtonPress={buttonPress}>
92
- {children}
93
- </AssignmentCard>
94
- </div>
95
- )}
96
- </li>;
97
- })}
98
- </ul>
99
- )}
100
- {!mainStep?.steps && mainStep.visited_status === 'current' && (
101
- <div style={{ paddingLeft: 20 }}>
102
- <AssignmentCard getPConnect={getPConnect} itemKey={itemKey} actionButtons={actionButtons} onButtonPress={buttonPress}>
103
- {children}
104
- </AssignmentCard>
105
- </div>
106
- )}
107
71
  </div>
72
+ <div className='psdk-vertical-step-label'>{mainStep.name}</div>
108
73
  </div>
109
- </React.Fragment>
110
- );
111
- })}
74
+ {!isLastStep(index) && <div className={_getVBodyClass(index)} />}
75
+ </div>
76
+ ))}
77
+ </div>
78
+ <div className='psdk-stepper-content'>
79
+ <AssignmentCard getPConnect={getPConnect} itemKey={itemKey} actionButtons={actionButtons} onButtonPress={buttonPress}>
80
+ {children}
81
+ </AssignmentCard>
82
+ </div>
112
83
  </div>
113
84
  ) : (
114
85
  <div className='psdk-horizontal-stepper'>
@@ -56,7 +56,8 @@ const iconMap = {
56
56
  'pi pi-tablet': <TabletAndroidOutlineIcon fontSize='large' />,
57
57
  'pi pi-ambulance': <AirportShuttleOutlinedIcon fontSize='large' />,
58
58
  'pi pi-ink-solid': <EditOutlinedIcon fontSize='large' />,
59
- 'pi pi-columns': <HomeOutlinedIcon fontSize='large' />
59
+ 'pi pi-columns': <HomeOutlinedIcon fontSize='large' />,
60
+ 'case-solid': <WorkOutlineIcon fontSize='large' />
60
61
  };
61
62
 
62
63
  const drawerWidth = 300;
@@ -150,12 +151,14 @@ export default function NavBar(props: NavBarProps) {
150
151
 
151
152
  function navPanelButtonClick(oPageData: any) {
152
153
  const { pyClassName, pyRuleName } = oPageData;
153
-
154
154
  pConn
155
155
  .getActionsApi()
156
156
  .showPage(pyRuleName, pyClassName)
157
157
  .then(() => {
158
158
  console.log(`${localizedVal('showPage completed', localeCategory)}`);
159
+ })
160
+ .catch(error => {
161
+ console.error('Failed to navigate to page from NavBar', error);
159
162
  });
160
163
  }
161
164
 
@@ -165,12 +168,14 @@ export default function NavBar(props: NavBarProps) {
165
168
  containerName: 'primary',
166
169
  flowType: sFlowType || 'pyStartCase'
167
170
  };
168
-
169
171
  pConn
170
172
  .getActionsApi()
171
173
  .createWork(sCaseType, actionInfo)
172
174
  .then(() => {
173
175
  console.log(`${localizedVal('createWork completed', localeCategory)}`);
176
+ })
177
+ .catch(error => {
178
+ console.error('Failed to create case from NavBar', error);
174
179
  });
175
180
  }
176
181
 
@@ -38,6 +38,11 @@ export default function Reference(props: ReferenceProps) {
38
38
  pageReference: context && context.startsWith('@CLASS') ? '' : context
39
39
  });
40
40
 
41
+ if (referenceConfig.inheritedProps && referenceConfig.inheritedProps.length > 0) {
42
+ const inheritedProps = pConnect.getInheritedProps();
43
+ referenceConfig.inheritedProps = Object.keys(inheritedProps).map(prop => ({ prop, value: inheritedProps[prop] }));
44
+ }
45
+
41
46
  viewComponent.props.getPConnect().setInheritedConfig({
42
47
  ...referenceConfig,
43
48
  readOnly,
@@ -15,11 +15,10 @@ interface RootContainerProps extends PConnProps {
15
15
  httpMessages: any[];
16
16
  }
17
17
 
18
- //
19
- // WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with
20
- // Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and
21
- // is totally at your own risk.
22
- //
18
+ /**
19
+ * WARNING: This file is part of the infrastructure component responsible for working with Redux and managing the creation and update of Redux containers and PConnect.
20
+ * You may override Material components within this component if needed, but do not modify any container-related logic. Changing this logic can lead to unexpected behavior.
21
+ */
23
22
 
24
23
  const renderingModes = ['portal', 'view'];
25
24
 
@@ -4,5 +4,6 @@
4
4
  align-items: center;
5
5
  font-size: calc(0.9375rem);
6
6
  font-weight: 600;
7
+ margin-top: 1rem;
7
8
  margin-bottom: 5px;
8
9
  }
@@ -21,13 +21,12 @@ interface ViewProps extends PConnProps {
21
21
  type?: any;
22
22
  }
23
23
 
24
- //
25
- // WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with
26
- // Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and
27
- // is totally at your own risk.
28
- //
24
+ /**
25
+ * WARNING: This file is part of the infrastructure component responsible for working with Redux and managing the creation and update of Redux containers and PConnect.
26
+ * You may override Material components within this component if needed, but do not modify any container-related logic. Changing this logic can lead to unexpected behavior.
27
+ */
29
28
 
30
- const FORMTEMPLATES = ['OneColumn', 'TwoColumn', 'DefaultForm', 'WideNarrow', 'NarrowWide'];
29
+ const FORMTEMPLATES = ['OneColumn', 'TwoColumn', 'DefaultForm', 'WideNarrow', 'NarrowWide', 'HierarchicalForm'];
31
30
  const NO_HEADER_TEMPLATES = [
32
31
  'SubTabs',
33
32
  'SimpleTable',
@@ -43,22 +42,16 @@ const NO_HEADER_TEMPLATES = [
43
42
  ];
44
43
 
45
44
  export default function View(props: PropsWithChildren<ViewProps>) {
46
- const { children, template, getPConnect, mode, visibility, name: pageName, type, title } = props;
47
- let { label = '', showLabel = false } = props;
45
+ const { children, template, getPConnect, visibility, name: pageName, type, title } = props;
46
+ let { label = '', showLabel } = props;
48
47
  const { PAGE_TYPES: { PAGE, LANDINGPAGE, LISTPAGE } = {}, MODAL } = PCore.getConstants();
49
48
 
50
- // Get the inherited props from the parent to determine label settings. For 8.6, this is only for embedded data form views
51
- // Putting this logic here instead of copy/paste in every Form template index.js
52
-
49
+ // Get the inherited props from the parent to determine label settings
53
50
  const inheritedProps: any = getPConnect().getInheritedProps(); // try to remove any when getInheritedProps typedefs are fixed
54
51
  label = inheritedProps.label || label;
55
- showLabel = inheritedProps.showLabel || showLabel;
56
- const localeUtils = PCore.getLocaleUtils();
52
+ showLabel = inheritedProps.showLabel ?? showLabel ?? true;
57
53
 
58
- const isEmbeddedDataView = mode === 'editable'; // would be better to check the reference child for `context` attribute if possible
59
- if (isEmbeddedDataView && showLabel === undefined) {
60
- showLabel = true;
61
- }
54
+ const localeUtils = PCore.getLocaleUtils();
62
55
 
63
56
  useEffect(() => {
64
57
  // Get the localized application label
@@ -17,14 +17,10 @@ interface ViewContainerProps extends PConnProps {
17
17
  limit?: number;
18
18
  }
19
19
 
20
- // ViewContainer can emit View
21
- // import View from '../View';
22
-
23
- //
24
- // WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with
25
- // Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and
26
- // is totally at your own risk.
27
- //
20
+ /**
21
+ * WARNING: This file is part of the infrastructure component responsible for working with Redux and managing the creation and update of Redux containers and PConnect.
22
+ * You may override Material components within this component if needed, but do not modify any container-related logic. Changing this logic can lead to unexpected behavior.
23
+ */
28
24
 
29
25
  export default function ViewContainer(props: ViewContainerProps) {
30
26
  // const { getPConnect, children, routingInfo, name } = props;
@@ -157,13 +153,15 @@ export default function ViewContainer(props: ViewContainerProps) {
157
153
  const latestItem = items[key];
158
154
  const rootView = latestItem.view;
159
155
  const { context, name: viewName } = rootView.config;
156
+ const target = key.substring(0, key.lastIndexOf('_'));
160
157
  const config: any = { meta: rootView };
161
158
  config.options = {
162
159
  context: latestItem.context,
163
160
  pageReference: context || getPConnect().getPageReference(),
164
161
  containerName: getPConnect().getContainerName(),
165
- containerItemName: key,
166
- hasForm: viewName === CREATE_DETAILS_VIEW_NAME
162
+ containerItemID: key,
163
+ hasForm: viewName === CREATE_DETAILS_VIEW_NAME,
164
+ target
167
165
  };
168
166
  const configObject: any = PCore.createPConnect(config);
169
167
 
@@ -33,7 +33,3 @@
33
33
  .progress-spinner {
34
34
  text-align: center;
35
35
  }
36
-
37
- ::ng-deep snack-bar-container.snackbar-newline {
38
- white-space: pre-line;
39
- }
@@ -134,6 +134,9 @@ export default function AppShell(props: PropsWithChildren<AppShellProps>) {
134
134
  skipDirtyValidation: true
135
135
  });
136
136
  }
137
+ })
138
+ .catch(e => {
139
+ console.error(e);
137
140
  });
138
141
  }
139
142
  }, []);
@@ -170,7 +173,10 @@ export default function AppShell(props: PropsWithChildren<AppShellProps>) {
170
173
  if (imageKey && portalTemplate === 'wss') {
171
174
  PCore.getAssetLoader()
172
175
  .getSvcImageUrl(imageKey)
173
- .then(imagePath => setImageBlobUrl(imagePath));
176
+ .then(imagePath => setImageBlobUrl(imagePath))
177
+ .catch(e => {
178
+ console.error(e);
179
+ });
174
180
  }
175
181
  }, []);
176
182