@defra/forms-engine-plugin 5.0.0-alpha.1 → 5.0.0-alpha.10
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/javascripts/application.min.js +1 -1
- package/.public/javascripts/application.min.js.map +1 -1
- package/.public/javascripts/shared.min.js +1 -1
- package/.public/javascripts/shared.min.js.map +1 -1
- package/.public/stylesheets/application.min.css.map +1 -1
- package/.server/client/javascripts/file-upload.js +5 -3
- package/.server/client/javascripts/file-upload.js.map +1 -1
- package/.server/client/javascripts/geospatial-map.js +31 -26
- package/.server/client/javascripts/geospatial-map.js.map +1 -1
- package/.server/client/javascripts/location-map.js +9 -1
- package/.server/client/javascripts/location-map.js.map +1 -1
- package/.server/client/javascripts/maps.d.ts +5 -0
- package/.server/client/javascripts/maps.js +6 -0
- package/.server/client/javascripts/maps.js.map +1 -0
- package/.server/client/javascripts/shared.d.ts +1 -3
- package/.server/client/javascripts/shared.js +1 -3
- package/.server/client/javascripts/shared.js.map +1 -1
- package/.server/client/javascripts/sssi-dataset.d.ts +18 -20
- package/.server/client/javascripts/sssi-dataset.js +37 -39
- package/.server/client/javascripts/sssi-dataset.js.map +1 -1
- package/.server/client/stylesheets/maps.scss +4 -0
- package/.server/client/stylesheets/shared.scss +1 -5
- package/.server/server/constants.d.ts +2 -0
- package/.server/server/constants.js +2 -0
- package/.server/server/constants.js.map +1 -1
- package/.server/server/plugins/engine/components/AutocompleteField.d.ts +9 -3
- package/.server/server/plugins/engine/components/AutocompleteField.js +12 -0
- package/.server/server/plugins/engine/components/AutocompleteField.js.map +1 -1
- package/.server/server/plugins/engine/components/CheckboxesField.d.ts +4 -1
- package/.server/server/plugins/engine/components/CheckboxesField.js +13 -0
- package/.server/server/plugins/engine/components/CheckboxesField.js.map +1 -1
- package/.server/server/plugins/engine/components/ComponentBase.d.ts +1 -0
- package/.server/server/plugins/engine/components/ComponentBase.js +2 -0
- package/.server/server/plugins/engine/components/ComponentBase.js.map +1 -1
- package/.server/server/plugins/engine/components/ComponentCollection.js +11 -6
- package/.server/server/plugins/engine/components/ComponentCollection.js.map +1 -1
- package/.server/server/plugins/engine/components/DatePartsField.d.ts +6 -3
- package/.server/server/plugins/engine/components/DatePartsField.js +12 -7
- package/.server/server/plugins/engine/components/DatePartsField.js.map +1 -1
- package/.server/server/plugins/engine/components/DeclarationField.d.ts +5 -2
- package/.server/server/plugins/engine/components/DeclarationField.js +6 -4
- package/.server/server/plugins/engine/components/DeclarationField.js.map +1 -1
- package/.server/server/plugins/engine/components/Details.d.ts +1 -0
- package/.server/server/plugins/engine/components/EastingNorthingField.d.ts +26 -2
- package/.server/server/plugins/engine/components/EastingNorthingField.js +93 -54
- package/.server/server/plugins/engine/components/EastingNorthingField.js.map +1 -1
- package/.server/server/plugins/engine/components/EmailAddressField.d.ts +4 -1
- package/.server/server/plugins/engine/components/EmailAddressField.js +2 -1
- package/.server/server/plugins/engine/components/EmailAddressField.js.map +1 -1
- package/.server/server/plugins/engine/components/FileUploadField.d.ts +12 -0
- package/.server/server/plugins/engine/components/FileUploadField.js +20 -2
- package/.server/server/plugins/engine/components/FileUploadField.js.map +1 -1
- package/.server/server/plugins/engine/components/FormComponent.d.ts +5 -1
- package/.server/server/plugins/engine/components/FormComponent.js +5 -2
- package/.server/server/plugins/engine/components/FormComponent.js.map +1 -1
- package/.server/server/plugins/engine/components/GeospatialField.d.ts +1 -0
- package/.server/server/plugins/engine/components/GeospatialField.js +1 -1
- package/.server/server/plugins/engine/components/GeospatialField.js.map +1 -1
- package/.server/server/plugins/engine/components/Html.d.ts +1 -0
- package/.server/server/plugins/engine/components/InsetText.d.ts +1 -0
- package/.server/server/plugins/engine/components/LatLongField.d.ts +26 -2
- package/.server/server/plugins/engine/components/LatLongField.js +85 -48
- package/.server/server/plugins/engine/components/LatLongField.js.map +1 -1
- package/.server/server/plugins/engine/components/List.d.ts +1 -0
- package/.server/server/plugins/engine/components/ListFormComponent.d.ts +1 -0
- package/.server/server/plugins/engine/components/LocationFieldBase.d.ts +8 -2
- package/.server/server/plugins/engine/components/LocationFieldBase.js +18 -5
- package/.server/server/plugins/engine/components/LocationFieldBase.js.map +1 -1
- package/.server/server/plugins/engine/components/LocationFieldHelpers.d.ts +5 -2
- package/.server/server/plugins/engine/components/LocationFieldHelpers.js +10 -11
- package/.server/server/plugins/engine/components/LocationFieldHelpers.js.map +1 -1
- package/.server/server/plugins/engine/components/Markdown.d.ts +1 -0
- package/.server/server/plugins/engine/components/Markdown.js +1 -1
- package/.server/server/plugins/engine/components/Markdown.js.map +1 -1
- package/.server/server/plugins/engine/components/MonthYearField.d.ts +5 -2
- package/.server/server/plugins/engine/components/MonthYearField.js +13 -9
- package/.server/server/plugins/engine/components/MonthYearField.js.map +1 -1
- package/.server/server/plugins/engine/components/MultilineTextField.d.ts +1 -0
- package/.server/server/plugins/engine/components/NationalGridFieldNumberField.d.ts +2 -1
- package/.server/server/plugins/engine/components/NationalGridFieldNumberField.js +4 -3
- package/.server/server/plugins/engine/components/NationalGridFieldNumberField.js.map +1 -1
- package/.server/server/plugins/engine/components/NotificationBanner.d.ts +1 -0
- package/.server/server/plugins/engine/components/NumberField.d.ts +5 -0
- package/.server/server/plugins/engine/components/NumberField.js +16 -0
- 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 +4 -3
- package/.server/server/plugins/engine/components/OsGridRefField.js.map +1 -1
- package/.server/server/plugins/engine/components/PaymentField.d.ts +3 -0
- package/.server/server/plugins/engine/components/PaymentField.js +17 -6
- package/.server/server/plugins/engine/components/PaymentField.js.map +1 -1
- package/.server/server/plugins/engine/components/SelectField.d.ts +1 -0
- package/.server/server/plugins/engine/components/SelectionControlField.d.ts +1 -0
- package/.server/server/plugins/engine/components/TelephoneNumberField.d.ts +1 -0
- package/.server/server/plugins/engine/components/UkAddressField.d.ts +1 -0
- package/.server/server/plugins/engine/components/UkAddressField.js +23 -8
- package/.server/server/plugins/engine/components/UkAddressField.js.map +1 -1
- package/.server/server/plugins/engine/components/YesNoField.d.ts +5 -2
- package/.server/server/plugins/engine/components/YesNoField.js +17 -8
- package/.server/server/plugins/engine/components/YesNoField.js.map +1 -1
- package/.server/server/plugins/engine/components/helpers/components.js +1 -2
- package/.server/server/plugins/engine/components/helpers/components.js.map +1 -1
- package/.server/server/plugins/engine/components/helpers/index.d.ts +7 -0
- package/.server/server/plugins/engine/components/helpers/index.js +13 -1
- package/.server/server/plugins/engine/components/helpers/index.js.map +1 -1
- package/.server/server/plugins/engine/components/types.d.ts +1 -0
- package/.server/server/plugins/engine/components/types.js.map +1 -1
- package/.server/server/plugins/engine/helpers.d.ts +22 -2
- package/.server/server/plugins/engine/helpers.js +44 -5
- package/.server/server/plugins/engine/helpers.js.map +1 -1
- package/.server/server/plugins/engine/i18n/buildValidationMessages.d.ts +3 -0
- package/.server/server/plugins/engine/i18n/buildValidationMessages.js +10 -7
- package/.server/server/plugins/engine/i18n/buildValidationMessages.js.map +1 -1
- package/.server/server/plugins/engine/i18n/createFormTranslator.d.ts +4 -4
- package/.server/server/plugins/engine/i18n/createFormTranslator.js +33 -4
- package/.server/server/plugins/engine/i18n/createFormTranslator.js.map +1 -1
- package/.server/server/plugins/engine/i18n/extractBaseTranslations.d.ts +1 -1
- package/.server/server/plugins/engine/i18n/extractBaseTranslations.js +9 -0
- package/.server/server/plugins/engine/i18n/extractBaseTranslations.js.map +1 -1
- package/.server/server/plugins/engine/i18n/form.d.ts +13 -0
- package/.server/server/plugins/engine/i18n/form.js +35 -0
- package/.server/server/plugins/engine/i18n/form.js.map +1 -0
- package/.server/server/plugins/engine/i18n/languages.d.ts +10 -0
- package/.server/server/plugins/engine/i18n/languages.js +19 -0
- package/.server/server/plugins/engine/i18n/languages.js.map +1 -0
- package/.server/server/plugins/engine/i18n/translations/cy.json +73 -6
- package/.server/server/plugins/engine/i18n/translations/en-GB.json +43 -4
- package/.server/server/plugins/engine/i18n/types.d.ts +2 -0
- package/.server/server/plugins/engine/i18n/types.js.map +1 -1
- package/.server/server/plugins/engine/index.d.ts +4 -0
- package/.server/server/plugins/engine/index.js +4 -0
- package/.server/server/plugins/engine/index.js.map +1 -1
- package/.server/server/plugins/engine/models/FormModel.d.ts +0 -4
- package/.server/server/plugins/engine/models/FormModel.js +9 -15
- package/.server/server/plugins/engine/models/FormModel.js.map +1 -1
- package/.server/server/plugins/engine/models/SummaryViewModel.js +9 -4
- package/.server/server/plugins/engine/models/SummaryViewModel.js.map +1 -1
- package/.server/server/plugins/engine/outputFormatters/adapter/v1.js +3 -5
- 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/v2.d.ts +2 -0
- package/.server/server/plugins/engine/outputFormatters/machine/v2.js +2 -0
- package/.server/server/plugins/engine/outputFormatters/machine/v2.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/FileUploadPageController.d.ts +1 -1
- package/.server/server/plugins/engine/pageControllers/FileUploadPageController.js +22 -9
- package/.server/server/plugins/engine/pageControllers/FileUploadPageController.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/QuestionPageController.d.ts +1 -1
- package/.server/server/plugins/engine/pageControllers/QuestionPageController.js +7 -3
- package/.server/server/plugins/engine/pageControllers/QuestionPageController.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/RepeatPageController.js +3 -4
- package/.server/server/plugins/engine/pageControllers/RepeatPageController.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/SummaryPageController.js +10 -4
- package/.server/server/plugins/engine/pageControllers/SummaryPageController.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/helpers/submission.d.ts +1 -1
- package/.server/server/plugins/engine/pageControllers/helpers/submission.js +3 -3
- package/.server/server/plugins/engine/pageControllers/helpers/submission.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/validationOptions.js +23 -2
- package/.server/server/plugins/engine/pageControllers/validationOptions.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 +1 -0
- package/.server/server/plugins/engine/types.js.map +1 -1
- package/.server/server/plugins/engine/views/components/fileuploadfield.html +1 -1
- package/.server/server/plugins/engine/views/components/multilinetextfield.html +12 -1
- package/.server/server/plugins/engine/views/components/paymentfield.html +1 -1
- package/.server/server/plugins/engine/views/components/ukaddressfield.html +1 -1
- package/.server/server/plugins/engine/views/partials/preview-banner.html +3 -1
- package/.server/server/plugins/nunjucks/filters/applyUrlParam.d.ts +9 -0
- package/.server/server/plugins/nunjucks/filters/applyUrlParam.js +17 -0
- package/.server/server/plugins/nunjucks/filters/applyUrlParam.js.map +1 -0
- package/.server/server/plugins/nunjucks/filters/applyUrlParam.test.js +17 -0
- package/.server/server/plugins/nunjucks/filters/applyUrlParam.test.js.map +1 -0
- package/.server/server/plugins/nunjucks/filters/field.d.ts +1 -1
- package/.server/server/plugins/nunjucks/filters/index.d.ts +1 -0
- package/.server/server/plugins/nunjucks/filters/index.js +1 -0
- package/.server/server/plugins/nunjucks/filters/index.js.map +1 -1
- package/.server/server/plugins/payment/helper.d.ts +11 -1
- package/.server/server/plugins/payment/helper.js +18 -2
- package/.server/server/plugins/payment/helper.js.map +1 -1
- package/.server/server/plugins/payment/helper.test.js +2 -1
- package/.server/server/plugins/payment/helper.test.js.map +1 -1
- package/.server/server/plugins/payment/service.d.ts +2 -1
- package/.server/server/plugins/payment/service.js +5 -2
- package/.server/server/plugins/payment/service.js.map +1 -1
- package/.server/server/plugins/payment/service.test.js +7 -3
- package/.server/server/plugins/payment/service.test.js.map +1 -1
- package/.server/server/plugins/payment/types.d.ts +4 -0
- package/.server/server/plugins/payment/types.js +1 -0
- package/.server/server/plugins/payment/types.js.map +1 -1
- package/.server/server/plugins/postcode-lookup/models/index.d.ts +249 -3
- package/.server/server/plugins/postcode-lookup/models/index.js +87 -33
- package/.server/server/plugins/postcode-lookup/models/index.js.map +1 -1
- package/.server/server/plugins/postcode-lookup/routes/index.d.ts +15 -1
- package/.server/server/plugins/postcode-lookup/routes/index.js +47 -15
- package/.server/server/plugins/postcode-lookup/routes/index.js.map +1 -1
- package/.server/server/plugins/postcode-lookup/routes/index.test.js +84 -0
- package/.server/server/plugins/postcode-lookup/routes/index.test.js.map +1 -0
- package/.server/server/plugins/postcode-lookup/types.d.ts +12 -0
- package/.server/server/plugins/postcode-lookup/types.js +6 -1
- 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/utils/type-utils.d.ts +1 -2
- package/.server/server/utils/type-utils.js +0 -3
- package/.server/server/utils/type-utils.js.map +1 -1
- package/package.json +8 -2
- package/src/client/javascripts/file-upload.js +10 -3
- package/src/client/javascripts/geospatial-map.js +32 -30
- package/src/client/javascripts/location-map.js +7 -1
- package/src/client/javascripts/maps.js +5 -0
- package/src/client/javascripts/shared.js +1 -3
- package/src/client/javascripts/sssi-dataset.js +39 -41
- package/src/client/stylesheets/maps.scss +4 -0
- package/src/client/stylesheets/shared.scss +1 -5
- package/src/server/constants.js +2 -0
- package/src/server/plugins/engine/components/AutocompleteField.ts +13 -0
- package/src/server/plugins/engine/components/CheckboxesField.ts +13 -1
- package/src/server/plugins/engine/components/ComponentBase.ts +2 -0
- package/src/server/plugins/engine/components/ComponentCollection.ts +16 -11
- package/src/server/plugins/engine/components/DatePartsField.ts +20 -9
- package/src/server/plugins/engine/components/DeclarationField.ts +7 -6
- package/src/server/plugins/engine/components/EastingNorthingField.ts +154 -89
- package/src/server/plugins/engine/components/EmailAddressField.ts +2 -1
- package/src/server/plugins/engine/components/FileUploadField.ts +21 -2
- package/src/server/plugins/engine/components/FormComponent.ts +6 -5
- package/src/server/plugins/engine/components/GeospatialField.ts +6 -1
- package/src/server/plugins/engine/components/LatLongField.ts +128 -58
- package/src/server/plugins/engine/components/LocationFieldBase.ts +23 -6
- package/src/server/plugins/engine/components/LocationFieldHelpers.ts +14 -11
- package/src/server/plugins/engine/components/Markdown.ts +2 -3
- package/src/server/plugins/engine/components/MonthYearField.ts +20 -15
- package/src/server/plugins/engine/components/NationalGridFieldNumberField.ts +9 -3
- package/src/server/plugins/engine/components/NumberField.ts +21 -1
- package/src/server/plugins/engine/components/OsGridRefField.ts +9 -3
- package/src/server/plugins/engine/components/PaymentField.ts +15 -5
- package/src/server/plugins/engine/components/UkAddressField.ts +30 -7
- package/src/server/plugins/engine/components/YesNoField.ts +17 -9
- package/src/server/plugins/engine/components/helpers/components.ts +1 -2
- package/src/server/plugins/engine/components/helpers/index.ts +19 -0
- package/src/server/plugins/engine/components/types.ts +1 -0
- package/src/server/plugins/engine/helpers.ts +52 -5
- package/src/server/plugins/engine/i18n/buildValidationMessages.ts +10 -7
- package/src/server/plugins/engine/i18n/createFormTranslator.ts +62 -11
- package/src/server/plugins/engine/i18n/extractBaseTranslations.ts +7 -1
- package/src/server/plugins/engine/i18n/form.ts +54 -0
- package/src/server/plugins/engine/i18n/languages.ts +19 -0
- package/src/server/plugins/engine/i18n/translations/cy.json +73 -6
- package/src/server/plugins/engine/i18n/translations/en-GB.json +43 -4
- package/src/server/plugins/engine/i18n/types.ts +2 -0
- package/src/server/plugins/engine/index.ts +7 -0
- package/src/server/plugins/engine/models/FormModel.ts +9 -15
- package/src/server/plugins/engine/models/SummaryViewModel.ts +6 -5
- package/src/server/plugins/engine/outputFormatters/adapter/v1.ts +3 -6
- package/src/server/plugins/engine/outputFormatters/human/v1.ts +2 -1
- package/src/server/plugins/engine/outputFormatters/machine/v2.ts +3 -0
- package/src/server/plugins/engine/pageControllers/FileUploadPageController.ts +18 -8
- package/src/server/plugins/engine/pageControllers/QuestionPageController.ts +10 -5
- package/src/server/plugins/engine/pageControllers/RepeatPageController.ts +2 -2
- package/src/server/plugins/engine/pageControllers/SummaryPageController.ts +15 -4
- package/src/server/plugins/engine/pageControllers/helpers/submission.ts +6 -3
- package/src/server/plugins/engine/pageControllers/validationOptions.ts +27 -2
- package/src/server/plugins/engine/types/schema.ts +1 -0
- package/src/server/plugins/engine/types.ts +1 -0
- package/src/server/plugins/engine/views/components/fileuploadfield.html +1 -1
- package/src/server/plugins/engine/views/components/multilinetextfield.html +12 -1
- package/src/server/plugins/engine/views/components/paymentfield.html +1 -1
- package/src/server/plugins/engine/views/components/ukaddressfield.html +1 -1
- package/src/server/plugins/engine/views/partials/preview-banner.html +3 -1
- package/src/server/plugins/nunjucks/filters/applyUrlParam.js +17 -0
- package/src/server/plugins/nunjucks/filters/index.js +1 -0
- package/src/server/plugins/payment/helper.js +22 -2
- package/src/server/plugins/payment/service.js +6 -2
- package/src/server/plugins/payment/types.js +1 -0
- package/src/server/plugins/postcode-lookup/models/index.js +75 -43
- package/src/server/plugins/postcode-lookup/routes/index.js +73 -16
- package/src/server/plugins/postcode-lookup/types.js +6 -1
- package/src/server/plugins/postcode-lookup/views/postcode-lookup-details.html +3 -3
- package/src/server/utils/type-utils.ts +1 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/server/plugins/payment/types.js"],"sourcesContent":["/**\n * @typedef {object} PaymentResponseState\n * @property {'created' | 'started' | 'submitted' | 'capturable' | 'success' | 'failed' | 'cancelled' | 'error'} status - Current status of the payment\n * @property {boolean} finished - Whether the payment process has completed\n * @property {string} [message] - Human-readable message about the payment state\n * @property {string} [code] - Error or status code for the payment state\n */\n\n/**\n * @typedef {object} PaymentLink\n * @property {string} href - URL of the linked resource\n * @property {string} method - HTTP method to use for the link\n */\n\n/**\n * @typedef {object} CreatePaymentRequest\n * @property {number} amount - Payment amount in pence\n * @property {string} reference - Unique reference for the payment\n * @property {string} description - Human-readable description of the payment\n * @property {string} return_url - URL to redirect the user to after payment\n * @property {boolean} [delayed_capture] - Whether to delay capturing the payment\n * @property {{ formId: string, slug: string }} [metadata] - Additional metadata for the payment\n * @property {string} [email] - Email to prepopulate on GOV.UK Pay (max 254 chars)\n */\n\n/**\n * @typedef {object} CreatePaymentResponse\n * @property {string} payment_id - Unique identifier for the created payment\n * @property {PaymentResponseState} state - Current state of the payment\n * @property {{ next_url: PaymentLink }} _links - HATEOAS links for the payment\n */\n\n/**\n * Base response from GOV.UK Pay GET /v1/payments/{PAYMENT_ID} endpoint\n * @typedef {object} GetPaymentResponseBase\n * @property {PaymentResponseState} state - Current state of the payment\n * @property {{ self: PaymentLink, next_url?: PaymentLink }} _links - HATEOAS links for the payment\n * @property {string} [email] - The paying user's email address\n */\n\n/**\n * Response from GOV.UK Pay GET /v1/payments/{PAYMENT_ID} endpoint - not underscore in property name\n * @typedef {object} GetPaymentApiResponsePaymentProp\n * @property {string} payment_id - Unique identifier for the payment\n * @property {number} amount - amount of the payment\n */\n\n/**\n * Response from GOV.UK Pay GET /v1/payments/{PAYMENT_ID} endpoint\n * @typedef {GetPaymentResponseBase & GetPaymentApiResponsePaymentProp} GetPaymentApiResponse\n */\n\n/**\n * Response returned from getPaymentStatus - subtley different from GetPaymentApiResponse\n * @typedef {object} GetPaymentResponsePaymentProp\n * @property {string} paymentId - Unique identifier for the payment - note no underscore in property name\n * @property {number} amount - amount of the payment\n */\n\n/**\n * Response returned from getPaymentStatus - subtley different from GetPaymentApiResponse\n * @typedef {GetPaymentResponseBase & GetPaymentResponsePaymentProp} GetPaymentResponse\n */\n\n/**\n * Payment session data stored when dispatching to GOV.UK Pay\n * @typedef {object} PaymentSessionData\n * @property {string} uuid - unique identifier for this payment attempt\n * @property {string} formId - id of the form\n * @property {string} reference - form reference number\n * @property {number} amount - amount in pounds\n * @property {string} description - payment description\n * @property {string} paymentId - GOV.UK Pay payment ID\n * @property {string} componentName - name of the PaymentField component\n * @property {string} returnUrl - URL to redirect to after successful payment\n * @property {string} failureUrl - URL to redirect to after failed/cancelled payment\n * @property {boolean} isLivePayment - whether the payment is using live API key\n */\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/server/plugins/payment/types.js"],"sourcesContent":["/**\n * @typedef {object} PaymentResponseState\n * @property {'created' | 'started' | 'submitted' | 'capturable' | 'success' | 'failed' | 'cancelled' | 'error'} status - Current status of the payment\n * @property {boolean} finished - Whether the payment process has completed\n * @property {string} [message] - Human-readable message about the payment state\n * @property {string} [code] - Error or status code for the payment state\n */\n\n/**\n * @typedef {object} PaymentLink\n * @property {string} href - URL of the linked resource\n * @property {string} method - HTTP method to use for the link\n */\n\n/**\n * @typedef {object} CreatePaymentRequest\n * @property {number} amount - Payment amount in pence\n * @property {string} reference - Unique reference for the payment\n * @property {string} description - Human-readable description of the payment\n * @property {string} return_url - URL to redirect the user to after payment\n * @property {string} language - the desired language for translations\n * @property {boolean} [delayed_capture] - Whether to delay capturing the payment\n * @property {{ formId: string, slug: string }} [metadata] - Additional metadata for the payment\n * @property {string} [email] - Email to prepopulate on GOV.UK Pay (max 254 chars)\n */\n\n/**\n * @typedef {object} CreatePaymentResponse\n * @property {string} payment_id - Unique identifier for the created payment\n * @property {PaymentResponseState} state - Current state of the payment\n * @property {{ next_url: PaymentLink }} _links - HATEOAS links for the payment\n */\n\n/**\n * Base response from GOV.UK Pay GET /v1/payments/{PAYMENT_ID} endpoint\n * @typedef {object} GetPaymentResponseBase\n * @property {PaymentResponseState} state - Current state of the payment\n * @property {{ self: PaymentLink, next_url?: PaymentLink }} _links - HATEOAS links for the payment\n * @property {string} [email] - The paying user's email address\n */\n\n/**\n * Response from GOV.UK Pay GET /v1/payments/{PAYMENT_ID} endpoint - not underscore in property name\n * @typedef {object} GetPaymentApiResponsePaymentProp\n * @property {string} payment_id - Unique identifier for the payment\n * @property {number} amount - amount of the payment\n */\n\n/**\n * Response from GOV.UK Pay GET /v1/payments/{PAYMENT_ID} endpoint\n * @typedef {GetPaymentResponseBase & GetPaymentApiResponsePaymentProp} GetPaymentApiResponse\n */\n\n/**\n * Response returned from getPaymentStatus - subtley different from GetPaymentApiResponse\n * @typedef {object} GetPaymentResponsePaymentProp\n * @property {string} paymentId - Unique identifier for the payment - note no underscore in property name\n * @property {number} amount - amount of the payment\n */\n\n/**\n * Response returned from getPaymentStatus - subtley different from GetPaymentApiResponse\n * @typedef {GetPaymentResponseBase & GetPaymentResponsePaymentProp} GetPaymentResponse\n */\n\n/**\n * Payment session data stored when dispatching to GOV.UK Pay\n * @typedef {object} PaymentSessionData\n * @property {string} uuid - unique identifier for this payment attempt\n * @property {string} formId - id of the form\n * @property {string} reference - form reference number\n * @property {number} amount - amount in pounds\n * @property {string} description - payment description\n * @property {string} paymentId - GOV.UK Pay payment ID\n * @property {string} componentName - name of the PaymentField component\n * @property {string} returnUrl - URL to redirect to after successful payment\n * @property {string} failureUrl - URL to redirect to after failed/cancelled payment\n * @property {boolean} isLivePayment - whether the payment is using live API key\n */\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -19,17 +19,86 @@ export function createManualPayloadSchema(language?: string): Joi.ObjectSchema<P
|
|
|
19
19
|
/**
|
|
20
20
|
* The postcode lookup details form view model
|
|
21
21
|
* @param {PostcodeLookupSessionData} data
|
|
22
|
+
* @param {Translator} translator
|
|
22
23
|
* @param {PostcodeLookupDetailsData} [payload]
|
|
23
24
|
* @param {Error} [err]
|
|
24
25
|
*/
|
|
25
|
-
export function detailsViewModel(data: PostcodeLookupSessionData, payload?: PostcodeLookupDetailsData, err?: Error): {
|
|
26
|
+
export function detailsViewModel(data: PostcodeLookupSessionData, translator: Translator, payload?: PostcodeLookupDetailsData, err?: Error): {
|
|
27
|
+
languages: {
|
|
28
|
+
name: string;
|
|
29
|
+
code: string;
|
|
30
|
+
}[];
|
|
26
31
|
step: string;
|
|
27
32
|
showTitle: boolean;
|
|
28
33
|
name: string;
|
|
29
34
|
serviceUrl: string;
|
|
30
35
|
pageTitle: string;
|
|
36
|
+
hint: "" | {
|
|
37
|
+
text: string;
|
|
38
|
+
} | undefined;
|
|
39
|
+
backLink: {
|
|
40
|
+
href: string;
|
|
41
|
+
text: string;
|
|
42
|
+
};
|
|
43
|
+
errors: {
|
|
44
|
+
text: string;
|
|
45
|
+
href: string;
|
|
46
|
+
}[] | undefined;
|
|
47
|
+
fields: {
|
|
48
|
+
postcodeQuery: {
|
|
49
|
+
id: string;
|
|
50
|
+
name: string;
|
|
51
|
+
label: {
|
|
52
|
+
text: string;
|
|
53
|
+
};
|
|
54
|
+
hint: {
|
|
55
|
+
text: string;
|
|
56
|
+
};
|
|
57
|
+
value: string | undefined;
|
|
58
|
+
errorMessage: {
|
|
59
|
+
text: string;
|
|
60
|
+
} | undefined;
|
|
61
|
+
};
|
|
62
|
+
buildingNameQuery: {
|
|
63
|
+
id: string;
|
|
64
|
+
name: string;
|
|
65
|
+
label: {
|
|
66
|
+
text: string;
|
|
67
|
+
};
|
|
68
|
+
hint: {
|
|
69
|
+
text: string;
|
|
70
|
+
};
|
|
71
|
+
value: string | undefined;
|
|
72
|
+
errorMessage: {
|
|
73
|
+
text: string;
|
|
74
|
+
} | undefined;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
buttons: {
|
|
78
|
+
continueButton: {
|
|
79
|
+
text: string;
|
|
80
|
+
classes: string;
|
|
81
|
+
};
|
|
82
|
+
manualLink: {
|
|
83
|
+
text: string;
|
|
84
|
+
href: string;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
t: (key: string, opts?: Record<string, unknown>) => string;
|
|
88
|
+
language: string;
|
|
89
|
+
} | {
|
|
90
|
+
languages?: undefined;
|
|
91
|
+
step: string;
|
|
92
|
+
showTitle: boolean;
|
|
93
|
+
name: string;
|
|
94
|
+
serviceUrl: string;
|
|
95
|
+
pageTitle: string;
|
|
96
|
+
hint: "" | {
|
|
97
|
+
text: string;
|
|
98
|
+
} | undefined;
|
|
31
99
|
backLink: {
|
|
32
100
|
href: string;
|
|
101
|
+
text: string;
|
|
33
102
|
};
|
|
34
103
|
errors: {
|
|
35
104
|
text: string;
|
|
@@ -75,17 +144,93 @@ export function detailsViewModel(data: PostcodeLookupSessionData, payload?: Post
|
|
|
75
144
|
href: string;
|
|
76
145
|
};
|
|
77
146
|
};
|
|
147
|
+
t: (key: string, opts?: Record<string, unknown>) => string;
|
|
148
|
+
language: string;
|
|
78
149
|
};
|
|
79
150
|
/**
|
|
80
151
|
* The postcode lookup select form view model
|
|
81
152
|
* @param {{ session: PostcodeLookupSessionData, apiKey: string }} data
|
|
153
|
+
* @param {Translator} translator
|
|
82
154
|
* @param {PostcodeLookupSelectPayload} [payload]
|
|
83
155
|
* @param {Error} [err]
|
|
84
156
|
*/
|
|
85
157
|
export function selectViewModel(data: {
|
|
86
158
|
session: PostcodeLookupSessionData;
|
|
87
159
|
apiKey: string;
|
|
88
|
-
}, payload?: PostcodeLookupSelectPayload, err?: Error): Promise<{
|
|
160
|
+
}, translator: Translator, payload?: PostcodeLookupSelectPayload, err?: Error): Promise<{
|
|
161
|
+
languages: {
|
|
162
|
+
name: string;
|
|
163
|
+
code: string;
|
|
164
|
+
}[];
|
|
165
|
+
step: string;
|
|
166
|
+
showTitle: boolean;
|
|
167
|
+
name: string;
|
|
168
|
+
serviceUrl: string;
|
|
169
|
+
pageTitle: string;
|
|
170
|
+
backLink: {
|
|
171
|
+
href: string;
|
|
172
|
+
text: string;
|
|
173
|
+
};
|
|
174
|
+
errors: {
|
|
175
|
+
text: string;
|
|
176
|
+
href: string;
|
|
177
|
+
}[] | undefined;
|
|
178
|
+
searchAgainLink: {
|
|
179
|
+
text: string;
|
|
180
|
+
href: string;
|
|
181
|
+
};
|
|
182
|
+
fields: {
|
|
183
|
+
postcodeQuery: {
|
|
184
|
+
id: string;
|
|
185
|
+
name: string;
|
|
186
|
+
type: string;
|
|
187
|
+
value: string;
|
|
188
|
+
};
|
|
189
|
+
buildingNameQuery: {
|
|
190
|
+
id: string;
|
|
191
|
+
name: string;
|
|
192
|
+
type: string;
|
|
193
|
+
value: string;
|
|
194
|
+
};
|
|
195
|
+
uprn: {
|
|
196
|
+
id: string;
|
|
197
|
+
name: string;
|
|
198
|
+
label: {
|
|
199
|
+
text: string;
|
|
200
|
+
} | undefined;
|
|
201
|
+
value: string | undefined;
|
|
202
|
+
errorMessage: {
|
|
203
|
+
text: string;
|
|
204
|
+
} | undefined;
|
|
205
|
+
items: {
|
|
206
|
+
text: string;
|
|
207
|
+
value: string;
|
|
208
|
+
}[] | undefined;
|
|
209
|
+
type: string | undefined;
|
|
210
|
+
};
|
|
211
|
+
};
|
|
212
|
+
details: PostcodeLookupDetailsData;
|
|
213
|
+
addressCount: number;
|
|
214
|
+
singleAddress: Address | undefined;
|
|
215
|
+
hasAddresses: boolean;
|
|
216
|
+
hasMultipleAddresses: boolean;
|
|
217
|
+
addressesFoundText: string | undefined;
|
|
218
|
+
noAddressFoundText: string | undefined;
|
|
219
|
+
buttons: {
|
|
220
|
+
continueButton: {
|
|
221
|
+
href: string | undefined;
|
|
222
|
+
text: string;
|
|
223
|
+
classes: string;
|
|
224
|
+
};
|
|
225
|
+
manualLink: {
|
|
226
|
+
text: string;
|
|
227
|
+
href: string;
|
|
228
|
+
};
|
|
229
|
+
};
|
|
230
|
+
t: (key: string, opts?: Record<string, unknown>) => string;
|
|
231
|
+
language: string;
|
|
232
|
+
} | {
|
|
233
|
+
languages?: undefined;
|
|
89
234
|
step: string;
|
|
90
235
|
showTitle: boolean;
|
|
91
236
|
name: string;
|
|
@@ -93,6 +238,7 @@ export function selectViewModel(data: {
|
|
|
93
238
|
pageTitle: string;
|
|
94
239
|
backLink: {
|
|
95
240
|
href: string;
|
|
241
|
+
text: string;
|
|
96
242
|
};
|
|
97
243
|
errors: {
|
|
98
244
|
text: string;
|
|
@@ -150,14 +296,110 @@ export function selectViewModel(data: {
|
|
|
150
296
|
href: string;
|
|
151
297
|
};
|
|
152
298
|
};
|
|
299
|
+
t: (key: string, opts?: Record<string, unknown>) => string;
|
|
300
|
+
language: string;
|
|
153
301
|
}>;
|
|
154
302
|
/**
|
|
155
303
|
* The postcode lookup manual form view model
|
|
156
304
|
* @param {PostcodeLookupSessionData} data
|
|
305
|
+
* @param {Translator} translator
|
|
157
306
|
* @param {PostcodeLookupManualPayload} [payload]
|
|
158
307
|
* @param {Error} [err]
|
|
159
308
|
*/
|
|
160
|
-
export function manualViewModel(data: PostcodeLookupSessionData, payload?: PostcodeLookupManualPayload, err?: Error): {
|
|
309
|
+
export function manualViewModel(data: PostcodeLookupSessionData, translator: Translator, payload?: PostcodeLookupManualPayload, err?: Error): {
|
|
310
|
+
languages: {
|
|
311
|
+
name: string;
|
|
312
|
+
code: string;
|
|
313
|
+
}[];
|
|
314
|
+
step: string;
|
|
315
|
+
showTitle: boolean;
|
|
316
|
+
name: string;
|
|
317
|
+
serviceUrl: string;
|
|
318
|
+
pageTitle: string;
|
|
319
|
+
backLink: {
|
|
320
|
+
href: string;
|
|
321
|
+
text: string;
|
|
322
|
+
};
|
|
323
|
+
errors: {
|
|
324
|
+
text: string;
|
|
325
|
+
href: string;
|
|
326
|
+
}[] | undefined;
|
|
327
|
+
hint: "" | {
|
|
328
|
+
text: string;
|
|
329
|
+
} | undefined;
|
|
330
|
+
fields: {
|
|
331
|
+
addressLine1: {
|
|
332
|
+
id: string;
|
|
333
|
+
name: string;
|
|
334
|
+
label: {
|
|
335
|
+
text: string;
|
|
336
|
+
};
|
|
337
|
+
value: string | undefined;
|
|
338
|
+
errorMessage: {
|
|
339
|
+
text: string;
|
|
340
|
+
} | undefined;
|
|
341
|
+
};
|
|
342
|
+
addressLine2: {
|
|
343
|
+
id: string;
|
|
344
|
+
name: string;
|
|
345
|
+
label: {
|
|
346
|
+
text: string;
|
|
347
|
+
};
|
|
348
|
+
value: string | undefined;
|
|
349
|
+
errorMessage: {
|
|
350
|
+
text: string;
|
|
351
|
+
} | undefined;
|
|
352
|
+
};
|
|
353
|
+
town: {
|
|
354
|
+
id: string;
|
|
355
|
+
name: string;
|
|
356
|
+
label: {
|
|
357
|
+
text: string;
|
|
358
|
+
};
|
|
359
|
+
classes: string;
|
|
360
|
+
value: string | undefined;
|
|
361
|
+
errorMessage: {
|
|
362
|
+
text: string;
|
|
363
|
+
} | undefined;
|
|
364
|
+
};
|
|
365
|
+
county: {
|
|
366
|
+
id: string;
|
|
367
|
+
name: string;
|
|
368
|
+
label: {
|
|
369
|
+
text: string;
|
|
370
|
+
};
|
|
371
|
+
value: string | undefined;
|
|
372
|
+
errorMessage: {
|
|
373
|
+
text: string;
|
|
374
|
+
} | undefined;
|
|
375
|
+
};
|
|
376
|
+
postcode: {
|
|
377
|
+
id: string;
|
|
378
|
+
name: string;
|
|
379
|
+
label: {
|
|
380
|
+
text: string;
|
|
381
|
+
};
|
|
382
|
+
classes: string;
|
|
383
|
+
value: string | undefined;
|
|
384
|
+
errorMessage: {
|
|
385
|
+
text: string;
|
|
386
|
+
} | undefined;
|
|
387
|
+
};
|
|
388
|
+
};
|
|
389
|
+
buttons: {
|
|
390
|
+
continueButton: {
|
|
391
|
+
text: string;
|
|
392
|
+
classes: string;
|
|
393
|
+
};
|
|
394
|
+
detailsLink: {
|
|
395
|
+
text: string;
|
|
396
|
+
href: string;
|
|
397
|
+
};
|
|
398
|
+
};
|
|
399
|
+
t: (key: string, opts?: Record<string, unknown>) => string;
|
|
400
|
+
language: string;
|
|
401
|
+
} | {
|
|
402
|
+
languages?: undefined;
|
|
161
403
|
step: string;
|
|
162
404
|
showTitle: boolean;
|
|
163
405
|
name: string;
|
|
@@ -165,6 +407,7 @@ export function manualViewModel(data: PostcodeLookupSessionData, payload?: Postc
|
|
|
165
407
|
pageTitle: string;
|
|
166
408
|
backLink: {
|
|
167
409
|
href: string;
|
|
410
|
+
text: string;
|
|
168
411
|
};
|
|
169
412
|
errors: {
|
|
170
413
|
text: string;
|
|
@@ -242,6 +485,8 @@ export function manualViewModel(data: PostcodeLookupSessionData, payload?: Postc
|
|
|
242
485
|
href: string;
|
|
243
486
|
};
|
|
244
487
|
};
|
|
488
|
+
t: (key: string, opts?: Record<string, unknown>) => string;
|
|
489
|
+
language: string;
|
|
245
490
|
};
|
|
246
491
|
export namespace steps {
|
|
247
492
|
let details: string;
|
|
@@ -256,5 +501,6 @@ import Joi from 'joi';
|
|
|
256
501
|
import type { PostcodeLookupSelectPayload } from '../../../../server/plugins/postcode-lookup/types.js';
|
|
257
502
|
import type { PostcodeLookupManualPayload } from '../../../../server/plugins/postcode-lookup/types.js';
|
|
258
503
|
import type { PostcodeLookupSessionData } from '../../../../server/plugins/postcode-lookup/types.js';
|
|
504
|
+
import type { Translator } from '../../../../server/plugins/engine/i18n/types.js';
|
|
259
505
|
import type { PostcodeLookupDetailsData } from '../../../../server/plugins/postcode-lookup/types.js';
|
|
260
506
|
import type { Address } from '../../../../server/plugins/postcode-lookup/types.js';
|
|
@@ -13,6 +13,7 @@ const townFieldName = 'town';
|
|
|
13
13
|
const countyFieldName = 'county';
|
|
14
14
|
const postcodeFieldName = 'postcode';
|
|
15
15
|
const GOVUK_MARGIN_RIGHT_1 = 'govuk-!-margin-right-1';
|
|
16
|
+
const COMMON_BACK = 'common.back';
|
|
16
17
|
export const steps = {
|
|
17
18
|
// Step 1: Postcode/building name input
|
|
18
19
|
details: 'details',
|
|
@@ -338,56 +339,77 @@ function getHref(step) {
|
|
|
338
339
|
/**
|
|
339
340
|
* The postcode lookup details form view model
|
|
340
341
|
* @param {PostcodeLookupSessionData} data
|
|
342
|
+
* @param {Translator} translator
|
|
341
343
|
* @param {PostcodeLookupDetailsData} [payload]
|
|
342
344
|
* @param {Error} [err]
|
|
343
345
|
*/
|
|
344
|
-
export function detailsViewModel(data, payload, err) {
|
|
346
|
+
export function detailsViewModel(data, translator, payload, err) {
|
|
345
347
|
const {
|
|
346
|
-
|
|
347
|
-
|
|
348
|
+
componentId,
|
|
349
|
+
componentHint,
|
|
348
350
|
sourceUrl,
|
|
349
|
-
|
|
351
|
+
languages
|
|
350
352
|
} = data.initial;
|
|
353
|
+
const {
|
|
354
|
+
t,
|
|
355
|
+
tComponent,
|
|
356
|
+
tForm
|
|
357
|
+
} = translator;
|
|
358
|
+
const component = /** @type {ComponentDef} */{
|
|
359
|
+
id: componentId
|
|
360
|
+
};
|
|
351
361
|
const backLink = {
|
|
352
|
-
href: sourceUrl
|
|
362
|
+
href: sourceUrl,
|
|
363
|
+
text: t(COMMON_BACK)
|
|
353
364
|
};
|
|
354
365
|
const {
|
|
355
366
|
errors,
|
|
356
367
|
postcodeQueryError,
|
|
357
368
|
buildingNameQueryError
|
|
358
369
|
} = buildErrors(err);
|
|
359
|
-
const fields = getDetailsFields(payload ?? data.details, postcodeQueryError, buildingNameQueryError, language);
|
|
370
|
+
const fields = getDetailsFields(payload ?? data.details, postcodeQueryError, buildingNameQueryError, translator.language);
|
|
371
|
+
const hint = componentHint && {
|
|
372
|
+
text: tComponent(component, 'hint')
|
|
373
|
+
};
|
|
360
374
|
const continueButton = {
|
|
361
|
-
text:
|
|
375
|
+
text: t('postcodeLookup.findAddress'),
|
|
362
376
|
classes: GOVUK_MARGIN_RIGHT_1
|
|
363
377
|
};
|
|
364
378
|
const manualLink = {
|
|
365
|
-
text:
|
|
379
|
+
text: t('postcodeLookup.enterManually'),
|
|
366
380
|
href: getHref(steps.manual)
|
|
367
381
|
};
|
|
382
|
+
const selector = languages?.length ? {
|
|
383
|
+
languages
|
|
384
|
+
} : {};
|
|
368
385
|
return {
|
|
369
386
|
step: steps.details,
|
|
370
387
|
showTitle: true,
|
|
371
|
-
name:
|
|
388
|
+
name: tForm('title'),
|
|
372
389
|
serviceUrl: sourceUrl,
|
|
373
|
-
pageTitle,
|
|
390
|
+
pageTitle: tComponent(component, 'title'),
|
|
391
|
+
hint,
|
|
374
392
|
backLink,
|
|
375
393
|
errors,
|
|
376
394
|
fields,
|
|
377
395
|
buttons: {
|
|
378
396
|
continueButton,
|
|
379
397
|
manualLink
|
|
380
|
-
}
|
|
398
|
+
},
|
|
399
|
+
t,
|
|
400
|
+
language: translator.language,
|
|
401
|
+
...selector
|
|
381
402
|
};
|
|
382
403
|
}
|
|
383
404
|
|
|
384
405
|
/**
|
|
385
406
|
* The postcode lookup select form view model
|
|
386
407
|
* @param {{ session: PostcodeLookupSessionData, apiKey: string }} data
|
|
408
|
+
* @param {Translator} translator
|
|
387
409
|
* @param {PostcodeLookupSelectPayload} [payload]
|
|
388
410
|
* @param {Error} [err]
|
|
389
411
|
*/
|
|
390
|
-
export async function selectViewModel(data, payload, err) {
|
|
412
|
+
export async function selectViewModel(data, translator, payload, err) {
|
|
391
413
|
const {
|
|
392
414
|
session,
|
|
393
415
|
apiKey
|
|
@@ -400,7 +422,12 @@ export async function selectViewModel(data, payload, err) {
|
|
|
400
422
|
postcodeQuery,
|
|
401
423
|
buildingNameQuery
|
|
402
424
|
} = details;
|
|
403
|
-
const
|
|
425
|
+
const {
|
|
426
|
+
language,
|
|
427
|
+
t,
|
|
428
|
+
tComponent,
|
|
429
|
+
tForm
|
|
430
|
+
} = translator;
|
|
404
431
|
const {
|
|
405
432
|
hasAddresses,
|
|
406
433
|
hasMultipleAddresses,
|
|
@@ -408,39 +435,45 @@ export async function selectViewModel(data, payload, err) {
|
|
|
408
435
|
addresses,
|
|
409
436
|
addressCount
|
|
410
437
|
} = await getAddresses(postcodeQuery, buildingNameQuery, apiKey);
|
|
411
|
-
const title = hasAddresses ?
|
|
438
|
+
const title = hasAddresses ? tComponent(/** @type {ComponentDef} */{
|
|
439
|
+
id: initial.componentId
|
|
440
|
+
}, 'title') : t('postcodeLookup.noAddressFoundTitle');
|
|
412
441
|
const formPath = initial.sourceUrl;
|
|
413
442
|
const href = getHref();
|
|
414
443
|
const backLink = {
|
|
415
|
-
href
|
|
444
|
+
href,
|
|
445
|
+
text: t(COMMON_BACK)
|
|
416
446
|
};
|
|
417
447
|
const {
|
|
418
448
|
errors,
|
|
419
449
|
uprnError
|
|
420
450
|
} = buildErrors(err);
|
|
421
451
|
const fields = getSelectFields(details, hasMultipleAddresses, singleAddress, payload, uprnError, addresses, language);
|
|
422
|
-
const searchAgainText =
|
|
452
|
+
const searchAgainText = t('postcodeLookup.searchAgain');
|
|
423
453
|
const searchAgainLink = {
|
|
424
454
|
text: searchAgainText,
|
|
425
455
|
href
|
|
426
456
|
};
|
|
427
457
|
const continueButton = {
|
|
428
458
|
href: hasAddresses ? undefined : href,
|
|
429
|
-
text: hasAddresses ?
|
|
459
|
+
text: hasAddresses ? t('postcodeLookup.useThisAddress') : searchAgainText,
|
|
430
460
|
classes: GOVUK_MARGIN_RIGHT_1
|
|
431
461
|
};
|
|
432
462
|
const manualLink = {
|
|
433
|
-
text:
|
|
463
|
+
text: t('postcodeLookup.enterManually'),
|
|
434
464
|
href: `${href}?step=${steps.manual}`
|
|
435
465
|
};
|
|
436
|
-
const addressesFoundText = hasAddresses ?
|
|
466
|
+
const addressesFoundText = hasAddresses ? t('postcodeLookup.addressFound', {
|
|
437
467
|
count: addressCount
|
|
438
468
|
}) : undefined;
|
|
439
|
-
const noAddressFoundText = !hasAddresses ?
|
|
469
|
+
const noAddressFoundText = !hasAddresses ? t('postcodeLookup.noAddressFoundBody') : undefined;
|
|
470
|
+
const selector = initial.languages?.length ? {
|
|
471
|
+
languages: initial.languages
|
|
472
|
+
} : {};
|
|
440
473
|
return {
|
|
441
474
|
step: steps.select,
|
|
442
475
|
showTitle: true,
|
|
443
|
-
name: title,
|
|
476
|
+
name: tForm('title'),
|
|
444
477
|
serviceUrl: formPath,
|
|
445
478
|
pageTitle: title,
|
|
446
479
|
backLink,
|
|
@@ -457,27 +490,40 @@ export async function selectViewModel(data, payload, err) {
|
|
|
457
490
|
buttons: {
|
|
458
491
|
continueButton,
|
|
459
492
|
manualLink
|
|
460
|
-
}
|
|
493
|
+
},
|
|
494
|
+
t,
|
|
495
|
+
language,
|
|
496
|
+
...selector
|
|
461
497
|
};
|
|
462
498
|
}
|
|
463
499
|
|
|
464
500
|
/**
|
|
465
501
|
* The postcode lookup manual form view model
|
|
466
502
|
* @param {PostcodeLookupSessionData} data
|
|
503
|
+
* @param {Translator} translator
|
|
467
504
|
* @param {PostcodeLookupManualPayload} [payload]
|
|
468
505
|
* @param {Error} [err]
|
|
469
506
|
*/
|
|
470
|
-
export function manualViewModel(data, payload, err) {
|
|
507
|
+
export function manualViewModel(data, translator, payload, err) {
|
|
471
508
|
const {
|
|
472
|
-
|
|
509
|
+
componentId,
|
|
473
510
|
sourceUrl,
|
|
474
511
|
componentHint,
|
|
475
|
-
|
|
512
|
+
languages
|
|
476
513
|
} = data.initial;
|
|
477
514
|
const formPath = sourceUrl;
|
|
478
515
|
const href = getHref();
|
|
516
|
+
const {
|
|
517
|
+
t,
|
|
518
|
+
tComponent,
|
|
519
|
+
tForm
|
|
520
|
+
} = translator;
|
|
521
|
+
const component = /** @type {ComponentDef} */{
|
|
522
|
+
id: componentId
|
|
523
|
+
};
|
|
479
524
|
const backLink = {
|
|
480
|
-
href
|
|
525
|
+
href,
|
|
526
|
+
text: t(COMMON_BACK)
|
|
481
527
|
};
|
|
482
528
|
const {
|
|
483
529
|
errors,
|
|
@@ -488,23 +534,26 @@ export function manualViewModel(data, payload, err) {
|
|
|
488
534
|
postcodeError
|
|
489
535
|
} = buildErrors(err);
|
|
490
536
|
const hint = componentHint && {
|
|
491
|
-
text:
|
|
537
|
+
text: tComponent(component, 'hint')
|
|
492
538
|
};
|
|
493
|
-
const fields = getManualFields(payload, line1Error, line2Error, townError, countyError, postcodeError, language);
|
|
539
|
+
const fields = getManualFields(payload, line1Error, line2Error, townError, countyError, postcodeError, translator.language);
|
|
494
540
|
const continueButton = {
|
|
495
|
-
text:
|
|
541
|
+
text: t('postcodeLookup.useThisAddress'),
|
|
496
542
|
classes: GOVUK_MARGIN_RIGHT_1
|
|
497
543
|
};
|
|
498
544
|
const detailsLink = {
|
|
499
|
-
text:
|
|
545
|
+
text: t('postcodeLookup.findAnAddressInstead'),
|
|
500
546
|
href
|
|
501
547
|
};
|
|
548
|
+
const selector = languages?.length ? {
|
|
549
|
+
languages
|
|
550
|
+
} : {};
|
|
502
551
|
return {
|
|
503
552
|
step: steps.manual,
|
|
504
553
|
showTitle: true,
|
|
505
|
-
name:
|
|
554
|
+
name: tForm('title'),
|
|
506
555
|
serviceUrl: formPath,
|
|
507
|
-
pageTitle:
|
|
556
|
+
pageTitle: tComponent(component, 'title'),
|
|
508
557
|
backLink,
|
|
509
558
|
errors,
|
|
510
559
|
hint,
|
|
@@ -512,7 +561,10 @@ export function manualViewModel(data, payload, err) {
|
|
|
512
561
|
buttons: {
|
|
513
562
|
continueButton,
|
|
514
563
|
detailsLink
|
|
515
|
-
}
|
|
564
|
+
},
|
|
565
|
+
t,
|
|
566
|
+
language: translator.language,
|
|
567
|
+
...selector
|
|
516
568
|
};
|
|
517
569
|
}
|
|
518
570
|
|
|
@@ -520,6 +572,8 @@ export function manualViewModel(data, payload, err) {
|
|
|
520
572
|
|
|
521
573
|
/**
|
|
522
574
|
* @import { ObjectSchema, ValidationErrorItem } from 'joi'
|
|
575
|
+
* @import { ComponentDef } from '@defra/forms-model'
|
|
523
576
|
* @import { Address, PostcodeLookupDetailsData, PostcodeLookupDetailsPayload, PostcodeLookupManualPayload, PostcodeLookupSelectPayload, PostcodeLookupSessionData } from '../../../../server/plugins/postcode-lookup/types.js'
|
|
577
|
+
* @import { Translator } from '../../../../server/plugins/engine/i18n/types.js'
|
|
524
578
|
*/
|
|
525
579
|
//# sourceMappingURL=index.js.map
|