@pega/custom-dx-components 0.24.13 → 0.24.15
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/tasks/create/templates/Constellation/Field/Icon-Button-URL/demo.stories.tsx.mustache +5 -0
- package/src/tasks/create/templates/Constellation/Field/Icon-Button-URL/index.tsx.mustache +26 -15
- package/src/tasks/create/templates/Constellation/Template/DETAILS/demo.stories.tsx.mustache +1 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/mock.ts.mustache +23 -24
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/mock.ts.mustache +13 -14
- package/src/tasks/create/templates/Constellation/Widget/PAGE/demo.stories.tsx.mustache +29 -22
- package/src/tasks/create/templates/Constellation/Widget/PAGE/index.tsx.mustache +34 -20
- package/src/tasks/create/templates/Launchpad/Field/Icon-Button-URL/demo.stories.tsx.mustache +5 -0
- package/src/tasks/create/templates/Launchpad/Field/Icon-Button-URL/index.tsx.mustache +30 -17
- package/src/tasks/create/templates/Launchpad/Widget/PAGE/demo.stories.tsx.mustache +30 -22
- package/src/tasks/create/templates/Launchpad/Widget/PAGE/index.tsx.mustache +34 -20
- package/src/tasks/init/template/package.json.mustache +1 -1
- package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDetails/demo.stories.tsx +1 -0
- package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyDetails/mock.ts +23 -24
- package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyIconButtonURL/demo.stories.tsx +5 -0
- package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyIconButtonURL/index.tsx +26 -15
- package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPageWidget/demo.stories.tsx +29 -22
- package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyPageWidget/index.tsx +34 -20
- package/tests/assets/components/createAll/Constellation/Pega_DXIL_MyTwoColumnDetails/mock.ts +13 -14
- package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDetails/demo.stories.tsx +1 -0
- package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyDetails/mock.ts +23 -24
- package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyIconButtonURL/demo.stories.tsx +5 -0
- package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyIconButtonURL/index.tsx +30 -17
- package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPageWidget/demo.stories.tsx +30 -22
- package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyPageWidget/index.tsx +34 -20
- package/tests/assets/components/createAll/Launchpad/Pega_DXIL_MyTwoColumnDetails/mock.ts +13 -14
package/package.json
CHANGED
package/src/tasks/create/templates/Constellation/Field/Icon-Button-URL/demo.stories.tsx.mustache
CHANGED
|
@@ -38,6 +38,11 @@ const statelistData = {
|
|
|
38
38
|
|
|
39
39
|
window.PCore.getDataPageUtils = () => {
|
|
40
40
|
return {
|
|
41
|
+
getData: () => {
|
|
42
|
+
return new Promise(resolve => {
|
|
43
|
+
resolve(statelistData);
|
|
44
|
+
});
|
|
45
|
+
},
|
|
41
46
|
getDataAsync: () => {
|
|
42
47
|
return new Promise(resolve => {
|
|
43
48
|
resolve(statelistData);
|
|
@@ -65,8 +65,11 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
65
65
|
const { value, displayMode, countryCode = 'USA', getPConnect, testId } = props;
|
|
66
66
|
const [statelist, setStatelist] = useState([]);
|
|
67
67
|
const [showTable, setShowTable] = useState(false);
|
|
68
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
68
69
|
const [validUrl, setValidUrl] = useState('about:blank');
|
|
69
70
|
const PConnect = getPConnect();
|
|
71
|
+
const dataViewName = 'D_pyStateList';
|
|
72
|
+
const context = PConnect.getContextName();
|
|
70
73
|
|
|
71
74
|
// IMPORTANT: need to register icons used in camel case
|
|
72
75
|
registerIcon(listNumber, arrowRight, globe);
|
|
@@ -111,8 +114,6 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
111
114
|
// get data from a data page and a PConnect function
|
|
112
115
|
// to get getContextName
|
|
113
116
|
useEffect(() => {
|
|
114
|
-
const dataViewName = 'D_pyStateList';
|
|
115
|
-
const context = PConnect.getContextName();
|
|
116
117
|
const params = { pyCountry: countryCode };
|
|
117
118
|
|
|
118
119
|
// only retrieve table data if table is shown
|
|
@@ -121,25 +122,33 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
121
122
|
.getDataAsync(dataViewName, context, params, null, null)
|
|
122
123
|
// @ts-ignore
|
|
123
124
|
.then((response: any) => {
|
|
125
|
+
setIsLoading(false);
|
|
124
126
|
// table requires an index or will get setExtraStackFrame error
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
127
|
+
if (response.data !== null) {
|
|
128
|
+
setStatelist(
|
|
129
|
+
response.data.map((entry: any, index: number) => {
|
|
130
|
+
// mapping the data into the column names
|
|
131
|
+
// MUST have an id/index or will get a setExtraStackFrame error
|
|
132
|
+
// put a key in the table
|
|
133
|
+
return {
|
|
134
|
+
stateName: entry.pyLabel,
|
|
135
|
+
stateCode: entry.pyStateCode,
|
|
136
|
+
id: index
|
|
137
|
+
};
|
|
138
|
+
})
|
|
139
|
+
);
|
|
140
|
+
} else {
|
|
141
|
+
setStatelist([]);
|
|
142
|
+
setIsLoading(false);
|
|
143
|
+
}
|
|
137
144
|
})
|
|
138
145
|
.catch((error: any) => {
|
|
146
|
+
setStatelist([]);
|
|
147
|
+
setIsLoading(false);
|
|
139
148
|
console.log(error);
|
|
140
149
|
});
|
|
141
150
|
}
|
|
142
|
-
}, [
|
|
151
|
+
}, [context, countryCode, showTable]);
|
|
143
152
|
|
|
144
153
|
// when DISPLAY_ONLY, in this example we will just show the URL.
|
|
145
154
|
if (displayMode === 'DISPLAY_ONLY') {
|
|
@@ -196,6 +205,8 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
196
205
|
title={PConnect.getLocalizedValue('State list', '', '')}
|
|
197
206
|
columns={columns}
|
|
198
207
|
data={statelist}
|
|
208
|
+
loading={isLoading}
|
|
209
|
+
loadingMessage={PConnect.getLocalizedValue('Loading state list', '', '')}
|
|
199
210
|
/>
|
|
200
211
|
)}
|
|
201
212
|
<%={{ }}=%> {{! revert delimiters for mustache }}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
2
|
// @ts-nocheck
|
|
4
3
|
export const pyReviewRaw = {
|
|
5
4
|
name: 'pyReview',
|
|
@@ -17,7 +16,7 @@ export const pyReviewRaw = {
|
|
|
17
16
|
config: {
|
|
18
17
|
value: '@P .pyStatusWork',
|
|
19
18
|
label: '@L Work Status',
|
|
20
|
-
hideLabel:
|
|
19
|
+
hideLabel: true,
|
|
21
20
|
displayMode: 'STACKED_LARGE_VAL',
|
|
22
21
|
displayAsStatus: true,
|
|
23
22
|
key: 'pyStatusWork'
|
|
@@ -28,7 +27,7 @@ export const pyReviewRaw = {
|
|
|
28
27
|
config: {
|
|
29
28
|
value: '@P .pyID',
|
|
30
29
|
label: '@L Case ID',
|
|
31
|
-
hideLabel:
|
|
30
|
+
hideLabel: true,
|
|
32
31
|
displayMode: 'STACKED_LARGE_VAL',
|
|
33
32
|
key: 'pyID'
|
|
34
33
|
}
|
|
@@ -38,7 +37,7 @@ export const pyReviewRaw = {
|
|
|
38
37
|
config: {
|
|
39
38
|
value: '@P .pxCreateDateTime',
|
|
40
39
|
label: '@L Create date/time',
|
|
41
|
-
hideLabel:
|
|
40
|
+
hideLabel: true,
|
|
42
41
|
displayMode: 'STACKED_LARGE_VAL',
|
|
43
42
|
key: 'pxCreateDateTime'
|
|
44
43
|
}
|
|
@@ -47,7 +46,7 @@ export const pyReviewRaw = {
|
|
|
47
46
|
type: 'UserReference',
|
|
48
47
|
config: {
|
|
49
48
|
label: '@L Create Operator',
|
|
50
|
-
hideLabel:
|
|
49
|
+
hideLabel: true,
|
|
51
50
|
value: '@USER .pxCreateOperator',
|
|
52
51
|
placeholder: 'Select...',
|
|
53
52
|
displayMode: 'STACKED_LARGE_VAL',
|
|
@@ -70,6 +69,7 @@ export const pyReviewRaw = {
|
|
|
70
69
|
{
|
|
71
70
|
name: 'A',
|
|
72
71
|
type: 'Region',
|
|
72
|
+
key: 'A',
|
|
73
73
|
getPConnect: () => {
|
|
74
74
|
return {
|
|
75
75
|
getRawMetadata: () => {
|
|
@@ -82,17 +82,17 @@ export const pyReviewRaw = {
|
|
|
82
82
|
type: 'DateTime',
|
|
83
83
|
config: {
|
|
84
84
|
value: '@P .pySLADeadline',
|
|
85
|
-
label: '@L SLA Deadline'
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
label: '@L SLA Deadline',
|
|
86
|
+
key: 'pySLADeadline'
|
|
87
|
+
}
|
|
88
88
|
},
|
|
89
89
|
{
|
|
90
90
|
type: 'DateTime',
|
|
91
91
|
config: {
|
|
92
92
|
value: '@P .pySLAGoal',
|
|
93
|
-
label: '@L SLA Goal'
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
label: '@L SLA Goal',
|
|
94
|
+
key: 'pySLAGoal'
|
|
95
|
+
}
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
98
|
type: 'RadioButtons',
|
|
@@ -100,9 +100,9 @@ export const pyReviewRaw = {
|
|
|
100
100
|
value: '@P .pySLAStartTime',
|
|
101
101
|
label: '@L SLA Start Time',
|
|
102
102
|
listType: 'associated',
|
|
103
|
-
datasource: '@ASSOCIATED .pySLAStartTime'
|
|
104
|
-
|
|
105
|
-
|
|
103
|
+
datasource: '@ASSOCIATED .pySLAStartTime',
|
|
104
|
+
key: 'pySLAStartTime'
|
|
105
|
+
}
|
|
106
106
|
}
|
|
107
107
|
]
|
|
108
108
|
}
|
|
@@ -124,7 +124,6 @@ export const pyReviewResolved = {
|
|
|
124
124
|
config: {
|
|
125
125
|
value: 'New',
|
|
126
126
|
label: 'Work Status',
|
|
127
|
-
displayMode: 'STACKED_LARGE_VAL',
|
|
128
127
|
displayAsStatus: true
|
|
129
128
|
}
|
|
130
129
|
},
|
|
@@ -132,16 +131,14 @@ export const pyReviewResolved = {
|
|
|
132
131
|
type: 'TextInput',
|
|
133
132
|
config: {
|
|
134
133
|
value: 'M-1002',
|
|
135
|
-
label: 'Case ID'
|
|
136
|
-
displayMode: 'STACKED_LARGE_VAL'
|
|
134
|
+
label: 'Case ID'
|
|
137
135
|
}
|
|
138
136
|
},
|
|
139
137
|
{
|
|
140
138
|
type: 'DateTime',
|
|
141
139
|
config: {
|
|
142
140
|
value: '2022-12-11T20:06:27.232Z',
|
|
143
|
-
label: 'Create date/time'
|
|
144
|
-
displayMode: 'STACKED_LARGE_VAL'
|
|
141
|
+
label: 'Create date/time'
|
|
145
142
|
}
|
|
146
143
|
},
|
|
147
144
|
{
|
|
@@ -152,8 +149,7 @@ export const pyReviewResolved = {
|
|
|
152
149
|
userId: 'conns',
|
|
153
150
|
userName: 'Sara Connor'
|
|
154
151
|
},
|
|
155
|
-
placeholder: 'Select...'
|
|
156
|
-
displayMode: 'STACKED_LARGE_VAL'
|
|
152
|
+
placeholder: 'Select...'
|
|
157
153
|
}
|
|
158
154
|
}
|
|
159
155
|
],
|
|
@@ -163,22 +159,25 @@ export const pyReviewResolved = {
|
|
|
163
159
|
export const regionChildrenResolved = [
|
|
164
160
|
{
|
|
165
161
|
readOnly: true,
|
|
166
|
-
value: '',
|
|
162
|
+
value: 'Deadline',
|
|
167
163
|
label: 'SLA Deadline',
|
|
164
|
+
hideLabel: true,
|
|
168
165
|
displayMode: 'LABELS_LEFT',
|
|
169
166
|
key: 'SLA Deadline'
|
|
170
167
|
},
|
|
171
168
|
{
|
|
172
169
|
readOnly: true,
|
|
173
|
-
value: '',
|
|
170
|
+
value: 'Goal',
|
|
174
171
|
label: 'SLA Goal',
|
|
172
|
+
hideLabel: true,
|
|
175
173
|
displayMode: 'LABELS_LEFT',
|
|
176
174
|
key: 'SLA Goal'
|
|
177
175
|
},
|
|
178
176
|
{
|
|
179
177
|
readOnly: true,
|
|
180
|
-
value: '',
|
|
178
|
+
value: 'Start Time',
|
|
181
179
|
label: 'SLA Start Time',
|
|
180
|
+
hideLabel: true,
|
|
182
181
|
listType: 'associated',
|
|
183
182
|
datasource: [
|
|
184
183
|
{
|
|
@@ -16,7 +16,7 @@ export const pyReviewRaw = {
|
|
|
16
16
|
config: {
|
|
17
17
|
value: '@P .pyStatusWork',
|
|
18
18
|
label: '@L Work Status',
|
|
19
|
-
hideLabel:
|
|
19
|
+
hideLabel: true,
|
|
20
20
|
displayMode: 'STACKED_LARGE_VAL',
|
|
21
21
|
displayAsStatus: true,
|
|
22
22
|
key: 'pyStatusWork'
|
|
@@ -27,7 +27,7 @@ export const pyReviewRaw = {
|
|
|
27
27
|
config: {
|
|
28
28
|
value: '@P .pyID',
|
|
29
29
|
label: '@L Case ID',
|
|
30
|
-
hideLabel:
|
|
30
|
+
hideLabel: true,
|
|
31
31
|
displayMode: 'STACKED_LARGE_VAL',
|
|
32
32
|
key: 'pyID'
|
|
33
33
|
}
|
|
@@ -37,7 +37,7 @@ export const pyReviewRaw = {
|
|
|
37
37
|
config: {
|
|
38
38
|
value: '@P .pxCreateDateTime',
|
|
39
39
|
label: '@L Create date/time',
|
|
40
|
-
hideLabel:
|
|
40
|
+
hideLabel: true,
|
|
41
41
|
displayMode: 'STACKED_LARGE_VAL',
|
|
42
42
|
key: 'pxCreateDateTime'
|
|
43
43
|
}
|
|
@@ -46,7 +46,7 @@ export const pyReviewRaw = {
|
|
|
46
46
|
type: 'UserReference',
|
|
47
47
|
config: {
|
|
48
48
|
label: '@L Create Operator',
|
|
49
|
-
hideLabel:
|
|
49
|
+
hideLabel: true,
|
|
50
50
|
value: '@USER .pxCreateOperator',
|
|
51
51
|
placeholder: 'Select...',
|
|
52
52
|
displayMode: 'STACKED_LARGE_VAL',
|
|
@@ -164,7 +164,6 @@ export const pyReviewResolved = {
|
|
|
164
164
|
config: {
|
|
165
165
|
value: 'New',
|
|
166
166
|
label: 'Work Status',
|
|
167
|
-
displayMode: 'STACKED_LARGE_VAL',
|
|
168
167
|
displayAsStatus: true
|
|
169
168
|
}
|
|
170
169
|
},
|
|
@@ -172,16 +171,14 @@ export const pyReviewResolved = {
|
|
|
172
171
|
type: 'TextInput',
|
|
173
172
|
config: {
|
|
174
173
|
value: 'M-1002',
|
|
175
|
-
label: 'Case ID'
|
|
176
|
-
displayMode: 'STACKED_LARGE_VAL'
|
|
174
|
+
label: 'Case ID'
|
|
177
175
|
}
|
|
178
176
|
},
|
|
179
177
|
{
|
|
180
178
|
type: 'DateTime',
|
|
181
179
|
config: {
|
|
182
180
|
value: '2022-12-11T20:06:27.232Z',
|
|
183
|
-
label: 'Create date/time'
|
|
184
|
-
displayMode: 'STACKED_LARGE_VAL'
|
|
181
|
+
label: 'Create date/time'
|
|
185
182
|
}
|
|
186
183
|
},
|
|
187
184
|
{
|
|
@@ -192,8 +189,7 @@ export const pyReviewResolved = {
|
|
|
192
189
|
userId: 'conns',
|
|
193
190
|
userName: 'Sara Connor'
|
|
194
191
|
},
|
|
195
|
-
placeholder: 'Select...'
|
|
196
|
-
displayMode: 'STACKED_LARGE_VAL'
|
|
192
|
+
placeholder: 'Select...'
|
|
197
193
|
}
|
|
198
194
|
}
|
|
199
195
|
],
|
|
@@ -203,22 +199,25 @@ export const pyReviewResolved = {
|
|
|
203
199
|
export const regionChildrenResolved = [
|
|
204
200
|
{
|
|
205
201
|
readOnly: true,
|
|
206
|
-
value: '',
|
|
202
|
+
value: 'Deadline',
|
|
207
203
|
label: 'SLA Deadline',
|
|
204
|
+
hideLabel: true,
|
|
208
205
|
displayMode: 'LABELS_LEFT',
|
|
209
206
|
key: 'SLA Deadline'
|
|
210
207
|
},
|
|
211
208
|
{
|
|
212
209
|
readOnly: true,
|
|
213
|
-
value: '',
|
|
210
|
+
value: 'Goal',
|
|
214
211
|
label: 'SLA Goal',
|
|
212
|
+
hideLabel: true,
|
|
215
213
|
displayMode: 'LABELS_LEFT',
|
|
216
214
|
key: 'SLA Goal'
|
|
217
215
|
},
|
|
218
216
|
{
|
|
219
217
|
readOnly: true,
|
|
220
|
-
value: '',
|
|
218
|
+
value: 'Start Time',
|
|
221
219
|
label: 'SLA Start Time',
|
|
220
|
+
hideLabel: true,
|
|
222
221
|
listType: 'associated',
|
|
223
222
|
datasource: [
|
|
224
223
|
{
|
|
@@ -22,30 +22,37 @@ if (!window.PCore) {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
const worklistData = {
|
|
25
|
-
data:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
25
|
+
data: {
|
|
26
|
+
data: [
|
|
27
|
+
{
|
|
28
|
+
pxProcessName: 'Loan',
|
|
29
|
+
pxRefObjectInsName: ' A-8002',
|
|
30
|
+
pyAssignmentStatus: 'New',
|
|
31
|
+
pxTaskLabel: 'Details'
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
pxProcessName: 'Loan',
|
|
35
|
+
pxRefObjectInsName: ' A-7001',
|
|
36
|
+
pyAssignmentStatus: 'Open',
|
|
37
|
+
pxTaskLabel: 'Info'
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
pxProcessName: 'Loan',
|
|
41
|
+
pxRefObjectInsName: ' A-9000',
|
|
42
|
+
pyAssignmentStatus: 'Open',
|
|
43
|
+
pxTaskLabel: 'Amount'
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
45
47
|
};
|
|
46
48
|
|
|
47
|
-
window.PCore.
|
|
49
|
+
window.PCore.getDataApiUtils = () => {
|
|
48
50
|
return {
|
|
51
|
+
getData: () => {
|
|
52
|
+
return new Promise(resolve => {
|
|
53
|
+
resolve(worklistData);
|
|
54
|
+
});
|
|
55
|
+
},
|
|
49
56
|
getDataAsync: () => {
|
|
50
57
|
return new Promise(resolve => {
|
|
51
58
|
resolve(worklistData);
|
|
@@ -59,7 +66,7 @@ window.PCore.getDataPageUtils = () => {
|
|
|
59
66
|
export const Base{{COMPONENT_CLASS_NAME}}: Story = args => {
|
|
60
67
|
|
|
61
68
|
const props = {
|
|
62
|
-
|
|
69
|
+
...configProps,
|
|
63
70
|
getPConnect: () => {
|
|
64
71
|
return {
|
|
65
72
|
getValue: value => {
|
|
@@ -21,7 +21,11 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
21
21
|
|
|
22
22
|
const { header, description, datasource = [], whatsnewlink, image, getPConnect } = props;
|
|
23
23
|
const [worklist, setWorklist] = useState([]);
|
|
24
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
24
25
|
const PConnect = getPConnect();
|
|
26
|
+
const dataViewName = 'D_pyMyWorkList';
|
|
27
|
+
const context = PConnect.getContextName();
|
|
28
|
+
|
|
25
29
|
let details = [];
|
|
26
30
|
// @ts-ignore
|
|
27
31
|
if (datasource && datasource.source) {
|
|
@@ -44,33 +48,41 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
44
48
|
// get data from a data page and a PConnect function
|
|
45
49
|
// to get getContextName
|
|
46
50
|
useEffect(() => {
|
|
47
|
-
const dataViewName = 'D_pyMyWorkList';
|
|
48
|
-
const context = PConnect.getContextName();
|
|
49
51
|
|
|
50
|
-
PCore.
|
|
51
|
-
.
|
|
52
|
+
PCore.getDataApiUtils()
|
|
53
|
+
.getData(dataViewName, {}, context)
|
|
52
54
|
// @ts-ignore
|
|
53
55
|
.then((response: any) => {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
56
|
+
setIsLoading(false);
|
|
57
|
+
if (response.data.data !== null) {
|
|
58
|
+
// table requires an index or will get setExtraStackFrame error
|
|
59
|
+
setWorklist(
|
|
60
|
+
response.data.data.map((entry: any, index: number) => {
|
|
61
|
+
// mapping the data into the column names
|
|
62
|
+
// MUST have an id/index or will get a setExtraStackFrame error
|
|
63
|
+
// put a key in the table
|
|
64
|
+
return {
|
|
65
|
+
caseType: entry.pxProcessName,
|
|
66
|
+
insKey: entry.pxRefObjectInsName,
|
|
67
|
+
status: entry.pyAssignmentStatus,
|
|
68
|
+
stage: entry.pxTaskLabel,
|
|
69
|
+
id: index
|
|
70
|
+
};
|
|
71
|
+
})
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
setWorklist([]);
|
|
76
|
+
setIsLoading(false);
|
|
77
|
+
}
|
|
78
|
+
|
|
69
79
|
})
|
|
70
80
|
.catch((error: any) => {
|
|
81
|
+
setWorklist([]);
|
|
82
|
+
setIsLoading(false);
|
|
71
83
|
console.log(error);
|
|
72
84
|
});
|
|
73
|
-
}, [
|
|
85
|
+
}, [context]);
|
|
74
86
|
|
|
75
87
|
return (
|
|
76
88
|
<Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
@@ -86,6 +98,8 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
86
98
|
title={PConnect.getLocalizedValue('Work list', '', '')}
|
|
87
99
|
columns={columns}
|
|
88
100
|
data={worklist}
|
|
101
|
+
loading={isLoading}
|
|
102
|
+
loadingMessage={PConnect.getLocalizedValue('Loading Work list', '', '')}
|
|
89
103
|
/>
|
|
90
104
|
</Styled{{COMPONENT_CLASS_NAME}}Wrapper>
|
|
91
105
|
);
|
package/src/tasks/create/templates/Launchpad/Field/Icon-Button-URL/demo.stories.tsx.mustache
CHANGED
|
@@ -38,6 +38,11 @@ const countrylistData = {
|
|
|
38
38
|
|
|
39
39
|
window.PCore.getDataPageUtils = () => {
|
|
40
40
|
return {
|
|
41
|
+
getData: () => {
|
|
42
|
+
return new Promise(resolve => {
|
|
43
|
+
resolve(countrylistData);
|
|
44
|
+
});
|
|
45
|
+
},
|
|
41
46
|
getDataAsync: () => {
|
|
42
47
|
return new Promise(resolve => {
|
|
43
48
|
resolve(countrylistData);
|
|
@@ -60,10 +60,13 @@ export const textFormatter = (value: string) => {
|
|
|
60
60
|
// any default values in config.pros should be set in defaultProps at bottom of this file
|
|
61
61
|
function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
62
62
|
const { value, displayMode, getPConnect, testId } = props;
|
|
63
|
-
const [
|
|
63
|
+
const [countrylist, setCountrylist] = useState([]);
|
|
64
64
|
const [showTable, setShowTable] = useState(false);
|
|
65
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
65
66
|
const [validUrl, setValidUrl] = useState('about:blank');
|
|
66
67
|
const PConnect = getPConnect();
|
|
68
|
+
const dataViewName = 'CountryList';
|
|
69
|
+
const context = PConnect.getContextName();
|
|
67
70
|
|
|
68
71
|
// IMPORTANT: need to register icons used in camel case
|
|
69
72
|
registerIcon(listNumber, arrowRight, globe);
|
|
@@ -108,8 +111,6 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
108
111
|
// get data from a data page and a PConnect function
|
|
109
112
|
// to get getContextName
|
|
110
113
|
useEffect(() => {
|
|
111
|
-
const dataViewName = 'CountryList';
|
|
112
|
-
const context = PConnect.getContextName();
|
|
113
114
|
const params = { };
|
|
114
115
|
|
|
115
116
|
// only retrieve table data if table is shown
|
|
@@ -118,25 +119,35 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
118
119
|
.getDataAsync(dataViewName, context, params, null, null)
|
|
119
120
|
// @ts-ignore
|
|
120
121
|
.then((response: any) => {
|
|
122
|
+
setIsLoading(false);
|
|
121
123
|
// table requires an index or will get setExtraStackFrame error
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
124
|
+
if (response.data !== null) {
|
|
125
|
+
setCountrylist(
|
|
126
|
+
response.data.map((entry: any, index: number) => {
|
|
127
|
+
// mapping the data into the column names
|
|
128
|
+
// MUST have an id/index or will get a setExtraStackFrame error
|
|
129
|
+
// put a key in the table
|
|
130
|
+
return {
|
|
131
|
+
countryName: entry.Name,
|
|
132
|
+
shortName: entry.ShortName,
|
|
133
|
+
id: index
|
|
134
|
+
};
|
|
135
|
+
})
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
setCountrylist([]);
|
|
140
|
+
setIsLoading(false);
|
|
141
|
+
}
|
|
142
|
+
|
|
134
143
|
})
|
|
135
144
|
.catch((error: any) => {
|
|
145
|
+
setCountrylist([]);
|
|
146
|
+
setIsLoading(false);
|
|
136
147
|
console.log(error);
|
|
137
148
|
});
|
|
138
149
|
}
|
|
139
|
-
}, [
|
|
150
|
+
}, [context, showTable]);
|
|
140
151
|
|
|
141
152
|
// when DISPLAY_ONLY, in this example we will just show the URL.
|
|
142
153
|
if (displayMode === 'DISPLAY_ONLY') {
|
|
@@ -191,7 +202,9 @@ function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}Props) {
|
|
|
191
202
|
<Table
|
|
192
203
|
title={PConnect.getLocalizedValue('State list', '', '')}
|
|
193
204
|
columns={columns}
|
|
194
|
-
data={
|
|
205
|
+
data={countrylist}
|
|
206
|
+
loading={isLoading}
|
|
207
|
+
loadingMessage={PConnect.getLocalizedValue('Loading country list', '', '')}
|
|
195
208
|
/>
|
|
196
209
|
)}
|
|
197
210
|
<%={{ }}=%> {{! revert delimiters for mustache }}
|
|
@@ -22,30 +22,38 @@ if (!window.PCore) {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
const worklistData = {
|
|
25
|
-
data:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
25
|
+
data: {
|
|
26
|
+
data: [
|
|
27
|
+
{
|
|
28
|
+
CaseName: 'Loan',
|
|
29
|
+
BusinessID: ' A-8002',
|
|
30
|
+
ProcessName: 'New',
|
|
31
|
+
TaskName: 'Details'
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
CaseName: 'Loan',
|
|
35
|
+
BusinessID: ' A-7001',
|
|
36
|
+
ProcessName: 'Open',
|
|
37
|
+
TaskName: 'Info'
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
CaseName: 'Loan',
|
|
41
|
+
BusinessID: ' A-9000',
|
|
42
|
+
ProcessName: 'Open',
|
|
43
|
+
TaskName: 'Amount'
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
|
|
45
48
|
};
|
|
46
49
|
|
|
47
|
-
window.PCore.
|
|
50
|
+
window.PCore.getDataApiUtils = () => {
|
|
48
51
|
return {
|
|
52
|
+
getData: () => {
|
|
53
|
+
return new Promise(resolve => {
|
|
54
|
+
resolve(worklistData);
|
|
55
|
+
});
|
|
56
|
+
},
|
|
49
57
|
getDataAsync: () => {
|
|
50
58
|
return new Promise(resolve => {
|
|
51
59
|
resolve(worklistData);
|
|
@@ -59,7 +67,7 @@ window.PCore.getDataPageUtils = () => {
|
|
|
59
67
|
export const Base{{COMPONENT_CLASS_NAME}}: Story = args => {
|
|
60
68
|
|
|
61
69
|
const props = {
|
|
62
|
-
|
|
70
|
+
...configProps,
|
|
63
71
|
getPConnect: () => {
|
|
64
72
|
return {
|
|
65
73
|
getValue: value => {
|