@defra/forms-engine-plugin 2.1.6 → 2.1.8

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 (49) hide show
  1. package/.server/server/plugins/engine/components/CheckboxesField.d.ts +2 -0
  2. package/.server/server/plugins/engine/components/CheckboxesField.js +13 -7
  3. package/.server/server/plugins/engine/components/CheckboxesField.js.map +1 -1
  4. package/.server/server/plugins/engine/components/DatePartsField.d.ts +2 -0
  5. package/.server/server/plugins/engine/components/DatePartsField.js +11 -5
  6. package/.server/server/plugins/engine/components/DatePartsField.js.map +1 -1
  7. package/.server/server/plugins/engine/components/FileUploadField.d.ts +2 -0
  8. package/.server/server/plugins/engine/components/FileUploadField.js +9 -3
  9. package/.server/server/plugins/engine/components/FileUploadField.js.map +1 -1
  10. package/.server/server/plugins/engine/components/FormComponent.d.ts +2 -0
  11. package/.server/server/plugins/engine/components/FormComponent.js +11 -4
  12. package/.server/server/plugins/engine/components/FormComponent.js.map +1 -1
  13. package/.server/server/plugins/engine/components/ListFormComponent.d.ts +1 -0
  14. package/.server/server/plugins/engine/components/ListFormComponent.js +6 -4
  15. package/.server/server/plugins/engine/components/ListFormComponent.js.map +1 -1
  16. package/.server/server/plugins/engine/components/MonthYearField.d.ts +2 -0
  17. package/.server/server/plugins/engine/components/MonthYearField.js +9 -3
  18. package/.server/server/plugins/engine/components/MonthYearField.js.map +1 -1
  19. package/.server/server/plugins/engine/components/UkAddressField.d.ts +3 -1
  20. package/.server/server/plugins/engine/components/UkAddressField.js +12 -5
  21. package/.server/server/plugins/engine/components/UkAddressField.js.map +1 -1
  22. package/.server/server/plugins/engine/outputFormatters/adapter/v1.js +1 -1
  23. package/.server/server/plugins/engine/outputFormatters/adapter/v1.js.map +1 -1
  24. package/.server/server/plugins/engine/types/enums.d.ts +13 -0
  25. package/.server/server/plugins/engine/types/enums.js +17 -0
  26. package/.server/server/plugins/engine/types/enums.js.map +1 -0
  27. package/.server/server/plugins/engine/types/index.d.ts +2 -1
  28. package/.server/server/plugins/engine/types/index.js +2 -1
  29. package/.server/server/plugins/engine/types/index.js.map +1 -1
  30. package/.server/server/plugins/engine/types/schema.js +1 -1
  31. package/.server/server/plugins/engine/types/schema.js.map +1 -1
  32. package/.server/server/plugins/engine/types.d.ts +2 -14
  33. package/.server/server/plugins/engine/types.js +1 -16
  34. package/.server/server/plugins/engine/types.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/server/plugins/engine/components/CheckboxesField.ts +18 -7
  37. package/src/server/plugins/engine/components/DatePartsField.ts +17 -6
  38. package/src/server/plugins/engine/components/FileUploadField.ts +14 -3
  39. package/src/server/plugins/engine/components/FormComponent.ts +17 -5
  40. package/src/server/plugins/engine/components/ListFormComponent.ts +10 -3
  41. package/src/server/plugins/engine/components/MonthYearField.ts +14 -4
  42. package/src/server/plugins/engine/components/UkAddressField.ts +16 -6
  43. package/src/server/plugins/engine/outputFormatters/adapter/v1.test.ts +1 -1
  44. package/src/server/plugins/engine/outputFormatters/adapter/v1.ts +1 -1
  45. package/src/server/plugins/engine/types/enums.ts +15 -0
  46. package/src/server/plugins/engine/types/index.ts +2 -5
  47. package/src/server/plugins/engine/types/schema.test.ts +1 -1
  48. package/src/server/plugins/engine/types/schema.ts +1 -1
  49. package/src/server/plugins/engine/types.ts +9 -15
