@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.
- package/.server/server/plugins/engine/components/CheckboxesField.d.ts +2 -0
- package/.server/server/plugins/engine/components/CheckboxesField.js +13 -7
- package/.server/server/plugins/engine/components/CheckboxesField.js.map +1 -1
- package/.server/server/plugins/engine/components/DatePartsField.d.ts +2 -0
- package/.server/server/plugins/engine/components/DatePartsField.js +11 -5
- package/.server/server/plugins/engine/components/DatePartsField.js.map +1 -1
- package/.server/server/plugins/engine/components/FileUploadField.d.ts +2 -0
- package/.server/server/plugins/engine/components/FileUploadField.js +9 -3
- package/.server/server/plugins/engine/components/FileUploadField.js.map +1 -1
- package/.server/server/plugins/engine/components/FormComponent.d.ts +2 -0
- package/.server/server/plugins/engine/components/FormComponent.js +11 -4
- package/.server/server/plugins/engine/components/FormComponent.js.map +1 -1
- package/.server/server/plugins/engine/components/ListFormComponent.d.ts +1 -0
- package/.server/server/plugins/engine/components/ListFormComponent.js +6 -4
- package/.server/server/plugins/engine/components/ListFormComponent.js.map +1 -1
- package/.server/server/plugins/engine/components/MonthYearField.d.ts +2 -0
- package/.server/server/plugins/engine/components/MonthYearField.js +9 -3
- package/.server/server/plugins/engine/components/MonthYearField.js.map +1 -1
- package/.server/server/plugins/engine/components/UkAddressField.d.ts +3 -1
- package/.server/server/plugins/engine/components/UkAddressField.js +12 -5
- package/.server/server/plugins/engine/components/UkAddressField.js.map +1 -1
- package/.server/server/plugins/engine/outputFormatters/adapter/v1.js +1 -1
- package/.server/server/plugins/engine/outputFormatters/adapter/v1.js.map +1 -1
- package/.server/server/plugins/engine/types/enums.d.ts +13 -0
- package/.server/server/plugins/engine/types/enums.js +17 -0
- package/.server/server/plugins/engine/types/enums.js.map +1 -0
- package/.server/server/plugins/engine/types/index.d.ts +2 -1
- package/.server/server/plugins/engine/types/index.js +2 -1
- package/.server/server/plugins/engine/types/index.js.map +1 -1
- package/.server/server/plugins/engine/types/schema.js +1 -1
- package/.server/server/plugins/engine/types/schema.js.map +1 -1
- package/.server/server/plugins/engine/types.d.ts +2 -14
- package/.server/server/plugins/engine/types.js +1 -16
- package/.server/server/plugins/engine/types.js.map +1 -1
- package/package.json +1 -1
- package/src/server/plugins/engine/components/CheckboxesField.ts +18 -7
- package/src/server/plugins/engine/components/DatePartsField.ts +17 -6
- package/src/server/plugins/engine/components/FileUploadField.ts +14 -3
- package/src/server/plugins/engine/components/FormComponent.ts +17 -5
- package/src/server/plugins/engine/components/ListFormComponent.ts +10 -3
- package/src/server/plugins/engine/components/MonthYearField.ts +14 -4
- package/src/server/plugins/engine/components/UkAddressField.ts +16 -6
- package/src/server/plugins/engine/outputFormatters/adapter/v1.test.ts +1 -1
- package/src/server/plugins/engine/outputFormatters/adapter/v1.ts +1 -1
- package/src/server/plugins/engine/types/enums.ts +15 -0
- package/src/server/plugins/engine/types/index.ts +2 -5
- package/src/server/plugins/engine/types/schema.test.ts +1 -1
- package/src/server/plugins/engine/types/schema.ts +1 -1
- 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
|
-
|
|
161
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
114
|
-
|
|
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
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
124
|
+
return this.getContextValueFromFormValue(value)
|
|
125
|
+
}
|
|
123
126
|
|
|
124
|
-
|
|
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
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
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
|