@pega/custom-dx-components 2.0.17 → 2.0.19

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.
Files changed (33) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/src/tasks/create/templates/Constellation/Field/Boolean/demo.stories.jsx.mustache +8 -2
  4. package/src/tasks/create/templates/Constellation/Field/Date/demo.stories.jsx.mustache +11 -6
  5. package/src/tasks/create/templates/Constellation/Field/DateTime/demo.stories.jsx.mustache +11 -7
  6. package/src/tasks/create/templates/Constellation/Field/DateTime/mock.stories.js.mustache +2 -2
  7. package/src/tasks/create/templates/Constellation/Field/Decimal/demo.stories.jsx.mustache +7 -7
  8. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/demo.stories.jsx.mustache +9 -8
  9. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/demo.stories.jsx.mustache +7 -7
  10. package/src/tasks/create/templates/Constellation/Field/Integer/demo.stories.jsx.mustache +7 -7
  11. package/src/tasks/create/templates/Constellation/Field/Picklist/demo.stories.jsx.mustache +16 -10
  12. package/src/tasks/create/templates/Constellation/Field/Text/demo.stories.jsx.mustache +9 -7
  13. package/src/tasks/create/templates/Constellation/Field/Text-Email/demo.stories.jsx.mustache +8 -8
  14. package/src/tasks/create/templates/Constellation/Field/Text-Input/demo.stories.jsx.mustache +7 -7
  15. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/demo.stories.jsx.mustache +7 -7
  16. package/src/tasks/create/templates/Constellation/Field/Text-Phone/demo.stories.jsx.mustache +6 -6
  17. package/src/tasks/create/templates/Constellation/Field/Text-Phone/index.jsx.mustache +1 -1
  18. package/src/tasks/create/templates/Constellation/Field/Text-URL/demo.stories.jsx.mustache +6 -6
  19. package/src/tasks/create/templates/Constellation/Field/Text-URL/index.jsx.mustache +3 -174
  20. package/src/tasks/create/templates/Constellation/Field/Text-URL/text-url.js.mustache +172 -0
  21. package/src/tasks/create/templates/Constellation/Field/TimeofDay/demo.stories.jsx.mustache +10 -5
  22. package/src/tasks/create/templates/Constellation/Template/DETAILS/demo.stories.jsx.mustache +59 -51
  23. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/demo.stories.jsx.mustache +64 -59
  24. package/src/tasks/create/templates/Constellation/Template/FORM/demo.stories.jsx.mustache +43 -39
  25. package/src/tasks/create/templates/Constellation/Template/FORM-region/demo.stories.jsx.mustache +46 -46
  26. package/src/tasks/create/templates/Constellation/Template/PAGE/demo.stories.jsx.mustache +24 -25
  27. package/src/tasks/create/templates/Constellation/Widget/CASE/demo.stories.jsx.mustache +7 -7
  28. package/src/tasks/create/templates/Constellation/Widget/CASE/mock.stories.js.mustache +2 -1
  29. package/src/tasks/create/templates/Constellation/Widget/PAGE/demo.stories.jsx.mustache +1 -1
  30. package/src/tasks/create/templates/Constellation/Widget/PAGE/mock.stories.js.mustache +2 -1
  31. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/demo.stories.jsx.mustache +6 -6
  32. package/src/tasks/init/template/README.md +75 -59
  33. package/src/tasks/init/template/package.json.mustache +2 -2
