@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
@@ -1,6 +1,21 @@
1
- import React, { forwardRef } from 'react';
2
- import { Editor } from '@tinymce/tinymce-react';
3
- import { FormControl, FormHelperText, InputLabel, useTheme } from '@mui/material';
1
+ import React, { forwardRef, useCallback, useEffect, useRef } from 'react';
2
+ import { useEditor, EditorContent } from '@tiptap/react';
3
+ import StarterKit from '@tiptap/starter-kit';
4
+ import Link from '@tiptap/extension-link';
5
+ import Image from '@tiptap/extension-image';
6
+ import Placeholder from '@tiptap/extension-placeholder';
7
+ import { FormControl, FormHelperText, FormLabel, useTheme, IconButton, Box } from '@mui/material';
8
+ import {
9
+ FormatBold,
10
+ FormatItalic,
11
+ StrikethroughS,
12
+ FormatListBulleted,
13
+ FormatListNumbered,
14
+ FormatIndentDecrease,
15
+ FormatIndentIncrease,
16
+ InsertLink,
17
+ Image as ImageIcon
18
+ } from '@mui/icons-material';
4
19
  import makeStyles from '@mui/styles/makeStyles';
5
20
  import { useAfterInitialEffect, useConsolidatedRef, useUID } from '@pega/react-sdk-components/lib/hooks';
6
21
 
@@ -10,6 +25,44 @@ const useStyles = makeStyles(theme => ({
10
25
  transform: 'translate(0, 0px) scale(1)',
11
26
  marginBottom: '5px',
12
27
  color: theme.palette.text.secondary
28
+ },
29
+ editorWrapper: {
30
+ border: `1px solid ${theme.palette.divider}`,
31
+ borderRadius: 4,
32
+ minHeight: 130,
33
+ '& .ProseMirror': {
34
+ padding: '8px 12px',
35
+ minHeight: 100,
36
+ outline: 'none',
37
+ fontFamily: theme.typography.fontFamily,
38
+ fontSize: theme.typography.fontSize,
39
+ color: theme.palette.text.primary,
40
+ '& p.is-editor-empty:first-child::before': {
41
+ color: theme.palette.text.secondary,
42
+ opacity: 0.7,
43
+ content: 'attr(data-placeholder)',
44
+ float: 'left',
45
+ height: 0,
46
+ pointerEvents: 'none'
47
+ },
48
+ '& a': { color: theme.palette.primary.main },
49
+ '& h1, & h2, & h3, & h4, & h5, & h6': { color: theme.palette.text.primary },
50
+ '& blockquote': {
51
+ color: theme.palette.text.secondary,
52
+ borderLeft: `4px solid ${theme.palette.primary.light}`,
53
+ paddingLeft: 8
54
+ },
55
+ '& ul, & ol': {
56
+ paddingLeft: 24
57
+ }
58
+ }
59
+ },
60
+ toolbar: {
61
+ display: 'flex',
62
+ flexWrap: 'wrap',
63
+ gap: 2,
64
+ padding: '4px 8px',
65
+ borderTop: `1px solid ${theme.palette.divider}`
13
66
  }
14
67
  }));
15
68
 
