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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/README.md +3 -3
  2. package/package.json +1 -1
  3. package/src/cli.js +1 -1
  4. package/src/constants.js +4 -0
  5. package/src/tasks/build-all/helper.js +6 -0
  6. package/src/tasks/build-comp/helper.js +6 -0
  7. package/src/tasks/bundle/builderAngular/webpack.config.js +14 -1
  8. package/src/tasks/bundle/builderAssociated/webpack.config.js +13 -0
  9. package/src/tasks/bundle/builderReact/webpack.config.js +14 -1
  10. package/src/tasks/create/templates/Constellation/field/Boolean/index.tsx.mustache +3 -2
  11. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/PConnProps.d.ts.mustache +46 -0
  12. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/config.json.mustache +64 -0
  13. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/demo.stories.tsx.mustache +99 -0
  14. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/index.tsx.mustache +204 -0
  15. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/mock.ts.mustache +5 -0
  16. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/styles.ts.mustache +8 -0
  17. package/src/tasks/create/templates/Constellation/field/Picklist/index.tsx.mustache +0 -1
  18. package/src/tasks/create/templates/Constellation/field/Picklist-Autocomplete/date.ts.mustache +15 -37
  19. package/src/tasks/create/templates/Constellation/field/Picklist-Autocomplete/index.tsx.mustache +11 -0
  20. package/src/tasks/create/templates/Constellation/field/Picklist-Autocomplete/utils.ts.mustache +3 -0
  21. package/src/tasks/create/templates/Constellation/field/Text/index.tsx.mustache +94 -4
  22. package/src/tasks/create/templates/Constellation/template/DETAILS/Avatar.tsx.mustache +78 -0
  23. package/src/tasks/create/templates/Constellation/template/DETAILS/DetailsRender.tsx.mustache +55 -0
  24. package/src/tasks/create/templates/Constellation/template/DETAILS/HighlightRender.tsx.mustache +49 -0
  25. package/src/tasks/create/templates/Constellation/template/DETAILS/Operator.tsx.mustache +218 -0
  26. package/src/tasks/create/templates/Constellation/template/DETAILS/demo.stories.tsx.mustache +77 -23
  27. package/src/tasks/create/templates/Constellation/template/DETAILS/index.tsx.mustache +51 -40
  28. package/src/tasks/create/templates/Constellation/template/DETAILS/mock.ts.mustache +78 -20
  29. package/src/tasks/create/templates/Constellation/template/DETAILS/styles.ts.mustache +16 -0
  30. package/src/tasks/create/templates/Constellation/template/DETAILS-region/Avatar.tsx.mustache +78 -0
  31. package/src/tasks/create/templates/Constellation/template/DETAILS-region/DetailsRender.tsx.mustache +55 -0
  32. package/src/tasks/create/templates/Constellation/template/DETAILS-region/HighlightRender.tsx.mustache +49 -0
  33. package/src/tasks/create/templates/Constellation/template/DETAILS-region/Operator.tsx.mustache +218 -0
  34. package/src/tasks/create/templates/Constellation/template/DETAILS-region/demo.stories.tsx.mustache +95 -26
  35. package/src/tasks/create/templates/Constellation/template/DETAILS-region/index.tsx.mustache +42 -39
  36. package/src/tasks/create/templates/Constellation/template/DETAILS-region/mock.ts.mustache +68 -10
  37. package/src/tasks/create/templates/Constellation/template/DETAILS-region/styles.ts.mustache +15 -0
  38. package/src/tasks/create/templates/Constellation/template/FORM/DetailsRender.tsx +59 -0
  39. package/src/tasks/create/templates/Constellation/template/FORM/demo.stories.tsx.mustache +73 -8
  40. package/src/tasks/create/templates/Constellation/template/FORM/index.tsx.mustache +33 -5
  41. package/src/tasks/create/templates/Constellation/template/FORM-region/DetailsRender.tsx +59 -0
  42. package/src/tasks/create/templates/Constellation/template/FORM-region/demo.stories.tsx.mustache +95 -15
  43. package/src/tasks/create/templates/Constellation/template/FORM-region/index.tsx.mustache +29 -7
  44. package/src/tasks/create/templates/Constellation/template/PAGE/GetNextWork.tsx.mustache +2 -1
  45. package/src/tasks/create/templates/Constellation/template/PAGE/localizations.json.mustache +4 -2
  46. package/src/tasks/create/templates/Constellation/widget/PAGE/demo.stories.tsx.mustache +87 -6
  47. package/src/tasks/create/templates/Constellation/widget/PAGE/index.tsx.mustache +67 -5
  48. package/src/tasks/create/templates/SDK-Angular/field/Boolean/boolean.component.html.mustache +19 -18
  49. package/src/tasks/create/templates/SDK-Angular/field/Boolean/boolean.component.ts.mustache +127 -44
  50. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/config.json.mustache +64 -0
  51. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/demo.stories.tsx.mustache +63 -0
  52. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/icon-button-url.component.html.mustache +40 -0
  53. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/icon-button-url.component.scss.mustache +24 -0
  54. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/icon-button-url.component.spec.ts.mustache +26 -0
  55. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/icon-button-url.component.ts.mustache +195 -0
  56. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/mock.ts.mustache +37 -0
  57. package/src/tasks/create/templates/SDK-Angular/field/Text-URL/text-url.component.html.mustache +1 -0
  58. package/src/tasks/create/templates/SDK-Angular/field/Text-URL/text-url.component.ts.mustache +2 -0
  59. package/src/tasks/create/templates/SDK-Angular/field/TimeOfDay/time-of-day.component.html.mustache +1 -0
  60. package/src/tasks/create/templates/SDK-Angular/field/TimeOfDay/time-of-day.component.ts.mustache +2 -0
  61. package/src/tasks/create/templates/SDK-Angular/template/FORM-region/form.component.scss.mustache +1 -1
  62. package/src/tasks/create/templates/SDK-Angular/widget/CASE/case.component.ts.mustache +2 -2
  63. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/demo.stories.tsx.mustache +22 -5
  64. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/mock.ts.mustache +25 -0
  65. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/page.component.html.mustache +11 -1
  66. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/page.component.ts.mustache +93 -1
  67. package/src/tasks/create/templates/SDK-React/field/Boolean/demo.stories.tsx.mustache +1 -1
  68. package/src/tasks/create/templates/SDK-React/field/Boolean/mock.ts.mustache +8 -8
  69. package/src/tasks/create/templates/SDK-React/field/Date/index.tsx.mustache +2 -2
  70. package/src/tasks/create/templates/SDK-React/field/Date/mock.ts.mustache +7 -7
  71. package/src/tasks/create/templates/SDK-React/field/DateTime/demo.stories.tsx.mustache +1 -1
  72. package/src/tasks/create/templates/SDK-React/field/DateTime/index.tsx.mustache +2 -3
  73. package/src/tasks/create/templates/SDK-React/field/DateTime/mock.ts.mustache +6 -6
  74. package/src/tasks/create/templates/SDK-React/field/Decimal/index.tsx.mustache +51 -35
  75. package/src/tasks/create/templates/SDK-React/field/Decimal/mock.ts.mustache +1 -1
  76. package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/config.json.mustache +1 -1
  77. package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/demo.stories.tsx.mustache +1 -1
  78. package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/index.tsx.mustache +47 -37
  79. package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/mock.ts.mustache +1 -1
  80. package/src/tasks/create/templates/SDK-React/field/Decimal-Percentage/config.json.mustache +1 -1
  81. package/src/tasks/create/templates/SDK-React/field/Decimal-Percentage/index.tsx.mustache +36 -21
  82. package/src/tasks/create/templates/SDK-React/field/Decimal-Percentage/mock.ts.mustache +1 -1
  83. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/config.json.mustache +64 -0
  84. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/demo.stories.tsx.mustache +91 -0
  85. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/index.tsx.mustache +160 -0
  86. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/mock.ts.mustache +4 -0
  87. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/styles.js.mustache +7 -0
  88. package/src/tasks/create/templates/SDK-React/field/Integer/config.json.mustache +1 -1
  89. package/src/tasks/create/templates/SDK-React/field/Integer/index.tsx.mustache +19 -20
  90. package/src/tasks/create/templates/SDK-React/field/Integer/mock.ts.mustache +1 -1
  91. package/src/tasks/create/templates/SDK-React/field/Picklist/index.tsx.mustache +26 -26
  92. package/src/tasks/create/templates/SDK-React/field/Picklist-RadioButtons/mock.ts.mustache +0 -1
  93. package/src/tasks/create/templates/SDK-React/field/Text/config.json.mustache +1 -1
  94. package/src/tasks/create/templates/SDK-React/field/Text/index.tsx.mustache +0 -1
  95. package/src/tasks/create/templates/SDK-React/field/Text/mock.ts.mustache +1 -1
  96. package/src/tasks/create/templates/SDK-React/field/Text-Email/config.json.mustache +1 -1
  97. package/src/tasks/create/templates/SDK-React/field/Text-Email/mock.ts.mustache +1 -1
  98. package/src/tasks/create/templates/SDK-React/field/Text-Input/config.json.mustache +1 -1
  99. package/src/tasks/create/templates/SDK-React/field/Text-Input/index.tsx.mustache +0 -1
  100. package/src/tasks/create/templates/SDK-React/field/Text-Input/mock.ts.mustache +1 -1
  101. package/src/tasks/create/templates/SDK-React/field/Text-Paragraph/index.tsx.mustache +1 -3
  102. package/src/tasks/create/templates/SDK-React/field/Text-Paragraph/mock.ts.mustache +1 -1
  103. package/src/tasks/create/templates/SDK-React/field/Text-Phone/index.tsx.mustache +17 -9
  104. package/src/tasks/create/templates/SDK-React/field/Text-URL/index.tsx.mustache +1 -2
  105. package/src/tasks/create/templates/SDK-React/field/Text-URL/mock.ts.mustache +1 -1
  106. package/src/tasks/create/templates/SDK-React/field/TimeOfDay/demo.stories.tsx.mustache +4 -4
  107. package/src/tasks/create/templates/SDK-React/field/TimeOfDay/index.tsx.mustache +0 -2
  108. package/src/tasks/create/templates/SDK-React/field/TimeOfDay/mock.ts.mustache +6 -6
  109. package/src/tasks/create/templates/SDK-React/template/DETAILS/demo.stories.tsx.mustache +1 -7
  110. package/src/tasks/create/templates/SDK-React/template/DETAILS/index.tsx.mustache +4 -9
  111. package/src/tasks/create/templates/SDK-React/template/DETAILS/mock.ts.mustache +197 -164
  112. package/src/tasks/create/templates/SDK-React/template/DETAILS-region/demo.stories.tsx.mustache +1 -6
  113. package/src/tasks/create/templates/SDK-React/template/DETAILS-region/index.tsx.mustache +4 -9
  114. package/src/tasks/create/templates/SDK-React/template/DETAILS-region/mock.ts.mustache +207 -163
  115. package/src/tasks/create/templates/SDK-React/template/FORM/config.json.mustache +1 -1
  116. package/src/tasks/create/templates/SDK-React/template/FORM/demo.stories.tsx.mustache +13 -1
  117. package/src/tasks/create/templates/SDK-React/template/FORM/index.tsx.mustache +14 -16
  118. package/src/tasks/create/templates/SDK-React/template/FORM/utils.ts.mustache +1 -1
  119. package/src/tasks/create/templates/SDK-React/template/FORM-region/demo.stories.tsx.mustache +0 -2
  120. package/src/tasks/create/templates/SDK-React/template/FORM-region/mock.ts.mustache +121 -122
  121. package/src/tasks/create/templates/SDK-React/template/PAGE/OneColumn.tsx.mustache +12 -13
  122. package/src/tasks/create/templates/SDK-React/template/PAGE/demo.stories.tsx.mustache +1 -1
  123. package/src/tasks/create/templates/SDK-React/template/PAGE/index.tsx.mustache +3 -5
  124. package/src/tasks/create/templates/SDK-React/template/PAGE/mock.ts.mustache +8 -9
  125. package/src/tasks/create/templates/SDK-React/widget/CASE/config.json.mustache +2 -2
  126. package/src/tasks/create/templates/SDK-React/widget/CASE/demo.stories.tsx.mustache +19 -20
  127. package/src/tasks/create/templates/SDK-React/widget/CASE/index.tsx.mustache +3 -3
  128. package/src/tasks/create/templates/SDK-React/widget/PAGE/config.json.mustache +43 -43
  129. package/src/tasks/create/templates/SDK-React/widget/PAGE/demo.stories.tsx.mustache +45 -2
  130. package/src/tasks/create/templates/SDK-React/widget/PAGE/index.tsx.mustache +168 -3
  131. package/src/tasks/create/templates/SDK-React/widget/PAGE/mock.ts.mustache +26 -1
  132. package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/demo.stories.tsx.mustache +20 -21
  133. package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/index.tsx.mustache +0 -1
  134. package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/mock.ts.mustache +0 -1
  135. package/src/tasks/create-all/index.js +3 -0
  136. package/src/tasks/publish/helper.js +4 -0
  137. package/src/tasks/publish-all/helper.js +6 -2
  138. package/src/tasks/validator/index.js +7 -1
  139. package/tests/assets/sdk-r/components/create/custom-constellation/field/Pega_DXIL_MyTestText/index.tsx +94 -4
  140. package/tests/assets/sdk-r/components/create/custom-sdk/field/Pega_DXIL_MyTestText/config.json +1 -1
  141. package/tests/assets/sdk-r/components/create/custom-sdk/field/Pega_DXIL_MyTestText/index.tsx +0 -1
  142. package/tests/assets/sdk-r/components/create/custom-sdk/field/Pega_DXIL_MyTestText/mock.ts +1 -1
  143. package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +2 -2
  144. package/tests/assets/sdk-r/components/create/override-sdk/field/CancelAlert/CancelAlert.tsx +2 -0
  145. package/tests/assets/sdk-r/components/create/override-sdk/field/Currency/Currency.tsx +36 -26
  146. package/tests/assets/sdk-r/components/create/override-sdk/field/Decimal/Decimal.tsx +33 -19
  147. package/tests/assets/sdk-r/components/create/override-sdk/field/Multiselect/Multiselect.tsx +1 -1
  148. package/tests/assets/sdk-r/components/create/override-sdk/field/Percentage/Percentage.tsx +33 -18
  149. package/tests/assets/sdk-r/components/create/override-sdk/field/Phone/Phone.tsx +16 -7
  150. package/tests/assets/sdk-r/components/create/override-sdk/field/ScalarList/ScalarList.tsx +2 -0
  151. package/tests/assets/sdk-r/components/create/override-sdk/field/UserReference/UserReference.tsx +11 -1
  152. package/tests/assets/sdk-r/components/create/override-sdk/infra/Assignment/Assignment.tsx +28 -1
  153. package/tests/assets/sdk-r/components/create/override-sdk/infra/DashboardFilter/DashboardFilter.tsx +1 -1
  154. package/tests/assets/sdk-r/components/create/override-sdk/infra/DeferLoad/DeferLoad.tsx +5 -1
  155. package/tests/assets/sdk-r/components/create/override-sdk/infra/MultiStep/MultiStep.tsx +3 -1
  156. package/tests/assets/sdk-r/components/create/override-sdk/infra/NavBar/NavBar.tsx +2 -2
  157. package/tests/assets/sdk-r/components/create/override-sdk/template/CaseView/CaseView.tsx +2 -1
  158. package/tests/assets/sdk-r/components/create/override-sdk/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +1 -1
  159. package/tests/assets/sdk-r/components/create/override-sdk/template/DataReference/DataReference.tsx +1 -1
  160. package/tests/assets/sdk-r/components/create/override-sdk/template/DefaultForm/utils/index.ts +2 -7
  161. package/tests/assets/sdk-r/components/create/override-sdk/template/Details/Details.tsx +1 -1
  162. package/tests/assets/sdk-r/components/create/override-sdk/template/DetailsThreeColumn/DetailsThreeColumn.tsx +1 -1
  163. package/tests/assets/sdk-r/components/create/override-sdk/template/DetailsTwoColumn/DetailsTwoColumn.tsx +1 -1
  164. package/tests/assets/sdk-r/components/create/override-sdk/template/FieldGroupTemplate/FieldGroupTemplate.tsx +2 -0
  165. package/tests/assets/sdk-r/components/create/override-sdk/template/ListView/ListView.tsx +20 -31
  166. package/tests/assets/sdk-r/components/create/override-sdk/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +1 -1
  167. package/tests/assets/sdk-r/components/create/override-sdk/template/NarrowWideDetails/NarrowWideDetails.tsx +1 -1
  168. package/tests/assets/sdk-r/components/create/override-sdk/template/PromotedFilters/PromotedFilters.tsx +1 -0
  169. package/tests/assets/sdk-r/components/create/override-sdk/template/SimpleTableManual/SimpleTableManual.tsx +4 -0
  170. package/tests/assets/sdk-r/components/create/override-sdk/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +1 -1
  171. package/tests/assets/sdk-r/components/create/override-sdk/template/WideNarrowDetails/WideNarrowDetails.tsx +1 -1
  172. package/tests/assets/sdk-r/components/create/override-sdk/widget/Attachment/Attachment.tsx +3 -2
  173. package/tests/assets/sdk-r/components/create/override-sdk/widget/FileUtility/FileUtility.tsx +1 -1
  174. package/tests/assets/sdk-r/components/create/override-sdk/widget/QuickCreate/QuickCreate.tsx +1 -0
  175. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyBoolean/index.tsx +3 -2
  176. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyIconButtonURL/PConnProps.d.ts +46 -0
  177. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyIconButtonURL/demo.stories.tsx +99 -0
  178. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyIconButtonURL/index.tsx +201 -0
  179. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyIconButtonURL/mock.ts +5 -0
  180. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyIconButtonURL/styles.ts +8 -0
  181. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyPicklist/index.tsx +0 -1
  182. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MySearchbox/date.ts +15 -37
  183. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MySearchbox/index.tsx +11 -0
  184. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MySearchbox/utils.ts +3 -0
  185. package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MyText/index.tsx +94 -4
  186. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/Avatar.tsx +78 -0
  187. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/DetailsRender.tsx +52 -0
  188. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/HighlightRender.tsx +46 -0
  189. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/Operator.tsx +215 -0
  190. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/demo.stories.tsx +77 -23
  191. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/index.tsx +48 -37
  192. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/mock.ts +78 -20
  193. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/styles.ts +16 -0
  194. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyForm/DetailsRender.tsx +59 -0
  195. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyForm/demo.stories.tsx +73 -8
  196. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyForm/index.tsx +30 -5
  197. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyPage/GetNextWork.tsx +2 -1
  198. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyPage/localizations.json +4 -2
  199. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/Avatar.tsx +78 -0
  200. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/DetailsRender.tsx +52 -0
  201. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/HighlightRender.tsx +46 -0
  202. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/Operator.tsx +215 -0
  203. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/demo.stories.tsx +95 -26
  204. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/index.tsx +39 -36
  205. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/mock.ts +68 -10
  206. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/styles.ts +15 -0
  207. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnForm/DetailsRender.tsx +59 -0
  208. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnForm/demo.stories.tsx +95 -15
  209. package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnForm/index.tsx +23 -4
  210. package/tests/assets/sdk-r/components/createAll/custom-constellation/widget/Pega_DXIL_MyPageWidget/demo.stories.tsx +87 -6
  211. package/tests/assets/sdk-r/components/createAll/custom-constellation/widget/Pega_DXIL_MyPageWidget/index.tsx +67 -5
  212. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyBoolean/demo.stories.tsx +1 -1
  213. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyBoolean/mock.ts +8 -8
  214. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyCurrency/config.json +1 -1
  215. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyCurrency/demo.stories.tsx +1 -1
  216. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyCurrency/index.tsx +44 -34
  217. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyCurrency/mock.ts +1 -1
  218. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDate/index.tsx +2 -2
  219. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDate/mock.ts +7 -7
  220. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDateTime/demo.stories.tsx +1 -1
  221. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDateTime/index.tsx +2 -3
  222. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDateTime/mock.ts +6 -6
  223. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDecimal/index.tsx +48 -32
  224. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDecimal/mock.ts +1 -1
  225. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyEmail/config.json +1 -1
  226. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyEmail/mock.ts +1 -1
  227. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyIconButtonURL/config.json +64 -0
  228. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyIconButtonURL/demo.stories.tsx +91 -0
  229. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyIconButtonURL/index.tsx +157 -0
  230. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyIconButtonURL/mock.ts +4 -0
  231. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyIconButtonURL/styles.js +7 -0
  232. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyInteger/config.json +1 -1
  233. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyInteger/index.tsx +16 -17
  234. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyInteger/mock.ts +1 -1
  235. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyParagraph/index.tsx +1 -3
  236. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyParagraph/mock.ts +1 -1
  237. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPercentage/config.json +1 -1
  238. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPercentage/index.tsx +34 -19
  239. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPercentage/mock.ts +1 -1
  240. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPhone/index.tsx +17 -9
  241. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPicklist/index.tsx +23 -23
  242. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyRadiobuttons/mock.ts +0 -1
  243. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyText/config.json +1 -1
  244. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyText/index.tsx +0 -1
  245. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyText/mock.ts +1 -1
  246. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTextInput/config.json +1 -1
  247. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTextInput/index.tsx +0 -1
  248. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTextInput/mock.ts +1 -1
  249. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTimeOfDay/demo.stories.tsx +4 -4
  250. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTimeOfDay/index.tsx +0 -2
  251. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTimeOfDay/mock.ts +6 -6
  252. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyURL/index.tsx +1 -2
  253. package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyURL/mock.ts +1 -1
  254. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyDetails/demo.stories.tsx +1 -7
  255. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyDetails/index.tsx +4 -9
  256. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyDetails/mock.ts +197 -164
  257. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyForm/config.json +1 -1
  258. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyForm/demo.stories.tsx +13 -1
  259. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyForm/index.tsx +11 -13
  260. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyForm/utils.ts +1 -1
  261. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyPage/OneColumn.tsx +12 -13
  262. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyPage/demo.stories.tsx +1 -1
  263. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyPage/index.tsx +3 -5
  264. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyPage/mock.ts +8 -9
  265. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyTwoColumnDetails/demo.stories.tsx +1 -6
  266. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyTwoColumnDetails/index.tsx +4 -9
  267. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyTwoColumnDetails/mock.ts +207 -163
  268. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyTwoColumnForm/demo.stories.tsx +0 -2
  269. package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyTwoColumnForm/mock.ts +121 -122
  270. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyCaseWidget/config.json +2 -2
  271. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyCaseWidget/demo.stories.tsx +19 -20
  272. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyCaseWidget/index.tsx +3 -3
  273. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageCaseWidget/demo.stories.tsx +20 -21
  274. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageCaseWidget/index.tsx +0 -1
  275. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageCaseWidget/mock.ts +0 -1
  276. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageWidget/config.json +43 -43
  277. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageWidget/demo.stories.tsx +45 -2
  278. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageWidget/index.tsx +168 -3
  279. package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageWidget/mock.ts +26 -1
  280. package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +2 -2
  281. package/tests/assets/sdk-r/components/createAll/override-sdk/field/CancelAlert/CancelAlert.tsx +2 -0
  282. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Currency/Currency.tsx +36 -26
  283. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Decimal/Decimal.tsx +33 -19
  284. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Multiselect/Multiselect.tsx +1 -1
  285. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Percentage/Percentage.tsx +33 -18
  286. package/tests/assets/sdk-r/components/createAll/override-sdk/field/Phone/Phone.tsx +16 -7
  287. package/tests/assets/sdk-r/components/createAll/override-sdk/field/ScalarList/ScalarList.tsx +2 -0
  288. package/tests/assets/sdk-r/components/createAll/override-sdk/field/UserReference/UserReference.tsx +11 -1
  289. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/Assignment/Assignment.tsx +28 -1
  290. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/DashboardFilter/DashboardFilter.tsx +1 -1
  291. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/DeferLoad/DeferLoad.tsx +5 -1
  292. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/MultiStep/MultiStep.tsx +3 -1
  293. package/tests/assets/sdk-r/components/createAll/override-sdk/infra/NavBar/NavBar.tsx +2 -2
  294. package/tests/assets/sdk-r/components/createAll/override-sdk/template/CaseView/CaseView.tsx +2 -1
  295. package/tests/assets/sdk-r/components/createAll/override-sdk/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +1 -1
  296. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DataReference/DataReference.tsx +1 -1
  297. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DefaultForm/utils/index.ts +2 -7
  298. package/tests/assets/sdk-r/components/createAll/override-sdk/template/Details/Details.tsx +1 -1
  299. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DetailsThreeColumn/DetailsThreeColumn.tsx +1 -1
  300. package/tests/assets/sdk-r/components/createAll/override-sdk/template/DetailsTwoColumn/DetailsTwoColumn.tsx +1 -1
  301. package/tests/assets/sdk-r/components/createAll/override-sdk/template/FieldGroupTemplate/FieldGroupTemplate.tsx +2 -0
  302. package/tests/assets/sdk-r/components/createAll/override-sdk/template/ListView/ListView.tsx +20 -31
  303. package/tests/assets/sdk-r/components/createAll/override-sdk/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +1 -1
  304. package/tests/assets/sdk-r/components/createAll/override-sdk/template/NarrowWideDetails/NarrowWideDetails.tsx +1 -1
  305. package/tests/assets/sdk-r/components/createAll/override-sdk/template/PromotedFilters/PromotedFilters.tsx +1 -0
  306. package/tests/assets/sdk-r/components/createAll/override-sdk/template/SimpleTableManual/SimpleTableManual.tsx +4 -0
  307. package/tests/assets/sdk-r/components/createAll/override-sdk/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +1 -1
  308. package/tests/assets/sdk-r/components/createAll/override-sdk/template/WideNarrowDetails/WideNarrowDetails.tsx +1 -1
  309. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/Attachment/Attachment.tsx +3 -2
  310. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/FileUtility/FileUtility.tsx +1 -1
  311. package/tests/assets/sdk-r/components/createAll/override-sdk/widget/QuickCreate/QuickCreate.tsx +1 -0
