@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,781 @@
1
+ import getDefaultViewMeta from './DefaultViewMeta';
2
+
3
+ const USER_REFERENCE = 'UserReference';
4
+ const PAGE = '!P!';
5
+ const PAGELIST = '!PL!';
6
+
7
+ export const formatConstants = {
8
+ WorkStatus: 'WorkStatus',
9
+ Integer: 'Integer',
10
+ WorkLink: 'WorkLink'
11
+ };
12
+
13
+ class DataApi {
14
+ mappedPropertyToOriginalProperty: any;
15
+ originalPropertyToMappedProperty: any;
16
+ showRecords: any;
17
+ constructor(showRecords = true) {
18
+ this.showRecords = showRecords;
19
+ this.originalPropertyToMappedProperty = {};
20
+ this.mappedPropertyToOriginalProperty = {};
21
+ this.setShowRecords = this.setShowRecords.bind(this);
22
+ this.setPropertyMaps = this.setPropertyMaps.bind(this);
23
+ this.getMappedProperty = this.getMappedProperty.bind(this);
24
+ this.getOriginalProperty = this.getOriginalProperty.bind(this);
25
+ }
26
+
27
+ setShowRecords(showRecords) {
28
+ this.showRecords = showRecords;
29
+ }
30
+
31
+ setPropertyMaps(originalToMappedPropertyObj = {}, mappedToOriginalPropertyObj = {}) {
32
+ this.originalPropertyToMappedProperty = {
33
+ ...this.originalPropertyToMappedProperty,
34
+ ...originalToMappedPropertyObj
35
+ };
36
+ this.mappedPropertyToOriginalProperty = {
37
+ ...this.mappedPropertyToOriginalProperty,
38
+ ...mappedToOriginalPropertyObj
39
+ };
40
+ }
41
+
42
+ getMappedProperty(propertyName) {
43
+ return this.originalPropertyToMappedProperty[propertyName] ?? propertyName;
44
+ }
45
+
46
+ getOriginalProperty(propertyName) {
47
+ return this.mappedPropertyToOriginalProperty[propertyName] ?? propertyName;
48
+ }
49
+ }
50
+
51
+ export async function getContext(componentConfig) {
52
+ const {
53
+ promisesArray = [] // array of promises which can be invoked paralelly,
54
+ } = componentConfig;
55
+ const promisesResponseArray = await Promise.all(promisesArray);
56
+ const dataApi = new DataApi();
57
+ return {
58
+ promisesResponseArray,
59
+ setPropertyMaps: dataApi.setPropertyMaps,
60
+ getMappedProperty: dataApi.getMappedProperty,
61
+ getOriginalProperty: dataApi.getOriginalProperty
62
+ };
63
+ }
64
+
65
+ /**
66
+ * [getFieldNameFromEmbeddedFieldName]
67
+ * Description - converting embeddedField name starting with !P! or !PL! to normal field
68
+ * @ignore
69
+ * @param {string} propertyName EmbeddedField name starting with !P! or !PL!
70
+ * @returns {string} returns converted string without !P! or !PL! and :
71
+ *
72
+ * @example <caption>Example for getFieldNameFromEmbeddedFieldName </caption>
73
+ * getFieldNameFromEmbeddedFieldName('!P!Organisation:Name') return 'Organisation.Name'
74
+ * getFieldNameFromEmbeddedFieldName('!PL!Employees:Name') return 'Employees.Name'
75
+ */
76
+ export function getFieldNameFromEmbeddedFieldName(propertyName) {
77
+ let value = propertyName;
78
+ if (value.startsWith(PAGE) || value.startsWith(PAGELIST)) {
79
+ value = value.substring(value.lastIndexOf('!') + 1);
80
+ value = value.replace(/:/g, '.');
81
+ }
82
+ return value;
83
+ }
84
+
85
+ /**
86
+ * [updateMetaEmbeddedFieldID]
87
+ * Description - If the fieldID in meta starts with '!P!' or '!PL!' and contains ':' then replace them with .(dot)
88
+ * @ignore
89
+ * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields.
90
+ */
91
+ export function updateMetaEmbeddedFieldID(metaFields) {
92
+ return metaFields.forEach(metaField => {
93
+ if (metaField.fieldID?.startsWith(PAGE) || metaField.fieldID?.startsWith(PAGELIST)) {
94
+ metaField.fieldID = getFieldNameFromEmbeddedFieldName(metaField.fieldID);
95
+ }
96
+ });
97
+ }
98
+
99
+ export const isEmbeddedField = field => {
100
+ if (field?.startsWith('@')) {
101
+ field = field.substring(field.indexOf(' ') + 1);
102
+ if (field[0] === '.') field = field.substring(1);
103
+ }
104
+ return field?.indexOf('.') > 0;
105
+ };
106
+
107
+ /**
108
+ * [isPageListProperty]
109
+ * Description - checking if propertyName is pageList or not
110
+ * @ignore
111
+ * @param {string} propertyName PropertyName
112
+ * @returns {boolean} true if property is pageList else false
113
+ *
114
+ * @example <caption>Example for isPageListProperty </caption>
115
+ * isPageListProperty('!PL!Employees.Name') return true
116
+ * isPageListProperty('!P!Employees.Name') return false
117
+ * isPageListProperty('Name') return false
118
+ */
119
+ export function isPageListProperty(propertyName) {
120
+ return propertyName.startsWith(PAGELIST);
121
+ }
122
+
123
+ export const isPageListInPath = (propertyName, currentClassID) => {
124
+ if (!propertyName.includes('.')) {
125
+ return false;
126
+ }
127
+ const [first, ...rest] = propertyName.split('.');
128
+ const metadata: any = PCore.getMetadataUtils().getPropertyMetadata(first, currentClassID);
129
+ if (metadata?.type === 'Page List') {
130
+ return true;
131
+ }
132
+ return isPageListInPath(rest.join('.'), metadata?.pageClass);
133
+ };
134
+
135
+ /**
136
+ * [getEmbeddedFieldName]
137
+ * Description - converting normal field name to embedded field starting with !P! or !PL!
138
+ * @ignore
139
+ * @param {string} propertyName Field name
140
+ * @param {string} classID classID of datapage
141
+ * @returns {string} returns converted string with !P! or !PL! and :
142
+ *
143
+ * @example <caption>Example for getEmbeddedFieldName </caption>
144
+ * For page property, getEmbeddedFieldName('Organisation.Name') return '!P!Organisation:Name'
145
+ * For pageList property, getEmbeddedFieldName('Employees.Name') return '!PL!Employees:Name'
146
+ */
147
+
148
+ export function getEmbeddedFieldName(propertyName, classID) {
149
+ let value = propertyName;
150
+ if (isPageListInPath(value, classID)) {
151
+ value = `!PL!${value.replace(/\./g, ':')}`;
152
+ } else {
153
+ value = `!P!${value.replace(/\./g, ':')}`;
154
+ }
155
+ return value;
156
+ }
157
+
158
+ /**
159
+ * [preparePropertyMaps]
160
+ * Description - preparing maps for property names and set it in dataApi context
161
+ * @ignore
162
+ * @param {Array} fields fields array
163
+ * @param {string} classID classID of datapage
164
+ * @param {string} context dataApi context
165
+ * @returns {boolean} true if pageListProperty is present
166
+ */
167
+ export function preparePropertyMaps(fields, classID, context) {
168
+ const { setPropertyMaps } = context;
169
+ const maps = fields.reduce(
170
+ (acc, field) => {
171
+ let { value } = field.config;
172
+ if (value.startsWith('@')) {
173
+ value = value.substring(value.indexOf(' ') + 1);
174
+ if (value[0] === '.') value = value.substring(1);
175
+ }
176
+ let name = value;
177
+ // Preparing name for embedded property
178
+ if (isEmbeddedField(name)) {
179
+ name = getEmbeddedFieldName(name, classID);
180
+ }
181
+ if (isPageListProperty(name) && !acc[2]) {
182
+ acc[2] = true;
183
+ }
184
+ acc[0][value] = name;
185
+ acc[1][name] = value;
186
+
187
+ return acc;
188
+ },
189
+ [{}, {}, false]
190
+ );
191
+ setPropertyMaps(maps[0], maps[1]);
192
+ return maps[2];
193
+ }
194
+
195
+ /**
196
+ * [getConfigEmbeddedFieldsMeta]
197
+ * Description - Get the metadata for configured embedded fields
198
+ * @ignore
199
+ * @param {Set} configFields Set of config fields
200
+ * @param {string} classID clasID of datapage
201
+ * @returns {Array} Metadata of configured embedded fields
202
+ */
203
+ export function getConfigEmbeddedFieldsMeta(configFields, classID) {
204
+ const configEmbeddedFieldsMeta: any[] = [];
205
+ configFields.forEach(field => {
206
+ let value = field;
207
+ if (isEmbeddedField(value)) {
208
+ // conversion Page.PageList[].property => Page.PageList.property
209
+ if (value.includes('[')) {
210
+ value = value.substring(0, value.indexOf('[')) + value.substring(value.indexOf(']') + 1);
211
+ }
212
+ const meta: any = PCore.getMetadataUtils().getEmbeddedPropertyMetadata(value, classID);
213
+ meta.fieldID = field;
214
+ configEmbeddedFieldsMeta.push(meta);
215
+ }
216
+ });
217
+ return configEmbeddedFieldsMeta;
218
+ }
219
+
220
+ /**
221
+ * [mergeConfigEmbeddedFieldsMeta]
222
+ * Description - Get the metadata for configured embedded fields
223
+ * @ignore
224
+ * @param {Array} configEmbeddedFieldsMeta config fields metadata.
225
+ * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields
226
+ */
227
+ export function mergeConfigEmbeddedFieldsMeta(configEmbeddedFieldsMeta, metaFields) {
228
+ const mergedMetaFields = [...metaFields];
229
+ configEmbeddedFieldsMeta.forEach(configFieldMeta => {
230
+ const fieldMeta = metaFields.find(metaField => metaField.fieldID === configFieldMeta.fieldID);
231
+ if (!fieldMeta) mergedMetaFields.push(configFieldMeta);
232
+ });
233
+ return mergedMetaFields;
234
+ }
235
+
236
+ const oldToNewFieldTypeMapping = {
237
+ 'Date Time': 'Date & time',
238
+ Date: 'Date only'
239
+ };
240
+
241
+ /**
242
+ * [updateFieldType]
243
+ * Description - Updates the field type if its changed in the new implementation. Such mapping is maintained in oldToNewFieldTypeMapping.
244
+ * @ignore
245
+ * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields.
246
+ */
247
+ function updateFieldType(metaFields) {
248
+ metaFields.forEach(metaField => {
249
+ if (metaField.type) metaField.type = oldToNewFieldTypeMapping[metaField.type] || metaField.type;
250
+ });
251
+ }
252
+
253
+ function getPresetMetaAttribute(attribute) {
254
+ const {
255
+ type,
256
+ config: { label, value }
257
+ } = attribute;
258
+ return {
259
+ type,
260
+ name: value.startsWith('@') ? value.substring(4) : value,
261
+ label: label.startsWith('@') ? label.substring(3) : label
262
+ };
263
+ }
264
+
265
+ /**
266
+ * [generateViewMetaData]
267
+ * Description - Returns a list of metaobjects of the fields provided.
268
+ * @ignore
269
+ * @param {Array} rawFields List of fields to update meta for
270
+ * @param {string} classID Class ID from the response
271
+ * @returns {Array} List of fields with updated meta objects.
272
+ */
273
+ function generateViewMetaData(rawFields, classID, showField) {
274
+ return rawFields.map(item => getDefaultViewMeta(item, classID, showField));
275
+ }
276
+
277
+ /**
278
+ * [getConfigFields]
279
+ * Description - Returns list of config fields with primary fields meta updated.
280
+ * @ignore
281
+ * @param {Array} configFields List of Authored fields
282
+ * @param {Array} primaryFields List of Primary Fields
283
+ * @param {Array} metaFields Metadata of all fields
284
+ * @param {string} classID Class ID from the response
285
+ * @returns {Array} List of all fields with their meta updated.
286
+ */
287
+ function getConfigFields(configFields, primaryFields, metaFields, classID) {
288
+ const presetConfigFields = configFields;
289
+ const primaryFieldsViewIndex = presetConfigFields.findIndex(field => field.config.value === 'pyPrimaryFields');
290
+ if (!primaryFields || !primaryFields.length) {
291
+ if (primaryFieldsViewIndex < 0) return presetConfigFields;
292
+
293
+ presetConfigFields.splice(primaryFieldsViewIndex, 1);
294
+
295
+ return presetConfigFields;
296
+ }
297
+
298
+ if (primaryFieldsViewIndex > -1) {
299
+ // list of uncommon fields - non overlap of primary fields grouped view and independent entity columns of primary type
300
+ const uncommonFieldsList = primaryFields.filter(
301
+ primaryField => !presetConfigFields.some(presetConfigField => presetConfigField.config.value.split('.')[1] === primaryField)
302
+ );
303
+ const uncommonFieldsRawMeta: any[] = [];
304
+ uncommonFieldsList.forEach(uncommonField => {
305
+ const uncommonFieldMeta = metaFields.find(metaField => metaField.fieldID === uncommonField);
306
+ if (uncommonFieldMeta) uncommonFieldsRawMeta.push(uncommonFieldMeta);
307
+ });
308
+ const uncommonFieldsConfigMeta = generateViewMetaData(uncommonFieldsRawMeta, classID, true);
309
+
310
+ presetConfigFields.splice(primaryFieldsViewIndex, 1, ...uncommonFieldsConfigMeta);
311
+ }
312
+ return presetConfigFields;
313
+ }
314
+
315
+ /**
316
+ * [getTableConfigFromPresetMeta]
317
+ * Description - Get the table config from the presets meta.
318
+ * @ignore
319
+ * @param {object} presetMeta Presets meta
320
+ * @param {boolean} isMetaWithPresets true if meta has presets else false
321
+ * @param {Function} getPConnect Callback to get the PConnect object
322
+ * @param {string} classID Class ID from the response
323
+ * @param {Array} primaryFields List of Primary Fields
324
+ * @param {Array} metaFields List of all metafields
325
+ * @returns {object} Table config object
326
+ */
327
+ export function getTableConfigFromPresetMeta(presetMeta, isMetaWithPresets, getPConnect, classID, primaryFields, metaFields) {
328
+ let presetId;
329
+ let presetName;
330
+ let cardHeader;
331
+ let secondaryText;
332
+ let timelineDate;
333
+ let timelineTitle;
334
+ let timelineStatus;
335
+ let timelineIcon;
336
+ let { filterExpression } = getPConnect().getRawMetadata().config;
337
+ let fieldsMeta;
338
+ let configFields;
339
+ if (isMetaWithPresets) {
340
+ presetId = presetMeta.id;
341
+ presetName = presetMeta.label;
342
+ cardHeader = presetMeta.cardHeader && getPresetMetaAttribute(presetMeta.cardHeader);
343
+ secondaryText = presetMeta.secondaryText && getPresetMetaAttribute(presetMeta.secondaryText);
344
+ timelineDate = presetMeta.timelineDate && getPresetMetaAttribute(presetMeta.timelineDate);
345
+ timelineTitle = presetMeta.timelineTitle && getPresetMetaAttribute(presetMeta.timelineTitle);
346
+ timelineStatus = presetMeta.timelineStatus && getPresetMetaAttribute(presetMeta.timelineStatus);
347
+ timelineIcon = presetMeta.timelineIcon && getPresetMetaAttribute(presetMeta.timelineIcon);
348
+ filterExpression = presetMeta.config.filterExpression;
349
+ [fieldsMeta] = presetMeta.children;
350
+ if (
351
+ presetMeta.timelineTitle &&
352
+ !fieldsMeta.children.find(fieldMeta => {
353
+ return fieldMeta?.config?.value === presetMeta.timelineTitle?.config?.value;
354
+ })
355
+ ) {
356
+ const { type, config } = presetMeta.timelineTitle;
357
+ fieldsMeta.children.push({ type, config: { ...config, show: false } });
358
+ }
359
+ if (
360
+ presetMeta.timelineDate &&
361
+ !fieldsMeta.children.find(fieldMeta => {
362
+ return fieldMeta?.config?.value === presetMeta.timelineDate?.config?.value;
363
+ })
364
+ ) {
365
+ const { type, config } = presetMeta.timelineDate;
366
+ fieldsMeta.children.push({ type, config: { ...config, show: false } });
367
+ }
368
+ configFields = getConfigFields(fieldsMeta.children, primaryFields, metaFields, classID);
369
+ } else {
370
+ fieldsMeta = presetMeta.props;
371
+ configFields = getConfigFields(
372
+ fieldsMeta
373
+ .getPConnect()
374
+ .getChildren()
375
+ ?.map(child => {
376
+ return child.getPConnect().getRawMetadata();
377
+ }),
378
+ primaryFields,
379
+ metaFields,
380
+ classID
381
+ );
382
+ }
383
+ return {
384
+ presetId,
385
+ presetName,
386
+ cardHeader,
387
+ secondaryText,
388
+ timelineDate,
389
+ timelineTitle,
390
+ timelineStatus,
391
+ timelineIcon,
392
+ filterExpression,
393
+ fieldsMeta,
394
+ configFields
395
+ };
396
+ }
397
+
398
+ /**
399
+ * [getReportColumns]
400
+ * Description - Returns a set of columns from the report response.
401
+ * @ignore
402
+ * @param {object} response -
403
+ * @returns {Set} Set of columns from the report response
404
+ */
405
+ function getReportColumns(response) {
406
+ const {
407
+ data: { data: reportColumns }
408
+ } = response;
409
+ const reportColumnsSet = new Set();
410
+ reportColumns?.forEach(item => {
411
+ let val = item.pyFieldName;
412
+ // Remove '.' from index 0 only, if '.' is present
413
+ if (val[0] === '.') {
414
+ val = val.substring(1);
415
+ }
416
+ reportColumnsSet.add(val);
417
+ });
418
+ return reportColumnsSet;
419
+ }
420
+
421
+ /**
422
+ * [getConfigFieldValue]
423
+ * Descritpion - Returns a valid value for a configuration field. Remove any annotations and also "."
424
+ * @ignore
425
+ * @param {object} config
426
+ * config.value - Raw value
427
+ * @returns {string} value - Value with out any annotations or "."
428
+ */
429
+ function getConfigFieldValue(config) {
430
+ let { value } = config;
431
+ if (value.startsWith('@')) {
432
+ value = value.substring(value.indexOf(' ') + 1);
433
+ if (value[0] === '.') value = value.substring(1);
434
+ }
435
+ return value;
436
+ }
437
+
438
+ /**
439
+ * [prepareConfigFields]
440
+ * Description - Prepares a set of configuration fields and pushes each config type to a set using the callback parameter.
441
+ * @ignore
442
+ * @param {object} configFields List of Authored fields
443
+ * @param {Function} pushToComponentsList Callback to push the field type to a set.
444
+ * @returns {Set} configFieldSet
445
+ */
446
+ function prepareConfigFields(configFields, pushToComponentsList) {
447
+ const configFieldSet = new Set();
448
+ configFields.forEach(item => {
449
+ pushToComponentsList(item.type);
450
+ const val = getConfigFieldValue(item.config);
451
+ configFieldSet.add(val);
452
+ });
453
+ return configFieldSet;
454
+ }
455
+
456
+ /**
457
+ * [findAuthoredField]
458
+ * Description - Finds an authored field from yhe list of config fields.
459
+ * @ignore
460
+ * @param {Array} configFields List of Authored fields
461
+ * @param {string} fieldID Filter
462
+ * @returns {object} config with its field value equal to fieldID, which means an authored field
463
+ */
464
+ function findAuthoredField(configFields, fieldID) {
465
+ return configFields.find(configField => {
466
+ const val = getConfigFieldValue(configField.config);
467
+ return val === fieldID;
468
+ });
469
+ }
470
+
471
+ /**
472
+ * [findAndUpdateAuthoredFieldConfig]
473
+ * Description - Find the authored field, and update its config.
474
+ * @ignore
475
+ * @param {Array} configFields List of Authored fields
476
+ * @param {object} item Field item to copy displayAs and category information
477
+ * @param {string} classId classID from the response
478
+ */
479
+ function findAndUpdateAuthoredFieldConfig(configFields, item, classId) {
480
+ const authoredField = findAuthoredField(configFields, item.fieldID);
481
+ if (authoredField?.config) {
482
+ if (item.displayAs) {
483
+ authoredField.config.displayAs = item.displayAs;
484
+ }
485
+ authoredField.config.classID = item.classID ?? classId;
486
+
487
+ if (authoredField.type === USER_REFERENCE) {
488
+ authoredField.config.associationID = item.associationID || item.fieldID;
489
+ }
490
+ authoredField.config.category = item.category;
491
+ // FieldType identifies whether the field is configured as pickList
492
+ authoredField.config.fieldType = item.fieldType;
493
+ // type defined on the property rule,
494
+ // used for the picklist field to assign the appropriate type
495
+ authoredField.config.propertyType = item.dataType || item.type;
496
+ }
497
+ }
498
+
499
+ /**
500
+ * [isAnExtraField]
501
+ * Description - Returns true if the field is an extra field. Extra field is the one which is not authored but part of the report.
502
+ * @ignore
503
+ * @param {Array} configFields List of Authored fields
504
+ * @param {Set} configFieldSet Set if Authored filed values
505
+ * @param {Set} reportColumnsSet Set of columns from the report
506
+ * @param {object} item Config field item
507
+ * @param {string} classId Class ID from the response
508
+ * @param {boolean} showDynamicFields Flag indicating whether fields are fetched dynamically at runtime
509
+ * @returns {boolean} true If the field is an extra field else false.
510
+ */
511
+ function isAnExtraField(configFields, configFieldSet, reportColumnsSet, item, classId, showDynamicFields) {
512
+ // Is the field already present in authoring metadata?
513
+ // Mutates config fields to copy displayAs and category information
514
+ if (configFieldSet.has(item.fieldID)) {
515
+ findAndUpdateAuthoredFieldConfig(configFields, item, classId);
516
+ return false;
517
+ }
518
+
519
+ // If field is not authored and not part of report columns then discard it
520
+ return showDynamicFields || !!reportColumnsSet.has(item.fieldID);
521
+ }
522
+
523
+ /**
524
+ * [prepareExtraFields]
525
+ * Description - Returns a list of extra fields with their meta updated.
526
+ * @ignore
527
+ * @param {Array} metaFields List of fields
528
+ * @param {Array} configFields List of Authored fields
529
+ * @param {Set} configFieldSet Set if Authored filed values
530
+ * @param {Set} reportColumnsSet Set of columns from the report
531
+ * @param {string} classID Class ID from the response
532
+ * @param {boolean} showDynamicFields Flag indicating whether fields are fetched dynamically at runtime
533
+ * @returns {Array} List of extra fields with their meta updated.
534
+ */
535
+ function prepareExtraFields(metaFields, configFields, configFieldSet, reportColumnsSet, classID, showDynamicFields) {
536
+ // Filter all the extra fields
537
+ const extraFileds = metaFields.filter(item => {
538
+ return isAnExtraField(configFields, configFieldSet, reportColumnsSet, item, classID, showDynamicFields);
539
+ });
540
+ return generateViewMetaData(extraFileds, classID, false);
541
+ // Update the meta object of each of the extra fields.
542
+ }
543
+
544
+ const AssignDashObjects = ['Assign-Worklist', 'Assign-WorkBasket'];
545
+
546
+ function isFLProperty(label) {
547
+ return label?.startsWith('@FL');
548
+ }
549
+
550
+ function getFieldLabel(fieldConfig) {
551
+ const { label, classID, caption } = fieldConfig;
552
+ let fieldLabel = (label ?? caption)?.substring(4);
553
+ const labelSplit = fieldLabel?.split('.');
554
+ const propertyName = labelSplit?.pop();
555
+ const fieldMetaData: any = PCore.getMetadataUtils().getPropertyMetadata(propertyName, classID) ?? {};
556
+ fieldLabel = fieldMetaData.label ?? fieldMetaData.caption ?? propertyName;
557
+
558
+ const definedOnClassID = fieldMetaData.definedOnClassID;
559
+ const localeValue = PCore.getLocaleUtils().getLocaleValue(
560
+ fieldLabel,
561
+ `${definedOnClassID ?? fieldMetaData.classID ?? classID}.${propertyName}`,
562
+ PCore.getLocaleUtils().FIELD_LABELS_BUNDLE_KEY,
563
+ null
564
+ );
565
+ return localeValue || fieldLabel;
566
+ }
567
+
568
+ function populateRenderingOptions(name, config, field) {
569
+ const shouldDisplayAsSemanticLink = 'displayAsLink' in field.config && field.config.displayAsLink;
570
+ if (shouldDisplayAsSemanticLink) {
571
+ config.customObject.isAssignmentLink = AssignDashObjects.includes(field.config.classID);
572
+ if (field.config.value.startsWith('@CA')) {
573
+ config.customObject.isAssociation = true;
574
+ }
575
+ config.cellRenderer = formatConstants.WorkLink;
576
+ } else if (name === 'pyStatusWork' || name === 'pyAssignmentStatus') {
577
+ config.cellRenderer = formatConstants.WorkStatus;
578
+ } else if (name === 'pxUrgencyWork') {
579
+ config.cellRenderer = formatConstants.Integer;
580
+ }
581
+ }
582
+
583
+ export function initializeColumns(fields: any[] = [], getMappedProperty: any = null) {
584
+ return fields.map((field, originalColIndex) => {
585
+ let name = field.config.value;
586
+
587
+ if (name.startsWith('@')) {
588
+ name = name.substring(name.indexOf(' ') + 1);
589
+ if (name[0] === '.') name = name.substring(1);
590
+ }
591
+ name = getMappedProperty?.(name) ?? name;
592
+
593
+ let label = field.config.label || field.config.caption;
594
+ const { show = true, displayAs } = field.config;
595
+ if (isFLProperty(label)) {
596
+ label = getFieldLabel(field.config);
597
+ } else if (label.startsWith('@')) {
598
+ label = label.substring(3);
599
+ }
600
+
601
+ const config = {
602
+ name,
603
+ label,
604
+ show,
605
+ classID: field.config.classID,
606
+ id: field.id || name || originalColIndex,
607
+ displayAs,
608
+ associationID: field.config.associationID,
609
+ ...(field.config.classID && { category: field.config.category }),
610
+ customObject: {},
611
+ fieldType: field.config.fieldType,
612
+ meta: {
613
+ ...field
614
+ }
615
+ };
616
+
617
+ populateRenderingOptions(name, config, field);
618
+
619
+ return config;
620
+ });
621
+ }
622
+
623
+ export const getItemKey = fields => {
624
+ let itemKey;
625
+ if (fields.findIndex(field => field.id === 'pyGUID') > -1) {
626
+ itemKey = 'pyGUID';
627
+ } else {
628
+ itemKey = 'pzInsKey';
629
+ }
630
+ return itemKey;
631
+ };
632
+
633
+ export function preparePatchQueryFields(fields, isDataObject = false, classID = '') {
634
+ const queryFields: any[] = [];
635
+ fields.forEach(field => {
636
+ const patchFields: any[] = [];
637
+ if (field.cellRenderer === 'WorkLink') {
638
+ if (field.customObject && field.customObject.isAssignmentLink) {
639
+ const associationName = field.name.includes(':') ? `${field.name.split(':')[0]}:` : '';
640
+ patchFields.push(`${associationName}pzInsKey`);
641
+ patchFields.push(`${associationName}pxRefObjectClass`);
642
+ } else if (field.customObject && field.customObject.isAssociation) {
643
+ const associationCategory = field.name.split(':')[0];
644
+ patchFields.push(`${associationCategory}:pyID`);
645
+ patchFields.push(`${associationCategory}:pzInsKey`);
646
+ patchFields.push(`${associationCategory}:pxObjClass`);
647
+ } else if (isDataObject) {
648
+ const dataViewName = PCore.getDataTypeUtils().getSavableDataPage(classID);
649
+ const dataPageKeys = PCore.getDataTypeUtils().getDataPageKeys(dataViewName);
650
+ dataPageKeys?.forEach(item => (item.isAlternateKeyStorage ? patchFields.push(item.linkedField) : patchFields.push(item.keyName)));
651
+ } else {
652
+ patchFields.push('pyID');
653
+ patchFields.push('pzInsKey');
654
+ patchFields.push('pxObjClass');
655
+ }
656
+ }
657
+ patchFields.forEach(k => {
658
+ if (!queryFields.find(q => q === k)) {
659
+ queryFields.push(k);
660
+ }
661
+ });
662
+ });
663
+
664
+ return queryFields;
665
+ }
666
+
667
+ /**
668
+ * Update the renderer type for the properties of type Page.
669
+ */
670
+ export function updatePageFieldsConfig(configFields, parentClassID) {
671
+ return configFields.forEach(item => {
672
+ const {
673
+ type,
674
+ config: { value }
675
+ } = item;
676
+ const propertyName = PCore.getAnnotationUtils().getPropertyName(value);
677
+ if (isEmbeddedField(value) && !isPageListInPath(propertyName, parentClassID)) {
678
+ item.config.componentType = type;
679
+ item.type = 'PagePropertyRenderer';
680
+ }
681
+ });
682
+ }
683
+
684
+ export const readContextResponse = async (context, params) => {
685
+ const { getPConnect, apiContext, setListContext, children, showDynamicFields, referenceList, isDataObject, ref } = params;
686
+ const { promisesResponseArray, setShowRecords, apiContext: otherContext } = context;
687
+
688
+ const listOfComponents: any[] = [];
689
+ ref.setShowRecords = setShowRecords;
690
+ const {
691
+ data: { fields: metaFields, classID, isQueryable }
692
+ } = promisesResponseArray[0];
693
+ let {
694
+ data: { primaryFields }
695
+ } = promisesResponseArray[0];
696
+ // When list is configured with Include all class fields configuration, provide support for Primary fields column
697
+ if (showDynamicFields) {
698
+ const sourceMetadata: any = PCore.getMetadataUtils().getDataPageMetadata(referenceList);
699
+ if (sourceMetadata?.primaryFields) {
700
+ primaryFields = sourceMetadata.primaryFields;
701
+ }
702
+ // updating metaData fieldID to normal property if it has fieldID starts with !P! or !PL!
703
+ updateMetaEmbeddedFieldID(metaFields);
704
+ }
705
+ updateFieldType(metaFields);
706
+
707
+ if (isDataObject) {
708
+ const compositeKeys: any[] = [];
709
+ const dataViewName = PCore.getDataTypeUtils().getSavableDataPage(classID);
710
+ const dataPageKeys = PCore.getDataTypeUtils().getDataPageKeys(dataViewName);
711
+ dataPageKeys?.forEach(item => (item.isAlternateKeyStorage ? compositeKeys.push(item.linkedField) : compositeKeys.push(item.keyName)));
712
+ if (compositeKeys.length) {
713
+ otherContext?.setCompositeKeys(compositeKeys);
714
+ }
715
+ if (otherContext) {
716
+ otherContext.fetchRowActionDetails = null;
717
+ }
718
+ }
719
+
720
+ const presetArray = [];
721
+ const rawMetadata = getPConnect().getRawMetadata().config;
722
+ const rawPresets = rawMetadata.presets;
723
+ const isMetaWithPresets = rawPresets && rawPresets.length !== 0;
724
+ const childrenIterator = isMetaWithPresets ? rawPresets : children;
725
+ const resolvedPresets = getPConnect().getConfigProps().presets;
726
+ let fields;
727
+ let tableConfig;
728
+ childrenIterator?.forEach((presetMeta, index) => {
729
+ const { configFields } = getTableConfigFromPresetMeta(
730
+ { ...presetMeta, label: resolvedPresets[index].label },
731
+ isMetaWithPresets,
732
+ getPConnect,
733
+ classID,
734
+ primaryFields,
735
+ metaFields
736
+ );
737
+ const pushToComponentsList = fieldType => {
738
+ listOfComponents.push(fieldType);
739
+ };
740
+ // read report columns response - in case of nonqueryable ignore the response and rely only on the fields configured at authoing time in presets
741
+ const reportColumnsSet = isQueryable ? getReportColumns(promisesResponseArray[1]) : new Set();
742
+
743
+ const configFieldSet = prepareConfigFields(configFields, pushToComponentsList);
744
+
745
+ // FIXME #EmbeddedPropertyPatch
746
+ // TODO: Remove this merge logic when the metadata response includes all optimized embedded page and pagelists
747
+ // merging configured embedded properties with metadata so that while preparing extra fields, config fields can get other properties from meta(eg: category, displayAsLink)
748
+ // get configured embedded properties metadata and get new mergedMetaFields
749
+ const configEmbeddedFieldsMeta = getConfigEmbeddedFieldsMeta(configFieldSet, classID);
750
+ const mergedMetaFields = mergeConfigEmbeddedFieldsMeta(configEmbeddedFieldsMeta, metaFields);
751
+
752
+ const extraFields = prepareExtraFields(
753
+ mergedMetaFields, // passing new merged meta fields which has meta of configured embedded fields of current preset
754
+ configFields,
755
+ configFieldSet,
756
+ reportColumnsSet,
757
+ classID,
758
+ showDynamicFields
759
+ );
760
+
761
+ if (isQueryable) {
762
+ updatePageFieldsConfig(configFields, classID);
763
+ preparePropertyMaps([...configFields, ...extraFields], classID, context);
764
+ }
765
+
766
+ const { getMappedProperty } = context;
767
+
768
+ fields = initializeColumns([...configFields, ...extraFields], getMappedProperty);
769
+ const patchQueryFields = preparePatchQueryFields(fields, isDataObject, classID);
770
+ const itemKey = getItemKey(fields);
771
+ tableConfig = { fieldDefs: fields, patchQueryFields, itemKey, isQueryable };
772
+ });
773
+ const meta = tableConfig;
774
+ setListContext({
775
+ meta,
776
+ presets: presetArray,
777
+ apiContext: {
778
+ ...apiContext
779
+ }
780
+ });
781
+ };