@defra/forms-engine-plugin 4.23.0 → 5.0.0-alpha.1
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/.public/assets-manifest.json +3 -5
- package/.public/javascripts/im-core.min.js +2 -0
- package/.public/javascripts/im-core.min.js.map +1 -0
- package/.public/javascripts/shared.min.js +1 -1
- package/.public/javascripts/shared.min.js.map +1 -1
- package/.public/javascripts/vendor/@defra.min.js +1 -1
- package/.public/javascripts/vendor/@defra.min.js.map +1 -1
- package/.public/stylesheets/application.min.css +1 -1
- package/.public/stylesheets/application.min.css.map +1 -1
- package/.server/client/javascripts/geospatial-map.js +8 -6
- package/.server/client/javascripts/geospatial-map.js.map +1 -1
- package/.server/client/javascripts/location-map.js +8 -1
- package/.server/client/javascripts/location-map.js.map +1 -1
- package/.server/client/javascripts/map.d.ts +6 -0
- package/.server/client/javascripts/map.js +10 -0
- package/.server/client/javascripts/map.js.map +1 -1
- package/.server/client/javascripts/sssi-dataset.d.ts +34 -0
- package/.server/client/javascripts/sssi-dataset.js +101 -0
- package/.server/client/javascripts/sssi-dataset.js.map +1 -0
- package/.server/client/stylesheets/shared.scss +0 -2
- package/.server/server/forms/register-as-a-unicorn-breeder.yaml +0 -14
- package/.server/server/forms/simple-form.yaml +106 -3
- package/.server/server/plugins/engine/components/AutocompleteField.d.ts +11 -11
- package/.server/server/plugins/engine/components/AutocompleteField.js +2 -2
- package/.server/server/plugins/engine/components/AutocompleteField.js.map +1 -1
- package/.server/server/plugins/engine/components/CheckboxesField.d.ts +3 -2
- package/.server/server/plugins/engine/components/CheckboxesField.js +4 -9
- package/.server/server/plugins/engine/components/CheckboxesField.js.map +1 -1
- package/.server/server/plugins/engine/components/ComponentCollection.d.ts +8 -7
- package/.server/server/plugins/engine/components/ComponentCollection.js +106 -51
- package/.server/server/plugins/engine/components/ComponentCollection.js.map +1 -1
- package/.server/server/plugins/engine/components/DatePartsField.d.ts +8 -6
- package/.server/server/plugins/engine/components/DatePartsField.js +27 -9
- package/.server/server/plugins/engine/components/DatePartsField.js.map +1 -1
- package/.server/server/plugins/engine/components/DeclarationField.d.ts +13 -11
- package/.server/server/plugins/engine/components/DeclarationField.js +31 -9
- package/.server/server/plugins/engine/components/DeclarationField.js.map +1 -1
- package/.server/server/plugins/engine/components/EastingNorthingField.d.ts +8 -5
- package/.server/server/plugins/engine/components/EastingNorthingField.js +42 -22
- package/.server/server/plugins/engine/components/EastingNorthingField.js.map +1 -1
- package/.server/server/plugins/engine/components/EmailAddressField.d.ts +11 -14
- package/.server/server/plugins/engine/components/EmailAddressField.js +2 -2
- package/.server/server/plugins/engine/components/EmailAddressField.js.map +1 -1
- package/.server/server/plugins/engine/components/FileUploadField.d.ts +14 -12
- package/.server/server/plugins/engine/components/FileUploadField.js +22 -12
- package/.server/server/plugins/engine/components/FileUploadField.js.map +1 -1
- package/.server/server/plugins/engine/components/FormComponent.d.ts +21 -12
- package/.server/server/plugins/engine/components/FormComponent.js +33 -14
- package/.server/server/plugins/engine/components/FormComponent.js.map +1 -1
- package/.server/server/plugins/engine/components/GeospatialField.d.ts +15 -12
- package/.server/server/plugins/engine/components/GeospatialField.js +21 -13
- package/.server/server/plugins/engine/components/GeospatialField.js.map +1 -1
- package/.server/server/plugins/engine/components/LatLongField.d.ts +8 -5
- package/.server/server/plugins/engine/components/LatLongField.js +32 -20
- package/.server/server/plugins/engine/components/LatLongField.js.map +1 -1
- package/.server/server/plugins/engine/components/ListFormComponent.d.ts +7 -6
- package/.server/server/plugins/engine/components/ListFormComponent.js +19 -7
- package/.server/server/plugins/engine/components/ListFormComponent.js.map +1 -1
- package/.server/server/plugins/engine/components/LocationFieldBase.d.ts +17 -16
- package/.server/server/plugins/engine/components/LocationFieldBase.js +2 -2
- package/.server/server/plugins/engine/components/LocationFieldBase.js.map +1 -1
- package/.server/server/plugins/engine/components/LocationFieldHelpers.d.ts +8 -3
- package/.server/server/plugins/engine/components/LocationFieldHelpers.js +14 -3
- package/.server/server/plugins/engine/components/LocationFieldHelpers.js.map +1 -1
- package/.server/server/plugins/engine/components/Markdown.d.ts +8 -7
- package/.server/server/plugins/engine/components/Markdown.js +5 -2
- package/.server/server/plugins/engine/components/Markdown.js.map +1 -1
- package/.server/server/plugins/engine/components/MonthYearField.d.ts +9 -7
- package/.server/server/plugins/engine/components/MonthYearField.js +26 -8
- package/.server/server/plugins/engine/components/MonthYearField.js.map +1 -1
- package/.server/server/plugins/engine/components/MultilineTextField.d.ts +10 -9
- package/.server/server/plugins/engine/components/MultilineTextField.js +2 -2
- package/.server/server/plugins/engine/components/MultilineTextField.js.map +1 -1
- package/.server/server/plugins/engine/components/NationalGridFieldNumberField.d.ts +2 -1
- package/.server/server/plugins/engine/components/NationalGridFieldNumberField.js +14 -6
- package/.server/server/plugins/engine/components/NationalGridFieldNumberField.js.map +1 -1
- package/.server/server/plugins/engine/components/NumberField.d.ts +10 -9
- package/.server/server/plugins/engine/components/NumberField.js +2 -2
- package/.server/server/plugins/engine/components/NumberField.js.map +1 -1
- package/.server/server/plugins/engine/components/OsGridRefField.d.ts +2 -1
- package/.server/server/plugins/engine/components/OsGridRefField.js +14 -6
- package/.server/server/plugins/engine/components/OsGridRefField.js.map +1 -1
- package/.server/server/plugins/engine/components/PaymentField.d.ts +12 -10
- package/.server/server/plugins/engine/components/PaymentField.js +21 -8
- package/.server/server/plugins/engine/components/PaymentField.js.map +1 -1
- package/.server/server/plugins/engine/components/SelectField.d.ts +11 -11
- package/.server/server/plugins/engine/components/SelectField.js +2 -2
- package/.server/server/plugins/engine/components/SelectField.js.map +1 -1
- package/.server/server/plugins/engine/components/SelectionControlField.d.ts +4 -4
- package/.server/server/plugins/engine/components/SelectionControlField.js +2 -2
- package/.server/server/plugins/engine/components/SelectionControlField.js.map +1 -1
- package/.server/server/plugins/engine/components/TelephoneNumberField.d.ts +10 -9
- package/.server/server/plugins/engine/components/TelephoneNumberField.js +2 -2
- package/.server/server/plugins/engine/components/TelephoneNumberField.js.map +1 -1
- package/.server/server/plugins/engine/components/UkAddressField.d.ts +12 -10
- package/.server/server/plugins/engine/components/UkAddressField.js +29 -17
- package/.server/server/plugins/engine/components/UkAddressField.js.map +1 -1
- package/.server/server/plugins/engine/components/YesNoField.d.ts +3 -0
- package/.server/server/plugins/engine/components/YesNoField.js +9 -0
- package/.server/server/plugins/engine/components/YesNoField.js.map +1 -1
- package/.server/server/plugins/engine/components/helpers/components.d.ts +3 -2
- package/.server/server/plugins/engine/components/helpers/components.js +11 -8
- package/.server/server/plugins/engine/components/helpers/components.js.map +1 -1
- package/.server/server/plugins/engine/components/types.d.ts +8 -1
- package/.server/server/plugins/engine/components/types.js.map +1 -1
- package/.server/server/plugins/engine/configureEnginePlugin.js +8 -1
- package/.server/server/plugins/engine/configureEnginePlugin.js.map +1 -1
- package/.server/server/plugins/engine/form-context.d.ts +1 -0
- package/.server/server/plugins/engine/form-context.js +4 -2
- package/.server/server/plugins/engine/form-context.js.map +1 -1
- package/.server/server/plugins/engine/helpers.d.ts +1 -1
- package/.server/server/plugins/engine/helpers.js +8 -13
- package/.server/server/plugins/engine/helpers.js.map +1 -1
- package/.server/server/plugins/engine/i18n/buildValidationMessages.d.ts +39 -0
- package/.server/server/plugins/engine/i18n/buildValidationMessages.js +50 -0
- package/.server/server/plugins/engine/i18n/buildValidationMessages.js.map +1 -0
- package/.server/server/plugins/engine/i18n/createFormTranslator.d.ts +5 -0
- package/.server/server/plugins/engine/i18n/createFormTranslator.js +18 -0
- package/.server/server/plugins/engine/i18n/createFormTranslator.js.map +1 -0
- package/.server/server/plugins/engine/i18n/createTranslator.d.ts +9 -0
- package/.server/server/plugins/engine/i18n/createTranslator.js +51 -0
- package/.server/server/plugins/engine/i18n/createTranslator.js.map +1 -0
- package/.server/server/plugins/engine/i18n/extractBaseTranslations.d.ts +5 -0
- package/.server/server/plugins/engine/i18n/extractBaseTranslations.js +57 -0
- package/.server/server/plugins/engine/i18n/extractBaseTranslations.js.map +1 -0
- package/.server/server/plugins/engine/i18n/index.d.ts +18 -0
- package/.server/server/plugins/engine/i18n/index.js +71 -0
- package/.server/server/plugins/engine/i18n/index.js.map +1 -0
- package/.server/server/plugins/engine/i18n/translations/cy.json +271 -0
- package/.server/server/plugins/engine/i18n/translations/en-GB.json +271 -0
- package/.server/server/plugins/engine/i18n/types.d.ts +41 -0
- package/.server/server/plugins/engine/i18n/types.js +2 -0
- package/.server/server/plugins/engine/i18n/types.js.map +1 -0
- package/.server/server/plugins/engine/index.js +3 -2
- package/.server/server/plugins/engine/index.js.map +1 -1
- package/.server/server/plugins/engine/models/FormModel.d.ts +9 -1
- package/.server/server/plugins/engine/models/FormModel.js +44 -18
- package/.server/server/plugins/engine/models/FormModel.js.map +1 -1
- package/.server/server/plugins/engine/models/SummaryViewModel.d.ts +5 -2
- package/.server/server/plugins/engine/models/SummaryViewModel.js +44 -18
- package/.server/server/plugins/engine/models/SummaryViewModel.js.map +1 -1
- package/.server/server/plugins/engine/options.js +2 -1
- package/.server/server/plugins/engine/options.js.map +1 -1
- package/.server/server/plugins/engine/outputFormatters/adapter/v1.js +4 -0
- package/.server/server/plugins/engine/outputFormatters/adapter/v1.js.map +1 -1
- package/.server/server/plugins/engine/outputFormatters/human/v1.js +2 -1
- package/.server/server/plugins/engine/outputFormatters/human/v1.js.map +1 -1
- package/.server/server/plugins/engine/outputFormatters/machine/v1.js +7 -6
- package/.server/server/plugins/engine/outputFormatters/machine/v1.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/FileUploadPageController.d.ts +2 -1
- package/.server/server/plugins/engine/pageControllers/FileUploadPageController.js +6 -3
- package/.server/server/plugins/engine/pageControllers/FileUploadPageController.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/PageController.d.ts +3 -1
- package/.server/server/plugins/engine/pageControllers/PageController.js +11 -1
- package/.server/server/plugins/engine/pageControllers/PageController.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/QuestionPageController.d.ts +4 -2
- package/.server/server/plugins/engine/pageControllers/QuestionPageController.js +52 -21
- package/.server/server/plugins/engine/pageControllers/QuestionPageController.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/RepeatPageController.d.ts +3 -2
- package/.server/server/plugins/engine/pageControllers/RepeatPageController.js +63 -26
- package/.server/server/plugins/engine/pageControllers/RepeatPageController.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/StartPageController.d.ts +3 -1
- package/.server/server/plugins/engine/pageControllers/StartPageController.js +2 -2
- package/.server/server/plugins/engine/pageControllers/StartPageController.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/StatusPageController.js +12 -2
- package/.server/server/plugins/engine/pageControllers/StatusPageController.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/SummaryPageController.d.ts +4 -3
- package/.server/server/plugins/engine/pageControllers/SummaryPageController.js +44 -28
- package/.server/server/plugins/engine/pageControllers/SummaryPageController.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/__stubs__/translator.d.ts +2 -0
- package/.server/server/plugins/engine/pageControllers/__stubs__/translator.js +24 -0
- package/.server/server/plugins/engine/pageControllers/__stubs__/translator.js.map +1 -0
- package/.server/server/plugins/engine/pageControllers/errors.d.ts +1 -1
- package/.server/server/plugins/engine/pageControllers/errors.js +3 -2
- package/.server/server/plugins/engine/pageControllers/errors.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/helpers/submission.d.ts +3 -2
- package/.server/server/plugins/engine/pageControllers/helpers/submission.js +4 -4
- package/.server/server/plugins/engine/pageControllers/helpers/submission.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/validationOptions.d.ts +7 -3
- package/.server/server/plugins/engine/pageControllers/validationOptions.js +34 -33
- package/.server/server/plugins/engine/pageControllers/validationOptions.js.map +1 -1
- package/.server/server/plugins/engine/plugin.js +2 -0
- package/.server/server/plugins/engine/plugin.js.map +1 -1
- package/.server/server/plugins/engine/routes/index.js +4 -1
- package/.server/server/plugins/engine/routes/index.js.map +1 -1
- package/.server/server/plugins/engine/routes/questions.js +5 -2
- package/.server/server/plugins/engine/routes/questions.js.map +1 -1
- package/.server/server/plugins/engine/types/index.d.ts +1 -0
- package/.server/server/plugins/engine/types/index.js.map +1 -1
- package/.server/server/plugins/engine/types/schema.js +1 -0
- package/.server/server/plugins/engine/types/schema.js.map +1 -1
- package/.server/server/plugins/engine/types.d.ts +12 -1
- package/.server/server/plugins/engine/types.js.map +1 -1
- package/.server/server/plugins/engine/views/components/_location-field-base.html +4 -2
- package/.server/server/plugins/engine/views/components/fileuploadfield.html +3 -3
- package/.server/server/plugins/engine/views/components/geospatialfield.html +4 -1
- package/.server/server/plugins/engine/views/components/nationalgridfieldnumberfield.html +1 -1
- package/.server/server/plugins/engine/views/components/osgridreffield.html +1 -1
- package/.server/server/plugins/engine/views/components/paymentfield.html +8 -8
- package/.server/server/plugins/engine/views/components/ukaddressfield.html +4 -4
- package/.server/server/plugins/engine/views/confirmation.html +4 -4
- package/.server/server/plugins/engine/views/exit.html +4 -4
- package/.server/server/plugins/engine/views/file-upload.html +3 -3
- package/.server/server/plugins/engine/views/index.html +3 -3
- package/.server/server/plugins/engine/views/item-delete.html +1 -1
- package/.server/server/plugins/engine/views/partials/form.html +3 -3
- package/.server/server/plugins/engine/views/partials/preview-banner.html +4 -4
- package/.server/server/plugins/engine/views/partials/warn-missing-notification-email.html +4 -5
- package/.server/server/plugins/engine/views/repeat-list-summary.html +4 -4
- package/.server/server/plugins/engine/views/summary.html +14 -7
- package/.server/server/plugins/map/routes/index.js +1 -1
- package/.server/server/plugins/map/routes/index.js.map +1 -1
- package/.server/server/plugins/map/types.d.ts +1 -25
- package/.server/server/plugins/map/types.js +1 -16
- package/.server/server/plugins/map/types.js.map +1 -1
- package/.server/server/plugins/nunjucks/enviroment.test.js +10 -0
- package/.server/server/plugins/nunjucks/enviroment.test.js.map +1 -1
- package/.server/server/plugins/nunjucks/environment.d.ts +8 -0
- package/.server/server/plugins/nunjucks/environment.js +13 -0
- package/.server/server/plugins/nunjucks/environment.js.map +1 -1
- package/.server/server/plugins/nunjucks/filters/answer.js +9 -1
- package/.server/server/plugins/nunjucks/filters/answer.js.map +1 -1
- package/.server/server/plugins/nunjucks/filters/answer.test.js +13 -2
- package/.server/server/plugins/nunjucks/filters/answer.test.js.map +1 -1
- package/.server/server/plugins/nunjucks/filters/field.d.ts +1 -1
- package/.server/server/plugins/postcode-lookup/models/index.d.ts +24 -19
- package/.server/server/plugins/postcode-lookup/models/index.js +83 -76
- package/.server/server/plugins/postcode-lookup/models/index.js.map +1 -1
- package/.server/server/plugins/postcode-lookup/routes/index.js +7 -13
- package/.server/server/plugins/postcode-lookup/routes/index.js.map +1 -1
- package/.server/server/plugins/postcode-lookup/types.d.ts +1 -0
- package/.server/server/plugins/postcode-lookup/types.js +1 -0
- package/.server/server/plugins/postcode-lookup/types.js.map +1 -1
- package/.server/server/plugins/postcode-lookup/views/postcode-lookup-details.html +3 -3
- package/.server/server/types.d.ts +2 -1
- package/.server/server/types.js.map +1 -1
- package/.server/server/utils/utils.d.ts +5 -0
- package/.server/server/utils/utils.js +16 -0
- package/.server/server/utils/utils.js.map +1 -1
- package/.server/typings/hapi/index.d.js.map +1 -1
- package/package.json +5 -4
- package/src/client/javascripts/geospatial-map.js +10 -6
- package/src/client/javascripts/location-map.js +11 -0
- package/src/client/javascripts/map.js +10 -0
- package/src/client/javascripts/sssi-dataset.js +106 -0
- package/src/client/stylesheets/shared.scss +0 -2
- package/src/server/forms/register-as-a-unicorn-breeder.yaml +0 -14
- package/src/server/forms/simple-form.yaml +106 -3
- package/src/server/plugins/engine/components/AutocompleteField.ts +3 -6
- package/src/server/plugins/engine/components/CheckboxesField.ts +12 -11
- package/src/server/plugins/engine/components/ComponentCollection.ts +143 -61
- package/src/server/plugins/engine/components/DatePartsField.ts +33 -11
- package/src/server/plugins/engine/components/DeclarationField.ts +37 -14
- package/src/server/plugins/engine/components/EastingNorthingField.ts +83 -22
- package/src/server/plugins/engine/components/EmailAddressField.ts +4 -7
- package/src/server/plugins/engine/components/FileUploadField.ts +28 -22
- package/src/server/plugins/engine/components/FormComponent.ts +49 -12
- package/src/server/plugins/engine/components/GeospatialField.ts +38 -21
- package/src/server/plugins/engine/components/LatLongField.ts +52 -21
- package/src/server/plugins/engine/components/ListFormComponent.ts +26 -10
- package/src/server/plugins/engine/components/LocationFieldBase.ts +5 -8
- package/src/server/plugins/engine/components/LocationFieldHelpers.ts +24 -4
- package/src/server/plugins/engine/components/Markdown.ts +7 -3
- package/src/server/plugins/engine/components/MonthYearField.ts +32 -10
- package/src/server/plugins/engine/components/MultilineTextField.ts +5 -8
- package/src/server/plugins/engine/components/NationalGridFieldNumberField.ts +25 -11
- package/src/server/plugins/engine/components/NumberField.ts +3 -4
- package/src/server/plugins/engine/components/OsGridRefField.ts +25 -9
- package/src/server/plugins/engine/components/PaymentField.ts +22 -12
- package/src/server/plugins/engine/components/SelectField.ts +3 -6
- package/src/server/plugins/engine/components/SelectionControlField.ts +7 -8
- package/src/server/plugins/engine/components/TelephoneNumberField.ts +4 -7
- package/src/server/plugins/engine/components/UkAddressField.ts +33 -18
- package/src/server/plugins/engine/components/YesNoField.ts +10 -0
- package/src/server/plugins/engine/components/helpers/components.ts +13 -6
- package/src/server/plugins/engine/components/types.ts +9 -0
- package/src/server/plugins/engine/configureEnginePlugin.ts +12 -1
- package/src/server/plugins/engine/form-context.ts +8 -2
- package/src/server/plugins/engine/helpers.ts +10 -18
- package/src/server/plugins/engine/i18n/buildValidationMessages.ts +69 -0
- package/src/server/plugins/engine/i18n/createFormTranslator.ts +33 -0
- package/src/server/plugins/engine/i18n/createTranslator.ts +61 -0
- package/src/server/plugins/engine/i18n/extractBaseTranslations.ts +61 -0
- package/src/server/plugins/engine/i18n/index.ts +80 -0
- package/src/server/plugins/engine/i18n/translations/cy.json +271 -0
- package/src/server/plugins/engine/i18n/translations/en-GB.json +271 -0
- package/src/server/plugins/engine/i18n/types.ts +62 -0
- package/src/server/plugins/engine/index.ts +4 -2
- package/src/server/plugins/engine/models/FormModel.ts +59 -23
- package/src/server/plugins/engine/models/SummaryViewModel.ts +68 -25
- package/src/server/plugins/engine/options.js +2 -1
- package/src/server/plugins/engine/outputFormatters/adapter/v1.ts +5 -0
- package/src/server/plugins/engine/outputFormatters/human/v1.ts +2 -3
- package/src/server/plugins/engine/outputFormatters/machine/v1.ts +9 -8
- package/src/server/plugins/engine/pageControllers/FileUploadPageController.ts +7 -3
- package/src/server/plugins/engine/pageControllers/PageController.ts +12 -1
- package/src/server/plugins/engine/pageControllers/QuestionPageController.ts +53 -21
- package/src/server/plugins/engine/pageControllers/RepeatPageController.ts +66 -29
- package/src/server/plugins/engine/pageControllers/StartPageController.ts +7 -2
- package/src/server/plugins/engine/pageControllers/StatusPageController.ts +10 -2
- package/src/server/plugins/engine/pageControllers/SummaryPageController.ts +48 -22
- package/src/server/plugins/engine/pageControllers/__stubs__/translator.ts +28 -0
- package/src/server/plugins/engine/pageControllers/errors.ts +4 -2
- package/src/server/plugins/engine/pageControllers/helpers/submission.ts +11 -4
- package/src/server/plugins/engine/pageControllers/validationOptions.ts +43 -53
- package/src/server/plugins/engine/plugin.ts +2 -0
- package/src/server/plugins/engine/routes/index.ts +9 -1
- package/src/server/plugins/engine/routes/questions.ts +5 -1
- package/src/server/plugins/engine/types/index.ts +5 -0
- package/src/server/plugins/engine/types/schema.ts +1 -0
- package/src/server/plugins/engine/types.ts +10 -0
- package/src/server/plugins/engine/views/components/_location-field-base.html +4 -2
- package/src/server/plugins/engine/views/components/fileuploadfield.html +3 -3
- package/src/server/plugins/engine/views/components/geospatialfield.html +4 -1
- package/src/server/plugins/engine/views/components/nationalgridfieldnumberfield.html +1 -1
- package/src/server/plugins/engine/views/components/osgridreffield.html +1 -1
- package/src/server/plugins/engine/views/components/paymentfield.html +8 -8
- package/src/server/plugins/engine/views/components/ukaddressfield.html +4 -4
- package/src/server/plugins/engine/views/confirmation.html +4 -4
- package/src/server/plugins/engine/views/exit.html +4 -4
- package/src/server/plugins/engine/views/file-upload.html +3 -3
- package/src/server/plugins/engine/views/index.html +3 -3
- package/src/server/plugins/engine/views/item-delete.html +1 -1
- package/src/server/plugins/engine/views/partials/form.html +3 -3
- package/src/server/plugins/engine/views/partials/preview-banner.html +4 -4
- package/src/server/plugins/engine/views/partials/warn-missing-notification-email.html +4 -5
- package/src/server/plugins/engine/views/repeat-list-summary.html +4 -4
- package/src/server/plugins/engine/views/summary.html +14 -7
- package/src/server/plugins/map/routes/index.js +1 -1
- package/src/server/plugins/map/types.js +1 -16
- package/src/server/plugins/nunjucks/environment.js +14 -0
- package/src/server/plugins/nunjucks/filters/answer.js +12 -1
- package/src/server/plugins/postcode-lookup/models/index.js +144 -87
- package/src/server/plugins/postcode-lookup/routes/index.js +13 -16
- package/src/server/plugins/postcode-lookup/types.js +1 -0
- package/src/server/plugins/postcode-lookup/views/postcode-lookup-details.html +3 -3
- package/src/server/types.ts +2 -0
- package/src/server/utils/utils.js +14 -0
- package/src/typings/hapi/index.d.ts +1 -0
- package/.public/javascripts/im-search-plugin.min.js +0 -2
- package/.public/javascripts/im-search-plugin.min.js.map +0 -1
- package/.public/javascripts/vendor/preact.min.js +0 -2
- package/.public/javascripts/vendor/preact.min.js.map +0 -1
- package/.server/server/plugins/engine/components/constants.d.ts +0 -1
- package/.server/server/plugins/engine/components/constants.js +0 -2
- package/.server/server/plugins/engine/components/constants.js.map +0 -1
- package/src/server/plugins/engine/components/constants.ts +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { type MarkdownComponent } from '@defra/forms-model'
|
|
1
|
+
import { type ComponentDef, type MarkdownComponent } from '@defra/forms-model'
|
|
2
2
|
|
|
3
3
|
import { ComponentBase } from './ComponentBase.js'
|
|
4
|
+
import { type RenderContext } from './types.js'
|
|
4
5
|
|
|
5
6
|
export class Markdown extends ComponentBase {
|
|
6
7
|
declare options: MarkdownComponent['options']
|
|
@@ -20,12 +21,15 @@ export class Markdown extends ComponentBase {
|
|
|
20
21
|
this.headerStartLevel = 2
|
|
21
22
|
}
|
|
22
23
|
|
|
23
|
-
getViewModel() {
|
|
24
|
+
getViewModel(context: RenderContext) {
|
|
24
25
|
const { content, viewModel } = this
|
|
25
26
|
|
|
27
|
+
const { tComponent } = context.translator
|
|
28
|
+
|
|
26
29
|
return {
|
|
27
30
|
...viewModel,
|
|
28
|
-
content
|
|
31
|
+
content:
|
|
32
|
+
tComponent(this as unknown as ComponentDef, 'content') || content,
|
|
29
33
|
headerStartLevel: this.headerStartLevel
|
|
30
34
|
}
|
|
31
35
|
}
|
|
@@ -16,16 +16,18 @@ import {
|
|
|
16
16
|
import { NumberField } from './NumberField.js'
|
|
17
17
|
import {
|
|
18
18
|
type DateInputItem,
|
|
19
|
-
type MonthYearState
|
|
19
|
+
type MonthYearState,
|
|
20
|
+
type RenderContext
|
|
20
21
|
} from './types.js'
|
|
21
22
|
import { parseStrictDate } from '../date-helper.js'
|
|
23
|
+
import { buildValidationMessages } from '../i18n/buildValidationMessages.js'
|
|
24
|
+
import { type Translator } from '../i18n/types.js'
|
|
22
25
|
import { messageTemplate } from '../pageControllers/validationOptions.js'
|
|
23
26
|
import {
|
|
24
27
|
type ErrorMessageTemplateList,
|
|
25
28
|
type FormPayload,
|
|
26
29
|
type FormState,
|
|
27
30
|
type FormStateValue,
|
|
28
|
-
type FormSubmissionError,
|
|
29
31
|
type FormSubmissionState
|
|
30
32
|
} from '../types.js'
|
|
31
33
|
import { convertToLanguageMessages } from '../../../utils/type-utils.js'
|
|
@@ -62,7 +64,7 @@ export class MonthYearField extends FormComponent {
|
|
|
62
64
|
{
|
|
63
65
|
type: ComponentType.NumberField,
|
|
64
66
|
name: `${name}__month`,
|
|
65
|
-
title: '
|
|
67
|
+
title: 'components.monthYearField.month',
|
|
66
68
|
schema: { min: 1, max: 12, precision: 0 },
|
|
67
69
|
options: {
|
|
68
70
|
required: isRequired,
|
|
@@ -74,7 +76,7 @@ export class MonthYearField extends FormComponent {
|
|
|
74
76
|
{
|
|
75
77
|
type: ComponentType.NumberField,
|
|
76
78
|
name: `${name}__year`,
|
|
77
|
-
title: '
|
|
79
|
+
title: 'components.monthYearField.year',
|
|
78
80
|
schema: { min: 1000, max: 3000, precision: 0 },
|
|
79
81
|
options: {
|
|
80
82
|
required: isRequired,
|
|
@@ -101,7 +103,10 @@ export class MonthYearField extends FormComponent {
|
|
|
101
103
|
return MonthYearField.isMonthYear(value) ? value : undefined
|
|
102
104
|
}
|
|
103
105
|
|
|
104
|
-
getDisplayStringFromFormValue(
|
|
106
|
+
getDisplayStringFromFormValue(
|
|
107
|
+
value: MonthYearState | undefined,
|
|
108
|
+
_translator: Translator
|
|
109
|
+
): string {
|
|
105
110
|
if (!value) {
|
|
106
111
|
return ''
|
|
107
112
|
}
|
|
@@ -113,10 +118,13 @@ export class MonthYearField extends FormComponent {
|
|
|
113
118
|
return `${monthString} ${value.year}`
|
|
114
119
|
}
|
|
115
120
|
|
|
116
|
-
getDisplayStringFromState(
|
|
121
|
+
getDisplayStringFromState(
|
|
122
|
+
state: FormSubmissionState,
|
|
123
|
+
translator: Translator
|
|
124
|
+
) {
|
|
117
125
|
const value = this.getFormValueFromState(state)
|
|
118
126
|
|
|
119
|
-
return this.getDisplayStringFromFormValue(value)
|
|
127
|
+
return this.getDisplayStringFromFormValue(value, translator)
|
|
120
128
|
}
|
|
121
129
|
|
|
122
130
|
getContextValueFromFormValue(
|
|
@@ -145,10 +153,24 @@ export class MonthYearField extends FormComponent {
|
|
|
145
153
|
return this.getContextValueFromFormValue(value)
|
|
146
154
|
}
|
|
147
155
|
|
|
148
|
-
|
|
156
|
+
getValidationMessagesOverride(translator: Translator) {
|
|
157
|
+
const { t } = translator
|
|
158
|
+
return convertToLanguageMessages({
|
|
159
|
+
'any.required': buildValidationMessages(t).objectMissing,
|
|
160
|
+
'number.base': buildValidationMessages(t).objectMissing,
|
|
161
|
+
'number.precision': buildValidationMessages(t).dateFormat,
|
|
162
|
+
'number.integer': buildValidationMessages(t).dateFormat,
|
|
163
|
+
'number.unsafe': buildValidationMessages(t).dateFormat,
|
|
164
|
+
'number.min': buildValidationMessages(t).dateFormat,
|
|
165
|
+
'number.max': buildValidationMessages(t).dateFormat
|
|
166
|
+
})
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
getViewModel(context: RenderContext) {
|
|
170
|
+
const { errors } = context
|
|
149
171
|
const { collection, name } = this
|
|
150
172
|
|
|
151
|
-
const viewModel = super.getViewModel(
|
|
173
|
+
const viewModel = super.getViewModel(context)
|
|
152
174
|
let { fieldset, label } = viewModel
|
|
153
175
|
|
|
154
176
|
// Check for component errors only
|
|
@@ -156,7 +178,7 @@ export class MonthYearField extends FormComponent {
|
|
|
156
178
|
|
|
157
179
|
// Use the component collection to generate the subitems
|
|
158
180
|
const items: DateInputItem[] = collection
|
|
159
|
-
.getViewModel(
|
|
181
|
+
.getViewModel(context)
|
|
160
182
|
.map(({ model }) => {
|
|
161
183
|
let { label, type, value, classes, errorMessage } = model
|
|
162
184
|
|
|
@@ -3,12 +3,9 @@ import Joi, { type CustomValidator, type StringSchema } from 'joi'
|
|
|
3
3
|
|
|
4
4
|
import { type ComponentBase } from './ComponentBase.js'
|
|
5
5
|
import { FormComponent } from './FormComponent.js'
|
|
6
|
+
import { type RenderContext } from './types.js'
|
|
6
7
|
import { messageTemplate } from '../pageControllers/validationOptions.js'
|
|
7
|
-
import {
|
|
8
|
-
type ErrorMessageTemplateList,
|
|
9
|
-
type FormPayload,
|
|
10
|
-
type FormSubmissionError
|
|
11
|
-
} from '../types.js'
|
|
8
|
+
import { type ErrorMessageTemplateList } from '../types.js'
|
|
12
9
|
|
|
13
10
|
export class MultilineTextField extends FormComponent {
|
|
14
11
|
declare options: MultilineTextFieldComponent['options']
|
|
@@ -94,10 +91,10 @@ export class MultilineTextField extends FormComponent {
|
|
|
94
91
|
this.schema = schema
|
|
95
92
|
}
|
|
96
93
|
|
|
97
|
-
getViewModel(
|
|
94
|
+
getViewModel(context: RenderContext) {
|
|
98
95
|
const { schema, options, isCharacterOrWordCount } = this
|
|
99
96
|
|
|
100
|
-
const viewModel = super.getViewModel(
|
|
97
|
+
const viewModel = super.getViewModel(context)
|
|
101
98
|
let { maxlength, maxwords, rows } = viewModel
|
|
102
99
|
|
|
103
100
|
if (schema.max) {
|
|
@@ -122,7 +119,7 @@ export class MultilineTextField extends FormComponent {
|
|
|
122
119
|
}
|
|
123
120
|
|
|
124
121
|
buildMinMaxText(min?: number, max?: number): string {
|
|
125
|
-
const minMaxError = messageTemplate.minMax
|
|
122
|
+
const minMaxError = messageTemplate.minMax
|
|
126
123
|
return minMaxError
|
|
127
124
|
.replace('{{#min}}', min ? min.toString() : '[min length]')
|
|
128
125
|
.replace('{{#max}}', max ? max.toString() : '[max length]')
|
|
@@ -2,6 +2,8 @@ import { type NationalGridFieldNumberFieldComponent } from '@defra/forms-model'
|
|
|
2
2
|
|
|
3
3
|
import { LocationFieldBase } from './LocationFieldBase.js'
|
|
4
4
|
import { createLowerFirstExpression } from './helpers/index.js'
|
|
5
|
+
import { t } from '../i18n/index.js'
|
|
6
|
+
import { type ErrorMessageTemplateList } from '../types.js'
|
|
5
7
|
|
|
6
8
|
export class NationalGridFieldNumberField extends LocationFieldBase {
|
|
7
9
|
declare options: NationalGridFieldNumberFieldComponent['options']
|
|
@@ -13,14 +15,13 @@ export class NationalGridFieldNumberField extends LocationFieldBase {
|
|
|
13
15
|
const pattern =
|
|
14
16
|
/^((([sS]|[nN])[a-hA-Hj-zJ-Z])|(([tT]|[oO])[abfglmqrvwABFGLMQRVW])|([hH][l-zL-Z])|([jJ][lmqrvwLMQRVW]))\s?([0-9]{4})\s?([0-9]{4})$/
|
|
15
17
|
|
|
16
|
-
const patternTemplate =
|
|
17
|
-
'Enter a valid National Grid field number for {{lowerFirst(#title)}} like NG 1234 5678'
|
|
18
|
-
|
|
19
18
|
return {
|
|
20
19
|
pattern,
|
|
21
|
-
patternErrorMessage: createLowerFirstExpression(
|
|
20
|
+
patternErrorMessage: createLowerFirstExpression(
|
|
21
|
+
t('components.nationalGridField.pattern', 'en-GB')
|
|
22
|
+
),
|
|
22
23
|
requiredMessage: createLowerFirstExpression(
|
|
23
|
-
'
|
|
24
|
+
t('components.nationalGridField.required', 'en-GB')
|
|
24
25
|
)
|
|
25
26
|
}
|
|
26
27
|
}
|
|
@@ -30,7 +31,7 @@ export class NationalGridFieldNumberField extends LocationFieldBase {
|
|
|
30
31
|
{
|
|
31
32
|
type: 'pattern',
|
|
32
33
|
template: createLowerFirstExpression(
|
|
33
|
-
'
|
|
34
|
+
t('components.nationalGridField.pattern', 'en-GB')
|
|
34
35
|
)
|
|
35
36
|
}
|
|
36
37
|
]
|
|
@@ -39,10 +40,23 @@ export class NationalGridFieldNumberField extends LocationFieldBase {
|
|
|
39
40
|
/**
|
|
40
41
|
* Static version of getAllPossibleErrors that doesn't require a component instance.
|
|
41
42
|
*/
|
|
42
|
-
static getAllPossibleErrors() {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
static getAllPossibleErrors(): ErrorMessageTemplateList {
|
|
44
|
+
return {
|
|
45
|
+
baseErrors: [
|
|
46
|
+
{
|
|
47
|
+
type: 'required',
|
|
48
|
+
template: createLowerFirstExpression(
|
|
49
|
+
t('components.nationalGridField.required', 'en-GB')
|
|
50
|
+
)
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
type: 'pattern',
|
|
54
|
+
template: createLowerFirstExpression(
|
|
55
|
+
t('components.nationalGridField.pattern', 'en-GB')
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
advancedSettingsErrors: []
|
|
60
|
+
}
|
|
47
61
|
}
|
|
48
62
|
}
|
|
@@ -5,13 +5,12 @@ import {
|
|
|
5
5
|
FormComponent,
|
|
6
6
|
isFormValue
|
|
7
7
|
} from './FormComponent.js'
|
|
8
|
+
import { type RenderContext } from './types.js'
|
|
8
9
|
import { messageTemplate } from '../pageControllers/validationOptions.js'
|
|
9
10
|
import {
|
|
10
11
|
type ErrorMessageTemplateList,
|
|
11
|
-
type FormPayload,
|
|
12
12
|
type FormState,
|
|
13
13
|
type FormStateValue,
|
|
14
|
-
type FormSubmissionError,
|
|
15
14
|
type FormSubmissionState
|
|
16
15
|
} from '../types.js'
|
|
17
16
|
|
|
@@ -88,10 +87,10 @@ export class NumberField extends FormComponent {
|
|
|
88
87
|
return this.isValue(value) ? value : undefined
|
|
89
88
|
}
|
|
90
89
|
|
|
91
|
-
getViewModel(
|
|
90
|
+
getViewModel(context: RenderContext) {
|
|
92
91
|
const { options, schema } = this
|
|
93
92
|
|
|
94
|
-
const viewModel = super.getViewModel(
|
|
93
|
+
const viewModel = super.getViewModel(context)
|
|
95
94
|
let { attributes, prefix, suffix, value } = viewModel
|
|
96
95
|
|
|
97
96
|
if (typeof schema.precision === 'undefined' || schema.precision <= 0) {
|
|
@@ -2,6 +2,8 @@ import { type OsGridRefFieldComponent } from '@defra/forms-model'
|
|
|
2
2
|
|
|
3
3
|
import { LocationFieldBase } from './LocationFieldBase.js'
|
|
4
4
|
import { createLowerFirstExpression } from './helpers/index.js'
|
|
5
|
+
import { t } from '../i18n/index.js'
|
|
6
|
+
import { type ErrorMessageTemplateList } from '../types.js'
|
|
5
7
|
|
|
6
8
|
export class OsGridRefField extends LocationFieldBase {
|
|
7
9
|
declare options: OsGridRefFieldComponent['options']
|
|
@@ -16,14 +18,13 @@ export class OsGridRefField extends LocationFieldBase {
|
|
|
16
18
|
const pattern =
|
|
17
19
|
/^((([sS]|[nN])[a-hA-Hj-zJ-Z])|(([tT]|[oO])[abfglmqrvwABFGLMQRVW])|([hH][l-zL-Z])|([jJ][lmqrvwLMQRVW]))\s?(([0-9]{3})\s?([0-9]{3})|([0-9]{4})\s?([0-9]{4})|([0-9]{5})\s?([0-9]{5}))$/
|
|
18
20
|
|
|
19
|
-
const patternTemplate =
|
|
20
|
-
'Enter a valid OS grid reference for {{lowerFirst(#title)}} like TQ123456'
|
|
21
|
-
|
|
22
21
|
return {
|
|
23
22
|
pattern,
|
|
24
|
-
patternErrorMessage: createLowerFirstExpression(
|
|
23
|
+
patternErrorMessage: createLowerFirstExpression(
|
|
24
|
+
t('components.osGridRefField.pattern', 'en-GB')
|
|
25
|
+
),
|
|
25
26
|
requiredMessage: createLowerFirstExpression(
|
|
26
|
-
'
|
|
27
|
+
t('components.osGridRefField.required', 'en-GB')
|
|
27
28
|
)
|
|
28
29
|
}
|
|
29
30
|
}
|
|
@@ -33,7 +34,7 @@ export class OsGridRefField extends LocationFieldBase {
|
|
|
33
34
|
{
|
|
34
35
|
type: 'pattern',
|
|
35
36
|
template: createLowerFirstExpression(
|
|
36
|
-
'
|
|
37
|
+
t('components.osGridRefField.pattern', 'en-GB')
|
|
37
38
|
)
|
|
38
39
|
}
|
|
39
40
|
]
|
|
@@ -42,8 +43,23 @@ export class OsGridRefField extends LocationFieldBase {
|
|
|
42
43
|
/**
|
|
43
44
|
* Static version of getAllPossibleErrors that doesn't require a component instance.
|
|
44
45
|
*/
|
|
45
|
-
static getAllPossibleErrors() {
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
static getAllPossibleErrors(): ErrorMessageTemplateList {
|
|
47
|
+
return {
|
|
48
|
+
baseErrors: [
|
|
49
|
+
{
|
|
50
|
+
type: 'required',
|
|
51
|
+
template: createLowerFirstExpression(
|
|
52
|
+
t('components.osGridRefField.required', 'en-GB')
|
|
53
|
+
)
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
type: 'pattern',
|
|
57
|
+
template: createLowerFirstExpression(
|
|
58
|
+
t('components.osGridRefField.pattern', 'en-GB')
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
advancedSettingsErrors: []
|
|
63
|
+
}
|
|
48
64
|
}
|
|
49
65
|
}
|
|
@@ -11,10 +11,12 @@ import { logger } from '../../../common/helpers/logging/logger.js'
|
|
|
11
11
|
import { COMPONENT_STATE_ERROR } from '../../../constants.js'
|
|
12
12
|
import { FormComponent } from './FormComponent.js'
|
|
13
13
|
import { type PaymentState } from './PaymentField.types.js'
|
|
14
|
+
import { type RenderContext } from './types.js'
|
|
14
15
|
import {
|
|
15
16
|
createError,
|
|
16
17
|
getPluginOptions
|
|
17
18
|
} from '../helpers.js'
|
|
19
|
+
import { type Translator } from '../i18n/types.js'
|
|
18
20
|
import { type FormModel } from '../models/index.js'
|
|
19
21
|
import {
|
|
20
22
|
PaymentErrorTypes,
|
|
@@ -28,10 +30,8 @@ import {
|
|
|
28
30
|
} from '../types/index.js'
|
|
29
31
|
import {
|
|
30
32
|
type ErrorMessageTemplateList,
|
|
31
|
-
type FormPayload,
|
|
32
33
|
type FormState,
|
|
33
34
|
type FormStateValue,
|
|
34
|
-
type FormSubmissionError,
|
|
35
35
|
type FormSubmissionState,
|
|
36
36
|
type PaymentExternalArgs
|
|
37
37
|
} from '../types.js'
|
|
@@ -39,6 +39,7 @@ import {
|
|
|
39
39
|
createPaymentService,
|
|
40
40
|
formatCurrency
|
|
41
41
|
} from '../../payment/helper.js'
|
|
42
|
+
import { resolveLanguage } from '../../../utils/utils.js'
|
|
42
43
|
|
|
43
44
|
export class PaymentField extends FormComponent {
|
|
44
45
|
declare options: PaymentFieldComponent['options']
|
|
@@ -93,7 +94,10 @@ export class PaymentField extends FormComponent {
|
|
|
93
94
|
return this.isPaymentState(value) ? value : undefined
|
|
94
95
|
}
|
|
95
96
|
|
|
96
|
-
getDisplayStringFromState(
|
|
97
|
+
getDisplayStringFromState(
|
|
98
|
+
state: FormSubmissionState,
|
|
99
|
+
_translator: Translator
|
|
100
|
+
): string {
|
|
97
101
|
const value = this.getPaymentStateFromState(state)
|
|
98
102
|
|
|
99
103
|
if (!value) {
|
|
@@ -103,8 +107,9 @@ export class PaymentField extends FormComponent {
|
|
|
103
107
|
return `${formatCurrency(value.amount)} - ${value.description}`
|
|
104
108
|
}
|
|
105
109
|
|
|
106
|
-
getViewModel(
|
|
107
|
-
const
|
|
110
|
+
getViewModel(context: RenderContext) {
|
|
111
|
+
const { payload } = context
|
|
112
|
+
const viewModel = super.getViewModel(context)
|
|
108
113
|
|
|
109
114
|
// Payload is pre-populated from state if a payment has already been made
|
|
110
115
|
const paymentState = this.isPaymentState(payload[this.name] as unknown)
|
|
@@ -229,7 +234,8 @@ export class PaymentField extends FormComponent {
|
|
|
229
234
|
): Promise<unknown> {
|
|
230
235
|
const { options, name: componentName } = args.component
|
|
231
236
|
const { model } = args.controller
|
|
232
|
-
|
|
237
|
+
const language = resolveLanguage(request)
|
|
238
|
+
const { t } = model.createTranslator(language)
|
|
233
239
|
const state = await args.controller.getState(request)
|
|
234
240
|
const { baseUrl } = getPluginOptions(request.server)
|
|
235
241
|
const summaryUrl = `${baseUrl}/${model.basePath}/summary`
|
|
@@ -287,8 +293,8 @@ export class PaymentField extends FormComponent {
|
|
|
287
293
|
|
|
288
294
|
if (!payment) {
|
|
289
295
|
const message = isLivePayment
|
|
290
|
-
? '
|
|
291
|
-
: '
|
|
296
|
+
? t('components.paymentField.cannotTakePayment')
|
|
297
|
+
: t('components.paymentField.testApiKey')
|
|
292
298
|
const govukError = createError(componentName, message)
|
|
293
299
|
request.yar.flash(COMPONENT_STATE_ERROR, govukError, true)
|
|
294
300
|
return h
|
|
@@ -323,6 +329,9 @@ export class PaymentField extends FormComponent {
|
|
|
323
329
|
_metadata: FormMetadata,
|
|
324
330
|
context: FormContext
|
|
325
331
|
): Promise<void> {
|
|
332
|
+
const language = resolveLanguage(request)
|
|
333
|
+
const { t } = this.model.createTranslator(language)
|
|
334
|
+
|
|
326
335
|
// Zero-amount bypass — no capture needed
|
|
327
336
|
const resolvedAmount = PaymentField.resolveAmount(
|
|
328
337
|
this.options,
|
|
@@ -338,7 +347,7 @@ export class PaymentField extends FormComponent {
|
|
|
338
347
|
if (!paymentState) {
|
|
339
348
|
throw new PaymentPreAuthError(
|
|
340
349
|
this,
|
|
341
|
-
'
|
|
350
|
+
t('components.paymentField.completePayment'),
|
|
342
351
|
true,
|
|
343
352
|
PaymentErrorTypes.PaymentIncomplete
|
|
344
353
|
)
|
|
@@ -367,7 +376,8 @@ export class PaymentField extends FormComponent {
|
|
|
367
376
|
PaymentSubmissionError.checkPaymentAmount(
|
|
368
377
|
status.amount,
|
|
369
378
|
resolvedAmount,
|
|
370
|
-
this
|
|
379
|
+
this,
|
|
380
|
+
t
|
|
371
381
|
)
|
|
372
382
|
|
|
373
383
|
if (status.state.status === 'success') {
|
|
@@ -378,7 +388,7 @@ export class PaymentField extends FormComponent {
|
|
|
378
388
|
if (status.state.status !== 'capturable') {
|
|
379
389
|
throw new PaymentPreAuthError(
|
|
380
390
|
this,
|
|
381
|
-
'
|
|
391
|
+
t('components.paymentField.paymentExpired'),
|
|
382
392
|
true,
|
|
383
393
|
PaymentErrorTypes.PaymentExpired
|
|
384
394
|
)
|
|
@@ -392,7 +402,7 @@ export class PaymentField extends FormComponent {
|
|
|
392
402
|
if (!captured) {
|
|
393
403
|
throw new PaymentPreAuthError(
|
|
394
404
|
this,
|
|
395
|
-
'
|
|
405
|
+
t('components.paymentField.submissionFailed'),
|
|
396
406
|
false
|
|
397
407
|
)
|
|
398
408
|
}
|
|
@@ -4,10 +4,7 @@ import {
|
|
|
4
4
|
} from '@defra/forms-model'
|
|
5
5
|
|
|
6
6
|
import { ListFormComponent } from './ListFormComponent.js'
|
|
7
|
-
import {
|
|
8
|
-
type FormPayload,
|
|
9
|
-
type FormSubmissionError
|
|
10
|
-
} from '../types.js'
|
|
7
|
+
import { type RenderContext } from './types.js'
|
|
11
8
|
|
|
12
9
|
export class SelectField extends ListFormComponent {
|
|
13
10
|
declare options:
|
|
@@ -33,8 +30,8 @@ export class SelectField extends ListFormComponent {
|
|
|
33
30
|
this.options = options
|
|
34
31
|
}
|
|
35
32
|
|
|
36
|
-
getViewModel(
|
|
37
|
-
const viewModel = super.getViewModel(
|
|
33
|
+
getViewModel(context: RenderContext) {
|
|
34
|
+
const viewModel = super.getViewModel(context)
|
|
38
35
|
let { items } = viewModel
|
|
39
36
|
|
|
40
37
|
items = [{ value: '' }, ...items]
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import { ListFormComponent } from './ListFormComponent.js'
|
|
2
|
-
import { type ListItem } from './types.js'
|
|
3
|
-
import { messageTemplate } from '../pageControllers/validationOptions.js'
|
|
4
2
|
import {
|
|
5
|
-
type
|
|
6
|
-
type
|
|
7
|
-
|
|
8
|
-
} from '../
|
|
3
|
+
type ListItem,
|
|
4
|
+
type RenderContext
|
|
5
|
+
} from './types.js'
|
|
6
|
+
import { messageTemplate } from '../pageControllers/validationOptions.js'
|
|
7
|
+
import { type ErrorMessageTemplateList } from '../types.js'
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* "Selection controls" are checkboxes and radios (and switches), as per Material UI nomenclature.
|
|
12
11
|
*/
|
|
13
12
|
export class SelectionControlField extends ListFormComponent {
|
|
14
|
-
getViewModel(
|
|
13
|
+
getViewModel(context: RenderContext) {
|
|
15
14
|
const { options } = this
|
|
16
15
|
|
|
17
|
-
const viewModel = super.getViewModel(
|
|
16
|
+
const viewModel = super.getViewModel(context)
|
|
18
17
|
let { fieldset, items, label } = viewModel
|
|
19
18
|
|
|
20
19
|
fieldset ??= {
|
|
@@ -7,12 +7,9 @@ import {
|
|
|
7
7
|
INVALID_ERROR_CODE,
|
|
8
8
|
joi
|
|
9
9
|
} from './helpers/telephone.js'
|
|
10
|
+
import { type RenderContext } from './types.js'
|
|
10
11
|
import { messageTemplate } from '../pageControllers/validationOptions.js'
|
|
11
|
-
import {
|
|
12
|
-
type ErrorMessageTemplateList,
|
|
13
|
-
type FormPayload,
|
|
14
|
-
type FormSubmissionError
|
|
15
|
-
} from '../types.js'
|
|
12
|
+
import { type ErrorMessageTemplateList } from '../types.js'
|
|
16
13
|
|
|
17
14
|
export class TelephoneNumberField extends FormComponent {
|
|
18
15
|
declare options: TelephoneNumberFieldComponent['options']
|
|
@@ -59,8 +56,8 @@ export class TelephoneNumberField extends FormComponent {
|
|
|
59
56
|
this.options = options
|
|
60
57
|
}
|
|
61
58
|
|
|
62
|
-
getViewModel(
|
|
63
|
-
const viewModel = super.getViewModel(
|
|
59
|
+
getViewModel(context: RenderContext) {
|
|
60
|
+
const viewModel = super.getViewModel(context)
|
|
64
61
|
const { attributes } = viewModel
|
|
65
62
|
|
|
66
63
|
attributes.autocomplete = 'tel'
|