@pega/dx-component-builder-sdk 0.1.16 → 0.1.17
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/src/cli.js +6 -0
- package/src/constants.js +13 -17
- package/src/tasks/build-all/helper.js +76 -0
- package/src/tasks/build-all/index.js +121 -0
- package/src/tasks/create/index.js +52 -60
- package/src/tasks/create/templates/Constellation/Field/Boolean/demo.stories.jsx.mustache +1 -0
- package/src/tasks/create/templates/Constellation/Field/Date/demo.stories.jsx.mustache +11 -6
- package/src/tasks/create/templates/Constellation/Field/DateTime/demo.stories.jsx.mustache +11 -7
- package/src/tasks/create/templates/Constellation/Field/Decimal/demo.stories.jsx.mustache +7 -7
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/demo.stories.jsx.mustache +9 -8
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/demo.stories.jsx.mustache +7 -7
- package/src/tasks/create/templates/Constellation/Field/Integer/demo.stories.jsx.mustache +7 -7
- package/src/tasks/create/templates/Constellation/Field/Picklist/demo.stories.jsx.mustache +16 -10
- package/src/tasks/create/templates/Constellation/Field/Text/demo.stories.jsx.mustache +9 -7
- package/src/tasks/create/templates/Constellation/Field/Text-Email/demo.stories.jsx.mustache +8 -8
- package/src/tasks/create/templates/Constellation/Field/Text-Input/demo.stories.jsx.mustache +7 -7
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/demo.stories.jsx.mustache +7 -7
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/demo.stories.jsx.mustache +6 -6
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/index.jsx.mustache +1 -1
- package/src/tasks/create/templates/Constellation/Field/Text-URL/demo.stories.jsx.mustache +6 -6
- package/src/tasks/create/templates/Constellation/Field/Text-URL/index.jsx.mustache +1 -1
- package/src/tasks/create/templates/Constellation/Field/Text-URL/{text-url.js.mustache → text-url.jsx.mustache} +2 -1
- package/src/tasks/create/templates/Constellation/Field/TimeofDay/demo.stories.jsx.mustache +10 -5
- package/src/tasks/create/templates/Constellation/Template/DETAILS/demo.stories.jsx.mustache +59 -51
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/demo.stories.jsx.mustache +64 -59
- package/src/tasks/create/templates/Constellation/Template/FORM/demo.stories.jsx.mustache +43 -39
- package/src/tasks/create/templates/Constellation/Template/FORM-region/demo.stories.jsx.mustache +46 -46
- package/src/tasks/create/templates/Constellation/Template/PAGE/demo.stories.jsx.mustache +24 -25
- package/src/tasks/create/templates/Constellation/Widget/CASE/demo.stories.jsx.mustache +7 -7
- package/src/tasks/create/templates/Constellation/Widget/CASE/mock.stories.js.mustache +2 -1
- package/src/tasks/create/templates/Constellation/Widget/PAGE/demo.stories.jsx.mustache +1 -1
- package/src/tasks/create/templates/Constellation/Widget/PAGE/mock.stories.js.mustache +2 -1
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/demo.stories.jsx.mustache +6 -6
- package/src/tasks/create/templates/SDK-React/Field/Date/index.tsx.mustache +2 -2
- package/src/tasks/create/templates/SDK-React/Field/DateTime/index.tsx.mustache +2 -2
- package/src/tasks/create/templates/SDK-React/Field/Decimal/index.tsx.mustache +2 -2
- package/src/tasks/create/templates/SDK-React/Field/Decimal-Currency/index.tsx.mustache +1 -1
- package/src/tasks/create/templates/SDK-React/Field/Decimal-Percentage/index.tsx.mustache +2 -2
- package/src/tasks/create/templates/SDK-React/Field/Integer/index.tsx.mustache +2 -2
- package/src/tasks/create/templates/SDK-React/Field/Text/index.tsx.mustache +1 -1
- package/src/tasks/create/templates/SDK-React/Field/Text-Email/index.tsx.mustache +2 -2
- package/src/tasks/create/templates/SDK-React/Field/Text-Input/index.tsx.mustache +1 -1
- package/src/tasks/create/templates/SDK-React/Field/Text-Paragraph/index.tsx.mustache +1 -1
- package/src/tasks/create/templates/SDK-React/Field/Text-Phone/index.tsx.mustache +1 -1
- package/src/tasks/create/templates/SDK-React/Field/Text-URL/index.tsx.mustache +2 -2
- package/src/tasks/create/templates/SDK-React/Field/TimeofDay/index.tsx.mustache +2 -2
- package/src/tasks/create/templates/SDK-React/Template/DETAILS/index.tsx.mustache +1 -1
- package/src/tasks/create/templates/SDK-React/Template/DETAILS-region/index.tsx.mustache +1 -1
- package/src/tasks/delete/helper.js +1 -0
- package/src/tasks/index.js +1 -0
- package/src/tasks/map/map.js +5 -4
- package/src/tasks/override/index.js +31 -21
- package/src/tasks/validator/index.js +10 -1
- package/src/util.js +18 -32
package/src/tasks/create/templates/Constellation/Template/FORM-region/demo.stories.jsx.mustache
CHANGED
|
@@ -11,58 +11,13 @@ export default {
|
|
|
11
11
|
component: {{COMPONENT_CLASS_NAME}}
|
|
12
12
|
};
|
|
13
13
|
|
|
14
|
-
const Template = args => {
|
|
15
|
-
const regionAChildren = pyReviewRaw.children[0].children.map(child => {
|
|
16
|
-
return Primary.args.getPConnect().createComponent(child);
|
|
17
|
-
});
|
|
18
|
-
const regionBChildren = pyReviewRaw.children[1].children.map(child => {
|
|
19
|
-
return Primary.args.getPConnect().createComponent(child);
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
return (
|
|
23
|
-
<{{COMPONENT_CLASS_NAME}} {...args}>
|
|
24
|
-
{regionAChildren}
|
|
25
|
-
{regionBChildren}
|
|
26
|
-
</{{COMPONENT_CLASS_NAME}}>
|
|
27
|
-
);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export const Primary = Template.bind({});
|
|
31
|
-
|
|
32
|
-
Primary.args = {
|
|
33
|
-
template: 'DefaultForm',
|
|
34
|
-
getPConnect: () => {
|
|
35
|
-
return {
|
|
36
|
-
getChildren: () => {
|
|
37
|
-
return pyReviewRaw.children;
|
|
38
|
-
},
|
|
39
|
-
createComponent: config => {
|
|
40
|
-
switch (config.config.value) {
|
|
41
|
-
case '@P .FirstName':
|
|
42
|
-
return renderField(regionChildrenResolved[0]);
|
|
43
|
-
case '@P .MiddleName':
|
|
44
|
-
return renderField(regionChildrenResolved[1]);
|
|
45
|
-
case '@P .LastName':
|
|
46
|
-
return renderField(regionChildrenResolved[2]);
|
|
47
|
-
case '@P .Email':
|
|
48
|
-
return renderField(regionChildrenResolved[3]);
|
|
49
|
-
case '@P .PhoneNumber':
|
|
50
|
-
return renderField(regionChildrenResolved[4]);
|
|
51
|
-
case '@P .ServiceDate':
|
|
52
|
-
return renderField(regionChildrenResolved[5]);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
|
|
59
14
|
const renderField = resolvedProps => {
|
|
60
15
|
const { displayMode, value = '', label = '' } = resolvedProps;
|
|
61
16
|
|
|
62
17
|
const variant = displayMode === 'LABELS_LEFT' ? 'inline' : 'stacked';
|
|
63
18
|
|
|
64
19
|
let val =
|
|
65
|
-
value
|
|
20
|
+
value !== '' ? (
|
|
66
21
|
<Text variant='h1' as='span'>
|
|
67
22
|
{value}
|
|
68
23
|
</Text>
|
|
@@ -98,3 +53,48 @@ const renderField = resolvedProps => {
|
|
|
98
53
|
}
|
|
99
54
|
return <FieldValueList variant={variant} fields={[{ name: label, value: val }]} />;
|
|
100
55
|
};
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
export const base{{COMPONENT_CLASS_NAME}} = () => {
|
|
59
|
+
const props = {
|
|
60
|
+
template: 'DefaultForm',
|
|
61
|
+
getPConnect: () => {
|
|
62
|
+
return {
|
|
63
|
+
getChildren: () => {
|
|
64
|
+
return pyReviewRaw.children;
|
|
65
|
+
},
|
|
66
|
+
createComponent: config => {
|
|
67
|
+
// eslint-disable-next-line default-case
|
|
68
|
+
switch (config.config.value) {
|
|
69
|
+
case '@P .FirstName':
|
|
70
|
+
return renderField(regionChildrenResolved[0]);
|
|
71
|
+
case '@P .MiddleName':
|
|
72
|
+
return renderField(regionChildrenResolved[1]);
|
|
73
|
+
case '@P .LastName':
|
|
74
|
+
return renderField(regionChildrenResolved[2]);
|
|
75
|
+
case '@P .Email':
|
|
76
|
+
return renderField(regionChildrenResolved[3]);
|
|
77
|
+
case '@P .PhoneNumber':
|
|
78
|
+
return renderField(regionChildrenResolved[4]);
|
|
79
|
+
case '@P .ServiceDate':
|
|
80
|
+
return renderField(regionChildrenResolved[5]);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const regionAChildren = pyReviewRaw.children[0].children.map(child => {
|
|
88
|
+
return props.getPConnect().createComponent(child);
|
|
89
|
+
});
|
|
90
|
+
const regionBChildren = pyReviewRaw.children[1].children.map(child => {
|
|
91
|
+
return props.getPConnect().createComponent(child);
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
return (
|
|
95
|
+
<{{COMPONENT_CLASS_NAME}} {...props}>
|
|
96
|
+
{regionAChildren}
|
|
97
|
+
{regionBChildren}
|
|
98
|
+
</{{COMPONENT_CLASS_NAME}}>
|
|
99
|
+
);
|
|
100
|
+
};
|
|
@@ -44,8 +44,8 @@ export const base{{COMPONENT_CLASS_NAME}} = () => {
|
|
|
44
44
|
resolve({});
|
|
45
45
|
});
|
|
46
46
|
},
|
|
47
|
-
updateFieldValue: () => {},
|
|
48
|
-
triggerFieldChange: () => {}
|
|
47
|
+
updateFieldValue: () => {/* nothing */},
|
|
48
|
+
triggerFieldChange: () => {/* nothing */}
|
|
49
49
|
};
|
|
50
50
|
},
|
|
51
51
|
getChildren: () => {
|
|
@@ -61,31 +61,30 @@ export const base{{COMPONENT_CLASS_NAME}} = () => {
|
|
|
61
61
|
return pyHome1Raw;
|
|
62
62
|
},
|
|
63
63
|
createComponent: config => {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
);
|
|
64
|
+
if (config.type === 'AppAnnouncement') {
|
|
65
|
+
return (
|
|
66
|
+
<PegaAppAnnouncement
|
|
67
|
+
heading='Announcements'
|
|
68
|
+
description={configProps.description}
|
|
69
|
+
whatsNewLink={configProps.whatsnewlink}
|
|
70
|
+
image={configProps.image.replace(/ /g, '+')}
|
|
71
|
+
datasource={configProps.datasource}
|
|
72
|
+
label={configProps.label}
|
|
73
|
+
getPConnect={() => {
|
|
74
|
+
return {
|
|
75
|
+
getChildren: () => {
|
|
76
|
+
return pyHome1Resolved.children;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}}
|
|
80
|
+
/>
|
|
81
|
+
);
|
|
83
82
|
}
|
|
84
83
|
},
|
|
85
|
-
ignoreSuggestion: () => {},
|
|
86
|
-
acceptSuggestion: () => {},
|
|
87
|
-
setInheritedProps: () => {},
|
|
88
|
-
resolveConfigProps: () => {}
|
|
84
|
+
ignoreSuggestion: () => {/* nothing */},
|
|
85
|
+
acceptSuggestion: () => {/* nothing */},
|
|
86
|
+
setInheritedProps: () => {/* nothing */},
|
|
87
|
+
resolveConfigProps: () => {/* nothing */}
|
|
89
88
|
};
|
|
90
89
|
}
|
|
91
90
|
};
|
|
@@ -2,7 +2,7 @@ import { withKnobs } from '@storybook/addon-knobs';
|
|
|
2
2
|
|
|
3
3
|
import {{COMPONENT_CLASS_NAME}} from './index.jsx';
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import historyData from './mock.stories';
|
|
6
6
|
|
|
7
7
|
export default {
|
|
8
8
|
title: '{{COMPONENT_CLASS_NAME}}',
|
|
@@ -58,14 +58,14 @@ export const base{{COMPONENT_CLASS_NAME}} = () => {
|
|
|
58
58
|
},
|
|
59
59
|
getActionsApi: () => {
|
|
60
60
|
return {
|
|
61
|
-
updateFieldValue: () => {},
|
|
62
|
-
triggerFieldChange: () => {}
|
|
61
|
+
updateFieldValue: () => {/* nothing */},
|
|
62
|
+
triggerFieldChange: () => {/* nothing */}
|
|
63
63
|
};
|
|
64
64
|
},
|
|
65
|
-
ignoreSuggestion: () => {},
|
|
66
|
-
acceptSuggestion: () => {},
|
|
67
|
-
setInheritedProps: () => {},
|
|
68
|
-
resolveConfigProps: () => {}
|
|
65
|
+
ignoreSuggestion: () => {/* nothing */},
|
|
66
|
+
acceptSuggestion: () => {/* nothing */},
|
|
67
|
+
setInheritedProps: () => {/* nothing */},
|
|
68
|
+
resolveConfigProps: () => {/* nothing */}
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
71
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const historyData = {
|
|
2
2
|
data: {
|
|
3
3
|
fetchDateTime: '2023-01-18T12:04:56.517Z',
|
|
4
4
|
pxObjClass: 'Pega-API-DataExploration-Data',
|
|
@@ -387,3 +387,4 @@ export const historyData = {
|
|
|
387
387
|
},
|
|
388
388
|
request: {}
|
|
389
389
|
};
|
|
390
|
+
export default historyData;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const configProps = {
|
|
2
2
|
label: 'App announcement',
|
|
3
3
|
header: 'Announcements',
|
|
4
4
|
description: 'Welcome to MediaCo Application for testing SDK frameworks.',
|
|
@@ -20,3 +20,4 @@ export const configProps = {
|
|
|
20
20
|
fields: {}
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
+
export default configProps;
|
|
@@ -48,14 +48,14 @@ export const base{{COMPONENT_CLASS_NAME}} = () => {
|
|
|
48
48
|
return {
|
|
49
49
|
getActionsApi: () => {
|
|
50
50
|
return {
|
|
51
|
-
updateFieldValue: () => {},
|
|
52
|
-
triggerFieldChange: () => {}
|
|
51
|
+
updateFieldValue: () => {/* nothing */},
|
|
52
|
+
triggerFieldChange: () => {/* nothing */}
|
|
53
53
|
};
|
|
54
54
|
},
|
|
55
|
-
ignoreSuggestion: () => {},
|
|
56
|
-
acceptSuggestion: () => {},
|
|
57
|
-
setInheritedProps: () => {},
|
|
58
|
-
resolveConfigProps: () => {}
|
|
55
|
+
ignoreSuggestion: () => {/* nothing */},
|
|
56
|
+
acceptSuggestion: () => {/* nothing */},
|
|
57
|
+
setInheritedProps: () => {/* nothing */},
|
|
58
|
+
resolveConfigProps: () => {/* nothing */}
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
61
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';
|
|
3
3
|
import DayjsUtils from '@date-io/dayjs';
|
|
4
|
-
import TextInput from '@pega/react-sdk-components/lib/components/
|
|
4
|
+
import TextInput from '@pega/react-sdk-components/lib/components/field/TextInput';
|
|
5
5
|
import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
|
|
6
|
-
import FieldValueList from '@pega/react-sdk-components/lib/components/
|
|
6
|
+
import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { KeyboardDateTimePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';
|
|
3
3
|
import DayjsUtils from '@date-io/dayjs';
|
|
4
|
-
import TextInput from '@pega/react-sdk-components/lib/components/
|
|
4
|
+
import TextInput from '@pega/react-sdk-components/lib/components/field/TextInput';
|
|
5
5
|
import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
|
|
6
|
-
import FieldValueList from '@pega/react-sdk-components/lib/components/
|
|
6
|
+
import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
|
|
9
9
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* eslint-disable react/no-unused-prop-types */
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { TextField } from '@material-ui/core';
|
|
4
|
-
import TextInput from '@pega/react-sdk-components/lib/components/
|
|
5
|
-
import FieldValueList from '@pega/react-sdk-components/lib/components/
|
|
4
|
+
import TextInput from '@pega/react-sdk-components/lib/components/fields/TextInput';
|
|
5
|
+
import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable react/no-unused-prop-types */
|
|
2
2
|
import React, { useState, useEffect } from 'react';
|
|
3
3
|
import CurrencyTextField from '@unicef/material-ui-currency-textfield';
|
|
4
|
-
import FieldValueList from '@pega/react-sdk-components/lib/components/
|
|
4
|
+
import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
|
|
5
5
|
import handleEvent from '@pega/react-sdk-components/lib/components/helpers/event-utils';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { makeStyles } from '@material-ui/core/styles';
|
|
4
4
|
import { TextField } from '@material-ui/core';
|
|
5
|
-
import TextInput from '@pega/react-sdk-components/lib/components/
|
|
6
|
-
import FieldValueList from '@pega/react-sdk-components/lib/components/
|
|
5
|
+
import TextInput from '@pega/react-sdk-components/lib/components/field/TextInput';
|
|
6
|
+
import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
|
|
9
9
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* eslint-disable react/no-unused-prop-types */
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { TextField } from '@material-ui/core';
|
|
4
|
-
import TextInput from '@pega/react-sdk-components/lib/components/
|
|
5
|
-
import FieldValueList from '@pega/react-sdk-components/lib/components/
|
|
4
|
+
import TextInput from '@pega/react-sdk-components/lib/components/field/TextInput';
|
|
5
|
+
import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable react/no-unused-prop-types */
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { TextField } from '@material-ui/core';
|
|
4
|
-
import FieldValueList from '@pega/react-sdk-components/lib/components/
|
|
4
|
+
import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
|
|
7
7
|
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { TextField, InputAdornment } from '@material-ui/core';
|
|
4
4
|
import MailOutlineIcon from '@material-ui/icons/MailOutline';
|
|
5
|
-
import TextInput from '@pega/react-sdk-components/lib/components/
|
|
6
|
-
import FieldValueList from '@pega/react-sdk-components/lib/components/
|
|
5
|
+
import TextInput from '@pega/react-sdk-components/lib/components/field/TextInput';
|
|
6
|
+
import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
|
|
9
9
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable react/no-unused-prop-types */
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { TextField } from '@material-ui/core';
|
|
4
|
-
import FieldValueList from '@pega/react-sdk-components/lib/components/
|
|
4
|
+
import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable react/no-unused-prop-types */
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { TextField } from '@material-ui/core';
|
|
4
|
-
import FieldValueList from '@pega/react-sdk-components/lib/components/
|
|
4
|
+
import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable react/no-unused-prop-types */
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import MuiPhoneNumber from 'material-ui-phone-number';
|
|
4
|
-
import FieldValueList from '@pega/react-sdk-components/lib/components/
|
|
4
|
+
import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
|
|
7
7
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* eslint-disable react/no-unused-prop-types */
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { TextField } from '@material-ui/core';
|
|
4
|
-
import TextInput from '@pega/react-sdk-components/lib/components/
|
|
5
|
-
import FieldValueList from '@pega/react-sdk-components/lib/components/
|
|
4
|
+
import TextInput from '@pega/react-sdk-components/lib/components/field/TextInput';
|
|
5
|
+
import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
|
|
8
8
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import TextInput from '@pega/react-sdk-components/lib/components/
|
|
2
|
+
import TextInput from '@pega/react-sdk-components/lib/components/field/TextInput';
|
|
3
3
|
import { KeyboardTimePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';
|
|
4
4
|
import DayjsUtils from '@date-io/dayjs';
|
|
5
5
|
import dayjs from 'dayjs';
|
|
6
6
|
import AccessTimeIcon from '@material-ui/icons/AccessTime';
|
|
7
|
-
import FieldValueList from '@pega/react-sdk-components/lib/components/
|
|
7
|
+
import FieldValueList from '@pega/react-sdk-components/lib/components/designSystemExtension/FieldValueList';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
9
|
|
|
10
10
|
import Styled{{COMPONENT_CLASS_NAME}}Wrapper from './styles';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
// import PropTypes from "prop-types";
|
|
4
4
|
import Grid from '@material-ui/core/Grid';
|
|
5
|
-
import DetailsFields from '@pega/react-sdk-components/lib/components/
|
|
5
|
+
import DetailsFields from '@pega/react-sdk-components/lib/components/designSystemExtension/DetailsFields';
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
import Styled{{COMPONENT_CLASS_NAME}}Wrapper from './styles';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
// import PropTypes from "prop-types";
|
|
4
4
|
import Grid from '@material-ui/core/Grid';
|
|
5
|
-
import DetailsFields from '@pega/react-sdk-components/lib/components/
|
|
5
|
+
import DetailsFields from '@pega/react-sdk-components/lib/components/designSystemExtension/DetailsFields';
|
|
6
6
|
|
|
7
7
|
import Styled{{COMPONENT_CLASS_NAME}}Wrapper from './styles';
|
|
8
8
|
|
package/src/tasks/index.js
CHANGED
|
@@ -11,4 +11,5 @@ export { default as validate } from './validator/index.js';
|
|
|
11
11
|
export { default as authenticate } from './authenticate/index.js';
|
|
12
12
|
export { default as upgrade } from './upgrade/index.js';
|
|
13
13
|
export { default as buildComponent } from './build/index.js';
|
|
14
|
+
export { default as buildAllComponents } from './build-all/index.js';
|
|
14
15
|
export { default as generateMissingCompanions } from './generate-missing-companions/index.js';
|
package/src/tasks/map/map.js
CHANGED
|
@@ -11,11 +11,12 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
COMPONENTS_DIRECTORY_PATH,
|
|
13
13
|
DXCB_CONFIG_JSON_FILENAME,
|
|
14
|
-
CATEGORY_CUSTOM
|
|
14
|
+
CATEGORY_CUSTOM,
|
|
15
|
+
CATEGORY_CONSTELLATION,
|
|
16
|
+
COMPONENT_DIRECTORY_PREFIX_CUSTOM
|
|
15
17
|
} from '../../constants.js';
|
|
16
18
|
|
|
17
19
|
export const SDK_LOCAL_COMPONENT_MAP_FILENAME = "sdk-local-component-map.js";
|
|
18
|
-
export const COMPONENT_PATH = "./src/components";
|
|
19
20
|
export const IMPORT_END_TAG = "/*import end";
|
|
20
21
|
export const MAP_END_TAG = "/*map end";
|
|
21
22
|
|
|
@@ -23,7 +24,7 @@ export const updateComponentMap = async (componentKey, category = CATEGORY_CUSTO
|
|
|
23
24
|
|
|
24
25
|
const pegaConfigJsonPath = path.join(path.resolve(), DXCB_CONFIG_JSON_FILENAME);
|
|
25
26
|
const pegaLocalComponentMapPath = path.join(path.resolve(), SDK_LOCAL_COMPONENT_MAP_FILENAME);
|
|
26
|
-
const categoryDirectory = join("/", category.toLowerCase());
|
|
27
|
+
const categoryDirectory = (category === CATEGORY_CONSTELLATION) ? join("/", COMPONENT_DIRECTORY_PREFIX_CUSTOM + category.toLowerCase()) : join("/", category.toLowerCase());
|
|
27
28
|
|
|
28
29
|
const componentNameNoPrefix = removeComponentPrefix(componentKey);
|
|
29
30
|
const componentName = convertIntoPascalCase(componentNameNoPrefix);
|
|
@@ -73,7 +74,7 @@ export const updateComponentMap = async (componentKey, category = CATEGORY_CUSTO
|
|
|
73
74
|
|
|
74
75
|
export const deleteFromComponentMap = async (componentKey, category = CATEGORY_CUSTOM) => {
|
|
75
76
|
const pegaLocalComponentMapPath = path.join(path.resolve(), SDK_LOCAL_COMPONENT_MAP_FILENAME);
|
|
76
|
-
const categoryDirectory = join("/", category.toLowerCase());
|
|
77
|
+
const categoryDirectory = (category === CATEGORY_CONSTELLATION) ? join("/", COMPONENT_DIRECTORY_PREFIX_CUSTOM + category.toLowerCase()) : join("/", category.toLowerCase());
|
|
77
78
|
const pegaConfigJsonPath = path.join(path.resolve(), DXCB_CONFIG_JSON_FILENAME);
|
|
78
79
|
|
|
79
80
|
const componentNameNoPrefix = removeComponentPrefix(componentKey);
|
|
@@ -44,15 +44,25 @@ const checkAndCreateConfigComponentKey = async (targetDirectory) => {
|
|
|
44
44
|
const configFile = path.join(targetDirectory, "config-ext.json");
|
|
45
45
|
try {
|
|
46
46
|
const configData = fs.readFileSync(path.resolve(configFile), 'utf8');
|
|
47
|
-
|
|
47
|
+
let configObj = JSON.parse(configData);
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
let writeUpdate = false;
|
|
50
|
+
if (!configObj.componentKey || !configObj.label) {
|
|
50
51
|
const name = configObj.name;
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
|
|
53
|
+
if (!configObj.componentKey) {
|
|
54
|
+
const componentKey = name;
|
|
55
|
+
configObj = { componentKey, ...configObj };
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (!configObj.label) {
|
|
59
|
+
const label = name;
|
|
60
|
+
configObj = { label, ...configObj };
|
|
61
|
+
}
|
|
62
|
+
|
|
53
63
|
|
|
54
64
|
// stringify "4", makes the json string look like JSON in the file
|
|
55
|
-
const configContent = JSON.stringify(
|
|
65
|
+
const configContent = JSON.stringify(configObj, null, 4);
|
|
56
66
|
|
|
57
67
|
// update file
|
|
58
68
|
fs.writeFileSync(configFile, configContent, { encoding: 'utf8' });
|
|
@@ -149,22 +159,22 @@ export default async options => {
|
|
|
149
159
|
let inputType = options.params[3];
|
|
150
160
|
|
|
151
161
|
switch (inputType.toLowerCase()) {
|
|
152
|
-
case "
|
|
162
|
+
case "field" :
|
|
153
163
|
case "f" :
|
|
154
|
-
promptType = "
|
|
164
|
+
promptType = "field";
|
|
155
165
|
break;
|
|
156
|
-
case "
|
|
166
|
+
case "template" :
|
|
157
167
|
case "t" :
|
|
158
|
-
promptType = "
|
|
168
|
+
promptType = "template";
|
|
159
169
|
break;
|
|
160
|
-
case "
|
|
170
|
+
case "widget" :
|
|
161
171
|
case "w" :
|
|
162
|
-
promptType = "
|
|
172
|
+
promptType = "widget";
|
|
163
173
|
break;
|
|
164
|
-
case "
|
|
174
|
+
case "designsystemextension" :
|
|
165
175
|
case "des" :
|
|
166
176
|
case "d" :
|
|
167
|
-
promptType = "
|
|
177
|
+
promptType = "designSystemExtension";
|
|
168
178
|
break;
|
|
169
179
|
case "infra" :
|
|
170
180
|
case "i" :
|
|
@@ -185,10 +195,10 @@ export default async options => {
|
|
|
185
195
|
let componentDefaults = await getComponentDefaults();
|
|
186
196
|
componentDefaults.library = library;
|
|
187
197
|
|
|
188
|
-
const formsList = await getListAvailableComponents("
|
|
189
|
-
const desList = await getListAvailableComponents("
|
|
190
|
-
const templateList = await getListAvailableComponents("
|
|
191
|
-
const widgetList = await getListAvailableComponents("
|
|
198
|
+
const formsList = await getListAvailableComponents("field");
|
|
199
|
+
const desList = await getListAvailableComponents("designSystemExtension");
|
|
200
|
+
const templateList = await getListAvailableComponents("template");
|
|
201
|
+
const widgetList = await getListAvailableComponents("widget");
|
|
192
202
|
const infraList = await getListAvailableComponents("infra");
|
|
193
203
|
|
|
194
204
|
const questions = [
|
|
@@ -208,7 +218,7 @@ export default async options => {
|
|
|
208
218
|
choices: formsList,
|
|
209
219
|
pageSize: 15,
|
|
210
220
|
when(answers) {
|
|
211
|
-
return answers.type === '
|
|
221
|
+
return answers.type === 'field' || promptType === 'field';
|
|
212
222
|
}
|
|
213
223
|
},
|
|
214
224
|
{
|
|
@@ -218,7 +228,7 @@ export default async options => {
|
|
|
218
228
|
choices: desList,
|
|
219
229
|
pageSize: 15,
|
|
220
230
|
when(answers) {
|
|
221
|
-
return answers.type === '
|
|
231
|
+
return answers.type === 'designSystemExtension' || promptType === 'designSystemExtension';
|
|
222
232
|
}
|
|
223
233
|
},
|
|
224
234
|
{
|
|
@@ -238,7 +248,7 @@ export default async options => {
|
|
|
238
248
|
choices: templateList,
|
|
239
249
|
pageSize: 15,
|
|
240
250
|
when(answers) {
|
|
241
|
-
return answers.type === '
|
|
251
|
+
return answers.type === 'template' || promptType === 'template';
|
|
242
252
|
}
|
|
243
253
|
},
|
|
244
254
|
{
|
|
@@ -248,7 +258,7 @@ export default async options => {
|
|
|
248
258
|
choices: widgetList,
|
|
249
259
|
pageSize: 15,
|
|
250
260
|
when(answers) {
|
|
251
|
-
return answers.type === '
|
|
261
|
+
return answers.type === 'widget' || promptType === 'widget';
|
|
252
262
|
}
|
|
253
263
|
},
|
|
254
264
|
|
|
@@ -30,6 +30,15 @@ const allowedSubtypes = [
|
|
|
30
30
|
])
|
|
31
31
|
];
|
|
32
32
|
|
|
33
|
+
// additional subtypes are manually added below
|
|
34
|
+
const allowedOverrideSubtypes = [
|
|
35
|
+
...new Set([
|
|
36
|
+
...COMPONENT_SCHEMA.subtype.field.map(({ value }) => value),
|
|
37
|
+
...COMPONENT_SCHEMA.subtype.template,
|
|
38
|
+
...COMPONENT_SCHEMA.subtype.widget.map(({ value }) => value)
|
|
39
|
+
]), "ACTION", "DATA_CAPTURE", "SUMMARY", "CASEVIEW", "DATAVIEW", "LIST"
|
|
40
|
+
];
|
|
41
|
+
|
|
33
42
|
const schema = {
|
|
34
43
|
type: 'object',
|
|
35
44
|
properties: {
|
|
@@ -183,7 +192,7 @@ const overrideSchema = {
|
|
|
183
192
|
subtype: {
|
|
184
193
|
anyOf: [{ type: 'string' }, { type: 'array' }],
|
|
185
194
|
|
|
186
|
-
enum:
|
|
195
|
+
enum: allowedOverrideSubtypes
|
|
187
196
|
},
|
|
188
197
|
icon: { type: 'string' },
|
|
189
198
|
properties: {
|