@@ -36,113 +89,154 @@ const RichTextEditor = forwardRef(function RichTextEditor(props: RichTextEditorP
36
89
  const { id = uid, defaultValue, label, labelHidden, info, testId, placeholder, disabled, required, readOnly, error, onBlur, onChange } = props;
37
90
 
38
91
  const editorRef: any = useConsolidatedRef(ref);
39
- let richTextComponent: any = null;
92
+ const fileInputRef = useRef<HTMLInputElement>(null);
93
+
94
+ const editor = useEditor({
95
+ extensions: [StarterKit, Link.configure({ openOnClick: false }), Image.configure({ allowBase64: true }), Placeholder.configure({ placeholder })],
96
+ content: defaultValue || '',
97
+ editable: !readOnly && !disabled,
98
+ onUpdate: ({ editor: ed }) => {
99
+ onChange?.(ed.getHTML());
100
+ },
101
+ onBlur: ({ event }) => {
102
+ onBlur?.(event);
103
+ }
104
+ });
40
105
 
41
106
  useAfterInitialEffect(() => {
42
- editorRef?.current.mode.set(readOnly || disabled ? 'readonly' : 'design');
107
+ editor?.setEditable(!readOnly && !disabled);
43
108
  }, [readOnly, disabled]);
44
109
 
45
- const filePickerCallback = cb => {
46
- const input = document.createElement('input');
47
- input.setAttribute('type', 'file');
48
- input.setAttribute('accept', 'image/*');
110
+ useEffect(() => {
111
+ if (editor) {
112
+ editorRef.current = editor;
113
+ }
114
+ }, [editor]);
115
+
116
+ const handleImageUpload = useCallback(() => {
117
+ fileInputRef.current?.click();
118
+ }, []);
49
119
 
50
- input.addEventListener('change', (e: any) => {
51
- const file = e.target.files[0];
120
+ const onFileChange = useCallback(
121
+ (e: React.ChangeEvent<HTMLInputElement>) => {
122
+ const file = e.target.files?.[0];
123
+ if (!file || !editor) return;
52
124
 
53
- const reader: any = new FileReader();
125
+ const reader = new FileReader();
54
126
  reader.addEventListener('load', () => {
55
- /*
56
- Note: Now we need to register the blob in TinyMCEs image blob
57
- registry. In the next release this part hopefully won't be
58
- necessary, as we are looking to handle it internally.
59
- */
60
- const blobId = `blobid${new Date().getTime()}`;
61
- const blobCache = editorRef.current.editorUpload.blobCache;
62
- const base64 = reader.result.split(',')[1];
63
- const blobInfo = blobCache.create(blobId, file, base64);
64
- blobCache.add(blobInfo);
65
-
66
- /* call the callback and populate the Title field with the file name */
67
- cb(blobInfo.blobUri(), { title: file.name });
127
+ editor
128
+ .chain()
129
+ .focus()
130
+ .setImage({ src: reader.result as string })
131
+ .run();
68
132
  });
69
133
  reader.readAsDataURL(file);
70
- });
134
+ e.target.value = '';
135
+ },
136
+ [editor]
137
+ );
71
138
 
72
- input.click();
73
- };
139
+ const handleLinkInsert = useCallback(() => {
140
+ if (!editor) return;
141
+ const { from, to } = editor.state.selection;
142
+ const previousUrl = editor.getAttributes('link').href;
143
+ const url = window.prompt('URL', previousUrl);
144
+ if (url === null) return;
145
+
146
+ // Restore selection lost by the prompt dialog
147
+ editor.chain().focus().setTextSelection({ from, to }).run();
148
+
149
+ if (url === '') {
150
+ editor.chain().focus().extendMarkRange('link').unsetLink().run();
151
+ } else if (from === to) {
152
+ // No text selected — insert URL as linked text
153
+ editor
154
+ .chain()
155
+ .focus()
156
+ .insertContent({ type: 'text', text: url, marks: [{ type: 'link', attrs: { href: url } }] })
157
+ .run();
158
+ } else {
159
+ editor.chain().focus().setLink({ href: url }).run();
160
+ }
161
+ }, [editor]);
74
162
 
75
163
  if (readOnly) {
76
164
  const value = defaultValue || '--';
77
-
78
- richTextComponent = <div key={id} id={id} className='readonly-richtext-editor' dangerouslySetInnerHTML={{ __html: value }} />;
79
- } else {
80
- richTextComponent = (
81
- <Editor
82
- tinymceScriptSrc='tinymce/tinymce.min.js'
83
- onInit={(_evt, editor) => {
84
- editorRef.current = editor;
85
- }}
86
- id={id}
87
- initialValue={defaultValue}
88
- disabled={disabled}
89
- init={{
90
- skin: theme.palette.mode === 'dark' ? 'oxide-dark' : 'oxide',
91
- // ...other TinyMCE config...
92
- content_style: `
93
- body {
94
- font-family: ${theme.typography.fontFamily};
95
- font-size: ${theme.typography.fontSize}px;
96
- color: ${theme.palette.text.primary};
97
- background: ${theme.palette.background.paper};
98
- }
99
- a { color: ${theme.palette.primary.main}; }
100
- h1, h2, h3, h4, h5, h6 { color: ${theme.palette.text.primary}; font-family: ${theme.typography.fontFamily}; }
101
- blockquote { color: ${theme.palette.text.secondary}; border-left: 4px solid ${theme.palette.primary.light}; padding-left: 8px; }
102
- ul, ol { color: ${theme.palette.text.primary}; }
103
- input, textarea, select {
104
- background: ${theme.palette.background.paper};
105
- color: ${theme.palette.text.primary};
106
- border: 1px solid ${theme.palette.divider};
107
- border-radius: 4px;
108
- padding: 6px 10px;
109
- font-size: 1em;
110
- font-family: inherit;
111
- }
112
- .mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before {
113
- color: ${theme.palette.text.secondary};
114
- opacity: 0.7;
115
- }
116
- /* Add more styles as needed */
117
- `,
118
- placeholder,
119
- menubar: false,
120
- statusbar: false,
121
- min_height: 130,
122
- plugins: ['lists', 'advlist', 'autolink', 'image', 'link', 'autoresize'],
123
- autoresize_bottom_margin: 0,
124
- toolbar: disabled ? false : 'blocks | bold italic strikethrough | bullist numlist outdent indent | link image',
125
- toolbar_location: 'bottom',
126
- // content_style: 'body { font-family:Helvetica, Arial,sans-serif; font-size:14px }',
127
- branding: false,
128
- paste_data_images: true,
129
- file_picker_types: 'image',
130
- file_picker_callback: filePickerCallback
131
- }}
132
- onBlur={onBlur}
133
- onEditorChange={onChange}
134
- />
165
+ return (
166
+ <FormControl variant='standard' data-test-id={testId} error={error} required={required} fullWidth>
167
+ {!labelHidden && (
168
+ <FormLabel htmlFor={id} className={classes.fieldLabel}>
169
+ {label}
170
+ </FormLabel>
171
+ )}
172
+ <div key={id} id={id} className='readonly-richtext-editor' dangerouslySetInnerHTML={{ __html: value }} />
173
+ {info && <FormHelperText>{info}</FormHelperText>}
174
+ </FormControl>
135
175
  );
136
176
  }
137
177
 
138
178
  return (
139
- <FormControl variant='standard' data-test-id={testId} error={error} required={required}>
179
+ <FormControl variant='standard' data-test-id={testId} error={error} required={required} fullWidth>
140
180
  {!labelHidden && (
141
- <InputLabel id='demo-simple-select-error-label' className={classes.fieldLabel}>
181
+ <FormLabel htmlFor={id} className={classes.fieldLabel}>
142
182
  {label}
143
- </InputLabel>
183
+ </FormLabel>
144
184
  )}
145
- {richTextComponent}
185
+ <Box className={classes.editorWrapper} sx={{ background: theme.palette.background.paper }}>
186
+ <EditorContent editor={editor} id={id} />
187
+ {!disabled && (
188
+ <div className={classes.toolbar}>
189
+ <IconButton
190
+ size='small'
191
+ onClick={() => editor?.chain().focus().toggleBold().run()}
192
+ color={editor?.isActive('bold') ? 'primary' : 'default'}
193
+ >
194
+ <FormatBold fontSize='small' />
195
+ </IconButton>
196
+ <IconButton
197
+ size='small'
198
+ onClick={() => editor?.chain().focus().toggleItalic().run()}
199
+ color={editor?.isActive('italic') ? 'primary' : 'default'}
200
+ >
201
+ <FormatItalic fontSize='small' />
202
+ </IconButton>
203
+ <IconButton
204
+ size='small'
205
+ onClick={() => editor?.chain().focus().toggleStrike().run()}
206
+ color={editor?.isActive('strike') ? 'primary' : 'default'}
207
+ >
208
+ <StrikethroughS fontSize='small' />
209
+ </IconButton>
210
+ <IconButton
211
+ size='small'
212
+ onClick={() => editor?.chain().focus().toggleBulletList().run()}
213
+ color={editor?.isActive('bulletList') ? 'primary' : 'default'}
214
+ >
215
+ <FormatListBulleted fontSize='small' />
216
+ </IconButton>
217
+ <IconButton
218
+ size='small'
219
+ onClick={() => editor?.chain().focus().toggleOrderedList().run()}
220
+ color={editor?.isActive('orderedList') ? 'primary' : 'default'}
221
+ >
222
+ <FormatListNumbered fontSize='small' />
223
+ </IconButton>
224
+ <IconButton size='small' onClick={() => editor?.chain().focus().liftListItem('listItem').run()}>
225
+ <FormatIndentDecrease fontSize='small' />
226
+ </IconButton>
227
+ <IconButton size='small' onClick={() => editor?.chain().focus().sinkListItem('listItem').run()}>
228
+ <FormatIndentIncrease fontSize='small' />
229
+ </IconButton>
230
+ <IconButton size='small' onClick={handleLinkInsert} color={editor?.isActive('link') ? 'primary' : 'default'}>
231
+ <InsertLink fontSize='small' />
232
+ </IconButton>
233
+ <IconButton size='small' onClick={handleImageUpload}>
234
+ <ImageIcon fontSize='small' />
235
+ </IconButton>
236
+ </div>
237
+ )}
238
+ </Box>
239
+ <input ref={fileInputRef} type='file' accept='image/*' style={{ display: 'none' }} onChange={onFileChange} />
146
240
  {info && <FormHelperText>{info}</FormHelperText>}
147
241
  </FormControl>
148
242
  );