@@ -11,51 +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
-
19
- return <{{COMPONENT_CLASS_NAME}} {...args}>{regionAChildren}</{{COMPONENT_CLASS_NAME}}>;
20
- };
21
-
22
- export const Primary = Template.bind({});
23
-
24
- Primary.args = {
25
- NumCols: 1,
26
- template: 'DefaultForm',
27
- getPConnect: () => {
28
- return {
29
- getChildren: () => {
30
- return pyReviewRaw.children;
31
- },
32
- createComponent: config => {
33
- switch (config.config.value) {
34
- case '@P .FirstName':
35
- return renderField(regionChildrenResolved[0]);
36
- case '@P .MiddleName':
37
- return renderField(regionChildrenResolved[1]);
38
- case '@P .LastName':
39
- return renderField(regionChildrenResolved[2]);
40
- case '@P .Email':
41
- return renderField(regionChildrenResolved[3]);
42
- case '@P .PhoneNumber':
43
- return renderField(regionChildrenResolved[4]);
44
- case '@P .ServiceDate':
45
- return renderField(regionChildrenResolved[5]);
46
- }
47
- }
48
- };
49
- }
50
- };
51
-
52
14
  const renderField = resolvedProps => {
53
15
  const { displayMode, value = '', label = '' } = resolvedProps;
54
16
 
55
17
  const variant = displayMode === 'LABELS_LEFT' ? 'inline' : 'stacked';
56
18
 
57
19
  let val =
58
- value != '' ? (
20
+ value !== '' ? (
59
21
  <Text variant='h1' as='span'>
60
22
  {value}
61
23
  </Text>
@@ -87,3 +49,45 @@ const renderField = resolvedProps => {
87
49
  }
88
50
  return <FieldValueList variant={variant} fields={[{ name: label, value: val }]} />;
89
51
  };
52
+
53
+
54
+ export const base{{COMPONENT_CLASS_NAME}} = () => {
55
+ const props = {
56
+ NumCols: 1,
57
+ template: 'DefaultForm',
58
+ getPConnect: () => {
59
+ return {
60
+ getChildren: () => {
61
+ return pyReviewRaw.children;
62
+ },
63
+ createComponent: config => {
64
+ // eslint-disable-next-line default-case
65
+ switch (config.config.value) {
66
+ case '@P .FirstName':
67
+ return renderField(regionChildrenResolved[0]);
68
+ case '@P .MiddleName':
69
+ return renderField(regionChildrenResolved[1]);
70
+ case '@P .LastName':
71
+ return renderField(regionChildrenResolved[2]);
72
+ case '@P .Email':
73
+ return renderField(regionChildrenResolved[3]);
74
+ case '@P .PhoneNumber':
75
+ return renderField(regionChildrenResolved[4]);
76
+ case '@P .ServiceDate':
77
+ return renderField(regionChildrenResolved[5]);
78
+ }
79
+ }
80
+ };
81
+ }
82
+ };
83
+
84
+ const regionAChildren = pyReviewRaw.children[0].children.map(child => {
85
+ return props.getPConnect().createComponent(child);
86
+ });
87
+
88
+ return (
89
+ <>
90
+ <{{COMPONENT_CLASS_NAME}} {...props}>{regionAChildren}</{{COMPONENT_CLASS_NAME}}>
91
+ </>
92
+ );
93
+ };
@@ -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
- switch (config.type) {
65
- case 'AppAnnouncement':
66
- return (
67
- <PegaAppAnnouncement
68
- heading='Announcements'
69
- description={configProps.description}
70
- whatsNewLink={configProps.whatsnewlink}
71
- image={configProps.image.replace(/ /g, '+')}
72
- datasource={configProps.datasource}
73
- label={configProps.label}
74
- getPConnect={() => {
75
- return {
76
- getChildren: () => {
77
- return pyHome1Resolved.children;
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 { historyData } from './mock.stories';
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
- export const historyData = {
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;
@@ -3,7 +3,7 @@ import { withKnobs } from '@storybook/addon-knobs';
3
3
  import {{COMPONENT_CLASS_NAME}} from './index.jsx';
4
4
 
5
5
 
6
- import { configProps } from './mock.stories';
6
+ import configProps from './mock.stories';
7
7
 
8
8
  export default {
9
9
  title: '{{COMPONENT_CLASS_NAME}}',
@@ -1,4 +1,4 @@
1
- export const configProps = {
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
  };
@@ -12,9 +12,9 @@ Ensure you have access to the following in your system:
12
12
 
13
13
  - Git version 2.30 or later
14
14
 
15
- - System node version 16
15
+ - System node version 18
16
16
 
17
- - System npm version 7
17
+ - System npm version 8
18
18
 
19
19
  ## Initialize a project
20
20
 
@@ -22,12 +22,12 @@ Initialize the project by performing the following procedure in a terminal:
22
22
 
23
23
  1. Enter the following command to initialize the project.
24
24
 
25
- Pega 8.7 - `npx @pega/custom-dx-components@1 init`
25
+ Pega 8.7 - `npx @pega/custom-dx-components@1 init`
26
26
 
27
- Pega 8.8 - `npx @pega/custom-dx-components@2 init`
27
+ Pega 8.8 - `npx @pega/custom-dx-components@2 init`
28
28
 
29
29
  2. If prompted, enter `y` to install the Custom UI Components package.
30
- You will then be asked to set up the project by entering the required details.
30
+ You will then be asked to set up the project by entering the required details.
31
31
 
32
32
  3. Enter the following details:
33
33
  - Name of the project (required)
@@ -41,7 +41,7 @@ Example - `This project is intended to create and publish a custom component.`
41
41
  - Git repository URL (optional)
42
42
  Example - `https://git.custom-components.io/custom-cc.git`
43
43
  - Author (optional)
44
- Example - `Michelle`
44
+ Example - `Michelle`
45
45
 
46
46
  The workspace is now set up to create custom components and publish them to the server.
47
47
 
@@ -50,7 +50,7 @@ The workspace is now set up to create custom components and publish them to the
50
50
  Create custom components using the following procedure:
51
51
 
52
52
  1. Enter the following command to create a component:
53
- `npm run create`
53
+ `npm run create`
54
54
  You will then be asked to enter or review the following details of the component:
55
55
  - Name of the component (required)
56
56
  Example - `customcomp0`
@@ -65,21 +65,22 @@ Example - `Field`
65
65
  - Sub-type of component (required)
66
66
  Example - `Text`
67
67
  - Description of the component (optional)
68
- Example - `This is a customized searchbox that filters data.`
68
+ Example - `This is a customized searchbox that filters data.`
69
69
  The component is created in the following path: _/Users/your_user_name/project_name/src/components/component_name_
70
- You can also pre-configure the values for the above options in a tasks.config.json file as shown below.
71
-
72
- ```json
73
- {
74
- "component": {
75
- "library": "basic",
76
- "type": "field",
77
- "subtype": "text",
78
- "description": "basic field for capturing textual data",
79
- "icon": "basic-field-text.svg"
70
+ You can also pre-configure the values for the above options in a tasks.config.json file as shown below.
71
+
72
+ ```json
73
+ {
74
+ "component": {
75
+ "library": "basic",
76
+ "version": "0.0.1",
77
+ "type": "field",
78
+ "subtype": "text",
79
+ "description": "basic field for capturing textual data",
80
+ "icon": "basic-field-text.svg"
81
+ }
80
82
  }
81
- }
82
- ```
83
+ ```
83
84
  >**Note**:
84
85
  Alternatively, you can enter the following command to skip entering the details of the component now and can manually enter the details in the config.json file after the component is created:
85
86
  `npm run create <enter_component_name>`
@@ -102,13 +103,19 @@ The *config.json* file contains the mapping of properties for configuring the au
102
103
 
103
104
 
104
105
  2. Enter the following command to start the storybook to view the demo.
105
- `npm start`
106
+ `npm start`
106
107
 
107
108
  3. Modify the source files to build your own component. You can also install and import third-party libraries if required for your component.
108
109
 
109
110
  The custom component is now created. We use the information provided to create uniquely namespaced components in this convention - `<organization>_<library>_<component name>`.
110
111
 
112
+ 4. local build, you can build the component locally to check for config validation and component validation. Enter
113
+ `npm buildComponent`
114
+
115
+ buildComponent will do the same first 2 steps as publish, but will not publish to the server. This allows you to compile your component locally and fix errors before publish.
116
+
111
117
  ## Authenticate the user
118
+
112
119
  Before we publish the custom component to the Pega Infinity Server, authenticate the user to access the resources in the Pega Infinity Server.
113
120
 
114
121
  >**Note**:
@@ -116,53 +123,57 @@ It is required that you configure a value for clientId, clientSecret, and access
116
123
  1. Login to Pega Infinity Server, navigate to Records / Security / OAuth 2.0 Client Registration landing page and open the *DX-CustomComponents* record.
117
124
  2. Click **Regenerate Client Secret**, download the Client Credentials (as the Client ID, Client Secret, and Access token endpoint will be needed), and save the record.
118
125
  3. Update the the task.config.json file with these downloaded values:
119
- ```json
120
- "server-config": {
121
- "server": "https://127.0.0.1:8080/prweb",
122
- "user": "customcomponentoperator",
123
- "password": "pwd",
124
- "clientId": "<mention client ID here>",
125
- "clientSecret": "<mention client secret here>",
126
- "accessTokenUri": "https://127.0.0.1:8080/prweb/PRRestService/oauth2/v1/token"
127
- },
128
- ```
126
+ ```json
127
+ "server-config": {
128
+ "server": "https://127.0.0.1:8080/prweb",
129
+ "user": "customcomponentoperator",
130
+ "password": "pwd",
131
+ "clientId": "<mention client ID here>",
132
+ "clientSecret": "<mention client secret here>",
133
+ "accessTokenUri": "https://127.0.0.1:8080/prweb/PRRestService/oauth2/v1/token"
134
+ },
135
+ ```
129
136
  4. Enter the following command to initiate authentication.
130
- `npm run authenticate`
137
+ `npm run authenticate`
131
138
 
132
139
  The user is now authenticated and can proceed to either publish or list the components.
133
140
 
134
141
  ## Publish custom components
135
142
  Enter the following command to publish custom components to Pega Infinity Server:
136
143
  `npm run publish`
144
+ `npm run publishAll`
137
145
  Publish the finalized custom components changes to Pega Infinity Server so that it can be discoverable in authoring (design palette).
138
146
  You will then be asked to enter the following details:
139
147
 
140
148
  - The component to be published to Pega Infinity Server. It will be updated if the component exists.
149
+ - If publishAll, then you won't get a list
141
150
  - The name of the ruleset where the component must be published.
142
151
  - The version of the ruleset where the component must be published.
143
152
  - Specify if the development build should be generated for debugging.
144
- You can also pre-configure the values for the above options in a tasks.config.json file as shown below. The server, user name, and password must be pre-configured.
145
-
146
- ```json
147
- {
148
- "components-server-config": {
149
- "server": "http://127.0.0.1:8080/prweb",
150
- "user": "customcomponentoperator",
151
- "password": "pwd"
152
- "rulesetName": "TestPega-C11nGall",
153
- "rulesetVersion": "01-01-03",
154
- "sourceOfComponents": "Server",
155
- "devBuild": false,
156
- }
157
- }
158
- ```
159
- When the component is successfully published, you can use the newly published component in App Studio's view authoring.
160
153
 
154
+ - If publishAll, will sequentiall go through the list of local components and publish them
155
+ You can also pre-configure the values for the above options in a tasks.config.json file as shown below. The server, user name, and password must be pre-configured.
156
+
157
+ ```json
158
+ {
159
+ "components-server-config": {
160
+ "server": "http://127.0.0.1:8080/prweb",
161
+ "user": "customcomponentoperator",
162
+ "password": "pwd"
163
+ "rulesetName": "TestPega-C11nGall",
164
+ "rulesetVersion": "01-01-03",
165
+ "sourceOfComponents": "Server",
166
+ "devBuild": false,
167
+ }
168
+ }
169
+ ```
170
+ When the component is successfully published, you can use the newly published component in App Studio's view authoring.
161
171
 
162
- >**Note**:
163
- The Rule-UI-Component instance (with component name) is created on the Pega Infinity Server after publishing the component.
172
+ > **Note**:
173
+ > The Rule-UI-Component instance (with component name) is created on the Pega Infinity Server after publishing the component.
164
174
 
165
175
  ## List custom components
176
+
166
177
  View the available components in the local machine or the server.
167
178
 
168
179
  Enter the following command to list custom components:
@@ -171,37 +182,42 @@ Enter the following command to list custom components:
171
182
  You will then be asked to enter the following details:
172
183
 
173
184
  - List components from Server or Local?
174
- Example - `Server`
185
+ Example - `Server`
175
186
 
176
187
  The custom components will now be listed in the terminal.
177
188
 
178
189
  ## Delete custom components
190
+
179
191
  Delete the available or published components in the local machine or the server.
180
192
 
181
193
  Enter the following command to delete custom components:
182
194
  `npm run delete`
195
+ `npm run deleteAll`
183
196
 
184
197
  You will then be asked to enter the following details:
185
198
 
186
199
  - Delete components from Server or Local?
187
- Example - `Local`
200
+ Example - `Local`
188
201
 
189
202
  - Select component to delete
190
- The list of available components in the following path will be displayed: _/Users/your_user_name/project_name/src/components
191
- Select the component to be deleted from this list.
203
+ The list of available components in the following path will be displayed: \_/Users/your_user_name/project_name/src/components
204
+ Select the component to be deleted from this list.
205
+ - For deleteAll you will see the full list and asked if you want to delete them all.
192
206
 
193
207
  - Are you sure?
194
- Example - `yes`
208
+ Example - `yes`
195
209
 
196
- >**Note**:
197
- If you choose to delete components from the server, the successfully published components along with their ruleset name and ruleset version from the Pega Infinity Server will be displayed. Select the component to be deleted from this list.
210
+ > **Note**:
211
+ > If you choose to delete components from the server, the successfully published components along with their ruleset name and ruleset version from the Pega Infinity Server will be displayed. Select the component to be deleted from this list.
198
212
 
199
213
  ## View existing custom components in storybook
214
+
200
215
  View custom components in a storybook by performing the following procedure:
216
+
201
217
  1. Enter the following command to open the project.
202
- `cd <enter your project's name>`
218
+ `cd <enter your project's name>`
203
219
 
204
220
  2. Enter the following command to start the storybook in development mode.
205
- `npm start`
221
+ `npm start`
206
222
 
207
223
  The storybook is launched in a browser where you can view the components working in isolation.
@@ -40,7 +40,6 @@
40
40
  "dependencies": {
41
41
  "@pega/cosmos-react-core": "^3.0.1",
42
42
  "@pega/cosmos-react-work": "3.0.1",
43
- "@storybook/addon-knobs": "^6.3.1",
44
43
  "dayjs": "^1.11.5",
45
44
  "jest": "^29.3.1",
46
45
  "polished": "^4.2.2",
@@ -55,11 +54,12 @@
55
54
  },
56
55
  "devDependencies": {
57
56
  "@pega/configs": "^0.3.4",
58
- "@pega/custom-dx-components": "^2.0.17",
57
+ "@pega/custom-dx-components": "^2.0.19",
59
58
  "@pega/eslint-config": "^0.3.2",
60
59
  "@storybook/addon-actions": "^6.5.12",
61
60
  "@storybook/addon-essentials": "^6.5.12",
62
61
  "@storybook/addon-links": "^6.5.12",
62
+ "@storybook/addon-knobs": "^6.3.1",
63
63
  "@storybook/addon-storysource": "^6.5.12",
64
64
  "@storybook/builder-webpack5": "^6.5.12",
65
65
  "@storybook/manager-webpack5": "^6.5.12",