@pega/custom-dx-components 26.1.11 → 26.1.12-alpha.0.2

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 (323) hide show
  1. package/README.md +6 -2
  2. package/package.json +48 -64
  3. package/src/ai/README.md +44 -0
  4. package/src/ai/catalog/README.md +133 -0
  5. package/src/ai/catalog/best-practices/README.md +24 -0
  6. package/src/ai/catalog/best-practices/accessibility-for-async-components.md +53 -0
  7. package/src/ai/catalog/best-practices/error-handling-and-resiliency.md +116 -0
  8. package/src/ai/catalog/best-practices/genai-assistant-integration-patterns.md +49 -0
  9. package/src/ai/catalog/best-practices/performance-and-efficiency.md +109 -0
  10. package/src/ai/catalog/best-practices/security-considerations.md +93 -0
  11. package/src/ai/catalog/best-practices/testing-pconnect-components.md +245 -0
  12. package/src/ai/catalog/best-practices/troubleshooting-common-pitfalls.md +132 -0
  13. package/src/ai/catalog/pconnect-assignment-lifecycle/SKILL.md +44 -0
  14. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/README.md +39 -0
  15. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/approval-workflow-decision.md +47 -0
  16. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/attachment-upload.md +45 -0
  17. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/bulk-action-submit.md +50 -0
  18. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/confirm-before-destructive-action.md +43 -0
  19. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/create-and-stage-new-case.md +45 -0
  20. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/graceful-submit-failure.md +39 -0
  21. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/modal-assignment-submit.md +58 -0
  22. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/multi-step-wizard.md +44 -0
  23. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/resolve-or-ignore-duplicate.md +47 -0
  24. package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/safe-case-deletion.md +36 -0
  25. package/src/ai/catalog/pconnect-case-collaboration/SKILL.md +42 -0
  26. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/README.md +36 -0
  27. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/look-up-user-details.md +43 -0
  28. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/manage-case-attachments.md +51 -0
  29. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/manage-case-participants.md +52 -0
  30. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/participant-and-follower.md +40 -0
  31. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/post-and-manage-feed.md +50 -0
  32. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/relate-cases.md +35 -0
  33. package/src/ai/catalog/pconnect-case-collaboration/cookbooks/tag-case-and-find-related.md +44 -0
  34. package/src/ai/catalog/pconnect-data-subscriptions/SKILL.md +42 -0
  35. package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/README.md +35 -0
  36. package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/data-page-subscription-cleanup.md +41 -0
  37. package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/publish-and-subscribe-events.md +40 -0
  38. package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/pubsub-cleanup.md +38 -0
  39. package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/query-paginated-list-data.md +44 -0
  40. package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/realtime-case-subscription.md +46 -0
  41. package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/refresh-and-update-data.md +41 -0
  42. package/src/ai/catalog/pconnect-forms-and-fields/SKILL.md +44 -0
  43. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/README.md +36 -0
  44. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/autosave-tracking.md +45 -0
  45. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/cascading-dependent-fields.md +51 -0
  46. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/collect-form-changes-for-manual-save.md +45 -0
  47. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/custom-field-validators.md +44 -0
  48. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/discard-changes-and-reset-form.md +41 -0
  49. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/full-form-validation.md +38 -0
  50. package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/persist-widget-ui-state.md +41 -0
  51. package/src/ai/catalog/pconnect-lists-and-views/SKILL.md +44 -0
  52. package/src/ai/catalog/pconnect-lists-and-views/cookbooks/README.md +35 -0
  53. package/src/ai/catalog/pconnect-lists-and-views/cookbooks/activate-and-switch-container-items.md +52 -0
  54. package/src/ai/catalog/pconnect-lists-and-views/cookbooks/container-item-lifecycle.md +61 -0
  55. package/src/ai/catalog/pconnect-lists-and-views/cookbooks/insert-delete-list-rows.md +40 -0
  56. package/src/ai/catalog/pconnect-lists-and-views/cookbooks/reorder-list-rows.md +39 -0
  57. package/src/ai/catalog/pconnect-lists-and-views/cookbooks/repeating-row-edit.md +39 -0
  58. package/src/ai/catalog/pconnect-lists-and-views/cookbooks/view-personalization.md +60 -0
  59. package/src/ai/catalog/pconnect-navigation-locale-genai/SKILL.md +45 -0
  60. package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/README.md +35 -0
  61. package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/agent-conversation-for-tasks.md +54 -0
  62. package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/bookmarkable-filter-state.md +40 -0
  63. package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/deep-link-semantic-url.md +39 -0
  64. package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/genai-assistant-conversation.md +43 -0
  65. package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/locale-switch-and-relocalize.md +38 -0
  66. package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/persist-operator-preferences.md +40 -0
  67. package/src/ai/catalog/references/architecture-overview.md +52 -0
  68. package/src/ai/catalog/references/pconnect-actions-api.md +948 -0
  69. package/src/ai/catalog/references/pconnect-case-info-data-info-localization.md +618 -0
  70. package/src/ai/catalog/references/pconnect-case-validation-utilities.md +238 -0
  71. package/src/ai/catalog/references/pconnect-container-manager.md +215 -0
  72. package/src/ai/catalog/references/pconnect-list-actions.md +250 -0
  73. package/src/ai/catalog/references/pconnect-misc-suggestions-creation.md +231 -0
  74. package/src/ai/catalog/references/pconnect-reference-context-component.md +471 -0
  75. package/src/ai/catalog/references/pconnect-state-config.md +316 -0
  76. package/src/ai/catalog/references/pconnect-validation-api.md +45 -0
  77. package/src/ai/catalog/references/pcore-analytics-genai-details.md +50 -0
  78. package/src/ai/catalog/references/pcore-bootstrap-init-details.md +121 -0
  79. package/src/ai/catalog/references/pcore-bootstrap-registry-routing.md +253 -0
  80. package/src/ai/catalog/references/pcore-case-collaboration-details.md +191 -0
  81. package/src/ai/catalog/references/pcore-case-collaboration-genai.md +264 -0
  82. package/src/ai/catalog/references/pcore-environment-info-details.md +96 -0
  83. package/src/ai/catalog/references/pcore-environment-locale-namespace.md +175 -0
  84. package/src/ai/catalog/references/pcore-messaging-details.md +99 -0
  85. package/src/ai/catalog/references/pcore-misc-details.md +207 -0
  86. package/src/ai/catalog/references/pcore-misc-utilities.md +325 -0
  87. package/src/ai/catalog/references/pcore-rest-data-details.md +164 -0
  88. package/src/ai/catalog/references/pcore-rest-data-messaging.md +308 -0
  89. package/src/ai/catalog/references/pcore-store-context-details.md +40 -0
  90. package/src/ai/catalog/references/pcore-store-context-state.md +130 -0
  91. package/src/ai/index.js +154 -0
  92. package/src/ai/project/.claude/skills/boolean/SKILL.md +43 -0
  93. package/src/ai/project/.claude/skills/case/SKILL.md +58 -0
  94. package/src/ai/project/.claude/skills/create-dx-component/SKILL.md +98 -0
  95. package/src/ai/project/.claude/skills/create-dx-component/assets/PConnProps.d.ts +24 -0
  96. package/src/ai/project/.claude/skills/create-dx-component/assets/create-nonce.ts +5 -0
  97. package/src/ai/project/.claude/skills/create-dx-component/assets/event-utils.ts +18 -0
  98. package/src/ai/project/.claude/skills/create-dx-component/assets/styles.ts +7 -0
  99. package/src/ai/project/.claude/skills/create-dx-component/cookbooks/README.md +28 -0
  100. package/src/ai/project/.claude/skills/create-dx-component/cookbooks/build-a-data-widget.md +281 -0
  101. package/src/ai/project/.claude/skills/create-dx-component/cookbooks/field-with-limits-and-validation.md +156 -0
  102. package/src/ai/project/.claude/skills/create-dx-component/cookbooks/status-badge-field.md +97 -0
  103. package/src/ai/project/.claude/skills/create-dx-component/references/accessibility.md +71 -0
  104. package/src/ai/project/.claude/skills/create-dx-component/references/choosing-type-and-subtype.md +79 -0
  105. package/src/ai/project/.claude/skills/create-dx-component/references/cli-workflow.md +125 -0
  106. package/src/ai/project/.claude/skills/create-dx-component/references/component-patterns.md +241 -0
  107. package/src/ai/project/.claude/skills/create-dx-component/references/config-schema.md +296 -0
  108. package/src/ai/project/.claude/skills/create-dx-component/references/cosmos-components.md +137 -0
  109. package/src/ai/project/.claude/skills/create-dx-component/references/field-behavior.md +155 -0
  110. package/src/ai/project/.claude/skills/create-dx-component/references/field-essentials.md +90 -0
  111. package/src/ai/project/.claude/skills/create-dx-component/references/field-subtypes-extra.md +68 -0
  112. package/src/ai/project/.claude/skills/create-dx-component/references/localization.md +30 -0
  113. package/src/ai/project/.claude/skills/create-dx-component/references/pcore-pconnect-apis.md +77 -0
  114. package/src/ai/project/.claude/skills/create-dx-component/references/presentation-essentials.md +57 -0
  115. package/src/ai/project/.claude/skills/create-dx-component/references/props-contract.md +182 -0
  116. package/src/ai/project/.claude/skills/create-dx-component/references/state-matrix.md +102 -0
  117. package/src/ai/project/.claude/skills/create-dx-component/references/storybook-pattern.md +262 -0
  118. package/src/ai/project/.claude/skills/create-dx-component/references/styles-pattern.md +54 -0
  119. package/src/ai/project/.claude/skills/create-dx-component/references/template-essentials.md +87 -0
  120. package/src/ai/project/.claude/skills/create-dx-component/references/template-patterns.md +131 -0
  121. package/src/ai/project/.claude/skills/create-dx-component/references/test-pattern.md +215 -0
  122. package/src/ai/project/.claude/skills/create-dx-component/references/ui-gallery-reuse.md +93 -0
  123. package/src/ai/project/.claude/skills/create-dx-component/references/widget-essentials.md +84 -0
  124. package/src/ai/project/.claude/skills/create-dx-component/references/widget-patterns.md +164 -0
  125. package/src/ai/project/.claude/skills/currency/SKILL.md +46 -0
  126. package/src/ai/project/.claude/skills/date/SKILL.md +46 -0
  127. package/src/ai/project/.claude/skills/decimal/SKILL.md +49 -0
  128. package/src/ai/project/.claude/skills/details/SKILL.md +60 -0
  129. package/src/ai/project/.claude/skills/email/SKILL.md +42 -0
  130. package/src/ai/project/.claude/skills/field/SKILL.md +68 -0
  131. package/src/ai/project/.claude/skills/form/SKILL.md +51 -0
  132. package/src/ai/project/.claude/skills/generate-component-set/SKILL.md +80 -0
  133. package/src/ai/project/.claude/skills/generate-component-set/component-manifest.json +161 -0
  134. package/src/ai/project/.claude/skills/identify-components/SKILL.md +76 -0
  135. package/src/ai/project/.claude/skills/integer/SKILL.md +45 -0
  136. package/src/ai/project/.claude/skills/page/SKILL.md +60 -0
  137. package/src/ai/project/.claude/skills/page-widget/SKILL.md +55 -0
  138. package/src/ai/project/.claude/skills/percentage/SKILL.md +52 -0
  139. package/src/ai/project/.claude/skills/phone/SKILL.md +44 -0
  140. package/src/ai/project/.claude/skills/picklist/SKILL.md +50 -0
  141. package/src/ai/project/.claude/skills/plan-dx-component/SKILL.md +51 -0
  142. package/src/ai/project/.claude/skills/plan-dx-component/references/design-system-mapping.md +108 -0
  143. package/src/ai/project/.claude/skills/plan-dx-component/references/intake.md +146 -0
  144. package/src/ai/project/.claude/skills/plan-dx-component/references/plan-template.md +76 -0
  145. package/src/ai/project/.claude/skills/plan-dx-component/references/requirements-template.md +88 -0
  146. package/src/ai/project/.claude/skills/presentation/SKILL.md +61 -0
  147. package/src/ai/project/.claude/skills/publish-library/SKILL.md +106 -0
  148. package/src/ai/project/.claude/skills/radiobuttons/SKILL.md +51 -0
  149. package/src/ai/project/.claude/skills/review-component/SKILL.md +49 -0
  150. package/src/ai/project/.claude/skills/review-component/references/checklist.md +77 -0
  151. package/src/ai/project/.claude/skills/template/SKILL.md +60 -0
  152. package/src/ai/project/.claude/skills/text/SKILL.md +45 -0
  153. package/src/ai/project/.claude/skills/update-dx-component/SKILL.md +56 -0
  154. package/src/ai/project/.claude/skills/update-dx-component/references/maintenance.md +43 -0
  155. package/src/ai/project/.claude/skills/url/SKILL.md +46 -0
  156. package/src/ai/project/.claude/skills/validate-component/SKILL.md +78 -0
  157. package/src/ai/project/.claude/skills/validate-component/references/runtime-troubleshooting.md +56 -0
  158. package/src/ai/project/.claude/skills/validate-component/scripts/check-component.mjs +327 -0
  159. package/src/ai/project/.claude/skills/widget/SKILL.md +59 -0
  160. package/src/ai/project/.gemini/settings.json +5 -0
  161. package/src/ai/project/AGENTS.md +74 -0
  162. package/src/ai/readme-section.md +91 -0
  163. package/src/cli.js +48 -7
  164. package/src/constants.js +54 -53
  165. package/src/internal-tests.js +27 -0
  166. package/src/tasks/ai-toggle/index.js +46 -0
  167. package/src/tasks/authenticate/helper.js +38 -38
  168. package/src/tasks/authenticate/index.js +17 -15
  169. package/src/tasks/build-all/helper.js +4 -4
  170. package/src/tasks/build-all/index.js +7 -7
  171. package/src/tasks/build-comp/helper.js +17 -17
  172. package/src/tasks/build-comp/index.js +10 -10
  173. package/src/tasks/build-jest-assets/index.js +7 -9
  174. package/src/tasks/build-lib/helper.js +8 -8
  175. package/src/tasks/build-lib/index.js +8 -8
  176. package/src/tasks/bundle/builder/index.js +9 -12
  177. package/src/tasks/bundle/builder/modules.js +8 -9
  178. package/src/tasks/bundle/builder/paths.js +2 -19
  179. package/src/tasks/bundle/builder/webpack.config.js +60 -77
  180. package/src/tasks/bundle/index.js +8 -8
  181. package/src/tasks/create/index.js +35 -35
  182. package/src/tasks/create/templates/Constellation/Field/Boolean/index.tsx.mustache +1 -36
  183. package/src/tasks/create/templates/Constellation/Field/Date/date.ts.mustache +2 -2
  184. package/src/tasks/create/templates/Constellation/Field/Date/index.tsx.mustache +2 -27
  185. package/src/tasks/create/templates/Constellation/Field/DateTime/date-utils.ts.mustache +2 -2
  186. package/src/tasks/create/templates/Constellation/Field/DateTime/date.ts.mustache +2 -2
  187. package/src/tasks/create/templates/Constellation/Field/DateTime/index.tsx.mustache +2 -35
  188. package/src/tasks/create/templates/Constellation/Field/Decimal/index.tsx.mustache +3 -36
  189. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/index.tsx.mustache +4 -39
  190. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/index.tsx.mustache +4 -53
  191. package/src/tasks/create/templates/Constellation/Field/Icon-Button-URL/index.tsx.mustache +5 -5
  192. package/src/tasks/create/templates/Constellation/Field/Integer/index.tsx.mustache +3 -36
  193. package/src/tasks/create/templates/Constellation/Field/Picklist/index.tsx.mustache +7 -42
  194. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/component-constants.ts +1 -1
  195. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/date.ts.mustache +0 -2
  196. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/embed-utils.ts.mustache +1 -1
  197. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/index.tsx.mustache +11 -11
  198. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/repeat-utils.ts.mustache +3 -13
  199. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/textformat-utils.tsx.mustache +2 -3
  200. package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/utils.ts.mustache +28 -28
  201. package/src/tasks/create/templates/Constellation/Field/Picklist-RadioButtons/index.tsx.mustache +2 -2
  202. package/src/tasks/create/templates/Constellation/Field/Picklist-RadioButtons/textformat-utils.tsx.mustache +2 -3
  203. package/src/tasks/create/templates/Constellation/Field/Text/index.tsx.mustache +4 -33
  204. package/src/tasks/create/templates/Constellation/Field/Text-Email/index.tsx.mustache +3 -33
  205. package/src/tasks/create/templates/Constellation/Field/Text-Input/index.tsx.mustache +3 -31
  206. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/index.tsx.mustache +3 -31
  207. package/src/tasks/create/templates/Constellation/Field/Text-Phone/index.tsx.mustache +3 -35
  208. package/src/tasks/create/templates/Constellation/Field/Text-URL/index.tsx.mustache +3 -33
  209. package/src/tasks/create/templates/Constellation/Field/Text-URL/text-url.tsx.mustache +2 -3
  210. package/src/tasks/create/templates/Constellation/Field/TimeofDay/index.tsx.mustache +2 -35
  211. package/src/tasks/create/templates/Constellation/Field/TimeofDay/time-of-day.ts.mustache +2 -2
  212. package/src/tasks/create/templates/Constellation/Template/DETAILS/Avatar.tsx.mustache +19 -15
  213. package/src/tasks/create/templates/Constellation/Template/DETAILS/Operator.tsx.mustache +6 -6
  214. package/src/tasks/create/templates/Constellation/Template/DETAILS/demo.stories.tsx.mustache +1 -1
  215. package/src/tasks/create/templates/Constellation/Template/DETAILS/index.tsx.mustache +4 -8
  216. package/src/tasks/create/templates/Constellation/Template/DETAILS/mock.ts.mustache +9 -9
  217. package/src/tasks/create/templates/Constellation/Template/DETAILS/utils.js.mustache +4 -8
  218. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/Avatar.tsx.mustache +19 -15
  219. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/Operator.tsx.mustache +6 -6
  220. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/demo.stories.tsx.mustache +1 -1
  221. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/index.tsx.mustache +1 -1
  222. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/mock.ts.mustache +9 -9
  223. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/utils.ts.mustache +4 -8
  224. package/src/tasks/create/templates/Constellation/Template/FORM/demo.stories.tsx.mustache +8 -8
  225. package/src/tasks/create/templates/Constellation/Template/FORM-region/demo.stories.tsx.mustache +8 -8
  226. package/src/tasks/create/templates/Constellation/Template/PAGE/utils.ts.mustache +4 -9
  227. package/src/tasks/create/templates/Constellation/Widget/CASE/demo.test.tsx.mustache +3 -3
  228. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Avatar.tsx.mustache +19 -14
  229. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Operator.tsx.mustache +6 -6
  230. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/index.tsx.mustache +1 -1
  231. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/mock.ts.mustache +1 -1
  232. package/src/tasks/create/templates/Launchpad/Field/Icon-Button-URL/index.tsx.mustache +5 -5
  233. package/src/tasks/create/templates/Launchpad/Field/Text-Phone/index.tsx.mustache +3 -35
  234. package/src/tasks/create/templates/Launchpad/Field/__components.md +1 -1
  235. package/src/tasks/create/templates/Launchpad/Template/FORM/demo.stories.tsx.mustache +8 -8
  236. package/src/tasks/create/templates/Launchpad/Template/FORM-region/demo.stories.tsx.mustache +8 -8
  237. package/src/tasks/create/templates/Launchpad/Widget/CASE/demo.test.tsx.mustache +3 -3
  238. package/src/tasks/create/templates/Launchpad/Widget/PAGE-CASE/index.tsx.mustache +1 -1
  239. package/src/tasks/create/templates/Launchpad/Widget/PAGE-CASE/mock.ts.mustache +1 -1
  240. package/src/tasks/create-all/index.js +42 -41
  241. package/src/tasks/create-lib/helper.js +13 -13
  242. package/src/tasks/create-lib/index.js +5 -5
  243. package/src/tasks/create-version/helper.js +10 -10
  244. package/src/tasks/create-version/index.js +3 -4
  245. package/src/tasks/delete/helper.js +20 -19
  246. package/src/tasks/delete/index.js +2 -2
  247. package/src/tasks/delete-all/helper.js +26 -25
  248. package/src/tasks/delete-all/index.js +2 -2
  249. package/src/tasks/delete-lib/helper.js +6 -6
  250. package/src/tasks/delete-lib/index.js +6 -6
  251. package/src/tasks/delete-pub/helper.js +18 -18
  252. package/src/tasks/delete-pub/index.js +8 -8
  253. package/src/tasks/delete-version/index.js +2 -2
  254. package/src/tasks/dev-server/index.js +1 -1
  255. package/src/tasks/export-archive/helper.js +21 -21
  256. package/src/tasks/export-archive/index.js +27 -40
  257. package/src/tasks/export-rc/helper.js +34 -34
  258. package/src/tasks/export-rc/index.js +21 -31
  259. package/src/tasks/import-archive/helper.js +39 -39
  260. package/src/tasks/import-archive/index.js +69 -89
  261. package/src/tasks/import-comp/helper.js +8 -8
  262. package/src/tasks/import-comp/index.js +30 -42
  263. package/src/tasks/index.js +5 -0
  264. package/src/tasks/init/Node.gitignore +149 -0
  265. package/src/tasks/init/helper.js +15 -8
  266. package/src/tasks/init/index.js +115 -35
  267. package/src/tasks/init/template/.prettierrc.json +4 -1
  268. package/src/tasks/init/template/.storybook/main.ts +1 -4
  269. package/src/tasks/init/template/.storybook/manager.ts +1 -1
  270. package/src/tasks/init/template/.storybook/preview.tsx +2 -2
  271. package/src/tasks/init/template/.storybook/theme.js +1 -1
  272. package/src/tasks/init/template/.vscode/extensions.json +0 -1
  273. package/src/tasks/init/template/README.md +2 -2
  274. package/src/tasks/init/template/eslint.config.mjs +13 -155
  275. package/src/tasks/init/template/jest.config.cjs +2 -0
  276. package/src/tasks/init/template/package-lock.json +26864 -0
  277. package/src/tasks/init/template/package.json.mustache +19 -74
  278. package/src/tasks/init/template/setupTests.ts +10 -4
  279. package/src/tasks/init/template/tsconfig.json +14 -6
  280. package/src/tasks/internal-test/index.js +21 -0
  281. package/src/tasks/internal-test-full/index.js +15 -0
  282. package/src/tasks/internal-test-functional/index.js +15 -0
  283. package/src/tasks/internal-test-unit/index.js +13 -0
  284. package/src/tasks/linter/index.js +2 -2
  285. package/src/tasks/list/helper.js +41 -40
  286. package/src/tasks/list/index.js +3 -3
  287. package/src/tasks/list-lib/helper.js +5 -5
  288. package/src/tasks/list-lib/index.js +8 -8
  289. package/src/tasks/list-pub/helper.js +23 -16
  290. package/src/tasks/list-pub/index.js +24 -21
  291. package/src/tasks/move/helper.js +8 -8
  292. package/src/tasks/move/index.js +19 -23
  293. package/src/tasks/promote-webpack/index.js +4 -4
  294. package/src/tasks/promote-webpack/webpack.config.js +62 -93
  295. package/src/tasks/publish/helper.js +21 -21
  296. package/src/tasks/publish/index.js +16 -16
  297. package/src/tasks/publish-all/helper.js +20 -20
  298. package/src/tasks/publish-all/index.js +11 -12
  299. package/src/tasks/publish-archive/helper.js +9 -9
  300. package/src/tasks/publish-archive/index.js +12 -14
  301. package/src/tasks/publish-lib/helper.js +3 -3
  302. package/src/tasks/publish-lib/index.js +28 -34
  303. package/src/tasks/quarantine/index.js +8 -8
  304. package/src/tasks/rename/index.js +26 -30
  305. package/src/tasks/rename-lib/index.js +21 -25
  306. package/src/tasks/restore/index.js +8 -8
  307. package/src/tasks/restore-config/index.js +3 -5
  308. package/src/tasks/set-perm/index.js +8 -8
  309. package/src/tasks/show-help/index.js +17 -9
  310. package/src/tasks/show-status/index.js +2 -2
  311. package/src/tasks/store/index.js +8 -8
  312. package/src/tasks/switch-lib/helper.js +7 -7
  313. package/src/tasks/switch-lib/index.js +7 -7
  314. package/src/tasks/switch-version/helper.js +6 -6
  315. package/src/tasks/switch-version/index.js +7 -7
  316. package/src/tasks/update/index.js +1 -1
  317. package/src/tasks/upgrade/index.js +7 -7
  318. package/src/tasks/validator/index.js +49 -203
  319. package/src/util.js +169 -186
  320. package/src/rules/no-pcore-pconnect-in-presentation.js +0 -103
  321. package/src/tasks/init/template/.stylelintrc.json +0 -4
  322. package/src/tasks/init/template/babel.config.cjs +0 -22
  323. package/src/tasks/init/template/cspell.json +0 -14
