@pega/dx-component-builder-sdk 0.23.21 → 0.24.2

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 (130) hide show
  1. package/package.json +1 -1
  2. package/src/cli.js +1 -1
  3. package/src/constants.js +4 -0
  4. package/src/tasks/build-all/helper.js +6 -0
  5. package/src/tasks/build-comp/helper.js +6 -0
  6. package/src/tasks/bundle/builderAngular/webpack.config.js +14 -1
  7. package/src/tasks/bundle/builderAssociated/webpack.config.js +13 -0
  8. package/src/tasks/bundle/builderReact/webpack.config.js +14 -1
  9. package/src/tasks/create/templates/Constellation/field/Boolean/index.tsx.mustache +3 -2
  10. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/PConnProps.d.ts.mustache +46 -0
  11. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/config.json.mustache +64 -0
  12. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/demo.stories.tsx.mustache +99 -0
  13. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/index.tsx.mustache +204 -0
  14. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/mock.ts.mustache +5 -0
  15. package/src/tasks/create/templates/Constellation/field/Icon-Button-URL/styles.ts.mustache +8 -0
  16. package/src/tasks/create/templates/Constellation/field/Picklist/index.tsx.mustache +0 -1
  17. package/src/tasks/create/templates/Constellation/field/Picklist-Autocomplete/date.ts.mustache +15 -37
  18. package/src/tasks/create/templates/Constellation/field/Picklist-Autocomplete/index.tsx.mustache +11 -0
  19. package/src/tasks/create/templates/Constellation/field/Picklist-Autocomplete/utils.ts.mustache +3 -0
  20. package/src/tasks/create/templates/Constellation/field/Text/index.tsx.mustache +94 -4
  21. package/src/tasks/create/templates/Constellation/template/DETAILS/Avatar.tsx.mustache +78 -0
  22. package/src/tasks/create/templates/Constellation/template/DETAILS/DetailsRender.tsx.mustache +55 -0
  23. package/src/tasks/create/templates/Constellation/template/DETAILS/HighlightRender.tsx.mustache +49 -0
  24. package/src/tasks/create/templates/Constellation/template/DETAILS/Operator.tsx.mustache +218 -0
  25. package/src/tasks/create/templates/Constellation/template/DETAILS/demo.stories.tsx.mustache +77 -23
  26. package/src/tasks/create/templates/Constellation/template/DETAILS/index.tsx.mustache +51 -40
  27. package/src/tasks/create/templates/Constellation/template/DETAILS/mock.ts.mustache +78 -20
  28. package/src/tasks/create/templates/Constellation/template/DETAILS/styles.ts.mustache +16 -0
  29. package/src/tasks/create/templates/Constellation/template/DETAILS-region/Avatar.tsx.mustache +78 -0
  30. package/src/tasks/create/templates/Constellation/template/DETAILS-region/DetailsRender.tsx.mustache +55 -0
  31. package/src/tasks/create/templates/Constellation/template/DETAILS-region/HighlightRender.tsx.mustache +49 -0
  32. package/src/tasks/create/templates/Constellation/template/DETAILS-region/Operator.tsx.mustache +218 -0
  33. package/src/tasks/create/templates/Constellation/template/DETAILS-region/demo.stories.tsx.mustache +95 -26
  34. package/src/tasks/create/templates/Constellation/template/DETAILS-region/index.tsx.mustache +42 -39
  35. package/src/tasks/create/templates/Constellation/template/DETAILS-region/mock.ts.mustache +68 -10
  36. package/src/tasks/create/templates/Constellation/template/DETAILS-region/styles.ts.mustache +15 -0
  37. package/src/tasks/create/templates/Constellation/template/FORM/DetailsRender.tsx +59 -0
  38. package/src/tasks/create/templates/Constellation/template/FORM/index.tsx.mustache +31 -5
  39. package/src/tasks/create/templates/Constellation/template/FORM-region/DetailsRender.tsx +59 -0
  40. package/src/tasks/create/templates/Constellation/template/FORM-region/index.tsx.mustache +29 -7
  41. package/src/tasks/create/templates/Constellation/template/PAGE/GetNextWork.tsx.mustache +2 -1
  42. package/src/tasks/create/templates/Constellation/template/PAGE/localizations.json.mustache +4 -2
  43. package/src/tasks/create/templates/Constellation/widget/PAGE/demo.stories.tsx.mustache +87 -6
  44. package/src/tasks/create/templates/Constellation/widget/PAGE/index.tsx.mustache +67 -5
  45. package/src/tasks/create/templates/SDK-Angular/field/Boolean/boolean.component.html.mustache +19 -18
  46. package/src/tasks/create/templates/SDK-Angular/field/Boolean/boolean.component.ts.mustache +127 -44
  47. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/config.json.mustache +64 -0
  48. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/demo.stories.tsx.mustache +63 -0
  49. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/icon-button-url.component.html.mustache +40 -0
  50. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/icon-button-url.component.scss.mustache +24 -0
  51. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/icon-button-url.component.spec.ts.mustache +26 -0
  52. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/icon-button-url.component.ts.mustache +195 -0
  53. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/mock.ts.mustache +37 -0
  54. package/src/tasks/create/templates/SDK-Angular/field/Text-URL/text-url.component.html.mustache +1 -0
  55. package/src/tasks/create/templates/SDK-Angular/field/Text-URL/text-url.component.ts.mustache +2 -0
  56. package/src/tasks/create/templates/SDK-Angular/field/TimeOfDay/time-of-day.component.html.mustache +1 -0
  57. package/src/tasks/create/templates/SDK-Angular/field/TimeOfDay/time-of-day.component.ts.mustache +2 -0
  58. package/src/tasks/create/templates/SDK-Angular/template/FORM-region/form.component.scss.mustache +1 -1
  59. package/src/tasks/create/templates/SDK-Angular/widget/CASE/case.component.ts.mustache +2 -2
  60. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/page.component.html.mustache +1 -1
  61. package/src/tasks/create/templates/SDK-React/field/Boolean/demo.stories.tsx.mustache +1 -1
  62. package/src/tasks/create/templates/SDK-React/field/Boolean/mock.ts.mustache +8 -8
  63. package/src/tasks/create/templates/SDK-React/field/Date/index.tsx.mustache +2 -2
  64. package/src/tasks/create/templates/SDK-React/field/Date/mock.ts.mustache +7 -7
  65. package/src/tasks/create/templates/SDK-React/field/DateTime/demo.stories.tsx.mustache +1 -1
  66. package/src/tasks/create/templates/SDK-React/field/DateTime/index.tsx.mustache +2 -3
  67. package/src/tasks/create/templates/SDK-React/field/DateTime/mock.ts.mustache +6 -6
  68. package/src/tasks/create/templates/SDK-React/field/Decimal/index.tsx.mustache +51 -35
  69. package/src/tasks/create/templates/SDK-React/field/Decimal/mock.ts.mustache +1 -1
  70. package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/config.json.mustache +1 -1
  71. package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/demo.stories.tsx.mustache +1 -1
  72. package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/index.tsx.mustache +47 -37
  73. package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/mock.ts.mustache +1 -1
  74. package/src/tasks/create/templates/SDK-React/field/Decimal-Percentage/config.json.mustache +1 -1
  75. package/src/tasks/create/templates/SDK-React/field/Decimal-Percentage/index.tsx.mustache +36 -21
  76. package/src/tasks/create/templates/SDK-React/field/Decimal-Percentage/mock.ts.mustache +1 -1
  77. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/config.json.mustache +64 -0
  78. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/demo.stories.tsx.mustache +91 -0
  79. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/index.tsx.mustache +160 -0
  80. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/mock.ts.mustache +4 -0
  81. package/src/tasks/create/templates/SDK-React/field/Icon-Button-URL/styles.js.mustache +7 -0
  82. package/src/tasks/create/templates/SDK-React/field/Integer/config.json.mustache +1 -1
  83. package/src/tasks/create/templates/SDK-React/field/Integer/index.tsx.mustache +19 -20
  84. package/src/tasks/create/templates/SDK-React/field/Integer/mock.ts.mustache +1 -1
  85. package/src/tasks/create/templates/SDK-React/field/Picklist/index.tsx.mustache +26 -26
  86. package/src/tasks/create/templates/SDK-React/field/Picklist-RadioButtons/mock.ts.mustache +0 -1
  87. package/src/tasks/create/templates/SDK-React/field/Text/config.json.mustache +1 -1
  88. package/src/tasks/create/templates/SDK-React/field/Text/index.tsx.mustache +0 -1
  89. package/src/tasks/create/templates/SDK-React/field/Text/mock.ts.mustache +1 -1
  90. package/src/tasks/create/templates/SDK-React/field/Text-Email/config.json.mustache +1 -1
  91. package/src/tasks/create/templates/SDK-React/field/Text-Email/mock.ts.mustache +1 -1
  92. package/src/tasks/create/templates/SDK-React/field/Text-Input/config.json.mustache +1 -1
  93. package/src/tasks/create/templates/SDK-React/field/Text-Input/index.tsx.mustache +0 -1
  94. package/src/tasks/create/templates/SDK-React/field/Text-Input/mock.ts.mustache +1 -1
  95. package/src/tasks/create/templates/SDK-React/field/Text-Paragraph/index.tsx.mustache +1 -3
  96. package/src/tasks/create/templates/SDK-React/field/Text-Paragraph/mock.ts.mustache +1 -1
  97. package/src/tasks/create/templates/SDK-React/field/Text-Phone/index.tsx.mustache +1 -2
  98. package/src/tasks/create/templates/SDK-React/field/Text-URL/index.tsx.mustache +1 -2
  99. package/src/tasks/create/templates/SDK-React/field/Text-URL/mock.ts.mustache +1 -1
  100. package/src/tasks/create/templates/SDK-React/field/TimeOfDay/demo.stories.tsx.mustache +4 -4
  101. package/src/tasks/create/templates/SDK-React/field/TimeOfDay/index.tsx.mustache +0 -2
  102. package/src/tasks/create/templates/SDK-React/field/TimeOfDay/mock.ts.mustache +6 -6
  103. package/src/tasks/create/templates/SDK-React/template/DETAILS/demo.stories.tsx.mustache +1 -7
  104. package/src/tasks/create/templates/SDK-React/template/DETAILS/index.tsx.mustache +4 -9
  105. package/src/tasks/create/templates/SDK-React/template/DETAILS/mock.ts.mustache +181 -165
  106. package/src/tasks/create/templates/SDK-React/template/DETAILS-region/demo.stories.tsx.mustache +1 -6
  107. package/src/tasks/create/templates/SDK-React/template/DETAILS-region/index.tsx.mustache +4 -9
  108. package/src/tasks/create/templates/SDK-React/template/DETAILS-region/mock.ts.mustache +207 -163
  109. package/src/tasks/create/templates/SDK-React/template/FORM/config.json.mustache +1 -1
  110. package/src/tasks/create/templates/SDK-React/template/FORM/demo.stories.tsx.mustache +0 -1
  111. package/src/tasks/create/templates/SDK-React/template/FORM/index.tsx.mustache +14 -16
  112. package/src/tasks/create/templates/SDK-React/template/FORM/utils.ts.mustache +1 -1
  113. package/src/tasks/create/templates/SDK-React/template/FORM-region/demo.stories.tsx.mustache +0 -2
  114. package/src/tasks/create/templates/SDK-React/template/FORM-region/mock.ts.mustache +121 -122
  115. package/src/tasks/create/templates/SDK-React/template/PAGE/OneColumn.tsx.mustache +12 -13
  116. package/src/tasks/create/templates/SDK-React/template/PAGE/demo.stories.tsx.mustache +1 -1
  117. package/src/tasks/create/templates/SDK-React/template/PAGE/index.tsx.mustache +3 -5
  118. package/src/tasks/create/templates/SDK-React/template/PAGE/mock.ts.mustache +8 -9
  119. package/src/tasks/create/templates/SDK-React/widget/CASE/config.json.mustache +2 -2
  120. package/src/tasks/create/templates/SDK-React/widget/CASE/demo.stories.tsx.mustache +0 -1
  121. package/src/tasks/create/templates/SDK-React/widget/CASE/index.tsx.mustache +3 -3
  122. package/src/tasks/create/templates/SDK-React/widget/PAGE/config.json.mustache +43 -43
  123. package/src/tasks/create/templates/SDK-React/widget/PAGE/mock.ts.mustache +1 -1
  124. package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/demo.stories.tsx.mustache +1 -2
  125. package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/index.tsx.mustache +0 -1
  126. package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/mock.ts.mustache +0 -1
  127. package/src/tasks/create-all/index.js +3 -0
  128. package/src/tasks/publish/helper.js +4 -0
  129. package/src/tasks/publish-all/helper.js +6 -2
  130. package/src/tasks/validator/index.js +7 -1
