@abgov/nx-adsp 5.9.0-beta.3 → 5.9.0-beta.5

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abgov/nx-adsp",
3
- "version": "5.9.0-beta.3",
3
+ "version": "5.9.0-beta.5",
4
4
  "license": "Apache-2.0",
5
5
  "main": "src/index.js",
6
6
  "description": "Government of Alberta - Nx plugin for ADSP apps.",
@@ -72,8 +72,8 @@ function default_1(host, options) {
72
72
  });
73
73
  yield initRedux(host, { name: 'intake', project: options.name });
74
74
  (0, devkit_1.addDependenciesToPackageJson)(host, {}, {
75
- '@abgov/react-components': '^4.5.0',
76
- '@abgov/web-components': '^1.5.0',
75
+ '@abgov/react-components': '^4.11.0',
76
+ '@abgov/web-components': '^1.11.0',
77
77
  '@types/react-router-dom': '~5.3.3',
78
78
  '@types/redux-mock-store': '~1.0.2',
79
79
  'html-webpack-plugin': '~5.5.0',
@@ -1 +1 @@
1
- {"version":3,"file":"react-app.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/react-app/react-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react-app.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/react-app/react-app.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import {
3
3
  GoAButtonGroup,
4
4
  GoACallout,
5
5
  GoACheckbox,
6
+ GoADivider,
6
7
  GoADropdown,
7
8
  GoADropdownItem,
8
9
  GoAFormItem,
@@ -35,6 +36,20 @@ import {
35
36
  } from './<%= fileName %>.slice';
36
37
  import styles from './<%= fileName %>.module.css';
37
38
 
39
+ // Function that supports raising change events for updates to properties on array items.
40
+ // Note that this is not needed if the form does not include an array field.
41
+ function onArrayItemChange(
42
+ onChange: (value: Record<string, unknown>) => void,
43
+ value: Record<string, unknown>,
44
+ arrayProperty: string,
45
+ index: number,
46
+ updatedItem: object
47
+ ) {
48
+ const updatedArray = [...(value[arrayProperty] as object[])];
49
+ updatedArray[index] = updatedItem;
50
+ onChange({ ...value, [arrayProperty]: updatedArray });
51
+ }
52
+
38
53
  interface FieldSetProps {
39
54
  className?: string;
40
55
  inReview: boolean;
@@ -62,8 +77,8 @@ const <%= section.className %>FieldSet: FunctionComponent<FieldSetProps> = ({
62
77
  <p><%= section.description %></p>
63
78
  {!isReadOnly && inReview && <GoAButton type="tertiary" onClick={onEdit}>Edit</GoAButton>}
64
79
  </div>
65
- <%_ Object.entries(section.properties).forEach(function([key, value]) { _%>
66
- <%- include(`${includesPath}/input-template.ejs`, {key: key, value: value, path: key, processArray: true, includesPath}); %>
80
+ <%_ Object.entries(section.properties).forEach(function([key, property]) { _%>
81
+ <%- include(`${includesPath}/input-template.ejs`, {key, property, path: key, inArray: false, includesPath}); %>
67
82
  <%_ }); _%>
68
83
  </fieldset>
69
84
  );
@@ -1,38 +1,39 @@
1
- <%_ if (!value.type) { _%>
2
- <%_ if (value.constant) { _%>
3
- <p><%= value.constant %></p>
1
+ <%_ const valueVar = inArray ? 'item' : 'value'; %>
2
+ <%_ if (!property.type) { _%>
3
+ <%_ if (property.constant) { _%>
4
+ <p><%= property.constant %></p>
4
5
  <%_ } _%>
5
6
  <%_ } else { _%>
6
- <GoAFormItem mb="m" label="<%= value.title || key %>" helpText="<%= value.description %>">
7
- <%_ switch(value.type) {
7
+ <GoAFormItem mb="m" label="<%= property.title || key %>" helpText="<%= property.description %>">
8
+ <%_ switch(property.type) {
8
9
  case 'string': _%>
9
- <%_ if (value.enum) { _%>
10
+ <%_ if (property.enum) { _%>
10
11
  <GoADropdown
11
12
  name="<%= key %>"
12
13
  disabled={isReadOnly || inReview}
13
- onChange={(name,updated) => onChange({ ...value, [name]: updated })}
14
- value={`${value.<%= path %> || ''}`}
14
+ onChange={(name,updated) => <%- inArray ? `onArrayItemChange(onChange, value, '${parent}', idx, ` : 'onChange(' %>{ ...<%= valueVar %>, [name]: updated })}
15
+ value={`${<%= valueVar %>.<%= key %> || ''}`}
15
16
  >
16
- <%_ value.enum.forEach((enumValue) => { _%>
17
+ <%_ property.enum.forEach((enumValue) => { _%>
17
18
  <GoADropdownItem value="<%= enumValue %>" label="<%= enumValue %>" />
18
19
  <%_ }); _%>
19
20
  </GoADropdown>
20
21
  <%_ } else { _%>
21
- <%_ switch(value.format) {
22
+ <%_ switch(property.format) {
22
23
  case 'date-time': _%>
23
24
  <GoAInputDateTime
24
25
  name="<%= key %>"
25
26
  disabled={isReadOnly || inReview}
26
- value={value.<%= path %> ? new Date(value.<%= path %> as string) : null}
27
- onChange={(name, updated) => onChange({ ...value, [name]: (updated as Date)?.toISOString() })}
27
+ value={<%= valueVar %>.<%= key %> ? new Date(<%= valueVar %>.<%= key %> as string) : null}
28
+ onChange={(name, updated) => <%- inArray ? `onArrayItemChange(onChange, value, '${parent}', idx, ` : 'onChange(' %>{ ...<%= valueVar %>, [name]: (updated as Date)?.toISOString() })}
28
29
  />
29
30
  <%_ break;
30
31
  case 'date': _%>
31
32
  <GoAInputDate
32
33
  name="<%= key %>"
33
34
  disabled={isReadOnly || inReview}
34
- value={value.<%= path %> ? new Date(value.<%= path %> as string) : null}
35
- onChange={(name, updated) => onChange({ ...value, [name]: (updated as Date)?.toISOString() })}
35
+ value={<%= valueVar %>.<%= key %> ? new Date(<%= valueVar %>.<%= key %> as string) : null}
36
+ onChange={(name, updated) => <%- inArray ? `onArrayItemChange(onChange, value, '${parent}', idx, ` : 'onChange(' %>{ ...<%= valueVar %>, [name]: (updated as Date)?.toISOString() })}
36
37
  />
37
38
  <%_ break;
38
39
  case 'time': _%>
@@ -40,28 +41,31 @@
40
41
  name="<%= key %>"
41
42
  step={1}
42
43
  disabled={isReadOnly || inReview}
43
- value={value.<%= path %> ? new Date(value.<%= path %> as string) : null}
44
- onChange={(name, updated) => onChange({ ...value, [name]: (updated as Date)?.toISOString() })}
44
+ value={<%= valueVar %>.<%= key %> ? new Date(<%= valueVar %>.<%= key %> as string) : null}
45
+ onChange={(name, updated) => <%- inArray ? `onArrayItemChange(onChange, value, '${parent}', idx, ` : 'onChange(' %>{ ...<%= valueVar %>, [name]: (updated as Date)?.toISOString() })}
45
46
  />
46
47
  <%_ break;
47
48
  default: _%>
48
- <% if (value.maxLength > 100) { %>
49
+ <% if (property.maxLength > 100) { %>
49
50
  <GoATextArea
50
51
  disabled={isReadOnly || inReview}
51
- error={errors['<%= path %>']}
52
- placeholder="<%= value?.examples?.join(', ') || '' %>"
53
- onChange={(name, updated) => onChange({ ...value, [name]: updated })}
54
- value={`${value.<%= path %> || ''}`}
52
+ error={errors[`<%= path %>`]}
53
+ placeholder="<%= property?.examples?.join(', ') || '' %>"
54
+ onChange={(name, updated) => <%- inArray ? `onArrayItemChange(onChange, value, '${parent}', idx, ` : 'onChange(' %>{ ...<%= valueVar %>, [name]: updated })}
55
+ value={`${<%= valueVar %>.<%= key %> || ''}`}
55
56
  name="<%= key %>"
56
57
  />
57
58
  <% } else { %>
58
59
  <GoAInput
59
60
  type="text"
60
61
  disabled={isReadOnly || inReview}
61
- error={errors['<%= path %>']}
62
- placeholder="<%= value?.examples?.join(', ') || '' %>"
63
- onChange={(name, updated) => onChange({ ...value, [name]: updated })}
64
- value={`${value.<%= path %> || ''}`}
62
+ error={errors[`<%= path %>`]}
63
+ placeholder="<%= property?.examples?.join(', ') || '' %>"
64
+ <%_ if (property?.maxLength !== undefined) { _%>
65
+ maxLength={<%= property?.maxLength %>}
66
+ <%_ } _%>
67
+ onChange={(name, updated) => <%- inArray ? `onArrayItemChange(onChange, value, '${parent}', idx, ` : 'onChange(' %>{ ...<%= valueVar %>, [name]: updated })}
68
+ value={`${<%= valueVar %>.<%= key %> || ''}`}
65
69
  name="<%= key %>"
66
70
  />
67
71
  <% } %>
@@ -74,31 +78,69 @@
74
78
  <GoAInput
75
79
  type="number"
76
80
  disabled={isReadOnly || inReview}
77
- error={errors['<%= path %>']}
78
- placeholder="<%= value?.examples || []%>"
79
- onChange={(name, updated) => onChange({ ...value, [name]: parseFloat(updated) })}
80
- value={`${value.<%= path %> || ''}`}
81
+ error={errors[`<%= path %>`]}
82
+ placeholder="<%= property?.examples || []%>"
83
+ onChange={(name, updated) => <%- inArray ? `onArrayItemChange(onChange, value, '${parent}', idx, ` : 'onChange(' %>{ ...<%= valueVar %>, [name]: parseFloat(updated) })}
84
+ value={`${<%= valueVar %>.<%= key %> || ''}`}
81
85
  name="<%= key %>"
82
- <%_ if (value?.maximum !== undefined) { _%>
83
- max={<%= value.maximum %>}
86
+ <%_ if (property?.maximum !== undefined) { _%>
87
+ max={<%= property.maximum %>}
84
88
  <%_ } _%>
85
- <%_ if (value?.minimum !== undefined) { _%>
86
- min={<%= value.minimum %>}
89
+ <%_ if (property?.minimum !== undefined) { _%>
90
+ min={<%= property.minimum %>}
87
91
  <%_ } _%>
88
- <%_ if (value?.multipleOf !== undefined) { _%>
89
- step={<%= value.multipleOf %>}
92
+ <%_ if (property?.multipleOf !== undefined) { _%>
93
+ step={<%= property.multipleOf %>}
90
94
  <%_ } _%>
91
95
  />
92
96
  <%_ break;
93
97
  case 'boolean': _%>
94
98
  <GoACheckbox
95
99
  disabled={isReadOnly || inReview}
96
- checked={value.<%= path %> as any || false}
97
- onChange={(name, updated) => onChange({ ...value, [name]: updated })}
100
+ checked={<%= valueVar %>.<%= key %> as any || false}
101
+ onChange={(name, updated) => <%- inArray ? `onArrayItemChange(onChange, value, '${parent}', idx, ` : 'onChange(' %>{ ...<%= valueVar %>, [name]: updated })}
98
102
  name="<%= key %>"
99
103
  />
100
104
  <%_ break;
101
105
  case 'array': _%>
106
+ <% if (!inArray && property.items?.type === 'object') { %>
107
+ <fieldset>
108
+ <legend><%= property.items.title || key %></legend>
109
+ <p><%= property.items.description %></p>
110
+ {(<%= valueVar %>.<%= key %> as Record<string, unknown>[])?.map((item, idx) => (
111
+ <div key={idx}>
112
+ <% Object.entries(property.items.properties || {}).map(([key, property]) => { %>
113
+ <%- include(`${includesPath}/input-template.ejs`, {key, property, parent: path, path: path + ".[${idx}]." + key, inArray: true, includesPath}); %>
114
+ <% }); %>
115
+ {!inReview && <GoAButtonGroup alignment="end">
116
+ <GoAButton
117
+ disabled={isReadOnly}
118
+ type="tertiary"
119
+ onClick={() => {
120
+ const update = [...(<%= valueVar %>.<%= key %> as [] || [])];
121
+ update.splice(idx, 1);
122
+ <%- inArray ? `onArrayItemChange(onChange, value, '${parent}', idx, ` : 'onChange(' %>{ ...<%= valueVar %>, <%= key %>: update })
123
+ }}
124
+ >
125
+ Remove
126
+ </GoAButton>
127
+ </GoAButtonGroup>}
128
+ <GoADivider mb="l" />
129
+ </div>
130
+ ))}
131
+ {!inReview && <GoAButtonGroup alignment="end">
132
+ <GoAButton
133
+ disabled={isReadOnly}
134
+ type="tertiary"
135
+ onClick={() =>
136
+ <%- inArray ? `onArrayItemChange(onChange, value, '${parent}', idx, ` : 'onChange(' %>{ ...<%= valueVar %>, <%= key %>: [...(<%= valueVar %>.<%= key %> as [] || []), {}] })
137
+ }
138
+ >
139
+ Add
140
+ </GoAButton>
141
+ </GoAButtonGroup>}
142
+ </fieldset>
143
+ <% } %>
102
144
  <%_ break;
103
145
  default:
104
146
  break; _%>