@pega/custom-dx-components 23.1.12 → 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 (277) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/src/cli.js +8 -2
  4. package/src/constants.js +9 -0
  5. package/src/tasks/build-all/helper.js +6 -0
  6. package/src/tasks/build-comp/helper.js +8 -0
  7. package/src/tasks/build-jest-assets/index.js +171 -0
  8. package/src/tasks/bundle/builder/webpack.config.js +15 -1
  9. package/src/tasks/create/index.js +3 -0
  10. package/src/tasks/create/templates/Constellation/Field/Boolean/demo.stories.tsx.mustache +3 -13
  11. package/src/tasks/create/templates/Constellation/Field/Boolean/index.tsx.mustache +8 -5
  12. package/src/tasks/create/templates/Constellation/Field/Date/demo.stories.tsx.mustache +8 -19
  13. package/src/tasks/create/templates/Constellation/Field/Date/index.tsx.mustache +1 -1
  14. package/src/tasks/create/templates/Constellation/Field/DateTime/demo.stories.tsx.mustache +7 -18
  15. package/src/tasks/create/templates/Constellation/Field/DateTime/index.tsx.mustache +1 -1
  16. package/src/tasks/create/templates/Constellation/Field/DateTime/mock.ts.mustache +1 -0
  17. package/src/tasks/create/templates/Constellation/Field/Decimal/demo.stories.tsx.mustache +1 -7
  18. package/src/tasks/create/templates/Constellation/Field/Decimal/index.tsx.mustache +1 -1
  19. package/src/tasks/create/templates/Constellation/Field/Decimal/mock.ts.mustache +1 -0
  20. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/demo.stories.tsx.mustache +2 -9
  21. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/index.tsx.mustache +1 -1
  22. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/mock.ts.mustache +2 -0
  23. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/demo.stories.tsx.mustache +2 -6
  24. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/index.tsx.mustache +1 -1
  25. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/mock.ts.mustache +1 -0
  26. package/src/tasks/create/templates/Constellation/Field/Icon-Button-URL/PConnProps.d.ts.mustache +46 -0
  27. package/src/tasks/create/templates/Constellation/Field/Icon-Button-URL/config.json.mustache +64 -0
  28. package/src/tasks/create/templates/Constellation/Field/Icon-Button-URL/demo.stories.tsx.mustache +104 -0
  29. package/src/tasks/create/templates/Constellation/Field/Icon-Button-URL/index.tsx.mustache +218 -0
  30. package/src/tasks/create/templates/Constellation/Field/Icon-Button-URL/mock.ts.mustache +5 -0
  31. package/src/tasks/create/templates/Constellation/Field/Icon-Button-URL/styles.ts.mustache +8 -0
  32. package/src/tasks/create/templates/Constellation/Field/Integer/demo.stories.tsx.mustache +2 -6
  33. package/src/tasks/create/templates/Constellation/Field/Integer/index.tsx.mustache +1 -1
  34. package/src/tasks/create/templates/Constellation/Field/Picklist/demo.stories.tsx.mustache +2 -6
  35. package/src/tasks/create/templates/Constellation/Field/Picklist/index.tsx.mustache +1 -1
  36. package/src/tasks/create/templates/Constellation/Field/Picklist/mock.ts.mustache +1 -0
  37. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/demo.stories.tsx.mustache +2 -8
  38. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/index.tsx.mustache +11 -0
  39. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/utils.ts.mustache +3 -0
  40. package/src/tasks/create/templates/Constellation/Field/Picklist-RadioButtons/demo.stories.tsx.mustache +1 -7
  41. package/src/tasks/create/templates/Constellation/Field/Text/demo.stories.tsx.mustache +0 -3
  42. package/src/tasks/create/templates/Constellation/Field/Text/index.tsx.mustache +94 -4
  43. package/src/tasks/create/templates/Constellation/Field/Text-Email/demo.stories.tsx.mustache +1 -5
  44. package/src/tasks/create/templates/Constellation/Field/Text-Email/index.tsx.mustache +1 -1
  45. package/src/tasks/create/templates/Constellation/Field/Text-Input/StatusWork.tsx +3 -9
  46. package/src/tasks/create/templates/Constellation/Field/Text-Input/demo.stories.tsx.mustache +1 -5
  47. package/src/tasks/create/templates/Constellation/Field/Text-Input/index.tsx.mustache +1 -1
  48. package/src/tasks/create/templates/Constellation/Field/Text-Input/mock.ts.mustache +1 -0
  49. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/demo.stories.tsx.mustache +1 -5
  50. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/index.tsx.mustache +1 -1
  51. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/mock.ts.mustache +1 -0
  52. package/src/tasks/create/templates/Constellation/Field/Text-Phone/demo.stories.tsx.mustache +2 -5
  53. package/src/tasks/create/templates/Constellation/Field/Text-Phone/index.tsx.mustache +1 -1
  54. package/src/tasks/create/templates/Constellation/Field/Text-Phone/mock.ts.mustache +1 -0
  55. package/src/tasks/create/templates/Constellation/Field/Text-URL/demo.stories.tsx.mustache +1 -5
  56. package/src/tasks/create/templates/Constellation/Field/Text-URL/mock.ts.mustache +1 -0
  57. package/src/tasks/create/templates/Constellation/Field/TimeofDay/demo.stories.tsx.mustache +5 -15
  58. package/src/tasks/create/templates/Constellation/Field/TimeofDay/index.tsx.mustache +1 -1
  59. package/src/tasks/create/templates/Constellation/Template/DETAILS/Avatar.tsx.mustache +78 -0
  60. package/src/tasks/create/templates/Constellation/Template/DETAILS/DetailsRender.tsx.mustache +55 -0
  61. package/src/tasks/create/templates/Constellation/Template/DETAILS/HighlightRender.tsx.mustache +49 -0
  62. package/src/tasks/create/templates/Constellation/Template/DETAILS/Operator.tsx.mustache +218 -0
  63. package/src/tasks/create/templates/Constellation/Template/DETAILS/StatusWork.tsx.mustache +17 -19
  64. package/src/tasks/create/templates/Constellation/Template/DETAILS/demo.stories.tsx.mustache +79 -25
  65. package/src/tasks/create/templates/Constellation/Template/DETAILS/index.tsx.mustache +51 -40
  66. package/src/tasks/create/templates/Constellation/Template/DETAILS/mock.ts.mustache +78 -20
  67. package/src/tasks/create/templates/Constellation/Template/DETAILS/styles.ts.mustache +16 -0
  68. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/Avatar.tsx.mustache +78 -0
  69. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/DetailsRender.tsx.mustache +55 -0
  70. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/HighlightRender.tsx.mustache +49 -0
  71. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/Operator.tsx.mustache +218 -0
  72. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/StatusWork.tsx.mustache +17 -19
  73. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/demo.stories.tsx.mustache +96 -27
  74. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/index.tsx.mustache +42 -39
  75. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/mock.ts.mustache +68 -10
  76. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/styles.ts.mustache +15 -0
  77. package/src/tasks/create/templates/Constellation/Template/FORM/DetailsRender.tsx +59 -0
  78. package/src/tasks/create/templates/Constellation/Template/FORM/demo.stories.tsx.mustache +5 -3
  79. package/src/tasks/create/templates/Constellation/Template/FORM/index.tsx.mustache +31 -5
  80. package/src/tasks/create/templates/Constellation/Template/FORM-region/DetailsRender.tsx +59 -0
  81. package/src/tasks/create/templates/Constellation/Template/FORM-region/demo.stories.tsx.mustache +4 -2
  82. package/src/tasks/create/templates/Constellation/Template/FORM-region/index.tsx.mustache +29 -7
  83. package/src/tasks/create/templates/Constellation/Template/PAGE/GetNextWork.tsx.mustache +2 -1
  84. package/src/tasks/create/templates/Constellation/Template/PAGE/demo.stories.tsx.mustache +4 -3
  85. package/src/tasks/create/templates/Constellation/Template/PAGE/localizations.json.mustache +4 -2
  86. package/src/tasks/create/templates/Constellation/Widget/CASE/demo.stories.tsx.mustache +3 -2
  87. package/src/tasks/create/templates/Constellation/Widget/PAGE/demo.stories.tsx.mustache +91 -13
  88. package/src/tasks/create/templates/Constellation/Widget/PAGE/index.tsx.mustache +67 -5
  89. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/demo.stories.tsx.mustache +5 -4
  90. package/src/tasks/create/templates/Launchpad/Field/Icon-Button-URL/PConnProps.d.ts.mustache +46 -0
  91. package/src/tasks/create/templates/Launchpad/Field/Icon-Button-URL/config.json.mustache +32 -0
  92. package/src/tasks/create/templates/Launchpad/Field/Icon-Button-URL/demo.stories.tsx.mustache +103 -0
  93. package/src/tasks/create/templates/Launchpad/Field/Icon-Button-URL/index.tsx.mustache +216 -0
  94. package/src/tasks/create/templates/Launchpad/Field/Icon-Button-URL/mock.ts.mustache +5 -0
  95. package/src/tasks/create/templates/Launchpad/Field/Icon-Button-URL/styles.ts.mustache +8 -0
  96. package/src/tasks/create/templates/Launchpad/Widget/PAGE/OneColumnPage.svg +36 -0
  97. package/src/tasks/create/templates/Launchpad/Widget/PAGE/PConnProps.d.ts.mustache +46 -0
  98. package/src/tasks/create/templates/Launchpad/Widget/PAGE/config.json.mustache +59 -0
  99. package/src/tasks/create/templates/Launchpad/Widget/PAGE/demo.stories.tsx.mustache +120 -0
  100. package/src/tasks/create/templates/Launchpad/Widget/PAGE/index.tsx.mustache +109 -0
  101. package/src/tasks/create/templates/Launchpad/Widget/PAGE/mock.ts.mustache +25 -0
  102. package/src/tasks/create/templates/Launchpad/Widget/PAGE/styles.ts.mustache +8 -0
  103. package/src/tasks/create-all/index.js +3 -0
  104. package/src/tasks/index.js +1 -0
  105. package/src/tasks/init/template/.storybook/preview.js +3 -0
  106. package/src/tasks/init/template/package.json.mustache +7 -6
  107. package/src/tasks/init/template/tsconfig.build.json +3 -1
  108. package/src/tasks/publish/helper.js +6 -0
  109. package/src/tasks/publish-all/helper.js +6 -0
  110. package/src/tasks/validator/index.js +7 -1
  111. package/src/util.js +18 -0
  112. package/tests/assets/components/create/Pega_DXIL_MyDetails.zip +0 -0
  113. package/tests/assets/components/create/Pega_DXIL_MyTestText/demo.stories.tsx +0 -3
  114. package/tests/assets/components/create/Pega_DXIL_MyTestText/index.tsx +94 -4
  115. package/tests/assets/components/create/_components.md +1 -0
  116. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyBoolean/demo.stories.tsx +3 -13
  117. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyBoolean/index.tsx +8 -5
  118. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyCaseWidget/demo.stories.tsx +3 -2
  119. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyCurrency/demo.stories.tsx +2 -9
  120. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyCurrency/index.tsx +1 -1
  121. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyCurrency/mock.ts +2 -0
  122. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDate/demo.stories.tsx +8 -19
  123. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDate/index.tsx +1 -1
  124. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDateTime/demo.stories.tsx +7 -18
  125. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDateTime/index.tsx +1 -1
  126. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDateTime/mock.ts +1 -0
  127. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDecimal/demo.stories.tsx +1 -7
  128. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDecimal/index.tsx +1 -1
  129. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDecimal/mock.ts +1 -0
  130. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDetails/Avatar.tsx +78 -0
  131. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDetails/DetailsRender.tsx +52 -0
  132. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDetails/HighlightRender.tsx +46 -0
  133. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDetails/Operator.tsx +215 -0
  134. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDetails/StatusWork.tsx +17 -19
  135. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDetails/demo.stories.tsx +79 -25
  136. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDetails/index.tsx +48 -37
  137. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDetails/mock.ts +78 -20
  138. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDetails/styles.ts +16 -0
  139. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDetails.zip +0 -0
  140. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyEmail/demo.stories.tsx +1 -5
  141. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyEmail/index.tsx +1 -1
  142. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyForm/DetailsRender.tsx +59 -0
  143. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyForm/demo.stories.tsx +5 -3
  144. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyForm/index.tsx +28 -5
  145. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyIconButtonURL/PConnProps.d.ts +46 -0
  146. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyIconButtonURL/config.json +64 -0
  147. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyIconButtonURL/demo.stories.tsx +104 -0
  148. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyIconButtonURL/index.tsx +215 -0
  149. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyIconButtonURL/mock.ts +5 -0
  150. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyIconButtonURL/styles.ts +8 -0
  151. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyInteger/demo.stories.tsx +2 -6
  152. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyInteger/index.tsx +1 -1
  153. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPage/GetNextWork.tsx +2 -1
  154. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPage/demo.stories.tsx +4 -3
  155. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPage/localizations.json +4 -2
  156. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPageCaseWidget/demo.stories.tsx +5 -4
  157. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPageWidget/demo.stories.tsx +91 -13
  158. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPageWidget/index.tsx +67 -5
  159. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyParagraph/demo.stories.tsx +1 -5
  160. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyParagraph/index.tsx +1 -1
  161. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyParagraph/mock.ts +1 -0
  162. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPercentage/demo.stories.tsx +2 -6
  163. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPercentage/index.tsx +1 -1
  164. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPercentage/mock.ts +1 -0
  165. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPhone/demo.stories.tsx +2 -5
  166. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPhone/index.tsx +1 -1
  167. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPhone/mock.ts +1 -0
  168. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPicklist/demo.stories.tsx +2 -6
  169. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPicklist/index.tsx +1 -1
  170. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPicklist/mock.ts +1 -0
  171. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyRadioButtons/demo.stories.tsx +1 -7
  172. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MySearchbox/demo.stories.tsx +2 -8
  173. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MySearchbox/index.tsx +11 -0
  174. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MySearchbox/utils.ts +3 -0
  175. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyText/demo.stories.tsx +0 -3
  176. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyText/index.tsx +94 -4
  177. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTextInput/StatusWork.tsx +3 -9
  178. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTextInput/demo.stories.tsx +1 -5
  179. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTextInput/index.tsx +1 -1
  180. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTextInput/mock.ts +1 -0
  181. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTimeOfDay/demo.stories.tsx +5 -15
  182. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTimeOfDay/index.tsx +1 -1
  183. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTwoColumnDetails/Avatar.tsx +78 -0
  184. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTwoColumnDetails/DetailsRender.tsx +52 -0
  185. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTwoColumnDetails/HighlightRender.tsx +46 -0
  186. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTwoColumnDetails/Operator.tsx +215 -0
  187. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTwoColumnDetails/StatusWork.tsx +17 -19
  188. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTwoColumnDetails/demo.stories.tsx +96 -27
  189. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTwoColumnDetails/index.tsx +39 -36
  190. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTwoColumnDetails/mock.ts +68 -10
  191. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTwoColumnDetails/styles.ts +15 -0
  192. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTwoColumnForm/DetailsRender.tsx +59 -0
  193. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTwoColumnForm/demo.stories.tsx +4 -2
  194. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTwoColumnForm/index.tsx +23 -4
  195. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyURL/demo.stories.tsx +1 -5
  196. package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyURL/mock.ts +1 -0
  197. package/tests/assets/components/createAll/Constellation/_components.md +1 -0
  198. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyBoolean/demo.stories.tsx +3 -13
  199. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyBoolean/index.tsx +8 -5
  200. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyCurrency/demo.stories.tsx +2 -9
  201. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyCurrency/index.tsx +1 -1
  202. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyCurrency/mock.ts +2 -0
  203. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDate/demo.stories.tsx +8 -19
  204. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDate/index.tsx +1 -1
  205. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDateTime/demo.stories.tsx +7 -18
  206. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDateTime/index.tsx +1 -1
  207. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDateTime/mock.ts +1 -0
  208. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDecimal/demo.stories.tsx +1 -7
  209. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDecimal/index.tsx +1 -1
  210. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDecimal/mock.ts +1 -0
  211. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDetails/Avatar.tsx +78 -0
  212. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDetails/DetailsRender.tsx +52 -0
  213. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDetails/HighlightRender.tsx +46 -0
  214. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDetails/Operator.tsx +215 -0
  215. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDetails/StatusWork.tsx +17 -19
  216. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDetails/demo.stories.tsx +79 -25
  217. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDetails/index.tsx +48 -37
  218. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDetails/mock.ts +78 -20
  219. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDetails/styles.ts +16 -0
  220. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDetails.zip +0 -0
  221. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyEmail/demo.stories.tsx +1 -5
  222. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyEmail/index.tsx +1 -1
  223. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyForm/DetailsRender.tsx +59 -0
  224. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyForm/demo.stories.tsx +5 -3
  225. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyForm/index.tsx +28 -5
  226. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyIconButtonURL/PConnProps.d.ts +46 -0
  227. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyIconButtonURL/config.json +32 -0
  228. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyIconButtonURL/demo.stories.tsx +103 -0
  229. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyIconButtonURL/index.tsx +213 -0
  230. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyIconButtonURL/mock.ts +5 -0
  231. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyIconButtonURL/styles.ts +8 -0
  232. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyInteger/demo.stories.tsx +2 -6
  233. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyInteger/index.tsx +1 -1
  234. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPage/GetNextWork.tsx +2 -1
  235. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPage/demo.stories.tsx +4 -3
  236. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPage/localizations.json +4 -2
  237. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPageWidget/demo.stories.tsx +88 -9
  238. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPageWidget/index.tsx +67 -5
  239. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyParagraph/demo.stories.tsx +1 -5
  240. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyParagraph/index.tsx +1 -1
  241. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyParagraph/mock.ts +1 -0
  242. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPercentage/demo.stories.tsx +2 -6
  243. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPercentage/index.tsx +1 -1
  244. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPercentage/mock.ts +1 -0
  245. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPhone/demo.stories.tsx +2 -5
  246. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPhone/index.tsx +1 -1
  247. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPhone/mock.ts +1 -0
  248. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPicklist/demo.stories.tsx +2 -6
  249. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPicklist/index.tsx +1 -1
  250. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPicklist/mock.ts +1 -0
  251. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyRadioButtons/demo.stories.tsx +1 -7
  252. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MySearchbox/demo.stories.tsx +2 -8
  253. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MySearchbox/index.tsx +11 -0
  254. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MySearchbox/utils.ts +3 -0
  255. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyText/demo.stories.tsx +0 -3
  256. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyText/index.tsx +94 -4
  257. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTextInput/StatusWork.tsx +3 -9
  258. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTextInput/demo.stories.tsx +1 -5
  259. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTextInput/index.tsx +1 -1
  260. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTextInput/mock.ts +1 -0
  261. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTimeOfDay/demo.stories.tsx +5 -15
  262. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTimeOfDay/index.tsx +1 -1
  263. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTwoColumnDetails/Avatar.tsx +78 -0
  264. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTwoColumnDetails/DetailsRender.tsx +52 -0
  265. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTwoColumnDetails/HighlightRender.tsx +46 -0
  266. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTwoColumnDetails/Operator.tsx +215 -0
  267. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTwoColumnDetails/StatusWork.tsx +17 -19
  268. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTwoColumnDetails/demo.stories.tsx +96 -27
  269. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTwoColumnDetails/index.tsx +39 -36
  270. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTwoColumnDetails/mock.ts +68 -10
  271. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTwoColumnDetails/styles.ts +15 -0
  272. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTwoColumnForm/DetailsRender.tsx +59 -0
  273. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTwoColumnForm/demo.stories.tsx +4 -2
  274. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTwoColumnForm/index.tsx +23 -4
  275. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyURL/demo.stories.tsx +1 -5
  276. package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyURL/mock.ts +1 -0
  277. package/tests/assets/components/createAll/Launchpad/_components.md +1 -0