@@ -46,7 +46,6 @@ const renderField = resolvedProps => {
46
46
 
47
47
  {{! pick new delimiters for mustache }}
48
48
  {{=<% %>=}}
49
-
50
49
  if (label === 'Email')
51
50
  val = (
52
51
  <TextField
@@ -77,7 +76,6 @@ const renderField = resolvedProps => {
77
76
  onChange={onChange}
78
77
  />
79
78
  );
80
-
81
79
  <%={{ }}=%> {{! revert delimiters for mustache }}
82
80
 
83
81
  if (variant === 'inline') {
@@ -1,132 +1,131 @@
1
1
  export const pyReviewRaw = {
2
- name: 'CollectInformation',
3
- type: 'View',
4
- config: {
5
- template: 'DefaultForm',
6
- ruleClass: 'OM5W9U-SampleApp-Work-Test',
7
- localeReference: '@LR OM5W9U-SAMPLEAPP-WORK-TEST!VIEW!COLLECTINFORMATION',
8
- context: '@P .pyViewContext'
2
+ name: 'CollectInformation',
3
+ type: 'View',
4
+ config: {
5
+ template: 'DefaultForm',
6
+ ruleClass: 'OM5W9U-SampleApp-Work-Test',
7
+ localeReference: '@LR OM5W9U-SAMPLEAPP-WORK-TEST!VIEW!COLLECTINFORMATION',
8
+ context: '@P .pyViewContext'
9
+ },
10
+ children: [
11
+ {
12
+ name: 'A',
13
+ type: 'Region',
14
+ children: [
15
+ {
16
+ type: 'TextInput',
17
+ config: {
18
+ value: '@P .FirstName',
19
+ label: '@L First Name'
20
+ }
21
+ },
22
+ {
23
+ type: 'TextInput',
24
+ config: {
25
+ value: '@P .MiddleName',
26
+ label: '@L Middle Name'
27
+ }
28
+ },
29
+ {
30
+ type: 'TextInput',
31
+ config: {
32
+ value: '@P .LastName',
33
+ label: '@L Last Name'
34
+ }
35
+ }
36
+ ]
9
37
  },
10
- children: [
11
- {
12
- name: 'A',
13
- type: 'Region',
14
- children: [
15
- {
16
- type: 'TextInput',
17
- config: {
18
- value: '@P .FirstName',
19
- label: '@L First Name'
20
- }
21
- },
22
- {
23
- type: 'TextInput',
24
- config: {
25
- value: '@P .MiddleName',
26
- label: '@L Middle Name'
27
- }
28
- },
29
- {
30
- type: 'TextInput',
31
- config: {
32
- value: '@P .LastName',
33
- label: '@L Last Name'
34
- }
38
+ {
39
+ name: 'B',
40
+ type: 'Region',
41
+ children: [
42
+ {
43
+ type: 'Email',
44
+ config: {
45
+ value: '@P .Email',
46
+ label: '@L Email'
35
47
  }
36
- ]
37
- },
38
- {
39
- name: 'B',
40
- type: 'Region',
41
- children: [
42
- {
43
- type: 'Email',
44
- config: {
45
- value: '@P .Email',
46
- label: '@L Email'
47
- }
48
- },
49
- {
50
- type: 'Phone',
51
- config: {
52
- value: '@P .PhoneNumber',
53
- label: '@L Phone Number',
54
- datasource: {
55
- source: '@DATASOURCE D_pyCountryCallingCodeList.pxResults',
56
- fields: {
57
- value: '@P .pyCallingCode'
58
- }
48
+ },
49
+ {
50
+ type: 'Phone',
51
+ config: {
52
+ value: '@P .PhoneNumber',
53
+ label: '@L Phone Number',
54
+ datasource: {
55
+ source: '@DATASOURCE D_pyCountryCallingCodeList.pxResults',
56
+ fields: {
57
+ value: '@P .pyCallingCode'
59
58
  }
60
59
  }
61
- },
62
- {
63
- type: 'Date',
64
- config: {
65
- value: '@P .ServiceDate',
66
- label: '@L Service Date'
67
- }
68
60
  }
69
- ]
70
- }
71
- ],
72
- classID: 'OM5W9U-SampleApp-Work-Test'
73
- };
74
-
75
- export const regionChildrenResolved = [
76
- {
77
- readOnly: undefined,
78
- value: 'John',
79
- label: 'First Name',
80
- hasSuggestions: false
81
- },
82
- {
83
- readOnly: undefined,
84
- value: 'Din',
85
- label: 'Middle Name',
86
- hasSuggestions: false
87
- },
88
- {
89
- readOnly: undefined,
90
- value: 'Doe',
91
- label: 'Last Name',
92
- hasSuggestions: false
93
- },
94
- {
95
- readOnly: undefined,
96
- value: 'John@doe.com',
97
- label: 'Email',
98
- hasSuggestions: false
99
- },
100
- {
101
- readOnly: undefined,
102
- value: '+16397975093',
103
- label: 'Phone Number',
104
- datasource: {
105
- fields: {
106
- value: undefined
107
61
  },
108
- source: [
109
- {
110
- value: '+1'
111
- },
112
- {
113
- value: '+91'
114
- },
115
- {
116
- value: '+48'
117
- },
118
- {
119
- value: '+44'
62
+ {
63
+ type: 'Date',
64
+ config: {
65
+ value: '@P .ServiceDate',
66
+ label: '@L Service Date'
120
67
  }
121
- ]
68
+ }
69
+ ]
70
+ }
71
+ ],
72
+ classID: 'OM5W9U-SampleApp-Work-Test'
73
+ };
74
+
75
+ export const regionChildrenResolved = [
76
+ {
77
+ readOnly: undefined,
78
+ value: 'John',
79
+ label: 'First Name',
80
+ hasSuggestions: false
81
+ },
82
+ {
83
+ readOnly: undefined,
84
+ value: 'Din',
85
+ label: 'Middle Name',
86
+ hasSuggestions: false
87
+ },
88
+ {
89
+ readOnly: undefined,
90
+ value: 'Doe',
91
+ label: 'Last Name',
92
+ hasSuggestions: false
93
+ },
94
+ {
95
+ readOnly: undefined,
96
+ value: 'John@doe.com',
97
+ label: 'Email',
98
+ hasSuggestions: false
99
+ },
100
+ {
101
+ readOnly: undefined,
102
+ value: '+16397975093',
103
+ label: 'Phone Number',
104
+ datasource: {
105
+ fields: {
106
+ value: undefined
122
107
  },
123
- hasSuggestions: false
108
+ source: [
109
+ {
110
+ value: '+1'
111
+ },
112
+ {
113
+ value: '+91'
114
+ },
115
+ {
116
+ value: '+48'
117
+ },
118
+ {
119
+ value: '+44'
120
+ }
121
+ ]
124
122
  },
125
- {
126
- readOnly: undefined,
127
- value: '2023-01-25',
128
- label: 'Service Date',
129
- hasSuggestions: false
130
- }
131
- ];
132
-
123
+ hasSuggestions: false
124
+ },
125
+ {
126
+ readOnly: undefined,
127
+ value: '2023-01-25',
128
+ label: 'Service Date',
129
+ hasSuggestions: false
130
+ }
131
+ ];
@@ -1,32 +1,31 @@
1
- import { Grid } from "@material-ui/core";
1
+ import { Grid } from '@material-ui/core';
2
2
  import { makeStyles } from '@material-ui/core/styles';
3
3
 
4
- interface OneColumnProps{
4
+ interface OneColumnProps {
5
5
  // If any, enter additional props that only exist on this component
6
- children: any[]
6
+ children: any[];
7
7
  }
8
8
 
9
9
  const useStyles = makeStyles((/* theme */) => ({
10
10
  colStyles: {
11
- display: "grid",
12
- gap: "1rem",
13
- alignContent: "baseline",
14
- },
11
+ display: 'grid',
12
+ gap: '1rem',
13
+ alignContent: 'baseline'
14
+ }
15
15
  }));
16
16
 
17
-
18
17
  export default function OneColumn(props: OneColumnProps) {
19
18
  const classes = useStyles();
20
19
 
21
- const { children} = props;
20
+ const { children } = props;
22
21
 
23
22
  return (
24
23
  <Grid container spacing={2}>
25
24
  <Grid item xs={12} className={classes.colStyles}>
26
- {children.map(child => { return child; } )}
25
+ {children.map(child => {
26
+ return child;
27
+ })}
27
28
  </Grid>
28
29
  </Grid>
29
- )
30
+ );
30
31
  }
31
-
32
-
@@ -9,7 +9,7 @@ import { pyHome1Resolved, pyHome1Raw } from './mock';
9
9
  const meta: Meta<typeof {{COMPONENT_CLASS_NAME}}> = {
10
10
  title: '{{COMPONENT_CLASS_NAME}}',
11
11
  component: {{COMPONENT_CLASS_NAME}},
12
- excludeStories: /.*Data$/,
12
+ excludeStories: /.*Data$/
13
13
  };
14
14
 
15
15
  export default meta;
@@ -19,10 +19,8 @@ export default function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}
19
19
  const OneColumn = getComponentFromMap('OneColumn');
20
20
 
21
21
  return (
22
- <Styled{{COMPONENT_CLASS_NAME}}Wrapper>
23
- <OneColumn
24
- {...props}
25
- />
26
- </Styled{{COMPONENT_CLASS_NAME}}Wrapper>
22
+ <Styled{{COMPONENT_CLASS_NAME}}Wrapper>
23
+ <OneColumn {...props} />
24
+ </Styled{{COMPONENT_CLASS_NAME}}Wrapper>
27
25
  );
28
26
  }
@@ -28,15 +28,15 @@ export const pyHome1Raw = {
28
28
  datasource: {
29
29
  source: [
30
30
  {
31
- "name": "New React based UI rendering"
31
+ name: 'New React based UI rendering'
32
32
  },
33
33
  {
34
- "name": "Support for followers and recents"
34
+ name: 'Support for followers and recents'
35
35
  },
36
36
  {
37
- "name": "New authoring experience"
37
+ name: 'New authoring experience'
38
38
  }
39
- ],
39
+ ],
40
40
  fields: {
41
41
  name: '@P .pyLabel'
42
42
  }
@@ -92,16 +92,15 @@ export const pyHome1Resolved = {
92
92
  datasource: {
93
93
  source: [
94
94
  {
95
- "name": "New React based UI rendering"
95
+ name: 'New React based UI rendering'
96
96
  },
97
97
  {
98
- "name": "Support for followers and recents"
98
+ name: 'Support for followers and recents'
99
99
  },
100
100
  {
101
- "name": "New authoring experience"
101
+ name: 'New authoring experience'
102
102
  }
103
- ]
104
- ,
103
+ ],
105
104
  fields: {
106
105
  name: '@P .pyLabel'
107
106
  }
@@ -11,13 +11,13 @@
11
11
  "subtype": {{{SUB_TYPE}}},
12
12
  "icon": "OneColumnPage.svg",
13
13
  "properties": [
14
- {
14
+ {
15
15
  "name": "label",
16
16
  "label": "Label value",
17
17
  "format": "TEXT"
18
18
  }
19
19
  ],
20
20
  "defaultConfig": {
21
- "label": "@L {{COMPONENT_LABEL}}"
21
+ "label": "@L {{COMPONENT_LABEL}}"
22
22
  }
23
23
  }
@@ -33,7 +33,6 @@ export default meta;
33
33
  type Story = StoryObj<typeof {{COMPONENT_CLASS_NAME}}>;
34
34
 
35
35
  export const Base{{COMPONENT_CLASS_NAME}}: Story = args => {
36
-
37
36
  const props = {
38
37
  label: 'Case history',
39
38
 
@@ -151,9 +151,9 @@ export default function {{COMPONENT_CLASS_NAME}}(props: {{COMPONENT_CLASS_NAME}}
151
151
  const theKey = `CaseHistory-${index}`;
152
152
  theDataRows.push(
153
153
  <TableRow key={theKey}>
154
- <StyledTableCell>{dataRow[0] ? dataRow[0] as any : '---'}</StyledTableCell>
155
- <StyledTableCell>{dataRow[1] ? dataRow[1] as any : '---'}</StyledTableCell>
156
- <StyledTableCell>{dataRow[2] ? dataRow[2] as any : '---'}</StyledTableCell>
154
+ <StyledTableCell>{dataRow[0] ? (dataRow[0] as any) : '---'}</StyledTableCell>
155
+ <StyledTableCell>{dataRow[1] ? (dataRow[1] as any) : '---'}</StyledTableCell>
156
+ <StyledTableCell>{dataRow[2] ? (dataRow[2] as any) : '---'}</StyledTableCell>
157
157
  </TableRow>
158
158
  );
159
159
  });
@@ -11,49 +11,49 @@
11
11
  "subtype": {{{SUB_TYPE}}},
12
12
  "icon": "OneColumnPage.svg",
13
13
  "properties": [
14
- {
15
- "name": "description",
16
- "label": "Description",
17
- "format": "TEXT",
18
- "defaultValue": "We've launched a brand new experience to accelerate your workflow. Check out the guides to help you get the most of Cosmos."
19
- },
20
- {
21
- "name": "whatsnewlink",
22
- "label": "What's new link",
23
- "format": "TEXT",
24
- "defaultValue": "https://design.pega.com"
25
- },
26
- {
27
- "name": "image",
28
- "label": "Image link",
29
- "format": "TEXT",
30
- "defaultValue": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzOSAxMSI+PHRpdGxlPlBlZ2EgdGV4dC1vbmx5IGxvZ288L3RpdGxlPjxwYXRoIHN0eWxlPSJmaWxsLW9wYWNpdHk6IC4yNTsiIGZpbGw9IiNmZmYiIGQ9Ik03LjcyIDMuODJjMCAyLjI1LTEuNzggMy40MS00IDMuNDFoLTEuNnYzSDBWLjQyaDMuOTRjMi4zNiAwIDMuNzggMS4zOSAzLjc4IDMuNHptLTQtMS40N2gtMS42djNoMS43QTEuNDcgMS40NyAwIDAgMCA1LjUgMy44MmMwLS45MS0uNjUtMS40Ny0xLjc1LTEuNDd6bTcuNjggNS45MWg1LjN2Mkg5LjI5Vi40Mmg3LjM4djEuOTNoLTUuMjR2Mmg0LjI0djEuOWgtNC4yNHpNMjMuMTggMGE1IDUgMCAwIDEgMy41NyAxLjI4TDI1LjYzIDIuOGEzLjc4IDMuNzggMCAwIDAtMS4wNS0uNjNBNC4zMiA0LjMyIDAgMCAwIDIzLjMxIDIgMy4xNyAzLjE3IDAgMCAwIDIwIDUuMjdhMy4xNiAzLjE2IDAgMCAwIDEgMi4zOSAzLjA3IDMuMDcgMCAwIDAgMi4xNy44NCA0LjYgNC42IDAgMCAwIDIuMDktLjVWNi4xOWgtMi4yVjQuMzhoNC4yNXY0LjU2YTUuNDEgNS40MSAwIDAgMS00LjA4IDEuNTdBNS4zNSA1LjM1IDAgMCAxIDE5LjQzIDlhNS4wNSA1LjA1IDAgMCAxLTEuNTYtMy43NCA1LjIxIDUuMjEgMCAwIDEgMS41Ni0zLjc2QTUuMzEgNS4zMSAwIDAgMSAyMy4xOCAwem0xMS4yOS40Mmw0LjEzIDkuNzloLTIuMjVMMzUuNDggOGgtNC4wNmwtLjkgMi4xOGgtMi4yTDMyLjUxLjQyem0uMjUgNS43MkwzMy40NCAzbC0xLjI5IDMuMTR6bTMtNWEuNzEuNzEgMCAwIDEtLjc0Ljc1LjcxLjcxIDAgMCAxLS43My0uNzUuNzMuNzMgMCAwIDEgLjc1LS43Mi43Mi43MiAwIDAgMSAuNzUuNzF6TTM3IC41M2EuNTkuNTkgMCAwIDAtLjYuNi42MS42MSAwIDEgMCAxLjIxIDAgLjYuNiAwIDAgMC0uNjEtLjZ6bS0uMjQgMVYuNzFIMzdjLjEyIDAgLjE4LjA2LjI1LjA2YS4yMS4yMSAwIDAgMSAuMDcuMTguMTkuMTkgMCAwIDEtLjA3LjE4cy0uMDcuMDgtLjEzLjA4bC4yNi4zNmgtLjJMMzcgMS4yOGgtLjF2LjI5em0uMTMtLjQ0aC4yM2EuMjYuMjYgMCAwIDAgLjA3LS4wOWgtLjA2Yy0uMDUtLjE3LS4wNS0uMTctLjEzLS4xN2gtLjF6Ii8+PC9zdmc+"
31
- },
32
- {
33
- "name": "datasource",
34
- "label": "Data source for details",
35
- "defaultValue": "@DATASOURCE D_pyAnnouncements.pxResults",
36
- "format": "DATASOURCE",
37
- "required": true,
38
- "properties": [
39
- {
40
- "name": "name",
41
- "label": "Label",
42
- "defaultValue": "@P .pyLabel"
43
- }
44
- ]
45
- },
46
- {
47
- "label": "Conditions",
48
- "format": "GROUP",
49
- "properties": [
50
- {
51
- "name": "visibility",
52
- "label": "Visibility",
53
- "format": "VISIBILITY"
54
- }
55
- ]
56
- }
14
+ {
15
+ "name": "description",
16
+ "label": "Description",
17
+ "format": "TEXT",
18
+ "defaultValue": "We've launched a brand new experience to accelerate your workflow. Check out the guides to help you get the most of Cosmos."
19
+ },
20
+ {
21
+ "name": "whatsnewlink",
22
+ "label": "What's new link",
23
+ "format": "TEXT",
24
+ "defaultValue": "https://design.pega.com"
25
+ },
26
+ {
27
+ "name": "image",
28
+ "label": "Image link",
29
+ "format": "TEXT",
30
+ "defaultValue": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzOSAxMSI+PHRpdGxlPlBlZ2EgdGV4dC1vbmx5IGxvZ288L3RpdGxlPjxwYXRoIHN0eWxlPSJmaWxsLW9wYWNpdHk6IC4yNTsiIGZpbGw9IiNmZmYiIGQ9Ik03LjcyIDMuODJjMCAyLjI1LTEuNzggMy40MS00IDMuNDFoLTEuNnYzSDBWLjQyaDMuOTRjMi4zNiAwIDMuNzggMS4zOSAzLjc4IDMuNHptLTQtMS40N2gtMS42djNoMS43QTEuNDcgMS40NyAwIDAgMCA1LjUgMy44MmMwLS45MS0uNjUtMS40Ny0xLjc1LTEuNDd6bTcuNjggNS45MWg1LjN2Mkg5LjI5Vi40Mmg3LjM4djEuOTNoLTUuMjR2Mmg0LjI0djEuOWgtNC4yNHpNMjMuMTggMGE1IDUgMCAwIDEgMy41NyAxLjI4TDI1LjYzIDIuOGEzLjc4IDMuNzggMCAwIDAtMS4wNS0uNjNBNC4zMiA0LjMyIDAgMCAwIDIzLjMxIDIgMy4xNyAzLjE3IDAgMCAwIDIwIDUuMjdhMy4xNiAzLjE2IDAgMCAwIDEgMi4zOSAzLjA3IDMuMDcgMCAwIDAgMi4xNy44NCA0LjYgNC42IDAgMCAwIDIuMDktLjVWNi4xOWgtMi4yVjQuMzhoNC4yNXY0LjU2YTUuNDEgNS40MSAwIDAgMS00LjA4IDEuNTdBNS4zNSA1LjM1IDAgMCAxIDE5LjQzIDlhNS4wNSA1LjA1IDAgMCAxLTEuNTYtMy43NCA1LjIxIDUuMjEgMCAwIDEgMS41Ni0zLjc2QTUuMzEgNS4zMSAwIDAgMSAyMy4xOCAwem0xMS4yOS40Mmw0LjEzIDkuNzloLTIuMjVMMzUuNDggOGgtNC4wNmwtLjkgMi4xOGgtMi4yTDMyLjUxLjQyem0uMjUgNS43MkwzMy40NCAzbC0xLjI5IDMuMTR6bTMtNWEuNzEuNzEgMCAwIDEtLjc0Ljc1LjcxLjcxIDAgMCAxLS43My0uNzUuNzMuNzMgMCAwIDEgLjc1LS43Mi43Mi43MiAwIDAgMSAuNzUuNzF6TTM3IC41M2EuNTkuNTkgMCAwIDAtLjYuNi42MS42MSAwIDEgMCAxLjIxIDAgLjYuNiAwIDAgMC0uNjEtLjZ6bS0uMjQgMVYuNzFIMzdjLjEyIDAgLjE4LjA2LjI1LjA2YS4yMS4yMSAwIDAgMSAuMDcuMTguMTkuMTkgMCAwIDEtLjA3LjE4cy0uMDcuMDgtLjEzLjA4bC4yNi4zNmgtLjJMMzcgMS4yOGgtLjF2LjI5em0uMTMtLjQ0aC4yM2EuMjYuMjYgMCAwIDAgLjA3LS4wOWgtLjA2Yy0uMDUtLjE3LS4wNS0uMTctLjEzLS4xN2gtLjF6Ii8+PC9zdmc+"
31
+ },
32
+ {
33
+ "name": "datasource",
34
+ "label": "Data source for details",
35
+ "defaultValue": "@DATASOURCE D_pyAnnouncements.pxResults",
36
+ "format": "DATASOURCE",
37
+ "required": true,
38
+ "properties": [
39
+ {
40
+ "name": "name",
41
+ "label": "Label",
42
+ "defaultValue": "@P .pyLabel"
43
+ }
44
+ ]
45
+ },
46
+ {
47
+ "label": "Conditions",
48
+ "format": "GROUP",
49
+ "properties": [
50
+ {
51
+ "name": "visibility",
52
+ "label": "Visibility",
53
+ "format": "VISIBILITY"
54
+ }
55
+ ]
56
+ }
57
57
  ],
58
58
  "defaultConfig": {}
59
59
  }
@@ -20,4 +20,4 @@ export const configProps = {
20
20
  ],
21
21
  fields: {}
22
22
  }
23
- };
23
+ };
@@ -11,7 +11,7 @@ window.PCore = {
11
11
  return new Promise(resolve => {
12
12
  resolve(operatorDetails);
13
13
  });
14
- },
14
+ }
15
15
  };
16
16
  },
17
17
  getLocaleUtils: (): any => {
@@ -33,7 +33,6 @@ export default meta;
33
33
  type Story = StoryObj<typeof {{COMPONENT_CLASS_NAME}}>;
34
34
 
35
35
  export const Base{{COMPONENT_CLASS_NAME}}: Story = args => {
36
-
37
36
  const props = {
38
37
  getPConnect: () => {
39
38
  return {
@@ -10,7 +10,6 @@ import Utils from '@pega/react-sdk-components/lib/components/helpers/utils';
10
10
  import Styled{{COMPONENT_CLASS_NAME}}Wrapper from './styles';
11
11
  import { PConnProps } from '@pega/react-sdk-components/lib/types/PConnProps';
12
12
 
13
-
14
13
  interface {{COMPONENT_CLASS_NAME}}Props extends PConnProps {
15
14
  // If any, enter additional props that only exist on this component
16
15
  label: string;
@@ -1,4 +1,3 @@
1
-
2
1
  export const caseOpConfig = {
3
2
  label: 'Create operator',
4
3
  createLabel: 'Created',
@@ -108,6 +108,9 @@ export const compileMustacheTemplates = async (
108
108
  case 'Picklist-RadioButtons':
109
109
  mustacheSubType = 'Picklist';
110
110
  break;
111
+ case 'Icon-Button-URL':
112
+ mustacheSubType = 'Text-URL';
113
+ break;
111
114
  }
112
115
  }
113
116
 
@@ -141,6 +141,7 @@ export const zipComponent = async (componentKey, category = CATEGORY_CUSTOM) =>
141
141
 
142
142
  const configJson = `${srcDirectory}/config.json`;
143
143
  const configExtJson = `${srcDirectory}/config-ext.json`;
144
+ const localizationJson = `${srcDirectory}/localizations.json`;
144
145
 
145
146
  const zip = new AdmZip();
146
147
 
@@ -148,6 +149,9 @@ export const zipComponent = async (componentKey, category = CATEGORY_CUSTOM) =>
148
149
  if (category === CATEGORY_CUSTOM || category == CATEGORY_CONSTELLATION) {
149
150
  zip.addLocalFolder(srcDirectory, 'src/');
150
151
  zip.addLocalFile(configJson);
152
+ if (fs.existsSync(localizationJson)) {
153
+ zip.addLocalFile(localizationJson);
154
+ }
151
155
  }
152
156
  else {
153
157
  // check to see if have file
@@ -127,6 +127,7 @@ export const zipComponent = async (componentKey, category = CATEGORY_CUSTOM) =>
127
127
  const buildDirectory = await path.join(path.resolve(), 'dist/components', componentKey);
128
128
  const configJson = `${srcDirectory}/config.json`;
129
129
  const configExtJson = `${srcDirectory}/config-ext.json`;
130
+ const localizationJson = `${srcDirectory}/localizations.json`;
130
131
 
131
132
  const zip = new AdmZip();
132
133
 
@@ -134,6 +135,9 @@ export const zipComponent = async (componentKey, category = CATEGORY_CUSTOM) =>
134
135
  if (category === CATEGORY_CUSTOM || category == CATEGORY_CONSTELLATION) {
135
136
  zip.addLocalFolder(srcDirectory, 'src/');
136
137
  zip.addLocalFile(configJson);
138
+ if (fs.existsSync(localizationJson)) {
139
+ zip.addLocalFile(localizationJson);
140
+ }
137
141
  }
138
142
  else {
139
143
  // check to see if have file
@@ -151,7 +155,7 @@ export const zipComponent = async (componentKey, category = CATEGORY_CUSTOM) =>
151
155
  let configContent = "{ }";
152
156
  if (category === CATEGORY_CUSTOM || category === CATEGORY_CONSTELLATION) {
153
157
  configContent = Buffer.from(fs.readFileSync(`${srcDirectory}/config.json`)).toString();
154
-
158
+
155
159
  // cleanup will remove this directory
156
160
 
157
161
  }
@@ -160,7 +164,7 @@ export const zipComponent = async (componentKey, category = CATEGORY_CUSTOM) =>
160
164
  configContent = Buffer.from(fs.readFileSync(`${srcDirectory}/config-ext.json`)).toString();
161
165
 
162
166
  // cleanup will remove this directory
163
-
167
+
164
168
  }
165
169
  else {
166
170
  const tempConfig = { "componentKey" : ""};
@@ -365,7 +365,13 @@ export default async (option, category = CATEGORY_CUSTOM) => {
365
365
  }
366
366
 
367
367
  // const data = JSON.parse(fs.readFileSync(path.resolve(configFile), 'utf8'));
368
- const data = JSON.parse(configData);
368
+ let data;
369
+ try {
370
+ data = JSON.parse(configData);
371
+ }
372
+ catch (er) {
373
+ throw new Error(`Invalid schema json in config.json: ${er}`);
374
+ }
369
375
 
370
376
  // for now a special case for ScalarList & Group, those doesn't have a "subtype", so for now manualy
371
377
  // add one in here, just to pass validation