@defra/forms-model 3.0.612 → 3.0.614
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 +2 -1
- package/dist/module/form/form-definition/index.js.map +1 -1
- package/dist/module/form/form-definition/types.js.map +1 -1
- package/dist/module/form/form-editor/index.js +1 -0
- package/dist/module/form/form-editor/index.js.map +1 -1
- package/dist/module/form/form-editor/preview/controller/summary-page-controller.js +4 -1
- package/dist/module/form/form-editor/preview/controller/summary-page-controller.js.map +1 -1
- package/dist/module/form/form-editor/preview/payment.js +16 -1
- package/dist/module/form/form-editor/preview/payment.js.map +1 -1
- package/dist/module/form/form-editor/types.js.map +1 -1
- package/dist/types/form/form-definition/index.d.ts.map +1 -1
- package/dist/types/form/form-definition/types.d.ts +2 -1
- package/dist/types/form/form-definition/types.d.ts.map +1 -1
- package/dist/types/form/form-editor/index.d.ts +1 -0
- package/dist/types/form/form-editor/index.d.ts.map +1 -1
- package/dist/types/form/form-editor/preview/controller/summary-page-controller.d.ts.map +1 -1
- package/dist/types/form/form-editor/preview/payment.d.ts.map +1 -1
- package/dist/types/form/form-editor/types.d.ts +5 -0
- package/dist/types/form/form-editor/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/schemas/form-definition-schema.json +6 -3
- package/schemas/form-definition-v2-schema.json +6 -3
- package/src/form/form-definition/index.ts +2 -1
- package/src/form/form-definition/types.ts +2 -1
- package/src/form/form-editor/index.ts +4 -0
- package/src/form/form-editor/preview/controller/summary-page-controller.js +19 -11
- package/src/form/form-editor/preview/payment.js +18 -2
- package/src/form/form-editor/types.ts +10 -0
|
@@ -100,11 +100,14 @@
|
|
|
100
100
|
"default": false,
|
|
101
101
|
"title": "Show Reference Number",
|
|
102
102
|
"description": "The show reference number value."
|
|
103
|
+
},
|
|
104
|
+
"disableUserFeedback": {
|
|
105
|
+
"type": "boolean",
|
|
106
|
+
"default": false,
|
|
107
|
+
"title": "Disable User Feedback",
|
|
108
|
+
"description": "The disable user feedback value."
|
|
103
109
|
}
|
|
104
110
|
},
|
|
105
|
-
"required": [
|
|
106
|
-
"showReferenceNumber"
|
|
107
|
-
],
|
|
108
111
|
"additionalProperties": false,
|
|
109
112
|
"title": "Options"
|
|
110
113
|
},
|
|
@@ -1062,7 +1062,8 @@ const phaseBannerSchema = Joi.object<PhaseBanner>()
|
|
|
1062
1062
|
})
|
|
1063
1063
|
|
|
1064
1064
|
const optionsSchema = Joi.object({
|
|
1065
|
-
showReferenceNumber: Joi.boolean().default(false)
|
|
1065
|
+
showReferenceNumber: Joi.boolean().default(false),
|
|
1066
|
+
disableUserFeedback: Joi.boolean().default(false)
|
|
1066
1067
|
}).description('Options for the form')
|
|
1067
1068
|
|
|
1068
1069
|
const outputSchema = Joi.object<FormDefinition['output']>()
|
|
@@ -312,6 +312,10 @@ export const enableReferenceNumberSchema = Joi.boolean()
|
|
|
312
312
|
.valid(true)
|
|
313
313
|
.description('Whether reference number should be enabled')
|
|
314
314
|
|
|
315
|
+
export const disableUserFeedbackSchema = Joi.boolean()
|
|
316
|
+
.valid(true)
|
|
317
|
+
.description('Whether user feedback should be disabled')
|
|
318
|
+
|
|
315
319
|
export const minSchema = Joi.number()
|
|
316
320
|
.empty('')
|
|
317
321
|
.integer()
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ComponentType } from '~/src/components/enums.js'
|
|
1
2
|
import { hasFormField } from '~/src/components/helpers.js'
|
|
2
3
|
import { HIGHLIGHT_CLASS } from '~/src/form/form-editor/preview/constants.js'
|
|
3
4
|
import { PreviewPageControllerBase } from '~/src/form/form-editor/preview/controller/page-controller-base.js'
|
|
@@ -79,18 +80,25 @@ export class SummaryPageController extends PreviewPageControllerBase {
|
|
|
79
80
|
* @returns {{ rows: SummaryRow[] }}
|
|
80
81
|
*/
|
|
81
82
|
get componentRows() {
|
|
82
|
-
const rows = this._componentDefs
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
83
|
+
const rows = this._componentDefs
|
|
84
|
+
// Exclude payment field as displayed in a section at the bottom
|
|
85
|
+
.filter((comp) => comp.type !== ComponentType.PaymentField)
|
|
86
|
+
.map((component) => {
|
|
87
|
+
const summaryRowHeading = component.shortDescription ?? ''
|
|
88
|
+
return {
|
|
89
|
+
key: { text: summaryRowHeading },
|
|
90
|
+
value: { text: EXAMPLE_TEXT },
|
|
91
|
+
actions: {
|
|
92
|
+
items: [
|
|
93
|
+
{
|
|
94
|
+
href: '#',
|
|
95
|
+
text: 'Change',
|
|
96
|
+
visuallyHiddenText: summaryRowHeading
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
}
|
|
91
100
|
}
|
|
92
|
-
}
|
|
93
|
-
})
|
|
101
|
+
})
|
|
94
102
|
return {
|
|
95
103
|
rows
|
|
96
104
|
}
|
|
@@ -5,6 +5,22 @@ import {
|
|
|
5
5
|
QuestionComponentElements
|
|
6
6
|
} from '~/src/form/form-editor/preview/question.js'
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Formats a currency amount with thousand separators and two decimal places
|
|
10
|
+
* @param {number} value
|
|
11
|
+
* @param {'en-GB'} [locale] - locale for formatting
|
|
12
|
+
* @param {'GBP'} [currency] - currency code
|
|
13
|
+
* @returns {string} Formatted amount (e.g., "£1,234.56")
|
|
14
|
+
*/
|
|
15
|
+
function formatCurrency(value, locale = 'en-GB', currency = 'GBP') {
|
|
16
|
+
const formatter = new Intl.NumberFormat(locale, {
|
|
17
|
+
style: 'currency',
|
|
18
|
+
currency
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
return formatter.format(value)
|
|
22
|
+
}
|
|
23
|
+
|
|
8
24
|
/**
|
|
9
25
|
* @implements {PaymentElements}
|
|
10
26
|
*/
|
|
@@ -107,8 +123,8 @@ export class PaymentQuestion extends Question {
|
|
|
107
123
|
_renderInput() {
|
|
108
124
|
const amount =
|
|
109
125
|
typeof this._paymentAmount === 'number'
|
|
110
|
-
? this._paymentAmount
|
|
111
|
-
: '0.00'
|
|
126
|
+
? formatCurrency(this._paymentAmount)
|
|
127
|
+
: '£0.00'
|
|
112
128
|
|
|
113
129
|
return {
|
|
114
130
|
...super._renderInput(),
|
|
@@ -130,6 +130,11 @@ export interface FormEditor {
|
|
|
130
130
|
*/
|
|
131
131
|
enableReferenceNumber: boolean
|
|
132
132
|
|
|
133
|
+
/**
|
|
134
|
+
* Whether user feedback should be disabled
|
|
135
|
+
*/
|
|
136
|
+
disableUserFeedback: boolean
|
|
137
|
+
|
|
133
138
|
/**
|
|
134
139
|
* The min length a field can have
|
|
135
140
|
*/
|
|
@@ -341,6 +346,11 @@ export type FormEditorInputReferenceNumberSettings = Pick<
|
|
|
341
346
|
'enableReferenceNumber'
|
|
342
347
|
>
|
|
343
348
|
|
|
349
|
+
export type FormEditorInputUserFeedbackSettings = Pick<
|
|
350
|
+
FormEditor,
|
|
351
|
+
'disableUserFeedback'
|
|
352
|
+
>
|
|
353
|
+
|
|
344
354
|
export type FormEditorInputQuestion = Pick<
|
|
345
355
|
FormEditor,
|
|
346
356
|
| 'questionType'
|