@pega/sdk 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +111 -0
- package/SECURITY.md +10 -0
- package/dist/index.js +753 -0
- package/package.json +41 -0
- package/templates/angular-sdk-reference/.github/AGENTS.md +23 -0
- package/templates/angular-sdk-reference/.github/copilot-instructions.md +40 -0
- package/templates/angular-sdk-reference/.github/skills/pega-sdk-component.md +48 -0
- package/templates/angular-sdk-reference/angular.json +34 -0
- package/templates/angular-sdk-reference/package.json +31 -0
- package/templates/angular-sdk-reference/sdk-config.json +26 -0
- package/templates/angular-sdk-reference/src/app/app.component.ts +54 -0
- package/templates/angular-sdk-reference/src/index.html +12 -0
- package/templates/angular-sdk-reference/src/main.ts +4 -0
- package/templates/angular-sdk-reference/src/styles.css +19 -0
- package/templates/angular-sdk-reference/tsconfig.json +32 -0
- package/templates/react-native-sdk-reference/.github/AGENTS.md +23 -0
- package/templates/react-native-sdk-reference/.github/copilot-instructions.md +40 -0
- package/templates/react-native-sdk-reference/.github/skills/pega-sdk-component.md +48 -0
- package/templates/react-native-sdk-reference/App.tsx +51 -0
- package/templates/react-native-sdk-reference/app.json +11 -0
- package/templates/react-native-sdk-reference/package.json +22 -0
- package/templates/react-native-sdk-reference/sdk-config.json +14 -0
- package/templates/react-native-sdk-reference/tsconfig.json +12 -0
- package/templates/react-sdk-reference/.github/copilot-instructions.md +185 -0
- package/templates/react-sdk-reference/.github/instructions/component-map.instructions.md +40 -0
- package/templates/react-sdk-reference/.github/instructions/dse-component.instructions.md +77 -0
- package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +73 -0
- package/templates/react-sdk-reference/.github/instructions/template-component.instructions.md +94 -0
- package/templates/react-sdk-reference/.github/instructions/widget-component.instructions.md +89 -0
- package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +21 -0
- package/templates/react-sdk-reference/.github/prompts/component-manifest.json +111 -0
- package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +110 -0
- package/templates/react-sdk-reference/.github/prompts/replace-all-fields.prompt.md +48 -0
- package/templates/react-sdk-reference/.github/prompts/replace-component.prompt.md +81 -0
- package/templates/react-sdk-reference/.github/prompts/replace-design-system.prompt.md +524 -0
- package/templates/react-sdk-reference/.github/prompts/replace-field.prompt.md +41 -0
- package/templates/react-sdk-reference/.github/prompts/swap-design-system.prompt.md +49 -0
- package/templates/react-sdk-reference/.github/skills/component-contracts.md +140 -0
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/AlertBanner.md +135 -0
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +149 -0
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +154 -0
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +144 -0
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +131 -0
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +111 -0
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +115 -0
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +149 -0
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +83 -0
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +206 -0
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +135 -0
- package/templates/react-sdk-reference/.github/skills/design-system-extension.md +249 -0
- package/templates/react-sdk-reference/.github/skills/field-components.md +262 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +112 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +203 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +158 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +106 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +99 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +103 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +98 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +114 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +107 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +90 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +87 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +136 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +164 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +164 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +92 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +110 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +146 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +138 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +124 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +216 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +148 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +96 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +101 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +104 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +88 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +85 -0
- package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +180 -0
- package/templates/react-sdk-reference/.github/skills/run-and-verify.md +68 -0
- package/templates/react-sdk-reference/.github/skills/swap-design-system.md +105 -0
- package/templates/react-sdk-reference/.github/skills/template-components.md +285 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +144 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +122 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +83 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +100 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +131 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +126 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +107 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +120 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +102 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +110 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +88 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +95 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +78 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +78 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +101 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +109 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +113 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +104 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +85 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +68 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +139 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/MultiReferenceReadOnly.md +80 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +141 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +109 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +124 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +135 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +127 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +103 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +79 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +131 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +150 -0
- package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +135 -0
- package/templates/react-sdk-reference/.github/skills/widget-components.md +234 -0
- package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +82 -0
- package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +146 -0
- package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +107 -0
- package/templates/react-sdk-reference/.github/skills/widget-skills/FileUtility.md +200 -0
- package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +99 -0
- package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +114 -0
- package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +167 -0
- package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +190 -0
- package/templates/react-sdk-reference/AGENTS.md +59 -0
- package/templates/react-sdk-reference/assets/icons/analytics-good-solid.svg +3 -0
- package/templates/react-sdk-reference/assets/icons/cart-solid.svg +3 -0
- package/templates/react-sdk-reference/assets/icons/headset.svg +3 -0
- package/templates/react-sdk-reference/assets/icons/mobile-phone-solid.svg +3 -0
- package/templates/react-sdk-reference/assets/icons/money-solid.svg +3 -0
- package/templates/react-sdk-reference/assets/icons/multi-device-solid.svg +3 -0
- package/templates/react-sdk-reference/index.html +36 -0
- package/templates/react-sdk-reference/package.json +52 -0
- package/templates/react-sdk-reference/sdk-config.json +26 -0
- package/templates/react-sdk-reference/src/AppSelector.tsx +18 -0
- package/templates/react-sdk-reference/src/FallbackComponent.tsx +40 -0
- package/templates/react-sdk-reference/src/MashupApp.styles.ts +105 -0
- package/templates/react-sdk-reference/src/MashupApp.tsx +254 -0
- package/templates/react-sdk-reference/src/PortalApp.tsx +175 -0
- package/templates/react-sdk-reference/src/components/component-map.ts +255 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.css +46 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.tsx +91 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.css +39 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.tsx +53 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.css +16 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +270 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/DetailsFields.tsx +164 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/FieldGroup.tsx +79 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/FieldGroupList.tsx +58 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/FieldValueList.tsx +84 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/Operator.tsx +220 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/Pulse.tsx +33 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx +201 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.css +33 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +48 -0
- package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +218 -0
- package/templates/react-sdk-reference/src/components/field/AutoComplete/config-ext.json +10 -0
- package/templates/react-sdk-reference/src/components/field/AutoComplete/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.css +24 -0
- package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.tsx +148 -0
- package/templates/react-sdk-reference/src/components/field/CancelAlert/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +263 -0
- package/templates/react-sdk-reference/src/components/field/Checkbox/config-ext.json +9 -0
- package/templates/react-sdk-reference/src/components/field/Checkbox/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/Currency/Currency.tsx +111 -0
- package/templates/react-sdk-reference/src/components/field/Currency/config-ext.json +9 -0
- package/templates/react-sdk-reference/src/components/field/Currency/currency-utils.ts +67 -0
- package/templates/react-sdk-reference/src/components/field/Currency/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/Date/Date.tsx +94 -0
- package/templates/react-sdk-reference/src/components/field/Date/config-ext.json +9 -0
- package/templates/react-sdk-reference/src/components/field/Date/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/DateTime/DateTime.tsx +101 -0
- package/templates/react-sdk-reference/src/components/field/DateTime/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/field/DateTime/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/Decimal/Decimal.tsx +122 -0
- package/templates/react-sdk-reference/src/components/field/Decimal/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/field/Decimal/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +238 -0
- package/templates/react-sdk-reference/src/components/field/Dropdown/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/field/Dropdown/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/Email/Email.tsx +96 -0
- package/templates/react-sdk-reference/src/components/field/Email/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/field/Email/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/Group/Group.tsx +41 -0
- package/templates/react-sdk-reference/src/components/field/Group/config-ext.json +7 -0
- package/templates/react-sdk-reference/src/components/field/Group/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/Integer/Integer.tsx +100 -0
- package/templates/react-sdk-reference/src/components/field/Integer/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/field/Integer/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/Location/Location.css +4 -0
- package/templates/react-sdk-reference/src/components/field/Location/Location.tsx +258 -0
- package/templates/react-sdk-reference/src/components/field/Location/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/field/Location/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/Multiselect/Multiselect.tsx +238 -0
- package/templates/react-sdk-reference/src/components/field/Multiselect/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/Multiselect/utils.ts +230 -0
- package/templates/react-sdk-reference/src/components/field/ObjectReference/ObjectReference.tsx +235 -0
- package/templates/react-sdk-reference/src/components/field/ObjectReference/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/ObjectReference/utils.ts +111 -0
- package/templates/react-sdk-reference/src/components/field/Percentage/Percentage.tsx +112 -0
- package/templates/react-sdk-reference/src/components/field/Percentage/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/field/Percentage/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/Phone/Phone.tsx +113 -0
- package/templates/react-sdk-reference/src/components/field/Phone/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/field/Phone/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +158 -0
- package/templates/react-sdk-reference/src/components/field/RadioButtons/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/field/RadioButtons/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/RichText/RichText.css +79 -0
- package/templates/react-sdk-reference/src/components/field/RichText/RichText.tsx +98 -0
- package/templates/react-sdk-reference/src/components/field/RichText/config-ext.json +10 -0
- package/templates/react-sdk-reference/src/components/field/RichText/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/ScalarList/ScalarList.tsx +63 -0
- package/templates/react-sdk-reference/src/components/field/ScalarList/config-ext.json +7 -0
- package/templates/react-sdk-reference/src/components/field/ScalarList/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/SelectableCard/SelectableCard.tsx +189 -0
- package/templates/react-sdk-reference/src/components/field/SelectableCard/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/SelectableCard/utils.tsx +223 -0
- package/templates/react-sdk-reference/src/components/field/SemanticLink/SemanticLink.tsx +208 -0
- package/templates/react-sdk-reference/src/components/field/SemanticLink/config-ext.json +7 -0
- package/templates/react-sdk-reference/src/components/field/SemanticLink/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/SemanticLink/utils.ts +49 -0
- package/templates/react-sdk-reference/src/components/field/TextArea/TextArea.tsx +94 -0
- package/templates/react-sdk-reference/src/components/field/TextArea/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/field/TextArea/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/TextContent/TextContent.tsx +46 -0
- package/templates/react-sdk-reference/src/components/field/TextContent/config-ext.json +7 -0
- package/templates/react-sdk-reference/src/components/field/TextContent/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/TextInput/TextInput.tsx +92 -0
- package/templates/react-sdk-reference/src/components/field/TextInput/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/field/TextInput/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/Time/Time.tsx +79 -0
- package/templates/react-sdk-reference/src/components/field/Time/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/field/Time/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/URL/URL.tsx +89 -0
- package/templates/react-sdk-reference/src/components/field/URL/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/field/URL/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/field/UserReference/UserReference.tsx +198 -0
- package/templates/react-sdk-reference/src/components/field/UserReference/UserReferenceUtils.ts +13 -0
- package/templates/react-sdk-reference/src/components/field/UserReference/config-ext.json +7 -0
- package/templates/react-sdk-reference/src/components/field/UserReference/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/helpers/attachmentShared.ts +6 -0
- package/templates/react-sdk-reference/src/components/helpers/case-utils.tsx +99 -0
- package/templates/react-sdk-reference/src/components/helpers/common-utils.ts +26 -0
- package/templates/react-sdk-reference/src/components/helpers/data_page.ts +20 -0
- package/templates/react-sdk-reference/src/components/helpers/date-format-utils.ts +76 -0
- package/templates/react-sdk-reference/src/components/helpers/event-utils.ts +20 -0
- package/templates/react-sdk-reference/src/components/helpers/field-group-utils.ts +63 -0
- package/templates/react-sdk-reference/src/components/helpers/formatters/Boolean.ts +21 -0
- package/templates/react-sdk-reference/src/components/helpers/formatters/Currency.ts +77 -0
- package/templates/react-sdk-reference/src/components/helpers/formatters/CurrencyMap.ts +913 -0
- package/templates/react-sdk-reference/src/components/helpers/formatters/Date.ts +71 -0
- package/templates/react-sdk-reference/src/components/helpers/formatters/common.ts +14 -0
- package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +130 -0
- package/templates/react-sdk-reference/src/components/helpers/instructions-utils.ts +38 -0
- package/templates/react-sdk-reference/src/components/helpers/object-utils.ts +10 -0
- package/templates/react-sdk-reference/src/components/helpers/reactContextHelpers.ts +3 -0
- package/templates/react-sdk-reference/src/components/helpers/simpleTableHelpers.ts +452 -0
- package/templates/react-sdk-reference/src/components/helpers/state-utils.tsx +43 -0
- package/templates/react-sdk-reference/src/components/helpers/template-utils.ts +76 -0
- package/templates/react-sdk-reference/src/components/helpers/utils.ts +349 -0
- package/templates/react-sdk-reference/src/components/helpers/versionHelpers.ts +14 -0
- package/templates/react-sdk-reference/src/components/index.ts +8 -0
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/AdvancedSearch.tsx +86 -0
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroup/persistUtils.ts +52 -0
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/SearchGroups.tsx +329 -0
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/hooks.ts +37 -0
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/utils.ts +29 -0
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/TemplateContext.ts +11 -0
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/config-ext.json +9 -0
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.css +35 -0
- package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.tsx +259 -0
- package/templates/react-sdk-reference/src/components/template/AppShell/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/BannerPage/BannerPage.tsx +54 -0
- package/templates/react-sdk-reference/src/components/template/BannerPage/config-ext.json +9 -0
- package/templates/react-sdk-reference/src/components/template/BannerPage/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/CaseSummary/CaseSummary.tsx +79 -0
- package/templates/react-sdk-reference/src/components/template/CaseSummary/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/CaseSummary/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/CaseView/CaseView.tsx +261 -0
- package/templates/react-sdk-reference/src/components/template/CaseView/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/CaseView/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +117 -0
- package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/Confirmation/Confirmation.tsx +102 -0
- package/templates/react-sdk-reference/src/components/template/Confirmation/config-ext.json +11 -0
- package/templates/react-sdk-reference/src/components/template/Confirmation/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/DataReference/DataReference.tsx +590 -0
- package/templates/react-sdk-reference/src/components/template/DataReference/DataReferenceAdvancedSearchContext.ts +10 -0
- package/templates/react-sdk-reference/src/components/template/DataReference/SearchForm.tsx +213 -0
- package/templates/react-sdk-reference/src/components/template/DataReference/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/DataReference/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/DataReference/utils.ts +90 -0
- package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.css +34 -0
- package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +74 -0
- package/templates/react-sdk-reference/src/components/template/DefaultForm/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/DefaultForm/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/DefaultForm/utils/index.ts +26 -0
- package/templates/react-sdk-reference/src/components/template/DefaultPage/DefaultPage.tsx +108 -0
- package/templates/react-sdk-reference/src/components/template/DefaultPage/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/Details/Details/Details.tsx +74 -0
- package/templates/react-sdk-reference/src/components/template/Details/Details/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/Details/DetailsSubTabs/DetailsSubTabs.tsx +58 -0
- package/templates/react-sdk-reference/src/components/template/Details/DetailsSubTabs/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/Details/DetailsSubTabs/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +79 -0
- package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +79 -0
- package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/DynamicTabs.tsx +79 -0
- package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/config.json +36 -0
- package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/FieldGroupTemplate.tsx +116 -0
- package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/HierarchicalForm/HierarchicalForm.tsx +58 -0
- package/templates/react-sdk-reference/src/components/template/HierarchicalForm/hooks.ts +293 -0
- package/templates/react-sdk-reference/src/components/template/HierarchicalForm/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/InlineDashboard/InlineDashboard.tsx +72 -0
- package/templates/react-sdk-reference/src/components/template/InlineDashboard/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/InlineDashboardPage/InlineDashboardPage.tsx +39 -0
- package/templates/react-sdk-reference/src/components/template/InlineDashboardPage/config-ext.json +9 -0
- package/templates/react-sdk-reference/src/components/template/InlineDashboardPage/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/ListPage/ListPage.tsx +16 -0
- package/templates/react-sdk-reference/src/components/template/ListPage/config-ext.json +7 -0
- package/templates/react-sdk-reference/src/components/template/ListPage/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/ListView/DefaultViewMeta.ts +220 -0
- package/templates/react-sdk-reference/src/components/template/ListView/ListView.css +10 -0
- package/templates/react-sdk-reference/src/components/template/ListView/ListView.tsx +1391 -0
- package/templates/react-sdk-reference/src/components/template/ListView/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/ListView/hooks.ts +93 -0
- package/templates/react-sdk-reference/src/components/template/ListView/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/ListView/utils.ts +781 -0
- package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +52 -0
- package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.css +19 -0
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.tsx +37 -0
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +85 -0
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.css +19 -0
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +22 -0
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +28 -0
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/ObjectPage/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/OneColumn.tsx +32 -0
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnPage/OneColumnPage.tsx +17 -0
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnPage/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnPage/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/OneColumnTab.tsx +11 -0
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.css +7 -0
- package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.tsx +204 -0
- package/templates/react-sdk-reference/src/components/template/PromotedFilters/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/SelfServiceCaseView.tsx +153 -0
- package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx +126 -0
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/config-ext.json +7 -0
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +985 -0
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +122 -0
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx +207 -0
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +71 -0
- package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/SubTabs/SubTabs.tsx +46 -0
- package/templates/react-sdk-reference/src/components/template/SubTabs/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/SubTabs/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/SubTabs/tabUtils.ts +185 -0
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.css +12 -0
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.tsx +54 -0
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnPage/TwoColumnPage.tsx +17 -0
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnPage/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnPage/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.css +12 -0
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +54 -0
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.css +19 -0
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.tsx +37 -0
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +96 -0
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.css +19 -0
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +22 -0
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +28 -0
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.css +11 -0
- package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.tsx +160 -0
- package/templates/react-sdk-reference/src/components/template/WssNavBar/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/template/utils.tsx +58 -0
- package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/AppAnnouncement.tsx +60 -0
- package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.css +95 -0
- package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.tsx +541 -0
- package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.types.ts +96 -0
- package/templates/react-sdk-reference/src/components/widget/Attachment/AttachmentUtils.ts +316 -0
- package/templates/react-sdk-reference/src/components/widget/Attachment/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/widget/CaseHistory/CaseHistory.tsx +171 -0
- package/templates/react-sdk-reference/src/components/widget/CaseHistory/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/widget/CaseHistory/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.css +13 -0
- package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +32 -0
- package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.css +118 -0
- package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.tsx +653 -0
- package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/widget/Followers/Followers.tsx +43 -0
- package/templates/react-sdk-reference/src/components/widget/Followers/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/widget/Followers/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/widget/QuickCreate/QuickCreate.tsx +88 -0
- package/templates/react-sdk-reference/src/components/widget/QuickCreate/config-ext.json +9 -0
- package/templates/react-sdk-reference/src/components/widget/QuickCreate/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.css +76 -0
- package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.tsx +89 -0
- package/templates/react-sdk-reference/src/components/widget/SummaryItem/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/widget/SummaryList/SummaryList.tsx +23 -0
- package/templates/react-sdk-reference/src/components/widget/SummaryList/index.tsx +1 -0
- package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.css +81 -0
- package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.tsx +507 -0
- package/templates/react-sdk-reference/src/components/widget/ToDo/config-ext.json +8 -0
- package/templates/react-sdk-reference/src/components/widget/ToDo/index.tsx +1 -0
- package/templates/react-sdk-reference/src/main.tsx +13 -0
- package/templates/react-sdk-reference/src/mui-theme-augmentation.d.ts +6 -0
- package/templates/react-sdk-reference/tsconfig.json +24 -0
- package/templates/react-sdk-reference/vite.config.ts +65 -0
- package/templates/wc-sdk-reference/.github/AGENTS.md +23 -0
- package/templates/wc-sdk-reference/.github/copilot-instructions.md +40 -0
- package/templates/wc-sdk-reference/.github/skills/pega-sdk-component.md +48 -0
- package/templates/wc-sdk-reference/index.html +21 -0
- package/templates/wc-sdk-reference/package.json +19 -0
- package/templates/wc-sdk-reference/sdk-config.json +19 -0
- package/templates/wc-sdk-reference/src/index.ts +98 -0
- package/templates/wc-sdk-reference/tsconfig.json +21 -0
- package/templates/wc-sdk-reference/vite.config.ts +8 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Skill: SummaryItem
|
|
2
|
+
|
|
3
|
+
Individual item card for displaying an attachment, file, or link with an icon, name, metadata, and an actions menu. Also covers `SummaryList` — the container that renders multiple `SummaryItem` cards.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`widget-components.md`](../widget-components.md) — covers architecture, props interface, data-fetching patterns, and registration conventions common to ALL widget components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Component Purpose
|
|
10
|
+
|
|
11
|
+
`SummaryItem` renders a single row/card for an attachment or link item. It shows a file-type icon, the item name (as a link for URLs or plain text for files), secondary metadata text, and an action menu. Used by `FileUtility` via the `SummaryList` container.
|
|
12
|
+
|
|
13
|
+
`SummaryList` is a thin wrapper that maps an array of item objects to individual `SummaryItem` cards, passing down menu icon overrides for all items.
|
|
14
|
+
|
|
15
|
+
## Pega Metadata
|
|
16
|
+
|
|
17
|
+
- **Registration keys:**
|
|
18
|
+
- `SummaryItem` — the individual item card
|
|
19
|
+
- `SummaryList` — the container/list component
|
|
20
|
+
- **Category:** Widget — display / composition
|
|
21
|
+
- **Extends:** `PConnProps`
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## SummaryItem
|
|
26
|
+
|
|
27
|
+
### Props
|
|
28
|
+
|
|
29
|
+
| Prop | Type | Required | Description |
|
|
30
|
+
|------|------|----------|-------------|
|
|
31
|
+
| `arItems$` | `object` | Yes | A single item object (see Item Structure below) |
|
|
32
|
+
| `menuIconOverride$` | `string` | No | If provided, replaces the standard actions menu with a single direct-action icon button |
|
|
33
|
+
| `menuIconOverrideAction$` | `function` | No | Callback invoked when the override icon button is clicked |
|
|
34
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
35
|
+
|
|
36
|
+
### Item Structure (`arItems$`)
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
{
|
|
40
|
+
id: string;
|
|
41
|
+
visual: {
|
|
42
|
+
icon: string; // Icon identifier or URL
|
|
43
|
+
progress?: number; // Upload progress 0–100 (optional)
|
|
44
|
+
};
|
|
45
|
+
primary: {
|
|
46
|
+
type: 'FILE' | 'URL';
|
|
47
|
+
name: string; // Display name of the item
|
|
48
|
+
icon: string; // Icon for the primary element
|
|
49
|
+
click: () => void; // Download (FILE) or open in new tab (URL)
|
|
50
|
+
};
|
|
51
|
+
secondary: {
|
|
52
|
+
text: string; // Metadata text (e.g., "John Smith · 01/15/2025")
|
|
53
|
+
error?: boolean; // If true, render text in error/red color
|
|
54
|
+
};
|
|
55
|
+
actions: Array<{
|
|
56
|
+
id: string;
|
|
57
|
+
text: string; // Menu item label
|
|
58
|
+
icon: string; // Menu item icon identifier
|
|
59
|
+
onClick: () => void; // Action callback
|
|
60
|
+
}>;
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Behavioral Contract
|
|
65
|
+
|
|
66
|
+
1. **Visual area:** Render `visual.icon` (file type icon). If `visual.progress` is defined and between 0–99, overlay a progress indicator.
|
|
67
|
+
2. **Primary element:**
|
|
68
|
+
- `type === 'FILE'`: render `primary.name` as plain text (clicking calls `primary.click` which triggers download).
|
|
69
|
+
- `type === 'URL'`: render `primary.name` as a link button that calls `primary.click` (opens URL in new tab).
|
|
70
|
+
3. **Secondary text:** Render `secondary.text` below the primary element. If `secondary.error === true`, render in error/red color.
|
|
71
|
+
4. **Actions:**
|
|
72
|
+
- **Standard mode (no `menuIconOverride$`):** Render a `<MoreVertIcon>` icon button. On click, open a `<Menu>` with one `<MenuItem>` per `actions` entry.
|
|
73
|
+
- **Override mode (`menuIconOverride$` provided):** Render a single direct-action icon button using `menuIconOverride$` as the icon. On click, call `menuIconOverrideAction$()`. No menu rendered.
|
|
74
|
+
|
|
75
|
+
## Visual Specifications
|
|
76
|
+
|
|
77
|
+
### Item Layout
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
[File Icon] [Name (link if URL)]
|
|
81
|
+
[Secondary metadata text]
|
|
82
|
+
[Actions button (⋮ or override)]
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
| Element | Description |
|
|
86
|
+
|---------|-------------|
|
|
87
|
+
| File icon | Left side, fixed size (~36px square) |
|
|
88
|
+
| Name | Bold, truncated with ellipsis if too long |
|
|
89
|
+
| Metadata | Smaller, secondary-color text |
|
|
90
|
+
| Actions button | Right side, `<MoreVertIcon>` or override icon |
|
|
91
|
+
|
|
92
|
+
**CSS-only implementation notes:**
|
|
93
|
+
- Row: `display: flex; align-items: center; gap: 0.75rem; padding: 8px 0`.
|
|
94
|
+
- File icon: `width: 36px; height: 36px; flex-shrink: 0`.
|
|
95
|
+
- Content area: `flex: 1; min-width: 0` (prevents text overflow).
|
|
96
|
+
- Name: `font-size: 0.875rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap`.
|
|
97
|
+
- Metadata: `font-size: 0.75rem; color: var(--secondary-text-color)`.
|
|
98
|
+
- Error metadata: `color: var(--error-color)`.
|
|
99
|
+
- Actions button: `flex-shrink: 0; margin-left: auto`.
|
|
100
|
+
- URL name: `color: var(--link-color); cursor: pointer; text-decoration: underline`.
|
|
101
|
+
|
|
102
|
+
## Edge Cases & Special Logic
|
|
103
|
+
|
|
104
|
+
- `visual.progress` — show a progress indicator only when `0 <= progress < 100`. When `progress === 100` (complete) or `progress === undefined`, show only the file icon.
|
|
105
|
+
- `secondary.error === true` — the metadata text (e.g., upload error message) must be red, not the normal secondary color.
|
|
106
|
+
- `menuIconOverride$` replaces the menu entirely — do not render `<MoreVertIcon>` when an override is provided.
|
|
107
|
+
- `actions` may be empty — if empty and no override provided, do not render the actions button at all.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## SummaryList
|
|
112
|
+
|
|
113
|
+
### Props
|
|
114
|
+
|
|
115
|
+
| Prop | Type | Required | Description |
|
|
116
|
+
|------|------|----------|-------------|
|
|
117
|
+
| `arItems$` | `any[]` | Yes | Array of item objects (same shape as `SummaryItem`'s `arItems$`) |
|
|
118
|
+
| `menuIconOverride$` | `string` | No | Passed to every `SummaryItem` |
|
|
119
|
+
| `menuIconOverrideAction$` | `any` | No | Passed to every `SummaryItem` |
|
|
120
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
121
|
+
|
|
122
|
+
### Behavioral Contract
|
|
123
|
+
|
|
124
|
+
```tsx
|
|
125
|
+
const SummaryItemComp = getComponentFromRegistry('SummaryItem');
|
|
126
|
+
|
|
127
|
+
return (
|
|
128
|
+
<div>
|
|
129
|
+
{arItems$.map((item, i) => (
|
|
130
|
+
<SummaryItemComp
|
|
131
|
+
key={item.id || i}
|
|
132
|
+
arItems$={item}
|
|
133
|
+
menuIconOverride$={menuIconOverride$}
|
|
134
|
+
menuIconOverrideAction$={menuIconOverrideAction$}
|
|
135
|
+
getPConnect={getPConnect}
|
|
136
|
+
/>
|
|
137
|
+
))}
|
|
138
|
+
</div>
|
|
139
|
+
);
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
No state, no data fetching — purely a mapping wrapper.
|
|
143
|
+
|
|
144
|
+
## Dependencies
|
|
145
|
+
|
|
146
|
+
- **SummaryItem:** MUI `<IconButton>`, `<Menu>`, `<MenuItem>`, MUI Icons `<MoreVertIcon>`, utils helper for icon path resolution
|
|
147
|
+
- **SummaryList:** `getComponentFromRegistry('SummaryItem')` — resolves the item component dynamically
|
|
148
|
+
|
|
149
|
+
## Design System Mapping
|
|
150
|
+
|
|
151
|
+
**UI control type:** File/link item row with icon, name, metadata, and action menu.
|
|
152
|
+
|
|
153
|
+
Listed design systems are examples only.
|
|
154
|
+
|
|
155
|
+
| Design System | Row Layout | Action Menu |
|
|
156
|
+
|---|---|---|
|
|
157
|
+
| Default (CSS only) | `<div>` flexbox row | `<button>` + custom dropdown |
|
|
158
|
+
| MUI | `<ListItem>` or `<Box display='flex'>` | `<IconButton>` + `<Menu>/<MenuItem>` |
|
|
159
|
+
| Ant Design | `<List.Item>` | `<Dropdown menu={{ items }}>` |
|
|
160
|
+
| Chakra UI | `<HStack>` | `<Menu>/<MenuButton>/<MenuList>` |
|
|
161
|
+
| Shadcn/ui | `<div>` flexbox | `<DropdownMenu>` |
|
|
162
|
+
|
|
163
|
+
When implementing in a specific design system:
|
|
164
|
+
- `menuIconOverride$` completely replaces the standard `⋮` menu — check for it before rendering the actions area
|
|
165
|
+
- `type === 'URL'` must render the name as a clickable link (not plain text)
|
|
166
|
+
- `secondary.error` is a boolean — apply error styling to the `secondary.text` when `true`
|
|
167
|
+
- `SummaryList` is purely compositional — no logic beyond mapping items to `SummaryItem`
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Skill: ToDo
|
|
2
|
+
|
|
3
|
+
Assignment worklist widget. Displays the current user's pending assignments with expand/collapse, click-to-open, priority indicators, badge counts, responsive layout, and snackbar error notifications.
|
|
4
|
+
|
|
5
|
+
> **Prerequisite skill:** [`widget-components.md`](../widget-components.md) — covers architecture, props interface, data-fetching patterns, and registration conventions common to ALL widget components.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Component Purpose
|
|
10
|
+
|
|
11
|
+
Renders a compact to-do / worklist panel showing the user's pending assignments. Shows the top 3 items by default with a "Show more" / "Show less" toggle. Supports two modes: `worklist` (personal workbasket) and `todo` (case-level assignments). Clicking an item opens the assignment. A badge in the card header shows the total count.
|
|
12
|
+
|
|
13
|
+
## Pega Metadata
|
|
14
|
+
|
|
15
|
+
- **Registration key:** `Todo` (note: lowercase `o` in the key; file is `ToDo.tsx`)
|
|
16
|
+
- **Category:** Widget — assignment / action
|
|
17
|
+
- **Extends:** `PConnProps`
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| Prop | Type | Required | Description |
|
|
22
|
+
|------|------|----------|-------------|
|
|
23
|
+
| `datasource` | `any` | No | Array of assignments passed directly (used in `todo` type). If provided, skips the data page fetch |
|
|
24
|
+
| `myWorkList` | `any` | No | Work list config object `{ datapage: string, fields: [...] }` — for `worklist` type |
|
|
25
|
+
| `caseInfoID` | `string` | No | Case ID to filter assignments (used in `todo` type) |
|
|
26
|
+
| `headerText` | `string` | No | Widget title. Default: `"To do"` |
|
|
27
|
+
| `itemKey` | `string` | No | Field key (reserved, currently unused) |
|
|
28
|
+
| `showTodoList` | `boolean` | No | Whether to show the assignment list. Default `true` |
|
|
29
|
+
| `type` | `string` | No | `'worklist'` (personal work) or `'todo'` (case-level). Default `'worklist'` |
|
|
30
|
+
| `context` | `string` | No | Context name for API calls. Falls back to `pConn.getContextName()` |
|
|
31
|
+
| `isConfirm` | `boolean` | No | Confirmation mode — adjusts rendering for post-submit confirmation view |
|
|
32
|
+
| `getPConnect` | `function` | Yes | PConnect getter |
|
|
33
|
+
|
|
34
|
+
## Behavioral Contract
|
|
35
|
+
|
|
36
|
+
### Data Source Resolution
|
|
37
|
+
|
|
38
|
+
**`type === 'todo'` (case-level):**
|
|
39
|
+
- Use `datasource` prop directly (array of assignment objects).
|
|
40
|
+
- `caseInfoID` is used to scope the assignments.
|
|
41
|
+
|
|
42
|
+
**`type === 'worklist'` (personal work):**
|
|
43
|
+
- Fetch from `myWorkList.datapage` (e.g., `D_WorkList`) via:
|
|
44
|
+
```
|
|
45
|
+
PCore.getDataPageUtils().getDataAsync(
|
|
46
|
+
myWorkList.datapage,
|
|
47
|
+
context,
|
|
48
|
+
{},
|
|
49
|
+
{ pageNumber: 1, pageSize: 50 },
|
|
50
|
+
{ select: myWorkList.fields },
|
|
51
|
+
{ invalidateCache: true }
|
|
52
|
+
)
|
|
53
|
+
```
|
|
54
|
+
- Map the response to assignment objects.
|
|
55
|
+
|
|
56
|
+
### Top 3 + Show More
|
|
57
|
+
|
|
58
|
+
- `showCount` state: default `3`.
|
|
59
|
+
- Render only `assignments.slice(0, showCount)`.
|
|
60
|
+
- If `assignments.length > 3`:
|
|
61
|
+
- Show a `"Show more"` button → sets `showCount = assignments.length`.
|
|
62
|
+
- When expanded: show `"Show less"` button → sets `showCount = 3`.
|
|
63
|
+
|
|
64
|
+
### Badge Count
|
|
65
|
+
|
|
66
|
+
- Render a `<Badge badgeContent={assignments.length}>` on the card header or alongside the title.
|
|
67
|
+
- Badge shows the total count of assignments, not the currently-visible count.
|
|
68
|
+
|
|
69
|
+
### Open Assignment
|
|
70
|
+
|
|
71
|
+
On item click:
|
|
72
|
+
```typescript
|
|
73
|
+
pConn.getActionsApi().openAssignment(
|
|
74
|
+
assignment.pxRefObjectKey, // case key
|
|
75
|
+
assignment.pxRefObjectClass, // class name
|
|
76
|
+
{
|
|
77
|
+
containerName: pConn.getContainerName() || PCore.getConstants().APP.APP,
|
|
78
|
+
channelName: ''
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Assignment Item Rendering
|
|
84
|
+
|
|
85
|
+
For each assignment, show:
|
|
86
|
+
- **Avatar:** Circle with user initials (derived from `pConn.getContextObject?.().pyLabel` or operator name).
|
|
87
|
+
- **Name/title:** `assignment.pyLabel` — the assignment task name.
|
|
88
|
+
- **Status badge (worklist only):** `assignment.pyStatusWork` — colored status pill.
|
|
89
|
+
- **Priority/urgency:** `assignment.pyUrgencyWork` — urgency level indicator.
|
|
90
|
+
- **Child case indicator:** If `assignment.isChild === true`, show an indent or nested indicator.
|
|
91
|
+
- **Arrow icon:** Right-pointing arrow (`<ArrowForwardIosOutlinedIcon>`) indicating clickable.
|
|
92
|
+
|
|
93
|
+
### Responsive Layout
|
|
94
|
+
|
|
95
|
+
Use `useMediaQuery(theme.breakpoints.down('sm'))` (MUI) to detect mobile:
|
|
96
|
+
- **Desktop:** Show avatar, name, status, priority, and arrow in a horizontal row.
|
|
97
|
+
- **Mobile:** Stack or truncate elements for narrow display.
|
|
98
|
+
|
|
99
|
+
### `canPerform` Permission Check
|
|
100
|
+
|
|
101
|
+
If an assignment has `canPerform === false`, render it as non-clickable (greyed out, no onClick handler).
|
|
102
|
+
|
|
103
|
+
### Snackbar Error
|
|
104
|
+
|
|
105
|
+
- On `openAssignment` failure, catch the error and show a `<Snackbar>` with the error message.
|
|
106
|
+
- Auto-hide after 3000ms.
|
|
107
|
+
- `<IconButton>` (`<CloseIcon>`) to manually dismiss.
|
|
108
|
+
|
|
109
|
+
### Operator Avatar Initials
|
|
110
|
+
|
|
111
|
+
Extract initials from `PCore.getEnvironmentInfo().getOperatorName()`:
|
|
112
|
+
```typescript
|
|
113
|
+
const initials = operatorName
|
|
114
|
+
.split(' ')
|
|
115
|
+
.map(w => w[0])
|
|
116
|
+
.join('')
|
|
117
|
+
.substring(0, 2)
|
|
118
|
+
.toUpperCase();
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Visual Specifications
|
|
122
|
+
|
|
123
|
+
### Card Layout
|
|
124
|
+
|
|
125
|
+
| Element | Description |
|
|
126
|
+
|---------|-------------|
|
|
127
|
+
| Card header | `headerText` (default `"To do"`) + badge with count |
|
|
128
|
+
| Assignment rows | Up to `showCount` items |
|
|
129
|
+
| Show more/less button | Below the last visible item |
|
|
130
|
+
|
|
131
|
+
### Assignment Row
|
|
132
|
+
|
|
133
|
+
| Element | Desktop | Mobile |
|
|
134
|
+
|---------|---------|--------|
|
|
135
|
+
| Avatar circle | Shown | Shown |
|
|
136
|
+
| Task name | Full text | Truncated |
|
|
137
|
+
| Status badge | Shown | Hidden or small |
|
|
138
|
+
| Priority indicator | Shown | Simplified |
|
|
139
|
+
| Arrow icon | Shown | Shown |
|
|
140
|
+
|
|
141
|
+
**CSS-only implementation notes:**
|
|
142
|
+
- Card: standard card layout.
|
|
143
|
+
- Assignment row: `display: flex; align-items: center; gap: 0.75rem; padding: 10px 0; cursor: pointer; border-bottom: 1px solid var(--divider-color)`.
|
|
144
|
+
- Avatar: `width: 36px; height: 36px; border-radius: 50%; background: var(--avatar-bg); display: flex; align-items: center; justify-content: center; font-size: 0.875rem; font-weight: 600`.
|
|
145
|
+
- Status badge: `padding: 2px 6px; border-radius: 10px; font-size: 0.75rem; background: var(--status-bg-color)`.
|
|
146
|
+
- Priority: `font-size: 0.75rem; color: var(--secondary-text-color)`.
|
|
147
|
+
- Arrow: `margin-left: auto; color: var(--secondary-text-color)`.
|
|
148
|
+
- Non-clickable (canPerform=false): `opacity: 0.5; cursor: not-allowed`.
|
|
149
|
+
- Show more button: `width: 100%; text-align: center; padding: 8px; color: var(--app-primary-color)`.
|
|
150
|
+
|
|
151
|
+
## Edge Cases & Special Logic
|
|
152
|
+
|
|
153
|
+
- `type` defaults to `'worklist'` — handle the fallback gracefully if `type` is undefined.
|
|
154
|
+
- `datasource` prop vs fetch: if `datasource` is provided (non-empty), skip the data page fetch entirely.
|
|
155
|
+
- `myWorkList` may be undefined for `todo` type — do not attempt a fetch if it's missing.
|
|
156
|
+
- `showTodoList === false` — render only the card header (with badge count) and hide the list body.
|
|
157
|
+
- `isConfirm === true` — used in the Confirmation template context; may adjust layout to hide certain elements (e.g., hide status badge, show simpler view).
|
|
158
|
+
- Empty assignments — show a `"No tasks"` or `"You're all caught up!"` empty state message.
|
|
159
|
+
- `canPerform` check: if `false`, disable click and show cursor `not-allowed`. Do not open the assignment.
|
|
160
|
+
- Container name fallback: `pConn.getContainerName() || PCore.getConstants().APP.APP` — always provide a container name to `openAssignment`.
|
|
161
|
+
|
|
162
|
+
## Dependencies
|
|
163
|
+
|
|
164
|
+
- `PCore.getDataPageUtils().getDataAsync()` — worklist data page fetch
|
|
165
|
+
- `PCore.getEnvironmentInfo()` — operator name for avatar initials
|
|
166
|
+
- `PCore.getConstants()` — CASE_INFO, WORK_BASKET, TODO, APP constants
|
|
167
|
+
- `PCore.getLocaleUtils()` — assignment label localization
|
|
168
|
+
- `pConn.getActionsApi().openAssignment()` — opens the selected assignment
|
|
169
|
+
- MUI: `<Card>`, `<CardContent>`, `<CardHeader>`, `<Avatar>`, `<Typography>`, `<Badge>`, `<List>`, `<ListItem>`, `<ListItemText>`, `<Button>`, `<Snackbar>`, `<IconButton>`, `useMediaQuery`, `useTheme`
|
|
170
|
+
- MUI Icons: `<CloseIcon>`, `<ArrowForwardIosOutlinedIcon>`
|
|
171
|
+
|
|
172
|
+
## Design System Mapping
|
|
173
|
+
|
|
174
|
+
**UI control type:** Assignment worklist widget with expand/collapse, click-to-open, badge count, and error toast.
|
|
175
|
+
|
|
176
|
+
Listed design systems are examples only.
|
|
177
|
+
|
|
178
|
+
| Design System | Card | List | Badge | Snackbar |
|
|
179
|
+
|---|---|---|---|---|
|
|
180
|
+
| Default (CSS only) | `<div>` card | `<ul>/<li>` | CSS counter badge | Custom toast overlay |
|
|
181
|
+
| MUI | `<Card>` + `<CardHeader>` | `<List>/<ListItem>` | `<Badge>` | `<Snackbar>/<Alert>` |
|
|
182
|
+
| Ant Design | `<Card>` | `<List>` | `<Badge count={N}>` | `message.error()` |
|
|
183
|
+
| Chakra UI | `<Card>` | `<VStack>` | `<Badge>` | `useToast()` |
|
|
184
|
+
| Shadcn/ui | `<Card>` | `<ul>/<li>` | Custom badge | `<Toaster>` + `toast.error()` |
|
|
185
|
+
|
|
186
|
+
When implementing in a specific design system:
|
|
187
|
+
- Show top 3 items by default — `showCount` state controls slice; "Show more/less" toggles between 3 and full length
|
|
188
|
+
- `canPerform === false` must make the row non-clickable — check this before calling `openAssignment`
|
|
189
|
+
- `type === 'worklist'` fetches from a data page; `type === 'todo'` uses the `datasource` prop — both paths must be implemented
|
|
190
|
+
- Operator initials for the avatar must be derived from `PCore.getEnvironmentInfo().getOperatorName()`
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Agents
|
|
2
|
+
|
|
3
|
+
AI assistant guide for React SDK Reference application.
|
|
4
|
+
|
|
5
|
+
For complete rules, see [`.github/copilot-instructions.md`](.github/copilot-instructions.md).
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
This is a **reference app** for Pega Infinity SDK. Customers clone it and replace the MUI-based sample components with their own design system. The SDK wiring (`@pega/sdk-react`, bootstrap, PConnect bridge) is infrastructure — only the UI layer is meant to be customized.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Replaceable Component Directories
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
src/components/
|
|
19
|
+
├── field/ ← Form inputs (TextInput, Dropdown, Date, etc.)
|
|
20
|
+
├── template/ ← Layouts (OneColumn, TwoColumn, Details, etc.)
|
|
21
|
+
├── widget/ ← Data widgets (ToDo, Attachment, CaseHistory, etc.)
|
|
22
|
+
└── designSystemExtension/ ← Extended UI (AlertBanner, FieldGroup, etc.)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Do Not Modify
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
src/MashupApp.tsx ← Bootstrap/auth flow
|
|
29
|
+
src/components/component-map.ts ← Only add/remove entries, don't restructure
|
|
30
|
+
src/components/infra/ ← SDK infrastructure
|
|
31
|
+
src/components/helpers/ ← Shared utilities (event-utils, formatters)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Quick Commands
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm run dev # Vite dev server (port 3500)
|
|
40
|
+
npm run build # Production build
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Key Pattern
|
|
46
|
+
|
|
47
|
+
Every replaceable component receives `getPConnect()` prop → extracts field state → renders UI → calls `handleEvent(actions, 'changeNblur', propName, value)` on blur to push changes back to Pega.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Reference
|
|
52
|
+
|
|
53
|
+
| Topic | File |
|
|
54
|
+
|-------|------|
|
|
55
|
+
| Full instructions | `.github/copilot-instructions.md` |
|
|
56
|
+
| Field component skill | `.github/skills/field-components.md` |
|
|
57
|
+
| Template component skill | `.github/skills/template-components.md` |
|
|
58
|
+
| Widget component skill | `.github/skills/widget-components.md` |
|
|
59
|
+
| DSE component skill | `.github/skills/design-system-extension.md` |
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M41.8594 7.18437C37.0703 2.39531 31.3234 0 24.5219 0C17.7203 0 11.9734 2.39531 7.18437 7.18437C2.39531 11.9734 0 17.7203 0 24.5219C0 27.0125 0.382812 29.5984 1.24531 32.2812L1.4375 32.0891L11.7828 21.8406C12.2609 21.3625 12.6453 21.3625 13.1234 21.8406L20.4031 29.025L33.7172 15.7109H20.4031C19.7328 15.7109 19.35 15.4234 19.35 14.7531C19.35 13.9875 19.7328 13.6031 20.4031 13.6031H36.0156C36.1109 13.5078 36.3031 13.6031 36.5906 13.6984C36.8781 13.7937 37.0688 14.0812 37.1656 14.3687C37.2609 14.4641 37.2609 14.6562 37.2609 14.9438V30.3656C37.2609 31.1313 36.9734 31.5156 36.3031 31.5156C35.6328 31.5156 35.3453 31.1328 35.3453 30.3656V17.0516L21.0734 31.2281C20.5953 31.7062 20.1156 31.7062 19.6359 31.2281L12.4516 24.0438L2.10625 34.2922C3.92656 38.6984 6.89531 42.2422 11.0141 44.925C15.0375 47.7031 19.5391 49.0438 24.5203 49.0438C31.3203 49.0438 37.0687 46.6484 41.8578 41.8594C46.6469 37.0703 49.0422 31.3234 49.0422 24.5219C49.0422 17.7203 46.6469 11.9734 41.8578 7.18437H41.8594Z" fill="#C70BB5"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M49.0422 12.9078V13.1L43.1031 34.7469C43.0078 35.225 42.7203 35.4172 42.2406 35.4172V35.4172L19.3484 37.1406L18.2953 39.3438H40.2297C40.9 39.3438 41.1875 39.6313 41.1875 40.3016V40.3016C41.1875 40.9719 40.9 41.3547 40.2297 41.3547V41.3547H16.6672C15.9969 41.3547 15.7094 40.9719 15.7094 40.3016V40.3016C15.7094 40.1094 15.7094 40.0141 15.8047 39.9188V39.9188L17.05 37.3328L16.7625 37.4281H16.6672C16.1891 37.4281 15.8047 37.1406 15.7094 36.6625V36.6625L8.2375 6.68125C8.14219 6.20313 7.75937 6.01094 7.27969 6.01094V6.01094H0.957812C0.2875 6.01094 0 5.72344 0 5.05313V5.05313C0 4.38281 0.2875 4 0.957812 4V4H7.27969C8.71719 4 9.675 4.76562 10.1531 6.20312V6.20312L11.5906 11.95C11.5906 11.8547 11.6859 11.8547 11.7828 11.8547V11.8547H48.0859C48.7563 11.8547 49.0438 12.2375 49.0438 12.9078V12.9078H49.0422ZM19.6355 43.272V43.272C19.0605 43.272 18.5824 43.4642 18.198 43.847C17.8137 44.2298 17.623 44.7095 17.623 45.1876V45.1876C17.623 45.7626 17.8152 46.2407 18.198 46.6251C18.5809 47.0095 19.0605 47.2001 19.6355 47.2001V47.2001C20.1137 47.2001 20.5934 47.0079 20.9762 46.6251C21.359 46.2423 21.5512 45.7626 21.5512 45.1876V45.1876C21.5512 44.7095 21.359 44.2298 20.9762 43.847C20.5934 43.4642 20.1137 43.272 19.6355 43.272ZM38.6969 43.8453C38.2188 43.4625 37.7391 43.2703 37.2594 43.2703C36.7797 43.2703 36.3016 43.4625 35.9187 43.8453C35.5359 44.2281 35.3438 44.7078 35.3438 45.1859V45.1859C35.3438 45.7609 35.5359 46.239 35.9187 46.6234C36.3016 47.0078 36.7812 47.1984 37.2594 47.1984C37.7375 47.1984 38.2172 47.0062 38.6969 46.6234C39.0797 46.2406 39.2719 45.7609 39.2719 45.1859V45.1859C39.2719 44.7078 39.0797 44.2281 38.6969 43.8453Z" fill="#C70BB5"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.5918 42.9016V47.0203H30.8402V42.9016H20.5918ZM8.14141 24.5094V34.7578C8.14141 35.4281 7.85391 35.7156 7.18359 35.7156H3.06484C2.39453 35.7156 2.01172 35.4281 2.01172 34.7578V24.5094C2.01172 23.8391 2.39453 23.4562 3.06484 23.4562H7.18359C7.85391 23.4562 8.14141 23.8391 8.14141 24.5094ZM8.14062 21.6359H2.01094C0.670312 22.114 0 23.0734 0 24.5094V34.7578C0 35.6203 0.2875 36.2906 0.957812 36.8656C1.53281 37.5359 2.20312 37.8234 3.06562 37.8234H7.18437C8.04688 37.8234 8.71719 37.5359 9.3875 36.8656C9.9625 36.2906 10.25 35.6203 10.25 34.7578V24.5094C10.25 23.0719 9.57969 22.114 8.14219 21.6359H8.14062ZM44.9227 24.5094V34.7578C44.9227 35.4281 44.6352 35.7156 43.9648 35.7156H39.8461C39.1758 35.7156 38.793 35.4281 38.793 34.7578V24.5094C38.793 23.8391 39.1758 23.4562 39.8461 23.4562H43.9648C44.6352 23.4562 44.9227 23.8391 44.9227 24.5094ZM45.0168 21.6359H38.8871C37.4496 22.114 36.7793 23.0734 36.7793 24.5094V34.7578C36.7793 35.6203 37.0668 36.2906 37.7371 36.8656C38.3121 37.5359 38.9824 37.8234 39.8449 37.8234H43.9637C44.8262 37.8234 45.4965 37.5359 46.1668 36.8656C46.7418 36.2906 47.0293 35.6203 47.0293 34.7578V24.5094C47.0293 23.1687 46.359 22.2109 45.0184 21.6359H45.0168ZM2.00938 22.4031H4.11719C4.40469 17.3266 6.41563 12.9203 10.1516 9.37656C13.8875 5.83281 18.2938 4.10781 23.4656 4.10781C28.6375 4.10781 33.0437 5.83125 36.7797 9.37656C40.5156 12.9219 42.5266 17.3266 42.8141 22.4031H44.825C44.5375 16.7516 42.3344 11.8672 38.2156 7.93906C34.0969 4.01094 29.1156 2 23.4641 2C17.7172 2 12.8313 4.01094 8.7125 7.93906C4.59375 11.8672 2.29531 16.7516 2.00781 22.4031H2.00938ZM29.1168 49.0313H28.6387H24.5199C23.8496 49.0313 23.4668 48.6484 23.4668 47.9781C23.4668 47.3078 23.8496 46.925 24.5199 46.925H28.6387C37.7387 46.925 43.2934 45.8719 45.4965 43.6688C46.5496 42.7109 47.0293 41.4656 47.0293 39.8375V29.5891C47.0293 28.9188 47.3168 28.5359 47.9871 28.5359C48.6574 28.5359 49.0402 28.9188 49.0402 29.5891V39.8375C49.0402 42.0406 48.3699 43.7641 47.0293 45.1063C44.348 47.6922 38.409 49.0328 29.1168 49.0328V49.0313Z" fill="#C70BB5"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.7766 4H34.7C35.5625 4 36.2328 4.2875 36.7109 4.76562C37.1891 5.24375 37.4766 5.81875 37.4766 6.48906V42.6953C37.4766 43.3656 37.1891 43.9406 36.7109 44.4188C36.2328 44.8969 35.5609 45.1844 34.7 45.1844H14.7766C13.9141 45.1844 13.2437 44.8969 12.7656 44.4188C12.2875 43.9406 12 43.3656 12 42.6953V6.48906C12 5.81875 12.2875 5.24375 12.7656 4.76562C13.2437 4.2875 13.9156 4 14.7766 4C14.7766 4 14.7766 4 14.7766 4ZM33.55 7.92656L29.6234 8.02187C29.6234 8.5 29.4312 8.97969 29.0484 9.26719C28.6656 9.65 28.1859 9.84219 27.7078 9.84219H21.7688C21.2906 9.84219 20.8109 9.65 20.4281 9.26719C20.0453 8.97969 19.8531 8.50156 19.8531 8.02187L15.9266 7.92656C15.2562 7.92656 14.9688 8.21406 14.9688 8.88437V41.2594C14.9688 41.9297 15.2562 42.2172 15.9266 42.2172H33.5516C34.2219 42.2172 34.5094 41.9297 34.5094 41.2594V8.88437C34.5094 8.21406 34.2219 7.92656 33.5516 7.92656H33.55ZM26.7508 35.4172H22.7273C22.057 35.4172 21.7695 35.7047 21.7695 36.2797V36.375C21.7695 37.0453 22.057 37.3328 22.7273 37.3328H26.7508C27.4211 37.3328 27.7086 37.0453 27.7086 36.375V36.2797C27.7086 35.7047 27.4211 35.4172 26.7508 35.4172Z" fill="#C70BB5"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M49.0414 9.92812V36.3656C49.0414 37.0359 48.7539 37.4188 48.0836 37.4188C47.4133 37.4188 47.1258 37.0359 47.1258 36.3656V9.92812C47.1258 9.45 46.9336 8.97031 46.5508 8.49062C46.0727 8.10781 45.593 7.91562 45.1133 7.91562H4.88359C4.21328 7.91562 3.92578 7.62812 3.92578 6.95781C3.92578 6.2875 4.21328 6 4.88359 6H45.1133C46.1664 6 47.1242 6.38281 47.8914 7.15C48.6586 7.91719 49.0414 8.87344 49.0414 9.92812ZM45.1141 11.8438V39.3344C45.1141 39.8125 44.9219 40.2922 44.5391 40.675C44.1562 41.1531 43.6766 41.3453 43.1984 41.3453H1.91562C1.4375 41.3453 0.957812 41.1531 0.575 40.675C0.192187 40.2922 0 39.8125 0 39.3344V11.8438C0 11.3656 0.192187 10.8859 0.575 10.5031C0.957812 10.1203 1.4375 9.92813 1.91562 9.92813H43.1984C43.6766 9.92813 44.1562 10.1203 44.5391 10.5031C44.9219 10.8859 45.1141 11.3656 45.1141 11.8438ZM9.76797 16.825C9.76797 16.1547 9.48047 15.7719 8.81016 15.7719H4.88359C4.21328 15.7719 3.92578 16.1547 3.92578 16.825C3.92578 17.4953 4.21328 17.7828 4.88359 17.7828H8.81016C9.48047 17.7828 9.76797 17.4953 9.76797 16.825ZM29.4043 25.5422V25.6375V25.1594C29.4043 23.1484 28.734 21.5203 27.4887 20.0828C26.148 18.6453 24.5199 17.8797 22.6043 17.7844C20.5934 17.8797 18.9652 18.6469 17.7199 20.0828C16.3793 21.5203 15.709 23.1484 15.709 25.1594V25.6375V26.0203C15.709 28.0312 16.3793 29.6594 17.7199 31.0969C18.9652 32.5344 20.5934 33.3953 22.509 33.4922C24.5199 33.3969 26.1496 32.5344 27.4902 31.0969C28.7355 29.6594 29.4059 28.0312 29.4059 26.0203V25.5422H29.4043ZM40.2281 35.4078C40.8984 35.4078 41.1859 35.1203 41.1859 34.45C41.1859 33.7797 40.8984 33.4922 40.2281 33.4922H36.3016C35.6312 33.4922 35.3438 33.7797 35.3438 34.45C35.3438 35.1203 35.6312 35.4078 36.3016 35.4078H40.2281Z" fill="#C70BB5"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M47.1297 25.5656H35.3484C34.7734 25.5656 34.2953 25.7578 33.9109 26.1406C33.5266 26.5234 33.3359 27.0031 33.3359 27.4812V47.1172C33.3359 47.5953 33.5281 48.075 33.9109 48.4578C34.2938 48.8406 34.7734 49.0328 35.3484 49.0328H47.1297C47.6078 49.0328 48.0875 48.8406 48.4703 48.4578C48.8531 48.075 49.0453 47.5953 49.0453 47.1172V27.4812C49.0453 27.0031 48.8531 26.5234 48.4703 26.1406C48.0875 25.7578 47.6078 25.5656 47.1297 25.5656ZM42.1488 45.2015H40.2332C39.5629 45.2015 39.2754 44.8187 39.2754 44.1484C39.2754 43.4781 39.5629 43.1906 40.2332 43.1906H42.1488C42.8191 43.1906 43.202 43.4781 43.202 44.1484C43.202 44.8187 42.8191 45.2015 42.1488 45.2015ZM1.91875 31.4078V4.97031C1.91875 4.3 2.30156 3.91719 2.97187 3.91719H42.1484C42.8187 3.91719 43.2016 4.3 43.2016 4.97031V22.5953C43.2016 23.2656 43.4891 23.5531 44.1594 23.5531C44.8297 23.5531 45.1172 23.2656 45.1172 22.5953V4.97031C45.1172 4.10781 44.8297 3.4375 44.2547 2.8625C43.6797 2.2875 43.0094 2 42.1469 2H2.97031C2.10781 2 1.4375 2.2875 0.8625 2.8625C0.2875 3.4375 0 4.10781 0 4.97031V38.3031C0 39.1656 0.2875 39.8359 0.8625 40.4109C1.4375 40.9859 2.10781 41.2734 2.97031 41.2734H17.625V47.1156H14.7516C14.0812 47.1156 13.6984 47.4031 13.6984 48.0734C13.6984 48.7437 14.0812 49.0312 14.7516 49.0312H30.3641C31.0344 49.0312 31.4172 48.7437 31.4172 48.0734C31.4172 47.4031 31.0344 47.1156 30.3641 47.1156H27.4906V41.2734H31.4172V31.4078H1.91562H1.91875ZM19.6387 47.1172V41.275H25.4809V47.1172H19.6387Z" fill="#C70BB5"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>Pega SDK React Portal — @pega/sdk-react</title>
|
|
7
|
+
<base href="/" />
|
|
8
|
+
<style>
|
|
9
|
+
body {
|
|
10
|
+
margin: 0;
|
|
11
|
+
font-family:
|
|
12
|
+
system-ui,
|
|
13
|
+
-apple-system,
|
|
14
|
+
sans-serif;
|
|
15
|
+
}
|
|
16
|
+
.loading-container {
|
|
17
|
+
display: flex;
|
|
18
|
+
justify-content: center;
|
|
19
|
+
align-items: center;
|
|
20
|
+
height: 100vh;
|
|
21
|
+
}
|
|
22
|
+
.loading-text {
|
|
23
|
+
font-size: 18px;
|
|
24
|
+
color: #555;
|
|
25
|
+
}
|
|
26
|
+
</style>
|
|
27
|
+
</head>
|
|
28
|
+
<body>
|
|
29
|
+
<div id="outlet" style="width: 100%"></div>
|
|
30
|
+
<script
|
|
31
|
+
src="node_modules/@pega/constellationjs/dist/constellation-core-web.js"
|
|
32
|
+
type="text/javascript"
|
|
33
|
+
></script>
|
|
34
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
35
|
+
</body>
|
|
36
|
+
</html>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pega/react-sdk-reference",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "vite",
|
|
8
|
+
"build": "vite build",
|
|
9
|
+
"preview": "vite preview"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@emotion/react": "^11.14.0",
|
|
13
|
+
"@emotion/styled": "^11.14.1",
|
|
14
|
+
"@mui/icons-material": "^9.0.0",
|
|
15
|
+
"@mui/lab": "^9.0.0-beta.3",
|
|
16
|
+
"@mui/material": "^9.0.0",
|
|
17
|
+
"@mui/styles": "^6.5.0",
|
|
18
|
+
"@mui/x-date-pickers": "^9.2.0",
|
|
19
|
+
"@pega/auth": "file:pega-auth-0.2.42.tgz",
|
|
20
|
+
"@pega/constellationjs": "file:pega-constellationjs-0.26.2.tgz",
|
|
21
|
+
"@pega/sdk-react": "^0.1.0",
|
|
22
|
+
"@react-google-maps/api": "^2.20.8",
|
|
23
|
+
"@tinymce/tinymce-react": "^6.3.0",
|
|
24
|
+
"clsx": "^2.1.1",
|
|
25
|
+
"dayjs": "^1.11.20",
|
|
26
|
+
"downloadjs": "^1.4.7",
|
|
27
|
+
"fast-deep-equal": "^3.1.3",
|
|
28
|
+
"lodash.clonedeep": "^4.5.0",
|
|
29
|
+
"mui-tel-input": "^11.0.0",
|
|
30
|
+
"react": "^18.3.1",
|
|
31
|
+
"react-datepicker": "^9.1.0",
|
|
32
|
+
"react-dom": "^18.3.1",
|
|
33
|
+
"react-number-format": "^5.4.5",
|
|
34
|
+
"react-redux": "^9.3.0",
|
|
35
|
+
"react-router-dom": "^7.6.1",
|
|
36
|
+
"throttle-debounce": "^5.0.2"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@pega/pcore-pconnect-typedefs": "^4.1.0",
|
|
40
|
+
"@types/downloadjs": "^1.4.6",
|
|
41
|
+
"@types/lodash.clonedeep": "^4.5.9",
|
|
42
|
+
"@types/react": "^18.3.18",
|
|
43
|
+
"@types/react-datepicker": "^6.2.0",
|
|
44
|
+
"@types/react-dom": "^18.3.5",
|
|
45
|
+
"@types/react-redux": "^7.1.34",
|
|
46
|
+
"@types/throttle-debounce": "^5.0.2",
|
|
47
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
48
|
+
"typescript": "~5.8.2",
|
|
49
|
+
"vite": "^6.3.5",
|
|
50
|
+
"vite-plugin-static-copy": "^2.3.0"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"serverConfig": {
|
|
3
|
+
"infinityRestServerUrl": "https://lab-16027-us-east-1.internal.pegalabs.io/prweb",
|
|
4
|
+
"appAlias": "MediaCo",
|
|
5
|
+
"sdkContentServerUrl": "",
|
|
6
|
+
"appPortal": "MediaCoSelfService",
|
|
7
|
+
"appMashupCaseType": "DIXL-MediaCo-Work-NewService",
|
|
8
|
+
"excludePortals": [
|
|
9
|
+
"pxExpress",
|
|
10
|
+
"Developer",
|
|
11
|
+
"pxPredictionStudio",
|
|
12
|
+
"pxAdminStudio",
|
|
13
|
+
"pyCaseWorker",
|
|
14
|
+
"pyCaseManager7"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"authConfig": {
|
|
18
|
+
"authService": "pega",
|
|
19
|
+
"mashupClientId": "25795373220702300272",
|
|
20
|
+
"mashupUserIdentifier": "customer@mediaco",
|
|
21
|
+
"mashupPassword": "",
|
|
22
|
+
"portalClientId": "25795373220702300272",
|
|
23
|
+
"portalClientSecret": "",
|
|
24
|
+
"portalGrantType": ""
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Route, Routes } from 'react-router-dom';
|
|
2
|
+
import { MashupApp } from './MashupApp';
|
|
3
|
+
import { PortalApp } from './PortalApp';
|
|
4
|
+
|
|
5
|
+
function AppSelector() {
|
|
6
|
+
return (
|
|
7
|
+
<Routes>
|
|
8
|
+
<Route path='/portal' element={<PortalApp />} />
|
|
9
|
+
<Route path='/portal.html' element={<PortalApp />} />
|
|
10
|
+
<Route path='/embedded' element={<MashupApp />} />
|
|
11
|
+
<Route path='/embedded.html' element={<MashupApp />} />
|
|
12
|
+
<Route path='/' element={<MashupApp />} />
|
|
13
|
+
<Route path='*' element={<MashupApp />} />
|
|
14
|
+
</Routes>
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { AppSelector };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { styles } from './MashupApp.styles';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Generic Fallback Component.
|
|
6
|
+
* Renders any PConnect node as a styled block showing its type + props + children.
|
|
7
|
+
* In production, you'd replace this with real component implementations.
|
|
8
|
+
*/
|
|
9
|
+
function FallbackComponent({
|
|
10
|
+
componentName,
|
|
11
|
+
children,
|
|
12
|
+
...props
|
|
13
|
+
}: {
|
|
14
|
+
componentName?: string;
|
|
15
|
+
children?: ReactNode;
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
}) {
|
|
18
|
+
const displayProps = Object.fromEntries(
|
|
19
|
+
Object.entries(props).filter(
|
|
20
|
+
([k]) =>
|
|
21
|
+
!['getPConnect', 'pConnect', 'fallback', 'componentRegistry'].includes(
|
|
22
|
+
k,
|
|
23
|
+
) && typeof props[k] !== 'function',
|
|
24
|
+
),
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
return (
|
|
28
|
+
<div style={styles.fallback.container}>
|
|
29
|
+
<div style={styles.fallback.label}>{componentName ?? 'Unknown'}</div>
|
|
30
|
+
{Object.keys(displayProps).length > 0 && (
|
|
31
|
+
<pre style={styles.fallback.props}>
|
|
32
|
+
{JSON.stringify(displayProps, null, 2)}
|
|
33
|
+
</pre>
|
|
34
|
+
)}
|
|
35
|
+
{children && <div style={styles.fallback.children}>{children}</div>}
|
|
36
|
+
</div>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { FallbackComponent };
|