@pega/dx-component-builder-sdk 25.1.16 → 26.1.10
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/package.json +1 -1
- package/pega-dx-component-builder-sdk-26.1.10.tgz +0 -0
- package/src/constants.js +4 -0
- package/src/tasks/create/templates/Constellation/field/Picklist-Autocomplete/utils.ts.mustache +1 -1
- package/src/tasks/create/templates/Constellation/template/DETAILS/DetailsRender.tsx.mustache +1 -1
- package/src/tasks/create/templates/Constellation/template/DETAILS-region/DetailsRender.tsx.mustache +1 -1
- package/src/tasks/create/templates/Constellation/template/FORM/DetailsRender.tsx +1 -1
- package/src/tasks/create/templates/Constellation/template/FORM-region/DetailsRender.tsx +1 -1
- package/src/tasks/create/templates/SDK-React/field/Boolean/index.tsx.mustache +22 -6
- package/src/tasks/create/templates/SDK-React/field/Date/demo.stories.tsx.mustache +8 -1
- package/src/tasks/create/templates/SDK-React/field/Date/index.tsx.mustache +22 -13
- package/src/tasks/create/templates/SDK-React/field/DateTime/demo.stories.tsx.mustache +9 -1
- package/src/tasks/create/templates/SDK-React/field/DateTime/index.tsx.mustache +23 -14
- package/src/tasks/create/templates/SDK-React/field/Decimal/index.tsx.mustache +24 -8
- package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/index.tsx.mustache +24 -8
- package/src/tasks/create/templates/SDK-React/field/Decimal-Percentage/index.tsx.mustache +24 -10
- package/src/tasks/create/templates/SDK-React/field/Integer/index.tsx.mustache +26 -14
- package/src/tasks/create/templates/SDK-React/field/Picklist/index.tsx.mustache +34 -8
- package/src/tasks/create/templates/SDK-React/field/Picklist-Autocomplete/index.tsx.mustache +25 -9
- package/src/tasks/create/templates/SDK-React/field/Picklist-RadioButtons/index.tsx.mustache +21 -5
- package/src/tasks/create/templates/SDK-React/field/Text/index.tsx.mustache +25 -14
- package/src/tasks/create/templates/SDK-React/field/Text-Email/index.tsx.mustache +32 -21
- package/src/tasks/create/templates/SDK-React/field/Text-Input/index.tsx.mustache +25 -10
- package/src/tasks/create/templates/SDK-React/field/Text-Paragraph/index.tsx.mustache +26 -14
- package/src/tasks/create/templates/SDK-React/field/Text-Phone/index.tsx.mustache +28 -10
- package/src/tasks/create/templates/SDK-React/field/Text-URL/index.tsx.mustache +26 -14
- package/src/tasks/create/templates/SDK-React/field/TimeOfDay/demo.stories.tsx.mustache +9 -1
- package/src/tasks/create/templates/SDK-React/field/TimeOfDay/index.tsx.mustache +22 -17
- package/src/tasks/create/templates/SDK-React/template/FORM/DefaultForm.css +82 -2
- package/src/tasks/create/templates/SDK-React/template/FORM/index.tsx.mustache +51 -11
- package/src/tasks/create/templates/SDK-React/widget/CASE/index.tsx.mustache +19 -15
- package/src/tasks/create/templates/SDK-React/widget/PAGE/index.tsx.mustache +2 -167
- package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/index.tsx.mustache +72 -15
- package/tests/assets/sdk-r/components/create/custom-sdk/field/Pega_DXIL_MyTestText/index.tsx +25 -14
- package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/AlertBanner/AlertBanner.css +46 -0
- package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/AlertBanner/AlertBanner.tsx +37 -20
- package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.css +14 -0
- package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +57 -5
- package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/FieldGroup/FieldGroup.tsx +18 -11
- package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/FieldGroupList/FieldGroupList.tsx +1 -1
- package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/FieldValueList/FieldValueList.tsx +19 -4
- package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/Operator/Operator.tsx +125 -74
- package/tests/assets/sdk-r/components/create/override-sdk/designSystemExtension/RichTextEditor/RichTextEditor.tsx +184 -90
- package/tests/assets/sdk-r/components/create/override-sdk/field/AutoComplete/AutoComplete.tsx +372 -26
- package/tests/assets/sdk-r/components/create/override-sdk/field/Checkbox/Checkbox.tsx +22 -6
- package/tests/assets/sdk-r/components/create/override-sdk/field/Currency/Currency.tsx +22 -4
- package/tests/assets/sdk-r/components/create/override-sdk/field/Date/Date.tsx +35 -4
- package/tests/assets/sdk-r/components/create/override-sdk/field/DateTime/DateTime.tsx +35 -4
- package/tests/assets/sdk-r/components/create/override-sdk/field/Decimal/Decimal.tsx +22 -4
- package/tests/assets/sdk-r/components/create/override-sdk/field/Dropdown/Dropdown.tsx +48 -16
- package/tests/assets/sdk-r/components/create/override-sdk/field/Email/Email.tsx +21 -4
- package/tests/assets/sdk-r/components/create/override-sdk/field/Group/Group.tsx +28 -4
- package/tests/assets/sdk-r/components/create/override-sdk/field/Integer/Integer.tsx +21 -4
- package/tests/assets/sdk-r/components/create/override-sdk/field/Multiselect/Multiselect.tsx +42 -20
- package/tests/assets/sdk-r/components/create/override-sdk/field/Multiselect/utils.ts +5 -3
- package/tests/assets/sdk-r/components/create/override-sdk/field/ObjectReference/ObjectReference.tsx +554 -66
- package/tests/assets/sdk-r/components/create/override-sdk/field/ObjectReference/utils.ts +108 -20
- package/tests/assets/sdk-r/components/create/override-sdk/field/Percentage/Percentage.tsx +22 -4
- package/tests/assets/sdk-r/components/create/override-sdk/field/Phone/Phone.tsx +23 -4
- package/tests/assets/sdk-r/components/create/override-sdk/field/RadioButtons/RadioButtons.tsx +20 -4
- package/tests/assets/sdk-r/components/create/override-sdk/field/RichText/RichText.css +0 -79
- package/tests/assets/sdk-r/components/create/override-sdk/field/RichText/RichText.tsx +1 -1
- package/tests/assets/sdk-r/components/create/override-sdk/field/SelectableCard/SelectableCard.tsx +25 -10
- package/tests/assets/sdk-r/components/create/override-sdk/field/TextArea/TextArea.tsx +22 -4
- package/tests/assets/sdk-r/components/create/override-sdk/field/TextInput/TextInput.tsx +21 -4
- package/tests/assets/sdk-r/components/create/override-sdk/field/Time/Time.tsx +35 -4
- package/tests/assets/sdk-r/components/create/override-sdk/field/URL/URL.tsx +22 -4
- package/tests/assets/sdk-r/components/create/override-sdk/field/UserReference/UserReference.tsx +10 -6
- package/tests/assets/sdk-r/components/create/override-sdk/infra/Assignment/Assignment.tsx +36 -14
- package/tests/assets/sdk-r/components/create/override-sdk/infra/Assignment/useValidationBanner.ts +29 -0
- package/tests/assets/sdk-r/components/create/override-sdk/infra/DeferLoad/DeferLoad.tsx +31 -10
- package/tests/assets/sdk-r/components/create/override-sdk/infra/FlowContainer/FlowContainer.tsx +5 -6
- package/tests/assets/sdk-r/components/create/override-sdk/infra/LeftAlignVerticalTabs/LeftAlignVerticalTabs.tsx +1 -1
- package/tests/assets/sdk-r/components/create/override-sdk/infra/ModalViewContainer/DataViewActionButtons/DataViewActionButtons.tsx +138 -0
- package/tests/assets/sdk-r/components/create/override-sdk/infra/ModalViewContainer/ModalViewContainer.tsx +110 -64
- package/tests/assets/sdk-r/components/create/override-sdk/infra/MultiStep/MultiStep.css +63 -0
- package/tests/assets/sdk-r/components/create/override-sdk/infra/MultiStep/MultiStep.tsx +23 -52
- package/tests/assets/sdk-r/components/create/override-sdk/infra/NavBar/NavBar.tsx +8 -3
- package/tests/assets/sdk-r/components/create/override-sdk/infra/Reference/Reference.tsx +5 -0
- package/tests/assets/sdk-r/components/create/override-sdk/infra/RootContainer/RootContainer.tsx +4 -5
- package/tests/assets/sdk-r/components/create/override-sdk/infra/View/View.css +1 -0
- package/tests/assets/sdk-r/components/create/override-sdk/infra/View/View.tsx +10 -17
- package/tests/assets/sdk-r/components/create/override-sdk/infra/ViewContainer/ViewContainer.tsx +8 -10
- package/tests/assets/sdk-r/components/create/override-sdk/template/AppShell/AppShell.css +0 -4
- package/tests/assets/sdk-r/components/create/override-sdk/template/AppShell/AppShell.tsx +7 -1
- package/tests/assets/sdk-r/components/create/override-sdk/template/CaseSummary/CaseSummary.tsx +9 -42
- package/tests/assets/sdk-r/components/create/override-sdk/template/CaseView/CaseView.tsx +8 -2
- package/tests/assets/sdk-r/components/create/override-sdk/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +58 -3
- package/tests/assets/sdk-r/components/create/override-sdk/template/DataReference/DataReference.tsx +56 -33
- package/tests/assets/sdk-r/components/create/override-sdk/template/DataReference/SearchForm.tsx +3 -4
- package/tests/assets/sdk-r/components/create/override-sdk/template/DefaultForm/DefaultForm.css +71 -0
- package/tests/assets/sdk-r/components/create/override-sdk/template/DefaultForm/DefaultForm.tsx +45 -9
- package/tests/assets/sdk-r/components/create/override-sdk/template/FieldGroupTemplate/FieldGroupTemplate.tsx +10 -3
- package/tests/assets/sdk-r/components/create/override-sdk/template/ListView/ListView.tsx +139 -59
- package/tests/assets/sdk-r/components/create/override-sdk/template/ListView/hooks.ts +80 -13
- package/tests/assets/sdk-r/components/create/override-sdk/template/ListView/utils.ts +13 -3
- package/tests/assets/sdk-r/components/create/override-sdk/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +16 -1
- package/tests/assets/sdk-r/components/create/override-sdk/template/SimpleTableManual/SimpleTableManual.tsx +167 -93
- package/tests/assets/sdk-r/components/create/override-sdk/template/SimpleTableSelect/SimpleTableSelect.tsx +71 -56
- package/tests/assets/sdk-r/components/create/override-sdk/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +12 -7
- package/tests/assets/sdk-r/components/create/override-sdk/widget/Attachment/Attachment.tsx +119 -26
- package/tests/assets/sdk-r/components/create/override-sdk/widget/Attachment/AttachmentUtils.ts +1 -1
- package/tests/assets/sdk-r/components/create/override-sdk/widget/CaseHistory/CaseHistory.tsx +16 -12
- package/tests/assets/sdk-r/components/create/override-sdk/widget/FileUtility/FileUtility.tsx +40 -28
- package/tests/assets/sdk-r/components/create/override-sdk/widget/ToDo/ToDo.tsx +14 -6
- package/tests/assets/sdk-r/components/createAll/custom-constellation/field/Pega_DXIL_MySearchbox/utils.ts +1 -1
- package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyDetails/DetailsRender.tsx +1 -1
- package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyForm/DetailsRender.tsx +1 -1
- package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnDetails/DetailsRender.tsx +1 -1
- package/tests/assets/sdk-r/components/createAll/custom-constellation/template/Pega_DXIL_MyTwoColumnForm/DetailsRender.tsx +1 -1
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyBoolean/index.tsx +22 -6
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyCurrency/index.tsx +24 -8
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDate/demo.stories.tsx +8 -1
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDate/index.tsx +22 -13
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDateTime/demo.stories.tsx +9 -1
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDateTime/index.tsx +23 -14
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyDecimal/index.tsx +24 -8
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyEmail/index.tsx +32 -21
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyIconButtonURL/index.tsx +2 -2
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyInteger/index.tsx +26 -14
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyParagraph/index.tsx +26 -14
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPercentage/index.tsx +24 -10
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPhone/index.tsx +25 -10
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyPicklist/index.tsx +34 -8
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyRadiobuttons/index.tsx +21 -5
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MySearchbox/index.tsx +22 -9
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyText/index.tsx +25 -14
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTextInput/index.tsx +25 -10
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTimeOfDay/demo.stories.tsx +9 -1
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyTimeOfDay/index.tsx +22 -17
- package/tests/assets/sdk-r/components/createAll/custom-sdk/field/Pega_DXIL_MyURL/index.tsx +26 -14
- package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyForm/DefaultForm.css +82 -2
- package/tests/assets/sdk-r/components/createAll/custom-sdk/template/Pega_DXIL_MyForm/index.tsx +45 -8
- package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyCaseWidget/index.tsx +19 -15
- package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageCaseWidget/index.tsx +66 -15
- package/tests/assets/sdk-r/components/createAll/custom-sdk/widget/Pega_DXIL_MyPageWidget/index.tsx +2 -167
- package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/AlertBanner/AlertBanner.css +46 -0
- package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/AlertBanner/AlertBanner.tsx +37 -20
- package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.css +14 -0
- package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/CaseSummaryFields/CaseSummaryFields.tsx +57 -5
- package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/FieldGroup/FieldGroup.tsx +18 -11
- package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/FieldGroupList/FieldGroupList.tsx +1 -1
- package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/FieldValueList/FieldValueList.tsx +19 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/Operator/Operator.tsx +125 -74
- package/tests/assets/sdk-r/components/createAll/override-sdk/designSystemExtension/RichTextEditor/RichTextEditor.tsx +184 -90
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/AutoComplete/AutoComplete.tsx +372 -26
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/Checkbox/Checkbox.tsx +22 -6
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/Currency/Currency.tsx +22 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/Date/Date.tsx +35 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/DateTime/DateTime.tsx +35 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/Decimal/Decimal.tsx +22 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/Dropdown/Dropdown.tsx +48 -16
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/Email/Email.tsx +21 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/Group/Group.tsx +28 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/Integer/Integer.tsx +21 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/Multiselect/Multiselect.tsx +42 -20
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/Multiselect/utils.ts +5 -3
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/ObjectReference/ObjectReference.tsx +554 -66
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/ObjectReference/utils.ts +108 -20
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/Percentage/Percentage.tsx +22 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/Phone/Phone.tsx +23 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/RadioButtons/RadioButtons.tsx +20 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/RichText/RichText.css +0 -79
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/RichText/RichText.tsx +1 -1
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/SelectableCard/SelectableCard.tsx +25 -10
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/TextArea/TextArea.tsx +22 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/TextInput/TextInput.tsx +21 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/Time/Time.tsx +35 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/URL/URL.tsx +22 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/field/UserReference/UserReference.tsx +10 -6
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/Assignment/Assignment.tsx +36 -14
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/Assignment/useValidationBanner.ts +29 -0
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/DeferLoad/DeferLoad.tsx +31 -10
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/FlowContainer/FlowContainer.tsx +5 -6
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/LeftAlignVerticalTabs/LeftAlignVerticalTabs.tsx +1 -1
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/ModalViewContainer/DataViewActionButtons/DataViewActionButtons.tsx +138 -0
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/ModalViewContainer/ModalViewContainer.tsx +110 -64
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/MultiStep/MultiStep.css +63 -0
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/MultiStep/MultiStep.tsx +23 -52
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/NavBar/NavBar.tsx +8 -3
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/Reference/Reference.tsx +5 -0
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/RootContainer/RootContainer.tsx +4 -5
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/View/View.css +1 -0
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/View/View.tsx +10 -17
- package/tests/assets/sdk-r/components/createAll/override-sdk/infra/ViewContainer/ViewContainer.tsx +8 -10
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/AppShell/AppShell.css +0 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/AppShell/AppShell.tsx +7 -1
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/CaseSummary/CaseSummary.tsx +9 -42
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/CaseView/CaseView.tsx +8 -2
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/CaseViewActionsMenu/CaseViewActionsMenu.tsx +58 -3
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/DataReference/DataReference.tsx +56 -33
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/DataReference/SearchForm.tsx +3 -4
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/DefaultForm/DefaultForm.css +71 -0
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/DefaultForm/DefaultForm.tsx +45 -9
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/FieldGroupTemplate/FieldGroupTemplate.tsx +10 -3
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/ListView/ListView.tsx +139 -59
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/ListView/hooks.ts +80 -13
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/ListView/utils.ts +13 -3
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/MultiReferenceReadOnly/MultiReferenceReadOnly.tsx +16 -1
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/SimpleTableManual/SimpleTableManual.tsx +167 -93
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/SimpleTableSelect/SimpleTableSelect.tsx +71 -56
- package/tests/assets/sdk-r/components/createAll/override-sdk/template/SingleReferenceReadOnly/SingleReferenceReadOnly.tsx +12 -7
- package/tests/assets/sdk-r/components/createAll/override-sdk/widget/Attachment/Attachment.tsx +119 -26
- package/tests/assets/sdk-r/components/createAll/override-sdk/widget/Attachment/AttachmentUtils.ts +1 -1
- package/tests/assets/sdk-r/components/createAll/override-sdk/widget/CaseHistory/CaseHistory.tsx +16 -12
- package/tests/assets/sdk-r/components/createAll/override-sdk/widget/FileUtility/FileUtility.tsx +40 -28
- package/tests/assets/sdk-r/components/createAll/override-sdk/widget/ToDo/ToDo.tsx +14 -6
- package/SECURITY.md +0 -10
|
@@ -7,6 +7,8 @@ import { format } from '@pega/react-sdk-components/lib/components/helpers/format
|
|
|
7
7
|
import { dateFormatInfoDefault, getDateFormatInfo } from '@pega/react-sdk-components/lib/components/helpers/date-format-utils';
|
|
8
8
|
import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
|
|
9
9
|
import type { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
10
|
+
import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
|
|
11
|
+
import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
|
|
10
12
|
|
|
11
13
|
// Will return the date string in YYYY-MM-DD format which we'll be POSTing to the server
|
|
12
14
|
function getFormattedDate(date) {
|
|
@@ -15,6 +17,12 @@ function getFormattedDate(date) {
|
|
|
15
17
|
|
|
16
18
|
interface DateProps extends PConnFieldProps {
|
|
17
19
|
// If any, enter additional props that only exist on Date here
|
|
20
|
+
showFieldMessage?: boolean;
|
|
21
|
+
messageConfig?: {
|
|
22
|
+
content?: string;
|
|
23
|
+
visibility?: boolean;
|
|
24
|
+
};
|
|
25
|
+
variant?: string;
|
|
18
26
|
}
|
|
19
27
|
|
|
20
28
|
export default function Date(props: DateProps) {
|
|
@@ -22,14 +30,36 @@ export default function Date(props: DateProps) {
|
|
|
22
30
|
const TextInput = getComponentFromMap('TextInput');
|
|
23
31
|
const FieldValueList = getComponentFromMap('FieldValueList');
|
|
24
32
|
|
|
25
|
-
const {
|
|
33
|
+
const {
|
|
34
|
+
getPConnect,
|
|
35
|
+
label,
|
|
36
|
+
required,
|
|
37
|
+
disabled,
|
|
38
|
+
value,
|
|
39
|
+
validatemessage,
|
|
40
|
+
readOnly,
|
|
41
|
+
testId,
|
|
42
|
+
helperText,
|
|
43
|
+
displayMode,
|
|
44
|
+
hideLabel,
|
|
45
|
+
showFieldMessage,
|
|
46
|
+
messageConfig = {}
|
|
47
|
+
} = props;
|
|
26
48
|
|
|
27
49
|
const [dateValue, setDateValue] = useState<Dayjs | null>(value ? dayjs(value) : null);
|
|
28
50
|
|
|
29
51
|
const pConn = getPConnect();
|
|
30
52
|
const actions = pConn.getActionsApi();
|
|
31
53
|
const propName = (pConn.getStateProps() as any).value;
|
|
32
|
-
const
|
|
54
|
+
const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
|
|
55
|
+
const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
|
|
56
|
+
|
|
57
|
+
const status = useStatus({
|
|
58
|
+
showFieldMessage,
|
|
59
|
+
messageVisibility: messageConfig.visibility,
|
|
60
|
+
validatemessage,
|
|
61
|
+
readOnly
|
|
62
|
+
});
|
|
33
63
|
|
|
34
64
|
// Start with default dateFormatInfo
|
|
35
65
|
const dateFormatInfo = dateFormatInfoDefault;
|
|
@@ -47,7 +77,7 @@ export default function Date(props: DateProps) {
|
|
|
47
77
|
const formattedDate = format(props.value, 'date', {
|
|
48
78
|
format: dateFormatInfo.dateFormatString
|
|
49
79
|
});
|
|
50
|
-
return <FieldValueList name={hideLabel ? '' : label} value={formattedDate} />;
|
|
80
|
+
return <FieldValueList name={hideLabel ? '' : label} value={formattedDate} variant={props.variant} />;
|
|
51
81
|
}
|
|
52
82
|
|
|
53
83
|
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
@@ -85,7 +115,8 @@ export default function Date(props: DateProps) {
|
|
|
85
115
|
error: status === 'error',
|
|
86
116
|
helperText: helperTextToDisplay,
|
|
87
117
|
size: 'small',
|
|
88
|
-
InputProps: { ...testProps }
|
|
118
|
+
InputProps: { ...testProps },
|
|
119
|
+
sx: getFieldSx(status)
|
|
89
120
|
}
|
|
90
121
|
}}
|
|
91
122
|
onChange={handleChange}
|
|
@@ -7,9 +7,17 @@ import { format } from '@pega/react-sdk-components/lib/components/helpers/format
|
|
|
7
7
|
import { dateFormatInfoDefault, getDateFormatInfo } from '@pega/react-sdk-components/lib/components/helpers/date-format-utils';
|
|
8
8
|
import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
|
|
9
9
|
import type { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
10
|
+
import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
|
|
11
|
+
import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
|
|
10
12
|
|
|
11
13
|
interface DateTimeProps extends PConnFieldProps {
|
|
12
14
|
// If any, enter additional props that only exist on DateTime here
|
|
15
|
+
showFieldMessage?: boolean;
|
|
16
|
+
messageConfig?: {
|
|
17
|
+
content?: string;
|
|
18
|
+
visibility?: boolean;
|
|
19
|
+
};
|
|
20
|
+
variant?: string;
|
|
13
21
|
}
|
|
14
22
|
|
|
15
23
|
export default function DateTime(props: DateTimeProps) {
|
|
@@ -17,7 +25,21 @@ export default function DateTime(props: DateTimeProps) {
|
|
|
17
25
|
const TextInput = getComponentFromMap('TextInput');
|
|
18
26
|
const FieldValueList = getComponentFromMap('FieldValueList');
|
|
19
27
|
|
|
20
|
-
const {
|
|
28
|
+
const {
|
|
29
|
+
getPConnect,
|
|
30
|
+
label,
|
|
31
|
+
required,
|
|
32
|
+
disabled,
|
|
33
|
+
value = '',
|
|
34
|
+
validatemessage,
|
|
35
|
+
readOnly,
|
|
36
|
+
testId,
|
|
37
|
+
helperText,
|
|
38
|
+
displayMode,
|
|
39
|
+
hideLabel,
|
|
40
|
+
showFieldMessage,
|
|
41
|
+
messageConfig = {}
|
|
42
|
+
} = props;
|
|
21
43
|
|
|
22
44
|
const environmentInfo = PCore.getEnvironmentInfo();
|
|
23
45
|
const timezone = environmentInfo && environmentInfo.getTimeZone();
|
|
@@ -27,7 +49,15 @@ export default function DateTime(props: DateTimeProps) {
|
|
|
27
49
|
const pConn = getPConnect();
|
|
28
50
|
const actions = pConn.getActionsApi();
|
|
29
51
|
const propName = (pConn.getStateProps() as any).value;
|
|
30
|
-
const
|
|
52
|
+
const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
|
|
53
|
+
const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
|
|
54
|
+
|
|
55
|
+
const status = useStatus({
|
|
56
|
+
showFieldMessage,
|
|
57
|
+
messageVisibility: messageConfig.visibility,
|
|
58
|
+
validatemessage,
|
|
59
|
+
readOnly
|
|
60
|
+
});
|
|
31
61
|
|
|
32
62
|
// Start with default dateFormatInfo
|
|
33
63
|
const dateFormatInfo = dateFormatInfoDefault;
|
|
@@ -45,7 +75,7 @@ export default function DateTime(props: DateTimeProps) {
|
|
|
45
75
|
const formattedDateTime = format(props.value, 'datetime', {
|
|
46
76
|
format: `${dateFormatInfo.dateFormatString} hh:mm a`
|
|
47
77
|
});
|
|
48
|
-
return <FieldValueList name={hideLabel ? '' : label} value={formattedDateTime} />;
|
|
78
|
+
return <FieldValueList name={hideLabel ? '' : label} value={formattedDateTime} variant={props.variant} />;
|
|
49
79
|
}
|
|
50
80
|
|
|
51
81
|
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
@@ -93,7 +123,8 @@ export default function DateTime(props: DateTimeProps) {
|
|
|
93
123
|
error: status === 'error',
|
|
94
124
|
helperText: helperTextToDisplay,
|
|
95
125
|
size: 'small',
|
|
96
|
-
InputProps: { ...testProps }
|
|
126
|
+
InputProps: { ...testProps },
|
|
127
|
+
sx: getFieldSx(status)
|
|
97
128
|
}
|
|
98
129
|
}}
|
|
99
130
|
/>
|
|
@@ -6,6 +6,8 @@ import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event
|
|
|
6
6
|
import { format } from '@pega/react-sdk-components/lib/components/helpers/formatters';
|
|
7
7
|
import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
|
|
8
8
|
import type { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
9
|
+
import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
|
|
10
|
+
import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
|
|
9
11
|
|
|
10
12
|
/* Using react-number-format component here, since it allows formatting decimal values,
|
|
11
13
|
as per the locale.
|
|
@@ -17,6 +19,12 @@ interface DecimalProps extends PConnFieldProps {
|
|
|
17
19
|
decimalPrecision?: number;
|
|
18
20
|
showGroupSeparators?: boolean;
|
|
19
21
|
formatter?: string;
|
|
22
|
+
showFieldMessage?: boolean;
|
|
23
|
+
messageConfig?: {
|
|
24
|
+
content?: string;
|
|
25
|
+
visibility?: boolean;
|
|
26
|
+
};
|
|
27
|
+
variant?: string;
|
|
20
28
|
}
|
|
21
29
|
|
|
22
30
|
export default function Decimal(props: DecimalProps) {
|
|
@@ -30,7 +38,6 @@ export default function Decimal(props: DecimalProps) {
|
|
|
30
38
|
disabled,
|
|
31
39
|
value = '',
|
|
32
40
|
validatemessage,
|
|
33
|
-
status,
|
|
34
41
|
/* onChange, onBlur, */
|
|
35
42
|
readOnly,
|
|
36
43
|
helperText,
|
|
@@ -41,7 +48,9 @@ export default function Decimal(props: DecimalProps) {
|
|
|
41
48
|
showGroupSeparators,
|
|
42
49
|
testId,
|
|
43
50
|
placeholder,
|
|
44
|
-
formatter
|
|
51
|
+
formatter,
|
|
52
|
+
showFieldMessage,
|
|
53
|
+
messageConfig = {}
|
|
45
54
|
} = props;
|
|
46
55
|
|
|
47
56
|
const [values, setValues] = useState(value.toString());
|
|
@@ -49,7 +58,15 @@ export default function Decimal(props: DecimalProps) {
|
|
|
49
58
|
const pConn = getPConnect();
|
|
50
59
|
const actions = pConn.getActionsApi();
|
|
51
60
|
const propName = (pConn.getStateProps() as any).value;
|
|
52
|
-
const
|
|
61
|
+
const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
|
|
62
|
+
const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
|
|
63
|
+
|
|
64
|
+
const status = useStatus({
|
|
65
|
+
showFieldMessage,
|
|
66
|
+
messageVisibility: messageConfig.visibility,
|
|
67
|
+
validatemessage,
|
|
68
|
+
readOnly
|
|
69
|
+
});
|
|
53
70
|
|
|
54
71
|
const theSymbols = getCurrencyCharacters(currencyISOCode);
|
|
55
72
|
const theCurrDec = theSymbols.theDecimalIndicator;
|
|
@@ -76,7 +93,7 @@ export default function Decimal(props: DecimalProps) {
|
|
|
76
93
|
}
|
|
77
94
|
|
|
78
95
|
if (displayMode === 'DISPLAY_ONLY') {
|
|
79
|
-
return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} />;
|
|
96
|
+
return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} variant={props.variant} />;
|
|
80
97
|
}
|
|
81
98
|
|
|
82
99
|
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
@@ -117,6 +134,7 @@ export default function Decimal(props: DecimalProps) {
|
|
|
117
134
|
decimalScale={readOnly && formatter === 'Currency' ? undefined : decimalPrecision}
|
|
118
135
|
slotProps={{ input: { ...readOnlyProp, inputProps: { ...testProps } } }}
|
|
119
136
|
customInput={TextField}
|
|
137
|
+
sx={getFieldSx(status)}
|
|
120
138
|
/>
|
|
121
139
|
);
|
|
122
140
|
}
|
|
@@ -7,6 +7,9 @@ import { getDataPage } from '@pega/react-sdk-components/lib/components/helpers/d
|
|
|
7
7
|
import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
|
|
8
8
|
import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
|
|
9
9
|
import type { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
10
|
+
import { useDeepMemo } from '@pega/react-sdk-components/lib/components/field/Multiselect/utils';
|
|
11
|
+
import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
|
|
12
|
+
import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
|
|
10
13
|
|
|
11
14
|
interface IOption {
|
|
12
15
|
key: string;
|
|
@@ -56,6 +59,12 @@ interface DropdownProps extends PConnFieldProps {
|
|
|
56
59
|
datasourceMetadata?: any;
|
|
57
60
|
parameters?: any;
|
|
58
61
|
columns: any[];
|
|
62
|
+
showFieldMessage?: boolean;
|
|
63
|
+
messageConfig?: {
|
|
64
|
+
content?: string;
|
|
65
|
+
visibility?: boolean;
|
|
66
|
+
};
|
|
67
|
+
variant?: string;
|
|
59
68
|
}
|
|
60
69
|
|
|
61
70
|
export default function Dropdown(props: DropdownProps) {
|
|
@@ -69,7 +78,6 @@ export default function Dropdown(props: DropdownProps) {
|
|
|
69
78
|
disabled,
|
|
70
79
|
value = '',
|
|
71
80
|
validatemessage,
|
|
72
|
-
status,
|
|
73
81
|
readOnly,
|
|
74
82
|
testId,
|
|
75
83
|
helperText,
|
|
@@ -78,7 +86,9 @@ export default function Dropdown(props: DropdownProps) {
|
|
|
78
86
|
datasourceMetadata,
|
|
79
87
|
hideLabel,
|
|
80
88
|
onRecordChange,
|
|
81
|
-
fieldMetadata
|
|
89
|
+
fieldMetadata,
|
|
90
|
+
showFieldMessage,
|
|
91
|
+
messageConfig = {}
|
|
82
92
|
} = props;
|
|
83
93
|
let { placeholder = '' } = props;
|
|
84
94
|
const context = getPConnect().getContextName();
|
|
@@ -86,13 +96,21 @@ export default function Dropdown(props: DropdownProps) {
|
|
|
86
96
|
placeholder = placeholder || 'Select...';
|
|
87
97
|
const [options, setOptions] = useState<IOption[]>([]);
|
|
88
98
|
const [theDatasource, setDatasource] = useState<any[] | null>(null);
|
|
89
|
-
const helperTextToDisplay = validatemessage || helperText;
|
|
90
99
|
|
|
91
100
|
const thePConn = getPConnect();
|
|
92
101
|
const actionsApi = thePConn.getActionsApi();
|
|
93
102
|
const propName = (thePConn.getStateProps() as any).value;
|
|
94
103
|
const className = thePConn.getCaseInfo().getClassName();
|
|
95
104
|
const refName = propName?.slice(propName.lastIndexOf('.') + 1);
|
|
105
|
+
const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
|
|
106
|
+
const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
|
|
107
|
+
|
|
108
|
+
const status = useStatus({
|
|
109
|
+
showFieldMessage,
|
|
110
|
+
messageVisibility: messageConfig.visibility,
|
|
111
|
+
validatemessage,
|
|
112
|
+
readOnly
|
|
113
|
+
});
|
|
96
114
|
|
|
97
115
|
if (!isDeepEqual(datasource, theDatasource)) {
|
|
98
116
|
// inbound datasource is different, so update theDatasource (to trigger useEffect)
|
|
@@ -124,6 +142,10 @@ export default function Dropdown(props: DropdownProps) {
|
|
|
124
142
|
}
|
|
125
143
|
columns = preProcessColumns(columns);
|
|
126
144
|
|
|
145
|
+
const memoizedParameters = useDeepMemo(() => {
|
|
146
|
+
return parameters;
|
|
147
|
+
}, [parameters]);
|
|
148
|
+
|
|
127
149
|
useEffect(() => {
|
|
128
150
|
if (theDatasource) {
|
|
129
151
|
const list = Utils.getOptionList(props, getPConnect().getDataObject('')); // 1st arg empty string until typedef marked correctly
|
|
@@ -138,21 +160,29 @@ export default function Dropdown(props: DropdownProps) {
|
|
|
138
160
|
|
|
139
161
|
useEffect(() => {
|
|
140
162
|
if (listType !== 'associated' && typeof datasource === 'string') {
|
|
141
|
-
getDataPage(datasource, parameters, context)
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
163
|
+
getDataPage(datasource, parameters, context)
|
|
164
|
+
.then((results: any) => {
|
|
165
|
+
const optionsData: any[] = [];
|
|
166
|
+
const displayColumn = getDisplayFieldsMetaData(columns);
|
|
167
|
+
results?.forEach(element => {
|
|
168
|
+
const val = element[displayColumn.primary]?.toString();
|
|
169
|
+
const obj = {
|
|
170
|
+
key: element[displayColumn.key] || element.pyGUID,
|
|
171
|
+
value: val
|
|
172
|
+
};
|
|
173
|
+
optionsData.push(obj);
|
|
174
|
+
});
|
|
175
|
+
optionsData.unshift({
|
|
176
|
+
key: placeholder,
|
|
177
|
+
value: thePConn.getLocalizedValue(placeholder, '', '')
|
|
178
|
+
});
|
|
179
|
+
setOptions(optionsData);
|
|
180
|
+
})
|
|
181
|
+
.catch(e => {
|
|
182
|
+
console.error(e);
|
|
151
183
|
});
|
|
152
|
-
setOptions(optionsData);
|
|
153
|
-
});
|
|
154
184
|
}
|
|
155
|
-
}, []);
|
|
185
|
+
}, [memoizedParameters]);
|
|
156
186
|
|
|
157
187
|
const metaData = Array.isArray(fieldMetadata) ? fieldMetadata.filter(field => field?.classID === className)[0] : fieldMetadata;
|
|
158
188
|
|
|
@@ -171,6 +201,7 @@ export default function Dropdown(props: DropdownProps) {
|
|
|
171
201
|
<FieldValueList
|
|
172
202
|
name={hideLabel ? '' : label}
|
|
173
203
|
value={thePConn.getLocalizedValue(val, localePath, thePConn.getLocaleRuleNameFromKeys(localeClass, localeContext, localeName))}
|
|
204
|
+
variant={props.variant}
|
|
174
205
|
/>
|
|
175
206
|
);
|
|
176
207
|
}
|
|
@@ -227,6 +258,7 @@ export default function Dropdown(props: DropdownProps) {
|
|
|
227
258
|
slotProps={{
|
|
228
259
|
input: { ...readOnlyProp, ...testProps }
|
|
229
260
|
}}
|
|
261
|
+
sx={getFieldSx(status)}
|
|
230
262
|
>
|
|
231
263
|
{options.map((option: any) => (
|
|
232
264
|
<MenuItem key={option.key} value={option.key}>
|
|
@@ -5,9 +5,17 @@ import MailOutlineIcon from '@mui/icons-material/MailOutline';
|
|
|
5
5
|
import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
|
|
6
6
|
import type { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
7
7
|
import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
|
|
8
|
+
import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
|
|
9
|
+
import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
|
|
8
10
|
|
|
9
11
|
interface EmailProps extends PConnFieldProps {
|
|
10
12
|
// If any, enter additional props that only exist on Date here
|
|
13
|
+
showFieldMessage?: boolean;
|
|
14
|
+
messageConfig?: {
|
|
15
|
+
content?: string;
|
|
16
|
+
visibility?: boolean;
|
|
17
|
+
};
|
|
18
|
+
variant?: string;
|
|
11
19
|
}
|
|
12
20
|
|
|
13
21
|
export default function Email(props: EmailProps) {
|
|
@@ -22,20 +30,28 @@ export default function Email(props: EmailProps) {
|
|
|
22
30
|
disabled,
|
|
23
31
|
value = '',
|
|
24
32
|
validatemessage,
|
|
25
|
-
status,
|
|
26
33
|
readOnly,
|
|
27
34
|
testId,
|
|
28
35
|
helperText,
|
|
29
36
|
displayMode,
|
|
30
37
|
hideLabel,
|
|
31
|
-
placeholder
|
|
38
|
+
placeholder,
|
|
39
|
+
showFieldMessage,
|
|
40
|
+
messageConfig = {}
|
|
32
41
|
} = props;
|
|
33
42
|
|
|
34
43
|
const pConn = getPConnect();
|
|
35
44
|
const actions = pConn.getActionsApi();
|
|
36
45
|
const propName = (pConn.getStateProps() as any).value;
|
|
46
|
+
const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
|
|
47
|
+
const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
|
|
37
48
|
|
|
38
|
-
const
|
|
49
|
+
const status = useStatus({
|
|
50
|
+
showFieldMessage,
|
|
51
|
+
messageVisibility: messageConfig.visibility,
|
|
52
|
+
validatemessage,
|
|
53
|
+
readOnly
|
|
54
|
+
});
|
|
39
55
|
|
|
40
56
|
const [inputValue, setInputValue] = useState('');
|
|
41
57
|
|
|
@@ -44,7 +60,7 @@ export default function Email(props: EmailProps) {
|
|
|
44
60
|
}, [value]);
|
|
45
61
|
|
|
46
62
|
if (displayMode === 'DISPLAY_ONLY') {
|
|
47
|
-
return <FieldValueList name={hideLabel ? '' : label} value={value} />;
|
|
63
|
+
return <FieldValueList name={hideLabel ? '' : label} value={value} variant={props.variant} />;
|
|
48
64
|
}
|
|
49
65
|
|
|
50
66
|
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
@@ -91,6 +107,7 @@ export default function Email(props: EmailProps) {
|
|
|
91
107
|
inputProps: { ...testProps }
|
|
92
108
|
}
|
|
93
109
|
}}
|
|
110
|
+
sx={getFieldSx(status)}
|
|
94
111
|
/>
|
|
95
112
|
);
|
|
96
113
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ReactElement, useMemo } from 'react';
|
|
2
2
|
import Grid2 from '@mui/material/Grid2';
|
|
3
3
|
import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
|
|
4
|
+
import useCollapsibleState from '@pega/react-sdk-components/lib/hooks/useCollapsibleState';
|
|
4
5
|
import type { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
5
6
|
|
|
6
7
|
interface GroupProps extends PConnFieldProps {
|
|
@@ -8,16 +9,33 @@ interface GroupProps extends PConnFieldProps {
|
|
|
8
9
|
heading: string;
|
|
9
10
|
showHeading: boolean;
|
|
10
11
|
instructions?: string;
|
|
11
|
-
|
|
12
|
+
collapseOnLoad?: any;
|
|
12
13
|
type: string;
|
|
14
|
+
defaultCollapsed?: any;
|
|
15
|
+
collapsible?: any;
|
|
13
16
|
}
|
|
14
17
|
|
|
15
18
|
export default function Group(props: GroupProps) {
|
|
16
19
|
const FieldGroup = getComponentFromMap('FieldGroup');
|
|
20
|
+
const {
|
|
21
|
+
children,
|
|
22
|
+
displayMode,
|
|
23
|
+
type,
|
|
24
|
+
collapseOnLoad = 'none',
|
|
25
|
+
collapsible,
|
|
26
|
+
defaultCollapsed = false,
|
|
27
|
+
showHeading = true,
|
|
28
|
+
heading,
|
|
29
|
+
instructions
|
|
30
|
+
} = props;
|
|
31
|
+
const isReadOnly = displayMode === 'DISPLAY_ONLY';
|
|
32
|
+
const { isCollapsibleMode, collapsed, setCollapsed } = useCollapsibleState(collapseOnLoad, collapsible, defaultCollapsed, showHeading);
|
|
17
33
|
|
|
18
|
-
const
|
|
34
|
+
const onToggleCollapsed = () => {
|
|
35
|
+
if (collapsed === undefined) return;
|
|
19
36
|
|
|
20
|
-
|
|
37
|
+
setCollapsed(current => !current);
|
|
38
|
+
};
|
|
21
39
|
|
|
22
40
|
const content = useMemo(() => {
|
|
23
41
|
return (
|
|
@@ -34,7 +52,13 @@ export default function Group(props: GroupProps) {
|
|
|
34
52
|
if (!children) return null;
|
|
35
53
|
|
|
36
54
|
return (
|
|
37
|
-
<FieldGroup
|
|
55
|
+
<FieldGroup
|
|
56
|
+
name={showHeading ? heading : undefined}
|
|
57
|
+
isCollapsibleMode={isCollapsibleMode}
|
|
58
|
+
collapsed={collapsed}
|
|
59
|
+
onToggleCollapsed={onToggleCollapsed}
|
|
60
|
+
instructions={instructions}
|
|
61
|
+
>
|
|
38
62
|
{content}
|
|
39
63
|
</FieldGroup>
|
|
40
64
|
);
|
|
@@ -4,9 +4,17 @@ import { TextField } from '@mui/material';
|
|
|
4
4
|
import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
|
|
5
5
|
import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
|
|
6
6
|
import type { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
7
|
+
import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
|
|
8
|
+
import { getFieldSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
|
|
7
9
|
|
|
8
10
|
interface IntegerProps extends PConnFieldProps {
|
|
9
11
|
// If any, enter additional props that only exist on Integer here
|
|
12
|
+
showFieldMessage?: boolean;
|
|
13
|
+
messageConfig?: {
|
|
14
|
+
content?: string;
|
|
15
|
+
visibility?: boolean;
|
|
16
|
+
};
|
|
17
|
+
variant?: string;
|
|
10
18
|
}
|
|
11
19
|
|
|
12
20
|
export default function Integer(props: IntegerProps) {
|
|
@@ -21,20 +29,28 @@ export default function Integer(props: IntegerProps) {
|
|
|
21
29
|
disabled,
|
|
22
30
|
value = '',
|
|
23
31
|
validatemessage,
|
|
24
|
-
status,
|
|
25
32
|
readOnly,
|
|
26
33
|
testId,
|
|
27
34
|
helperText,
|
|
28
35
|
displayMode,
|
|
29
36
|
hideLabel,
|
|
30
|
-
placeholder
|
|
37
|
+
placeholder,
|
|
38
|
+
showFieldMessage,
|
|
39
|
+
messageConfig = {}
|
|
31
40
|
} = props;
|
|
32
41
|
|
|
33
42
|
const pConn = getPConnect();
|
|
34
43
|
const actions = pConn.getActionsApi();
|
|
35
44
|
const propName = (pConn.getStateProps() as any).value;
|
|
45
|
+
const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
|
|
46
|
+
const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
|
|
36
47
|
|
|
37
|
-
const
|
|
48
|
+
const status = useStatus({
|
|
49
|
+
showFieldMessage,
|
|
50
|
+
messageVisibility: messageConfig.visibility,
|
|
51
|
+
validatemessage,
|
|
52
|
+
readOnly
|
|
53
|
+
});
|
|
38
54
|
|
|
39
55
|
const [inputValue, setInputValue] = useState('');
|
|
40
56
|
|
|
@@ -43,7 +59,7 @@ export default function Integer(props: IntegerProps) {
|
|
|
43
59
|
}, [value]);
|
|
44
60
|
|
|
45
61
|
if (displayMode === 'DISPLAY_ONLY') {
|
|
46
|
-
return <FieldValueList name={hideLabel ? '' : label} value={value} />;
|
|
62
|
+
return <FieldValueList name={hideLabel ? '' : label} value={value} variant={props.variant} />;
|
|
47
63
|
}
|
|
48
64
|
|
|
49
65
|
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
@@ -95,6 +111,7 @@ export default function Integer(props: IntegerProps) {
|
|
|
95
111
|
slotProps={{
|
|
96
112
|
htmlInput: { inputMode: 'numeric', pattern: '[0-9]*', ...testProps }
|
|
97
113
|
}}
|
|
114
|
+
sx={getFieldSx(status)}
|
|
98
115
|
/>
|
|
99
116
|
);
|
|
100
117
|
}
|
|
@@ -44,13 +44,32 @@ export default function Multiselect(props) {
|
|
|
44
44
|
}
|
|
45
45
|
];
|
|
46
46
|
let secondaryColumns: any = [];
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
// Read columnsFormatter from raw (unresolved) metadata to get field property paths
|
|
48
|
+
// (e.g. "@P .pyLabel") instead of resolved data values (e.g. "New Complex Fields").
|
|
49
|
+
// This matches Constellation's approach: pConn.getRawMetadata()?.config?.columnsFormatter
|
|
50
|
+
const columnsFormatter = (getPConnect().getRawMetadata()?.config as any)?.columnsFormatter;
|
|
51
|
+
const secondaryFieldsFromFormatter = columnsFormatter
|
|
52
|
+
? columnsFormatter
|
|
53
|
+
.map(item => {
|
|
54
|
+
const property = item?.config?.value;
|
|
55
|
+
if (typeof property === 'string') {
|
|
56
|
+
if (property.startsWith('@USER ')) return property.substring(6);
|
|
57
|
+
if (property.startsWith('@P ')) return property.substring(3);
|
|
58
|
+
return property;
|
|
59
|
+
}
|
|
60
|
+
return undefined;
|
|
61
|
+
})
|
|
62
|
+
.filter(Boolean)
|
|
63
|
+
: undefined;
|
|
64
|
+
const updatedSecondaryFields = secondaryFieldsFromFormatter || secondaryFields;
|
|
65
|
+
if (updatedSecondaryFields) {
|
|
66
|
+
secondaryColumns = updatedSecondaryFields.map(secondaryField => ({
|
|
67
|
+
value: typeof secondaryField === 'string' ? secondaryField : undefined,
|
|
50
68
|
display: 'true',
|
|
51
69
|
secondary: 'true',
|
|
52
70
|
useForSearch: 'true'
|
|
53
71
|
}));
|
|
72
|
+
secondaryColumns = secondaryColumns.filter(col => col.value);
|
|
54
73
|
} else {
|
|
55
74
|
secondaryColumns = [
|
|
56
75
|
{
|
|
@@ -105,28 +124,14 @@ export default function Multiselect(props) {
|
|
|
105
124
|
);
|
|
106
125
|
|
|
107
126
|
const displayFieldMeta = listType !== 'associated' ? getDisplayFieldsMetaData(dataConfig.columns) : null;
|
|
108
|
-
const getCaseListBasedOnParamsDebounced: any = useRef();
|
|
127
|
+
const getCaseListBasedOnParamsDebounced: any = useRef(null);
|
|
109
128
|
const pConn = getPConnect();
|
|
110
129
|
const contextName = pConn.getContextName();
|
|
111
130
|
const listActions = pConn.getListActions();
|
|
112
|
-
const dataApiObj: any = useRef();
|
|
131
|
+
const dataApiObj: any = useRef(null);
|
|
113
132
|
|
|
114
133
|
// main search function trigger
|
|
115
134
|
const getCaseListBasedOnParams = async (searchText, group, selectedRows, currentItemsTree, isTriggeredFromSearch = false) => {
|
|
116
|
-
if (referenceList && referenceList.length > 0) {
|
|
117
|
-
selectedRows = await listActions.getSelectedRows(true);
|
|
118
|
-
|
|
119
|
-
selectedRows =
|
|
120
|
-
selectedRows &&
|
|
121
|
-
selectedRows.map(item => {
|
|
122
|
-
return {
|
|
123
|
-
id: item[selectionKey.startsWith('.') ? selectionKey.substring(1) : selectionKey],
|
|
124
|
-
primary: item[primaryField.startsWith('.') ? primaryField.substring(1) : primaryField]
|
|
125
|
-
};
|
|
126
|
-
});
|
|
127
|
-
setSelectedItems(selectedRows);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
135
|
// if items tree is null or text search is triggered then always should use fresh data object, we use the original object
|
|
131
136
|
const initalItemsTree = isTriggeredFromSearch || !currentItemsTree ? [...itemsTreeBaseData] : [...currentItemsTree];
|
|
132
137
|
const res = await doSearch(
|
|
@@ -141,6 +146,20 @@ export default function Multiselect(props) {
|
|
|
141
146
|
selectedRows || []
|
|
142
147
|
);
|
|
143
148
|
setItemsTree(res);
|
|
149
|
+
if (referenceList && referenceList.length > 0) {
|
|
150
|
+
selectedRows = await listActions.getSelectedRows(true);
|
|
151
|
+
selectedRows =
|
|
152
|
+
selectedRows &&
|
|
153
|
+
selectedRows.map(item => {
|
|
154
|
+
const id = item[selectionKey.startsWith('.') ? selectionKey.substring(1) : selectionKey];
|
|
155
|
+
let primary = item[primaryField.startsWith('.') ? primaryField.substring(1) : primaryField];
|
|
156
|
+
if (primary === undefined) {
|
|
157
|
+
primary = res.find(r => r.id === id)?.primary;
|
|
158
|
+
}
|
|
159
|
+
return { id, primary, selected: true };
|
|
160
|
+
});
|
|
161
|
+
setSelectedItems(selectedRows);
|
|
162
|
+
}
|
|
144
163
|
};
|
|
145
164
|
|
|
146
165
|
useEffect(() => {
|
|
@@ -162,6 +181,9 @@ export default function Multiselect(props) {
|
|
|
162
181
|
if (!isGroupData) {
|
|
163
182
|
getCaseListBasedOnParamsDebounced.current(inputValue ?? '', '', [...selectedItems], [...itemsTree]);
|
|
164
183
|
}
|
|
184
|
+
})
|
|
185
|
+
.catch(e => {
|
|
186
|
+
console.error(e);
|
|
165
187
|
});
|
|
166
188
|
}
|
|
167
189
|
}, [dataConfig, listType, dataConfig.columns, inputValue, dataConfig.groupColumnsConfig, showSecondaryInSearchOnly]);
|
|
@@ -220,7 +242,7 @@ export default function Multiselect(props) {
|
|
|
220
242
|
fullWidth
|
|
221
243
|
options={itemsTree}
|
|
222
244
|
disableCloseOnSelect
|
|
223
|
-
|
|
245
|
+
isOptionEqualToValue={(option: any, val: any) => option?.id === val?.id}
|
|
224
246
|
getOptionLabel={(option: any) => option?.primary}
|
|
225
247
|
onChange={handleChange}
|
|
226
248
|
value={selectedItems}
|
|
@@ -12,7 +12,7 @@ export const setVisibilityForList = (c11nEnv, visibility) => {
|
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
const useDeepMemo = (memoFn, key) => {
|
|
15
|
-
const ref: any = useRef();
|
|
15
|
+
const ref: any = useRef(null);
|
|
16
16
|
if (!ref.current || !equal(key, ref.current.key)) {
|
|
17
17
|
ref.current = { key, value: memoFn() };
|
|
18
18
|
}
|
|
@@ -22,8 +22,10 @@ const useDeepMemo = (memoFn, key) => {
|
|
|
22
22
|
const preProcessColumns = columns => {
|
|
23
23
|
return columns?.map(col => {
|
|
24
24
|
const tempColObj = { ...col };
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
if (typeof col.value === 'string') {
|
|
26
|
+
tempColObj.value = col.value.startsWith('.') ? col.value.substring(1) : col.value;
|
|
27
|
+
}
|
|
28
|
+
if (typeof col.setProperty === 'string') {
|
|
27
29
|
tempColObj.setProperty = col.setProperty && col.setProperty.startsWith('.') ? col.setProperty.substring(1) : col.setProperty;
|
|
28
30
|
}
|
|
29
31
|
return tempColObj;
|