@@ -6,3 +6,19 @@ export default styled.div(() => {
6
6
  margin: 0px 0;
7
7
  `;
8
8
  });
9
+
10
+ export const StyledDetailsGridContainer = styled.div(() => {
11
+ return css`
12
+ margin-line-start: 1;
13
+ `;
14
+ });
15
+
16
+
17
+ export const StyledHighlightedFieldsHrLine = styled.hr(() => {
18
+ return css`
19
+ line: {
20
+ margin: '0.75rem 0';
21
+ opacity: '50%'
22
+ }
23
+ `;
24
+ });
@@ -0,0 +1,78 @@
1
+ /* eslint-disable react-hooks/rules-of-hooks */
2
+ import React from 'react';
3
+ import { useEffect, useState } from 'react';
4
+ import { Avatar as CosmosAvatar, withConfiguration } from '@pega/cosmos-react-core';
5
+ import type { PConnFieldProps } from './PConnProps';
6
+
7
+
8
+ // interface for props
9
+ interface {{COMPONENT_CLASS_NAME}}AvatarProps extends PConnFieldProps {
10
+ // If any, enter additional props that only exist on TextInput here
11
+ metaObj: any;
12
+ showStatus: boolean;
13
+
14
+ }
15
+
16
+ function Avatar(props: {{COMPONENT_CLASS_NAME}}AvatarProps) {
17
+ const { metaObj, showStatus = false } = props;
18
+ const [imageBlobUrl, setImageBlobUrl] = useState(null);
19
+ let userName: string;
20
+ let userIdentifier: string;
21
+
22
+ // TODO Below if conditions can be removed once we have apis to get worklist/mywork info
23
+ // This is non CaseView case (Dashboard, MyWork etc)
24
+ if (!metaObj) {
25
+ userName = PCore.getEnvironmentInfo().getOperatorName();
26
+ userIdentifier = PCore.getEnvironmentInfo().getOperatorIdentifier();
27
+ } else {
28
+ userName = metaObj.name;
29
+ userIdentifier = metaObj.ID;
30
+ }
31
+ if (!userName && userIdentifier) {
32
+ userName = userIdentifier;
33
+ }
34
+
35
+ useEffect(() => {
36
+ const imageKey = !metaObj ? PCore.getEnvironmentInfo().getOperatorImageInsKey() : metaObj.image;
37
+ if (imageKey) {
38
+ PCore.getAssetLoader()
39
+ .getSvcImage(imageKey)
40
+ .then((blob) => window.URL.createObjectURL(blob))
41
+ .then((imagePath) => setImageBlobUrl(imagePath as React.SetStateAction<any>));
42
+ }
43
+ }, [metaObj]);
44
+
45
+ if (showStatus) {
46
+ const currentState = PCore.getMessagingServiceManager().getUserPresence().getUserState(userIdentifier);
47
+ const [userState, setUserState]: any = useState(currentState === 'online' ? 'active' : 'inactive');
48
+
49
+ // @ts-ignore
50
+ const handleUserStateChange = ({ state }) => {
51
+ setUserState(state === 'online' ? 'active' : 'inactive');
52
+ };
53
+
54
+ useEffect(() => {
55
+ const subId = PCore.getMessagingServiceManager()
56
+ .getUserPresence()
57
+ // @ts-ignore
58
+ .subscribe(userIdentifier, handleUserStateChange);
59
+
60
+ return function cleanup() {
61
+ PCore.getMessagingServiceManager().getUserPresence().unsubscribe(userIdentifier, subId);
62
+ };
63
+ }, [userIdentifier, handleUserStateChange]);
64
+ // @ts-ignore
65
+ return <CosmosAvatar name={userName} imageSrc={imageBlobUrl as React.SetStateAction<any>} status={userState} />;
66
+ }
67
+
68
+ // Do not render when userName does not exists
69
+ // TODO : In CNR case, pxRequestor is not available, please remove this condition once it populates
70
+ if (!userName) {
71
+ return null;
72
+ }
73
+
74
+ return <CosmosAvatar name={userName} imageSrc={imageBlobUrl as React.SetStateAction<any>} />;
75
+ }
76
+
77
+
78
+ export default withConfiguration(Avatar);
@@ -0,0 +1,55 @@
1
+ import { Fragment, ReactElement } from 'react';
2
+ import { FieldValueList } from '@pega/cosmos-react-core';
3
+
4
+ interface DetailsRenderProps {
5
+ children?: never;
6
+ child: NonNullable<ReactElement>;
7
+ }
8
+
9
+ const DetailsRender = (props: DetailsRenderProps) => {
10
+ const { child } = props;
11
+
12
+ const kids = child.props.getPConnect().getChildren();
13
+
14
+ const displayCompArr: ReactElement[] = [];
15
+
16
+ Object.values(kids).forEach((value: any, i :number) => {
17
+ const { type } = value.getPConnect().getRawMetadata();
18
+ const { hideLabel, variant, testId, label } = value
19
+ .getPConnect()
20
+ .resolveConfigProps(value.getPConnect().getConfigProps());
21
+
22
+ let displayComp;
23
+ const key = JSON.stringify(value.getPConnect());
24
+ const key1 = key.concat(`-${i}`);
25
+
26
+ if (type === 'reference') {
27
+ const refElement = value.getPConnect().getComponent();
28
+
29
+ displayCompArr.push(refElement);
30
+ } else {
31
+ const element = value.getPConnect().getComponent();
32
+ const displayEl = <Fragment key={key}>{element}</Fragment>;
33
+
34
+ {{! pick new delimiters for mustache }}
35
+ {{=<% %>=}}
36
+ displayComp = (
37
+ <Fragment key={key1}>
38
+ <FieldValueList
39
+ style={{ columnGap: '0'}}
40
+ variant={hideLabel ? 'stacked' : variant}
41
+ data-testid={testId}
42
+ fields={[{ id: '1', name: hideLabel ? '' : label, value: displayEl }]}
43
+ />
44
+ </Fragment>
45
+ );
46
+ <%={{ }}=%> {{! revert delimiters for mustache }}
47
+
48
+ displayCompArr.push(displayComp);
49
+ }
50
+ });
51
+
52
+ return <>{displayCompArr}</>;
53
+ };
54
+
55
+ export default DetailsRender;
@@ -0,0 +1,49 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
+ import React from 'react';
3
+ import { FieldValueList, Text } from '@pega/cosmos-react-core';
4
+ import type { PConnProps } from './PConnProps';
5
+
6
+ interface HighlightRenderProps extends PConnProps {
7
+ field?: any;
8
+ }
9
+
10
+ const HighlightRender = (props: HighlightRenderProps) => {
11
+ const { getPConnect, field } = props;
12
+
13
+ field.config.displayMode = 'DISPLAY_ONLY';
14
+
15
+ // Mark as status display when using pyStatusWork
16
+ if (field.config?.value === '@P .pyStatusWork') {
17
+ field.type = 'TextInput';
18
+ field.config.displayAsStatus = true;
19
+ }
20
+
21
+ const configProps: any = getPConnect().resolveConfigProps(field.config);
22
+
23
+ // @ts-ignore
24
+ const reactField = getPConnect().createComponent(field);
25
+
26
+ return (
27
+ {{! pick new delimiters for mustache }}
28
+ {{=<% %>=}}
29
+ <FieldValueList
30
+ style={{ width: 'auto' }}
31
+ variant='stacked'
32
+ data-testid={field.testId}
33
+ fields={[
34
+ {
35
+ id: '2',
36
+ name: configProps.hideLabel ? '' : configProps.label,
37
+ value: (
38
+ <Text variant='h1' as='span'>
39
+ {reactField}
40
+ </Text>
41
+ )
42
+ }
43
+ ]}
44
+ />
45
+ <%={{ }}=%> {{! revert delimiters for mustache }}
46
+ );
47
+ };
48
+
49
+ export default HighlightRender;
@@ -0,0 +1,218 @@
1
+ // @ts-nocheck
2
+ import { useState, useEffect, Fragment } from 'react';
3
+ import {
4
+ Link,
5
+ Button,
6
+ Popover,
7
+ useOuterEvent,
8
+ useElement,
9
+ Progress,
10
+ FormField,
11
+ useTheme,
12
+ withConfiguration
13
+ } from '@pega/cosmos-react-core';
14
+ import { Glimpse } from '@pega/cosmos-react-work';
15
+ import { EmailDisplay } from '@pega/cosmos-react-core';
16
+
17
+ import type { PConnFieldProps } from './PConnProps';
18
+
19
+ import Avatar from './Avatar';
20
+
21
+
22
+ // interface for props
23
+ interface {{COMPONENT_CLASS_NAME}}OperatorProps extends PConnFieldProps {
24
+ // If any, enter additional props that only exist on TextInput here
25
+ name: string;
26
+ id: string;
27
+ label: string;
28
+ metaObj: any;
29
+ externalUser: any;
30
+ }
31
+
32
+ let pTarget = null;
33
+
34
+ function Operator(props: {{COMPONENT_CLASS_NAME}}OperatorProps) {
35
+ const { id, name, label, testId, helperText, externalUser, metaObj } = props;
36
+ const [isOpen, setIsOpen] = useState(false);
37
+ const [isLoading, setIsLoading] = useState(true);
38
+ const [popoverEl, setPopoverEl] = useElement(null);
39
+ const [popoverContent, setpopoverContent] = useState(null);
40
+ const theme: any = useTheme();
41
+
42
+ /* If the id has changed, we need to reset the popover */
43
+ useEffect(() => {
44
+ pTarget = null;
45
+ }, [id]);
46
+
47
+
48
+ {{! pick new delimiters for mustache }}
49
+ {{=<% %>=}}
50
+
51
+ const OperatorPreview = () => {
52
+ const localizedVal = PCore.getLocaleUtils().getLocaleValue;
53
+ const localeCategory = 'Operator';
54
+ setpopoverContent(
55
+ <Progress variant='ring' message={localizedVal('Loading operator...', localeCategory)} placement='local' />
56
+ );
57
+ if (externalUser && externalUser.classID !== 'Data-Party-Operator') {
58
+ const fields = [
59
+ {
60
+ id: 'pyFirstName',
61
+ name: localizedVal('Name', localeCategory),
62
+ value: externalUser.name
63
+ },
64
+ {
65
+ id: 'pyEmail1',
66
+ name: localizedVal('Email', localeCategory),
67
+ value:
68
+ externalUser.email !== '' ? <Link href={`mailto:${externalUser.email}`}>{externalUser.email}</Link> : ''
69
+ },
70
+ {
71
+ id: 'pyPhoneNumber',
72
+ name: localizedVal('Phone', localeCategory),
73
+ value: externalUser.phone !== '' ? <Link href={`tel:${externalUser.phone}`}>{externalUser.phone}</Link> : ''
74
+ }
75
+ ];
76
+ setIsLoading(false);
77
+ setpopoverContent(
78
+ <Glimpse
79
+ visual={
80
+ <Avatar
81
+ metaObj={{
82
+ name: externalUser.name
83
+ }}
84
+ />
85
+ }
86
+ primary={externalUser.name}
87
+ secondary={[externalUser.position]}
88
+ fields={fields}
89
+ target={pTarget}
90
+ />
91
+ );
92
+ } else {
93
+ return PCore.getUserApi()
94
+ .getOperatorDetails(id, true)
95
+ .then(res => {
96
+ if (res.data?.pyOperatorInfo) {
97
+ const fields = [];
98
+ const data = res.data;
99
+ if (data.pyOperatorInfo && data.pyOperatorInfo.pyUserName) {
100
+ fields.push({
101
+ id: 'Name',
102
+ name: localizedVal('Name', localeCategory),
103
+ value: data.pyOperatorInfo.pyUserName
104
+ });
105
+ }
106
+ if (data.pyOperatorInfo && data.pyOperatorInfo.pyEmailAddress) {
107
+ fields.push({
108
+ id: 'Email',
109
+ name: localizedVal('Email address', localeCategory),
110
+ value: <EmailDisplay value={data.pyOperatorInfo.pyEmailAddress} />
111
+ });
112
+ }
113
+ const opAvatar = (
114
+ <Avatar
115
+ metaObj={{
116
+ image: '',
117
+ name: data.pyOperatorInfo.pyUserName
118
+ }}
119
+ />
120
+ );
121
+
122
+ setIsLoading(false);
123
+ setpopoverContent(
124
+ <Glimpse
125
+ heading={{
126
+ primary: data.pyOperatorInfo.pyUserName,
127
+ secondary: data.pyOperatorInfo.pyEmailAddress,
128
+ visual: opAvatar
129
+ }}
130
+ fields={fields}
131
+ target={pTarget}
132
+ onDismiss={() => {pTarget = null;}}
133
+ />
134
+ );
135
+ }
136
+ });
137
+ }
138
+ };
139
+
140
+ <%={{ }}=%> {{! revert delimiters for mustache }}
141
+
142
+ const clickAction = (e: any) => {
143
+
144
+ setIsOpen(!isOpen);
145
+ if (pTarget === null) {
146
+ pTarget = e.currentTarget;
147
+ OperatorPreview();
148
+ }
149
+ };
150
+
151
+ const hidePopover = () => {
152
+ if (isOpen) {
153
+ setIsOpen(false);
154
+ }
155
+ };
156
+
157
+ useOuterEvent('mousedown', [popoverEl], hidePopover); // Call the method on clicking outside these elements
158
+
159
+ const hideOnEscape = (e: any) => {
160
+ if (e.key === 'Escape') hidePopover(); // Call the method when Escape key is pressed
161
+ };
162
+
163
+ const comp = (
164
+ <Fragment>
165
+ {metaObj ? (
166
+ <Button
167
+ variant='text'
168
+ aria-haspopup
169
+ aria-expanded={isOpen}
170
+ onClick={clickAction}
171
+ onKeyDown={hideOnEscape}
172
+ data-test-id={testId}
173
+ style={label !== null ? { width: 'max-content', height: theme.components.input.height } : undefined}
174
+ >
175
+ <Avatar {...props} />
176
+ </Button>
177
+ ) : (
178
+ <Button
179
+ variant='link'
180
+ aria-haspopup
181
+ aria-expanded={isOpen}
182
+ onClick={clickAction}
183
+ onKeyDown={hideOnEscape}
184
+ data-test-id={testId}
185
+ style={label !== null ? { width: 'max-content', height: theme.components.input.height } : undefined}
186
+ >
187
+ {name}
188
+ </Button>
189
+ )}
190
+
191
+ {isOpen && (
192
+ <Popover
193
+ ref={setPopoverEl}
194
+ groupId='operator'
195
+ target={pTarget}
196
+ placement='bottom-start'
197
+ style={isLoading ? { position: 'relative', width: '10rem', minHeight: '4rem' } : undefined}
198
+ strategy='fixed'
199
+ >
200
+ {popoverContent}
201
+ </Popover>
202
+ )}
203
+ </Fragment>
204
+ );
205
+
206
+ if (label !== null) {
207
+ return (
208
+ <FormField label={label} info={helperText}>
209
+ {comp}
210
+ </FormField>
211
+ );
212
+ }
213
+
214
+ return comp;
215
+ };
216
+
217
+
218
+ export default withConfiguration(Operator);
@@ -1,11 +1,12 @@
1
-
2
-
1
+ /* eslint-disable no-nested-ternary */
2
+ /* eslint-disable react/jsx-no-useless-fragment */
3
3
  // @ts-nocheck
4
4
  import type { Meta, StoryObj } from '@storybook/react';
5
- import { Text, FieldValueList, Button, DateTimeDisplay, useTheme } from '@pega/cosmos-react-core';
5
+ import { Text, FieldValueList, DateTimeDisplay, useTheme } from '@pega/cosmos-react-core';
6
6
  import {{COMPONENT_CLASS_NAME}} from './index';
7
- import { pyReviewRaw, pyReviewResolved, regionChildrenResolved } from './mock';
7
+ import { pyReviewRaw, pyReviewResolved, regionChildrenResolved, operatorDetails, configProps } from './mock';
8
8
  import StatusWorkRenderer from './StatusWork';
9
+ import Operator from './Operator';
9
10
 
10
11
  const meta: Meta<typeof {{COMPONENT_CLASS_NAME}}> = {
11
12
  title: '{{COMPONENT_CLASS_NAME}}',
@@ -18,6 +19,33 @@ const meta: Meta<typeof {{COMPONENT_CLASS_NAME}}> = {
18
19
 
19
20
  export default meta;
20
21
  type Story = StoryObj<typeof {{COMPONENT_CLASS_NAME}}>;
22
+
23
+ if (!window.PCore) {
24
+ window.PCore = {};
25
+ }
26
+
27
+ window.PCore.getLocaleUtils = () => {
28
+ return {
29
+ getLocaleValue: value => {
30
+ return value;
31
+ }
32
+ };
33
+ };
34
+
35
+ window.PCore.getUserApi = () => {
36
+ return {
37
+ getOperatorDetails: () => {
38
+ return new Promise(resolve => {
39
+ resolve(operatorDetails);
40
+ });
41
+ }
42
+ };
43
+ };
44
+
45
+ const Region = () => {
46
+ return <></>;
47
+ };
48
+
21
49
  const renderField = resolvedProps => {
22
50
  const {
23
51
  displayAsStatus = false,
@@ -25,7 +53,7 @@ const renderField = resolvedProps => {
25
53
  value = '',
26
54
  label = '',
27
55
  key,
28
- // eslint-disable-next-line react-hooks/rules-of-hooks
56
+ // eslint-disable-next-line react-hooks/rules-of-hooks, @typescript-eslint/no-unused-vars
29
57
  theme = useTheme()
30
58
  } = resolvedProps;
31
59
 
@@ -53,19 +81,30 @@ const renderField = resolvedProps => {
53
81
 
54
82
  if (displayAsStatus === true) val = <StatusWorkRenderer value={value} key={key} />;
55
83
 
84
+ const [_label] =
85
+ label === 'Create operator'
86
+ ? [configProps.createLabel, configProps.createOperator, configProps.createDateTime]
87
+ : label === 'Update operator'
88
+ ? [configProps.updateLabel, configProps.updateOperator, configProps.updateDateTime]
89
+ : [configProps.resolveLabel, configProps.resolveOperator, configProps.resolveDateTime];
90
+
56
91
  if (label === 'Create Operator')
57
92
  val = (
58
- <Button
59
- variant='link'
60
- style={
61
- label !== null
62
- ? { width: 'max-content', height: theme.components.input.height }
63
- : undefined
64
- }
65
- key={key}
66
- >
67
- {value.userName}
68
- </Button>
93
+ <Operator
94
+ label={configProps.hideLabel ? '' : _label}
95
+ name={configProps.createOperator.userName}
96
+ id={configProps.createOperator.userId}
97
+ value={undefined}
98
+ validatemessage=''
99
+ hideLabel={false}
100
+ readOnly={false}
101
+ required={false}
102
+ disabled={false}
103
+ externalUser={undefined}
104
+ metaObj={undefined}
105
+ testId=''
106
+ helperText=''
107
+ />
69
108
  );
70
109
 
71
110
  if (variant === 'inline') {
@@ -122,24 +161,54 @@ export const Base{{COMPONENT_CLASS_NAME}}: Story = args => {
122
161
  setInheritedProp: () => {
123
162
  /* nothing */
124
163
  },
125
- resolveConfigProps: () => {
126
- /* nothing */
164
+ resolveConfigProps: config => {
165
+ return config;
127
166
  }
128
167
  };
129
168
  }
130
169
  };
131
170
 
132
- const regionAChildren = pyReviewRaw.children[0].children.map(child => {
133
- return props.getPConnect().createComponent(child);
134
- });
135
- const regionBChildren = pyReviewRaw.children[1].children.map(child => {
136
- return props.getPConnect().createComponent(child);
137
- });
138
171
 
139
172
  return (
140
173
  <{{COMPONENT_CLASS_NAME}} {...props} {...args}>
141
- {regionAChildren}
142
- {regionBChildren}
174
+ <Region
175
+ {...{
176
+ getPConnect: () => ({
177
+ setInheritedProp: () => {},
178
+ getChildren: () =>
179
+ pyReviewRaw.children[0].children.map((child, index) => {
180
+ return {
181
+ getPConnect: () => ({
182
+ getRawMetadata: () => pyReviewRaw.children[0].children[index],
183
+ getConfigProps: () => {},
184
+ resolveConfigProps: () => regionChildrenResolved[index],
185
+ getComponent: () =>
186
+ props.getPConnect().createComponent(pyReviewRaw.children[0].children[index])
187
+ })
188
+ };
189
+ })
190
+ })
191
+ }}
192
+ />
193
+ <Region
194
+ {...{
195
+ getPConnect: () => ({
196
+ setInheritedProp: () => {},
197
+ getChildren: () =>
198
+ pyReviewRaw.children[1].children.map((child, index) => {
199
+ return {
200
+ getPConnect: () => ({
201
+ getRawMetadata: () => pyReviewRaw.children[1].children[index],
202
+ getConfigProps: () => {},
203
+ resolveConfigProps: () => regionChildrenResolved[index],
204
+ getComponent: () =>
205
+ props.getPConnect().createComponent(pyReviewRaw.children[1].children[index])
206
+ })
207
+ };
208
+ })
209
+ })
210
+ }}
211
+ />
143
212
  </{{COMPONENT_CLASS_NAME}}>
144
213
  );
145
214
  };