@@ -157,17 +157,21 @@ export class FormComponent extends ComponentBase {
157
157
  }
158
158
  }
159
159
 
160
- getDisplayStringFromState(state: FormSubmissionState): string {
161
- const value = this.getFormValueFromState(state)
160
+ getDisplayStringFromFormValue(value: FormValue | FormPayload): string {
161
+ // Map selected values to text
162
162
  // eslint-disable-next-line @typescript-eslint/no-base-to-string
163
163
  return this.isValue(value) ? value.toString() : ''
164
164
  }
165
165
 
166
- getContextValueFromState(
167
- state: FormSubmissionState
168
- ): Item['value'] | Item['value'][] | null {
166
+ getDisplayStringFromState(state: FormSubmissionState): string {
169
167
  const value = this.getFormValueFromState(state)
168
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
169
+ return this.getDisplayStringFromFormValue(value)
170
+ }
170
171
 
172
+ getContextValueFromFormValue(
173
+ value: FormValue | FormPayload
174
+ ): Item['value'] | Item['value'][] | null {
171
175
  // Filter object field values
172
176
  if (this.isState(value)) {
173
177
  const values = Object.values(value).filter(isFormValue)
@@ -182,6 +186,14 @@ export class FormComponent extends ComponentBase {
182
186
  return this.isValue(value) ? value : null
183
187
  }
184
188
 
189
+ getContextValueFromState(
190
+ state: FormSubmissionState
191
+ ): Item['value'] | Item['value'][] | null {
192
+ const value = this.getFormValueFromState(state)
193
+
194
+ return this.getContextValueFromFormValue(value)
195
+ }
196
+
185
197
  isValue(
186
198
  value?: FormStateValue | FormState
187
199
  ): value is NonNullable<FormStateValue> {
@@ -99,11 +99,11 @@ export class ListFormComponent extends FormComponent {
99
99
  return selected.at(0)?.value
100
100
  }
101
101
 
102
- getDisplayStringFromState(state: FormSubmissionState) {
102
+ getDisplayStringFromFormValue(
103
+ value: string | number | boolean | Item['value'][] | undefined
104
+ ): string {
103
105
  const { items } = this
104
106
 
105
- // Allow for array values via subclass
106
- const value = this.getFormValueFromState(state)
107
107
  const values = [value ?? []].flat()
108
108
 
109
109
  return items
@@ -112,6 +112,13 @@ export class ListFormComponent extends FormComponent {
112
112
  .join(', ')
113
113
  }
114
114
 
115
+ getDisplayStringFromState(state: FormSubmissionState) {
116
+ // Allow for array values via subclass
117
+ const value = this.getFormValueFromState(state)
118
+
119
+ return this.getDisplayStringFromFormValue(value)
120
+ }
121
+
115
122
  getViewModel(payload: FormPayload, errors?: FormSubmissionError[]) {
116
123
  const { items: listItems } = this
117
124
 
@@ -103,9 +103,7 @@ export class MonthYearField extends FormComponent {
103
103
  return MonthYearField.isMonthYear(value) ? value : undefined
104
104
  }
105
105
 
106
- getDisplayStringFromState(state: FormSubmissionState) {
107
- const value = this.getFormValueFromState(state)
108
-
106
+ getDisplayStringFromFormValue(value: MonthYearState | undefined): string {
109
107
  if (!value) {
110
108
  return ''
111
109
  }
@@ -117,9 +115,15 @@ export class MonthYearField extends FormComponent {
117
115
  return `${monthString} ${value.year}`
118
116
  }
119
117
 
120
- getContextValueFromState(state: FormSubmissionState) {
118
+ getDisplayStringFromState(state: FormSubmissionState) {
121
119
  const value = this.getFormValueFromState(state)
122
120
 
121
+ return this.getDisplayStringFromFormValue(value)
122
+ }
123
+
124
+ getContextValueFromFormValue(
125
+ value: MonthYearState | undefined
126
+ ): string | null {
123
127
  if (
124
128
  !value ||
125
129
  !isValid(
@@ -137,6 +141,12 @@ export class MonthYearField extends FormComponent {
137
141
  return format(`${value.year}-${value.month}-01`, 'yyyy-MM')
138
142
  }
139
143
 
144
+ getContextValueFromState(state: FormSubmissionState) {
145
+ const value = this.getFormValueFromState(state)
146
+
147
+ return this.getContextValueFromFormValue(value)
148
+ }
149
+
140
150
  getViewModel(payload: FormPayload, errors?: FormSubmissionError[]) {
141
151
  const { collection, name } = this
142
152
 
@@ -110,18 +110,28 @@ export class UkAddressField extends FormComponent {
110
110
  return this.isState(value) ? value : undefined
111
111
  }
112
112
 
113
- getDisplayStringFromState(state: FormSubmissionState) {
114
- return this.getContextValueFromState(state)?.join(', ') ?? ''
113
+ getContextValueFromFormValue(value: UkAddressState | undefined) {
114
+ if (!value) {
115
+ return null
116
+ }
117
+
118
+ return Object.values(value).filter(Boolean)
115
119
  }
116
120
 
117
121
  getContextValueFromState(state: FormSubmissionState) {
118
122
  const value = this.getFormValueFromState(state)
119
123
 
120
- if (!value) {
121
- return null
122
- }
124
+ return this.getContextValueFromFormValue(value)
125
+ }
123
126
 
124
- return Object.values(value).filter(Boolean)
127
+ getDisplayStringFromFormValue(value: UkAddressState | undefined): string {
128
+ return this.getContextValueFromFormValue(value)?.join(', ') ?? ''
129
+ }
130
+
131
+ getDisplayStringFromState(state: FormSubmissionState) {
132
+ const value = this.getFormValueFromState(state)
133
+
134
+ return this.getDisplayStringFromFormValue(value)
125
135
  }
126
136
 
127
137
  /**
@@ -10,9 +10,9 @@ import {
10
10
  } from '~/src/server/plugins/engine/models/types.js'
11
11
  import { format } from '~/src/server/plugins/engine/outputFormatters/adapter/v1.js'
12
12
  import { buildFormContextRequest } from '~/src/server/plugins/engine/pageControllers/__stubs__/request.js'
13
+ import { FormAdapterSubmissionSchemaVersion } from '~/src/server/plugins/engine/types/index.js'
13
14
  import {
14
15
  FileStatus,
15
- FormAdapterSubmissionSchemaVersion,
16
16
  UploadStatus,
17
17
  type FileState,
18
18
  type FormAdapterSubmissionMessagePayload
@@ -7,8 +7,8 @@ import { type checkFormStatus } from '~/src/server/plugins/engine/helpers.js'
7
7
  import { type FormModel } from '~/src/server/plugins/engine/models/FormModel.js'
8
8
  import { type DetailItem } from '~/src/server/plugins/engine/models/types.js'
9
9
  import { format as machineV2 } from '~/src/server/plugins/engine/outputFormatters/machine/v2.js'
10
+ import { FormAdapterSubmissionSchemaVersion } from '~/src/server/plugins/engine/types/enums.js'
10
11
  import {
11
- FormAdapterSubmissionSchemaVersion,
12
12
  type FormAdapterSubmissionMessageData,
13
13
  type FormAdapterSubmissionMessagePayload,
14
14
  type FormContext
@@ -0,0 +1,15 @@
1
+ export enum UploadStatus {
2
+ initiated = 'initiated',
3
+ pending = 'pending',
4
+ ready = 'ready'
5
+ }
6
+
7
+ export enum FileStatus {
8
+ complete = 'complete',
9
+ rejected = 'rejected',
10
+ pending = 'pending'
11
+ }
12
+
13
+ export enum FormAdapterSubmissionSchemaVersion {
14
+ V1 = 1
15
+ }
@@ -41,11 +41,7 @@ export type {
41
41
  UploadStatusResponse
42
42
  } from '~/src/server/plugins/engine/types.js'
43
43
 
44
- export {
45
- FileStatus,
46
- FormAdapterSubmissionSchemaVersion,
47
- UploadStatus
48
- } from '~/src/server/plugins/engine/types.js'
44
+ export { FileStatus, UploadStatus } from '~/src/server/plugins/engine/types.js'
49
45
 
50
46
  export type {
51
47
  Detail,
@@ -94,3 +90,4 @@ export type {
94
90
  export type { RichFormValue } from '~/src/server/plugins/engine/outputFormatters/machine/v2.js'
95
91
 
96
92
  export * from '~/src/server/plugins/engine/types/schema.js'
93
+ export { FormAdapterSubmissionSchemaVersion } from '~/src/server/plugins/engine/types/enums.js'
@@ -1,12 +1,12 @@
1
1
  import { FormStatus } from '@defra/forms-model'
2
2
 
3
+ import { FormAdapterSubmissionSchemaVersion } from '~/src/server/plugins/engine/types/enums.js'
3
4
  import {
4
5
  formAdapterSubmissionMessageDataSchema,
5
6
  formAdapterSubmissionMessageMetaSchema,
6
7
  formAdapterSubmissionMessagePayloadSchema
7
8
  } from '~/src/server/plugins/engine/types/schema.js'
8
9
  import {
9
- FormAdapterSubmissionSchemaVersion,
10
10
  type FormAdapterSubmissionMessageData,
11
11
  type FormAdapterSubmissionMessageMeta,
12
12
  type FormAdapterSubmissionMessagePayload
@@ -7,8 +7,8 @@ import {
7
7
  } from '@defra/forms-model'
8
8
  import Joi from 'joi'
9
9
 
10
+ import { FormAdapterSubmissionSchemaVersion } from '~/src/server/plugins/engine/types/enums.js'
10
11
  import {
11
- FormAdapterSubmissionSchemaVersion,
12
12
  type FormAdapterSubmissionMessageData,
13
13
  type FormAdapterSubmissionMessageMeta,
14
14
  type FormAdapterSubmissionMessagePayload
@@ -21,6 +21,11 @@ import { type FormModel } from '~/src/server/plugins/engine/models/index.js'
21
21
  import { type RichFormValue } from '~/src/server/plugins/engine/outputFormatters/machine/v2.js'
22
22
  import { type PageController } from '~/src/server/plugins/engine/pageControllers/PageController.js'
23
23
  import { type PageControllerClass } from '~/src/server/plugins/engine/pageControllers/helpers/pages.js'
24
+ import {
25
+ type FileStatus,
26
+ type FormAdapterSubmissionSchemaVersion,
27
+ type UploadStatus
28
+ } from '~/src/server/plugins/engine/types/enums.js'
24
29
  import { type ViewContext } from '~/src/server/plugins/nunjucks/types.js'
25
30
  import {
26
31
  type FormAction,
@@ -190,17 +195,10 @@ export interface UploadInitiateResponse {
190
195
  statusUrl: string
191
196
  }
192
197
 
193
- export enum UploadStatus {
194
- initiated = 'initiated',
195
- pending = 'pending',
196
- ready = 'ready'
197
- }
198
-
199
- export enum FileStatus {
200
- complete = 'complete',
201
- rejected = 'rejected',
202
- pending = 'pending'
203
- }
198
+ export {
199
+ FileStatus,
200
+ UploadStatus
201
+ } from '~/src/server/plugins/engine/types/enums.js'
204
202
 
205
203
  export type UploadState = FileState[]
206
204
 
@@ -414,10 +412,6 @@ export interface FormAdapterSubmissionMessageData {
414
412
  files: Record<string, Record<string, string>[]>
415
413
  }
416
414
 
417
- export enum FormAdapterSubmissionSchemaVersion {
418
- V1 = 1
419
- }
420
-
421
415
  export interface FormAdapterSubmissionMessagePayload {
422
416
  meta: FormAdapterSubmissionMessageMeta
423
417
  data: FormAdapterSubmissionMessageData