@pega/sdk 0.0.1

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 (465) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +111 -0
  3. package/SECURITY.md +10 -0
  4. package/dist/index.js +753 -0
  5. package/package.json +41 -0
  6. package/templates/angular-sdk-reference/.github/AGENTS.md +23 -0
  7. package/templates/angular-sdk-reference/.github/copilot-instructions.md +40 -0
  8. package/templates/angular-sdk-reference/.github/skills/pega-sdk-component.md +48 -0
  9. package/templates/angular-sdk-reference/angular.json +34 -0
  10. package/templates/angular-sdk-reference/package.json +31 -0
  11. package/templates/angular-sdk-reference/sdk-config.json +26 -0
  12. package/templates/angular-sdk-reference/src/app/app.component.ts +54 -0
  13. package/templates/angular-sdk-reference/src/index.html +12 -0
  14. package/templates/angular-sdk-reference/src/main.ts +4 -0
  15. package/templates/angular-sdk-reference/src/styles.css +19 -0
  16. package/templates/angular-sdk-reference/tsconfig.json +32 -0
  17. package/templates/react-native-sdk-reference/.github/AGENTS.md +23 -0
  18. package/templates/react-native-sdk-reference/.github/copilot-instructions.md +40 -0
  19. package/templates/react-native-sdk-reference/.github/skills/pega-sdk-component.md +48 -0
  20. package/templates/react-native-sdk-reference/App.tsx +51 -0
  21. package/templates/react-native-sdk-reference/app.json +11 -0
  22. package/templates/react-native-sdk-reference/package.json +22 -0
  23. package/templates/react-native-sdk-reference/sdk-config.json +14 -0
  24. package/templates/react-native-sdk-reference/tsconfig.json +12 -0
  25. package/templates/react-sdk-reference/.github/copilot-instructions.md +185 -0
  26. package/templates/react-sdk-reference/.github/instructions/component-map.instructions.md +40 -0
  27. package/templates/react-sdk-reference/.github/instructions/dse-component.instructions.md +77 -0
  28. package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +73 -0
  29. package/templates/react-sdk-reference/.github/instructions/template-component.instructions.md +94 -0
  30. package/templates/react-sdk-reference/.github/instructions/widget-component.instructions.md +89 -0
  31. package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +21 -0
  32. package/templates/react-sdk-reference/.github/prompts/component-manifest.json +111 -0
  33. package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +110 -0
  34. package/templates/react-sdk-reference/.github/prompts/replace-all-fields.prompt.md +48 -0
  35. package/templates/react-sdk-reference/.github/prompts/replace-component.prompt.md +81 -0
  36. package/templates/react-sdk-reference/.github/prompts/replace-design-system.prompt.md +524 -0
  37. package/templates/react-sdk-reference/.github/prompts/replace-field.prompt.md +41 -0
  38. package/templates/react-sdk-reference/.github/prompts/swap-design-system.prompt.md +49 -0
  39. package/templates/react-sdk-reference/.github/skills/component-contracts.md +140 -0
  40. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/AlertBanner.md +135 -0
  41. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +149 -0
  42. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +154 -0
  43. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +144 -0
  44. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +131 -0
  45. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +111 -0
  46. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +115 -0
  47. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +149 -0
  48. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +83 -0
  49. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +206 -0
  50. package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +135 -0
  51. package/templates/react-sdk-reference/.github/skills/design-system-extension.md +249 -0
  52. package/templates/react-sdk-reference/.github/skills/field-components.md +262 -0
  53. package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +112 -0
  54. package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +203 -0
  55. package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +158 -0
  56. package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +106 -0
  57. package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +99 -0
  58. package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +103 -0
  59. package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +98 -0
  60. package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +114 -0
  61. package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +107 -0
  62. package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +90 -0
  63. package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +87 -0
  64. package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +136 -0
  65. package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +164 -0
  66. package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +164 -0
  67. package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +92 -0
  68. package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +110 -0
  69. package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +146 -0
  70. package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +138 -0
  71. package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +124 -0
  72. package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +216 -0
  73. package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +148 -0
  74. package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +96 -0
  75. package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +101 -0
  76. package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +104 -0
  77. package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +88 -0
  78. package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +85 -0
  79. package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +180 -0
  80. package/templates/react-sdk-reference/.github/skills/run-and-verify.md +68 -0
  81. package/templates/react-sdk-reference/.github/skills/swap-design-system.md +105 -0
  82. package/templates/react-sdk-reference/.github/skills/template-components.md +285 -0
  83. package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +144 -0
  84. package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +122 -0
  85. package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +83 -0
  86. package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +100 -0
  87. package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +131 -0
  88. package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +126 -0
  89. package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +107 -0
  90. package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +120 -0
  91. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +102 -0
  92. package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +110 -0
  93. package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +88 -0
  94. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +95 -0
  95. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +78 -0
  96. package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +78 -0
  97. package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +101 -0
  98. package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +109 -0
  99. package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +113 -0
  100. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +104 -0
  101. package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +85 -0
  102. package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +68 -0
  103. package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +139 -0
  104. package/templates/react-sdk-reference/.github/skills/template-skills/MultiReferenceReadOnly.md +80 -0
  105. package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +141 -0
  106. package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +109 -0
  107. package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +124 -0
  108. package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +135 -0
  109. package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +127 -0
  110. package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +103 -0
  111. package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +79 -0
  112. package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +131 -0
  113. package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +150 -0
  114. package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +135 -0
  115. package/templates/react-sdk-reference/.github/skills/widget-components.md +234 -0
  116. package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +82 -0
  117. package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +146 -0
  118. package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +107 -0
  119. package/templates/react-sdk-reference/.github/skills/widget-skills/FileUtility.md +200 -0
  120. package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +99 -0
  121. package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +114 -0
  122. package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +167 -0
  123. package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +190 -0
  124. package/templates/react-sdk-reference/AGENTS.md +59 -0
  125. package/templates/react-sdk-reference/assets/icons/analytics-good-solid.svg +3 -0
  126. package/templates/react-sdk-reference/assets/icons/cart-solid.svg +3 -0
  127. package/templates/react-sdk-reference/assets/icons/headset.svg +3 -0
  128. package/templates/react-sdk-reference/assets/icons/mobile-phone-solid.svg +3 -0
  129. package/templates/react-sdk-reference/assets/icons/money-solid.svg +3 -0
  130. package/templates/react-sdk-reference/assets/icons/multi-device-solid.svg +3 -0
  131. package/templates/react-sdk-reference/index.html +36 -0
  132. package/templates/react-sdk-reference/package.json +52 -0
  133. package/templates/react-sdk-reference/sdk-config.json +26 -0
  134. package/templates/react-sdk-reference/src/AppSelector.tsx +18 -0
  135. package/templates/react-sdk-reference/src/FallbackComponent.tsx +40 -0
  136. package/templates/react-sdk-reference/src/MashupApp.styles.ts +105 -0
  137. package/templates/react-sdk-reference/src/MashupApp.tsx +254 -0
  138. package/templates/react-sdk-reference/src/PortalApp.tsx +175 -0
  139. package/templates/react-sdk-reference/src/components/component-map.ts +255 -0
  140. package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.css +46 -0
  141. package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.tsx +91 -0
  142. package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/index.tsx +1 -0
  143. package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.css +39 -0
  144. package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.tsx +53 -0
  145. package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/index.tsx +1 -0
  146. package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.css +16 -0
  147. package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +270 -0
  148. package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/index.tsx +1 -0
  149. package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/DetailsFields.tsx +164 -0
  150. package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/index.tsx +1 -0
  151. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/FieldGroup.tsx +79 -0
  152. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/index.tsx +1 -0
  153. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/FieldGroupList.tsx +58 -0
  154. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/index.tsx +1 -0
  155. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/FieldValueList.tsx +84 -0
  156. package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/index.tsx +1 -0
  157. package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/Operator.tsx +220 -0
  158. package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/index.tsx +1 -0
  159. package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/Pulse.tsx +33 -0
  160. package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/index.tsx +1 -0
  161. package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx +201 -0
  162. package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/index.tsx +1 -0
  163. package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.css +33 -0
  164. package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +48 -0
  165. package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/index.tsx +1 -0
  166. package/templates/react-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +218 -0
  167. package/templates/react-sdk-reference/src/components/field/AutoComplete/config-ext.json +10 -0
  168. package/templates/react-sdk-reference/src/components/field/AutoComplete/index.tsx +1 -0
  169. package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.css +24 -0
  170. package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.tsx +148 -0
  171. package/templates/react-sdk-reference/src/components/field/CancelAlert/index.tsx +1 -0
  172. package/templates/react-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +263 -0
  173. package/templates/react-sdk-reference/src/components/field/Checkbox/config-ext.json +9 -0
  174. package/templates/react-sdk-reference/src/components/field/Checkbox/index.tsx +1 -0
  175. package/templates/react-sdk-reference/src/components/field/Currency/Currency.tsx +111 -0
  176. package/templates/react-sdk-reference/src/components/field/Currency/config-ext.json +9 -0
  177. package/templates/react-sdk-reference/src/components/field/Currency/currency-utils.ts +67 -0
  178. package/templates/react-sdk-reference/src/components/field/Currency/index.tsx +1 -0
  179. package/templates/react-sdk-reference/src/components/field/Date/Date.tsx +94 -0
  180. package/templates/react-sdk-reference/src/components/field/Date/config-ext.json +9 -0
  181. package/templates/react-sdk-reference/src/components/field/Date/index.tsx +1 -0
  182. package/templates/react-sdk-reference/src/components/field/DateTime/DateTime.tsx +101 -0
  183. package/templates/react-sdk-reference/src/components/field/DateTime/config-ext.json +8 -0
  184. package/templates/react-sdk-reference/src/components/field/DateTime/index.tsx +1 -0
  185. package/templates/react-sdk-reference/src/components/field/Decimal/Decimal.tsx +122 -0
  186. package/templates/react-sdk-reference/src/components/field/Decimal/config-ext.json +8 -0
  187. package/templates/react-sdk-reference/src/components/field/Decimal/index.tsx +1 -0
  188. package/templates/react-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +238 -0
  189. package/templates/react-sdk-reference/src/components/field/Dropdown/config-ext.json +8 -0
  190. package/templates/react-sdk-reference/src/components/field/Dropdown/index.tsx +1 -0
  191. package/templates/react-sdk-reference/src/components/field/Email/Email.tsx +96 -0
  192. package/templates/react-sdk-reference/src/components/field/Email/config-ext.json +8 -0
  193. package/templates/react-sdk-reference/src/components/field/Email/index.tsx +1 -0
  194. package/templates/react-sdk-reference/src/components/field/Group/Group.tsx +41 -0
  195. package/templates/react-sdk-reference/src/components/field/Group/config-ext.json +7 -0
  196. package/templates/react-sdk-reference/src/components/field/Group/index.tsx +1 -0
  197. package/templates/react-sdk-reference/src/components/field/Integer/Integer.tsx +100 -0
  198. package/templates/react-sdk-reference/src/components/field/Integer/config-ext.json +8 -0
  199. package/templates/react-sdk-reference/src/components/field/Integer/index.tsx +1 -0
  200. package/templates/react-sdk-reference/src/components/field/Location/Location.css +4 -0
  201. package/templates/react-sdk-reference/src/components/field/Location/Location.tsx +258 -0
  202. package/templates/react-sdk-reference/src/components/field/Location/config-ext.json +8 -0
  203. package/templates/react-sdk-reference/src/components/field/Location/index.tsx +1 -0
  204. package/templates/react-sdk-reference/src/components/field/Multiselect/Multiselect.tsx +238 -0
  205. package/templates/react-sdk-reference/src/components/field/Multiselect/index.tsx +1 -0
  206. package/templates/react-sdk-reference/src/components/field/Multiselect/utils.ts +230 -0
  207. package/templates/react-sdk-reference/src/components/field/ObjectReference/ObjectReference.tsx +235 -0
  208. package/templates/react-sdk-reference/src/components/field/ObjectReference/index.tsx +1 -0
  209. package/templates/react-sdk-reference/src/components/field/ObjectReference/utils.ts +111 -0
  210. package/templates/react-sdk-reference/src/components/field/Percentage/Percentage.tsx +112 -0
  211. package/templates/react-sdk-reference/src/components/field/Percentage/config-ext.json +8 -0
  212. package/templates/react-sdk-reference/src/components/field/Percentage/index.tsx +1 -0
  213. package/templates/react-sdk-reference/src/components/field/Phone/Phone.tsx +113 -0
  214. package/templates/react-sdk-reference/src/components/field/Phone/config-ext.json +8 -0
  215. package/templates/react-sdk-reference/src/components/field/Phone/index.tsx +1 -0
  216. package/templates/react-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +158 -0
  217. package/templates/react-sdk-reference/src/components/field/RadioButtons/config-ext.json +8 -0
  218. package/templates/react-sdk-reference/src/components/field/RadioButtons/index.tsx +1 -0
  219. package/templates/react-sdk-reference/src/components/field/RichText/RichText.css +79 -0
  220. package/templates/react-sdk-reference/src/components/field/RichText/RichText.tsx +98 -0
  221. package/templates/react-sdk-reference/src/components/field/RichText/config-ext.json +10 -0
  222. package/templates/react-sdk-reference/src/components/field/RichText/index.tsx +1 -0
  223. package/templates/react-sdk-reference/src/components/field/ScalarList/ScalarList.tsx +63 -0
  224. package/templates/react-sdk-reference/src/components/field/ScalarList/config-ext.json +7 -0
  225. package/templates/react-sdk-reference/src/components/field/ScalarList/index.tsx +1 -0
  226. package/templates/react-sdk-reference/src/components/field/SelectableCard/SelectableCard.tsx +189 -0
  227. package/templates/react-sdk-reference/src/components/field/SelectableCard/index.tsx +1 -0
  228. package/templates/react-sdk-reference/src/components/field/SelectableCard/utils.tsx +223 -0
  229. package/templates/react-sdk-reference/src/components/field/SemanticLink/SemanticLink.tsx +208 -0
  230. package/templates/react-sdk-reference/src/components/field/SemanticLink/config-ext.json +7 -0
  231. package/templates/react-sdk-reference/src/components/field/SemanticLink/index.tsx +1 -0
  232. package/templates/react-sdk-reference/src/components/field/SemanticLink/utils.ts +49 -0
  233. package/templates/react-sdk-reference/src/components/field/TextArea/TextArea.tsx +94 -0
  234. package/templates/react-sdk-reference/src/components/field/TextArea/config-ext.json +8 -0
  235. package/templates/react-sdk-reference/src/components/field/TextArea/index.tsx +1 -0
  236. package/templates/react-sdk-reference/src/components/field/TextContent/TextContent.tsx +46 -0
  237. package/templates/react-sdk-reference/src/components/field/TextContent/config-ext.json +7 -0
  238. package/templates/react-sdk-reference/src/components/field/TextContent/index.tsx +1 -0
  239. package/templates/react-sdk-reference/src/components/field/TextInput/TextInput.tsx +92 -0
  240. package/templates/react-sdk-reference/src/components/field/TextInput/config-ext.json +8 -0
  241. package/templates/react-sdk-reference/src/components/field/TextInput/index.tsx +1 -0
  242. package/templates/react-sdk-reference/src/components/field/Time/Time.tsx +79 -0
  243. package/templates/react-sdk-reference/src/components/field/Time/config-ext.json +8 -0
  244. package/templates/react-sdk-reference/src/components/field/Time/index.tsx +1 -0
  245. package/templates/react-sdk-reference/src/components/field/URL/URL.tsx +89 -0
  246. package/templates/react-sdk-reference/src/components/field/URL/config-ext.json +8 -0
  247. package/templates/react-sdk-reference/src/components/field/URL/index.tsx +1 -0
  248. package/templates/react-sdk-reference/src/components/field/UserReference/UserReference.tsx +198 -0
  249. package/templates/react-sdk-reference/src/components/field/UserReference/UserReferenceUtils.ts +13 -0
  250. package/templates/react-sdk-reference/src/components/field/UserReference/config-ext.json +7 -0
  251. package/templates/react-sdk-reference/src/components/field/UserReference/index.tsx +1 -0
  252. package/templates/react-sdk-reference/src/components/helpers/attachmentShared.ts +6 -0
  253. package/templates/react-sdk-reference/src/components/helpers/case-utils.tsx +99 -0
  254. package/templates/react-sdk-reference/src/components/helpers/common-utils.ts +26 -0
  255. package/templates/react-sdk-reference/src/components/helpers/data_page.ts +20 -0
  256. package/templates/react-sdk-reference/src/components/helpers/date-format-utils.ts +76 -0
  257. package/templates/react-sdk-reference/src/components/helpers/event-utils.ts +20 -0
  258. package/templates/react-sdk-reference/src/components/helpers/field-group-utils.ts +63 -0
  259. package/templates/react-sdk-reference/src/components/helpers/formatters/Boolean.ts +21 -0
  260. package/templates/react-sdk-reference/src/components/helpers/formatters/Currency.ts +77 -0
  261. package/templates/react-sdk-reference/src/components/helpers/formatters/CurrencyMap.ts +913 -0
  262. package/templates/react-sdk-reference/src/components/helpers/formatters/Date.ts +71 -0
  263. package/templates/react-sdk-reference/src/components/helpers/formatters/common.ts +14 -0
  264. package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +130 -0
  265. package/templates/react-sdk-reference/src/components/helpers/instructions-utils.ts +38 -0
  266. package/templates/react-sdk-reference/src/components/helpers/object-utils.ts +10 -0
  267. package/templates/react-sdk-reference/src/components/helpers/reactContextHelpers.ts +3 -0
  268. package/templates/react-sdk-reference/src/components/helpers/simpleTableHelpers.ts +452 -0
  269. package/templates/react-sdk-reference/src/components/helpers/state-utils.tsx +43 -0
  270. package/templates/react-sdk-reference/src/components/helpers/template-utils.ts +76 -0
  271. package/templates/react-sdk-reference/src/components/helpers/utils.ts +349 -0
  272. package/templates/react-sdk-reference/src/components/helpers/versionHelpers.ts +14 -0
  273. package/templates/react-sdk-reference/src/components/index.ts +8 -0
  274. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/AdvancedSearch.tsx +86 -0
  275. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroup/persistUtils.ts +52 -0
  276. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/SearchGroups.tsx +329 -0
  277. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/hooks.ts +37 -0
  278. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/index.tsx +1 -0
  279. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/utils.ts +29 -0
  280. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/TemplateContext.ts +11 -0
  281. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/config-ext.json +9 -0
  282. package/templates/react-sdk-reference/src/components/template/AdvancedSearch/index.tsx +1 -0
  283. package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.css +35 -0
  284. package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.tsx +259 -0
  285. package/templates/react-sdk-reference/src/components/template/AppShell/index.tsx +1 -0
  286. package/templates/react-sdk-reference/src/components/template/BannerPage/BannerPage.tsx +54 -0
  287. package/templates/react-sdk-reference/src/components/template/BannerPage/config-ext.json +9 -0
  288. package/templates/react-sdk-reference/src/components/template/BannerPage/index.tsx +1 -0
  289. package/templates/react-sdk-reference/src/components/template/CaseSummary/CaseSummary.tsx +79 -0
  290. package/templates/react-sdk-reference/src/components/template/CaseSummary/config-ext.json +8 -0
  291. package/templates/react-sdk-reference/src/components/template/CaseSummary/index.tsx +1 -0
  292. package/templates/react-sdk-reference/src/components/template/CaseView/CaseView.tsx +261 -0
  293. package/templates/react-sdk-reference/src/components/template/CaseView/config-ext.json +8 -0
  294. package/templates/react-sdk-reference/src/components/template/CaseView/index.tsx +1 -0
  295. package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +117 -0
  296. package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/index.tsx +1 -0
  297. package/templates/react-sdk-reference/src/components/template/Confirmation/Confirmation.tsx +102 -0
  298. package/templates/react-sdk-reference/src/components/template/Confirmation/config-ext.json +11 -0
  299. package/templates/react-sdk-reference/src/components/template/Confirmation/index.tsx +1 -0
  300. package/templates/react-sdk-reference/src/components/template/DataReference/DataReference.tsx +590 -0
  301. package/templates/react-sdk-reference/src/components/template/DataReference/DataReferenceAdvancedSearchContext.ts +10 -0
  302. package/templates/react-sdk-reference/src/components/template/DataReference/SearchForm.tsx +213 -0
  303. package/templates/react-sdk-reference/src/components/template/DataReference/config-ext.json +8 -0
  304. package/templates/react-sdk-reference/src/components/template/DataReference/index.tsx +1 -0
  305. package/templates/react-sdk-reference/src/components/template/DataReference/utils.ts +90 -0
  306. package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.css +34 -0
  307. package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +74 -0
  308. package/templates/react-sdk-reference/src/components/template/DefaultForm/config-ext.json +8 -0
  309. package/templates/react-sdk-reference/src/components/template/DefaultForm/index.tsx +1 -0
  310. package/templates/react-sdk-reference/src/components/template/DefaultForm/utils/index.ts +26 -0
  311. package/templates/react-sdk-reference/src/components/template/DefaultPage/DefaultPage.tsx +108 -0
  312. package/templates/react-sdk-reference/src/components/template/DefaultPage/index.tsx +1 -0
  313. package/templates/react-sdk-reference/src/components/template/Details/Details/Details.tsx +74 -0
  314. package/templates/react-sdk-reference/src/components/template/Details/Details/index.tsx +1 -0
  315. package/templates/react-sdk-reference/src/components/template/Details/DetailsSubTabs/DetailsSubTabs.tsx +58 -0
  316. package/templates/react-sdk-reference/src/components/template/Details/DetailsSubTabs/config-ext.json +8 -0
  317. package/templates/react-sdk-reference/src/components/template/Details/DetailsSubTabs/index.tsx +1 -0
  318. package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +79 -0
  319. package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/config-ext.json +8 -0
  320. package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/index.tsx +1 -0
  321. package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +79 -0
  322. package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/config-ext.json +8 -0
  323. package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/index.tsx +1 -0
  324. package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/DynamicTabs.tsx +79 -0
  325. package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/config.json +36 -0
  326. package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/index.tsx +1 -0
  327. package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/FieldGroupTemplate.tsx +116 -0
  328. package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/index.tsx +1 -0
  329. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/HierarchicalForm.tsx +58 -0
  330. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/hooks.ts +293 -0
  331. package/templates/react-sdk-reference/src/components/template/HierarchicalForm/index.tsx +1 -0
  332. package/templates/react-sdk-reference/src/components/template/InlineDashboard/InlineDashboard.tsx +72 -0
  333. package/templates/react-sdk-reference/src/components/template/InlineDashboard/index.tsx +1 -0
  334. package/templates/react-sdk-reference/src/components/template/InlineDashboardPage/InlineDashboardPage.tsx +39 -0
  335. package/templates/react-sdk-reference/src/components/template/InlineDashboardPage/config-ext.json +9 -0
  336. package/templates/react-sdk-reference/src/components/template/InlineDashboardPage/index.tsx +1 -0
  337. package/templates/react-sdk-reference/src/components/template/ListPage/ListPage.tsx +16 -0
  338. package/templates/react-sdk-reference/src/components/template/ListPage/config-ext.json +7 -0
  339. package/templates/react-sdk-reference/src/components/template/ListPage/index.tsx +1 -0
  340. package/templates/react-sdk-reference/src/components/template/ListView/DefaultViewMeta.ts +220 -0
  341. package/templates/react-sdk-reference/src/components/template/ListView/ListView.css +10 -0
  342. package/templates/react-sdk-reference/src/components/template/ListView/ListView.tsx +1391 -0
  343. package/templates/react-sdk-reference/src/components/template/ListView/config-ext.json +8 -0
  344. package/templates/react-sdk-reference/src/components/template/ListView/hooks.ts +93 -0
  345. package/templates/react-sdk-reference/src/components/template/ListView/index.tsx +1 -0
  346. package/templates/react-sdk-reference/src/components/template/ListView/utils.ts +781 -0
  347. package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +52 -0
  348. package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/index.tsx +1 -0
  349. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.css +19 -0
  350. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.tsx +37 -0
  351. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/index.tsx +1 -0
  352. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +85 -0
  353. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/config-ext.json +8 -0
  354. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/index.tsx +1 -0
  355. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.css +19 -0
  356. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +22 -0
  357. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/config-ext.json +8 -0
  358. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/index.tsx +1 -0
  359. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +28 -0
  360. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/config-ext.json +8 -0
  361. package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/index.tsx +1 -0
  362. package/templates/react-sdk-reference/src/components/template/ObjectPage/index.tsx +1 -0
  363. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/OneColumn.tsx +32 -0
  364. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/config-ext.json +8 -0
  365. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/index.tsx +1 -0
  366. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnPage/OneColumnPage.tsx +17 -0
  367. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnPage/config-ext.json +8 -0
  368. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnPage/index.tsx +1 -0
  369. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/OneColumnTab.tsx +11 -0
  370. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/config-ext.json +8 -0
  371. package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/index.tsx +1 -0
  372. package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.css +7 -0
  373. package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.tsx +204 -0
  374. package/templates/react-sdk-reference/src/components/template/PromotedFilters/index.tsx +1 -0
  375. package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/SelfServiceCaseView.tsx +153 -0
  376. package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/index.tsx +1 -0
  377. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx +126 -0
  378. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/config-ext.json +7 -0
  379. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/index.tsx +1 -0
  380. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +985 -0
  381. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/index.tsx +1 -0
  382. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +122 -0
  383. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/index.tsx +1 -0
  384. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx +207 -0
  385. package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/index.tsx +1 -0
  386. package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +71 -0
  387. package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/index.tsx +1 -0
  388. package/templates/react-sdk-reference/src/components/template/SubTabs/SubTabs.tsx +46 -0
  389. package/templates/react-sdk-reference/src/components/template/SubTabs/config-ext.json +8 -0
  390. package/templates/react-sdk-reference/src/components/template/SubTabs/index.tsx +1 -0
  391. package/templates/react-sdk-reference/src/components/template/SubTabs/tabUtils.ts +185 -0
  392. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.css +12 -0
  393. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.tsx +54 -0
  394. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/config-ext.json +8 -0
  395. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/index.tsx +1 -0
  396. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnPage/TwoColumnPage.tsx +17 -0
  397. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnPage/config-ext.json +8 -0
  398. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnPage/index.tsx +1 -0
  399. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.css +12 -0
  400. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +54 -0
  401. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/config-ext.json +8 -0
  402. package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/index.tsx +1 -0
  403. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.css +19 -0
  404. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.tsx +37 -0
  405. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/index.tsx +1 -0
  406. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +96 -0
  407. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/config-ext.json +8 -0
  408. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/index.tsx +1 -0
  409. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.css +19 -0
  410. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +22 -0
  411. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/config-ext.json +8 -0
  412. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/index.tsx +1 -0
  413. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +28 -0
  414. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/config-ext.json +8 -0
  415. package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/index.tsx +1 -0
  416. package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.css +11 -0
  417. package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.tsx +160 -0
  418. package/templates/react-sdk-reference/src/components/template/WssNavBar/index.tsx +1 -0
  419. package/templates/react-sdk-reference/src/components/template/utils.tsx +58 -0
  420. package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/AppAnnouncement.tsx +60 -0
  421. package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/config-ext.json +8 -0
  422. package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/index.tsx +1 -0
  423. package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.css +95 -0
  424. package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.tsx +541 -0
  425. package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.types.ts +96 -0
  426. package/templates/react-sdk-reference/src/components/widget/Attachment/AttachmentUtils.ts +316 -0
  427. package/templates/react-sdk-reference/src/components/widget/Attachment/index.tsx +1 -0
  428. package/templates/react-sdk-reference/src/components/widget/CaseHistory/CaseHistory.tsx +171 -0
  429. package/templates/react-sdk-reference/src/components/widget/CaseHistory/config-ext.json +8 -0
  430. package/templates/react-sdk-reference/src/components/widget/CaseHistory/index.tsx +1 -0
  431. package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.css +13 -0
  432. package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +32 -0
  433. package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/index.tsx +1 -0
  434. package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.css +118 -0
  435. package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.tsx +653 -0
  436. package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/config-ext.json +8 -0
  437. package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/index.tsx +1 -0
  438. package/templates/react-sdk-reference/src/components/widget/Followers/Followers.tsx +43 -0
  439. package/templates/react-sdk-reference/src/components/widget/Followers/config-ext.json +8 -0
  440. package/templates/react-sdk-reference/src/components/widget/Followers/index.tsx +1 -0
  441. package/templates/react-sdk-reference/src/components/widget/QuickCreate/QuickCreate.tsx +88 -0
  442. package/templates/react-sdk-reference/src/components/widget/QuickCreate/config-ext.json +9 -0
  443. package/templates/react-sdk-reference/src/components/widget/QuickCreate/index.tsx +1 -0
  444. package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.css +76 -0
  445. package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.tsx +89 -0
  446. package/templates/react-sdk-reference/src/components/widget/SummaryItem/index.tsx +1 -0
  447. package/templates/react-sdk-reference/src/components/widget/SummaryList/SummaryList.tsx +23 -0
  448. package/templates/react-sdk-reference/src/components/widget/SummaryList/index.tsx +1 -0
  449. package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.css +81 -0
  450. package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.tsx +507 -0
  451. package/templates/react-sdk-reference/src/components/widget/ToDo/config-ext.json +8 -0
  452. package/templates/react-sdk-reference/src/components/widget/ToDo/index.tsx +1 -0
  453. package/templates/react-sdk-reference/src/main.tsx +13 -0
  454. package/templates/react-sdk-reference/src/mui-theme-augmentation.d.ts +6 -0
  455. package/templates/react-sdk-reference/tsconfig.json +24 -0
  456. package/templates/react-sdk-reference/vite.config.ts +65 -0
  457. package/templates/wc-sdk-reference/.github/AGENTS.md +23 -0
  458. package/templates/wc-sdk-reference/.github/copilot-instructions.md +40 -0
  459. package/templates/wc-sdk-reference/.github/skills/pega-sdk-component.md +48 -0
  460. package/templates/wc-sdk-reference/index.html +21 -0
  461. package/templates/wc-sdk-reference/package.json +19 -0
  462. package/templates/wc-sdk-reference/sdk-config.json +19 -0
  463. package/templates/wc-sdk-reference/src/index.ts +98 -0
  464. package/templates/wc-sdk-reference/tsconfig.json +21 -0
  465. package/templates/wc-sdk-reference/vite.config.ts +8 -0
