@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
|
@@ -28,7 +28,7 @@ const renderField = resolvedProps => {
|
|
|
28
28
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
29
29
|
const [phoneValue, setPhoneValue] = useState('+16397975093');
|
|
30
30
|
|
|
31
|
-
const variant = displayMode === '
|
|
31
|
+
const variant = displayMode === 'DISPLAY_ONLY' ? 'inline' : 'stacked';
|
|
32
32
|
|
|
33
33
|
let val =
|
|
34
34
|
value !== '' ? (
|
|
@@ -153,7 +153,7 @@ const renderField = resolvedProps => {
|
|
|
153
153
|
return {
|
|
154
154
|
value: '',
|
|
155
155
|
label: label,
|
|
156
|
-
displayMode: '
|
|
156
|
+
displayMode: 'DISPLAY_ONLY'
|
|
157
157
|
};
|
|
158
158
|
},
|
|
159
159
|
getComponent: () => {
|
|
@@ -197,37 +197,37 @@ export const Base{{COMPONENT_CLASS_NAME}}: Story = args => {
|
|
|
197
197
|
case '@P .FirstName':
|
|
198
198
|
return renderField({
|
|
199
199
|
...regionChildrenResolved[0],
|
|
200
|
-
displayMode: readOnly ? '
|
|
200
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : '',
|
|
201
201
|
readOnly
|
|
202
202
|
});
|
|
203
203
|
case '@P .MiddleName':
|
|
204
204
|
return renderField({
|
|
205
205
|
...regionChildrenResolved[1],
|
|
206
|
-
displayMode: readOnly ? '
|
|
206
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : '',
|
|
207
207
|
readOnly
|
|
208
208
|
});
|
|
209
209
|
case '@P .LastName':
|
|
210
210
|
return renderField({
|
|
211
211
|
...regionChildrenResolved[2],
|
|
212
|
-
displayMode: readOnly ? '
|
|
212
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : '',
|
|
213
213
|
readOnly
|
|
214
214
|
});
|
|
215
215
|
case '@P .Email':
|
|
216
216
|
return renderField({
|
|
217
217
|
...regionChildrenResolved[3],
|
|
218
|
-
displayMode: readOnly ? '
|
|
218
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : '',
|
|
219
219
|
readOnly
|
|
220
220
|
});
|
|
221
221
|
case '@P .PhoneNumber':
|
|
222
222
|
return renderField({
|
|
223
223
|
...regionChildrenResolved[4],
|
|
224
|
-
displayMode: readOnly ? '
|
|
224
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : '',
|
|
225
225
|
readOnly
|
|
226
226
|
});
|
|
227
227
|
case '@P .ServiceDate':
|
|
228
228
|
return renderField({
|
|
229
229
|
...regionChildrenResolved[5],
|
|
230
|
-
displayMode: readOnly ? '
|
|
230
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : '',
|
|
231
231
|
readOnly
|
|
232
232
|
});
|
|
233
233
|
}
|
package/src/tasks/create/templates/Constellation/Template/FORM-region/demo.stories.tsx.mustache
CHANGED
|
@@ -27,7 +27,7 @@ const renderField = resolvedProps => {
|
|
|
27
27
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
28
28
|
const [phoneValue, setPhoneValue] = useState('+16397975093');
|
|
29
29
|
|
|
30
|
-
const variant = displayMode === '
|
|
30
|
+
const variant = displayMode === 'DISPLAY_ONLY' ? 'inline' : 'stacked';
|
|
31
31
|
|
|
32
32
|
let val =
|
|
33
33
|
value !== '' ? (
|
|
@@ -142,7 +142,7 @@ const renderField = resolvedProps => {
|
|
|
142
142
|
return {
|
|
143
143
|
value: '',
|
|
144
144
|
label: label,
|
|
145
|
-
displayMode: '
|
|
145
|
+
displayMode: 'DISPLAY_ONLY'
|
|
146
146
|
};
|
|
147
147
|
},
|
|
148
148
|
getComponent: () => {
|
|
@@ -184,37 +184,37 @@ export const Base{{COMPONENT_CLASS_NAME}}: Story = args => {
|
|
|
184
184
|
return renderField({
|
|
185
185
|
...regionChildrenResolved[0],
|
|
186
186
|
readOnly,
|
|
187
|
-
displayMode: readOnly ? '
|
|
187
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : ''
|
|
188
188
|
});
|
|
189
189
|
case '@P .MiddleName':
|
|
190
190
|
return renderField({
|
|
191
191
|
...regionChildrenResolved[1],
|
|
192
192
|
readOnly,
|
|
193
|
-
displayMode: readOnly ? '
|
|
193
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : ''
|
|
194
194
|
});
|
|
195
195
|
case '@P .LastName':
|
|
196
196
|
return renderField({
|
|
197
197
|
...regionChildrenResolved[2],
|
|
198
198
|
readOnly,
|
|
199
|
-
displayMode: readOnly ? '
|
|
199
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : ''
|
|
200
200
|
});
|
|
201
201
|
case '@P .Email':
|
|
202
202
|
return renderField({
|
|
203
203
|
...regionChildrenResolved[3],
|
|
204
204
|
readOnly,
|
|
205
|
-
displayMode: readOnly ? '
|
|
205
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : ''
|
|
206
206
|
});
|
|
207
207
|
case '@P .PhoneNumber':
|
|
208
208
|
return renderField({
|
|
209
209
|
...regionChildrenResolved[4],
|
|
210
210
|
readOnly,
|
|
211
|
-
displayMode: readOnly ? '
|
|
211
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : ''
|
|
212
212
|
});
|
|
213
213
|
case '@P .ServiceDate':
|
|
214
214
|
return renderField({
|
|
215
215
|
...regionChildrenResolved[5],
|
|
216
216
|
readOnly,
|
|
217
|
-
displayMode: readOnly ? '
|
|
217
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : ''
|
|
218
218
|
});
|
|
219
219
|
}
|
|
220
220
|
}
|
|
@@ -15,16 +15,14 @@ export function getAllFields(pConnect: Function) {
|
|
|
15
15
|
return [];
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
let allFields = [];
|
|
19
|
-
|
|
20
18
|
const makeField = (f: any) => ({
|
|
21
19
|
...pConnect().resolveConfigProps(f.config),
|
|
22
20
|
type: f.type
|
|
23
21
|
});
|
|
24
22
|
|
|
25
23
|
const hasRegions = !!metadata.children[0]?.children;
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
const allFields = hasRegions
|
|
25
|
+
? metadata.children.map((region: any) =>
|
|
28
26
|
region.children.map((field: any) => {
|
|
29
27
|
// Do not resolve the config props if is status work, instead create component here as status badge and mark as status display
|
|
30
28
|
if (field.config?.value === '@P .pyStatusWork') {
|
|
@@ -35,10 +33,8 @@ export function getAllFields(pConnect: Function) {
|
|
|
35
33
|
|
|
36
34
|
return makeField(field);
|
|
37
35
|
})
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
allFields = metadata.children.map(makeField);
|
|
41
|
-
}
|
|
36
|
+
)
|
|
37
|
+
: metadata.children.map(makeField);
|
|
42
38
|
|
|
43
39
|
return allFields;
|
|
44
40
|
}
|
|
@@ -213,7 +209,6 @@ export function getInstructions(pConnect: Function, instructions: string = 'case
|
|
|
213
209
|
|
|
214
210
|
// If the annotation wasn't processed correctly, don't return any instruction text
|
|
215
211
|
if (instructions?.startsWith('@PARAGRAPH')) {
|
|
216
|
-
|
|
217
212
|
console.error('@PARAGRAPH annotation was not processed. Hiding custom instructions.');
|
|
218
213
|
|
|
219
214
|
return undefined;
|
|
@@ -20,9 +20,9 @@ test('renders {{COMPONENT_CLASS_NAME}}', async () => {
|
|
|
20
20
|
expect(await screen.findByText('Description')).toBeVisible();
|
|
21
21
|
expect(await screen.findByText('Performed by')).toBeVisible();
|
|
22
22
|
|
|
23
|
-
const
|
|
24
|
-
expect(
|
|
25
|
-
expect(
|
|
23
|
+
const performedArr = await screen.findAllByText('User DigV2');
|
|
24
|
+
expect(performedArr[0]).toBeVisible();
|
|
25
|
+
expect(performedArr[1]).toBeVisible();
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
});
|
|
@@ -31,6 +31,14 @@ function Avatar(props: {{COMPONENT_CLASS_NAME}}AvatarProps) {
|
|
|
31
31
|
userName = userIdentifier;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
const [userState, setUserState]: any = useState(() => {
|
|
35
|
+
if (!showStatus) {
|
|
36
|
+
return 'inactive';
|
|
37
|
+
}
|
|
38
|
+
const currentState = PCore.getMessagingServiceManager().getUserPresence().getUserState(userIdentifier);
|
|
39
|
+
return currentState === 'online' ? 'active' : 'inactive';
|
|
40
|
+
});
|
|
41
|
+
|
|
34
42
|
useEffect(() => {
|
|
35
43
|
const imageKey = !metaObj ? PCore.getEnvironmentInfo().getOperatorImageInsKey() : metaObj.image;
|
|
36
44
|
if (imageKey) {
|
|
@@ -41,23 +49,20 @@ function Avatar(props: {{COMPONENT_CLASS_NAME}}AvatarProps) {
|
|
|
41
49
|
}
|
|
42
50
|
}, [metaObj]);
|
|
43
51
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (!showStatus) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
47
56
|
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
57
|
+
const userPresence = PCore.getMessagingServiceManager().getUserPresence();
|
|
58
|
+
const toStatus = (state?: string) => (state === 'online' ? 'active' : 'inactive');
|
|
59
|
+
setUserState(toStatus(userPresence.getUserState(userIdentifier)));
|
|
60
|
+
const subId = userPresence.subscribe(userIdentifier, ({ state }: any) => setUserState(toStatus(state)), '');
|
|
51
61
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
.getUserPresence()
|
|
55
|
-
.subscribe(userIdentifier, handleUserStateChange, '');
|
|
62
|
+
return () => userPresence.unsubscribe(userIdentifier, subId);
|
|
63
|
+
}, [showStatus, userIdentifier]);
|
|
56
64
|
|
|
57
|
-
|
|
58
|
-
PCore.getMessagingServiceManager().getUserPresence().unsubscribe(userIdentifier, subId);
|
|
59
|
-
};
|
|
60
|
-
}, [userIdentifier, handleUserStateChange]);
|
|
65
|
+
if (showStatus) {
|
|
61
66
|
return <CosmosAvatar name={userName} imageSrc={imageBlobUrl as React.SetStateAction<any>} status={userState} />;
|
|
62
67
|
}
|
|
63
68
|
|
|
@@ -36,7 +36,7 @@ function Operator(props: {{COMPONENT_CLASS_NAME}}OperatorProps) {
|
|
|
36
36
|
const [isOpen, setIsOpen] = useState(false);
|
|
37
37
|
const [isLoading, setIsLoading] = useState(true);
|
|
38
38
|
const [popoverEl, setPopoverEl] = useElement(null);
|
|
39
|
-
const [popoverContent,
|
|
39
|
+
const [popoverContent, setPopoverContent] = useState(null);
|
|
40
40
|
const theme: any = useTheme();
|
|
41
41
|
|
|
42
42
|
/* If the id has changed, we need to reset the popover */
|
|
@@ -48,10 +48,10 @@ function Operator(props: {{COMPONENT_CLASS_NAME}}OperatorProps) {
|
|
|
48
48
|
{{! pick new delimiters for mustache }}
|
|
49
49
|
{{=<% %>=}}
|
|
50
50
|
|
|
51
|
-
const
|
|
51
|
+
const loadOperatorPreview = () => {
|
|
52
52
|
const localizedVal = PCore.getLocaleUtils().getLocaleValue;
|
|
53
53
|
const localeCategory = 'Operator';
|
|
54
|
-
|
|
54
|
+
setPopoverContent(
|
|
55
55
|
<Progress variant='ring' message={localizedVal('Loading operator...', localeCategory)} placement='local' />
|
|
56
56
|
);
|
|
57
57
|
if (externalUser && externalUser.classID !== 'Data-Party-Operator') {
|
|
@@ -74,7 +74,7 @@ function Operator(props: {{COMPONENT_CLASS_NAME}}OperatorProps) {
|
|
|
74
74
|
}
|
|
75
75
|
];
|
|
76
76
|
setIsLoading(false);
|
|
77
|
-
|
|
77
|
+
setPopoverContent(
|
|
78
78
|
<Glimpse
|
|
79
79
|
visual={
|
|
80
80
|
<Avatar
|
|
@@ -120,7 +120,7 @@ function Operator(props: {{COMPONENT_CLASS_NAME}}OperatorProps) {
|
|
|
120
120
|
);
|
|
121
121
|
|
|
122
122
|
setIsLoading(false);
|
|
123
|
-
|
|
123
|
+
setPopoverContent(
|
|
124
124
|
<Glimpse
|
|
125
125
|
heading={{
|
|
126
126
|
primary: data.pyOperatorInfo.pyUserName,
|
|
@@ -144,7 +144,7 @@ function Operator(props: {{COMPONENT_CLASS_NAME}}OperatorProps) {
|
|
|
144
144
|
setIsOpen(!isOpen);
|
|
145
145
|
if (pTarget === null) {
|
|
146
146
|
pTarget = e.currentTarget;
|
|
147
|
-
|
|
147
|
+
loadOperatorPreview();
|
|
148
148
|
}
|
|
149
149
|
};
|
|
150
150
|
|
|
@@ -109,7 +109,7 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
109
109
|
|
|
110
110
|
export default withConfiguration({{COMPONENT_CLASS_NAME}});
|
|
111
111
|
|
|
112
|
-
// as objects are there in props, shallow
|
|
112
|
+
// as objects are there in props, shallow comparison fails & re-rendering of comp happens even with
|
|
113
113
|
// same key value pairs in obj. hence using custom comparison function on when to re-render
|
|
114
114
|
// const comparisonFn = (prevProps, nextProps) => {
|
|
115
115
|
// return prevProps.updateDateTime === nextProps.updateDateTime;
|
|
@@ -14,8 +14,8 @@ import './create-nonce';
|
|
|
14
14
|
|
|
15
15
|
// IMPORTANT
|
|
16
16
|
// To use Icons, need to individually import the icon file form @pega/cosmos-react-core (see path below)
|
|
17
|
-
// Icons filename is
|
|
18
|
-
// Icons need to be registered (camel case), and then used (
|
|
17
|
+
// Icons filename is kebab case (file-name), where as the icon you import is camel case (fileName)
|
|
18
|
+
// Icons need to be registered (camel case), and then used (kebab case)
|
|
19
19
|
import * as listNumber from '@pega/cosmos-react-core/lib/components/Icon/icons/list-number.icon';
|
|
20
20
|
import * as arrowRight from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-right.icon';
|
|
21
21
|
import * as globe from '@pega/cosmos-react-core/lib/components/Icon/icons/globe.icon';
|
|
@@ -164,7 +164,7 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
164
164
|
<div style={{ display: 'flex' }} data-testid={testId}>
|
|
165
165
|
<Icon
|
|
166
166
|
style={{ height: '1.5rem', width: '1.5rem' }}
|
|
167
|
-
// icon name is
|
|
167
|
+
// icon name is kebab case
|
|
168
168
|
name='arrow-right'
|
|
169
169
|
role='img'
|
|
170
170
|
aria-label='arrow right'
|
|
@@ -182,7 +182,7 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
182
182
|
>
|
|
183
183
|
<Icon
|
|
184
184
|
style={{ height: '1.5rem', width: '1.5rem' }}
|
|
185
|
-
// icon name is
|
|
185
|
+
// icon name is kebab case
|
|
186
186
|
name='list-number'
|
|
187
187
|
role='img'
|
|
188
188
|
aria-label='numbered list'
|
|
@@ -191,7 +191,7 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
191
191
|
<Link href={validUrl} variant='link' label={validUrl} icon>
|
|
192
192
|
<Icon
|
|
193
193
|
style={{ height: '1.5rem', width: '1.5rem' }}
|
|
194
|
-
// icon name is
|
|
194
|
+
// icon name is kebab case
|
|
195
195
|
name='globe'
|
|
196
196
|
role='img'
|
|
197
197
|
aria-label='open link'
|
|
@@ -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);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
# The **Field** directory
|
|
2
2
|
|
|
3
|
-
The **
|
|
3
|
+
The **Launchpad/Field** directory contains the template code for the field components you want to use with the **WebComponents SDK**.
|
|
@@ -28,7 +28,7 @@ const renderField = resolvedProps => {
|
|
|
28
28
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
29
29
|
const [phoneValue, setPhoneValue] = useState('+16397975093');
|
|
30
30
|
|
|
31
|
-
const variant = displayMode === '
|
|
31
|
+
const variant = displayMode === 'DISPLAY_ONLY' ? 'inline' : 'stacked';
|
|
32
32
|
|
|
33
33
|
let val =
|
|
34
34
|
value !== '' ? (
|
|
@@ -153,7 +153,7 @@ const renderField = resolvedProps => {
|
|
|
153
153
|
return {
|
|
154
154
|
value: '',
|
|
155
155
|
label: label,
|
|
156
|
-
displayMode: '
|
|
156
|
+
displayMode: 'DISPLAY_ONLY'
|
|
157
157
|
};
|
|
158
158
|
},
|
|
159
159
|
getComponent: () => {
|
|
@@ -197,37 +197,37 @@ export const Base{{COMPONENT_CLASS_NAME}}: Story = args => {
|
|
|
197
197
|
case '@P .FirstName':
|
|
198
198
|
return renderField({
|
|
199
199
|
...regionChildrenResolved[0],
|
|
200
|
-
displayMode: readOnly ? '
|
|
200
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : '',
|
|
201
201
|
readOnly
|
|
202
202
|
});
|
|
203
203
|
case '@P .MiddleName':
|
|
204
204
|
return renderField({
|
|
205
205
|
...regionChildrenResolved[1],
|
|
206
|
-
displayMode: readOnly ? '
|
|
206
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : '',
|
|
207
207
|
readOnly
|
|
208
208
|
});
|
|
209
209
|
case '@P .LastName':
|
|
210
210
|
return renderField({
|
|
211
211
|
...regionChildrenResolved[2],
|
|
212
|
-
displayMode: readOnly ? '
|
|
212
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : '',
|
|
213
213
|
readOnly
|
|
214
214
|
});
|
|
215
215
|
case '@P .Email':
|
|
216
216
|
return renderField({
|
|
217
217
|
...regionChildrenResolved[3],
|
|
218
|
-
displayMode: readOnly ? '
|
|
218
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : '',
|
|
219
219
|
readOnly
|
|
220
220
|
});
|
|
221
221
|
case '@P .PhoneNumber':
|
|
222
222
|
return renderField({
|
|
223
223
|
...regionChildrenResolved[4],
|
|
224
|
-
displayMode: readOnly ? '
|
|
224
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : '',
|
|
225
225
|
readOnly
|
|
226
226
|
});
|
|
227
227
|
case '@P .ServiceDate':
|
|
228
228
|
return renderField({
|
|
229
229
|
...regionChildrenResolved[5],
|
|
230
|
-
displayMode: readOnly ? '
|
|
230
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : '',
|
|
231
231
|
readOnly
|
|
232
232
|
});
|
|
233
233
|
}
|
|
@@ -27,7 +27,7 @@ const renderField = resolvedProps => {
|
|
|
27
27
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
28
28
|
const [phoneValue, setPhoneValue] = useState('+16397975093');
|
|
29
29
|
|
|
30
|
-
const variant = displayMode === '
|
|
30
|
+
const variant = displayMode === 'DISPLAY_ONLY' ? 'inline' : 'stacked';
|
|
31
31
|
|
|
32
32
|
let val =
|
|
33
33
|
value !== '' ? (
|
|
@@ -142,7 +142,7 @@ const renderField = resolvedProps => {
|
|
|
142
142
|
return {
|
|
143
143
|
value: '',
|
|
144
144
|
label: label,
|
|
145
|
-
displayMode: '
|
|
145
|
+
displayMode: 'DISPLAY_ONLY'
|
|
146
146
|
};
|
|
147
147
|
},
|
|
148
148
|
getComponent: () => {
|
|
@@ -184,37 +184,37 @@ export const Base{{COMPONENT_CLASS_NAME}}: Story = args => {
|
|
|
184
184
|
return renderField({
|
|
185
185
|
...regionChildrenResolved[0],
|
|
186
186
|
readOnly,
|
|
187
|
-
displayMode: readOnly ? '
|
|
187
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : ''
|
|
188
188
|
});
|
|
189
189
|
case '@P .MiddleName':
|
|
190
190
|
return renderField({
|
|
191
191
|
...regionChildrenResolved[1],
|
|
192
192
|
readOnly,
|
|
193
|
-
displayMode: readOnly ? '
|
|
193
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : ''
|
|
194
194
|
});
|
|
195
195
|
case '@P .LastName':
|
|
196
196
|
return renderField({
|
|
197
197
|
...regionChildrenResolved[2],
|
|
198
198
|
readOnly,
|
|
199
|
-
displayMode: readOnly ? '
|
|
199
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : ''
|
|
200
200
|
});
|
|
201
201
|
case '@P .Email':
|
|
202
202
|
return renderField({
|
|
203
203
|
...regionChildrenResolved[3],
|
|
204
204
|
readOnly,
|
|
205
|
-
displayMode: readOnly ? '
|
|
205
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : ''
|
|
206
206
|
});
|
|
207
207
|
case '@P .PhoneNumber':
|
|
208
208
|
return renderField({
|
|
209
209
|
...regionChildrenResolved[4],
|
|
210
210
|
readOnly,
|
|
211
|
-
displayMode: readOnly ? '
|
|
211
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : ''
|
|
212
212
|
});
|
|
213
213
|
case '@P .ServiceDate':
|
|
214
214
|
return renderField({
|
|
215
215
|
...regionChildrenResolved[5],
|
|
216
216
|
readOnly,
|
|
217
|
-
displayMode: readOnly ? '
|
|
217
|
+
displayMode: readOnly ? 'DISPLAY_ONLY' : ''
|
|
218
218
|
});
|
|
219
219
|
}
|
|
220
220
|
}
|
|
@@ -20,9 +20,9 @@ test('renders {{COMPONENT_CLASS_NAME}}', async () => {
|
|
|
20
20
|
expect(await screen.findByText('Description')).toBeVisible();
|
|
21
21
|
expect(await screen.findByText('Performed by')).toBeVisible();
|
|
22
22
|
|
|
23
|
-
const
|
|
24
|
-
expect(
|
|
25
|
-
expect(
|
|
23
|
+
const performedArr = await screen.findAllByText('User DigV2');
|
|
24
|
+
expect(performedArr[0]).toBeVisible();
|
|
25
|
+
expect(performedArr[1]).toBeVisible();
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
});
|
|
@@ -84,7 +84,7 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
84
84
|
|
|
85
85
|
export default withConfiguration({{COMPONENT_CLASS_NAME}});
|
|
86
86
|
|
|
87
|
-
// as objects are there in props, shallow
|
|
87
|
+
// as objects are there in props, shallow comparison fails & re-rendering of comp happens even with
|
|
88
88
|
// same key value pairs in obj. hence using custom comparison function on when to re-render
|
|
89
89
|
// const comparisonFn = (prevProps, nextProps) => {
|
|
90
90
|
// return prevProps.updateDateTime === nextProps.updateDateTime;
|