@defra/forms-model 3.0.447 → 3.0.449
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/dist/module/form/form-definition/index.js +1 -1
- package/dist/module/form/form-definition/index.js.map +1 -1
- package/dist/module/form/form-editor/__stubs__/preview.js +105 -0
- package/dist/module/form/form-editor/__stubs__/preview.js.map +1 -0
- package/dist/module/form/form-editor/index.js +14 -0
- package/dist/module/form/form-editor/index.js.map +1 -1
- package/dist/module/form/form-editor/preview/date-input.js +17 -0
- package/dist/module/form/form-editor/preview/date-input.js.map +1 -0
- package/dist/module/form/form-editor/preview/email-address.js +6 -0
- package/dist/module/form/form-editor/preview/email-address.js.map +1 -0
- package/dist/module/form/form-editor/preview/index.js +11 -0
- package/dist/module/form/form-editor/preview/index.js.map +1 -0
- package/dist/module/form/form-editor/preview/list-sortable.js +40 -0
- package/dist/module/form/form-editor/preview/list-sortable.js.map +1 -0
- package/dist/module/form/form-editor/preview/list.js +182 -0
- package/dist/module/form/form-editor/preview/list.js.map +1 -0
- package/dist/module/form/form-editor/preview/phone-number.js +10 -0
- package/dist/module/form/form-editor/preview/phone-number.js.map +1 -0
- package/dist/module/form/form-editor/preview/question.js +197 -0
- package/dist/module/form/form-editor/preview/question.js.map +1 -0
- package/dist/module/form/form-editor/preview/radio-sortable.js +5 -0
- package/dist/module/form/form-editor/preview/radio-sortable.js.map +1 -0
- package/dist/module/form/form-editor/preview/radio.js +5 -0
- package/dist/module/form/form-editor/preview/radio.js.map +1 -0
- package/dist/module/form/form-editor/preview/short-answer.js +3 -0
- package/dist/module/form/form-editor/preview/short-answer.js.map +1 -0
- package/dist/module/form/form-editor/preview/types.js +2 -0
- package/dist/module/form/form-editor/preview/types.js.map +1 -0
- package/dist/module/form/form-editor/preview/uk-address.js +6 -0
- package/dist/module/form/form-editor/preview/uk-address.js.map +1 -0
- package/dist/module/form/form-editor/types.js.map +1 -1
- package/dist/module/form/form-manager/types.js.map +1 -1
- package/dist/module/index.js +1 -1
- package/dist/module/index.js.map +1 -1
- package/dist/types/form/form-definition/index.d.ts +2 -1
- package/dist/types/form/form-definition/index.d.ts.map +1 -1
- package/dist/types/form/form-editor/__stubs__/preview.d.ts +72 -0
- package/dist/types/form/form-editor/__stubs__/preview.d.ts.map +1 -0
- package/dist/types/form/form-editor/index.d.ts +7 -1
- package/dist/types/form/form-editor/index.d.ts.map +1 -1
- package/dist/types/form/form-editor/preview/date-input.d.ts +10 -0
- package/dist/types/form/form-editor/preview/date-input.d.ts.map +1 -0
- package/dist/types/form/form-editor/preview/email-address.d.ts +4 -0
- package/dist/types/form/form-editor/preview/email-address.d.ts.map +1 -0
- package/dist/types/form/form-editor/preview/index.d.ts +11 -0
- package/dist/types/form/form-editor/preview/index.d.ts.map +1 -0
- package/dist/types/form/form-editor/preview/list-sortable.d.ts +17 -0
- package/dist/types/form/form-editor/preview/list-sortable.d.ts.map +1 -0
- package/dist/types/form/form-editor/preview/list.d.ts +81 -0
- package/dist/types/form/form-editor/preview/list.d.ts.map +1 -0
- package/dist/types/form/form-editor/preview/phone-number.d.ts +4 -0
- package/dist/types/form/form-editor/preview/phone-number.d.ts.map +1 -0
- package/dist/types/form/form-editor/preview/question.d.ts +119 -0
- package/dist/types/form/form-editor/preview/question.d.ts.map +1 -0
- package/dist/types/form/form-editor/preview/radio-sortable.d.ts +4 -0
- package/dist/types/form/form-editor/preview/radio-sortable.d.ts.map +1 -0
- package/dist/types/form/form-editor/preview/radio.d.ts +4 -0
- package/dist/types/form/form-editor/preview/radio.d.ts.map +1 -0
- package/dist/types/form/form-editor/preview/short-answer.d.ts +4 -0
- package/dist/types/form/form-editor/preview/short-answer.d.ts.map +1 -0
- package/dist/types/form/form-editor/preview/types.d.ts +52 -0
- package/dist/types/form/form-editor/preview/types.d.ts.map +1 -0
- package/dist/types/form/form-editor/preview/uk-address.d.ts +4 -0
- package/dist/types/form/form-editor/preview/uk-address.d.ts.map +1 -0
- package/dist/types/form/form-editor/types.d.ts +36 -6
- package/dist/types/form/form-editor/types.d.ts.map +1 -1
- package/dist/types/form/form-manager/types.d.ts +2 -2
- package/dist/types/form/form-manager/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/form/form-definition/index.ts +1 -1
- package/src/form/form-editor/__stubs__/preview.js +101 -0
- package/src/form/form-editor/index.ts +43 -1
- package/src/form/form-editor/preview/date-input.js +18 -0
- package/src/form/form-editor/preview/email-address.js +6 -0
- package/src/form/form-editor/preview/index.js +10 -0
- package/src/form/form-editor/preview/list-sortable.js +39 -0
- package/src/form/form-editor/preview/list.js +202 -0
- package/src/form/form-editor/preview/phone-number.js +10 -0
- package/src/form/form-editor/preview/question.js +199 -0
- package/src/form/form-editor/preview/radio-sortable.js +5 -0
- package/src/form/form-editor/preview/radio.js +5 -0
- package/src/form/form-editor/preview/short-answer.js +3 -0
- package/src/form/form-editor/preview/types.ts +60 -0
- package/src/form/form-editor/preview/uk-address.js +6 -0
- package/src/form/form-editor/types.ts +47 -2
- package/src/form/form-manager/types.ts +2 -2
- package/src/index.ts +2 -1
- package/dist/module/form/form-manager/index.js +0 -7
- package/dist/module/form/form-manager/index.js.map +0 -1
- package/dist/types/form/form-manager/index.d.ts +0 -3
- package/dist/types/form/form-manager/index.d.ts.map +0 -1
- package/schemas/patch-page-schema.json +0 -26
- package/src/form/form-manager/index.ts +0 -21
@@ -0,0 +1,60 @@
|
|
1
|
+
import {
|
2
|
+
type ListElement,
|
3
|
+
type ListItemReadonly
|
4
|
+
} from '~/src/form/form-editor/types.js'
|
5
|
+
|
6
|
+
export interface BaseSettings {
|
7
|
+
question: string
|
8
|
+
hintText: string
|
9
|
+
optional: boolean
|
10
|
+
shortDesc: string
|
11
|
+
items: ListElement[]
|
12
|
+
}
|
13
|
+
|
14
|
+
export interface DefaultComponent {
|
15
|
+
id?: string
|
16
|
+
text: string
|
17
|
+
classes: string
|
18
|
+
}
|
19
|
+
|
20
|
+
export interface GovukFieldset {
|
21
|
+
legend: DefaultComponent
|
22
|
+
}
|
23
|
+
|
24
|
+
export interface QuestionBaseModel {
|
25
|
+
id?: string
|
26
|
+
name?: string
|
27
|
+
label?: DefaultComponent
|
28
|
+
hint?: DefaultComponent
|
29
|
+
fieldset?: GovukFieldset
|
30
|
+
readonly items?: ListItemReadonly[]
|
31
|
+
text?: string
|
32
|
+
formGroup?: { afterInputs: { html: string } }
|
33
|
+
}
|
34
|
+
|
35
|
+
export type ListenerRow = [
|
36
|
+
HTMLInputElement | null,
|
37
|
+
(target: HTMLInputElement, e: Event) => void,
|
38
|
+
keyof HTMLElementEventMap
|
39
|
+
]
|
40
|
+
|
41
|
+
export interface QuestionElements {
|
42
|
+
readonly values: BaseSettings
|
43
|
+
setPreviewHTML(value: string): void
|
44
|
+
}
|
45
|
+
|
46
|
+
export interface RenderContext {
|
47
|
+
model: QuestionBaseModel
|
48
|
+
}
|
49
|
+
|
50
|
+
export interface HTMLBuilder {
|
51
|
+
buildHTML(questionTemplate: string, renderContext: RenderContext): string
|
52
|
+
}
|
53
|
+
|
54
|
+
export interface QuestionRenderer {
|
55
|
+
render(questionTemplate: string, questionBaseModel: QuestionBaseModel): void
|
56
|
+
}
|
57
|
+
|
58
|
+
export interface ListElements extends QuestionElements {
|
59
|
+
afterInputsHTML: string
|
60
|
+
}
|
@@ -71,6 +71,26 @@ export interface FormEditor {
|
|
71
71
|
*/
|
72
72
|
guidanceText: string
|
73
73
|
|
74
|
+
/**
|
75
|
+
* The value of checkbox to reveal repeater section
|
76
|
+
*/
|
77
|
+
repeater: string
|
78
|
+
|
79
|
+
/**
|
80
|
+
* The maximum number of repeater items
|
81
|
+
*/
|
82
|
+
minItems: number
|
83
|
+
|
84
|
+
/**
|
85
|
+
* The minimum number of repeater items
|
86
|
+
*/
|
87
|
+
maxItems: number
|
88
|
+
|
89
|
+
/**
|
90
|
+
* The repeater question set name
|
91
|
+
*/
|
92
|
+
questionSetName: string
|
93
|
+
|
74
94
|
/**
|
75
95
|
* The value of radio to reveal declaration text field
|
76
96
|
*/
|
@@ -277,7 +297,13 @@ export type FormEditorInputQuestion = Pick<
|
|
277
297
|
|
278
298
|
export type FormEditorInputPageSettings = Pick<
|
279
299
|
FormEditor,
|
280
|
-
|
300
|
+
| 'pageHeadingAndGuidance'
|
301
|
+
| 'pageHeading'
|
302
|
+
| 'guidanceText'
|
303
|
+
| 'repeater'
|
304
|
+
| 'minItems'
|
305
|
+
| 'maxItems'
|
306
|
+
| 'questionSetName'
|
281
307
|
>
|
282
308
|
|
283
309
|
export type FormEditorInputGuidancePage = Pick<
|
@@ -354,6 +380,12 @@ export interface QuestionSessionState {
|
|
354
380
|
lastMoveDirection?: string
|
355
381
|
}
|
356
382
|
|
383
|
+
export interface GovukFieldItem {
|
384
|
+
text?: string
|
385
|
+
value?: string
|
386
|
+
checked?: boolean
|
387
|
+
}
|
388
|
+
|
357
389
|
export interface GovukField {
|
358
390
|
id?: string
|
359
391
|
name?: string
|
@@ -370,12 +402,25 @@ export interface GovukField {
|
|
370
402
|
isPageHeading?: boolean
|
371
403
|
}
|
372
404
|
hint?: { text?: string; html?: string; classes?: string }
|
373
|
-
items?:
|
405
|
+
items?: GovukFieldItem[]
|
374
406
|
rows?: number
|
375
407
|
type?: string
|
376
408
|
customTemplate?: string
|
377
409
|
}
|
378
410
|
|
411
|
+
export type GovukFieldQuestionOptional = Omit<GovukField, 'name' | 'items'> & {
|
412
|
+
name: 'questionOptional'
|
413
|
+
items: [
|
414
|
+
{
|
415
|
+
text?: string
|
416
|
+
value?: string
|
417
|
+
checked: boolean
|
418
|
+
}
|
419
|
+
]
|
420
|
+
}
|
421
|
+
|
422
|
+
export type GovukStringField = Omit<GovukField, 'value'> & { value: string }
|
423
|
+
|
379
424
|
export interface FormEditorGovukField {
|
380
425
|
question?: GovukField
|
381
426
|
hintText?: GovukField
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import { type
|
1
|
+
import { type PageRepeat } from '~/src/index.js'
|
2
2
|
|
3
3
|
export type PatchPageFields = Partial<
|
4
|
-
Pick<
|
4
|
+
Pick<PageRepeat, 'title' | 'path' | 'controller' | 'repeat'>
|
5
5
|
>
|
6
6
|
|
7
7
|
export interface AddComponentQueryOptions {
|
package/src/index.ts
CHANGED
@@ -12,7 +12,7 @@ export * from '~/src/form/form-metadata/index.js'
|
|
12
12
|
export * from '~/src/form/form-submission/index.js'
|
13
13
|
export * from '~/src/form/utils/index.js'
|
14
14
|
export * from '~/src/form/form-editor/index.js'
|
15
|
-
export * from '~/src/form/form-
|
15
|
+
export * from '~/src/form/form-editor/preview/index.js'
|
16
16
|
export * from '~/src/form/form-manager/types.js'
|
17
17
|
export * from '~/src/pages/index.js'
|
18
18
|
export * from '~/src/utils/helpers.js'
|
@@ -27,4 +27,5 @@ export type * from '~/src/conditions/types.js'
|
|
27
27
|
export type * from '~/src/form/form-definition/types.js'
|
28
28
|
export type * from '~/src/form/form-metadata/types.js'
|
29
29
|
export type * from '~/src/form/form-submission/types.js'
|
30
|
+
export type * from '~/src/form/form-editor/preview/types.js'
|
30
31
|
export type * from '~/src/form/form-editor/types.js'
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import Joi from 'joi';
|
2
|
-
import { pageSchema } from "../form-definition/index.js";
|
3
|
-
export const patchPageSchema = Joi.object().keys({
|
4
|
-
title: pageSchema.extract('title').optional().description('New title to set for the page'),
|
5
|
-
path: pageSchema.extract('path').optional().description('New URL path to set for the page')
|
6
|
-
}).required().min(1).description('Schema for partially updating a page, requiring at least one field to be provided');
|
7
|
-
//# sourceMappingURL=index.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["Joi","pageSchema","patchPageSchema","object","keys","title","extract","optional","description","path","required","min"],"sources":["../../../../src/form/form-manager/index.ts"],"sourcesContent":["import Joi from 'joi'\n\nimport { pageSchema } from '~/src/form/form-definition/index.js'\nimport { type PatchPageFields } from '~/src/form/form-manager/types.js'\n\nexport const patchPageSchema = Joi.object<PatchPageFields>()\n .keys({\n title: pageSchema\n .extract('title')\n .optional()\n .description('New title to set for the page'),\n path: pageSchema\n .extract('path')\n .optional()\n .description('New URL path to set for the page')\n })\n .required()\n .min(1)\n .description(\n 'Schema for partially updating a page, requiring at least one field to be provided'\n )\n"],"mappings":"AAAA,OAAOA,GAAG,MAAM,KAAK;AAErB,SAASC,UAAU;AAGnB,OAAO,MAAMC,eAAe,GAAGF,GAAG,CAACG,MAAM,CAAkB,CAAC,CACzDC,IAAI,CAAC;EACJC,KAAK,EAAEJ,UAAU,CACdK,OAAO,CAAC,OAAO,CAAC,CAChBC,QAAQ,CAAC,CAAC,CACVC,WAAW,CAAC,+BAA+B,CAAC;EAC/CC,IAAI,EAAER,UAAU,CACbK,OAAO,CAAC,MAAM,CAAC,CACfC,QAAQ,CAAC,CAAC,CACVC,WAAW,CAAC,kCAAkC;AACnD,CAAC,CAAC,CACDE,QAAQ,CAAC,CAAC,CACVC,GAAG,CAAC,CAAC,CAAC,CACNH,WAAW,CACV,mFACF,CAAC","ignoreList":[]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAKrB,eAAO,MAAM,eAAe,8GAezB,CAAA"}
|
@@ -1,26 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"type": "object",
|
3
|
-
"description": "Schema for partially updating a page, requiring at least one field to be provided",
|
4
|
-
"properties": {
|
5
|
-
"title": {
|
6
|
-
"type": "string",
|
7
|
-
"description": "New title to set for the page",
|
8
|
-
"title": "Title"
|
9
|
-
},
|
10
|
-
"path": {
|
11
|
-
"type": "string",
|
12
|
-
"description": "New URL path to set for the page",
|
13
|
-
"not": {
|
14
|
-
"type": "string",
|
15
|
-
"enum": [
|
16
|
-
"/status"
|
17
|
-
]
|
18
|
-
},
|
19
|
-
"title": "Path"
|
20
|
-
}
|
21
|
-
},
|
22
|
-
"additionalProperties": false,
|
23
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
24
|
-
"title": "Patch Page Schema",
|
25
|
-
"$id": "@defra/forms-model/schemas/patch-page-schema.json"
|
26
|
-
}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import Joi from 'joi'
|
2
|
-
|
3
|
-
import { pageSchema } from '~/src/form/form-definition/index.js'
|
4
|
-
import { type PatchPageFields } from '~/src/form/form-manager/types.js'
|
5
|
-
|
6
|
-
export const patchPageSchema = Joi.object<PatchPageFields>()
|
7
|
-
.keys({
|
8
|
-
title: pageSchema
|
9
|
-
.extract('title')
|
10
|
-
.optional()
|
11
|
-
.description('New title to set for the page'),
|
12
|
-
path: pageSchema
|
13
|
-
.extract('path')
|
14
|
-
.optional()
|
15
|
-
.description('New URL path to set for the page')
|
16
|
-
})
|
17
|
-
.required()
|
18
|
-
.min(1)
|
19
|
-
.description(
|
20
|
-
'Schema for partially updating a page, requiring at least one field to be provided'
|
21
|
-
)
|