@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
|
@@ -2,9 +2,13 @@ import { Utils } from '@pega/react-sdk-components/lib/components/helpers/utils';
|
|
|
2
2
|
|
|
3
3
|
export const SELECTION_MODE = { SINGLE: 'single', MULTI: 'multi' };
|
|
4
4
|
|
|
5
|
-
const getLeafNameFromPropertyName = property => property?.substr(property.lastIndexOf('.'));
|
|
5
|
+
const getLeafNameFromPropertyName = (property: string) => property?.substr(property.lastIndexOf('.') + 1);
|
|
6
6
|
|
|
7
|
-
const isSelfReferencedProperty = (param, referenceProp) =>
|
|
7
|
+
const isSelfReferencedProperty = (param: string, referenceProp: string) => {
|
|
8
|
+
const propName = getPropertyValue(param);
|
|
9
|
+
const propNameAfterDot = propName.substring(propName.indexOf('.') + 1);
|
|
10
|
+
return referenceProp?.includes(propNameAfterDot);
|
|
11
|
+
};
|
|
8
12
|
|
|
9
13
|
export const AT_FILTEREDLIST = '@FILTERED_LIST';
|
|
10
14
|
export const AT_PROPERTY = '@P';
|
|
@@ -17,12 +21,12 @@ export const PAGELIST = '!PL!';
|
|
|
17
21
|
export const PERIOD = '.';
|
|
18
22
|
const AT = '@';
|
|
19
23
|
|
|
20
|
-
export function updatePageListPropertyValue(value) {
|
|
24
|
+
export function updatePageListPropertyValue(value: string) {
|
|
21
25
|
value = value.substring(0, value.indexOf(SQUARE_BRACKET_START)) + value.substring(value.indexOf(SQUARE_BRACKET_END) + 1);
|
|
22
26
|
return value;
|
|
23
27
|
}
|
|
24
28
|
|
|
25
|
-
export function getPropertyValue(value) {
|
|
29
|
+
export function getPropertyValue(value: string) {
|
|
26
30
|
if (value.startsWith(AT)) {
|
|
27
31
|
value = value.substring(value.indexOf(' ') + 1);
|
|
28
32
|
if (value.startsWith(PERIOD)) value = value.substring(1);
|
|
@@ -33,25 +37,38 @@ export function getPropertyValue(value) {
|
|
|
33
37
|
return value;
|
|
34
38
|
}
|
|
35
39
|
|
|
36
|
-
const
|
|
40
|
+
const getReferenceProp = (config: any) => {
|
|
41
|
+
if (config.mode === SELECTION_MODE.MULTI) {
|
|
42
|
+
return config?.pagelistValue?.substring(4) ?? '';
|
|
43
|
+
}
|
|
44
|
+
const property = config.value;
|
|
45
|
+
const arr = property?.split('.') ?? [];
|
|
46
|
+
if (arr.length > 1) {
|
|
47
|
+
arr.pop();
|
|
48
|
+
return arr.slice(1).join('.');
|
|
49
|
+
}
|
|
50
|
+
return '';
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const getCompositeKeys = (c11nEnv: any, property: string) => {
|
|
37
54
|
const { datasource: { parameters = {} } = {} } = c11nEnv.getFieldMetadata(property) || {};
|
|
38
|
-
return Object.values(parameters).reduce((compositeKeys:
|
|
39
|
-
if (isSelfReferencedProperty(
|
|
55
|
+
return Object.values(parameters).reduce((compositeKeys: string[], param: any) => {
|
|
56
|
+
if (isSelfReferencedProperty(param, property)) {
|
|
40
57
|
let propName = getPropertyValue(param);
|
|
41
|
-
propName = propName.substring(propName.indexOf('.'));
|
|
58
|
+
propName = propName.substring(propName.indexOf('.') + 1);
|
|
42
59
|
compositeKeys.push(propName);
|
|
43
60
|
}
|
|
44
61
|
return compositeKeys;
|
|
45
62
|
}, []);
|
|
46
63
|
};
|
|
47
64
|
|
|
48
|
-
export const generateColumns = (config, pConn, referenceType) => {
|
|
65
|
+
export const generateColumns = (config: any, pConn: any, referenceType: string) => {
|
|
49
66
|
const displayField = getLeafNameFromPropertyName(config.displayField);
|
|
50
|
-
const referenceProp = config
|
|
51
|
-
const compositeKeys
|
|
52
|
-
let value = getLeafNameFromPropertyName(config.value);
|
|
67
|
+
const referenceProp = getReferenceProp(config);
|
|
68
|
+
const compositeKeys = getCompositeKeys(pConn, referenceProp);
|
|
69
|
+
let value = getLeafNameFromPropertyName(config.mode === SELECTION_MODE.MULTI ? config.selectionKey : config.value);
|
|
53
70
|
|
|
54
|
-
const columns: any = [];
|
|
71
|
+
const columns: any[] = [];
|
|
55
72
|
if (displayField) {
|
|
56
73
|
columns.push({
|
|
57
74
|
value: displayField,
|
|
@@ -61,6 +78,9 @@ export const generateColumns = (config, pConn, referenceType) => {
|
|
|
61
78
|
});
|
|
62
79
|
}
|
|
63
80
|
if (value && compositeKeys.indexOf(value) !== -1) {
|
|
81
|
+
if (!config.value) {
|
|
82
|
+
config.value = `@P .${referenceProp}.${value}`;
|
|
83
|
+
}
|
|
64
84
|
columns.push({
|
|
65
85
|
value,
|
|
66
86
|
setProperty: 'Associated property',
|
|
@@ -68,7 +88,7 @@ export const generateColumns = (config, pConn, referenceType) => {
|
|
|
68
88
|
});
|
|
69
89
|
} else {
|
|
70
90
|
const actualValue = compositeKeys.length > 0 ? compositeKeys[0] : value;
|
|
71
|
-
config.value = `@P .${referenceProp}
|
|
91
|
+
config.value = `@P .${referenceProp}.${actualValue}`;
|
|
72
92
|
value = actualValue;
|
|
73
93
|
columns.push({
|
|
74
94
|
value: actualValue,
|
|
@@ -79,9 +99,9 @@ export const generateColumns = (config, pConn, referenceType) => {
|
|
|
79
99
|
|
|
80
100
|
config.datasource = {
|
|
81
101
|
fields: {
|
|
82
|
-
key: getLeafNameFromPropertyName(config.value)
|
|
83
|
-
text: getLeafNameFromPropertyName(config.displayField)
|
|
84
|
-
value: getLeafNameFromPropertyName(config.value)
|
|
102
|
+
key: `.${getLeafNameFromPropertyName(config.value)}`,
|
|
103
|
+
text: `.${getLeafNameFromPropertyName(config.displayField)}`,
|
|
104
|
+
value: `.${getLeafNameFromPropertyName(config.value)}`
|
|
85
105
|
}
|
|
86
106
|
};
|
|
87
107
|
|
|
@@ -95,17 +115,85 @@ export const generateColumns = (config, pConn, referenceType) => {
|
|
|
95
115
|
}
|
|
96
116
|
|
|
97
117
|
compositeKeys.forEach(key => {
|
|
118
|
+
const descriptorsFieldName = `.${key}`;
|
|
98
119
|
if (value !== key)
|
|
99
120
|
columns.push({
|
|
100
|
-
value:
|
|
121
|
+
value: descriptorsFieldName,
|
|
101
122
|
display: 'false',
|
|
102
123
|
secondary: 'true',
|
|
103
124
|
useForSearch: false,
|
|
104
|
-
setProperty: `.${referenceProp}
|
|
125
|
+
setProperty: `.${referenceProp}.${key}`
|
|
105
126
|
});
|
|
106
127
|
});
|
|
107
128
|
|
|
108
129
|
config.columns = columns;
|
|
109
130
|
};
|
|
110
131
|
|
|
111
|
-
export const
|
|
132
|
+
export const addCompositeKeysToConfig = (config: any, pConn: any) => {
|
|
133
|
+
const referenceProp = getReferenceProp(config);
|
|
134
|
+
const fieldMetadata = pConn.getFieldMetadata(referenceProp) || {};
|
|
135
|
+
const { datasource: { parameters: fieldParameters = {} } = {} } = fieldMetadata;
|
|
136
|
+
const compositeKeys: string[] = [];
|
|
137
|
+
Object.values(fieldParameters).forEach((param: any) => {
|
|
138
|
+
if (isSelfReferencedProperty(param, referenceProp)) {
|
|
139
|
+
compositeKeys.push(param);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
config.compositeKeys = compositeKeys;
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
export const getDataRelationshipContextFromKey = (key: string) => {
|
|
146
|
+
const firstIndexOfDot = key.indexOf('.');
|
|
147
|
+
if (firstIndexOfDot > -1) {
|
|
148
|
+
const lastIndexOfDot = key.lastIndexOf('.');
|
|
149
|
+
if (lastIndexOfDot > firstIndexOfDot) {
|
|
150
|
+
return key.substring(firstIndexOfDot + 1, lastIndexOfDot);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return '';
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
export const createNewRecord = ({
|
|
157
|
+
referenceType,
|
|
158
|
+
disableStartingFieldsForReference,
|
|
159
|
+
pConn,
|
|
160
|
+
contextClass,
|
|
161
|
+
startingFields,
|
|
162
|
+
getPConnect
|
|
163
|
+
}: {
|
|
164
|
+
referenceType: string;
|
|
165
|
+
disableStartingFieldsForReference: boolean;
|
|
166
|
+
pConn: any;
|
|
167
|
+
contextClass: string;
|
|
168
|
+
startingFields: Record<string, any>;
|
|
169
|
+
getPConnect: any;
|
|
170
|
+
}) => {
|
|
171
|
+
if (referenceType === 'Case') {
|
|
172
|
+
if (!disableStartingFieldsForReference) {
|
|
173
|
+
// @ts-ignore
|
|
174
|
+
startingFields[PCore.getNameSpaceUtils().getDefaultQualifiedName('pyAddCaseContextPage')] = {
|
|
175
|
+
pyID: pConn.getCaseInfo().getKey()?.split(' ')?.pop()
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
return pConn.getActionsApi().createWork(contextClass, {
|
|
179
|
+
openCaseViewAfterCreate: false,
|
|
180
|
+
startingFields
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
if (referenceType === 'Data') {
|
|
184
|
+
return getPConnect().getActionsApi().showDataObjectCreateView(contextClass);
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
export const getAdditionalInfo = (pConn: any, propertyName: string) => {
|
|
189
|
+
const parentFieldMetadata = pConn.getFieldMetadata(getDataRelationshipContextFromKey(propertyName));
|
|
190
|
+
return parentFieldMetadata?.additionalInformation
|
|
191
|
+
? {
|
|
192
|
+
content: parentFieldMetadata.additionalInformation
|
|
193
|
+
}
|
|
194
|
+
: undefined;
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
export const camelCase = (str: string) => {
|
|
198
|
+
return str.replace(/[-_\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : '')).replace(/^[A-Z]/, char => char.toLowerCase());
|
|
199
|
+
};
|
|
@@ -6,6 +6,8 @@ import type { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConn
|
|
|
6
6
|
import { getCurrencyCharacters, getCurrencyOptions } from '@pega/react-sdk-components/lib/components/field/Currency/currency-utils';
|
|
7
7
|
import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
|
|
8
8
|
import { format } from '@pega/react-sdk-components/lib/components/helpers/formatters';
|
|
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.
|
|
@@ -15,6 +17,12 @@ interface PercentageProps extends PConnFieldProps {
|
|
|
15
17
|
currencyISOCode?: string;
|
|
16
18
|
showGroupSeparators?: string;
|
|
17
19
|
decimalPrecision?: number;
|
|
20
|
+
showFieldMessage?: boolean;
|
|
21
|
+
messageConfig?: {
|
|
22
|
+
content?: string;
|
|
23
|
+
visibility?: boolean;
|
|
24
|
+
};
|
|
25
|
+
variant?: string;
|
|
18
26
|
}
|
|
19
27
|
|
|
20
28
|
export default function Percentage(props: PercentageProps) {
|
|
@@ -28,7 +36,6 @@ export default function Percentage(props: PercentageProps) {
|
|
|
28
36
|
disabled,
|
|
29
37
|
value = '',
|
|
30
38
|
validatemessage,
|
|
31
|
-
status,
|
|
32
39
|
// onChange,
|
|
33
40
|
// onBlur,
|
|
34
41
|
readOnly,
|
|
@@ -39,7 +46,9 @@ export default function Percentage(props: PercentageProps) {
|
|
|
39
46
|
hideLabel,
|
|
40
47
|
placeholder,
|
|
41
48
|
showGroupSeparators,
|
|
42
|
-
decimalPrecision
|
|
49
|
+
decimalPrecision,
|
|
50
|
+
showFieldMessage,
|
|
51
|
+
messageConfig = {}
|
|
43
52
|
} = props;
|
|
44
53
|
|
|
45
54
|
const [values, setValues] = useState(value.toString());
|
|
@@ -47,7 +56,15 @@ export default function Percentage(props: PercentageProps) {
|
|
|
47
56
|
const pConn = getPConnect();
|
|
48
57
|
const actions = pConn.getActionsApi();
|
|
49
58
|
const propName = (pConn.getStateProps() as any).value;
|
|
50
|
-
const
|
|
59
|
+
const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
|
|
60
|
+
const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
|
|
61
|
+
|
|
62
|
+
const status = useStatus({
|
|
63
|
+
showFieldMessage,
|
|
64
|
+
messageVisibility: messageConfig.visibility,
|
|
65
|
+
validatemessage,
|
|
66
|
+
readOnly
|
|
67
|
+
});
|
|
51
68
|
|
|
52
69
|
const theCurrencyOptions = getCurrencyOptions(currencyISOCode);
|
|
53
70
|
const formattedValue = format(value, pConn.getComponentName()?.toLowerCase(), theCurrencyOptions);
|
|
@@ -63,7 +80,7 @@ export default function Percentage(props: PercentageProps) {
|
|
|
63
80
|
}
|
|
64
81
|
|
|
65
82
|
if (displayMode === 'DISPLAY_ONLY') {
|
|
66
|
-
return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} />;
|
|
83
|
+
return <FieldValueList name={hideLabel ? '' : label} value={formattedValue} variant={props.variant} />;
|
|
67
84
|
}
|
|
68
85
|
|
|
69
86
|
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
@@ -107,6 +124,7 @@ export default function Percentage(props: PercentageProps) {
|
|
|
107
124
|
suffix='%'
|
|
108
125
|
slotProps={{ input: { ...readOnlyProp, inputProps: { ...testProps } } }}
|
|
109
126
|
customInput={TextField}
|
|
127
|
+
sx={getFieldSx(status)}
|
|
110
128
|
/>
|
|
111
129
|
);
|
|
112
130
|
}
|
|
@@ -4,9 +4,17 @@ import { MuiTelInput } from 'mui-tel-input';
|
|
|
4
4
|
import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
|
|
5
5
|
import type { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
6
6
|
import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
|
|
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 PhoneProps extends PConnFieldProps {
|
|
9
11
|
// If any, enter additional props that only exist on Phone 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 Phone(props: PhoneProps) {
|
|
@@ -20,14 +28,15 @@ export default function Phone(props: PhoneProps) {
|
|
|
20
28
|
disabled,
|
|
21
29
|
value = '',
|
|
22
30
|
validatemessage,
|
|
23
|
-
status,
|
|
24
31
|
onChange,
|
|
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();
|
|
@@ -37,7 +46,15 @@ export default function Phone(props: PhoneProps) {
|
|
|
37
46
|
const [inputValue, setInputValue] = useState(value);
|
|
38
47
|
useEffect(() => setInputValue(value), [value]);
|
|
39
48
|
|
|
40
|
-
const
|
|
49
|
+
const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
|
|
50
|
+
const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
|
|
51
|
+
|
|
52
|
+
const status = useStatus({
|
|
53
|
+
showFieldMessage,
|
|
54
|
+
messageVisibility: messageConfig.visibility,
|
|
55
|
+
validatemessage,
|
|
56
|
+
readOnly
|
|
57
|
+
});
|
|
41
58
|
|
|
42
59
|
let testProp = {};
|
|
43
60
|
|
|
@@ -46,7 +63,7 @@ export default function Phone(props: PhoneProps) {
|
|
|
46
63
|
};
|
|
47
64
|
|
|
48
65
|
if (displayMode === 'DISPLAY_ONLY') {
|
|
49
|
-
return <FieldValueList name={hideLabel ? '' : label} value={value} />;
|
|
66
|
+
return <FieldValueList name={hideLabel ? '' : label} value={value} variant={props.variant} />;
|
|
50
67
|
}
|
|
51
68
|
|
|
52
69
|
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
@@ -76,6 +93,7 @@ export default function Phone(props: PhoneProps) {
|
|
|
76
93
|
}
|
|
77
94
|
}}
|
|
78
95
|
disableDropdown={disableDropdown}
|
|
96
|
+
sx={getFieldSx(status)}
|
|
79
97
|
/>
|
|
80
98
|
</div>
|
|
81
99
|
);
|
|
@@ -108,6 +126,7 @@ export default function Phone(props: PhoneProps) {
|
|
|
108
126
|
label={label}
|
|
109
127
|
value={inputValue}
|
|
110
128
|
slotProps={{ input: { ...testProp } }}
|
|
129
|
+
sx={getFieldSx(status)}
|
|
111
130
|
/>
|
|
112
131
|
);
|
|
113
132
|
}
|
package/tests/assets/sdk-r/components/create/override-sdk/field/RadioButtons/RadioButtons.tsx
CHANGED
|
@@ -5,6 +5,8 @@ import Utils from '@pega/react-sdk-components/lib/components/helpers/utils';
|
|
|
5
5
|
import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
|
|
6
6
|
import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map';
|
|
7
7
|
import type { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps';
|
|
8
|
+
import useStatus from '@pega/react-sdk-components/lib/hooks/useStatus';
|
|
9
|
+
import { getFormControlSx } from '@pega/react-sdk-components/lib/components/helpers/field-utils';
|
|
8
10
|
|
|
9
11
|
// Can't use RadioButtonProps until getLocaleRuleNameFromKeys is NOT private
|
|
10
12
|
interface RadioButtonsProps extends PConnFieldProps {
|
|
@@ -18,6 +20,11 @@ interface RadioButtonsProps extends PConnFieldProps {
|
|
|
18
20
|
imageSize?: string;
|
|
19
21
|
showImageDescription?: boolean;
|
|
20
22
|
datasource?: any;
|
|
23
|
+
showFieldMessage?: boolean;
|
|
24
|
+
messageConfig?: {
|
|
25
|
+
content?: string;
|
|
26
|
+
visibility?: boolean;
|
|
27
|
+
};
|
|
21
28
|
}
|
|
22
29
|
|
|
23
30
|
export default function RadioButtons(props: RadioButtonsProps) {
|
|
@@ -32,7 +39,6 @@ export default function RadioButtons(props: RadioButtonsProps) {
|
|
|
32
39
|
readOnly,
|
|
33
40
|
validatemessage,
|
|
34
41
|
helperText,
|
|
35
|
-
status,
|
|
36
42
|
required,
|
|
37
43
|
inline,
|
|
38
44
|
displayMode,
|
|
@@ -44,7 +50,9 @@ export default function RadioButtons(props: RadioButtonsProps) {
|
|
|
44
50
|
datasource,
|
|
45
51
|
imagePosition,
|
|
46
52
|
imageSize,
|
|
47
|
-
showImageDescription
|
|
53
|
+
showImageDescription,
|
|
54
|
+
showFieldMessage,
|
|
55
|
+
messageConfig = {}
|
|
48
56
|
} = props;
|
|
49
57
|
const [theSelectedButton, setSelectedButton] = useState(value);
|
|
50
58
|
|
|
@@ -52,9 +60,17 @@ export default function RadioButtons(props: RadioButtonsProps) {
|
|
|
52
60
|
const theConfigProps = thePConn.getConfigProps();
|
|
53
61
|
const actionsApi = thePConn.getActionsApi();
|
|
54
62
|
const propName = (thePConn.getStateProps() as any).value;
|
|
55
|
-
const
|
|
63
|
+
const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
|
|
64
|
+
const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
|
|
56
65
|
const className = thePConn.getCaseInfo().getClassName();
|
|
57
66
|
|
|
67
|
+
const status = useStatus({
|
|
68
|
+
showFieldMessage,
|
|
69
|
+
messageVisibility: messageConfig.visibility,
|
|
70
|
+
validatemessage,
|
|
71
|
+
readOnly
|
|
72
|
+
});
|
|
73
|
+
|
|
58
74
|
let configProperty = (thePConn.getRawMetadata() as any)?.config?.value || '';
|
|
59
75
|
configProperty = configProperty.startsWith('@P') ? configProperty.substring(3) : configProperty;
|
|
60
76
|
configProperty = configProperty.startsWith('.') ? configProperty.substring(1) : configProperty;
|
|
@@ -134,7 +150,7 @@ export default function RadioButtons(props: RadioButtonsProps) {
|
|
|
134
150
|
}
|
|
135
151
|
|
|
136
152
|
return (
|
|
137
|
-
<FormControl variant='standard' error={status === 'error'} required={required}>
|
|
153
|
+
<FormControl variant='standard' error={status === 'error'} required={required} sx={getFormControlSx(status)}>
|
|
138
154
|
<FormLabel component='legend'>{label}</FormLabel>
|
|
139
155
|
<RadioGroup value={theSelectedButton} onChange={handleChange} onBlur={!readOnly ? handleBlur : undefined} row={inline}>
|
|
140
156
|
{theOptions.map(theOption => {
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
.tox .tox-toolbar {
|
|
2
|
-
background-color: var(--app-background-color) !important;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
.tox .tox-toolbar__primary {
|
|
6
|
-
background-color: var(--app-background-color) !important;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
.tox .tox-toolbar__button {
|
|
10
|
-
color: var(--app-text-color) !important;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.tox .tox-toolbar__button--enabled {
|
|
14
|
-
background: var(--app-primary-color) !important;
|
|
15
|
-
color: #fff !important;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
.tox .tox-dialog {
|
|
19
|
-
background-color: var(--modal-top-color) !important;
|
|
20
|
-
color: var(--app-text-color) !important;
|
|
21
|
-
border: 1px solid var(--modal-border-color) !important;
|
|
22
|
-
padding: 20px !important;
|
|
23
|
-
box-shadow: 0 0 10px 3px var(--modal-box-shadow-color) !important;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.tox .tox-dialog__header {
|
|
27
|
-
background-color: var(--modal-top-color) !important;
|
|
28
|
-
color: var(--app-text-color) !important;
|
|
29
|
-
font-weight: 500;
|
|
30
|
-
border-bottom: 1px solid var(--modal-border-color);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.tox .tox-dialog__footer {
|
|
34
|
-
background: transparent !important;
|
|
35
|
-
border-top: 1px solid var(--modal-border-color);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.tox .tox-dialog-wrap__backdrop {
|
|
39
|
-
background-color: var(--modal-background-color) !important;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.tox .tox-dialog__body input,
|
|
43
|
-
.tox .tox-dialog__body textarea,
|
|
44
|
-
.tox .tox-dialog__body select {
|
|
45
|
-
background: initial !important;
|
|
46
|
-
color: var(--app-text-color) !important;
|
|
47
|
-
border: 1px solid var(--app-neutral-color) !important;
|
|
48
|
-
border-radius: 4px !important;
|
|
49
|
-
padding: 6px 10px !important;
|
|
50
|
-
font-size: 1em !important;
|
|
51
|
-
font-family: inherit !important;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.tox .tox-dialog__body button {
|
|
55
|
-
background: transparent;
|
|
56
|
-
color: #fff !important;
|
|
57
|
-
border: none !important;
|
|
58
|
-
border-radius: 4px !important;
|
|
59
|
-
padding: 8px 16px !important;
|
|
60
|
-
font-size: 1em !important;
|
|
61
|
-
cursor: pointer !important;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
.tox .tox-dialog__footer .tox-button {
|
|
65
|
-
background: var(--app-primary-color) !important;
|
|
66
|
-
color: #fff !important;
|
|
67
|
-
border: none !important;
|
|
68
|
-
border-radius: 4px !important;
|
|
69
|
-
padding: 8px 16px !important;
|
|
70
|
-
font-size: 1em !important;
|
|
71
|
-
cursor: pointer !important;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.tox .tox-dialog__footer .tox-button--secondary {
|
|
75
|
-
background: var(--app-secondary-color) !important;
|
|
76
|
-
color: var(--secondary-button-text-color) !important;
|
|
77
|
-
font-size: 0.875rem !important;
|
|
78
|
-
cursor: pointer !important;
|
|
79
|
-
}
|
|
@@ -69,7 +69,7 @@ export default function RichText(props: RichTextProps) {
|
|
|
69
69
|
|
|
70
70
|
const handleBlur = () => {
|
|
71
71
|
if (editorRef.current) {
|
|
72
|
-
const editorValue = editorRef.current.
|
|
72
|
+
const editorValue = editorRef.current.getHTML();
|
|
73
73
|
const property = (pConn.getStateProps() as any).value;
|
|
74
74
|
handleEvent(actionsApi, 'changeNblur', property, editorValue);
|
|
75
75
|
}
|
package/tests/assets/sdk-r/components/create/override-sdk/field/SelectableCard/SelectableCard.tsx
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
1
2
|
import { Radio, Checkbox, FormControlLabel, Card, CardContent, Typography } from '@mui/material';
|
|
2
3
|
import { resolveReferenceFields } from './utils';
|
|
3
4
|
|
|
@@ -33,7 +34,22 @@ export default function SelectableCard(props) {
|
|
|
33
34
|
const cardDataSource = readOnly || displayMode === 'DISPLAY_ONLY' ? readOnlyList || [] : dataSource?.source;
|
|
34
35
|
const imageDescriptionKey = showImageDescription ? imageDescription : undefined;
|
|
35
36
|
|
|
36
|
-
|
|
37
|
+
const handleCardClick = event => {
|
|
38
|
+
if (disabled || readOnly) return;
|
|
39
|
+
// If the click landed on or inside a label/input, native behavior already handles it.
|
|
40
|
+
if (event.target.closest?.('label, input')) return;
|
|
41
|
+
// Find the radio/checkbox input inside this card and click it programmatically.
|
|
42
|
+
const input = event.currentTarget.querySelector('input[type="radio"], input[type="checkbox"]');
|
|
43
|
+
if (input) input.click();
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const radioItemSelected = type === 'radio' && (cardDataSource || []).some(item => radioBtnValue === item[recordKey]);
|
|
47
|
+
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
if (type === 'radio' && setIsRadioCardSelected) {
|
|
50
|
+
setIsRadioCardSelected(radioItemSelected);
|
|
51
|
+
}
|
|
52
|
+
}, [radioItemSelected, type, setIsRadioCardSelected]);
|
|
37
53
|
|
|
38
54
|
return (
|
|
39
55
|
<>
|
|
@@ -75,7 +91,12 @@ export default function SelectableCard(props) {
|
|
|
75
91
|
|
|
76
92
|
const component = (
|
|
77
93
|
<div key={item[recordKey]} style={{ paddingTop: '15px' }}>
|
|
78
|
-
<Card
|
|
94
|
+
<Card
|
|
95
|
+
className={className}
|
|
96
|
+
style={{ display: 'flex', flexDirection: 'column', height: '100%', cursor: disabled || readOnly ? 'default' : 'pointer' }}
|
|
97
|
+
data-testid={testId}
|
|
98
|
+
onClick={handleCardClick}
|
|
99
|
+
>
|
|
79
100
|
<CardContent
|
|
80
101
|
style={{
|
|
81
102
|
...((imagePosition === 'inline-start' || imagePosition === 'inline-end') && { display: 'flex', height: '100%' }),
|
|
@@ -118,7 +139,7 @@ export default function SelectableCard(props) {
|
|
|
118
139
|
onBlur={onBlur}
|
|
119
140
|
onClick={onClick}
|
|
120
141
|
onKeyDown={onKeyDown}
|
|
121
|
-
disabled={disabled}
|
|
142
|
+
disabled={disabled || readOnly}
|
|
122
143
|
{...additionalProps}
|
|
123
144
|
/>
|
|
124
145
|
}
|
|
@@ -135,7 +156,7 @@ export default function SelectableCard(props) {
|
|
|
135
156
|
onBlur={onBlur}
|
|
136
157
|
onClick={onClick}
|
|
137
158
|
onKeyDown={onKeyDown}
|
|
138
|
-
disabled={disabled}
|
|
159
|
+
disabled={disabled || readOnly}
|
|
139
160
|
{...additionalProps}
|
|
140
161
|
/>
|
|
141
162
|
}
|
|
@@ -162,14 +183,8 @@ export default function SelectableCard(props) {
|
|
|
162
183
|
</div>
|
|
163
184
|
);
|
|
164
185
|
|
|
165
|
-
if (type === 'radio' && radioBtnValue === item[recordKey]) {
|
|
166
|
-
radioItemSelected = true;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
186
|
return component;
|
|
170
187
|
})}
|
|
171
|
-
|
|
172
|
-
{type === 'radio' && setIsRadioCardSelected && setIsRadioCardSelected(radioItemSelected)}
|
|
173
188
|
</>
|
|
174
189
|
);
|
|
175
190
|
}
|
|
@@ -4,10 +4,18 @@ 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 TextAreaProps extends PConnFieldProps {
|
|
9
11
|
// If any, enter additional props that only exist on TextArea here
|
|
10
12
|
fieldMetadata?: any;
|
|
13
|
+
showFieldMessage?: boolean;
|
|
14
|
+
messageConfig?: {
|
|
15
|
+
content?: string;
|
|
16
|
+
visibility?: boolean;
|
|
17
|
+
};
|
|
18
|
+
variant?: string;
|
|
11
19
|
}
|
|
12
20
|
|
|
13
21
|
export default function TextArea(props: TextAreaProps) {
|
|
@@ -21,21 +29,30 @@ export default function TextArea(props: TextAreaProps) {
|
|
|
21
29
|
disabled,
|
|
22
30
|
value = '',
|
|
23
31
|
validatemessage,
|
|
24
|
-
status,
|
|
25
32
|
readOnly,
|
|
26
33
|
testId,
|
|
27
34
|
fieldMetadata,
|
|
28
35
|
helperText,
|
|
29
36
|
displayMode,
|
|
30
37
|
hideLabel,
|
|
31
|
-
placeholder
|
|
38
|
+
placeholder,
|
|
39
|
+
showFieldMessage,
|
|
40
|
+
messageConfig = {}
|
|
32
41
|
} = props;
|
|
33
|
-
const
|
|
42
|
+
const eligibleForFieldWarning = showFieldMessage && messageConfig.visibility && !readOnly;
|
|
43
|
+
const helperTextToDisplay = validatemessage || (eligibleForFieldWarning ? messageConfig.content : helperText);
|
|
34
44
|
const pConn = getPConnect();
|
|
35
45
|
const actions = pConn.getActionsApi();
|
|
36
46
|
const propName = (pConn.getStateProps() as any).value;
|
|
37
47
|
const maxLength = fieldMetadata?.maxLength;
|
|
38
48
|
|
|
49
|
+
const status = useStatus({
|
|
50
|
+
showFieldMessage,
|
|
51
|
+
messageVisibility: messageConfig.visibility,
|
|
52
|
+
validatemessage,
|
|
53
|
+
readOnly
|
|
54
|
+
});
|
|
55
|
+
|
|
39
56
|
const [inputValue, setInputValue] = useState('');
|
|
40
57
|
|
|
41
58
|
let readOnlyProp = {};
|
|
@@ -45,7 +62,7 @@ export default function TextArea(props: TextAreaProps) {
|
|
|
45
62
|
}, [value]);
|
|
46
63
|
|
|
47
64
|
if (displayMode === 'DISPLAY_ONLY') {
|
|
48
|
-
return <FieldValueList name={hideLabel ? '' : label} value={value} />;
|
|
65
|
+
return <FieldValueList name={hideLabel ? '' : label} value={value} variant={props.variant} />;
|
|
49
66
|
}
|
|
50
67
|
|
|
51
68
|
if (displayMode === 'STACKED_LARGE_VAL') {
|
|
@@ -89,6 +106,7 @@ export default function TextArea(props: TextAreaProps) {
|
|
|
89
106
|
slotProps={{
|
|
90
107
|
input: { ...readOnlyProp, inputProps: { maxLength, ...testProps } }
|
|
91
108
|
}}
|
|
109
|
+
sx={getFieldSx(status)}
|
|
92
110
|
/>
|
|
93
111
|
);
|
|
94
112
|
}
|