@@ -0,0 +1,52 @@
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
+ displayComp = (
35
+ <Fragment key={key1}>
36
+ <FieldValueList
37
+ style={{ columnGap: '0'}}
38
+ variant={hideLabel ? 'stacked' : variant}
39
+ data-testid={testId}
40
+ fields={[{ id: '1', name: hideLabel ? '' : label, value: displayEl }]}
41
+ />
42
+ </Fragment>
43
+ );
44
+
45
+ displayCompArr.push(displayComp);
46
+ }
47
+ });
48
+
49
+ return <>{displayCompArr}</>;
50
+ };
51
+
52
+ export default DetailsRender;
@@ -0,0 +1,46 @@
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 = getPConnect().resolveConfigProps(field.config);
22
+
23
+ // @ts-ignore
24
+ const reactField = getPConnect().createComponent(field);
25
+
26
+ return (
27
+ <FieldValueList
28
+ style={{ width: 'auto' }}
29
+ variant='stacked'
30
+ data-testid={field.testId}
31
+ fields={[
32
+ {
33
+ id: '2',
34
+ name: configProps.hideLabel ? '' : configProps.label,
35
+ value: (
36
+ <Text variant='h1' as='span'>
37
+ {reactField}
38
+ </Text>
39
+ )
40
+ }
41
+ ]}
42
+ />
43
+ );
44
+ };
45
+
46
+ export default HighlightRender;
@@ -0,0 +1,215 @@
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 PegaDxilMyDetailsOperatorProps 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: PegaDxilMyDetailsOperatorProps) {
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
+
49
+ const OperatorPreview = () => {
50
+ const localizedVal = PCore.getLocaleUtils().getLocaleValue;
51
+ const localeCategory = 'Operator';
52
+ setpopoverContent(
53
+ <Progress variant='ring' message={localizedVal('Loading operator...', localeCategory)} placement='local' />
54
+ );
55
+ if (externalUser && externalUser.classID !== 'Data-Party-Operator') {
56
+ const fields = [
57
+ {
58
+ id: 'pyFirstName',
59
+ name: localizedVal('Name', localeCategory),
60
+ value: externalUser.name
61
+ },
62
+ {
63
+ id: 'pyEmail1',
64
+ name: localizedVal('Email', localeCategory),
65
+ value:
66
+ externalUser.email !== '' ? <Link href={`mailto:${externalUser.email}`}>{externalUser.email}</Link> : ''
67
+ },
68
+ {
69
+ id: 'pyPhoneNumber',
70
+ name: localizedVal('Phone', localeCategory),
71
+ value: externalUser.phone !== '' ? <Link href={`tel:${externalUser.phone}`}>{externalUser.phone}</Link> : ''
72
+ }
73
+ ];
74
+ setIsLoading(false);
75
+ setpopoverContent(
76
+ <Glimpse
77
+ visual={
78
+ <Avatar
79
+ metaObj={{
80
+ name: externalUser.name
81
+ }}
82
+ />
83
+ }
84
+ primary={externalUser.name}
85
+ secondary={[externalUser.position]}
86
+ fields={fields}
87
+ target={pTarget}
88
+ />
89
+ );
90
+ } else {
91
+ return PCore.getUserApi()
92
+ .getOperatorDetails(id, true)
93
+ .then(res => {
94
+ if (res.data?.pyOperatorInfo) {
95
+ const fields = [];
96
+ const data = res.data;
97
+ if (data.pyOperatorInfo && data.pyOperatorInfo.pyUserName) {
98
+ fields.push({
99
+ id: 'Name',
100
+ name: localizedVal('Name', localeCategory),
101
+ value: data.pyOperatorInfo.pyUserName
102
+ });
103
+ }
104
+ if (data.pyOperatorInfo && data.pyOperatorInfo.pyEmailAddress) {
105
+ fields.push({
106
+ id: 'Email',
107
+ name: localizedVal('Email address', localeCategory),
108
+ value: <EmailDisplay value={data.pyOperatorInfo.pyEmailAddress} />
109
+ });
110
+ }
111
+ const opAvatar = (
112
+ <Avatar
113
+ metaObj={{
114
+ image: '',
115
+ name: data.pyOperatorInfo.pyUserName
116
+ }}
117
+ />
118
+ );
119
+
120
+ setIsLoading(false);
121
+ setpopoverContent(
122
+ <Glimpse
123
+ heading={{
124
+ primary: data.pyOperatorInfo.pyUserName,
125
+ secondary: data.pyOperatorInfo.pyEmailAddress,
126
+ visual: opAvatar
127
+ }}
128
+ fields={fields}
129
+ target={pTarget}
130
+ onDismiss={() => {pTarget = null;}}
131
+ />
132
+ );
133
+ }
134
+ });
135
+ }
136
+ };
137
+
138
+
139
+ const clickAction = (e: any) => {
140
+
141
+ setIsOpen(!isOpen);
142
+ if (pTarget === null) {
143
+ pTarget = e.currentTarget;
144
+ OperatorPreview();
145
+ }
146
+ };
147
+
148
+ const hidePopover = () => {
149
+ if (isOpen) {
150
+ setIsOpen(false);
151
+ }
152
+ };
153
+
154
+ useOuterEvent('mousedown', [popoverEl], hidePopover); // Call the method on clicking outside these elements
155
+
156
+ const hideOnEscape = (e: any) => {
157
+ if (e.key === 'Escape') hidePopover(); // Call the method when Escape key is pressed
158
+ };
159
+
160
+ const comp = (
161
+ <Fragment>
162
+ {metaObj ? (
163
+ <Button
164
+ variant='text'
165
+ aria-haspopup
166
+ aria-expanded={isOpen}
167
+ onClick={clickAction}
168
+ onKeyDown={hideOnEscape}
169
+ data-test-id={testId}
170
+ style={label !== null ? { width: 'max-content', height: theme.components.input.height } : undefined}
171
+ >
172
+ <Avatar {...props} />
173
+ </Button>
174
+ ) : (
175
+ <Button
176
+ variant='link'
177
+ aria-haspopup
178
+ aria-expanded={isOpen}
179
+ onClick={clickAction}
180
+ onKeyDown={hideOnEscape}
181
+ data-test-id={testId}
182
+ style={label !== null ? { width: 'max-content', height: theme.components.input.height } : undefined}
183
+ >
184
+ {name}
185
+ </Button>
186
+ )}
187
+
188
+ {isOpen && (
189
+ <Popover
190
+ ref={setPopoverEl}
191
+ groupId='operator'
192
+ target={pTarget}
193
+ placement='bottom-start'
194
+ style={isLoading ? { position: 'relative', width: '10rem', minHeight: '4rem' } : undefined}
195
+ strategy='fixed'
196
+ >
197
+ {popoverContent}
198
+ </Popover>
199
+ )}
200
+ </Fragment>
201
+ );
202
+
203
+ if (label !== null) {
204
+ return (
205
+ <FormField label={label} info={helperText}>
206
+ {comp}
207
+ </FormField>
208
+ );
209
+ }
210
+
211
+ return comp;
212
+ };
213
+
214
+
215
+ export default withConfiguration(Operator);
@@ -1,28 +1,26 @@
1
1
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
2
  import React from 'react';
