@pega/dx-component-builder-sdk 0.1.15 → 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 +55 -16
- package/src/tasks/validator/index.js +12 -3
- 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);
|
|
@@ -39,6 +39,43 @@ const copyComponentTemplate = async options => {
|
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
|
|
42
|
+
const checkAndCreateConfigComponentKey = async (targetDirectory) => {
|
|
43
|
+
|
|
44
|
+
const configFile = path.join(targetDirectory, "config-ext.json");
|
|
45
|
+
try {
|
|
46
|
+
const configData = fs.readFileSync(path.resolve(configFile), 'utf8');
|
|
47
|
+
let configObj = JSON.parse(configData);
|
|
48
|
+
|
|
49
|
+
let writeUpdate = false;
|
|
50
|
+
if (!configObj.componentKey || !configObj.label) {
|
|
51
|
+
const name = configObj.name;
|
|
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
|
+
|
|
63
|
+
|
|
64
|
+
// stringify "4", makes the json string look like JSON in the file
|
|
65
|
+
const configContent = JSON.stringify(configObj, null, 4);
|
|
66
|
+
|
|
67
|
+
// update file
|
|
68
|
+
fs.writeFileSync(configFile, configContent, { encoding: 'utf8' });
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
// no config-ext.json file, so no update, which is ok
|
|
74
|
+
console.log(chalk.yellow("Component has no config file for extension."));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
42
79
|
const getListAvailableComponents = async (type) => {
|
|
43
80
|
const components = await getComponents(false, CATEGORY_OVERRIDE);
|
|
44
81
|
const fullList = COMPONENT_SCHEMA.overrideComponent[type];
|
|
@@ -102,6 +139,8 @@ const validateCompile = async (
|
|
|
102
139
|
overrideDirectory
|
|
103
140
|
});
|
|
104
141
|
|
|
142
|
+
await checkAndCreateConfigComponentKey(targetDirectory);
|
|
143
|
+
|
|
105
144
|
|
|
106
145
|
console.log(chalk.green(`> Created ${componentKey} component in ${targetDirectory}`));
|
|
107
146
|
|
|
@@ -120,22 +159,22 @@ export default async options => {
|
|
|
120
159
|
let inputType = options.params[3];
|
|
121
160
|
|
|
122
161
|
switch (inputType.toLowerCase()) {
|
|
123
|
-
case "
|
|
162
|
+
case "field" :
|
|
124
163
|
case "f" :
|
|
125
|
-
promptType = "
|
|
164
|
+
promptType = "field";
|
|
126
165
|
break;
|
|
127
|
-
case "
|
|
166
|
+
case "template" :
|
|
128
167
|
case "t" :
|
|
129
|
-
promptType = "
|
|
168
|
+
promptType = "template";
|
|
130
169
|
break;
|
|
131
|
-
case "
|
|
170
|
+
case "widget" :
|
|
132
171
|
case "w" :
|
|
133
|
-
promptType = "
|
|
172
|
+
promptType = "widget";
|
|
134
173
|
break;
|
|
135
|
-
case "
|
|
174
|
+
case "designsystemextension" :
|
|
136
175
|
case "des" :
|
|
137
176
|
case "d" :
|
|
138
|
-
promptType = "
|
|
177
|
+
promptType = "designSystemExtension";
|
|
139
178
|
break;
|
|
140
179
|
case "infra" :
|
|
141
180
|
case "i" :
|
|
@@ -156,10 +195,10 @@ export default async options => {
|
|
|
156
195
|
let componentDefaults = await getComponentDefaults();
|
|
157
196
|
componentDefaults.library = library;
|
|
158
197
|
|
|
159
|
-
const formsList = await getListAvailableComponents("
|
|
160
|
-
const desList = await getListAvailableComponents("
|
|
161
|
-
const templateList = await getListAvailableComponents("
|
|
162
|
-
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");
|
|
163
202
|
const infraList = await getListAvailableComponents("infra");
|
|
164
203
|
|
|
165
204
|
const questions = [
|
|
@@ -179,7 +218,7 @@ export default async options => {
|
|
|
179
218
|
choices: formsList,
|
|
180
219
|
pageSize: 15,
|
|
181
220
|
when(answers) {
|
|
182
|
-
return answers.type === '
|
|
221
|
+
return answers.type === 'field' || promptType === 'field';
|
|
183
222
|
}
|
|
184
223
|
},
|
|
185
224
|
{
|
|
@@ -189,7 +228,7 @@ export default async options => {
|
|
|
189
228
|
choices: desList,
|
|
190
229
|
pageSize: 15,
|
|
191
230
|
when(answers) {
|
|
192
|
-
return answers.type === '
|
|
231
|
+
return answers.type === 'designSystemExtension' || promptType === 'designSystemExtension';
|
|
193
232
|
}
|
|
194
233
|
},
|
|
195
234
|
{
|
|
@@ -209,7 +248,7 @@ export default async options => {
|
|
|
209
248
|
choices: templateList,
|
|
210
249
|
pageSize: 15,
|
|
211
250
|
when(answers) {
|
|
212
|
-
return answers.type === '
|
|
251
|
+
return answers.type === 'template' || promptType === 'template';
|
|
213
252
|
}
|
|
214
253
|
},
|
|
215
254
|
{
|
|
@@ -219,7 +258,7 @@ export default async options => {
|
|
|
219
258
|
choices: widgetList,
|
|
220
259
|
pageSize: 15,
|
|
221
260
|
when(answers) {
|
|
222
|
-
return answers.type === '
|
|
261
|
+
return answers.type === 'widget' || promptType === 'widget';
|
|
223
262
|
}
|
|
224
263
|
},
|
|
225
264
|
|