@@ -0,0 +1,207 @@
1
+ # Forms, Autosave, Mashup Bridge & Asset Loading — Method Details
2
+
3
+ > Part of the [PCore / PConnect API Reference skills](../README.md). Companion to [pcore-misc-utilities.md](./pcore-misc-utilities.md), which covers the top-level `PCore.get*()` accessors. This file catalogs the methods available on the objects those accessors return.
4
+ >
5
+ > `AssetLoader` is a curated subset — most of its methods are internal component-config-loading plumbing used by the framework's own bootstrap process.
6
+
7
+ ## AsynchronousUtils (via `PCore.getAsynchronousUtils()`)
8
+
9
+ | Method | Signature | Purpose |
10
+ | ---------------------------- | -------------------------------------- | --------------------------------------------------------------------------- |
11
+ | `getDebouncedSubject(delay)` | `(delay: number): Observable<unknown>` | Returns a new Observable that yields values after the given debounce delay. |
12
+
13
+ **Example:**
14
+
15
+ ```typescript
16
+ const debouncedSubject = PCore.getAsynchronousUtils().getDebouncedSubject(200);
17
+ const subscription = debouncedSubject.subscribe((value) => {
18
+ // react to the debounced value
19
+ });
20
+ ```
21
+
22
+ ---
23
+
24
+ ## ErrorHandler (via `PCore.getErrorHandler()`)
25
+
26
+ | Method | Signature | Purpose |
27
+ | ---------------------------------- | ------------------------- | --------------------------------------------------------------------------- |
28
+ | `getGenericFailedMessage()` | `(): string` | Returns the generic failure message shown when a component fails to render. |
29
+ | `setGenericFailedMessage(message)` | `(message: string): void` | Sets a custom generic failure message. |
30
+
31
+ **Example:**
32
+
33
+ ```typescript
34
+ PCore.getErrorHandler().setGenericFailedMessage('Something went wrong. Please try again.');
35
+ ```
36
+
37
+ ---
38
+
39
+ ## FormUtils (via `PCore.getFormUtils()`)
40
+
41
+ | Method | Signature | Purpose |
42
+ | ---------------------------------------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------- |
43
+ | `getChanges(context)` | `(context: string): unknown` | Returns the changed data for a given container's context. |
44
+ | `getSubmitData(context, options?)` | `(context: string, options?: { includeDisabledFields?: boolean; onlyChangedData?: boolean }): unknown` | Returns the submittable data for a context. |
45
+ | `isStateModified(context)` | `(context: string \| null \| undefined): boolean` | Returns whether state has been modified for a context. |
46
+ | `isFormValid(context, pageReference?)` | `(context: string, pageReference?: string): boolean` | Checks whether a form is valid based on its fields' validation state. |
47
+ | `getEditableFields(context)` | `(context: string): unknown[]` | Returns the editable fields for a context. |
48
+ | `clearChangedProperties(context)` | `(context: string): void` | Clears the tracked changed-properties list for a context. |
49
+ | `resetComplexObjectDirtyStatus(context)` | `(context: string): void` | Resets the dirty-status flag for a complex object context. |
50
+ | `setCustomValidator(type, validatorFn)` | `(type: string, validatorFn: Function): void` | Registers a custom validator function by type. |
51
+
52
+ **Example:**
53
+
54
+ ```typescript
55
+ const changedFields = PCore.getFormUtils().getChanges(context);
56
+ const isValid = PCore.getFormUtils().isFormValid(context);
57
+ ```
58
+
59
+ ---
60
+
61
+ ## AutosaveUtils (via `PCore.getAutosaveUtils()`)
62
+
63
+ | Method | Signature | Purpose |
64
+ | --------------------------------------------- | -------------------------------------------------------------------- | ----------------------------------------------------------------------- |
65
+ | `isAutosaveEnabledForContext(context)` | `(context: string): boolean` | Returns whether autosave is active for a context. |
66
+ | `subscribeAutosaveStatus(itemKey, callback)` | `(itemKey: string, callback: (status: unknown) => void): () => void` | Subscribes to autosave status changes; returns an unsubscribe function. |
67
+ | `notifyChange(context, propReference, value)` | `(context: string, propReference: string, value: string): void` | Notifies the autosave engine that the user is actively editing. |
68
+
69
+ **Example:**
70
+
71
+ ```typescript
72
+ const unsubscribe = PCore.getAutosaveUtils().subscribeAutosaveStatus(itemKey, (status) => {
73
+ // react to autosave status changes
74
+ });
75
+ ```
76
+
77
+ ---
78
+
79
+ ## MashupBridge (via `PCore.getMashupBridge()`)
80
+
81
+ `PCore.getMashupBridge()` returns the mashup-bridge module namespace, not the bridge instance directly — the methods are on its `mashup` property.
82
+
83
+ | Method | Signature | Purpose |
84
+ | -------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
85
+ | `mashup.init(initParams)` | `(initParams: { resizing: string; parentOrigin?: string }): void` | Initializes the mashup bridge with resize configuration. Called once by the framework during bootstrap. |
86
+ | `mashup.send(actionInfo)` | `(actionInfo: { action: string; message: unknown }): void` | Sends a message to the parent host window. |
87
+ | `mashup.onMessage(messageEvent)` | `(messageEvent: MessageEvent): boolean` | Handles an inbound message from the parent window. |
88
+ | `mashup.getMessageHandler()` | `(): (event: MessageEvent) => boolean` | Returns the bound message handler for event listener registration. |
89
+
90
+ **Example:**
91
+
92
+ ```typescript
93
+ const { mashup } = PCore.getMashupBridge();
94
+ window.addEventListener('message', mashup.getMessageHandler());
95
+ ```
96
+
97
+ **Notes:** The framework already registers this listener internally on load — most component authors never need to call these directly.
98
+
99
+ ---
100
+
101
+ ## ConfirmDialogService (via `PCore.getConfirmDialogService()`)
102
+
103
+ | Method | Signature | Purpose |
104
+ | ---------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
105
+ | `registerConfirmHandler(handler?)` | `(handler?: (message: string) => Promise<boolean>): void` | Registers (or clears) the confirmation-dialog handler. |
106
+ | `confirm(message)` | `(message: string): Promise<boolean>` | Shows the confirmation dialog, falling back to the native browser confirm if no handler is registered. |
107
+
108
+ **Example:**
109
+
110
+ ```typescript
111
+ PCore.getConfirmDialogService().registerConfirmHandler((message) => showCustomConfirmDialog(message));
112
+ ```
113
+
114
+ ---
115
+
116
+ ## FieldUtils (via `PCore.getFieldUtils()`)
117
+
118
+ | Method | Signature | Purpose |
119
+ | ------------------------------------ | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
120
+ | `formatPageReference(referenceList)` | `(referenceList: string): string` | Converts an array-notation page reference (for example `.Questionsets[0].Questions`) into the Pega-specific format (`.Questionsets(1).Questions`) expected by the DX API. |
121
+
122
+ **Example:**
123
+
124
+ ```typescript
125
+ const formattedRef = PCore.getFieldUtils().formatPageReference('.Questionsets[0].Questions');
126
+ // returns '.Questionsets(1).Questions'
127
+ ```
128
+
129
+ ---
130
+
131
+ ## FieldDefaultUtils (via `PCore.getFieldDefaultUtils()`)
132
+
133
+ | Member | Signature | Purpose |
134
+ | ----------------------------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
135
+ | `fieldDefaults` | `{ [fieldType: string]: unknown }` | Public property holding the current field-default configuration, keyed by component type. Read directly rather than through a getter. |
136
+ | `getDefaultsforType(type)` | `(type: string): unknown` | Returns the default formats/styles configured for a component type (equivalent to `fieldDefaults[type]`). |
137
+ | `setFieldDefault(type, key, value)` | `(type: string, key: string, value: unknown): void` | Sets a single field-default value for a component type. |
138
+ | `updateFieldDefaults(configs)` | `(configs: unknown): void` | Merges new field-default configurations. |
139
+
140
+ **Example:**
141
+
142
+ ```typescript
143
+ const { allowImplicitRefresh } = PCore.getFieldDefaultUtils().fieldDefaults.DataReference || {};
144
+ ```
145
+
146
+ ---
147
+
148
+ ## AnnotationUtils (via `PCore.getAnnotationUtils()`)
149
+
150
+ | Method | Signature | Purpose |
151
+ | ------------------------ | -------------------------- | --------------------------------------------------------------------------------------------------------------- |
152
+ | `getPropertyName(value)` | `(value: string): string` | Returns the literal property name from an annotated property (for example, `'@P .pyName'` returns `'.pyName'`). |
153
+ | `isProperty(value)` | `(value: string): boolean` | Returns whether the given value is an annotated property. |
154
+
155
+ **Example:**
156
+
157
+ ```typescript
158
+ if (PCore.getAnnotationUtils().isProperty(rawValue)) {
159
+ const propertyName = PCore.getAnnotationUtils().getPropertyName(rawValue);
160
+ }
161
+ ```
162
+
163
+ ---
164
+
165
+ ## AssetLoader (via `PCore.getAssetLoader()`)
166
+
167
+ | Method | Signature | Purpose |
168
+ | -------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------------------- |
169
+ | `getStaticServerUrl()` | `(): string \| null` | Returns the static-content server URL for Pega assets. |
170
+ | `getConstellationServiceUrl()` | `(): string \| null` | Returns the Constellation service URL. |
171
+ | `getAppAlias()` | `(): string` | Returns the application alias used for asset loading. |
172
+ | `getSvcComponentsConfig(criteria, options?)` | `(criteria: unknown[], options?: unknown): Promise<unknown>` | Fetches a component's configuration matching the given search criteria. |
173
+ | `getSvcImage(key)` | `(key: string): Promise<Blob \| undefined>` | Fetches an image asset by key. |
174
+ | `getSvcImageUrl(key)` | `(key: string): Promise<string \| Blob \| null>` | Fetches an image asset as a blob URL. |
175
+ | `getSvcLocale(locale, key)` | `(locale: string, key: string): Promise<Response>` | Fetches a localization bundle for a given locale. |
176
+ | `register(name, loaderFn)` | `(name: string, loaderFn: Function): void` | Registers a custom asset-loader function. |
177
+ | `getLoader(name?)` | `(name?: string): Function` | Returns a registered loader (or the default loader). |
178
+ | `loadAssets(assets, options)` | `(assets: unknown[], options: unknown): Promise<unknown[]>` | Loads a set of asset dependencies and injects them into the document. |
179
+
180
+ **Example:**
181
+
182
+ ```typescript
183
+ const serviceUrl = PCore.getAssetLoader().getConstellationServiceUrl();
184
+ ```
185
+
186
+ ---
187
+
188
+ ## NavigationUtils (via `PCore.getNavigationUtils()`)
189
+
190
+ | Method | Signature | Purpose |
191
+ | ----------------------------------------- | -------------------------------------------------------- | ----------------------------------------------------- |
192
+ | `getComponentState(key, options?)` | `(key: string, options?: unknown): unknown` | Reads a component's persisted navigation state. |
193
+ | `setComponentState(key, state, options?)` | `(key: string, state: unknown, options?: unknown): void` | Writes a component's navigation state. |
194
+ | `removeComponentState(key, options?)` | `(key: string, options?: unknown): void` | Removes a component's persisted navigation state. |
195
+ | `getUserSettings(path)` | `(path: string): unknown` | Reads a value from the operator's user settings. |
196
+ | `setUserSettings(path, value)` | `(path: string, value: string): Promise<void>` | Updates a value in the operator's user settings. |
197
+ | `getComponentCache(key)` | `(key: string): unknown` | Reads a value from the in-memory component cache. |
198
+ | `setComponentCache(key, value, options?)` | `(key: string, value: unknown, options?: unknown): void` | Writes a value to the in-memory component cache. |
199
+ | `resetComponentCache(key)` | `(key: string): boolean` | Removes a key from the in-memory component cache. |
200
+ | `getURLParam(key, decode)` | `(key: string, decode: boolean): string \| null` | Reads a query parameter from the current URL. |
201
+ | `setURLParam(key, value, encode?)` | `(key: string, value: string, encode?: boolean): void` | Sets or updates a query parameter in the current URL. |
202
+
203
+ **Example:**
204
+
205
+ ```typescript
206
+ const savedState = PCore.getNavigationUtils().getComponentState(key, { managed: true });
207
+ ```
@@ -0,0 +1,325 @@
1
+ # PCore: Constants, Behavior Overrides & Misc Utilities
2
+
3
+ > Part of the [PCore / PConnect API Reference skills](../README.md). See [pcore-misc-details.md](./pcore-misc-details.md) for the full method catalogs of the objects these accessors return.
4
+
5
+ ## `getConstants()`
6
+
7
+ **Purpose:** Returns the frozen (read-only) public constants object used throughout the application (for example, `CASE_INFO`, `PUB_SUB_EVENTS`, `MESSAGES`).
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ getConstants(): Readonly<Constants>
13
+ ```
14
+
15
+ **Example:**
16
+
17
+ ```typescript
18
+ const { CASE_INFO, MODAL } = PCore.getConstants();
19
+ ```
20
+
21
+ **Notes:** The returned object is frozen — read from it, never mutate it.
22
+
23
+ ---
24
+
25
+ ## `getResolvedConstantValue(key)`
26
+
27
+ **Purpose:** Resolves the actual value for a logical constant key.
28
+
29
+ **Signature:**
30
+
31
+ ```typescript
32
+ getResolvedConstantValue(key: string): unknown
33
+ ```
34
+
35
+ **Example:**
36
+
37
+ ```typescript
38
+ const resolvedPath = PCore.getResolvedConstantValue(PCore.getConstants().CASE_INFO.CASE_INFO_CONTENT);
39
+ ```
40
+
41
+ **Notes:** Pass the constant's logical value (for example, `CASE_INFO.CASE_INFO_CONTENT`), not the constant's key name.
42
+
43
+ ---
44
+
45
+ ## `setBehaviorOverrides(overridesObj)`
46
+
47
+ **Purpose:** Replaces the entire behavior-overrides object used to toggle default runtime behaviors.
48
+
49
+ **Signature:**
50
+
51
+ ```typescript
52
+ setBehaviorOverrides(overridesObj: { [key: string]: boolean }): void
53
+ ```
54
+
55
+ **Example:**
56
+
57
+ ```typescript
58
+ PCore.setBehaviorOverrides({ dynamicLoadComponents: false });
59
+ ```
60
+
61
+ **Notes:** This **replaces** all existing overrides. To add/update a single flag without affecting others, use `setBehaviorOverride`.
62
+
63
+ ---
64
+
65
+ ## `setBehaviorOverride(overrideKey, overrideValue)`
66
+
67
+ **Purpose:** Adds or updates a single behavior-override flag without affecting other existing keys.
68
+
69
+ **Signature:**
70
+
71
+ ```typescript
72
+ setBehaviorOverride(overrideKey: string, overrideValue: boolean): void
73
+ ```
74
+
75
+ **Example:**
76
+
77
+ ```typescript
78
+ PCore.setBehaviorOverride('dynamicSemanticUrl', true);
79
+ ```
80
+
81
+ ---
82
+
83
+ ## `getBehaviorOverrides()`
84
+
85
+ **Purpose:** Returns the current object of all behavior overrides.
86
+
87
+ **Signature:**
88
+
89
+ ```typescript
90
+ getBehaviorOverrides(): { [key: string]: boolean }
91
+ ```
92
+
93
+ **Example:**
94
+
95
+ ```typescript
96
+ const overrides = PCore.getBehaviorOverrides();
97
+ ```
98
+
99
+ ---
100
+
101
+ ## `getBehaviorOverride(theOverride)`
102
+
103
+ **Purpose:** Returns the current value of a single behavior-override flag; `undefined` if it hasn't been set.
104
+
105
+ **Signature:**
106
+
107
+ ```typescript
108
+ getBehaviorOverride(theOverride: string): boolean | undefined
109
+ ```
110
+
111
+ **Example:**
112
+
113
+ ```typescript
114
+ if (PCore.getBehaviorOverride('dynamicLoadComponents') === false) {
115
+ // skip dynamic component loading
116
+ }
117
+ ```
118
+
119
+ ---
120
+
121
+ ## `getAsynchronousUtils()`
122
+
123
+ **Purpose:** Utility APIs for asynchronous operations using Observable (RxJS) patterns.
124
+
125
+ **Signature:**
126
+
127
+ ```typescript
128
+ getAsynchronousUtils(): AsynchronousUtils
129
+ ```
130
+
131
+ **Example:**
132
+
133
+ ```typescript
134
+ const debouncedSubject = PCore.getAsynchronousUtils().getDebouncedSubject(300);
135
+ debouncedSubject.subscribe((value) => {
136
+ // react to the debounced value
137
+ });
138
+ ```
139
+
140
+ ---
141
+
142
+ ## `getErrorHandler()`
143
+
144
+ **Purpose:** APIs to get/set the generic failure message shown when a component fails to render.
145
+
146
+ **Signature:**
147
+
148
+ ```typescript
149
+ getErrorHandler(): ErrorHandler
150
+ ```
151
+
152
+ **Example:**
153
+
154
+ ```typescript
155
+ const genericErrorMessage = PCore.getErrorHandler().getGenericFailedMessage();
156
+ ```
157
+
158
+ ---
159
+
160
+ ## `getFormUtils()`
161
+
162
+ **Purpose:** Form-related operations, such as reading changed fields for a given context.
163
+
164
+ **Signature:**
165
+
166
+ ```typescript
167
+ getFormUtils(): FormUtils
168
+ ```
169
+
170
+ **Example:**
171
+
172
+ ```typescript
173
+ const changedFields = PCore.getFormUtils().getChanges(context);
174
+ ```
175
+
176
+ ---
177
+
178
+ ## `getAutosaveUtils()`
179
+
180
+ **Purpose:** Autosave utility APIs: status subscription, context registration checks, and activity notification.
181
+
182
+ **Signature:**
183
+
184
+ ```typescript
185
+ getAutosaveUtils(): AutosaveUtils
186
+ ```
187
+
188
+ **Example:**
189
+
190
+ ```typescript
191
+ const autosaveUtils = PCore.getAutosaveUtils();
192
+ const isAutosaveEnabled = autosaveUtils.isAutosaveEnabledForContext(context);
193
+ ```
194
+
195
+ ---
196
+
197
+ ## `getMashupBridge()`
198
+
199
+ **Purpose:** Utility APIs for mashup (Web Embed) related operations.
200
+
201
+ **Signature:**
202
+
203
+ ```typescript
204
+ getMashupBridge(): MashupBridge
205
+ ```
206
+
207
+ **Example:**
208
+
209
+ ```typescript
210
+ const mashupBridge = PCore.getMashupBridge();
211
+ ```
212
+
213
+ ---
214
+
215
+ ## `getConfirmDialogService()`
216
+
217
+ **Purpose:** Manages the confirmation dialog shown when orchestration requires user confirmation (for example, navigating away from unsaved changes).
218
+
219
+ **Signature:**
220
+
221
+ ```typescript
222
+ getConfirmDialogService(): ConfirmDialogService
223
+ ```
224
+
225
+ **Example:**
226
+
227
+ ```typescript
228
+ PCore.getConfirmDialogService().registerConfirmHandler((message) => {
229
+ return showCustomConfirmDialog(message);
230
+ });
231
+ ```
232
+
233
+ **Notes:** Register a custom handler so a Constellation UI dialog is used instead of the browser's native `window.confirm`.
234
+
235
+ ---
236
+
237
+ ## `getFieldUtils()`
238
+
239
+ **Purpose:** Utility APIs for field-related operations, such as formatting page references.
240
+
241
+ **Signature:**
242
+
243
+ ```typescript
244
+ getFieldUtils(): FieldUtils
245
+ ```
246
+
247
+ **Example:**
248
+
249
+ ```typescript
250
+ const formattedRef = PCore.getFieldUtils().formatPageReference(pageReference);
251
+ ```
252
+
253
+ ---
254
+
255
+ ## `getFieldDefaultUtils()`
256
+
257
+ **Purpose:** APIs for reading field-default configuration.
258
+
259
+ **Signature:**
260
+
261
+ ```typescript
262
+ getFieldDefaultUtils(): FieldDefaultUtils
263
+ ```
264
+
265
+ **Example:**
266
+
267
+ ```typescript
268
+ const { allowImplicitRefresh } = PCore.getFieldDefaultUtils().fieldDefaults.DataReference || {};
269
+ ```
270
+
271
+ ---
272
+
273
+ ## `getAnnotationUtils()`
274
+
275
+ **Purpose:** Utility APIs to detect and parse property annotations (for example, `@P` property references).
276
+
277
+ **Signature:**
278
+
279
+ ```typescript
280
+ getAnnotationUtils(): AnnotationUtils
281
+ ```
282
+
283
+ **Example:**
284
+
285
+ ```typescript
286
+ if (PCore.getAnnotationUtils().isProperty(rawValue)) {
287
+ const propertyName = PCore.getAnnotationUtils().getPropertyName(rawValue);
288
+ }
289
+ ```
290
+
291
+ ---
292
+
293
+ ## `getAssetLoader()`
294
+
295
+ **Purpose:** Asset-loading utility APIs, including resolving static asset URLs and dynamically loading assets.
296
+
297
+ **Signature:**
298
+
299
+ ```typescript
300
+ getAssetLoader(): AssetLoader
301
+ ```
302
+
303
+ **Example:**
304
+
305
+ ```typescript
306
+ PCore.getAssetLoader().getLoader('component-loader')([componentName]);
307
+ ```
308
+
309
+ ---
310
+
311
+ ## `getNavigationUtils()`
312
+
313
+ **Purpose:** APIs for reading and writing per-component navigation state, URL params, and user settings.
314
+
315
+ **Signature:**
316
+
317
+ ```typescript
318
+ getNavigationUtils(): NavigationUtils
319
+ ```
320
+
321
+ **Example:**
322
+
323
+ ```typescript
324
+ const savedState = PCore.getNavigationUtils().getComponentState(key, { managed: true });
325
+ ```