@pega/sdk 0.0.2 → 0.0.4
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 +183 -183
- package/README.md +6 -6
- package/SECURITY.md +2 -1
- package/dist/index.js +14 -57
- package/package.json +7 -6
- package/templates/angular-sdk-reference/package.json +15 -15
- package/templates/angular-sdk-reference/tsconfig.json +2 -2
- package/templates/react-native-sdk-reference/App.tsx +2 -4
- package/templates/react-native-sdk-reference/package.json +6 -6
- package/templates/react-native-sdk-reference/tsconfig.json +2 -1
- package/templates/react-sdk-reference/.claude/instructions/component-map.md +38 -0
- package/templates/react-sdk-reference/.claude/instructions/dse-component.md +75 -0
- package/templates/react-sdk-reference/.claude/instructions/field-component.md +75 -0
- package/templates/react-sdk-reference/.claude/instructions/template-component.md +93 -0
- package/templates/react-sdk-reference/.claude/instructions/widget-component.md +88 -0
- package/templates/react-sdk-reference/.claude/prompts/add-component.md +152 -0
- package/templates/react-sdk-reference/.claude/prompts/component-manifest.json +193 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-all-components.md +158 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-dse-components.md +140 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-field-components.md +153 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-template-components.md +165 -0
- package/templates/react-sdk-reference/.claude/prompts/generate-widget-components.md +138 -0
- package/templates/react-sdk-reference/.claude/prompts/identify-components.md +105 -0
- package/templates/react-sdk-reference/.claude/prompts/replace-design-system.md +519 -0
- package/templates/react-sdk-reference/.claude/skills/component-contracts.md +140 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/AlertBanner.md +137 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Banner.md +152 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/CaseSummaryFields.md +159 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/DetailsFields.md +148 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroup.md +134 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldGroupList.md +113 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/FieldValueList.md +118 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Operator.md +155 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/Pulse.md +85 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/RichTextEditor.md +232 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension-skills/WssQuickCreate.md +137 -0
- package/templates/react-sdk-reference/.claude/skills/design-system-extension.md +291 -0
- package/templates/react-sdk-reference/.claude/skills/field-components.md +295 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/AutoComplete.md +113 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/CancelAlert.md +211 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Checkbox.md +175 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Currency.md +109 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Date.md +101 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/DateTime.md +106 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Decimal.md +99 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Dropdown.md +134 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Email.md +109 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Group.md +96 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Integer.md +88 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Location.md +145 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Multiselect.md +188 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/ObjectReference.md +173 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Percentage.md +93 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Phone.md +129 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/RadioButtons.md +167 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/RichText.md +149 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/ScalarList.md +134 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/SelectableCard.md +231 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/SemanticLink.md +155 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextArea.md +98 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextContent.md +117 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/TextInput.md +107 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/Time.md +89 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/URL.md +86 -0
- package/templates/react-sdk-reference/.claude/skills/field-skills/UserReference.md +203 -0
- package/templates/react-sdk-reference/.claude/skills/run-and-verify.md +70 -0
- package/templates/react-sdk-reference/.claude/skills/template-components.md +321 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/AdvancedSearch.md +150 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/AppShell.md +124 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/BannerPage.md +86 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseSummary.md +106 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseView.md +137 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/CaseViewActionsMenu.md +131 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/Confirmation.md +109 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DataReference.md +124 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultForm.md +104 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DefaultPage.md +112 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/Details.md +90 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsSubTabs.md +97 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsThreeColumn.md +80 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DetailsTwoColumn.md +80 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/DynamicTabs.md +106 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/FieldGroupTemplate.md +112 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/HierarchicalForm.md +116 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboard.md +108 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/InlineDashboardPage.md +82 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListPage.md +70 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/ListView.md +142 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/MultiReferenceReadOnly.md +82 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/NarrowWide.md +143 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/OneColumn.md +114 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/PromotedFilters.md +130 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/SelfServiceCaseView.md +142 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/SimpleTable.md +131 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/SingleReferenceReadOnly.md +108 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/SubTabs.md +82 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/TwoColumn.md +133 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/WideNarrow.md +152 -0
- package/templates/react-sdk-reference/.claude/skills/template-skills/WssNavBar.md +139 -0
- package/templates/react-sdk-reference/.claude/skills/widget-components.md +260 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/AppAnnouncement.md +84 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/Attachment.md +151 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/CaseHistory.md +110 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/FileUtility.md +206 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/Followers.md +103 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/QuickCreate.md +118 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/SummaryItem.md +169 -0
- package/templates/react-sdk-reference/.claude/skills/widget-skills/ToDo.md +198 -0
- package/templates/react-sdk-reference/.cursor/rules/component-map.mdrules +41 -0
- package/templates/react-sdk-reference/.cursor/rules/dse-component.mdrules +78 -0
- package/templates/react-sdk-reference/.cursor/rules/field-component.mdrules +74 -0
- package/templates/react-sdk-reference/.cursor/rules/pega-sdk.mdrules +247 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/add-component.mdrules +149 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/component-manifest.json +193 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-all-components.mdrules +154 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-dse-components.mdrules +131 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-field-components.mdrules +144 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-template-components.mdrules +156 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/generate-widget-components.mdrules +129 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/identify-components.mdrules +110 -0
- package/templates/react-sdk-reference/.cursor/rules/prompts/replace-design-system.mdrules +524 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/component-contracts.mdrules +145 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/AlertBanner.mdrules +140 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Banner.mdrules +154 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/CaseSummaryFields.mdrules +159 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/DetailsFields.mdrules +149 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroup.mdrules +136 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldGroupList.mdrules +116 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/FieldValueList.mdrules +120 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Operator.mdrules +154 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/Pulse.mdrules +88 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/RichTextEditor.mdrules +211 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension-skills/WssQuickCreate.mdrules +140 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/design-system-extension.mdrules +294 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-components.mdrules +299 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/AutoComplete.mdrules +117 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/CancelAlert.mdrules +208 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Checkbox.mdrules +163 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Currency.mdrules +111 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Date.mdrules +104 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/DateTime.mdrules +108 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Decimal.mdrules +103 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Dropdown.mdrules +119 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Email.mdrules +112 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Group.mdrules +95 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Integer.mdrules +92 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Location.mdrules +141 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Multiselect.mdrules +169 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ObjectReference.mdrules +169 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Percentage.mdrules +97 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Phone.mdrules +115 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RadioButtons.mdrules +151 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/RichText.mdrules +143 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/ScalarList.mdrules +129 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SelectableCard.mdrules +221 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/SemanticLink.mdrules +153 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextArea.mdrules +101 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextContent.mdrules +106 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/TextInput.mdrules +109 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/Time.mdrules +93 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/URL.mdrules +90 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/field-skills/UserReference.mdrules +185 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/run-and-verify.mdrules +73 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-components.mdrules +327 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AdvancedSearch.mdrules +149 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/AppShell.mdrules +127 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/BannerPage.mdrules +88 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseSummary.mdrules +105 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseView.mdrules +136 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/CaseViewActionsMenu.mdrules +131 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Confirmation.mdrules +112 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DataReference.mdrules +125 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultForm.mdrules +107 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DefaultPage.mdrules +115 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/Details.mdrules +93 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsSubTabs.mdrules +100 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsThreeColumn.mdrules +83 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DetailsTwoColumn.mdrules +83 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/DynamicTabs.mdrules +106 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/FieldGroupTemplate.mdrules +114 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/HierarchicalForm.mdrules +118 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboard.mdrules +109 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/InlineDashboardPage.mdrules +90 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListPage.mdrules +73 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/ListView.mdrules +144 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/MultiReferenceReadOnly.mdrules +85 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/NarrowWide.mdrules +146 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/OneColumn.mdrules +114 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/PromotedFilters.mdrules +129 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SelfServiceCaseView.mdrules +140 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SimpleTable.mdrules +132 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SingleReferenceReadOnly.mdrules +108 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/SubTabs.mdrules +84 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/TwoColumn.mdrules +136 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WideNarrow.mdrules +155 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/template-skills/WssNavBar.mdrules +140 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-components.mdrules +276 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/AppAnnouncement.mdrules +87 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Attachment.mdrules +151 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/CaseHistory.mdrules +112 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/FileUtility.mdrules +205 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/Followers.mdrules +104 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/QuickCreate.mdrules +119 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/SummaryItem.mdrules +172 -0
- package/templates/react-sdk-reference/.cursor/rules/skills/widget-skills/ToDo.mdrules +195 -0
- package/templates/react-sdk-reference/.cursor/rules/template-component.mdrules +95 -0
- package/templates/react-sdk-reference/.cursor/rules/widget-component.mdrules +90 -0
- package/templates/react-sdk-reference/.github/agents/implementation-expert.agent.md +135 -0
- package/templates/react-sdk-reference/.github/copilot-instructions.md +58 -0
- package/templates/react-sdk-reference/.github/instructions/component-map.instructions.md +2 -2
- package/templates/react-sdk-reference/.github/instructions/dse-component.instructions.md +1 -1
- package/templates/react-sdk-reference/.github/instructions/field-component.instructions.md +5 -1
- package/templates/react-sdk-reference/.github/instructions/template-component.instructions.md +3 -2
- package/templates/react-sdk-reference/.github/instructions/widget-component.instructions.md +2 -1
- package/templates/react-sdk-reference/.github/prompts/add-component.prompt.md +187 -16
- package/templates/react-sdk-reference/.github/prompts/component-manifest.json +165 -83
- package/templates/react-sdk-reference/.github/prompts/generate-all-components.prompt.md +411 -0
- package/templates/react-sdk-reference/.github/prompts/generate-dse-components.prompt.md +205 -0
- package/templates/react-sdk-reference/.github/prompts/generate-field-components.prompt.md +223 -0
- package/templates/react-sdk-reference/.github/prompts/generate-template-components.prompt.md +229 -0
- package/templates/react-sdk-reference/.github/prompts/generate-widget-components.prompt.md +208 -0
- package/templates/react-sdk-reference/.github/prompts/identify-components.prompt.md +65 -65
- package/templates/react-sdk-reference/.github/skills/component-contracts.md +99 -99
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/AlertBanner.md +40 -38
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Banner.md +54 -51
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/CaseSummaryFields.md +51 -46
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/DetailsFields.md +32 -28
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroup.md +38 -35
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldGroupList.md +25 -23
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/FieldValueList.md +29 -26
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Operator.md +32 -26
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/Pulse.md +17 -15
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/RichTextEditor.md +85 -59
- package/templates/react-sdk-reference/.github/skills/design-system-extension-skills/WssQuickCreate.md +49 -47
- package/templates/react-sdk-reference/.github/skills/design-system-extension.md +60 -18
- package/templates/react-sdk-reference/.github/skills/field-components.md +56 -23
- package/templates/react-sdk-reference/.github/skills/field-skills/AutoComplete.md +27 -26
- package/templates/react-sdk-reference/.github/skills/field-skills/CancelAlert.md +30 -22
- package/templates/react-sdk-reference/.github/skills/field-skills/Checkbox.md +60 -43
- package/templates/react-sdk-reference/.github/skills/field-skills/Currency.md +23 -20
- package/templates/react-sdk-reference/.github/skills/field-skills/Date.md +19 -17
- package/templates/react-sdk-reference/.github/skills/field-skills/DateTime.md +18 -15
- package/templates/react-sdk-reference/.github/skills/field-skills/Decimal.md +22 -21
- package/templates/react-sdk-reference/.github/skills/field-skills/Dropdown.md +50 -30
- package/templates/react-sdk-reference/.github/skills/field-skills/Email.md +20 -18
- package/templates/react-sdk-reference/.github/skills/field-skills/Group.md +21 -15
- package/templates/react-sdk-reference/.github/skills/field-skills/Integer.md +17 -16
- package/templates/react-sdk-reference/.github/skills/field-skills/Location.md +30 -21
- package/templates/react-sdk-reference/.github/skills/field-skills/Multiselect.md +66 -42
- package/templates/react-sdk-reference/.github/skills/field-skills/ObjectReference.md +27 -18
- package/templates/react-sdk-reference/.github/skills/field-skills/Percentage.md +22 -21
- package/templates/react-sdk-reference/.github/skills/field-skills/Phone.md +36 -17
- package/templates/react-sdk-reference/.github/skills/field-skills/RadioButtons.md +56 -35
- package/templates/react-sdk-reference/.github/skills/field-skills/RichText.md +23 -12
- package/templates/react-sdk-reference/.github/skills/field-skills/ScalarList.md +41 -31
- package/templates/react-sdk-reference/.github/skills/field-skills/SelectableCard.md +70 -55
- package/templates/react-sdk-reference/.github/skills/field-skills/SemanticLink.md +34 -27
- package/templates/react-sdk-reference/.github/skills/field-skills/TextArea.md +24 -22
- package/templates/react-sdk-reference/.github/skills/field-skills/TextContent.md +38 -22
- package/templates/react-sdk-reference/.github/skills/field-skills/TextInput.md +24 -21
- package/templates/react-sdk-reference/.github/skills/field-skills/Time.md +16 -15
- package/templates/react-sdk-reference/.github/skills/field-skills/URL.md +16 -15
- package/templates/react-sdk-reference/.github/skills/field-skills/UserReference.md +57 -34
- package/templates/react-sdk-reference/.github/skills/run-and-verify.md +10 -8
- package/templates/react-sdk-reference/.github/skills/template-components.md +50 -14
- package/templates/react-sdk-reference/.github/skills/template-skills/AdvancedSearch.md +27 -21
- package/templates/react-sdk-reference/.github/skills/template-skills/AppShell.md +17 -15
- package/templates/react-sdk-reference/.github/skills/template-skills/BannerPage.md +19 -16
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseSummary.md +19 -13
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseView.md +23 -17
- package/templates/react-sdk-reference/.github/skills/template-skills/CaseViewActionsMenu.md +34 -29
- package/templates/react-sdk-reference/.github/skills/template-skills/Confirmation.md +18 -16
- package/templates/react-sdk-reference/.github/skills/template-skills/DataReference.md +36 -32
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultForm.md +23 -21
- package/templates/react-sdk-reference/.github/skills/template-skills/DefaultPage.md +31 -29
- package/templates/react-sdk-reference/.github/skills/template-skills/Details.md +19 -17
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsSubTabs.md +22 -20
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsThreeColumn.md +19 -17
- package/templates/react-sdk-reference/.github/skills/template-skills/DetailsTwoColumn.md +19 -17
- package/templates/react-sdk-reference/.github/skills/template-skills/DynamicTabs.md +15 -10
- package/templates/react-sdk-reference/.github/skills/template-skills/FieldGroupTemplate.md +19 -16
- package/templates/react-sdk-reference/.github/skills/template-skills/HierarchicalForm.md +18 -15
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboard.md +17 -13
- package/templates/react-sdk-reference/.github/skills/template-skills/InlineDashboardPage.md +10 -13
- package/templates/react-sdk-reference/.github/skills/template-skills/ListPage.md +9 -7
- package/templates/react-sdk-reference/.github/skills/template-skills/ListView.md +33 -30
- package/templates/react-sdk-reference/.github/skills/template-skills/MultiReferenceReadOnly.md +13 -11
- package/templates/react-sdk-reference/.github/skills/template-skills/NarrowWide.md +42 -40
- package/templates/react-sdk-reference/.github/skills/template-skills/OneColumn.md +25 -20
- package/templates/react-sdk-reference/.github/skills/template-skills/PromotedFilters.md +25 -19
- package/templates/react-sdk-reference/.github/skills/template-skills/SelfServiceCaseView.md +36 -29
- package/templates/react-sdk-reference/.github/skills/template-skills/SimpleTable.md +31 -27
- package/templates/react-sdk-reference/.github/skills/template-skills/SingleReferenceReadOnly.md +29 -24
- package/templates/react-sdk-reference/.github/skills/template-skills/SubTabs.md +14 -11
- package/templates/react-sdk-reference/.github/skills/template-skills/TwoColumn.md +34 -32
- package/templates/react-sdk-reference/.github/skills/template-skills/WideNarrow.md +48 -46
- package/templates/react-sdk-reference/.github/skills/template-skills/WssNavBar.md +23 -19
- package/templates/react-sdk-reference/.github/skills/widget-components.md +52 -26
- package/templates/react-sdk-reference/.github/skills/widget-skills/AppAnnouncement.md +22 -20
- package/templates/react-sdk-reference/.github/skills/widget-skills/Attachment.md +33 -28
- package/templates/react-sdk-reference/.github/skills/widget-skills/CaseHistory.md +18 -15
- package/templates/react-sdk-reference/.github/skills/widget-skills/FileUtility.md +43 -37
- package/templates/react-sdk-reference/.github/skills/widget-skills/Followers.md +23 -19
- package/templates/react-sdk-reference/.github/skills/widget-skills/QuickCreate.md +20 -16
- package/templates/react-sdk-reference/.github/skills/widget-skills/SummaryItem.md +26 -24
- package/templates/react-sdk-reference/.github/skills/widget-skills/ToDo.md +43 -35
- package/templates/react-sdk-reference/AGENTS.md +216 -29
- package/templates/react-sdk-reference/index.html +1 -4
- package/templates/react-sdk-reference/package.json +16 -16
- package/templates/react-sdk-reference/pega-constellationjs-0.26.3-local.tgz +0 -0
- package/templates/react-sdk-reference/pega-sdk-react-0.1.0.tgz +0 -0
- package/templates/react-sdk-reference/sdk-config.json +1 -1
- package/templates/react-sdk-reference/src/AppSelector.tsx +6 -6
- package/templates/react-sdk-reference/src/FallbackComponent.tsx +2 -6
- package/templates/react-sdk-reference/src/MashupApp.styles.ts +269 -41
- package/templates/react-sdk-reference/src/MashupApp.tsx +186 -85
- package/templates/react-sdk-reference/src/PortalApp.tsx +10 -34
- package/templates/react-sdk-reference/src/components/component-map.ts +2 -7
- package/templates/react-sdk-reference/src/components/designSystemExtension/AlertBanner/AlertBanner.tsx +7 -28
- package/templates/react-sdk-reference/src/components/designSystemExtension/Banner/Banner.tsx +12 -7
- package/templates/react-sdk-reference/src/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +35 -33
- package/templates/react-sdk-reference/src/components/designSystemExtension/DetailsFields/DetailsFields.tsx +6 -27
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroup/FieldGroup.tsx +15 -11
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldGroupList/FieldGroupList.tsx +7 -7
- package/templates/react-sdk-reference/src/components/designSystemExtension/FieldValueList/FieldValueList.tsx +18 -12
- package/templates/react-sdk-reference/src/components/designSystemExtension/Operator/Operator.tsx +27 -25
- package/templates/react-sdk-reference/src/components/designSystemExtension/Pulse/Pulse.tsx +4 -4
- package/templates/react-sdk-reference/src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx +8 -40
- package/templates/react-sdk-reference/src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx +9 -9
- package/templates/react-sdk-reference/src/components/field/AutoComplete/AutoComplete.tsx +26 -20
- package/templates/react-sdk-reference/src/components/field/CancelAlert/CancelAlert.tsx +35 -17
- package/templates/react-sdk-reference/src/components/field/Checkbox/Checkbox.tsx +27 -25
- package/templates/react-sdk-reference/src/components/field/Currency/Currency.tsx +10 -6
- package/templates/react-sdk-reference/src/components/field/Currency/currency-utils.ts +1 -1
- package/templates/react-sdk-reference/src/components/field/Date/Date.tsx +20 -7
- package/templates/react-sdk-reference/src/components/field/DateTime/DateTime.tsx +23 -8
- package/templates/react-sdk-reference/src/components/field/Decimal/Decimal.tsx +5 -5
- package/templates/react-sdk-reference/src/components/field/Dropdown/Dropdown.tsx +45 -25
- package/templates/react-sdk-reference/src/components/field/Email/Email.tsx +8 -8
- package/templates/react-sdk-reference/src/components/field/Group/Group.tsx +1 -1
- package/templates/react-sdk-reference/src/components/field/Integer/Integer.tsx +5 -5
- package/templates/react-sdk-reference/src/components/field/Location/Location.tsx +21 -16
- package/templates/react-sdk-reference/src/components/field/Multiselect/Multiselect.tsx +42 -27
- package/templates/react-sdk-reference/src/components/field/Multiselect/utils.ts +43 -29
- package/templates/react-sdk-reference/src/components/field/ObjectReference/ObjectReference.tsx +53 -30
- package/templates/react-sdk-reference/src/components/field/ObjectReference/utils.ts +12 -11
- package/templates/react-sdk-reference/src/components/field/Percentage/Percentage.tsx +6 -6
- package/templates/react-sdk-reference/src/components/field/Phone/Phone.tsx +12 -12
- package/templates/react-sdk-reference/src/components/field/RadioButtons/RadioButtons.tsx +38 -16
- package/templates/react-sdk-reference/src/components/field/RichText/RichText.tsx +17 -4
- package/templates/react-sdk-reference/src/components/field/ScalarList/ScalarList.tsx +5 -5
- package/templates/react-sdk-reference/src/components/field/SelectableCard/SelectableCard.tsx +31 -18
- package/templates/react-sdk-reference/src/components/field/SelectableCard/utils.tsx +28 -20
- package/templates/react-sdk-reference/src/components/field/SemanticLink/SemanticLink.tsx +28 -19
- package/templates/react-sdk-reference/src/components/field/SemanticLink/utils.ts +3 -1
- package/templates/react-sdk-reference/src/components/field/TextArea/TextArea.tsx +4 -4
- package/templates/react-sdk-reference/src/components/field/TextInput/TextInput.tsx +4 -4
- package/templates/react-sdk-reference/src/components/field/Time/Time.tsx +20 -7
- package/templates/react-sdk-reference/src/components/field/URL/URL.tsx +7 -7
- package/templates/react-sdk-reference/src/components/field/UserReference/UserReference.tsx +14 -14
- package/templates/react-sdk-reference/src/components/field/UserReference/UserReferenceUtils.ts +2 -2
- package/templates/react-sdk-reference/src/components/helpers/case-utils.tsx +5 -5
- package/templates/react-sdk-reference/src/components/helpers/data_page.ts +3 -3
- package/templates/react-sdk-reference/src/components/helpers/date-format-utils.ts +5 -5
- package/templates/react-sdk-reference/src/components/helpers/field-group-utils.ts +2 -7
- package/templates/react-sdk-reference/src/components/helpers/formatters/Boolean.ts +9 -3
- package/templates/react-sdk-reference/src/components/helpers/formatters/Currency.ts +18 -6
- package/templates/react-sdk-reference/src/components/helpers/formatters/CurrencyMap.ts +168 -168
- package/templates/react-sdk-reference/src/components/helpers/formatters/Date.ts +5 -5
- package/templates/react-sdk-reference/src/components/helpers/formatters/index.ts +8 -5
- package/templates/react-sdk-reference/src/components/helpers/instructions-utils.ts +2 -2
- package/templates/react-sdk-reference/src/components/helpers/simpleTableHelpers.ts +54 -30
- package/templates/react-sdk-reference/src/components/helpers/state-utils.tsx +5 -2
- package/templates/react-sdk-reference/src/components/helpers/template-utils.ts +5 -4
- package/templates/react-sdk-reference/src/components/helpers/utils.ts +3 -3
- package/templates/react-sdk-reference/src/components/helpers/versionHelpers.ts +3 -1
- package/templates/react-sdk-reference/src/components/index.ts +1 -4
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/AdvancedSearch.tsx +18 -10
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroup/persistUtils.ts +3 -3
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/SearchGroups.tsx +26 -90
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/hooks.ts +8 -5
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/SearchGroups/utils.ts +8 -4
- package/templates/react-sdk-reference/src/components/template/AdvancedSearch/TemplateContext.ts +1 -1
- package/templates/react-sdk-reference/src/components/template/AppShell/AppShell.tsx +28 -19
- package/templates/react-sdk-reference/src/components/template/BannerPage/BannerPage.tsx +2 -2
- package/templates/react-sdk-reference/src/components/template/CaseSummary/CaseSummary.tsx +5 -5
- package/templates/react-sdk-reference/src/components/template/CaseView/CaseView.tsx +35 -16
- package/templates/react-sdk-reference/src/components/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +10 -10
- package/templates/react-sdk-reference/src/components/template/Confirmation/Confirmation.tsx +12 -26
- package/templates/react-sdk-reference/src/components/template/DataReference/DataReference.tsx +41 -124
- package/templates/react-sdk-reference/src/components/template/DataReference/DataReferenceAdvancedSearchContext.ts +2 -2
- package/templates/react-sdk-reference/src/components/template/DataReference/SearchForm.tsx +18 -78
- package/templates/react-sdk-reference/src/components/template/DataReference/utils.ts +18 -12
- package/templates/react-sdk-reference/src/components/template/DefaultForm/DefaultForm.tsx +4 -12
- package/templates/react-sdk-reference/src/components/template/DefaultForm/utils/index.ts +3 -3
- package/templates/react-sdk-reference/src/components/template/DefaultPage/DefaultPage.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/Details/Details/Details.tsx +6 -8
- package/templates/react-sdk-reference/src/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.tsx +7 -14
- package/templates/react-sdk-reference/src/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.tsx +7 -14
- package/templates/react-sdk-reference/src/components/template/Details/DynamicTabs/DynamicTabs.tsx +16 -8
- package/templates/react-sdk-reference/src/components/template/FieldGroupTemplate/FieldGroupTemplate.tsx +7 -4
- package/templates/react-sdk-reference/src/components/template/HierarchicalForm/HierarchicalForm.tsx +20 -5
- package/templates/react-sdk-reference/src/components/template/HierarchicalForm/hooks.ts +35 -77
- package/templates/react-sdk-reference/src/components/template/InlineDashboard/InlineDashboard.tsx +10 -10
- package/templates/react-sdk-reference/src/components/template/ListView/DefaultViewMeta.ts +31 -31
- package/templates/react-sdk-reference/src/components/template/ListView/ListView.tsx +173 -133
- package/templates/react-sdk-reference/src/components/template/ListView/hooks.ts +17 -10
- package/templates/react-sdk-reference/src/components/template/ListView/utils.ts +64 -51
- package/templates/react-sdk-reference/src/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +6 -6
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWide/NarrowWide.tsx +6 -6
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx +8 -18
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.tsx +7 -1
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumn/OneColumn.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/OneColumn/OneColumnTab/OneColumnTab.tsx +1 -1
- package/templates/react-sdk-reference/src/components/template/PromotedFilters/PromotedFilters.tsx +13 -40
- package/templates/react-sdk-reference/src/components/template/SelfServiceCaseView/SelfServiceCaseView.tsx +19 -16
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTable/SimpleTable.tsx +8 -7
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.tsx +84 -203
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.tsx +15 -5
- package/templates/react-sdk-reference/src/components/template/SimpleTable/SimpleTableSelectReadonly/SimpleTableSelectReadonly.tsx +15 -29
- package/templates/react-sdk-reference/src/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +7 -7
- package/templates/react-sdk-reference/src/components/template/SubTabs/SubTabs.tsx +1 -1
- package/templates/react-sdk-reference/src/components/template/SubTabs/tabUtils.ts +13 -11
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumn/TwoColumn.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrow/WideNarrow.tsx +6 -6
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx +13 -24
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.tsx +3 -3
- package/templates/react-sdk-reference/src/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.tsx +7 -1
- package/templates/react-sdk-reference/src/components/template/WssNavBar/WssNavBar.tsx +25 -25
- package/templates/react-sdk-reference/src/components/template/utils.tsx +6 -6
- package/templates/react-sdk-reference/src/components/widget/AppAnnouncement/AppAnnouncement.tsx +9 -9
- package/templates/react-sdk-reference/src/components/widget/Attachment/Attachment.tsx +125 -79
- package/templates/react-sdk-reference/src/components/widget/Attachment/AttachmentUtils.ts +58 -33
- package/templates/react-sdk-reference/src/components/widget/CaseHistory/CaseHistory.tsx +14 -12
- package/templates/react-sdk-reference/src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx +19 -7
- package/templates/react-sdk-reference/src/components/widget/FileUtility/FileUtility/FileUtility.tsx +137 -107
- package/templates/react-sdk-reference/src/components/widget/Followers/Followers.tsx +4 -4
- package/templates/react-sdk-reference/src/components/widget/QuickCreate/QuickCreate.tsx +15 -11
- package/templates/react-sdk-reference/src/components/widget/SummaryItem/SummaryItem.tsx +25 -18
- package/templates/react-sdk-reference/src/components/widget/SummaryList/SummaryList.tsx +7 -2
- package/templates/react-sdk-reference/src/components/widget/ToDo/ToDo.tsx +30 -116
- package/templates/react-sdk-reference/src/main.tsx +1 -1
- package/templates/react-sdk-reference/tsconfig.json +2 -1
- package/templates/react-sdk-reference/vite.config.ts +52 -27
- package/templates/wc-sdk-reference/package.json +3 -3
- package/templates/wc-sdk-reference/src/index.ts +10 -10
- package/templates/wc-sdk-reference/tsconfig.json +1 -0
- package/templates/react-sdk-reference/.github/prompts/replace-all-fields.prompt.md +0 -48
- package/templates/react-sdk-reference/.github/prompts/replace-component.prompt.md +0 -81
- package/templates/react-sdk-reference/.github/prompts/replace-field.prompt.md +0 -41
- package/templates/react-sdk-reference/.github/prompts/swap-design-system.prompt.md +0 -49
- package/templates/react-sdk-reference/.github/skills/swap-design-system.md +0 -105
- package/templates/react-sdk-reference/pega-constellationjs-0.26.2.tgz +0 -0
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
insertAttachments,
|
|
12
12
|
useDeepMemo,
|
|
13
13
|
useFileDownload,
|
|
14
|
-
validateFileExtension
|
|
14
|
+
validateFileExtension,
|
|
15
15
|
} from './AttachmentUtils';
|
|
16
16
|
import { validateMaxSize } from '../../helpers/attachmentShared';
|
|
17
17
|
import type { PageInstructionOptions } from './Attachment.types';
|
|
@@ -29,11 +29,21 @@ interface AttachmentProps extends Omit<PConnFieldProps, 'value'> {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
export default function Attachment(props: AttachmentProps) {
|
|
32
|
-
const {
|
|
32
|
+
const {
|
|
33
|
+
value,
|
|
34
|
+
getPConnect,
|
|
35
|
+
label,
|
|
36
|
+
validatemessage,
|
|
37
|
+
extensions,
|
|
38
|
+
displayMode,
|
|
39
|
+
helperText,
|
|
40
|
+
editMode,
|
|
41
|
+
isTableFormatter,
|
|
42
|
+
} = props;
|
|
33
43
|
/* this is a temporary fix because required is supposed to be passed as a boolean and NOT as a string */
|
|
34
44
|
let { required, disabled, allowMultiple } = props;
|
|
35
45
|
[required, disabled, allowMultiple] = [required, disabled, allowMultiple].map(
|
|
36
|
-
prop => prop === true || (typeof prop === 'string' && prop === 'true')
|
|
46
|
+
(prop) => prop === true || (typeof prop === 'string' && prop === 'true'),
|
|
37
47
|
);
|
|
38
48
|
const pConn = getPConnect();
|
|
39
49
|
const localizationService = pConn.getLocalizationService();
|
|
@@ -41,7 +51,9 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
41
51
|
const actionSequencer = useMemo(() => PCore.getActionsSequencer(), []);
|
|
42
52
|
const rawValue = pConn.getComponentConfig().value;
|
|
43
53
|
const isAttachmentAnnotationPresent = typeof rawValue === 'object' ? false : rawValue?.includes('@ATTACHMENT');
|
|
44
|
-
const { attachments, isOldAttachment } = isAttachmentAnnotationPresent
|
|
54
|
+
const { attachments, isOldAttachment } = isAttachmentAnnotationPresent
|
|
55
|
+
? value
|
|
56
|
+
: PCore.getAttachmentUtils().prepareAttachmentData(value);
|
|
45
57
|
|
|
46
58
|
let valueRef = (pConn.getStateProps() as any).value;
|
|
47
59
|
valueRef = valueRef.indexOf('.') === 0 ? valueRef.substring(1) : valueRef;
|
|
@@ -82,7 +94,9 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
82
94
|
}
|
|
83
95
|
|
|
84
96
|
if (filesWithError.current.length > 0) {
|
|
85
|
-
filesWithError.current = filesWithError.current.filter(
|
|
97
|
+
filesWithError.current = filesWithError.current.filter(
|
|
98
|
+
(fileWithError) => fileWithError.props.id !== file.props.id,
|
|
99
|
+
);
|
|
86
100
|
if (filesWithError.current.length === 0) {
|
|
87
101
|
clearFieldErrorMessages(pConn);
|
|
88
102
|
}
|
|
@@ -92,8 +106,8 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
92
106
|
// @ts-ignore - Expected 1 arguments, but got 2.ts(2554)
|
|
93
107
|
PCore.getAttachmentUtils().cancelRequest(file.props.id, contextName);
|
|
94
108
|
actionSequencer.deRegisterBlockingAction(contextName).catch(() => {});
|
|
95
|
-
setFiles(localFiles => {
|
|
96
|
-
return localFiles.filter(localFile => localFile.props.id !== file.props.id);
|
|
109
|
+
setFiles((localFiles) => {
|
|
110
|
+
return localFiles.filter((localFile) => localFile.props.id !== file.props.id);
|
|
97
111
|
});
|
|
98
112
|
} else {
|
|
99
113
|
deleteAttachments([file], pConn, multiAttachmentsInInlineEdit.current, {
|
|
@@ -101,16 +115,18 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
101
115
|
isOldAttachment,
|
|
102
116
|
isMultiAttachmentInInlineEditTable,
|
|
103
117
|
attachmentCount: attachmentCount.current,
|
|
104
|
-
deleteIndex: fileIndex
|
|
118
|
+
deleteIndex: fileIndex,
|
|
105
119
|
} as any);
|
|
106
120
|
// Filter out without deleted file and reset the file indexes
|
|
107
|
-
setFiles(localFiles => {
|
|
121
|
+
setFiles((localFiles) => {
|
|
108
122
|
let tempLocalFiles = [...localFiles];
|
|
109
|
-
tempLocalFiles = tempLocalFiles.filter(localFile => localFile.props.id !== file.props.id);
|
|
110
|
-
tempLocalFiles.forEach(localFile => {
|
|
123
|
+
tempLocalFiles = tempLocalFiles.filter((localFile) => localFile.props.id !== file.props.id);
|
|
124
|
+
tempLocalFiles.forEach((localFile) => {
|
|
111
125
|
if (!localFile.props.error && !file.props.error) {
|
|
112
126
|
const updatedDeleteIndex =
|
|
113
|
-
localFile.responseProps.deleteIndex > fileIndex
|
|
127
|
+
localFile.responseProps.deleteIndex > fileIndex
|
|
128
|
+
? localFile.responseProps.deleteIndex - 1
|
|
129
|
+
: localFile.responseProps.deleteIndex;
|
|
114
130
|
|
|
115
131
|
localFile.props.onDelete = () => deleteFile(localFile, updatedDeleteIndex);
|
|
116
132
|
|
|
@@ -126,53 +142,53 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
126
142
|
|
|
127
143
|
setToggleUploadBegin(false);
|
|
128
144
|
},
|
|
129
|
-
[pConn]
|
|
145
|
+
[pConn],
|
|
130
146
|
);
|
|
131
147
|
|
|
132
148
|
const onUploadProgress = (id, ev) => {
|
|
133
149
|
const progress = Math.floor((ev.loaded / ev.total) * 100);
|
|
134
|
-
setFiles(localFiles => [
|
|
135
|
-
...localFiles.map(localFile => {
|
|
150
|
+
setFiles((localFiles) => [
|
|
151
|
+
...localFiles.map((localFile) => {
|
|
136
152
|
if (localFile.props?.id === id) {
|
|
137
153
|
localFile.inProgress = true;
|
|
138
154
|
localFile.props.progress = progress;
|
|
139
155
|
}
|
|
140
156
|
return localFile;
|
|
141
|
-
})
|
|
157
|
+
}),
|
|
142
158
|
]);
|
|
143
159
|
};
|
|
144
160
|
|
|
145
|
-
const populateErrorAndUpdateRedux = file => {
|
|
161
|
+
const populateErrorAndUpdateRedux = (file) => {
|
|
146
162
|
const fieldName = (pConn.getStateProps() as any).value;
|
|
147
163
|
// set errors to property to block submit even on errors in file upload
|
|
148
164
|
PCore.getMessageManager().addMessages({
|
|
149
165
|
messages: [
|
|
150
166
|
{
|
|
151
167
|
type: 'error',
|
|
152
|
-
message: localizationService.getLocalizedText('Error with one or more files')
|
|
153
|
-
}
|
|
168
|
+
message: localizationService.getLocalizedText('Error with one or more files'),
|
|
169
|
+
},
|
|
154
170
|
],
|
|
155
171
|
property: fieldName,
|
|
156
172
|
pageReference: pConn.getPageReference(),
|
|
157
|
-
context: contextName
|
|
173
|
+
context: contextName,
|
|
158
174
|
});
|
|
159
175
|
insertAttachments([file], pConn, multiAttachmentsInInlineEdit.current, {
|
|
160
176
|
allowMultiple,
|
|
161
177
|
isOldAttachment,
|
|
162
178
|
isMultiAttachmentInInlineEditTable,
|
|
163
|
-
attachmentCount: attachmentCount.current
|
|
179
|
+
attachmentCount: attachmentCount.current,
|
|
164
180
|
} as any);
|
|
165
181
|
};
|
|
166
182
|
|
|
167
183
|
const errorHandler = (isFetchCanceled, file) => {
|
|
168
|
-
return error => {
|
|
184
|
+
return (error) => {
|
|
169
185
|
if (!isFetchCanceled(error)) {
|
|
170
186
|
let uploadFailMsg = localizationService.getLocalizedText('Something went wrong');
|
|
171
187
|
if (error.response && error.response.data && error.response.data.errorDetails) {
|
|
172
188
|
uploadFailMsg = localizationService.getLocalizedText(error.response.data.errorDetails[0].localizedValue);
|
|
173
189
|
}
|
|
174
190
|
|
|
175
|
-
setFiles(current => {
|
|
191
|
+
setFiles((current) => {
|
|
176
192
|
return current.map((localFile, index) => {
|
|
177
193
|
if (localFile.props.id === file.props.id) {
|
|
178
194
|
localFile.props.meta = uploadFailMsg;
|
|
@@ -194,7 +210,7 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
194
210
|
};
|
|
195
211
|
};
|
|
196
212
|
|
|
197
|
-
const onFileAdded = event => {
|
|
213
|
+
const onFileAdded = (event) => {
|
|
198
214
|
let addedFiles = Array.from(event.target.files);
|
|
199
215
|
addedFiles = allowMultiple ? addedFiles : [addedFiles[0]];
|
|
200
216
|
const maxAttachmentSize = PCore.getEnvironmentInfo().getMaxAttachmentSize() || '5';
|
|
@@ -208,16 +224,18 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
208
224
|
format: f.name.split('.').pop(),
|
|
209
225
|
icon: getIconFromFileType(f.type),
|
|
210
226
|
onDelete: () => deleteFile(f, index),
|
|
211
|
-
thumbnail: window.URL.createObjectURL(f)
|
|
227
|
+
thumbnail: window.URL.createObjectURL(f),
|
|
212
228
|
};
|
|
213
229
|
if (!validateMaxSize(f, maxAttachmentSize)) {
|
|
214
230
|
f.props.error = true;
|
|
215
|
-
f.props.meta = localizationService.getLocalizedText(
|
|
231
|
+
f.props.meta = localizationService.getLocalizedText(
|
|
232
|
+
`File is too big. Max allowed size is ${maxAttachmentSize}MB.`,
|
|
233
|
+
);
|
|
216
234
|
} else if (!validateFileExtension(f, extensions)) {
|
|
217
235
|
f.props.error = true;
|
|
218
236
|
f.props.meta = `${localizationService.getLocalizedText('File has invalid extension. Allowed extensions are:')} ${extensions.replaceAll(
|
|
219
237
|
'.',
|
|
220
|
-
''
|
|
238
|
+
'',
|
|
221
239
|
)}`;
|
|
222
240
|
}
|
|
223
241
|
if (f.props.error) {
|
|
@@ -226,19 +244,19 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
226
244
|
messages: [
|
|
227
245
|
{
|
|
228
246
|
type: 'error',
|
|
229
|
-
message: localizationService.getLocalizedText('Error with one or more files')
|
|
230
|
-
}
|
|
247
|
+
message: localizationService.getLocalizedText('Error with one or more files'),
|
|
248
|
+
},
|
|
231
249
|
],
|
|
232
250
|
property: fieldName,
|
|
233
251
|
pageReference: pConn.getPageReference(),
|
|
234
|
-
context: contextName
|
|
252
|
+
context: contextName,
|
|
235
253
|
});
|
|
236
254
|
}
|
|
237
255
|
return f;
|
|
238
|
-
})
|
|
256
|
+
}),
|
|
239
257
|
];
|
|
240
258
|
|
|
241
|
-
const tempFilesWithError = tempFilesToBeUploaded.filter(f => f.props.error);
|
|
259
|
+
const tempFilesWithError = tempFilesToBeUploaded.filter((f) => f.props.error);
|
|
242
260
|
if (tempFilesWithError.length > 0) {
|
|
243
261
|
filesWithError.current = [...filesWithError.current, ...tempFilesWithError];
|
|
244
262
|
|
|
@@ -246,48 +264,50 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
246
264
|
allowMultiple,
|
|
247
265
|
isOldAttachment,
|
|
248
266
|
isMultiAttachmentInInlineEditTable,
|
|
249
|
-
attachmentCount: attachmentCount.current
|
|
267
|
+
attachmentCount: attachmentCount.current,
|
|
250
268
|
} as PageInstructionOptions);
|
|
251
269
|
}
|
|
252
|
-
setFiles(current => (!allowMultiple ? [...tempFilesToBeUploaded] : [...current, ...tempFilesToBeUploaded]));
|
|
270
|
+
setFiles((current) => (!allowMultiple ? [...tempFilesToBeUploaded] : [...current, ...tempFilesToBeUploaded]));
|
|
253
271
|
setToggleUploadBegin(true);
|
|
254
272
|
};
|
|
255
273
|
|
|
256
274
|
const uploadFiles = useCallback(() => {
|
|
257
275
|
const filesToBeUploaded = files
|
|
258
|
-
.filter(e => {
|
|
276
|
+
.filter((e) => {
|
|
259
277
|
const isFileUploaded = e.props && e.props.progress === 100;
|
|
260
278
|
const fileHasError = e.props && e.props.error;
|
|
261
279
|
const isFileUploadedInLastStep = e.responseProps && e.responseProps.ID !== 'temp';
|
|
262
280
|
const isFileUploadInProgress = e.inProgress;
|
|
263
281
|
return !isFileUploadInProgress && !isFileUploaded && !fileHasError && !isFileUploadedInLastStep;
|
|
264
282
|
})
|
|
265
|
-
.map(file =>
|
|
283
|
+
.map((file) =>
|
|
266
284
|
PCore.getAttachmentUtils().uploadAttachment(
|
|
267
285
|
file,
|
|
268
|
-
ev => {
|
|
286
|
+
(ev) => {
|
|
269
287
|
onUploadProgress(file.props.id, ev);
|
|
270
288
|
},
|
|
271
|
-
isFetchCanceled => {
|
|
289
|
+
(isFetchCanceled) => {
|
|
272
290
|
return errorHandler(isFetchCanceled, file);
|
|
273
291
|
},
|
|
274
|
-
contextName
|
|
275
|
-
)
|
|
292
|
+
contextName,
|
|
293
|
+
),
|
|
276
294
|
);
|
|
277
295
|
|
|
278
296
|
// allow new files to be added when other files upload is still in progress
|
|
279
297
|
setToggleUploadBegin(false);
|
|
280
298
|
Promise.allSettled(filesToBeUploaded)
|
|
281
299
|
.then((fileResponses: any) => {
|
|
282
|
-
fileResponses = fileResponses.filter(fr => fr.status !== 'rejected'); // in case of deleting an in progress file, promise gets cancelled but still enters then block
|
|
300
|
+
fileResponses = fileResponses.filter((fr) => fr.status !== 'rejected'); // in case of deleting an in progress file, promise gets cancelled but still enters then block
|
|
283
301
|
if (fileResponses.length > 0) {
|
|
284
|
-
setFiles(localFiles => {
|
|
302
|
+
setFiles((localFiles) => {
|
|
285
303
|
const tempFilesUploaded = [...localFiles];
|
|
286
|
-
tempFilesUploaded.forEach(localFile => {
|
|
304
|
+
tempFilesUploaded.forEach((localFile) => {
|
|
287
305
|
// if attach field has multiple files & in bw any error files are present
|
|
288
306
|
// Example : files = [properFile1, errFile, errFile, properFile2]
|
|
289
307
|
// indexes for delete & preview should be for files [properFile1, properFile2] which is [1,2]
|
|
290
|
-
const index = fileResponses.findIndex(
|
|
308
|
+
const index = fileResponses.findIndex(
|
|
309
|
+
(fileResponse) => fileResponse.value.clientFileID === localFile.props.id,
|
|
310
|
+
);
|
|
291
311
|
if (index >= 0) {
|
|
292
312
|
fileResponses[index].value.thumbnail = localFile.props.thumbnail;
|
|
293
313
|
localFile.inProgress = false;
|
|
@@ -297,7 +317,7 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
297
317
|
localFile.handle = fileResponses[index].value.ID;
|
|
298
318
|
localFile.label = valueRef;
|
|
299
319
|
localFile.responseProps = {
|
|
300
|
-
pzInsKey: 'temp'
|
|
320
|
+
pzInsKey: 'temp',
|
|
301
321
|
};
|
|
302
322
|
}
|
|
303
323
|
});
|
|
@@ -309,7 +329,7 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
309
329
|
isOldAttachment,
|
|
310
330
|
isMultiAttachmentInInlineEditTable,
|
|
311
331
|
attachmentCount: attachmentCount.current,
|
|
312
|
-
insert: true
|
|
332
|
+
insert: true,
|
|
313
333
|
} as any);
|
|
314
334
|
attachmentCount.current += fileResponses.length;
|
|
315
335
|
|
|
@@ -319,7 +339,7 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
319
339
|
}
|
|
320
340
|
actionSequencer.deRegisterBlockingAction(contextName).catch(() => {});
|
|
321
341
|
})
|
|
322
|
-
.catch(error => {
|
|
342
|
+
.catch((error) => {
|
|
323
343
|
console.log(error);
|
|
324
344
|
setToggleUploadBegin(false);
|
|
325
345
|
});
|
|
@@ -347,7 +367,7 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
347
367
|
const transformAttachments = () => {
|
|
348
368
|
const transformedFiles = [...attachments];
|
|
349
369
|
let deleteIndex = -1;
|
|
350
|
-
transformedFiles.forEach(attachment => {
|
|
370
|
+
transformedFiles.forEach((attachment) => {
|
|
351
371
|
attachment.props.id = attachment.responseProps.ID;
|
|
352
372
|
attachment.props.format = attachment.props.name.split('.').pop();
|
|
353
373
|
if (attachment.props.error) {
|
|
@@ -365,25 +385,32 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
365
385
|
};
|
|
366
386
|
|
|
367
387
|
useEffect(() => {
|
|
368
|
-
const caseID = PCore.getStoreValue(
|
|
388
|
+
const caseID = PCore.getStoreValue(
|
|
389
|
+
`.${getMappedValue('pyID')}`,
|
|
390
|
+
PCore.getResolvedConstantValue('caseInfo.content'),
|
|
391
|
+
contextName,
|
|
392
|
+
);
|
|
369
393
|
if (displayMode !== 'DISPLAY_ONLY') {
|
|
370
394
|
PCore.getPubSubUtils().subscribe(
|
|
371
395
|
PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION,
|
|
372
396
|
() => {
|
|
373
397
|
overrideLocalState.current = true;
|
|
374
398
|
},
|
|
375
|
-
caseID
|
|
399
|
+
caseID,
|
|
376
400
|
);
|
|
377
401
|
}
|
|
378
402
|
|
|
379
403
|
// When component mounts, only set local files state from redux.
|
|
380
404
|
const serverFiles = transformAttachments();
|
|
381
405
|
setFiles(serverFiles);
|
|
382
|
-
filesWithError.current = serverFiles.filter(file => file.props.error);
|
|
406
|
+
filesWithError.current = serverFiles.filter((file) => file.props.error);
|
|
383
407
|
|
|
384
408
|
return () => {
|
|
385
409
|
if (displayMode !== 'DISPLAY_ONLY') {
|
|
386
|
-
PCore.getPubSubUtils().unsubscribe(
|
|
410
|
+
PCore.getPubSubUtils().unsubscribe(
|
|
411
|
+
PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION,
|
|
412
|
+
caseID,
|
|
413
|
+
);
|
|
387
414
|
}
|
|
388
415
|
};
|
|
389
416
|
}, []);
|
|
@@ -397,25 +424,26 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
397
424
|
setFiles(serverFiles);
|
|
398
425
|
} else {
|
|
399
426
|
// Determine whether refresh call has overridden any error files in redux, push error files back to redux from local state to perform client side validation during assignment submit
|
|
400
|
-
const errorFiles = attachments.filter(attachment => attachment.props.error);
|
|
427
|
+
const errorFiles = attachments.filter((attachment) => attachment.props.error);
|
|
401
428
|
if (errorFiles.length === 0 && filesWithError.current.length > 0) {
|
|
402
429
|
// Check if local file state contains error files and push those to redux
|
|
403
430
|
const uniqueKey = getMappedValue('pzInsKey');
|
|
404
|
-
const transformedErrorFiles = filesWithError.current.map(errorFile => {
|
|
431
|
+
const transformedErrorFiles = filesWithError.current.map((errorFile) => {
|
|
405
432
|
const filename = errorFile.props.name;
|
|
406
433
|
return {
|
|
407
434
|
[uniqueKey]: errorFile.props.id,
|
|
408
435
|
FileName: filename,
|
|
409
436
|
Category: '',
|
|
410
437
|
FileExtension: filename.split('.').pop() ?? filename,
|
|
411
|
-
error: errorFile.props.error || null
|
|
438
|
+
error: errorFile.props.error || null,
|
|
412
439
|
};
|
|
413
440
|
});
|
|
414
441
|
let key = '';
|
|
415
442
|
let updatedAttachments: any = [];
|
|
416
443
|
if (allowMultiple || isOldAttachment) {
|
|
417
444
|
key = isOldAttachment ? `${valueRef}.pxResults` : valueRef;
|
|
418
|
-
const existingAttachments =
|
|
445
|
+
const existingAttachments =
|
|
446
|
+
PCore.getStoreValue(`.${key}`, pConn.getPageReference(), pConn.getContextName()) || [];
|
|
419
447
|
updatedAttachments = [...existingAttachments, ...transformedErrorFiles];
|
|
420
448
|
} else {
|
|
421
449
|
key = valueRef;
|
|
@@ -424,13 +452,13 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
424
452
|
PCore.getStateUtils().updateState(pConn.getContextName(), key, updatedAttachments, {
|
|
425
453
|
pageReference: pConn.getPageReference(),
|
|
426
454
|
isArrayDeepMerge: false,
|
|
427
|
-
removePropertyFromChangedList: true
|
|
455
|
+
removePropertyFromChangedList: true,
|
|
428
456
|
});
|
|
429
457
|
}
|
|
430
458
|
}
|
|
431
459
|
}, [memoizedAttachments]);
|
|
432
460
|
|
|
433
|
-
const handleClick = event => {
|
|
461
|
+
const handleClick = (event) => {
|
|
434
462
|
setAnchorEl(event.currentTarget);
|
|
435
463
|
};
|
|
436
464
|
|
|
@@ -441,21 +469,21 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
441
469
|
const content = (
|
|
442
470
|
<div style={{ marginBottom: '8px' }}>
|
|
443
471
|
<div className={`${disabled ? 'file-disabled' : ''} ${validatemessage === '' ? 'file-div' : 'file-div-error'}`}>
|
|
444
|
-
<div hidden={true} id=
|
|
472
|
+
<div hidden={true} id="attachment-ID">
|
|
445
473
|
{valueRef}
|
|
446
474
|
</div>
|
|
447
475
|
<label htmlFor={valueRef}>
|
|
448
476
|
<input
|
|
449
477
|
style={{ display: 'none' }}
|
|
450
478
|
id={valueRef}
|
|
451
|
-
name=
|
|
452
|
-
type=
|
|
479
|
+
name="upload-photo"
|
|
480
|
+
type="file"
|
|
453
481
|
multiple={allowMultiple}
|
|
454
482
|
required={required}
|
|
455
483
|
disabled={disabled}
|
|
456
484
|
onChange={onFileAdded}
|
|
457
485
|
/>
|
|
458
|
-
<Button style={{ textTransform: 'none' }} variant=
|
|
486
|
+
<Button style={{ textTransform: 'none' }} variant="outlined" color="primary" component="span">
|
|
459
487
|
{allowMultiple
|
|
460
488
|
? uploadMultipleFilesLabel === 'file_upload_text_multiple'
|
|
461
489
|
? 'Choose files'
|
|
@@ -475,41 +503,55 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
475
503
|
files.length > 0 &&
|
|
476
504
|
files.map((item, index) => {
|
|
477
505
|
return (
|
|
478
|
-
<div key={index} className=
|
|
479
|
-
<div className=
|
|
480
|
-
{!item.inProgress && <img className=
|
|
506
|
+
<div key={index} className="psdk-utility-card">
|
|
507
|
+
<div className="psdk-utility-card-icon">
|
|
508
|
+
{!item.inProgress && <img className="psdk-utility-card-svg-icon" src={srcImg} />}
|
|
481
509
|
{item.inProgress && (
|
|
482
510
|
<div>
|
|
483
511
|
<CircularProgress />
|
|
484
512
|
</div>
|
|
485
513
|
)}
|
|
486
514
|
</div>
|
|
487
|
-
<div className=
|
|
488
|
-
<div className=
|
|
489
|
-
{item.props.meta &&
|
|
515
|
+
<div className="psdk-utility-card-main">
|
|
516
|
+
<div className="psdk-utility-card-main-primary-label">{item.props.name}</div>
|
|
517
|
+
{item.props.meta && (
|
|
518
|
+
<div style={{ color: item.props.error ? 'red' : undefined }}>{item.props.meta}</div>
|
|
519
|
+
)}
|
|
490
520
|
</div>
|
|
491
|
-
<div className=
|
|
521
|
+
<div className="psdk-utility-action">
|
|
492
522
|
{item.ID && (
|
|
493
|
-
<button
|
|
494
|
-
|
|
523
|
+
<button
|
|
524
|
+
type="button"
|
|
525
|
+
className="psdk-utility-button"
|
|
526
|
+
aria-label="Delete Attachment"
|
|
527
|
+
onClick={() => deleteFile(item, index)}
|
|
528
|
+
>
|
|
529
|
+
<img className="psdk-utility-card-action-svg-icon" src={deleteIcon} />
|
|
495
530
|
</button>
|
|
496
531
|
)}
|
|
497
532
|
{!item.ID && (
|
|
498
533
|
<div>
|
|
499
534
|
<IconButton
|
|
500
|
-
id=
|
|
535
|
+
id="setting-button"
|
|
501
536
|
aria-controls={open ? 'file-menu' : undefined}
|
|
502
537
|
aria-expanded={open ? 'true' : undefined}
|
|
503
|
-
aria-haspopup=
|
|
538
|
+
aria-haspopup="true"
|
|
504
539
|
onClick={handleClick}
|
|
505
|
-
size=
|
|
540
|
+
size="large"
|
|
506
541
|
>
|
|
507
542
|
<MoreVertIcon />
|
|
508
543
|
</IconButton>
|
|
509
|
-
<Menu
|
|
544
|
+
<Menu
|
|
545
|
+
style={{ marginTop: '3rem' }}
|
|
546
|
+
id="file-menu"
|
|
547
|
+
anchorEl={anchorEl}
|
|
548
|
+
keepMounted
|
|
549
|
+
open={Boolean(anchorEl)}
|
|
550
|
+
onClose={handleClose}
|
|
551
|
+
>
|
|
510
552
|
<MenuItem
|
|
511
553
|
style={{ fontSize: '14px' }}
|
|
512
|
-
key=
|
|
554
|
+
key="download"
|
|
513
555
|
onClick={() => {
|
|
514
556
|
setAnchorEl(null);
|
|
515
557
|
onFileDownload(item.responseProps ? item.responseProps : {});
|
|
@@ -517,7 +559,7 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
517
559
|
>
|
|
518
560
|
Download
|
|
519
561
|
</MenuItem>
|
|
520
|
-
<MenuItem style={{ fontSize: '14px' }} key=
|
|
562
|
+
<MenuItem style={{ fontSize: '14px' }} key="delete" onClick={() => deleteFile(item, index)}>
|
|
521
563
|
Delete
|
|
522
564
|
</MenuItem>
|
|
523
565
|
</Menu>
|
|
@@ -531,10 +573,14 @@ export default function Attachment(props: AttachmentProps) {
|
|
|
531
573
|
);
|
|
532
574
|
|
|
533
575
|
return (
|
|
534
|
-
<div className=
|
|
576
|
+
<div className="file-upload-container">
|
|
535
577
|
<span className={`label ${required ? 'file-label' : ''}`}>{label}</span>
|
|
536
578
|
{((files.length === 0 && !allowMultiple) || allowMultiple) && <section>{content}</section>}
|
|
537
|
-
{validatemessage !== '' ?
|
|
579
|
+
{validatemessage !== '' ? (
|
|
580
|
+
<span className="file-error">{validatemessage}</span>
|
|
581
|
+
) : (
|
|
582
|
+
<span style={{ fontSize: '14px' }}>{helperText}</span>
|
|
583
|
+
)}
|
|
538
584
|
{files && files.length > 0 && <section>{fileDisplay}</section>}
|
|
539
585
|
</div>
|
|
540
586
|
);
|