@defra/forms-model 3.0.481 → 3.0.483

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 (186) hide show
  1. package/dist/module/conditions/condition-operators.js +4 -1
  2. package/dist/module/conditions/condition-operators.js.map +1 -1
  3. package/dist/module/form/form-definition/index.js +0 -1
  4. package/dist/module/form/form-definition/index.js.map +1 -1
  5. package/dist/module/form/form-editor/__stubs__/preview.js +83 -4
  6. package/dist/module/form/form-editor/__stubs__/preview.js.map +1 -1
  7. package/dist/module/form/form-editor/index.js +2 -2
  8. package/dist/module/form/form-editor/index.js.map +1 -1
  9. package/dist/module/form/form-editor/macros/types.js +2 -0
  10. package/dist/module/form/form-editor/macros/types.js.map +1 -0
  11. package/dist/module/form/form-editor/preview/autocomplete.js +20 -4
  12. package/dist/module/form/form-editor/preview/autocomplete.js.map +1 -1
  13. package/dist/module/form/form-editor/preview/checkbox-sortable.js +7 -2
  14. package/dist/module/form/form-editor/preview/checkbox-sortable.js.map +1 -1
  15. package/dist/module/form/form-editor/preview/checkbox.js +17 -0
  16. package/dist/module/form/form-editor/preview/checkbox.js.map +1 -0
  17. package/dist/module/form/form-editor/preview/component-elements.js +61 -0
  18. package/dist/module/form/form-editor/preview/component-elements.js.map +1 -0
  19. package/dist/module/form/form-editor/preview/constants.js +2 -0
  20. package/dist/module/form/form-editor/preview/constants.js.map +1 -0
  21. package/dist/module/form/form-editor/preview/content.js +94 -0
  22. package/dist/module/form/form-editor/preview/content.js.map +1 -0
  23. package/dist/module/form/form-editor/preview/controller/page-controller.js +260 -0
  24. package/dist/module/form/form-editor/preview/controller/page-controller.js.map +1 -0
  25. package/dist/module/form/form-editor/preview/date-input.js +7 -2
  26. package/dist/module/form/form-editor/preview/date-input.js.map +1 -1
  27. package/dist/module/form/form-editor/preview/email-address.js +7 -1
  28. package/dist/module/form/form-editor/preview/email-address.js.map +1 -1
  29. package/dist/module/form/form-editor/preview/fieldset-question.js +5 -0
  30. package/dist/module/form/form-editor/preview/fieldset-question.js.map +1 -1
  31. package/dist/module/form/form-editor/preview/helpers.js +81 -0
  32. package/dist/module/form/form-editor/preview/helpers.js.map +1 -0
  33. package/dist/module/form/form-editor/preview/index.js +6 -0
  34. package/dist/module/form/form-editor/preview/index.js.map +1 -1
  35. package/dist/module/form/form-editor/preview/list.js +59 -3
  36. package/dist/module/form/form-editor/preview/list.js.map +1 -1
  37. package/dist/module/form/form-editor/preview/long-answer.js +7 -1
  38. package/dist/module/form/form-editor/preview/long-answer.js.map +1 -1
  39. package/dist/module/form/form-editor/preview/markdown.js +53 -0
  40. package/dist/module/form/form-editor/preview/markdown.js.map +1 -0
  41. package/dist/module/form/form-editor/preview/month-year.js +7 -2
  42. package/dist/module/form/form-editor/preview/month-year.js.map +1 -1
  43. package/dist/module/form/form-editor/preview/number-only.js +5 -0
  44. package/dist/module/form/form-editor/preview/number-only.js.map +1 -1
  45. package/dist/module/form/form-editor/preview/phone-number.js +7 -1
  46. package/dist/module/form/form-editor/preview/phone-number.js.map +1 -1
  47. package/dist/module/form/form-editor/preview/preview.js +212 -0
  48. package/dist/module/form/form-editor/preview/preview.js.map +1 -0
  49. package/dist/module/form/form-editor/preview/question.js +48 -138
  50. package/dist/module/form/form-editor/preview/question.js.map +1 -1
  51. package/dist/module/form/form-editor/preview/radio-sortable.js +7 -2
  52. package/dist/module/form/form-editor/preview/radio-sortable.js.map +1 -1
  53. package/dist/module/form/form-editor/preview/radio.js +7 -2
  54. package/dist/module/form/form-editor/preview/radio.js.map +1 -1
  55. package/dist/module/form/form-editor/preview/select-sortable.js +38 -0
  56. package/dist/module/form/form-editor/preview/select-sortable.js.map +1 -0
  57. package/dist/module/form/form-editor/preview/select.js +11 -0
  58. package/dist/module/form/form-editor/preview/select.js.map +1 -0
  59. package/dist/module/form/form-editor/preview/short-answer.js +7 -1
  60. package/dist/module/form/form-editor/preview/short-answer.js.map +1 -1
  61. package/dist/module/form/form-editor/preview/supporting-evidence.js +7 -1
  62. package/dist/module/form/form-editor/preview/supporting-evidence.js.map +1 -1
  63. package/dist/module/form/form-editor/preview/types.js.map +1 -1
  64. package/dist/module/form/form-editor/preview/uk-address.js +7 -2
  65. package/dist/module/form/form-editor/preview/uk-address.js.map +1 -1
  66. package/dist/module/form/form-editor/preview/yes-no.js +7 -2
  67. package/dist/module/form/form-editor/preview/yes-no.js.map +1 -1
  68. package/dist/module/form/form-editor/types.js.map +1 -1
  69. package/dist/module/form/form-metadata/index.js +1 -5
  70. package/dist/module/form/form-metadata/index.js.map +1 -1
  71. package/dist/module/form/utils/index.js +1 -0
  72. package/dist/module/form/utils/index.js.map +1 -1
  73. package/dist/module/form/utils/list.js +15 -0
  74. package/dist/module/form/utils/list.js.map +1 -0
  75. package/dist/module/index.js.map +1 -1
  76. package/dist/module/stubs.js +1 -0
  77. package/dist/module/stubs.js.map +1 -1
  78. package/dist/types/conditions/condition-operators.d.ts +0 -4
  79. package/dist/types/conditions/condition-operators.d.ts.map +1 -1
  80. package/dist/types/form/form-definition/index.d.ts.map +1 -1
  81. package/dist/types/form/form-editor/__stubs__/preview.d.ts +58 -11
  82. package/dist/types/form/form-editor/__stubs__/preview.d.ts.map +1 -1
  83. package/dist/types/form/form-editor/index.d.ts.map +1 -1
  84. package/dist/types/form/form-editor/macros/types.d.ts +62 -0
  85. package/dist/types/form/form-editor/macros/types.d.ts.map +1 -0
  86. package/dist/types/form/form-editor/preview/autocomplete.d.ts +3 -1
  87. package/dist/types/form/form-editor/preview/autocomplete.d.ts.map +1 -1
  88. package/dist/types/form/form-editor/preview/checkbox-sortable.d.ts.map +1 -1
  89. package/dist/types/form/form-editor/preview/checkbox.d.ts +4 -0
  90. package/dist/types/form/form-editor/preview/checkbox.d.ts.map +1 -0
  91. package/dist/types/form/form-editor/preview/component-elements.d.ts +35 -0
  92. package/dist/types/form/form-editor/preview/component-elements.d.ts.map +1 -0
  93. package/dist/types/form/form-editor/preview/constants.d.ts +2 -0
  94. package/dist/types/form/form-editor/preview/constants.d.ts.map +1 -0
  95. package/dist/types/form/form-editor/preview/content.d.ts +43 -0
  96. package/dist/types/form/form-editor/preview/content.d.ts.map +1 -0
  97. package/dist/types/form/form-editor/preview/controller/page-controller.d.ts +132 -0
  98. package/dist/types/form/form-editor/preview/controller/page-controller.d.ts.map +1 -0
  99. package/dist/types/form/form-editor/preview/date-input.d.ts.map +1 -1
  100. package/dist/types/form/form-editor/preview/email-address.d.ts.map +1 -1
  101. package/dist/types/form/form-editor/preview/fieldset-question.d.ts +2 -0
  102. package/dist/types/form/form-editor/preview/fieldset-question.d.ts.map +1 -1
  103. package/dist/types/form/form-editor/preview/helpers.d.ts +11 -0
  104. package/dist/types/form/form-editor/preview/helpers.d.ts.map +1 -0
  105. package/dist/types/form/form-editor/preview/index.d.ts +6 -0
  106. package/dist/types/form/form-editor/preview/list-sortable.d.ts +1 -1
  107. package/dist/types/form/form-editor/preview/list.d.ts +25 -0
  108. package/dist/types/form/form-editor/preview/list.d.ts.map +1 -1
  109. package/dist/types/form/form-editor/preview/long-answer.d.ts.map +1 -1
  110. package/dist/types/form/form-editor/preview/markdown.d.ts +9 -0
  111. package/dist/types/form/form-editor/preview/markdown.d.ts.map +1 -0
  112. package/dist/types/form/form-editor/preview/month-year.d.ts.map +1 -1
  113. package/dist/types/form/form-editor/preview/number-only.d.ts.map +1 -1
  114. package/dist/types/form/form-editor/preview/phone-number.d.ts.map +1 -1
  115. package/dist/types/form/form-editor/preview/preview.d.ts +126 -0
  116. package/dist/types/form/form-editor/preview/preview.d.ts.map +1 -0
  117. package/dist/types/form/form-editor/preview/question.d.ts +19 -93
  118. package/dist/types/form/form-editor/preview/question.d.ts.map +1 -1
  119. package/dist/types/form/form-editor/preview/radio-sortable.d.ts.map +1 -1
  120. package/dist/types/form/form-editor/preview/radio.d.ts.map +1 -1
  121. package/dist/types/form/form-editor/preview/select-sortable.d.ts +18 -0
  122. package/dist/types/form/form-editor/preview/select-sortable.d.ts.map +1 -0
  123. package/dist/types/form/form-editor/preview/select.d.ts +4 -0
  124. package/dist/types/form/form-editor/preview/select.d.ts.map +1 -0
  125. package/dist/types/form/form-editor/preview/short-answer.d.ts.map +1 -1
  126. package/dist/types/form/form-editor/preview/supporting-evidence.d.ts.map +1 -1
  127. package/dist/types/form/form-editor/preview/types.d.ts +13 -17
  128. package/dist/types/form/form-editor/preview/types.d.ts.map +1 -1
  129. package/dist/types/form/form-editor/preview/uk-address.d.ts.map +1 -1
  130. package/dist/types/form/form-editor/preview/yes-no.d.ts.map +1 -1
  131. package/dist/types/form/form-editor/types.d.ts +6 -4
  132. package/dist/types/form/form-editor/types.d.ts.map +1 -1
  133. package/dist/types/form/form-metadata/index.d.ts.map +1 -1
  134. package/dist/types/form/utils/index.d.ts +1 -0
  135. package/dist/types/form/utils/index.d.ts.map +1 -1
  136. package/dist/types/form/utils/list.d.ts +10 -0
  137. package/dist/types/form/utils/list.d.ts.map +1 -0
  138. package/dist/types/index.d.ts +1 -0
  139. package/dist/types/index.d.ts.map +1 -1
  140. package/dist/types/stubs.d.ts +1 -0
  141. package/dist/types/stubs.d.ts.map +1 -1
  142. package/package.json +1 -1
  143. package/schemas/form-definition-schema.json +0 -12
  144. package/schemas/form-metadata-input-schema.json +1 -2
  145. package/schemas/form-metadata-schema.json +1 -2
  146. package/schemas/question-type-full-schema.json +2 -1
  147. package/src/conditions/condition-operators.ts +4 -1
  148. package/src/form/form-definition/index.ts +0 -5
  149. package/src/form/form-editor/__stubs__/preview.js +84 -4
  150. package/src/form/form-editor/index.ts +4 -2
  151. package/src/form/form-editor/macros/types.ts +65 -0
  152. package/src/form/form-editor/preview/autocomplete.js +21 -4
  153. package/src/form/form-editor/preview/checkbox-sortable.js +7 -2
  154. package/src/form/form-editor/preview/checkbox.js +17 -0
  155. package/src/form/form-editor/preview/component-elements.js +61 -0
  156. package/src/form/form-editor/preview/constants.js +1 -0
  157. package/src/form/form-editor/preview/content.js +93 -0
  158. package/src/form/form-editor/preview/controller/page-controller.js +284 -0
  159. package/src/form/form-editor/preview/date-input.js +8 -2
  160. package/src/form/form-editor/preview/email-address.js +7 -1
  161. package/src/form/form-editor/preview/fieldset-question.js +6 -0
  162. package/src/form/form-editor/preview/helpers.js +95 -0
  163. package/src/form/form-editor/preview/index.js +6 -0
  164. package/src/form/form-editor/preview/list.js +62 -3
  165. package/src/form/form-editor/preview/long-answer.js +7 -1
  166. package/src/form/form-editor/preview/markdown.js +50 -0
  167. package/src/form/form-editor/preview/month-year.js +7 -2
  168. package/src/form/form-editor/preview/number-only.js +5 -0
  169. package/src/form/form-editor/preview/phone-number.js +7 -1
  170. package/src/form/form-editor/preview/preview.js +211 -0
  171. package/src/form/form-editor/preview/question.js +47 -142
  172. package/src/form/form-editor/preview/radio-sortable.js +7 -2
  173. package/src/form/form-editor/preview/radio.js +7 -2
  174. package/src/form/form-editor/preview/select-sortable.js +43 -0
  175. package/src/form/form-editor/preview/select.js +11 -0
  176. package/src/form/form-editor/preview/short-answer.js +7 -1
  177. package/src/form/form-editor/preview/supporting-evidence.js +7 -1
  178. package/src/form/form-editor/preview/types.ts +18 -18
  179. package/src/form/form-editor/preview/uk-address.js +7 -2
  180. package/src/form/form-editor/preview/yes-no.js +7 -2
  181. package/src/form/form-editor/types.ts +6 -4
  182. package/src/form/form-metadata/index.ts +2 -5
  183. package/src/form/utils/index.ts +1 -0
  184. package/src/form/utils/list.ts +25 -0
  185. package/src/index.ts +1 -0
  186. package/src/stubs.ts +1 -0
