@pega/custom-dx-components 0.0.1 → 0.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/extensions.json +1 -1
- package/README.md +6 -189
- package/package.json +34 -32
- package/src/auth.js +608 -0
- package/src/cli.js +42 -0
- package/src/constants.js +122 -8
- package/src/tasks/authenticate/helper.js +91 -8
- package/src/tasks/authenticate/index.js +169 -49
- package/src/tasks/build/helper.js +122 -0
- package/src/tasks/build/index.js +54 -0
- package/src/tasks/build-all/helper.js +70 -0
- package/src/tasks/build-all/index.js +79 -0
- package/src/tasks/{publish/bundle → bundle}/builder/index.js +49 -5
- package/src/tasks/{publish/bundle → bundle}/builder/webpack.config.js +5 -3
- package/src/tasks/{publish/bundle → bundle}/index.js +2 -2
- package/src/tasks/create/index.js +87 -64
- package/src/tasks/create/templates/Constellation/Field/Boolean/Boolean.js.mustache +38 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/boolean-format.js.mustache +26 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/config.json.mustache +145 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/demo.stories.jsx.mustache +61 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/index.jsx.mustache +170 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Date/DateFormatter.js.mustache +61 -0
- package/src/tasks/create/templates/Constellation/Field/Date/FormattedText.jsx.mustache +41 -0
- package/src/tasks/create/templates/Constellation/Field/Date/config.json.mustache +195 -0
- package/src/tasks/create/templates/Constellation/Field/Date/date.js.mustache +439 -0
- package/src/tasks/create/templates/Constellation/Field/Date/demo.stories.jsx.mustache +73 -0
- package/src/tasks/create/templates/Constellation/Field/Date/index.jsx.mustache +256 -0
- package/src/tasks/create/templates/Constellation/Field/Date/mock.stories.js.mustache +23 -0
- package/src/tasks/create/templates/Constellation/Field/Date/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Date/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/config.json.mustache +256 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/date-time.js.mustache +92 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/date-utils.js.mustache +287 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/date.js.mustache +328 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/demo.stories.jsx.mustache +73 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/index.jsx.mustache +254 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/mock.stories.js.mustache +23 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/config.json.mustache +278 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/demo.stories.jsx.mustache +49 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/index.jsx.mustache +273 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/config.json.mustache +291 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/demo.stories.jsx.mustache +53 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/index.jsx.mustache +299 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/mock.stories.js.mustache +23 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/config.json.mustache +93 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/demo.stories.jsx.mustache +49 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/index.jsx.mustache +281 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/config.json.mustache +347 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/demo.stories.jsx.mustache +49 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/index.jsx.mustache +336 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/config.json.mustache +114 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/demo.stories.jsx.mustache +78 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/index.jsx.mustache +351 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/mock.stories.js.mustache +67 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/suggestions-handler.js +10 -0
- package/src/tasks/create/{template → templates/Constellation/Field/Text}/config.json.mustache +14 -5
- package/src/tasks/create/templates/Constellation/Field/Text/demo.stories.jsx.mustache +51 -0
- package/src/tasks/create/{template → templates/Constellation/Field/Text}/index.jsx.mustache +5 -0
- package/src/tasks/create/templates/Constellation/Field/Text/mock.stories.js.mustache +13 -0
- package/src/tasks/create/templates/Constellation/Field/Text/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/config.json.mustache +111 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/demo.stories.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/index.jsx.mustache +231 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/mock.stories.js.mustache +22 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/StatusWork.jsx +26 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/config.json.mustache +111 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/demo.stories.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/index.jsx.mustache +239 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/config.json.mustache +111 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/demo.stories.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/index.jsx.mustache +231 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/mock.stories.js.mustache +20 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/config.json.mustache +123 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/demo.stories.jsx.mustache +46 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/index.jsx.mustache +267 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/mock.stories.js.mustache +37 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/config.json.mustache +237 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/demo.stories.jsx.mustache +46 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/index.jsx.mustache +232 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/mock.stories.js.mustache +22 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/text-url.jsx.mustache +173 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/config.json.mustache +185 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/demo.stories.jsx.mustache +57 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/index.jsx.mustache +213 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/mock.stories.js.mustache +20 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/time-of-day.js.mustache +287 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/OneColumnDetails.svg +22 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/StatusWork.jsx.mustache +26 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/config.json.mustache +35 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/demo.stories.jsx.mustache +132 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/index.jsx.mustache +86 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/mock.stories.js.mustache +189 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/utils.js.mustache +152 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/StatusWork.jsx.mustache +26 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/TwoColumnDetails.svg +28 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/config.json.mustache +42 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/demo.stories.jsx.mustache +136 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/index.jsx.mustache +86 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/mock.stories.js.mustache +230 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/utils.js.mustache +155 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/DefaultForm.svg +29 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/config.json.mustache +45 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/demo.stories.jsx.mustache +169 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/index.jsx.mustache +45 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/mock.stories.js.mustache +137 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/TwoColumn.svg +38 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/config.json.mustache +27 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/demo.stories.jsx.mustache +178 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/index.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/mock.stories.js.mustache +143 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/GetNextWork.jsx.mustache +35 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/OneColumnPage.svg +36 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/config.json.mustache +32 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/demo.stories.jsx.mustache +102 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/index.jsx.mustache +70 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/localizations.json.mustache +4 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/mock.stories.js.mustache +94 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/utils.js.mustache +229 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/OneColumnPage.svg +36 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/config.json.mustache +23 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/demo.stories.jsx.mustache +78 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/index.jsx.mustache +76 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/mock.stories.js.mustache +390 -0
- package/src/tasks/create/{template → templates/Constellation/Widget/CASE}/styles.js.mustache +1 -1
- package/src/tasks/create/templates/Constellation/Widget/PAGE/OneColumnPage.svg +36 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE/config.json.mustache +59 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE/demo.stories.jsx.mustache +30 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE/index.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE/mock.stories.js.mustache +23 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Avatar.jsx.mustache +75 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/OneColumnPage.svg +36 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Operator.jsx.mustache +240 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/config.json.mustache +66 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/demo.stories.jsx.mustache +68 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/index.jsx.mustache +110 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/mock.stories.js.mustache +51 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/styles.js.mustache +7 -0
- package/src/tasks/create-all/index.js +398 -0
- package/src/tasks/delete/helper.js +6 -4
- package/src/tasks/delete/index.js +4 -0
- package/src/tasks/delete-all/helper.js +153 -0
- package/src/tasks/delete-all/index.js +49 -0
- package/src/tasks/generate-ai/aiPrompt.txt.mustache +121 -0
- package/src/tasks/generate-ai/helper.js +184 -0
- package/src/tasks/generate-ai/index.js +33 -0
- package/src/tasks/index.js +7 -0
- package/src/tasks/init/index.js +9 -3
- package/src/tasks/init/template/.eslintignore +8 -0
- package/src/tasks/init/template/.eslintrc.json +186 -5
- package/src/tasks/init/template/.vscode/extensions.json +1 -1
- package/src/tasks/init/template/README.md +80 -61
- package/src/tasks/init/template/keys/DX-ComponentDev.zip +0 -0
- package/src/tasks/init/template/keys/dxcb.crt +32 -0
- package/src/tasks/init/template/keys/dxcb.key +51 -0
- package/src/tasks/init/template/package.json.mustache +44 -21
- package/src/tasks/init/template/tasks.config.json +19 -5
- package/src/tasks/init/template/templateNPMRC.txt +8 -0
- package/src/tasks/linter/index.js +46 -0
- package/src/tasks/list/helper.js +19 -6
- package/src/tasks/list/index.js +4 -0
- package/src/tasks/publish/helper.js +13 -4
- package/src/tasks/publish/index.js +14 -1
- package/src/tasks/publish-all/helper.js +154 -0
- package/src/tasks/publish-all/index.js +95 -0
- package/src/tasks/rename/index.js +314 -0
- package/src/tasks/validator/index.js +291 -18
- package/src/util.js +247 -6
- package/src/tasks/create/template/demo.stories.jsx.mustache +0 -44
- package/src/tasks/init/template/src/components/MBTAList/MBTAList.stories.tsx +0 -10
- package/src/tasks/init/template/src/components/MBTAList/MBTAList.tsx +0 -122
- package/src/tasks/init/template/src/components/MBTAList/icons/accessible.icon.tsx +0 -14
- package/src/tasks/init/template/src/components/MBTAList/icons/bus.icon.tsx +0 -13
- package/src/tasks/init/template/src/components/MBTAList/icons/mbta.icon.tsx +0 -10
- package/src/tasks/init/template/src/components/MBTAList/icons/subway.icon.tsx +0 -14
- package/src/tasks/init/template/src/components/MBTAList/index.ts +0 -2
- /package/src/tasks/{publish/bundle → bundle}/builder/modules.js +0 -0
- /package/src/tasks/{publish/bundle → bundle}/builder/paths.js +0 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
export const pyReviewRaw = {
|
|
2
|
+
name: 'pyReview',
|
|
3
|
+
type: 'View',
|
|
4
|
+
config: {
|
|
5
|
+
template: 'Details',
|
|
6
|
+
ruleClass: 'MyCo-MyCompon-Work-MyComponents',
|
|
7
|
+
showLabel: true,
|
|
8
|
+
label: '@L Details',
|
|
9
|
+
localeReference: '@LR MYCO-MYCOMPON-WORK-MYCOMPONENTS!VIEW!PYREVIEW',
|
|
10
|
+
showHighlightedData: true,
|
|
11
|
+
highlightedData: [
|
|
12
|
+
{
|
|
13
|
+
type: 'TextInput',
|
|
14
|
+
config: {
|
|
15
|
+
value: '@P .pyStatusWork',
|
|
16
|
+
label: '@L Work Status',
|
|
17
|
+
displayMode: 'STACKED_LARGE_VAL',
|
|
18
|
+
displayAsStatus: true,
|
|
19
|
+
key: 'pyStatusWork'
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
type: 'TextInput',
|
|
24
|
+
config: {
|
|
25
|
+
value: '@P .pyID',
|
|
26
|
+
label: '@L Case ID',
|
|
27
|
+
displayMode: 'STACKED_LARGE_VAL',
|
|
28
|
+
key: 'pyID'
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
type: 'DateTime',
|
|
33
|
+
config: {
|
|
34
|
+
value: '@P .pxCreateDateTime',
|
|
35
|
+
label: '@L Create date/time',
|
|
36
|
+
displayMode: 'STACKED_LARGE_VAL',
|
|
37
|
+
key: 'pxCreateDateTime'
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
type: 'UserReference',
|
|
42
|
+
config: {
|
|
43
|
+
label: '@L Create Operator',
|
|
44
|
+
value: '@USER .pxCreateOperator',
|
|
45
|
+
placeholder: 'Select...',
|
|
46
|
+
displayMode: 'STACKED_LARGE_VAL',
|
|
47
|
+
key: 'pxCreateOperator'
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
inheritedProps: [
|
|
52
|
+
{
|
|
53
|
+
prop: 'label',
|
|
54
|
+
value: '@L Details'
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
prop: 'showLabel',
|
|
58
|
+
value: true
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
children: [
|
|
63
|
+
{
|
|
64
|
+
name: 'A',
|
|
65
|
+
type: 'Region',
|
|
66
|
+
getPConnect: () => {
|
|
67
|
+
return {
|
|
68
|
+
getRawMetadata: () => {
|
|
69
|
+
return pyReviewRaw.children[0];
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
},
|
|
73
|
+
children: [
|
|
74
|
+
{
|
|
75
|
+
type: 'DateTime',
|
|
76
|
+
config: {
|
|
77
|
+
value: '@P .pySLADeadline',
|
|
78
|
+
label: '@L SLA Deadline'
|
|
79
|
+
},
|
|
80
|
+
key: '1'
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
type: 'DateTime',
|
|
84
|
+
config: {
|
|
85
|
+
value: '@P .pySLAGoal',
|
|
86
|
+
label: '@L SLA Goal'
|
|
87
|
+
},
|
|
88
|
+
key: '2'
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
type: 'RadioButtons',
|
|
92
|
+
config: {
|
|
93
|
+
value: '@P .pySLAStartTime',
|
|
94
|
+
label: '@L SLA Start Time',
|
|
95
|
+
listType: 'associated',
|
|
96
|
+
datasource: '@ASSOCIATED .pySLAStartTime'
|
|
97
|
+
},
|
|
98
|
+
key: '3'
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
}
|
|
102
|
+
],
|
|
103
|
+
classID: 'MyCo-MyCompon-Work-MyComponents'
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export const pyReviewResolved = {
|
|
107
|
+
readOnly: true,
|
|
108
|
+
template: 'Details',
|
|
109
|
+
ruleClass: 'MyCo-MyCompon-Work-MyComponents',
|
|
110
|
+
showLabel: true,
|
|
111
|
+
label: 'Details',
|
|
112
|
+
localeReference: 'MYCO-MYCOMPON-WORK-MYCOMPONENTS!VIEW!PYREVIEW',
|
|
113
|
+
showHighlightedData: true,
|
|
114
|
+
highlightedData: [
|
|
115
|
+
{
|
|
116
|
+
type: 'TextInput',
|
|
117
|
+
config: {
|
|
118
|
+
value: 'New',
|
|
119
|
+
label: 'Work Status',
|
|
120
|
+
displayMode: 'STACKED_LARGE_VAL',
|
|
121
|
+
displayAsStatus: true
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'TextInput',
|
|
126
|
+
config: {
|
|
127
|
+
value: 'M-1002',
|
|
128
|
+
label: 'Case ID',
|
|
129
|
+
displayMode: 'STACKED_LARGE_VAL'
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'DateTime',
|
|
134
|
+
config: {
|
|
135
|
+
value: '2022-12-11T20:06:27.232Z',
|
|
136
|
+
label: 'Create date/time',
|
|
137
|
+
displayMode: 'STACKED_LARGE_VAL'
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'UserReference',
|
|
142
|
+
config: {
|
|
143
|
+
label: 'Create Operator',
|
|
144
|
+
value: {
|
|
145
|
+
userId: 'conns',
|
|
146
|
+
userName: 'Sara Connor'
|
|
147
|
+
},
|
|
148
|
+
placeholder: 'Select...',
|
|
149
|
+
displayMode: 'STACKED_LARGE_VAL'
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
],
|
|
153
|
+
displayMode: 'LABELS_LEFT'
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
export const regionChildrenResolved = [
|
|
157
|
+
{
|
|
158
|
+
readOnly: true,
|
|
159
|
+
value: '',
|
|
160
|
+
label: 'SLA Deadline',
|
|
161
|
+
displayMode: 'LABELS_LEFT',
|
|
162
|
+
key: 'SLA Deadline'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
readOnly: true,
|
|
166
|
+
value: '',
|
|
167
|
+
label: 'SLA Goal',
|
|
168
|
+
displayMode: 'LABELS_LEFT',
|
|
169
|
+
key: 'SLA Goal'
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
readOnly: true,
|
|
173
|
+
value: '',
|
|
174
|
+
label: 'SLA Start Time',
|
|
175
|
+
listType: 'associated',
|
|
176
|
+
datasource: [
|
|
177
|
+
{
|
|
178
|
+
key: 'AssignmentCreation',
|
|
179
|
+
value: 'The creation time of the Assignment'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
key: 'CurrentTime',
|
|
183
|
+
value: 'Current Date Time'
|
|
184
|
+
}
|
|
185
|
+
],
|
|
186
|
+
displayMode: 'LABELS_LEFT',
|
|
187
|
+
key: 'SLA Start Time'
|
|
188
|
+
}
|
|
189
|
+
];
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/* eslint-disable no-undef */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Given the PConnect object of a Template component, retrieve the children
|
|
5
|
+
* metadata of all regions.
|
|
6
|
+
* @param {Function} pConnect PConnect of a Template component.
|
|
7
|
+
*/
|
|
8
|
+
export function getAllFields(pConnect) {
|
|
9
|
+
const metadata = pConnect().getRawMetadata();
|
|
10
|
+
if (!metadata.children) {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
let allFields = [];
|
|
15
|
+
|
|
16
|
+
const makeField = (f) => ({
|
|
17
|
+
...pConnect().resolveConfigProps(f.config),
|
|
18
|
+
type: f.type
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const hasRegions = !!metadata.children[0]?.children;
|
|
22
|
+
if (hasRegions) {
|
|
23
|
+
allFields = metadata.children.map((region) =>
|
|
24
|
+
region.children.map((field) => {
|
|
25
|
+
// Do not resolve the config props if is status work, instead create component here as status badge and mark as status display
|
|
26
|
+
if (field.config?.value === '@P .pyStatusWork') {
|
|
27
|
+
field.type = 'TextInput';
|
|
28
|
+
field.config.displayAsStatus = true;
|
|
29
|
+
return pConnect().createComponent(field);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return makeField(field);
|
|
33
|
+
})
|
|
34
|
+
);
|
|
35
|
+
} else {
|
|
36
|
+
allFields = metadata.children.map(makeField);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return allFields;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
export function getFilteredFields(getPConnect) {
|
|
45
|
+
let primaryFieldsRaw;
|
|
46
|
+
let secondaryFieldsRaw;
|
|
47
|
+
const metadata = getPConnect().getRawMetadata();
|
|
48
|
+
const hasRegions = !!metadata.children[0]?.children;
|
|
49
|
+
if (hasRegions) {
|
|
50
|
+
primaryFieldsRaw = metadata.children[0].children;
|
|
51
|
+
secondaryFieldsRaw = metadata.children[1].children;
|
|
52
|
+
} else {
|
|
53
|
+
[primaryFieldsRaw, secondaryFieldsRaw] = metadata.children;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Filter out fields that are not visible and unsupported types for primary fields (for CaseSummary)
|
|
57
|
+
primaryFieldsRaw = primaryFieldsRaw.filter((item) => {
|
|
58
|
+
const resolvedItem = getPConnect().resolveConfigProps(item.config);
|
|
59
|
+
return resolvedItem.visibility !== false && item.type !== 'TextContent';
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
secondaryFieldsRaw = secondaryFieldsRaw.filter((item) => {
|
|
63
|
+
const resolvedItem = getPConnect().resolveConfigProps(item.config);
|
|
64
|
+
return resolvedItem.visibility !== false && item.type !== 'TextContent';
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
return [primaryFieldsRaw, secondaryFieldsRaw];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Returns ConfigurableLayout mapped content. With pre-populated default layout configs.
|
|
72
|
+
* @param {object[]} regionData template children item.
|
|
73
|
+
* @returns {object[]} ConfigurableLayout content.
|
|
74
|
+
*/
|
|
75
|
+
export function getLayoutDataFromRegion(regionData) {
|
|
76
|
+
const defaultLayoutConfig = {
|
|
77
|
+
width: 'full',
|
|
78
|
+
fillAvailable: true,
|
|
79
|
+
minWidth: [300, 'px']
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
return regionData.props
|
|
83
|
+
?.getPConnect()
|
|
84
|
+
?.getChildren()
|
|
85
|
+
?.map((item, index) => {
|
|
86
|
+
const itemPConnect = item?.getPConnect();
|
|
87
|
+
|
|
88
|
+
return {
|
|
89
|
+
id: itemPConnect?.getComponentName() ? `${itemPConnect.getComponentName()}--${index}` : `item--${index}`,
|
|
90
|
+
content: itemPConnect?.getComponent(),
|
|
91
|
+
layoutConfig: {
|
|
92
|
+
...defaultLayoutConfig,
|
|
93
|
+
...itemPConnect?.getConfigProps().layoutConfig
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Determine if the current view is the view of the case step/assignment.
|
|
101
|
+
* @param {Function} pConnect PConnect object for the component
|
|
102
|
+
*/
|
|
103
|
+
export function getIsAssignmentView(pConnect) {
|
|
104
|
+
// Get caseInfo content from the store which contains the view info about the current assignment/step
|
|
105
|
+
// TODO To be replaced with pConnect.getCaseInfo().getCurrentAssignmentView when it's available
|
|
106
|
+
const assignmentViewClass = pConnect.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_CLASSID);
|
|
107
|
+
const assignmentViewName = pConnect.getValue(PCore.getConstants().CASE_INFO.ASSIGNMENTACTION_ID);
|
|
108
|
+
|
|
109
|
+
const assignmentViewId = `${assignmentViewName}!${assignmentViewClass}`;
|
|
110
|
+
|
|
111
|
+
// Get the info about the current view from pConnect
|
|
112
|
+
const currentViewId = `${pConnect.getCurrentView()}!${pConnect.getCurrentClassID()}`;
|
|
113
|
+
|
|
114
|
+
return assignmentViewId === currentViewId;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* A hook that gets the instructions content for a view.
|
|
119
|
+
* @param {Function} pConnect PConnect object for the component
|
|
120
|
+
* @param {string} [instructions="casestep"] 'casestep', 'none', or the html content of a Rule-UI-Paragraph rule (processed via core's paragraph annotation handler)
|
|
121
|
+
*/
|
|
122
|
+
export function getInstructions(pConnect, instructions = 'casestep') {
|
|
123
|
+
const caseStepInstructions = pConnect.getValue(PCore.getConstants().CASE_INFO.INSTRUCTIONS);
|
|
124
|
+
|
|
125
|
+
// Determine if this view is the current assignment/step view
|
|
126
|
+
const isCurrentAssignmentView = getIsAssignmentView(pConnect);
|
|
127
|
+
|
|
128
|
+
// Case step instructions
|
|
129
|
+
if (instructions === 'casestep' && isCurrentAssignmentView && caseStepInstructions?.length) {
|
|
130
|
+
return caseStepInstructions;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// No instructions
|
|
134
|
+
if (instructions === 'none') {
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// If the annotation wasn't processed correctly, don't return any instruction text
|
|
139
|
+
if (instructions?.startsWith('@PARAGRAPH')) {
|
|
140
|
+
/* eslint-disable no-console */
|
|
141
|
+
console.error('@PARAGRAPH annotation was not processed. Hiding custom instructions.');
|
|
142
|
+
/* eslint-enable no-console */ return undefined;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// Custom instructions from the view
|
|
146
|
+
// The raw metadata for `instructions` will be something like '@PARAGRAPH .SomeParagraphRule' but
|
|
147
|
+
// it is evaluated by core logic to the content
|
|
148
|
+
if (instructions !== 'casestep' && instructions !== 'none') {
|
|
149
|
+
return instructions;
|
|
150
|
+
}
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
package/src/tasks/create/templates/Constellation/Template/DETAILS-region/StatusWork.jsx.mustache
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Status } from "@pega/cosmos-react-core";
|
|
2
|
+
|
|
3
|
+
export default function StatusWorkRenderer({ value }) {
|
|
4
|
+
let variant = "info";
|
|
5
|
+
|
|
6
|
+
const warnStrings = ["fail", "cancel", "reject", "revoke", "stopped", "warn"];
|
|
7
|
+
const infoStrings = ["open", "hold", "info", "new"];
|
|
8
|
+
const successStrings = ["resolved", "completed", "success"];
|
|
9
|
+
const pendingStrings = ["pending"];
|
|
10
|
+
|
|
11
|
+
if (new RegExp(warnStrings.join("|"), "i").test(value)) {
|
|
12
|
+
variant = "warn";
|
|
13
|
+
} else if (new RegExp(infoStrings.join("|"), "i").test(value)) {
|
|
14
|
+
variant = "info";
|
|
15
|
+
} else if (new RegExp(successStrings.join("|"), "i").test(value)) {
|
|
16
|
+
variant = "success";
|
|
17
|
+
} else if (new RegExp(pendingStrings.join("|"), "i").test(value)) {
|
|
18
|
+
variant = "pending";
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return (
|
|
22
|
+
<Status type="rectangle" variant={variant}>
|
|
23
|
+
{value}
|
|
24
|
+
</Status>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="100px" height="70px" viewBox="0 0 100 70" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
3
|
+
<title>2 col </title>
|
|
4
|
+
<g id="Page-Config" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
5
|
+
<g id="Page-layouts" transform="translate(-847.000000, -84.000000)">
|
|
6
|
+
<g id="2-col-" transform="translate(847.000000, 84.000000)">
|
|
7
|
+
<rect id="bg" stroke="#A5A8BC" stroke-width="0.5" fill="#E7E9EB" x="0.25" y="0.25" width="99.5" height="69.5"></rect>
|
|
8
|
+
<g id="white" transform="translate(3.000000, 3.000000)" fill="#FFFFFF">
|
|
9
|
+
<rect id="Rectangle" x="0" y="0" width="94" height="66.5"></rect>
|
|
10
|
+
</g>
|
|
11
|
+
<g id="gray-copy-2" transform="translate(6.000000, 6.000000)" fill="#8084A7">
|
|
12
|
+
<rect id="Rectangle" x="0" y="-2.84217094e-14" width="42" height="63.8"></rect>
|
|
13
|
+
<rect id="Rectangle" x="46" y="-2.84217094e-14" width="42" height="63.8"></rect>
|
|
14
|
+
</g>
|
|
15
|
+
<g id="labels-copy" transform="translate(22.000000, 17.000000)" fill="#FFFFFF" font-family="OpenSans-Semibold, Open Sans" font-size="11" font-weight="500">
|
|
16
|
+
<text id="B">
|
|
17
|
+
<tspan x="45.75" y="12">B</tspan>
|
|
18
|
+
</text>
|
|
19
|
+
<g id="labels">
|
|
20
|
+
<text id="A">
|
|
21
|
+
<tspan x="0.75" y="12">A</tspan>
|
|
22
|
+
</text>
|
|
23
|
+
</g>
|
|
24
|
+
</g>
|
|
25
|
+
</g>
|
|
26
|
+
</g>
|
|
27
|
+
</g>
|
|
28
|
+
</svg>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{COMPONENT_KEY}}",
|
|
3
|
+
"label": "{{COMPONENT_LABEL}}",
|
|
4
|
+
"description": "{{DESCRIPTION}}",
|
|
5
|
+
"organization": "{{ORGANIZATION}}",
|
|
6
|
+
"version": "{{VERSION}}",
|
|
7
|
+
"library": "{{LIBRARY}}",
|
|
8
|
+
"allowedApplications": {{{ALLOWEDAPPS}}},
|
|
9
|
+
"componentKey": "{{COMPONENT_KEY}}",
|
|
10
|
+
"type": "{{TYPE}}",
|
|
11
|
+
"subtype": {{{SUB_TYPE}}},
|
|
12
|
+
"icon": "TwoColumnDetails.svg",
|
|
13
|
+
"properties": [
|
|
14
|
+
{
|
|
15
|
+
"name": "showHighlightedData",
|
|
16
|
+
"label": "Enable highlighted fields",
|
|
17
|
+
"format": "BOOLEAN"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "highlightedData",
|
|
21
|
+
"label": "Highlighted fields",
|
|
22
|
+
"format": "CONTENTPICKER",
|
|
23
|
+
"addTypeList": ["Fields"],
|
|
24
|
+
"visibility": "$this.showHighlightedData = true",
|
|
25
|
+
"saveToConfig": true
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "A",
|
|
29
|
+
"label": "Region A",
|
|
30
|
+
"format": "CONTENTPICKER",
|
|
31
|
+
"addTypeList": ["Fields", "Views"],
|
|
32
|
+
"allowCreatingGroup": true
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "B",
|
|
36
|
+
"label": "Region B",
|
|
37
|
+
"format": "CONTENTPICKER",
|
|
38
|
+
"addTypeList": ["Fields", "Views"],
|
|
39
|
+
"allowCreatingGroup": true
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
package/src/tasks/create/templates/Constellation/Template/DETAILS-region/demo.stories.jsx.mustache
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { Text, FieldValueList, Button, DateTimeDisplay, useTheme } from '@pega/cosmos-react-core';
|
|
2
|
+
import {{COMPONENT_CLASS_NAME}} from './index';
|
|
3
|
+
import { pyReviewRaw, pyReviewResolved, regionChildrenResolved } from './mock.stories';
|
|
4
|
+
import StatusWorkRenderer from './StatusWork.jsx';
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: '{{COMPONENT_CLASS_NAME}}',
|
|
8
|
+
component: {{COMPONENT_CLASS_NAME}}
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const renderField = resolvedProps => {
|
|
12
|
+
const {
|
|
13
|
+
displayAsStatus = false,
|
|
14
|
+
displayMode,
|
|
15
|
+
value = '',
|
|
16
|
+
label = '',
|
|
17
|
+
key,
|
|
18
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
19
|
+
theme = useTheme()
|
|
20
|
+
} = resolvedProps;
|
|
21
|
+
|
|
22
|
+
const variant = displayMode === 'LABELS_LEFT' ? 'inline' : 'stacked';
|
|
23
|
+
|
|
24
|
+
let val =
|
|
25
|
+
value !== '' ? (
|
|
26
|
+
<Text variant='h1' as='span' key={key}>
|
|
27
|
+
{value}
|
|
28
|
+
</Text>
|
|
29
|
+
) : (
|
|
30
|
+
''
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
if (label === 'Create date/time')
|
|
34
|
+
val = (
|
|
35
|
+
<DateTimeDisplay
|
|
36
|
+
value={value}
|
|
37
|
+
variant='datetime'
|
|
38
|
+
format='long'
|
|
39
|
+
clockFormat={null}
|
|
40
|
+
key={key}
|
|
41
|
+
/>
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
if (displayAsStatus === true) val = <StatusWorkRenderer value={value} key={key} />;
|
|
45
|
+
|
|
46
|
+
if (label === 'Create Operator')
|
|
47
|
+
val = (
|
|
48
|
+
<Button
|
|
49
|
+
variant='link'
|
|
50
|
+
style={
|
|
51
|
+
label !== null
|
|
52
|
+
? { width: 'max-content', height: theme.components.input.height }
|
|
53
|
+
: undefined
|
|
54
|
+
}
|
|
55
|
+
key={key}
|
|
56
|
+
>
|
|
57
|
+
{value.userName}
|
|
58
|
+
</Button>
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
if (variant === 'inline') {
|
|
62
|
+
val = value || (
|
|
63
|
+
<span aria-hidden='true' key={key}>
|
|
64
|
+
––
|
|
65
|
+
</span>
|
|
66
|
+
);
|
|
67
|
+
} else {
|
|
68
|
+
val = (
|
|
69
|
+
<Text variant='h1' as='span' key={key}>
|
|
70
|
+
{val}
|
|
71
|
+
</Text>
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
return <FieldValueList variant={variant} fields={[{ name: label, value: val }]} key={key} />;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export const base{{COMPONENT_CLASS_NAME}} = () => {
|
|
78
|
+
const props = {
|
|
79
|
+
template: 'MyCo_MyComponents_NewDetailsTemplate',
|
|
80
|
+
showHighlightedData: true,
|
|
81
|
+
label: 'Test Details',
|
|
82
|
+
showLabel: true,
|
|
83
|
+
getPConnect: () => {
|
|
84
|
+
return {
|
|
85
|
+
getChildren: () => {
|
|
86
|
+
return pyReviewRaw.children;
|
|
87
|
+
},
|
|
88
|
+
getRawMetadata: () => {
|
|
89
|
+
return pyReviewRaw;
|
|
90
|
+
},
|
|
91
|
+
getInheritedProps: () => {
|
|
92
|
+
return pyReviewRaw.config.inheritedProps;
|
|
93
|
+
},
|
|
94
|
+
createComponent: config => {
|
|
95
|
+
// eslint-disable-next-line default-case
|
|
96
|
+
switch (config.config.value) {
|
|
97
|
+
case '@P .pyStatusWork':
|
|
98
|
+
return renderField(pyReviewResolved.highlightedData[0].config);
|
|
99
|
+
case '@P .pyID':
|
|
100
|
+
return renderField(pyReviewResolved.highlightedData[1].config);
|
|
101
|
+
case '@P .pxCreateDateTime':
|
|
102
|
+
return renderField(pyReviewResolved.highlightedData[2].config);
|
|
103
|
+
case '@USER .pxCreateOperator':
|
|
104
|
+
return renderField(pyReviewResolved.highlightedData[3].config);
|
|
105
|
+
case '@P .pySLADeadline':
|
|
106
|
+
return renderField(regionChildrenResolved[0]);
|
|
107
|
+
case '@P .pySLAGoal':
|
|
108
|
+
return renderField(regionChildrenResolved[1]);
|
|
109
|
+
case '@P .pySLAStartTime':
|
|
110
|
+
return renderField(regionChildrenResolved[2]);
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
setInheritedProp: () => {
|
|
114
|
+
/* nothing */
|
|
115
|
+
},
|
|
116
|
+
resolveConfigProps: () => {
|
|
117
|
+
/* nothing */
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
const regionAChildren = pyReviewRaw.children[0].children.map(child => {
|
|
124
|
+
return props.getPConnect().createComponent(child);
|
|
125
|
+
});
|
|
126
|
+
const regionBChildren = pyReviewRaw.children[1].children.map(child => {
|
|
127
|
+
return props.getPConnect().createComponent(child);
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
return (
|
|
131
|
+
<{{COMPONENT_CLASS_NAME}} {...props}>
|
|
132
|
+
{regionAChildren}
|
|
133
|
+
{regionBChildren}
|
|
134
|
+
</{{COMPONENT_CLASS_NAME}}>
|
|
135
|
+
);
|
|
136
|
+
};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Fragment } from 'react';
|
|
2
|
+
import { Grid, Flex, FieldGroup } from '@pega/cosmos-react-core';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
|
|
5
|
+
import Styled{{COMPONENT_CLASS_NAME}}Wrapper from './styles';
|
|
6
|
+
|
|
7
|
+
// includes in bundle
|
|
8
|
+
import { getAllFields } from './utils';
|
|
9
|
+
|
|
10
|
+
// Duplicated runtime code from Constellation Design System Component
|
|
11
|
+
|
|
12
|
+
// props passed in combination of props from property panel (config.json) and run time props from Constellation
|
|
13
|
+
// any default values in config.pros should be set in defaultProps at bottom of this file
|
|
14
|
+
export default function {{COMPONENT_CLASS_NAME}}(props) {
|
|
15
|
+
|
|
16
|
+
const { getPConnect, children, label, showLabel, showHighlightedData } = props;
|
|
17
|
+
const propsToUse = { label, showLabel, ...getPConnect().getInheritedProps() };
|
|
18
|
+
|
|
19
|
+
const numRegions = getAllFields(getPConnect)?.length;
|
|
20
|
+
const gridRepeat = "repeat(".concat(numRegions).concat(", 1fr)");
|
|
21
|
+
const gridContainer = { "colGap": 1};
|
|
22
|
+
gridContainer.cols = gridRepeat;
|
|
23
|
+
gridContainer.alignItems = 'start';
|
|
24
|
+
|
|
25
|
+
const gridHighlightContainer = { "gap": 2};
|
|
26
|
+
gridHighlightContainer.cols = gridRepeat;
|
|
27
|
+
gridHighlightContainer.alignItems = 'start';
|
|
28
|
+
gridHighlightContainer.pad = [0, 0, 2, 0];
|
|
29
|
+
|
|
30
|
+
// Set up highlighted data to pass in return if is set to show, need raw metadata to pass to createComponent
|
|
31
|
+
let highlightedDataArr = [];
|
|
32
|
+
if (showHighlightedData) {
|
|
33
|
+
const { highlightedData = [] } = getPConnect().getRawMetadata().config;
|
|
34
|
+
highlightedDataArr = highlightedData.map((field) => {
|
|
35
|
+
field.config.displayMode = 'STACKED_LARGE_VAL';
|
|
36
|
+
|
|
37
|
+
// Mark as status display when using pyStatusWork
|
|
38
|
+
if (field.config.value === '@P .pyStatusWork') {
|
|
39
|
+
field.type = 'TextInput';
|
|
40
|
+
field.config.displayAsStatus = true;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return getPConnect().createComponent(field);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return (
|
|
48
|
+
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
49
|
+
{{! pick new delimiteres for mustache }}
|
|
50
|
+
{{=<% %>=}}
|
|
51
|
+
<FieldGroup name={propsToUse.showLabel ? propsToUse.label : ''}>
|
|
52
|
+
{showHighlightedData && highlightedDataArr.length > 0 && (
|
|
53
|
+
<Grid container={gridHighlightContainer}
|
|
54
|
+
data-testid={`highlighted-column-count-${numRegions}`}>
|
|
55
|
+
{highlightedDataArr.map((child, i) => (
|
|
56
|
+
<Fragment key={`hf-${i + 1}`}>{child}</Fragment>
|
|
57
|
+
))}
|
|
58
|
+
</Grid>
|
|
59
|
+
)}
|
|
60
|
+
<Grid container={gridContainer} data-testid={`column-count-${numRegions}`} >
|
|
61
|
+
{children.map((child, i) => (
|
|
62
|
+
<Flex container={{ direction: 'column'}} key={`r-${i + 1}`}>
|
|
63
|
+
{child}
|
|
64
|
+
</Flex>
|
|
65
|
+
))}
|
|
66
|
+
</Grid>
|
|
67
|
+
</FieldGroup>
|
|
68
|
+
<%={{ }}=%> {{! revert delimiteres for mustache }}
|
|
69
|
+
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
{{COMPONENT_CLASS_NAME}}.defaultProps = {
|
|
75
|
+
label: undefined,
|
|
76
|
+
showLabel: true,
|
|
77
|
+
showHighlightedData: false
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
{{COMPONENT_CLASS_NAME}}.propTypes = {
|
|
82
|
+
showLabel: PropTypes.bool,
|
|
83
|
+
label: PropTypes.string,
|
|
84
|
+
getPConnect: PropTypes.func.isRequired,
|
|
85
|
+
showHighlightedData: PropTypes.bool
|
|
86
|
+
};
|