@@ -0,0 +1,58 @@
1
+ import { Children, type PropsWithChildren, useEffect, useState } from 'react';
2
+ import { Tab, Tabs } from '@mui/material';
3
+ import { TabContext, TabPanel } from '@mui/lab';
4
+
5
+ import { getTransientTabs, getVisibleTabs, tabClick } from '../../SubTabs/tabUtils';
6
+ import type { PConnProps } from '@pega/sdk-react';
7
+
8
+ interface DetailsSubTabsProps extends PConnProps {
9
+ // If any, enter additional props that only exist on this component
10
+ showLabel: boolean;
11
+ label: string;
12
+ }
13
+
14
+ export default function DetailsSubTabs(props: PropsWithChildren<DetailsSubTabsProps>) {
15
+ const { children = [], label, showLabel = true, getPConnect } = props;
16
+ // Get the inherited props from the parent to determine label settings
17
+ const propsToUse = { label, showLabel, ...getPConnect().getInheritedProps() };
18
+
19
+ const defaultTabIndex = 0;
20
+ const deferLoadedTabs = Children.toArray(children)[0];
21
+ let availableTabs = [];
22
+
23
+ useEffect(() => {
24
+ availableTabs = getVisibleTabs(deferLoadedTabs, 'detailsSubTabs');
25
+ }, [availableTabs]);
26
+
27
+ const [currentTabId, setCurrentTabId] = useState(defaultTabIndex.toString());
28
+
29
+ const [tabItems, setTabitem] = useState([]);
30
+ useEffect(() => {
31
+ const tempTabItems = getTransientTabs(availableTabs, currentTabId, tabItems);
32
+ setTabitem(tempTabItems);
33
+ }, [currentTabId]);
34
+
35
+ const handleTabClick = (id, index: string) => {
36
+ setCurrentTabId(index);
37
+ tabClick(index, availableTabs, currentTabId, setCurrentTabId, tabItems);
38
+ };
39
+
40
+ return (
41
+ <>
42
+ {propsToUse.showLabel && <h3>{propsToUse.label}</h3>}
43
+ <TabContext value={currentTabId.toString()}>
44
+ <Tabs onChange={handleTabClick} value={currentTabId}>
45
+ {tabItems.map((tab: any) => (
46
+ <Tab key={tab.id} label={tab.name} value={tab.id} />
47
+ ))}
48
+ </Tabs>
49
+
50
+ {tabItems.map((tab: any) => (
51
+ <TabPanel key={tab.id} value={tab.id} tabIndex={+tab.id}>
52
+ <div>{tab.content ? tab.content : 'No content exists'}</div>
53
+ </TabPanel>
54
+ ))}
55
+ </TabContext>
56
+ </>
57
+ );
58
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "DetailsSubTabs",
3
+ "label": "Details (Sub tabs)",
4
+ "description": "Details (Sub tabs)",
5
+ "type": "Template",
6
+ "subtype": "DETAILS",
7
+ "properties": []
8
+ }
@@ -0,0 +1 @@
1
+ export { default } from './DetailsSubTabs';
@@ -0,0 +1,79 @@
1
+ import { createElement } from 'react';
2
+ import Grid from '@mui/material/Grid';
3
+
4
+ import { getComponentFromRegistry, PConnectComponent } from '@pega/sdk-react';
5
+ import type { PConnProps } from '@pega/sdk-react';
6
+
7
+ interface DetailsThreeColumnProps extends PConnProps {
8
+ // If any, enter additional props that only exist on this component
9
+ showLabel: boolean;
10
+ label: string;
11
+ showHighlightedData: boolean;
12
+ }
13
+
14
+ export default function DetailsThreeColumn(props: DetailsThreeColumnProps) {
15
+ // Get emitted components from map (so we can get any override that may exist)
16
+ const FieldGroup = getComponentFromRegistry('FieldGroup');
17
+
18
+ const {
19
+ label,
20
+ showLabel = true,
21
+ getPConnect,
22
+ showHighlightedData = false,
23
+ } = props;
24
+
25
+ // Get the inherited props from the parent to determine label settings
26
+ const propsToUse = { label, showLabel, ...getPConnect().getInheritedProps() };
27
+
28
+ // Set display mode prop and re-create the children so this part of the dom tree renders
29
+ // in a readonly (display) mode instead of a editable
30
+ getPConnect().setInheritedProp('displayMode', 'DISPLAY_ONLY');
31
+ getPConnect().setInheritedProp('readOnly', true);
32
+ const children = (getPConnect().getChildren() as any[]).map(
33
+ (configObject, index) =>
34
+ createElement(PConnectComponent, {
35
+ ...configObject,
36
+
37
+ key: index.toString(),
38
+ }),
39
+ );
40
+
41
+ // Set up highlighted data to pass in return if is set to show, need raw metadata to pass to createComponent
42
+ let highlightedDataArr = [];
43
+ if (showHighlightedData) {
44
+ const { highlightedData = [] } = (getPConnect().getRawMetadata() as any)
45
+ .config;
46
+ highlightedDataArr = highlightedData.map((field) => {
47
+ field.config.displayMode = 'STACKED_LARGE_VAL';
48
+
49
+ // Mark as status display when using pyStatusWork
50
+ if (field.config.value === '@P .pyStatusWork') {
51
+ field.type = 'TextInput';
52
+ field.config.displayAsStatus = true;
53
+ }
54
+
55
+ return getPConnect().createComponent(field, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional);
56
+ });
57
+ }
58
+
59
+ return (
60
+ <FieldGroup name={propsToUse.showLabel ? propsToUse.label : ''}>
61
+ {showHighlightedData && highlightedDataArr.length > 0 && (
62
+ <Grid container spacing={1} style={{ padding: '0 0 1em' }}>
63
+ {highlightedDataArr.map((child, i) => (
64
+ <Grid size={{ xs: 4 }} key={`hf-${i + 1}`}>
65
+ {child}
66
+ </Grid>
67
+ ))}
68
+ </Grid>
69
+ )}
70
+ <Grid container spacing={1}>
71
+ {children.map((child, i) => (
72
+ <Grid size={{ xs: 4 }} key={`r-${i + 1}`}>
73
+ {child}
74
+ </Grid>
75
+ ))}
76
+ </Grid>
77
+ </FieldGroup>
78
+ );
79
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "DetailsThreeColumn",
3
+ "label": "Details (Three column)",
4
+ "description": "Details (Three column)",
5
+ "type": "Template",
6
+ "subtype": "DETAILS",
7
+ "properties": []
8
+ }
@@ -0,0 +1 @@
1
+ export { default } from './DetailsThreeColumn';
@@ -0,0 +1,79 @@
1
+ import { createElement } from 'react';
2
+ import Grid from '@mui/material/Grid';
3
+
4
+ import { getComponentFromRegistry, PConnectComponent } from '@pega/sdk-react';
5
+ import type { PConnProps } from '@pega/sdk-react';
6
+
7
+ interface DetailsTwoColumnProps extends PConnProps {
8
+ // If any, enter additional props that only exist on this component
9
+ showLabel: boolean;
10
+ label: string;
11
+ showHighlightedData: boolean;
12
+ }
13
+
14
+ export default function DetailsTwoColumn(props: DetailsTwoColumnProps) {
15
+ // Get emitted components from map (so we can get any override that may exist)
16
+ const FieldGroup = getComponentFromRegistry('FieldGroup');
17
+
18
+ const {
19
+ label,
20
+ showLabel = true,
21
+ getPConnect,
22
+ showHighlightedData = false,
23
+ } = props;
24
+
25
+ // Get the inherited props from the parent to determine label settings
26
+ const propsToUse = { label, showLabel, ...getPConnect().getInheritedProps() };
27
+
28
+ // Set display mode prop and re-create the children so this part of the dom tree renders
29
+ // in a readonly (display) mode instead of a editable
30
+ getPConnect().setInheritedProp('displayMode', 'DISPLAY_ONLY');
31
+ getPConnect().setInheritedProp('readOnly', true);
32
+ const children = (getPConnect().getChildren() as any[]).map(
33
+ (configObject, index) =>
34
+ createElement(PConnectComponent, {
35
+ ...configObject,
36
+
37
+ key: index.toString(),
38
+ }),
39
+ );
40
+
41
+ // Set up highlighted data to pass in return if is set to show, need raw metadata to pass to createComponent
42
+ let highlightedDataArr = [];
43
+ if (showHighlightedData) {
44
+ const { highlightedData = [] } = (getPConnect().getRawMetadata() as any)
45
+ .config;
46
+ highlightedDataArr = highlightedData.map((field) => {
47
+ field.config.displayMode = 'STACKED_LARGE_VAL';
48
+
49
+ // Mark as status display when using pyStatusWork
50
+ if (field.config.value === '@P .pyStatusWork') {
51
+ field.type = 'TextInput';
52
+ field.config.displayAsStatus = true;
53
+ }
54
+
55
+ return getPConnect().createComponent(field, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional
56
+ });
57
+ }
58
+
59
+ return (
60
+ <FieldGroup name={propsToUse.showLabel ? propsToUse.label : ''}>
61
+ {showHighlightedData && highlightedDataArr.length > 0 && (
62
+ <Grid container spacing={1} style={{ padding: '0 0 1em' }}>
63
+ {highlightedDataArr.map((child, i) => (
64
+ <Grid size={{ xs: 6 }} key={`hf-${i + 1}`}>
65
+ {child}
66
+ </Grid>
67
+ ))}
68
+ </Grid>
69
+ )}
70
+ <Grid container spacing={1}>
71
+ {children.map((child, i) => (
72
+ <Grid size={{ xs: 6 }} key={`r-${i + 1}`}>
73
+ {child}
74
+ </Grid>
75
+ ))}
76
+ </Grid>
77
+ </FieldGroup>
78
+ );
79
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "DetailsTwoColumn",
3
+ "label": "Details (Two column)",
4
+ "description": "Details (Two column)",
5
+ "type": "Template",
6
+ "subtype": "DETAILS",
7
+ "properties": []
8
+ }
@@ -0,0 +1 @@
1
+ export { default } from './DetailsTwoColumn';
@@ -0,0 +1,79 @@
1
+ import React, { Children, useMemo, useState } from 'react';
2
+ import { Tab, Tabs } from '@mui/material';
3
+ import { TabContext, TabPanel } from '@mui/lab';
4
+ import makeStyles from '@mui/styles/makeStyles';
5
+
6
+ import { buildView } from '../../../helpers/field-group-utils';
7
+ import type { PConnProps } from '@pega/sdk-react';
8
+
9
+ const useStyles = makeStyles(() => ({
10
+ tab: {
11
+ minWidth: '72px'
12
+ }
13
+ }));
14
+
15
+ interface DynamicTabsProps extends PConnProps {
16
+ // If any, enter additional props that only exist on this component
17
+ showLabel: boolean;
18
+ label: string;
19
+ referenceList?: any[];
20
+ }
21
+
22
+ function DynamicTabs(props: DynamicTabsProps) {
23
+ const classes = useStyles();
24
+ const { referenceList, showLabel, label, getPConnect } = props;
25
+ const pConnect = getPConnect();
26
+ // Get the inherited props from the parent to determine label settings
27
+ const propsToUse = { label, showLabel, ...pConnect.getInheritedProps() };
28
+ const defaultTabIndex = 0;
29
+ const { tablabel } = pConnect.getComponentConfig();
30
+ const tablabelProp = PCore.getAnnotationUtils().getPropertyName(tablabel);
31
+ const referenceListData: any = pConnect.getValue(`${referenceList}.pxResults`, ''); // 2nd arg empty string until typedefs properly allow optional
32
+ const memoisedTabViews = useMemo(() => {
33
+ pConnect.setInheritedProp('displayMode', 'DISPLAY_ONLY');
34
+ pConnect.setInheritedProp('readOnly', true);
35
+
36
+ return (
37
+ referenceListData &&
38
+ Children.toArray(
39
+ referenceListData.map((item, index) => {
40
+ return <React.Fragment key={item[tablabelProp]}>{buildView(pConnect, index, '')}</React.Fragment>;
41
+ })
42
+ )
43
+ );
44
+ }, [referenceListData]);
45
+ const [panelShown, changePanel] = useState(defaultTabIndex);
46
+ const handleTabClick = (e, id) => {
47
+ changePanel(parseInt(id, 10));
48
+ };
49
+ // Loop over the tab contents and and pull out the labels for the navigation
50
+ const tabItems =
51
+ referenceListData?.map((item, i) => {
52
+ const currentTabLabel = item[tablabelProp] || PCore.getLocaleUtils().getLocaleValue('No label specified in config', 'Generic');
53
+ return {
54
+ name: currentTabLabel,
55
+ id: i
56
+ };
57
+ }) || [];
58
+
59
+ return (
60
+ <>
61
+ {propsToUse.label && <h3 id='dynamic-tabs-title'>{propsToUse.label}</h3>}
62
+ <TabContext value={panelShown.toString()}>
63
+ <Tabs onChange={handleTabClick} value={panelShown} variant='scrollable' scrollButtons='auto' indicatorColor='primary' id='dynamic-tabs'>
64
+ {tabItems.map((tab: any) => (
65
+ <Tab key={tab.id} label={tab.name} value={tab.id} className={classes.tab} />
66
+ ))}
67
+ </Tabs>
68
+
69
+ {tabItems.map((tab: any) => (
70
+ <TabPanel key={tab.id} value={tab.id.toString()} tabIndex={+tab.id} id='dynamic-tabpanel'>
71
+ <div>{memoisedTabViews[parseInt(tab.id, 10)] || 'No content exists'}</div>
72
+ </TabPanel>
73
+ ))}
74
+ </TabContext>
75
+ </>
76
+ );
77
+ }
78
+
79
+ export default DynamicTabs;
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "DynamicTabs",
3
+ "label": "Dynamic tabs (list)",
4
+ "description": "Dynamic tabs (list)",
5
+ "type": "Template",
6
+ "subtype": "DETAILS",
7
+ "icon": "DynamicTabs.svg",
8
+ "hideTemplateEdit": true,
9
+ "hideFromTemplatePicker": true,
10
+ "viewHeadingLabel": "Default heading",
11
+ "properties": [
12
+ {
13
+ "name": "referenceList",
14
+ "label": "Data page",
15
+ "format": "CONTENTPICKERSOURCE"
16
+ },
17
+ {
18
+ "name": "parameters",
19
+ "label": "Parameters",
20
+ "format": "PARAMETERS",
21
+ "showOverride": false
22
+ },
23
+ {
24
+ "name": "tablabel",
25
+ "label": "Tab label",
26
+ "format": "PROPERTY",
27
+ "ofContextClass": true
28
+ },
29
+ {
30
+ "format": "VIEWPICKER",
31
+ "name": "Views",
32
+ "label": "Tab content",
33
+ "ofContextClass": true
34
+ }
35
+ ]
36
+ }
@@ -0,0 +1 @@
1
+ export { default } from './DynamicTabs';
@@ -0,0 +1,116 @@
1
+ import { useLayoutEffect, useMemo } from 'react';
2
+
3
+ import { getReferenceList, buildView } from '../../helpers/field-group-utils';
4
+ import { getComponentFromRegistry } from '@pega/sdk-react';
5
+ import type { PConnProps } from '@pega/sdk-react';
6
+
7
+ interface FieldGroupTemplateProps extends PConnProps {
8
+ // If any, enter additional props that only exist on this component
9
+ referenceList?: any[];
10
+ contextClass: string;
11
+ renderMode?: string;
12
+ heading?: string;
13
+ lookForChildInConfig?: boolean;
14
+ displayMode?: string;
15
+ fieldHeader?: string;
16
+ allowTableEdit: boolean;
17
+ allowActions?: any;
18
+ }
19
+
20
+ export default function FieldGroupTemplate(props: FieldGroupTemplateProps) {
21
+ // Get emitted components from map (so we can get any override that may exist)
22
+ const FieldGroup = getComponentFromRegistry('FieldGroup');
23
+ const FieldGroupList = getComponentFromRegistry('FieldGroupList');
24
+
25
+ const {
26
+ referenceList = [],
27
+ renderMode,
28
+ contextClass,
29
+ getPConnect,
30
+ lookForChildInConfig,
31
+ heading = '',
32
+ displayMode,
33
+ fieldHeader,
34
+ allowActions,
35
+ allowTableEdit: allowAddEdit
36
+ } = props;
37
+ const pConn = getPConnect();
38
+ const resolvedList = getReferenceList(pConn);
39
+ pConn.setReferenceList(resolvedList);
40
+ const pageReference = `${pConn.getPageReference()}${resolvedList}`;
41
+ const isReadonlyMode = renderMode === 'ReadOnly' || displayMode === 'DISPLAY_ONLY';
42
+ const HEADING = heading ?? 'Row';
43
+
44
+ const hasAllowActions = Object.keys(allowActions ?? {}).length > 0;
45
+ const { allowAdd: actionAdd, allowDelete: actionDelete } = allowActions ?? {};
46
+ const allowAdd = hasAllowActions ? (actionAdd ?? true) : (allowAddEdit ?? true);
47
+ const allowDelete = hasAllowActions ? (actionDelete ?? true) : (allowAddEdit ?? true);
48
+
49
+ useLayoutEffect(() => {
50
+ if (!isReadonlyMode) {
51
+ // @ts-expect-error - Expected 3 arguments, but got 1
52
+ pConn.getListActions().initDefaultPageInstructions(resolvedList);
53
+ }
54
+ }, [referenceList?.length]);
55
+
56
+ const getDynamicHeaderProp = (item, index) => {
57
+ if (fieldHeader === 'propertyRef' && heading && item[heading.substring(1)]) {
58
+ return item[heading.substring(1)];
59
+ }
60
+ return `Row ${index + 1}`;
61
+ };
62
+
63
+ const addRecord = () => {
64
+ if (PCore.getPCoreVersion()?.includes('8.7')) {
65
+ pConn.getListActions().insert({ classID: contextClass }, referenceList.length, pageReference);
66
+ } else {
67
+ pConn.getListActions().insert({}, referenceList.length);
68
+ }
69
+ };
70
+
71
+ if (!isReadonlyMode) {
72
+ const addFieldGroupItem = () => {
73
+ addRecord();
74
+ };
75
+ const deleteFieldGroupItem = index => {
76
+ if (PCore.getPCoreVersion()?.includes('8.7')) {
77
+ pConn.getListActions().deleteEntry(index, pageReference);
78
+ } else {
79
+ pConn.getListActions().deleteEntry(index);
80
+ }
81
+ };
82
+ if (referenceList.length === 0 && allowAdd) {
83
+ addFieldGroupItem();
84
+ }
85
+
86
+ const MemoisedChildren = useMemo(() => {
87
+ return referenceList.map((item, index) => ({
88
+ id: index,
89
+ name: fieldHeader === 'propertyRef' ? getDynamicHeaderProp(item, index) : `${HEADING} ${index + 1}`,
90
+ children: buildView(pConn, index, lookForChildInConfig)
91
+ }));
92
+ }, [referenceList?.length]);
93
+
94
+ return (
95
+ <FieldGroupList
96
+ items={MemoisedChildren}
97
+ onAdd={allowAdd ? addFieldGroupItem : undefined}
98
+ onDelete={allowDelete ? deleteFieldGroupItem : undefined}
99
+ />
100
+ );
101
+ }
102
+
103
+ pConn.setInheritedProp('displayMode', 'DISPLAY_ONLY');
104
+ const memoisedReadOnlyList = useMemo(() => {
105
+ return referenceList.map((item, index) => {
106
+ const key = item[heading] || `field-group-row-${index}`;
107
+ return (
108
+ <FieldGroup key={key} name={fieldHeader === 'propertyRef' ? getDynamicHeaderProp(item, index) : `${HEADING} ${index + 1}`}>
109
+ {buildView(pConn, index, lookForChildInConfig)}
110
+ </FieldGroup>
111
+ );
112
+ });
113
+ }, []);
114
+
115
+ return <div>{memoisedReadOnlyList}</div>;
116
+ }
@@ -0,0 +1 @@
1
+ export { default } from './FieldGroupTemplate';
@@ -0,0 +1,58 @@
1
+ import { type PropsWithChildren } from 'react';
2
+ import { Tab, Tabs, Box, Badge, Tooltip } from '@mui/material';
3
+ import { TabContext, TabPanel } from '@mui/lab';
4
+
5
+ import { useHierarchicalForm, type HierarchicalFormProps } from './hooks';
6
+
7
+ export default function HierarchicalForm(props: PropsWithChildren<HierarchicalFormProps>) {
8
+ const { currentTabId, handleTabClick, processedTabs, instructions } = useHierarchicalForm(props);
9
+
10
+ if (!currentTabId) {
11
+ return null;
12
+ }
13
+
14
+ return (
15
+ <Box display='flex' flexDirection='column'>
16
+ {instructions && (
17
+ <Box mb={2}>
18
+ <div dangerouslySetInnerHTML={{ __html: instructions }} />
19
+ </Box>
20
+ )}
21
+ <Box sx={{ flexGrow: 1 }}>
22
+ <TabContext value={currentTabId.toString()}>
23
+ <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>
24
+ <Tabs onChange={handleTabClick} value={currentTabId.toString()} variant='scrollable'>
25
+ {processedTabs.map((tab: any) => {
26
+ const tabLabel = tab.name || tab.label;
27
+ return (
28
+ <Tab
29
+ key={tab.id}
30
+ sx={{ textTransform: 'none' }}
31
+ label={
32
+ tab.errors ? (
33
+ <Tooltip title={`${tabLabel} has errors`} placement='top'>
34
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
35
+ <span>{tabLabel}</span>
36
+ <Badge badgeContent={tab.errors} color='error' sx={{ '& .MuiBadge-badge': { position: 'static', transform: 'none' } }} />
37
+ </Box>
38
+ </Tooltip>
39
+ ) : (
40
+ tabLabel
41
+ )
42
+ }
43
+ value={tab.id?.toString()}
44
+ />
45
+ );
46
+ })}
47
+ </Tabs>
48
+ </Box>
49
+ {processedTabs.map((tab: any) => (
50
+ <TabPanel key={tab.id} value={tab.id?.toString()} tabIndex={+tab.id} keepMounted sx={{ px: 0 }}>
51
+ <div>{tab.content ? tab.content : 'No content exists'}</div>
52
+ </TabPanel>
53
+ ))}
54
+ </TabContext>
55
+ </Box>
56
+ </Box>
57
+ );
58
+ }