@@ -357,13 +357,15 @@ export type FormEditorInputQuestionDetails = Pick<
357
357
  | 'jsEnabled'
358
358
  >
359
359
 
360
+ type ListValue = string | boolean | number
361
+
360
362
  export interface ListItem {
361
363
  id?: string
362
364
  text?: string
363
365
  hint?: {
364
366
  text: string
365
367
  }
366
- value?: string | boolean
368
+ value?: ListValue
367
369
  }
368
370
 
369
371
  export interface ListLabel {
@@ -374,7 +376,7 @@ export interface ListLabel {
374
376
  export interface ListElement extends ListItem {
375
377
  readonly id: string
376
378
  text: string
377
- value: string | boolean
379
+ value: ListValue
378
380
  label?: ListLabel
379
381
  }
380
382
 
@@ -385,7 +387,7 @@ export interface ReadonlyHint {
385
387
  export interface ListItemReadonly extends ListElement {
386
388
  readonly text: string
387
389
  readonly hint?: ReadonlyHint
388
- readonly value: string | boolean
390
+ readonly value: ListValue
389
391
  readonly label?: ListLabel
390
392
  }
391
393
 
@@ -401,7 +403,7 @@ export interface QuestionSessionState {
401
403
  radioId?: string
402
404
  radioText?: string
403
405
  radioHint?: string
404
- radioValue?: string | boolean
406
+ radioValue?: ListValue
405
407
  expanded?: boolean
406
408
  }
407
409
  listItems?: ListItem[]
@@ -120,12 +120,9 @@ export const privacyNoticeUrlSchema = Joi.string()
120
120
  .description('URL to the privacy notice for this form')
121
121
 
122
122
  export const notificationEmailAddressSchema = Joi.string()
123
- .email({ tlds: { allow: ['uk'] } })
123
+ .email()
124
124
  .trim()
125
- .pattern(/\.gov\.uk$|\.org\.uk$/)
126
- .description(
127
- 'Email address to receive form submission notifications, must be a .gov.uk or .org.uk address'
128
- )
125
+ .description('Email address to receive form submission notifications')
129
126
 
130
127
  export const authoredAtSchema = Joi.date()
131
128
  .iso()
@@ -1 +1,2 @@
1
1
  export { findStartPage } from '~/src/form/utils/find-start-page.js'
2
+ export { findDefinitionListFromComponent } from '~/src/form/utils/list.js'
@@ -0,0 +1,25 @@
1
+ import { type ListComponentsDef } from '~/src/components/types.js'
2
+ import {
3
+ type FormDefinition,
4
+ type List
5
+ } from '~/src/form/form-definition/types.js'
6
+
7
+ /**
8
+ * Given a SelectionComponent finds the associated list
9
+ * @param {ListComponentsDef} selectionComponent
10
+ * @param {FormDefinition} definition
11
+ * @returns {List}
12
+ */
13
+ export function findDefinitionListFromComponent(
14
+ selectionComponent: ListComponentsDef,
15
+ definition: FormDefinition
16
+ ): List {
17
+ const listId = selectionComponent.list
18
+ const list = definition.lists.find((list) => list.id === listId)
19
+
20
+ if (list === undefined) {
21
+ throw new Error('List not found')
22
+ }
23
+
24
+ return list
25
+ }
package/src/index.ts CHANGED
@@ -29,3 +29,4 @@ export type * from '~/src/form/form-metadata/types.js'
29
29
  export type * from '~/src/form/form-submission/types.js'
30
30
  export type * from '~/src/form/form-editor/preview/types.js'
31
31
  export type * from '~/src/form/form-editor/types.js'
32
+ export type * from '~/src/form/form-editor/macros/types.js'
package/src/stubs.ts CHANGED
@@ -10,3 +10,4 @@ export { buildRepeaterPage } from '~/src/__stubs__/pages.js'
10
10
  export { buildFileUploadPage } from '~/src/__stubs__/pages.js'
11
11
  export { buildSummaryPage } from '~/src/__stubs__/pages.js'
12
12
  export { buildQuestionPage } from '~/src/__stubs__/pages.js'
13
+ export { buildMarkdownComponent } from '~/src/__stubs__/components.js'