3
- import { Status } from "@pega/cosmos-react-core";
3
+ import { Status } from '@pega/cosmos-react-core';
4
4
 
5
5
  export default function StatusWorkRenderer({ value }: any) {
6
- let variant: "pending" | "success" | "info" | "warn" | "urgent" = "info";
6
+ // need to cast variant
7
+ let variant: 'success' | 'urgent' | 'warn' | 'pending' | 'info';
8
+ variant = 'info';
7
9
 
8
- const warnStrings = ["fail", "cancel", "reject", "revoke", "stopped", "warn"];
9
- const infoStrings = ["open", "hold", "info", "new"];
10
- const successStrings = ["resolved", "completed", "success"];
11
- const pendingStrings = ["pending"];
10
+ const warnStrings = ['fail', 'cancel', 'reject', 'revoke', 'stopped', 'warn'];
11
+ const infoStrings = ['open', 'hold', 'info', 'new'];
12
+ const successStrings = ['resolved', 'completed', 'success'];
13
+ const pendingStrings = ['pending'];
12
14
 
13
- if (new RegExp(warnStrings.join("|"), "i").test(value)) {
14
- variant = "warn";
15
- } else if (new RegExp(infoStrings.join("|"), "i").test(value)) {
16
- variant = "info";
17
- } else if (new RegExp(successStrings.join("|"), "i").test(value)) {
18
- variant = "success";
19
- } else if (new RegExp(pendingStrings.join("|"), "i").test(value)) {
20
- variant = "pending";
15
+ if (new RegExp(warnStrings.join('|'), 'i').test(value)) {
16
+ variant = 'warn';
17
+ } else if (new RegExp(infoStrings.join('|'), 'i').test(value)) {
18
+ variant = 'info';
19
+ } else if (new RegExp(successStrings.join('|'), 'i').test(value)) {
20
+ variant = 'success';
21
+ } else if (new RegExp(pendingStrings.join('|'), 'i').test(value)) {
22
+ variant = 'pending';
21
23
  }
22
24
 
23
- return (
24
- <Status type="rectangle" variant={variant}>
25
- {value}
26
- </Status>
27
- );
25
+ return <Status variant={variant}>{value}</Status>;
28
26
  }
@@ -4,9 +4,9 @@
4
4
  import type { Meta, StoryObj } from '@storybook/react';
5
5
  import { Text, FieldValueList, Button, DateTimeDisplay, useTheme } from '@pega/cosmos-react-core';
6
6
  import PegaDxilMyDetails 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
-
9
+ import Operator from './Operator';
10
10
 
11
11
  const meta: Meta<typeof PegaDxilMyDetails> = {
12
12
  title: 'PegaDxilMyDetails',
@@ -20,6 +20,33 @@ const meta: Meta<typeof PegaDxilMyDetails> = {
20
20
  export default meta;
21
21
  type Story = StoryObj<typeof PegaDxilMyDetails>;
22
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 = props => {
46
+ return <></>;
47
+ };
48
+
49
+
23
50
  const renderField = resolvedProps => {
24
51
  const {
25
52
  displayAsStatus = false,
@@ -55,19 +82,30 @@ const renderField = resolvedProps => {
55
82
 
56
83
  if (displayAsStatus === true) val = <StatusWorkRenderer value={value} key={key} />;
57
84
 
85
+ const [_label] =
86
+ label === 'Create operator'
87
+ ? [configProps.createLabel, configProps.createOperator, configProps.createDateTime]
88
+ : label === 'Update operator'
89
+ ? [configProps.updateLabel, configProps.updateOperator, configProps.updateDateTime]
90
+ : [configProps.resolveLabel, configProps.resolveOperator, configProps.resolveDateTime];
91
+
58
92
  if (label === 'Create Operator')
59
93
  val = (
60
- <Button
61
- key={key}
62
- variant='link'
63
- style={
64
- label !== null
65
- ? { width: 'max-content', height: theme.components.input.height }
66
- : undefined
67
- }
68
- >
69
- {value.userName}
70
- </Button>
94
+ <Operator
95
+ label={configProps.hideLabel ? '' : _label}
96
+ name={configProps.createOperator.userName}
97
+ id={configProps.createOperator.userId}
98
+ value={undefined}
99
+ validatemessage=''
100
+ hideLabel={false}
101
+ readOnly={false}
102
+ required={false}
103
+ disabled={false}
104
+ externalUser={undefined}
105
+ metaObj={undefined}
106
+ testId=''
107
+ helperText=''
108
+ />
71
109
  );
72
110
 
73
111
  if (variant === 'inline') {
@@ -88,10 +126,6 @@ const renderField = resolvedProps => {
88
126
 
89
127
  export const BasePegaDxilMyDetails: Story = args => {
90
128
  const props = {
91
- template: 'MyCo_MyComponents_NewDetailsTemplate',
92
- showHighlightedData: true,
93
- label: 'Test Details',
94
- showLabel: true,
95
129
  getPConnect: () => {
96
130
  return {
97
131
  getChildren: () => {
@@ -128,22 +162,42 @@ export const BasePegaDxilMyDetails: Story = args => {
128
162
  setInheritedProp: () => {
129
163
  /* nothing */
130
164
  },
131
- resolveConfigProps: () => {
132
- /* nothing */
165
+ resolveConfigProps: config => {
166
+ return config;
133
167
  }
134
168
  };
135
169
  }
136
170
  };
137
171
 
138
- const regionAChildren = pyReviewRaw.children[0].children.map(child => {
139
- return props.getPConnect().createComponent(child);
140
- });
141
-
142
172
  return (
143
173
  <>
144
- <PegaDxilMyDetails {...props} {...args}>{regionAChildren}</PegaDxilMyDetails>
174
+ <PegaDxilMyDetails {...props} {...args}>
175
+ <Region
176
+ {...{
177
+ getPConnect: () => ({
178
+ setInheritedProp: () => {},
179
+ getChildren: () =>
180
+ pyReviewRaw.children[0].children.map((child, index) => {
181
+ return {
182
+ getPConnect: () => ({
183
+ getRawMetadata: () => pyReviewRaw.children[0].children[index],
184
+ getConfigProps: () => {},
185
+ resolveConfigProps: () => regionChildrenResolved[index],
186
+ getComponent: config =>
187
+ props.getPConnect().createComponent(pyReviewRaw.children[0].children[index])
188
+ })
189
+ };
190
+ })
191
+ })
192
+ }}
193
+ />
194
+ </PegaDxilMyDetails>
145
195
  </>
146
196
  );
147
197
  };
148
198
 
149
- BasePegaDxilMyDetails.args = {};
199
+ BasePegaDxilMyDetails.args = {
200
+ showLabel: true,
201
+ label: 'Details template',
202
+ showHighlightedData: true
203
+ };
@@ -1,13 +1,14 @@
1
- import { Fragment } from 'react';
2
- import { Grid, Flex, FieldGroup, withConfiguration } from '@pega/cosmos-react-core';
1
+ import { Fragment, Children, ReactElement } from 'react';
2
+ import { Grid, Flex, FieldGroup, withConfiguration, GridContainerProps } from '@pega/cosmos-react-core';
3
3
  import type { PConnFieldProps } from './PConnProps';
4
+ import DetailsRender from './DetailsRender';
5
+ import HighlightRender from './HighlightRender';
4
6
 
5
- import StyledPegaDxilMyDetailsWrapper from './styles';
7
+ import StyledPegaDxilMyDetailsWrapper, { StyledDetailsGridContainer, StyledHighlightedFieldsHrLine } from './styles';
6
8
 
7
9
  // includes in bundle
8
10
  import { getAllFields } from './utils';
9
11
 
10
-
11
12
  // interface for props
12
13
  interface PegaDxilMyDetailsProps extends PConnFieldProps {
13
14
  // If any, enter additional props that only exist on TextInput here
@@ -16,31 +17,34 @@ interface PegaDxilMyDetailsProps extends PConnFieldProps {
16
17
  children: any;
17
18
  }
18
19
 
19
- // Duplicated runtime code from Constellation Design System Component
20
-
21
20
  // props passed in combination of props from property panel (config.json) and run time props from Constellation
22
21
  // any default values in config.pros should be set in defaultProps at bottom of this file
23
22
  function PegaDxilMyDetails(props: PegaDxilMyDetailsProps) {
24
23
 
25
- const { getPConnect, children, label, showLabel = true, showHighlightedData = false } = props;
24
+ const { getPConnect, label, showLabel = true, showHighlightedData = false } = props;
26
25
  const propsToUse = { label, showLabel, ...getPConnect().getInheritedProps() };
27
26
 
27
+ // storybook doesn't get children of 1 as an array of 1
28
+ let { children } = props;
29
+ if (!Array.isArray(children)) {
30
+ children = Children.toArray(children);
31
+ }
32
+
33
+ // update children with readonly
34
+ Children.toArray(children).forEach(child => {
35
+ // @ts-ignore
36
+ child.props.getPConnect().setInheritedProp('readOnly', true);
37
+ // @ts-ignore
38
+ child.props.getPConnect().setInheritedProp('displayMode', 'DISPLAY_ONLY');
39
+ });
40
+
28
41
  const numRegions = getAllFields(getPConnect)?.length;
29
42
  const gridRepeat = "repeat(".concat(numRegions).concat(", 1fr)");
30
- const gridContainer = { "colGap": 1};
31
- // @ts-ignore
43
+
44
+ const gridContainer: GridContainerProps = { colGap: 6 };
32
45
  gridContainer.cols = gridRepeat;
33
- // @ts-ignore
34
46
  gridContainer.alignItems = 'start';
35
47
 
36
- const gridHighlightContainer = { "gap": 2};
37
- // @ts-ignore
38
- gridHighlightContainer.cols = gridRepeat;
39
- // @ts-ignore
40
- gridHighlightContainer.alignItems = 'start';
41
- // @ts-ignore
42
- gridHighlightContainer.pad = [0, 0, 2, 0];
43
-
44
48
  // Set up highlighted data to pass in return if is set to show, need raw metadata to pass to createComponent
45
49
  let highlightedDataArr = [];
46
50
  if (showHighlightedData) {
@@ -48,33 +52,40 @@ function PegaDxilMyDetails(props: PegaDxilMyDetailsProps) {
48
52
  const { highlightedData = [] } = getPConnect().getRawMetadata().config;
49
53
  // @ts-ignore
50
54
  highlightedDataArr = highlightedData.map((field) => {
51
- field.config.displayMode = 'STACKED_LARGE_VAL';
52
-
53
- // Mark as status display when using pyStatusWork
54
- if (field.config.value === '@P .pyStatusWork') {
55
- field.type = 'TextInput';
56
- field.config.displayAsStatus = true;
57
- }
58
- // @ts-ignore
59
- return getPConnect().createComponent(field);
55
+ return <HighlightRender field={field} getPConnect={props.getPConnect} />;
60
56
  });
61
57
  }
62
58
 
59
+
63
60
  return (
64
61
  <StyledPegaDxilMyDetailsWrapper>
65
62
  <FieldGroup name={propsToUse.showLabel ? propsToUse.label : ''}>
66
63
  {showHighlightedData && highlightedDataArr.length > 0 && (
67
- <Grid container={gridHighlightContainer}
68
- data-testid={`highlighted-column-count-${numRegions}`}>
69
- {highlightedDataArr.map((child: any, i: number) => (
70
- <Fragment key={`hf-${i + 1}`}>{child}</Fragment>
71
- ))}
72
- </Grid>
64
+ <>
65
+ <Flex
66
+ // @ts-ignore
67
+ container={{ direction: 'row', alignItems: 'normal', colGap: 10 }}
68
+ data-testid={`highlighted-column-count-${numRegions}`}
69
+ >
70
+ {highlightedDataArr.map((child: ReactElement, i: number) => (
71
+ <Fragment key={`hf-${i + 1}`}>{child}</Fragment>
72
+ ))}
73
+ </Flex>
74
+ <StyledHighlightedFieldsHrLine />
75
+ </>
73
76
  )}
74
- <Grid container={gridContainer} data-testid={`column-count-${numRegions}`} >
75
- {children.map((child: any, i: number) => (
76
- <Flex container={{ direction: 'column'}} key={`r-${i + 1}`}>
77
- {child}
77
+ <Grid
78
+ as={StyledDetailsGridContainer}
79
+ container={gridContainer}
80
+ data-testid={`column-count-${numRegions}`} >
81
+ {children.map((child: ReactElement, i: number) => (
82
+
83
+ <Flex
84
+ // @ts-ignore
85
+ container={{ direction: 'column', alignItems: 'normal', colGap: 1, rowGap: 1.5 }}
86
+ key={`r-${i + 1}`}
87
+ >
88
+ <DetailsRender child={child} />
78
89
  </Flex>
79
90
  ))}
80
91
  </Grid>