@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.
- package/README.md +6 -2
- package/package.json +48 -64
- package/src/ai/README.md +44 -0
- package/src/ai/catalog/README.md +133 -0
- package/src/ai/catalog/best-practices/README.md +24 -0
- package/src/ai/catalog/best-practices/accessibility-for-async-components.md +53 -0
- package/src/ai/catalog/best-practices/error-handling-and-resiliency.md +116 -0
- package/src/ai/catalog/best-practices/genai-assistant-integration-patterns.md +49 -0
- package/src/ai/catalog/best-practices/performance-and-efficiency.md +109 -0
- package/src/ai/catalog/best-practices/security-considerations.md +93 -0
- package/src/ai/catalog/best-practices/testing-pconnect-components.md +245 -0
- package/src/ai/catalog/best-practices/troubleshooting-common-pitfalls.md +132 -0
- package/src/ai/catalog/pconnect-assignment-lifecycle/SKILL.md +44 -0
- package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/README.md +39 -0
- package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/approval-workflow-decision.md +47 -0
- package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/attachment-upload.md +45 -0
- package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/bulk-action-submit.md +50 -0
- package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/confirm-before-destructive-action.md +43 -0
- package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/create-and-stage-new-case.md +45 -0
- package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/graceful-submit-failure.md +39 -0
- package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/modal-assignment-submit.md +58 -0
- package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/multi-step-wizard.md +44 -0
- package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/resolve-or-ignore-duplicate.md +47 -0
- package/src/ai/catalog/pconnect-assignment-lifecycle/cookbooks/safe-case-deletion.md +36 -0
- package/src/ai/catalog/pconnect-case-collaboration/SKILL.md +42 -0
- package/src/ai/catalog/pconnect-case-collaboration/cookbooks/README.md +36 -0
- package/src/ai/catalog/pconnect-case-collaboration/cookbooks/look-up-user-details.md +43 -0
- package/src/ai/catalog/pconnect-case-collaboration/cookbooks/manage-case-attachments.md +51 -0
- package/src/ai/catalog/pconnect-case-collaboration/cookbooks/manage-case-participants.md +52 -0
- package/src/ai/catalog/pconnect-case-collaboration/cookbooks/participant-and-follower.md +40 -0
- package/src/ai/catalog/pconnect-case-collaboration/cookbooks/post-and-manage-feed.md +50 -0
- package/src/ai/catalog/pconnect-case-collaboration/cookbooks/relate-cases.md +35 -0
- package/src/ai/catalog/pconnect-case-collaboration/cookbooks/tag-case-and-find-related.md +44 -0
- package/src/ai/catalog/pconnect-data-subscriptions/SKILL.md +42 -0
- package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/README.md +35 -0
- package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/data-page-subscription-cleanup.md +41 -0
- package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/publish-and-subscribe-events.md +40 -0
- package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/pubsub-cleanup.md +38 -0
- package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/query-paginated-list-data.md +44 -0
- package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/realtime-case-subscription.md +46 -0
- package/src/ai/catalog/pconnect-data-subscriptions/cookbooks/refresh-and-update-data.md +41 -0
- package/src/ai/catalog/pconnect-forms-and-fields/SKILL.md +44 -0
- package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/README.md +36 -0
- package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/autosave-tracking.md +45 -0
- package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/cascading-dependent-fields.md +51 -0
- package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/collect-form-changes-for-manual-save.md +45 -0
- package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/custom-field-validators.md +44 -0
- package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/discard-changes-and-reset-form.md +41 -0
- package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/full-form-validation.md +38 -0
- package/src/ai/catalog/pconnect-forms-and-fields/cookbooks/persist-widget-ui-state.md +41 -0
- package/src/ai/catalog/pconnect-lists-and-views/SKILL.md +44 -0
- package/src/ai/catalog/pconnect-lists-and-views/cookbooks/README.md +35 -0
- package/src/ai/catalog/pconnect-lists-and-views/cookbooks/activate-and-switch-container-items.md +52 -0
- package/src/ai/catalog/pconnect-lists-and-views/cookbooks/container-item-lifecycle.md +61 -0
- package/src/ai/catalog/pconnect-lists-and-views/cookbooks/insert-delete-list-rows.md +40 -0
- package/src/ai/catalog/pconnect-lists-and-views/cookbooks/reorder-list-rows.md +39 -0
- package/src/ai/catalog/pconnect-lists-and-views/cookbooks/repeating-row-edit.md +39 -0
- package/src/ai/catalog/pconnect-lists-and-views/cookbooks/view-personalization.md +60 -0
- package/src/ai/catalog/pconnect-navigation-locale-genai/SKILL.md +45 -0
- package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/README.md +35 -0
- package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/agent-conversation-for-tasks.md +54 -0
- package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/bookmarkable-filter-state.md +40 -0
- package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/deep-link-semantic-url.md +39 -0
- package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/genai-assistant-conversation.md +43 -0
- package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/locale-switch-and-relocalize.md +38 -0
- package/src/ai/catalog/pconnect-navigation-locale-genai/cookbooks/persist-operator-preferences.md +40 -0
- package/src/ai/catalog/references/architecture-overview.md +52 -0
- package/src/ai/catalog/references/pconnect-actions-api.md +948 -0
- package/src/ai/catalog/references/pconnect-case-info-data-info-localization.md +618 -0
- package/src/ai/catalog/references/pconnect-case-validation-utilities.md +238 -0
- package/src/ai/catalog/references/pconnect-container-manager.md +215 -0
- package/src/ai/catalog/references/pconnect-list-actions.md +250 -0
- package/src/ai/catalog/references/pconnect-misc-suggestions-creation.md +231 -0
- package/src/ai/catalog/references/pconnect-reference-context-component.md +471 -0
- package/src/ai/catalog/references/pconnect-state-config.md +316 -0
- package/src/ai/catalog/references/pconnect-validation-api.md +45 -0
- package/src/ai/catalog/references/pcore-analytics-genai-details.md +50 -0
- package/src/ai/catalog/references/pcore-bootstrap-init-details.md +121 -0
- package/src/ai/catalog/references/pcore-bootstrap-registry-routing.md +253 -0
- package/src/ai/catalog/references/pcore-case-collaboration-details.md +191 -0
- package/src/ai/catalog/references/pcore-case-collaboration-genai.md +264 -0
- package/src/ai/catalog/references/pcore-environment-info-details.md +96 -0
- package/src/ai/catalog/references/pcore-environment-locale-namespace.md +175 -0
- package/src/ai/catalog/references/pcore-messaging-details.md +99 -0
- package/src/ai/catalog/references/pcore-misc-details.md +207 -0
- package/src/ai/catalog/references/pcore-misc-utilities.md +325 -0
- package/src/ai/catalog/references/pcore-rest-data-details.md +164 -0
- package/src/ai/catalog/references/pcore-rest-data-messaging.md +308 -0
- package/src/ai/catalog/references/pcore-store-context-details.md +40 -0
- package/src/ai/catalog/references/pcore-store-context-state.md +130 -0
- package/src/ai/index.js +154 -0
- package/src/ai/project/.claude/skills/boolean/SKILL.md +43 -0
- package/src/ai/project/.claude/skills/case/SKILL.md +58 -0
- package/src/ai/project/.claude/skills/create-dx-component/SKILL.md +98 -0
- package/src/ai/project/.claude/skills/create-dx-component/assets/PConnProps.d.ts +24 -0
- package/src/ai/project/.claude/skills/create-dx-component/assets/create-nonce.ts +5 -0
- package/src/ai/project/.claude/skills/create-dx-component/assets/event-utils.ts +18 -0
- package/src/ai/project/.claude/skills/create-dx-component/assets/styles.ts +7 -0
- package/src/ai/project/.claude/skills/create-dx-component/cookbooks/README.md +28 -0
- package/src/ai/project/.claude/skills/create-dx-component/cookbooks/build-a-data-widget.md +281 -0
- package/src/ai/project/.claude/skills/create-dx-component/cookbooks/field-with-limits-and-validation.md +156 -0
- package/src/ai/project/.claude/skills/create-dx-component/cookbooks/status-badge-field.md +97 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/accessibility.md +71 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/choosing-type-and-subtype.md +79 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/cli-workflow.md +125 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/component-patterns.md +241 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/config-schema.md +296 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/cosmos-components.md +137 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/field-behavior.md +155 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/field-essentials.md +90 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/field-subtypes-extra.md +68 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/localization.md +30 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/pcore-pconnect-apis.md +77 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/presentation-essentials.md +57 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/props-contract.md +182 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/state-matrix.md +102 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/storybook-pattern.md +262 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/styles-pattern.md +54 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/template-essentials.md +87 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/template-patterns.md +131 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/test-pattern.md +215 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/ui-gallery-reuse.md +93 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/widget-essentials.md +84 -0
- package/src/ai/project/.claude/skills/create-dx-component/references/widget-patterns.md +164 -0
- package/src/ai/project/.claude/skills/currency/SKILL.md +46 -0
- package/src/ai/project/.claude/skills/date/SKILL.md +46 -0
- package/src/ai/project/.claude/skills/decimal/SKILL.md +49 -0
- package/src/ai/project/.claude/skills/details/SKILL.md +60 -0
- package/src/ai/project/.claude/skills/email/SKILL.md +42 -0
- package/src/ai/project/.claude/skills/field/SKILL.md +68 -0
- package/src/ai/project/.claude/skills/form/SKILL.md +51 -0
- package/src/ai/project/.claude/skills/generate-component-set/SKILL.md +80 -0
- package/src/ai/project/.claude/skills/generate-component-set/component-manifest.json +161 -0
- package/src/ai/project/.claude/skills/identify-components/SKILL.md +76 -0
- package/src/ai/project/.claude/skills/integer/SKILL.md +45 -0
- package/src/ai/project/.claude/skills/page/SKILL.md +60 -0
- package/src/ai/project/.claude/skills/page-widget/SKILL.md +55 -0
- package/src/ai/project/.claude/skills/percentage/SKILL.md +52 -0
- package/src/ai/project/.claude/skills/phone/SKILL.md +44 -0
- package/src/ai/project/.claude/skills/picklist/SKILL.md +50 -0
- package/src/ai/project/.claude/skills/plan-dx-component/SKILL.md +51 -0
- package/src/ai/project/.claude/skills/plan-dx-component/references/design-system-mapping.md +108 -0
- package/src/ai/project/.claude/skills/plan-dx-component/references/intake.md +146 -0
- package/src/ai/project/.claude/skills/plan-dx-component/references/plan-template.md +76 -0
- package/src/ai/project/.claude/skills/plan-dx-component/references/requirements-template.md +88 -0
- package/src/ai/project/.claude/skills/presentation/SKILL.md +61 -0
- package/src/ai/project/.claude/skills/publish-library/SKILL.md +106 -0
- package/src/ai/project/.claude/skills/radiobuttons/SKILL.md +51 -0
- package/src/ai/project/.claude/skills/review-component/SKILL.md +49 -0
- package/src/ai/project/.claude/skills/review-component/references/checklist.md +77 -0
- package/src/ai/project/.claude/skills/template/SKILL.md +60 -0
- package/src/ai/project/.claude/skills/text/SKILL.md +45 -0
- package/src/ai/project/.claude/skills/update-dx-component/SKILL.md +56 -0
- package/src/ai/project/.claude/skills/update-dx-component/references/maintenance.md +43 -0
- package/src/ai/project/.claude/skills/url/SKILL.md +46 -0
- package/src/ai/project/.claude/skills/validate-component/SKILL.md +78 -0
- package/src/ai/project/.claude/skills/validate-component/references/runtime-troubleshooting.md +56 -0
- package/src/ai/project/.claude/skills/validate-component/scripts/check-component.mjs +327 -0
- package/src/ai/project/.claude/skills/widget/SKILL.md +59 -0
- package/src/ai/project/.gemini/settings.json +5 -0
- package/src/ai/project/AGENTS.md +74 -0
- package/src/ai/readme-section.md +91 -0
- package/src/cli.js +48 -7
- package/src/constants.js +54 -53
- package/src/internal-tests.js +27 -0
- package/src/tasks/ai-toggle/index.js +46 -0
- package/src/tasks/authenticate/helper.js +38 -38
- package/src/tasks/authenticate/index.js +17 -15
- package/src/tasks/build-all/helper.js +4 -4
- package/src/tasks/build-all/index.js +7 -7
- package/src/tasks/build-comp/helper.js +17 -17
- package/src/tasks/build-comp/index.js +10 -10
- package/src/tasks/build-jest-assets/index.js +7 -9
- package/src/tasks/build-lib/helper.js +8 -8
- package/src/tasks/build-lib/index.js +8 -8
- package/src/tasks/bundle/builder/index.js +9 -12
- package/src/tasks/bundle/builder/modules.js +8 -9
- package/src/tasks/bundle/builder/paths.js +2 -19
- package/src/tasks/bundle/builder/webpack.config.js +60 -77
- package/src/tasks/bundle/index.js +8 -8
- package/src/tasks/create/index.js +35 -35
- package/src/tasks/create/templates/Constellation/Field/Boolean/index.tsx.mustache +1 -36
- package/src/tasks/create/templates/Constellation/Field/Date/date.ts.mustache +2 -2
- package/src/tasks/create/templates/Constellation/Field/Date/index.tsx.mustache +2 -27
- package/src/tasks/create/templates/Constellation/Field/DateTime/date-utils.ts.mustache +2 -2
- package/src/tasks/create/templates/Constellation/Field/DateTime/date.ts.mustache +2 -2
- package/src/tasks/create/templates/Constellation/Field/DateTime/index.tsx.mustache +2 -35
- package/src/tasks/create/templates/Constellation/Field/Decimal/index.tsx.mustache +3 -36
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/index.tsx.mustache +4 -39
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/index.tsx.mustache +4 -53
- package/src/tasks/create/templates/Constellation/Field/Icon-Button-URL/index.tsx.mustache +5 -5
- package/src/tasks/create/templates/Constellation/Field/Integer/index.tsx.mustache +3 -36
- package/src/tasks/create/templates/Constellation/Field/Picklist/index.tsx.mustache +7 -42
- package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/component-constants.ts +1 -1
- package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/date.ts.mustache +0 -2
- package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/embed-utils.ts.mustache +1 -1
- package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/index.tsx.mustache +11 -11
- package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/repeat-utils.ts.mustache +3 -13
- package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/textformat-utils.tsx.mustache +2 -3
- package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/utils.ts.mustache +28 -28
- package/src/tasks/create/templates/Constellation/Field/Picklist-RadioButtons/index.tsx.mustache +2 -2
- package/src/tasks/create/templates/Constellation/Field/Picklist-RadioButtons/textformat-utils.tsx.mustache +2 -3
- package/src/tasks/create/templates/Constellation/Field/Text/index.tsx.mustache +4 -33
- package/src/tasks/create/templates/Constellation/Field/Text-Email/index.tsx.mustache +3 -33
- package/src/tasks/create/templates/Constellation/Field/Text-Input/index.tsx.mustache +3 -31
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/index.tsx.mustache +3 -31
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/index.tsx.mustache +3 -35
- package/src/tasks/create/templates/Constellation/Field/Text-URL/index.tsx.mustache +3 -33
- package/src/tasks/create/templates/Constellation/Field/Text-URL/text-url.tsx.mustache +2 -3
- package/src/tasks/create/templates/Constellation/Field/TimeofDay/index.tsx.mustache +2 -35
- package/src/tasks/create/templates/Constellation/Field/TimeofDay/time-of-day.ts.mustache +2 -2
- package/src/tasks/create/templates/Constellation/Template/DETAILS/Avatar.tsx.mustache +19 -15
- package/src/tasks/create/templates/Constellation/Template/DETAILS/Operator.tsx.mustache +6 -6
- package/src/tasks/create/templates/Constellation/Template/DETAILS/demo.stories.tsx.mustache +1 -1
- package/src/tasks/create/templates/Constellation/Template/DETAILS/index.tsx.mustache +4 -8
- package/src/tasks/create/templates/Constellation/Template/DETAILS/mock.ts.mustache +9 -9
- package/src/tasks/create/templates/Constellation/Template/DETAILS/utils.js.mustache +4 -8
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/Avatar.tsx.mustache +19 -15
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/Operator.tsx.mustache +6 -6
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/demo.stories.tsx.mustache +1 -1
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/index.tsx.mustache +1 -1
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/mock.ts.mustache +9 -9
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/utils.ts.mustache +4 -8
- package/src/tasks/create/templates/Constellation/Template/FORM/demo.stories.tsx.mustache +8 -8
- package/src/tasks/create/templates/Constellation/Template/FORM-region/demo.stories.tsx.mustache +8 -8
- package/src/tasks/create/templates/Constellation/Template/PAGE/utils.ts.mustache +4 -9
- package/src/tasks/create/templates/Constellation/Widget/CASE/demo.test.tsx.mustache +3 -3
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Avatar.tsx.mustache +19 -14
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Operator.tsx.mustache +6 -6
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/index.tsx.mustache +1 -1
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/mock.ts.mustache +1 -1
- package/src/tasks/create/templates/Launchpad/Field/Icon-Button-URL/index.tsx.mustache +5 -5
- package/src/tasks/create/templates/Launchpad/Field/Text-Phone/index.tsx.mustache +3 -35
- package/src/tasks/create/templates/Launchpad/Field/__components.md +1 -1
- package/src/tasks/create/templates/Launchpad/Template/FORM/demo.stories.tsx.mustache +8 -8
- package/src/tasks/create/templates/Launchpad/Template/FORM-region/demo.stories.tsx.mustache +8 -8
- package/src/tasks/create/templates/Launchpad/Widget/CASE/demo.test.tsx.mustache +3 -3
- package/src/tasks/create/templates/Launchpad/Widget/PAGE-CASE/index.tsx.mustache +1 -1
- package/src/tasks/create/templates/Launchpad/Widget/PAGE-CASE/mock.ts.mustache +1 -1
- package/src/tasks/create-all/index.js +42 -41
- package/src/tasks/create-lib/helper.js +13 -13
- package/src/tasks/create-lib/index.js +5 -5
- package/src/tasks/create-version/helper.js +10 -10
- package/src/tasks/create-version/index.js +3 -4
- package/src/tasks/delete/helper.js +20 -19
- package/src/tasks/delete/index.js +2 -2
- package/src/tasks/delete-all/helper.js +26 -25
- package/src/tasks/delete-all/index.js +2 -2
- package/src/tasks/delete-lib/helper.js +6 -6
- package/src/tasks/delete-lib/index.js +6 -6
- package/src/tasks/delete-pub/helper.js +18 -18
- package/src/tasks/delete-pub/index.js +8 -8
- package/src/tasks/delete-version/index.js +2 -2
- package/src/tasks/dev-server/index.js +1 -1
- package/src/tasks/export-archive/helper.js +21 -21
- package/src/tasks/export-archive/index.js +27 -40
- package/src/tasks/export-rc/helper.js +34 -34
- package/src/tasks/export-rc/index.js +21 -31
- package/src/tasks/import-archive/helper.js +39 -39
- package/src/tasks/import-archive/index.js +69 -89
- package/src/tasks/import-comp/helper.js +8 -8
- package/src/tasks/import-comp/index.js +30 -42
- package/src/tasks/index.js +5 -0
- package/src/tasks/init/Node.gitignore +149 -0
- package/src/tasks/init/helper.js +15 -8
- package/src/tasks/init/index.js +115 -35
- package/src/tasks/init/template/.prettierrc.json +4 -1
- package/src/tasks/init/template/.storybook/main.ts +1 -4
- package/src/tasks/init/template/.storybook/manager.ts +1 -1
- package/src/tasks/init/template/.storybook/preview.tsx +2 -2
- package/src/tasks/init/template/.storybook/theme.js +1 -1
- package/src/tasks/init/template/.vscode/extensions.json +0 -1
- package/src/tasks/init/template/README.md +2 -2
- package/src/tasks/init/template/eslint.config.mjs +13 -155
- package/src/tasks/init/template/jest.config.cjs +2 -0
- package/src/tasks/init/template/package-lock.json +26864 -0
- package/src/tasks/init/template/package.json.mustache +19 -74
- package/src/tasks/init/template/setupTests.ts +10 -4
- package/src/tasks/init/template/tsconfig.json +14 -6
- package/src/tasks/internal-test/index.js +21 -0
- package/src/tasks/internal-test-full/index.js +15 -0
- package/src/tasks/internal-test-functional/index.js +15 -0
- package/src/tasks/internal-test-unit/index.js +13 -0
- package/src/tasks/linter/index.js +2 -2
- package/src/tasks/list/helper.js +41 -40
- package/src/tasks/list/index.js +3 -3
- package/src/tasks/list-lib/helper.js +5 -5
- package/src/tasks/list-lib/index.js +8 -8
- package/src/tasks/list-pub/helper.js +23 -16
- package/src/tasks/list-pub/index.js +24 -21
- package/src/tasks/move/helper.js +8 -8
- package/src/tasks/move/index.js +19 -23
- package/src/tasks/promote-webpack/index.js +4 -4
- package/src/tasks/promote-webpack/webpack.config.js +62 -93
- package/src/tasks/publish/helper.js +21 -21
- package/src/tasks/publish/index.js +16 -16
- package/src/tasks/publish-all/helper.js +20 -20
- package/src/tasks/publish-all/index.js +11 -12
- package/src/tasks/publish-archive/helper.js +9 -9
- package/src/tasks/publish-archive/index.js +12 -14
- package/src/tasks/publish-lib/helper.js +3 -3
- package/src/tasks/publish-lib/index.js +28 -34
- package/src/tasks/quarantine/index.js +8 -8
- package/src/tasks/rename/index.js +26 -30
- package/src/tasks/rename-lib/index.js +21 -25
- package/src/tasks/restore/index.js +8 -8
- package/src/tasks/restore-config/index.js +3 -5
- package/src/tasks/set-perm/index.js +8 -8
- package/src/tasks/show-help/index.js +17 -9
- package/src/tasks/show-status/index.js +2 -2
- package/src/tasks/store/index.js +8 -8
- package/src/tasks/switch-lib/helper.js +7 -7
- package/src/tasks/switch-lib/index.js +7 -7
- package/src/tasks/switch-version/helper.js +6 -6
- package/src/tasks/switch-version/index.js +7 -7
- package/src/tasks/update/index.js +1 -1
- package/src/tasks/upgrade/index.js +7 -7
- package/src/tasks/validator/index.js +49 -203
- package/src/util.js +169 -186
- package/src/rules/no-pcore-pconnect-in-presentation.js +0 -103
- package/src/tasks/init/template/.stylelintrc.json +0 -4
- package/src/tasks/init/template/babel.config.cjs +0 -22
- package/src/tasks/init/template/cspell.json +0 -14
package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/index.tsx.mustache
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
/* eslint-disable sonarjs/cognitive-complexity */
|
|
2
1
|
import { useEffect, useRef, useState, useMemo, type MutableRefObject, type SetStateAction } from 'react';
|
|
3
2
|
import { ComboBox, menuHelpers, debounce, throttle, Button, Icon, withConfiguration, type MenuGroupProps, type MenuItemProps } from '@pega/cosmos-react-core';
|
|
4
|
-
import get from 'lodash.
|
|
3
|
+
import get from 'lodash/get.js';
|
|
5
4
|
import type { PConnFieldProps } from './PConnProps';
|
|
6
5
|
import './create-nonce';
|
|
7
6
|
|
|
@@ -409,7 +408,7 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
409
408
|
const { formatter } = props;
|
|
410
409
|
let { listType, datasource = [], parameters = {}, columns = [] } = props;
|
|
411
410
|
|
|
412
|
-
// enable
|
|
411
|
+
// enable searching based on the key
|
|
413
412
|
const { isSearchableOnKey } = props;
|
|
414
413
|
|
|
415
414
|
const [items, setItems] = useState(() => []);
|
|
@@ -520,12 +519,13 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
520
519
|
}, [parameters]);
|
|
521
520
|
|
|
522
521
|
const updatedColumns = useMemo(() => {
|
|
523
|
-
|
|
522
|
+
let cols = columns;
|
|
523
|
+
const isSecondaryColumnAvailable = cols.some(col => col.secondary === 'true');
|
|
524
524
|
if (referenceType === 'Case' && !isSecondaryColumnAvailable) {
|
|
525
|
-
const valueProp =
|
|
526
|
-
const existingColObj =
|
|
525
|
+
const valueProp = cols.filter(col => col.key === 'true')[0].value;
|
|
526
|
+
const existingColObj = cols.filter(col => col.value === valueProp);
|
|
527
527
|
if (existingColObj) {
|
|
528
|
-
|
|
528
|
+
cols.forEach(col => {
|
|
529
529
|
if (col.value === valueProp) {
|
|
530
530
|
col.display = 'true';
|
|
531
531
|
col.secondary = 'true';
|
|
@@ -533,8 +533,8 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
533
533
|
}
|
|
534
534
|
});
|
|
535
535
|
} else {
|
|
536
|
-
|
|
537
|
-
...
|
|
536
|
+
cols = [
|
|
537
|
+
...cols,
|
|
538
538
|
{
|
|
539
539
|
value: valueProp.startsWith('.') ? valueProp.substring(1) : valueProp,
|
|
540
540
|
display: 'true',
|
|
@@ -559,9 +559,9 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
559
559
|
}
|
|
560
560
|
return item;
|
|
561
561
|
});
|
|
562
|
-
|
|
562
|
+
cols = descriptorColumns ? [...cols, ...descriptorColumns] : cols;
|
|
563
563
|
}
|
|
564
|
-
return
|
|
564
|
+
return cols;
|
|
565
565
|
}, [listType]);
|
|
566
566
|
|
|
567
567
|
const dataConfig = useDeepMemo(() => {
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/* eslint-disable sonarjs/no-collapsible-if */
|
|
2
|
-
/* eslint-disable sonarjs/cognitive-complexity */
|
|
3
|
-
/* eslint-disable func-names */
|
|
4
1
|
// @ts-nocheck
|
|
5
2
|
import { splitConditionTree } from '@pega/cosmos-react-condition-builder';
|
|
6
3
|
import cloneDeep from 'lodash/cloneDeep.js';
|
|
@@ -55,7 +52,6 @@ export function launchLocalAction(getPConnect, rowContext, action, cb) {
|
|
|
55
52
|
// "ASSIGN-WORKLIST ON8TTL-C11NGALL-WORK LAT-3!ENTERINFO_FLOW_1" use case
|
|
56
53
|
const [assignKey] = assignmentID.split('!');
|
|
57
54
|
const [, className, workId] = assignKey.split(' ');
|
|
58
|
-
// eslint-disable-next-line prefer-template
|
|
59
55
|
caseID = className + ' ' + workId;
|
|
60
56
|
}
|
|
61
57
|
openLocalAction(action.ID, {
|
|
@@ -254,7 +250,7 @@ export const isSelfReferencedProperty = (param, referenceProp) => {
|
|
|
254
250
|
/*
|
|
255
251
|
convert configured descriptors/parameters fieldNames
|
|
256
252
|
for leaf level property - @P .Employee.Name -> Name
|
|
257
|
-
for embedded
|
|
253
|
+
for embedded property - @P .Employee.Address.City -> !P!Address:City
|
|
258
254
|
*/
|
|
259
255
|
export function getDescriptorsFieldName(property, pageClass) {
|
|
260
256
|
if (property.startsWith('@')) {
|
|
@@ -268,7 +264,6 @@ export function getDescriptorsFieldName(property, pageClass) {
|
|
|
268
264
|
return property;
|
|
269
265
|
}
|
|
270
266
|
|
|
271
|
-
// eslint-disable-next-line, sonarjs/cognitive-complexity
|
|
272
267
|
export function preparePatchQueryFields(fields, isDataObject = false, classID = '', getPConnect) {
|
|
273
268
|
const queryFields = [];
|
|
274
269
|
// Descriptors can be configured only for single selectionMode properties
|
|
@@ -363,12 +358,7 @@ export function prepareFilters(keys = [], data = {}, logicOperator = '') {
|
|
|
363
358
|
const filterConditions = {};
|
|
364
359
|
keys.forEach((key, index) => {
|
|
365
360
|
const value = data[key];
|
|
366
|
-
|
|
367
|
-
if (value) {
|
|
368
|
-
filterExpression = getFilterExpression(key, value, 'EQ');
|
|
369
|
-
} else {
|
|
370
|
-
filterExpression = getFilterExpression(key);
|
|
371
|
-
}
|
|
361
|
+
const filterExpression = value ? getFilterExpression(key, value, 'EQ') : getFilterExpression(key);
|
|
372
362
|
filterConditions[`T${index + 1}`] = filterExpression;
|
|
373
363
|
|
|
374
364
|
if (index + 1 !== keys.length) {
|
|
@@ -646,7 +636,7 @@ export function getLeafValue(data, fieldName, fieldSeparator) {
|
|
|
646
636
|
return getLeafValue(data[first], rest.join(fieldSeparator));
|
|
647
637
|
}
|
|
648
638
|
|
|
649
|
-
// Builds a uniquely
|
|
639
|
+
// Builds a uniquely identifiable aggregation/calculation ID for sending to the server.
|
|
650
640
|
export const buildAggOrCalcId = (columnId, functionName) => {
|
|
651
641
|
// Server does not support agg/calc ID's containing special chars, but Association ID's can contain - and _
|
|
652
642
|
// AND the data_views API uses : to separate the assoc ID and the field ID
|
|
@@ -48,7 +48,6 @@ const TableImage = imageProps => {
|
|
|
48
48
|
propUrlLabel
|
|
49
49
|
} = imageProps;
|
|
50
50
|
const demoButtonRef = useRef(null);
|
|
51
|
-
let imageDisplayComp = null;
|
|
52
51
|
const [images, setImages] = useState(null);
|
|
53
52
|
const imgDescription = {
|
|
54
53
|
id: 'url',
|
|
@@ -75,7 +74,7 @@ const TableImage = imageProps => {
|
|
|
75
74
|
};
|
|
76
75
|
let btnVal = value;
|
|
77
76
|
btnVal = urlLabelVal(urlLabelSelection, btnVal, urlLabel, propUrlLabel);
|
|
78
|
-
imageDisplayComp = (
|
|
77
|
+
const imageDisplayComp = (
|
|
79
78
|
<>
|
|
80
79
|
{btnVal !== null && (
|
|
81
80
|
<Button ref={demoButtonRef} variant='link' compact={false} onClick={onClick} autoFocus>
|
|
@@ -140,7 +139,7 @@ export const urlFormatter = (value, options) => {
|
|
|
140
139
|
customWidth
|
|
141
140
|
} = options;
|
|
142
141
|
|
|
143
|
-
let urlFormatComp
|
|
142
|
+
let urlFormatComp;
|
|
144
143
|
if (
|
|
145
144
|
(displayAs === 'labelText' || (isTableFormatter && tableDisplayAs === 'link')) &&
|
|
146
145
|
(urlLabel !== '' || propUrlLabel !== '')
|
package/src/tasks/create/templates/Constellation/Field/Picklist-Autocomplete/utils.ts.mustache
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { useEffect, useRef } from 'react';
|
|
2
|
-
import
|
|
3
|
-
import get from 'lodash.
|
|
2
|
+
import isEqual from 'lodash/isEqual.js';
|
|
3
|
+
import get from 'lodash/get.js';
|
|
4
4
|
|
|
5
5
|
import { getFieldNameFromEmbeddedFieldName } from './embed-utils';
|
|
6
6
|
|
|
7
7
|
import { buildColumnForDisplayValue, setValuesToPropertyList } from './index';
|
|
8
8
|
|
|
9
9
|
export function usePaginate() {
|
|
10
|
-
const
|
|
10
|
+
const paginationProperties = useRef({
|
|
11
11
|
startIndex: 0,
|
|
12
12
|
endIndex: 50,
|
|
13
13
|
matchPosition: '',
|
|
@@ -18,21 +18,21 @@ export function usePaginate() {
|
|
|
18
18
|
// clean up on unmount
|
|
19
19
|
return () => {
|
|
20
20
|
// @ts-ignore
|
|
21
|
-
|
|
21
|
+
paginationProperties.current = null;
|
|
22
22
|
};
|
|
23
23
|
}, []);
|
|
24
24
|
|
|
25
25
|
const getInitialPaginatedRecords = (totalRecords: any, matchPosition: string) => {
|
|
26
26
|
const initialPaginatedRecords = totalRecords.slice(0, 50);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
paginationProperties.current.startIndex = 0;
|
|
28
|
+
paginationProperties.current.endIndex = 50;
|
|
29
|
+
paginationProperties.current.matchPosition = matchPosition;
|
|
30
|
+
paginationProperties.current.totalRecords = totalRecords;
|
|
31
31
|
return initialPaginatedRecords;
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
const positionMatches = (text: string, searchText: string) => {
|
|
35
|
-
switch (
|
|
35
|
+
switch (paginationProperties.current.matchPosition) {
|
|
36
36
|
case 'start':
|
|
37
37
|
return text.toLowerCase().startsWith(searchText.toLowerCase());
|
|
38
38
|
case 'contains':
|
|
@@ -44,27 +44,27 @@ export function usePaginate() {
|
|
|
44
44
|
|
|
45
45
|
const fetchData = (searchText: string, onScroll: boolean, columns = []) => {
|
|
46
46
|
let progressivePaginatedRecords;
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
paginationProperties.current.startIndex += 50;
|
|
48
|
+
paginationProperties.current.endIndex += 50;
|
|
49
49
|
|
|
50
50
|
if (searchText === '' || searchText === undefined || searchText === null) {
|
|
51
51
|
// paginate on entire resultset
|
|
52
|
-
progressivePaginatedRecords =
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
progressivePaginatedRecords = paginationProperties.current.totalRecords.slice(
|
|
53
|
+
paginationProperties.current.startIndex,
|
|
54
|
+
paginationProperties.current.endIndex
|
|
55
55
|
);
|
|
56
56
|
} else if (onScroll) {
|
|
57
57
|
// paginate on filtered resultset
|
|
58
58
|
// @ts-ignore
|
|
59
|
-
progressivePaginatedRecords =
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
progressivePaginatedRecords = paginationProperties.current.filteredRecords.slice(
|
|
60
|
+
paginationProperties.current.startIndex,
|
|
61
|
+
paginationProperties.current.endIndex
|
|
62
62
|
);
|
|
63
63
|
} else {
|
|
64
64
|
// @ts-ignore
|
|
65
65
|
const searchInSecondaryItem = columns.some(e => e.secondary && e.useForSearch);
|
|
66
66
|
// Filter the items and paginate on filtered resultset
|
|
67
|
-
const filteredRecords =
|
|
67
|
+
const filteredRecords = paginationProperties.current.totalRecords.filter(
|
|
68
68
|
filteritem =>
|
|
69
69
|
// @ts-ignore
|
|
70
70
|
(filteritem.primary && positionMatches(filteritem.primary, searchText)) ||
|
|
@@ -77,32 +77,32 @@ export function usePaginate() {
|
|
|
77
77
|
filteritem.secondary.find(item => positionMatches(item, searchText)))
|
|
78
78
|
);
|
|
79
79
|
progressivePaginatedRecords = filteredRecords.slice(
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
paginationProperties.current.startIndex,
|
|
81
|
+
paginationProperties.current.endIndex
|
|
82
82
|
);
|
|
83
83
|
// @ts-ignore
|
|
84
|
-
|
|
84
|
+
paginationProperties.current.filteredRecords = filteredRecords;
|
|
85
85
|
}
|
|
86
86
|
return progressivePaginatedRecords;
|
|
87
87
|
};
|
|
88
88
|
|
|
89
89
|
const resetIndexes = () => {
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
paginationProperties.current.startIndex = -50;
|
|
91
|
+
paginationProperties.current.endIndex = 0;
|
|
92
92
|
};
|
|
93
93
|
|
|
94
94
|
const hasMoreResults = (searchText: string) => {
|
|
95
95
|
if (searchText === '' || searchText === undefined || searchText === null) {
|
|
96
96
|
return (
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
paginationProperties.current.startIndex + 50 <
|
|
98
|
+
paginationProperties.current.totalRecords.length
|
|
99
99
|
);
|
|
100
100
|
}
|
|
101
101
|
return (
|
|
102
102
|
// @ts-ignore
|
|
103
|
-
|
|
103
|
+
paginationProperties.current.startIndex + 50 <
|
|
104
104
|
// @ts-ignore
|
|
105
|
-
|
|
105
|
+
paginationProperties.current.filteredRecords.length
|
|
106
106
|
);
|
|
107
107
|
};
|
|
108
108
|
|
|
@@ -117,7 +117,7 @@ export function usePaginate() {
|
|
|
117
117
|
export function useDeepMemo(memoFn: any, key: any) {
|
|
118
118
|
const ref = useRef();
|
|
119
119
|
// @ts-ignore
|
|
120
|
-
if (!ref.current || !
|
|
120
|
+
if (!ref.current || !isEqual(key, ref.current.key)) {
|
|
121
121
|
// @ts-ignore
|
|
122
122
|
ref.current = { key, value: memoFn() };
|
|
123
123
|
}
|
package/src/tasks/create/templates/Constellation/Field/Picklist-RadioButtons/index.tsx.mustache
CHANGED
|
@@ -117,11 +117,11 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
117
117
|
if (placeholder) {
|
|
118
118
|
items.push(
|
|
119
119
|
<RadioButton
|
|
120
|
+
key={`${fullReference}.EMPTY`}
|
|
120
121
|
{...autoFocusProp}
|
|
121
122
|
defaultChecked={value === ''}
|
|
122
123
|
id={`${fullReference}.EMPTY`}
|
|
123
124
|
value=''
|
|
124
|
-
key={`${fullReference}.EMPTY`}
|
|
125
125
|
label={placeholder}
|
|
126
126
|
name={fullReference}
|
|
127
127
|
/>
|
|
@@ -135,11 +135,11 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
135
135
|
}
|
|
136
136
|
items.push(
|
|
137
137
|
<RadioButton
|
|
138
|
+
key={`${fullReference}.${item.key}`}
|
|
138
139
|
{...autoFocusProp}
|
|
139
140
|
checked={`${value}` === `${item.key}`}
|
|
140
141
|
id={`${fullReference}.${item.key}`}
|
|
141
142
|
value={item.key}
|
|
142
|
-
key={`${fullReference}.${item.key}`}
|
|
143
143
|
label={isDatapageLocale
|
|
144
144
|
? pConn
|
|
145
145
|
.getLocalizationService()
|
|
@@ -33,7 +33,6 @@ const isImage = (url) => /\.(jpg|jpeg|png|webp|avif|gif|svg)$/.test(url);
|
|
|
33
33
|
const TableImage = (imageProps) => {
|
|
34
34
|
const { value, altText, altTextOfImage, propaltTextOfImage, urlLabelSelection, urlLabel, propUrlLabel } = imageProps;
|
|
35
35
|
const demoButtonRef = useRef(null);
|
|
36
|
-
let imageDisplayComp = null;
|
|
37
36
|
const [images, setImages] = useState(null);
|
|
38
37
|
const imgDescription = {
|
|
39
38
|
id: 'url',
|
|
@@ -60,7 +59,7 @@ const TableImage = (imageProps) => {
|
|
|
60
59
|
};
|
|
61
60
|
let btnVal = value;
|
|
62
61
|
btnVal = urlLabelVal(urlLabelSelection, btnVal, urlLabel, propUrlLabel);
|
|
63
|
-
imageDisplayComp = (
|
|
62
|
+
const imageDisplayComp = (
|
|
64
63
|
<>
|
|
65
64
|
{btnVal !== null && (
|
|
66
65
|
<Button ref={demoButtonRef} variant='link' compact={false} onClick={onClick} autoFocus>
|
|
@@ -125,7 +124,7 @@ export const urlFormatter = (value, options) => {
|
|
|
125
124
|
customWidth
|
|
126
125
|
} = options;
|
|
127
126
|
|
|
128
|
-
let urlFormatComp
|
|
127
|
+
let urlFormatComp;
|
|
129
128
|
if (
|
|
130
129
|
(displayAs === 'labelText' || (isTableFormatter && tableDisplayAs === 'link')) &&
|
|
131
130
|
(urlLabel !== '' || propUrlLabel !== '')
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Input,
|
|
3
|
-
|
|
4
|
-
Text,
|
|
5
|
-
EmailDisplay,
|
|
3
|
+
EmailDisplay,
|
|
6
4
|
PhoneDisplay,
|
|
7
5
|
URLDisplay,
|
|
8
6
|
withConfiguration
|
|
@@ -73,7 +71,7 @@ export const textFormatter = (formatter: string, value: string) => {
|
|
|
73
71
|
// props passed in combination of props from property panel (config.json) and run time props from Constellation
|
|
74
72
|
// any default values in config.pros should be set in defaultProps at bottom of this file
|
|
75
73
|
function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
76
|
-
const { getPConnect, value, placeholder, disabled = false, displayMode, readOnly = false, required = false, label, hideLabel = false, testId, isTableFormatter = false
|
|
74
|
+
const { getPConnect, value, placeholder, disabled = false, displayMode, readOnly = false, required = false, label, hideLabel = false, testId, isTableFormatter = false } = props;
|
|
77
75
|
|
|
78
76
|
const pConn = getPConnect();
|
|
79
77
|
const actions = pConn.getActionsApi();
|
|
@@ -86,43 +84,16 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
86
84
|
actions.updateFieldValue(propName, updatedValue);
|
|
87
85
|
};
|
|
88
86
|
|
|
89
|
-
if (displayMode === '
|
|
87
|
+
if (displayMode === 'DISPLAY_ONLY') {
|
|
90
88
|
let displayComp = value || <span aria-hidden='true'>––</span>;
|
|
91
89
|
if (isTableFormatter && formatExists(formatter)) {
|
|
92
90
|
displayComp = textFormatter(formatter, value);
|
|
93
91
|
}
|
|
94
|
-
return
|
|
92
|
+
return (
|
|
95
93
|
<Styled{{COMPONENT_CLASS_NAME}}Wrapper> {displayComp} </Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
96
|
-
) : (
|
|
97
|
-
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
98
|
-
<FieldValueList
|
|
99
|
-
variant={hideLabel ? 'stacked' : variant}
|
|
100
|
-
data-testid={testId}
|
|
101
|
-
fields={[{ id: '1', name: hideLabel ? '' : label, value: displayComp }]}
|
|
102
|
-
/>
|
|
103
|
-
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
104
94
|
);
|
|
105
95
|
}
|
|
106
96
|
|
|
107
|
-
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
108
|
-
const isValDefined = typeof value !== 'undefined' && value !== '';
|
|
109
|
-
const val = isValDefined ? (
|
|
110
|
-
<Text variant='h1' as='span'>
|
|
111
|
-
{value}
|
|
112
|
-
</Text>
|
|
113
|
-
) : (
|
|
114
|
-
''
|
|
115
|
-
);
|
|
116
|
-
return (
|
|
117
|
-
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
118
|
-
<FieldValueList
|
|
119
|
-
variant='stacked'
|
|
120
|
-
data-testid={testId}
|
|
121
|
-
fields={[{ id: '2', name: hideLabel ? '' : label, value: val }]}
|
|
122
|
-
/>
|
|
123
|
-
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
124
|
-
);
|
|
125
|
-
}
|
|
126
97
|
|
|
127
98
|
return (
|
|
128
99
|
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useState, useEffect, useRef } from 'react';
|
|
2
|
-
import { Input, EmailDisplay,
|
|
2
|
+
import { Input, EmailDisplay, URLDisplay, PhoneDisplay, withConfiguration } from '@pega/cosmos-react-core';
|
|
3
3
|
import type { PConnFieldProps } from './PConnProps';
|
|
4
4
|
import './create-nonce';
|
|
5
5
|
|
|
@@ -85,7 +85,6 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
85
85
|
testId,
|
|
86
86
|
displayMode,
|
|
87
87
|
additionalProps = {},
|
|
88
|
-
variant = 'inline',
|
|
89
88
|
isTableFormatter = false,
|
|
90
89
|
hasSuggestions = false
|
|
91
90
|
} = props;
|
|
@@ -123,46 +122,17 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
123
122
|
displayComp = <EmailDisplay value={value} displayText={inputValue} variant='link' />;
|
|
124
123
|
}
|
|
125
124
|
|
|
126
|
-
if (displayMode === '
|
|
125
|
+
if (displayMode === 'DISPLAY_ONLY') {
|
|
127
126
|
if (isTableFormatter && formatExists(formatter)) {
|
|
128
127
|
displayComp = textFormatter(formatter, value);
|
|
129
128
|
}
|
|
130
|
-
return
|
|
129
|
+
return (
|
|
131
130
|
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
132
131
|
{displayComp}
|
|
133
132
|
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
134
|
-
) : (
|
|
135
|
-
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
136
|
-
<FieldValueList
|
|
137
|
-
variant={hideLabel ? 'stacked' : variant}
|
|
138
|
-
data-testid={testId}
|
|
139
|
-
fields={[{ id: '1', name: hideLabel ? '' : label, value: displayComp }]}
|
|
140
|
-
/>
|
|
141
|
-
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
142
133
|
);
|
|
143
134
|
}
|
|
144
135
|
|
|
145
|
-
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
146
|
-
return (
|
|
147
|
-
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
148
|
-
<FieldValueList
|
|
149
|
-
variant='stacked'
|
|
150
|
-
data-testid={testId}
|
|
151
|
-
fields={[
|
|
152
|
-
{
|
|
153
|
-
id: '2',
|
|
154
|
-
name: hideLabel ? '' : label,
|
|
155
|
-
value: (
|
|
156
|
-
<Text variant='h1' as='span'>
|
|
157
|
-
{displayComp}
|
|
158
|
-
</Text>
|
|
159
|
-
)
|
|
160
|
-
}
|
|
161
|
-
]}
|
|
162
|
-
/>
|
|
163
|
-
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
136
|
|
|
167
137
|
const onResolveSuggestionHandler = (accepted: boolean) => {
|
|
168
138
|
suggestionsHandler(accepted, pConn, setStatus);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useEffect, useState, useRef } from 'react';
|
|
2
|
-
import { Input, FieldValueList,
|
|
2
|
+
import { Input, FieldValueList, EmailDisplay, PhoneDisplay, URLDisplay, withConfiguration } from '@pega/cosmos-react-core';
|
|
3
3
|
import type { PConnFieldProps } from './PConnProps';
|
|
4
4
|
import './create-nonce';
|
|
5
5
|
|
|
@@ -87,7 +87,6 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
87
87
|
additionalProps = {},
|
|
88
88
|
displayMode,
|
|
89
89
|
displayAsStatus,
|
|
90
|
-
variant = 'inline',
|
|
91
90
|
hasSuggestions = false,
|
|
92
91
|
isTableFormatter = false
|
|
93
92
|
} = props;
|
|
@@ -138,43 +137,16 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
138
137
|
}
|
|
139
138
|
}
|
|
140
139
|
|
|
141
|
-
if (displayMode === '
|
|
140
|
+
if (displayMode === 'DISPLAY_ONLY') {
|
|
142
141
|
let displayComp = value || <span aria-hidden='true'>––</span>;
|
|
143
142
|
if (isTableFormatter && formatExists(formatter)) {
|
|
144
143
|
displayComp = textFormatter(formatter, value);
|
|
145
144
|
}
|
|
146
|
-
return
|
|
145
|
+
return (
|
|
147
146
|
<Styled{{COMPONENT_CLASS_NAME}}Wrapper> {displayComp} </Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
148
|
-
) : (
|
|
149
|
-
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
150
|
-
<FieldValueList
|
|
151
|
-
variant={hideLabel ? 'stacked' : variant}
|
|
152
|
-
data-testid={testId}
|
|
153
|
-
fields={[{ id: '1', name: hideLabel ? '' : label, value: displayComp }]}
|
|
154
|
-
/>
|
|
155
|
-
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
156
147
|
);
|
|
157
148
|
}
|
|
158
149
|
|
|
159
|
-
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
160
|
-
const isValDefined = typeof value !== 'undefined' && value !== '';
|
|
161
|
-
const val = isValDefined ? (
|
|
162
|
-
<Text variant='h1' as='span'>
|
|
163
|
-
{value}
|
|
164
|
-
</Text>
|
|
165
|
-
) : (
|
|
166
|
-
''
|
|
167
|
-
);
|
|
168
|
-
return (
|
|
169
|
-
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
170
|
-
<FieldValueList
|
|
171
|
-
variant='stacked'
|
|
172
|
-
data-testid={testId}
|
|
173
|
-
fields={[{ id: '2', name: hideLabel ? '' : label, value: val }]}
|
|
174
|
-
/>
|
|
175
|
-
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
176
|
-
);
|
|
177
|
-
}
|
|
178
150
|
|
|
179
151
|
const handleChange = (event: any) => {
|
|
180
152
|
if (hasSuggestions) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useState, useEffect, useRef } from 'react';
|
|
2
|
-
import { TextArea as CosmosTextArea,
|
|
2
|
+
import { TextArea as CosmosTextArea, ParagraphDisplay, EmailDisplay, PhoneDisplay, URLDisplay, withConfiguration } from '@pega/cosmos-react-core';
|
|
3
3
|
|
|
4
4
|
import type { PConnFieldProps } from './PConnProps';
|
|
5
5
|
import './create-nonce';
|
|
@@ -87,7 +87,6 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
87
87
|
fieldMetadata = {},
|
|
88
88
|
displayMode,
|
|
89
89
|
additionalProps = {},
|
|
90
|
-
variant = 'inline',
|
|
91
90
|
isTableFormatter = false,
|
|
92
91
|
hasSuggestions = false
|
|
93
92
|
} = props;
|
|
@@ -120,45 +119,18 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
120
119
|
}
|
|
121
120
|
}, [validatemessage, hasSuggestions, status]);
|
|
122
121
|
|
|
123
|
-
if (displayMode === '
|
|
122
|
+
if (displayMode === 'DISPLAY_ONLY') {
|
|
124
123
|
let displayComp = <ParagraphDisplay value={value || undefined} />;
|
|
125
124
|
if (isTableFormatter && formatExists(formatter) && formatter !== 'TextInput') {
|
|
126
125
|
displayComp = textFormatter(formatter, value);
|
|
127
126
|
}
|
|
128
|
-
return
|
|
127
|
+
return (
|
|
129
128
|
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
130
129
|
{displayComp}
|
|
131
130
|
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
132
|
-
) : (
|
|
133
|
-
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
134
|
-
<FieldValueList
|
|
135
|
-
variant={hideLabel ? 'stacked' : variant}
|
|
136
|
-
data-testid={testId}
|
|
137
|
-
fields={[{ id: '1', name: hideLabel ? '' : label, value: displayComp }]}
|
|
138
|
-
/>
|
|
139
|
-
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
140
131
|
);
|
|
141
132
|
}
|
|
142
133
|
|
|
143
|
-
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
144
|
-
const isValDefined = typeof value !== 'undefined' && value !== '';
|
|
145
|
-
const val = isValDefined ? (
|
|
146
|
-
<Text variant='h1' as='span'>
|
|
147
|
-
{value}
|
|
148
|
-
</Text>
|
|
149
|
-
) : (
|
|
150
|
-
''
|
|
151
|
-
);
|
|
152
|
-
return (
|
|
153
|
-
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
154
|
-
<FieldValueList
|
|
155
|
-
variant='stacked'
|
|
156
|
-
data-testid={testId}
|
|
157
|
-
fields={[{ id: '2', name: hideLabel ? '' : label, value: val }]}
|
|
158
|
-
/>
|
|
159
|
-
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
160
|
-
);
|
|
161
|
-
}
|
|
162
134
|
|
|
163
135
|
const onResolveSuggestionHandler = (accepted: boolean) => {
|
|
164
136
|
suggestionsHandler(accepted, pConn, setStatus);
|
|
@@ -3,9 +3,7 @@ import {
|
|
|
3
3
|
PhoneInput as CosmosPhone,
|
|
4
4
|
getPhoneNumberParts,
|
|
5
5
|
PhoneDisplay,
|
|
6
|
-
|
|
7
|
-
Text,
|
|
8
|
-
EmailDisplay,
|
|
6
|
+
EmailDisplay,
|
|
9
7
|
URLDisplay,
|
|
10
8
|
withConfiguration
|
|
11
9
|
} from '@pega/cosmos-react-core';
|
|
@@ -98,7 +96,6 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
98
96
|
testId,
|
|
99
97
|
displayMode,
|
|
100
98
|
additionalProps = {},
|
|
101
|
-
variant = 'inline',
|
|
102
99
|
isTableFormatter = false,
|
|
103
100
|
hasSuggestions = false
|
|
104
101
|
} = props;
|
|
@@ -157,46 +154,17 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
157
154
|
displayComp = <PhoneDisplay value={value} variant='link' />;
|
|
158
155
|
}
|
|
159
156
|
|
|
160
|
-
if (displayMode === '
|
|
157
|
+
if (displayMode === 'DISPLAY_ONLY') {
|
|
161
158
|
if (isTableFormatter && formatExists(formatter)) {
|
|
162
159
|
displayComp = textFormatter(formatter, value);
|
|
163
160
|
}
|
|
164
|
-
return
|
|
161
|
+
return (
|
|
165
162
|
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
166
163
|
{displayComp}
|
|
167
164
|
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
168
|
-
) : (
|
|
169
|
-
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
170
|
-
<FieldValueList
|
|
171
|
-
variant={hideLabel ? 'stacked' : variant}
|
|
172
|
-
data-testid={testId}
|
|
173
|
-
fields={[{ id: '1', name: hideLabel ? '' : label, value: displayComp }]}
|
|
174
|
-
/>
|
|
175
|
-
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
176
165
|
);
|
|
177
166
|
}
|
|
178
167
|
|
|
179
|
-
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
180
|
-
return (
|
|
181
|
-
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
182
|
-
<FieldValueList
|
|
183
|
-
variant='stacked'
|
|
184
|
-
data-testid={testId}
|
|
185
|
-
fields={[
|
|
186
|
-
{
|
|
187
|
-
id: '2',
|
|
188
|
-
name: hideLabel ? '' : label,
|
|
189
|
-
value: (
|
|
190
|
-
<Text variant='h1' as='span'>
|
|
191
|
-
{displayComp}
|
|
192
|
-
</Text>
|
|
193
|
-
)
|
|
194
|
-
}
|
|
195
|
-
]}
|
|
196
|
-
/>
|
|
197
|
-
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
198
|
-
);
|
|
199
|
-
}
|
|
200
168
|
|
|
201
169
|
const onResolveSuggestionHandler = (accepted: boolean) => {
|
|
202
170
|
suggestionsHandler(accepted, pConn, setStatus);
|