@defra/forms-engine-plugin 5.0.0-alpha.3 → 5.0.0-alpha.30
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/37c964ca545c240f010a.mjs +2 -0
- package/.public/37c964ca545c240f010a.mjs.LICENSE.txt +4 -0
- package/.public/assets-manifest.json +3 -0
- package/.public/javascripts/application.min.js +1 -1
- package/.public/javascripts/application.min.js.LICENSE.txt +7 -0
- package/.public/javascripts/application.min.js.map +1 -1
- package/.public/javascripts/shared.min.js +1 -1
- package/.public/javascripts/shared.min.js.LICENSE.txt +9 -0
- 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/javascripts/vendor/maplibre-gl.min.js +1 -1
- package/.public/javascripts/vendor/maplibre-gl.min.js.LICENSE.txt +3 -3
- package/.public/javascripts/vendor/maplibre-gl.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/file-upload.js +6 -3
- package/.server/client/javascripts/file-upload.js.map +1 -1
- package/.server/client/javascripts/geospatial-map.d.ts +159 -5
- package/.server/client/javascripts/geospatial-map.js +161 -81
- package/.server/client/javascripts/geospatial-map.js.map +1 -1
- package/.server/client/javascripts/geospatial-map.test.js +152 -0
- package/.server/client/javascripts/geospatial-map.test.js.map +1 -0
- package/.server/client/javascripts/govuk.js +2 -1
- package/.server/client/javascripts/govuk.js.map +1 -1
- package/.server/client/javascripts/location-map.d.ts +44 -0
- package/.server/client/javascripts/location-map.js +55 -6
- package/.server/client/javascripts/location-map.js.map +1 -1
- package/.server/client/javascripts/map-constants.d.ts +3 -0
- package/.server/client/javascripts/map-constants.js +4 -0
- package/.server/client/javascripts/map-constants.js.map +1 -0
- package/.server/client/javascripts/map.d.ts +17 -4
- package/.server/client/javascripts/map.js +59 -6
- package/.server/client/javascripts/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 -4
- package/.server/client/javascripts/shared.js +1 -4
- 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/forms/components.json +8 -0
- package/.server/server/forms/register-as-a-unicorn-breeder.yaml +4 -0
- package/.server/server/plugins/engine/__stubs__/definitions.d.ts +29 -0
- package/.server/server/plugins/engine/__stubs__/definitions.js +125 -0
- package/.server/server/plugins/engine/__stubs__/definitions.js.map +1 -0
- package/.server/server/plugins/engine/components/AutocompleteField.d.ts +8 -3
- package/.server/server/plugins/engine/components/AutocompleteField.js +17 -0
- package/.server/server/plugins/engine/components/AutocompleteField.js.map +1 -1
- package/.server/server/plugins/engine/components/CheckboxesField.d.ts +23 -2
- package/.server/server/plugins/engine/components/CheckboxesField.js +30 -5
- package/.server/server/plugins/engine/components/CheckboxesField.js.map +1 -1
- package/.server/server/plugins/engine/components/ComponentBase.d.ts +2 -1
- 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 +12 -7
- 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 +6 -3
- 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 +33 -2
- package/.server/server/plugins/engine/components/EastingNorthingField.js +110 -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 +23 -2
- package/.server/server/plugins/engine/components/FileUploadField.js +35 -3
- 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 +23 -0
- package/.server/server/plugins/engine/components/GeospatialField.js +33 -9
- 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 +32 -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 +3 -2
- package/.server/server/plugins/engine/components/ListFormComponent.js.map +1 -1
- package/.server/server/plugins/engine/components/LocationFieldBase.d.ts +8 -2
- package/.server/server/plugins/engine/components/LocationFieldBase.js +31 -7
- package/.server/server/plugins/engine/components/LocationFieldBase.js.map +1 -1
- package/.server/server/plugins/engine/components/LocationFieldHelpers.d.ts +12 -3
- package/.server/server/plugins/engine/components/LocationFieldHelpers.js +21 -13
- 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 +22 -0
- package/.server/server/plugins/engine/components/NumberField.js.map +1 -1
- package/.server/server/plugins/engine/components/OsGridRefField.d.ts +103 -1
- package/.server/server/plugins/engine/components/OsGridRefField.js +13 -3
- package/.server/server/plugins/engine/components/OsGridRefField.js.map +1 -1
- package/.server/server/plugins/engine/components/PaymentField.d.ts +2 -0
- package/.server/server/plugins/engine/components/PaymentField.js +9 -5
- 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/TrackingField.d.ts +21 -0
- package/.server/server/plugins/engine/components/TrackingField.js +46 -0
- package/.server/server/plugins/engine/components/TrackingField.js.map +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 +3 -2
- package/.server/server/plugins/engine/components/YesNoField.js +22 -8
- package/.server/server/plugins/engine/components/YesNoField.js.map +1 -1
- package/.server/server/plugins/engine/components/helpers/components.d.ts +1 -1
- package/.server/server/plugins/engine/components/helpers/components.js +6 -3
- package/.server/server/plugins/engine/components/helpers/components.js.map +1 -1
- package/.server/server/plugins/engine/components/helpers/geospatial.d.ts +8 -1
- package/.server/server/plugins/engine/components/helpers/geospatial.js +58 -17
- package/.server/server/plugins/engine/components/helpers/geospatial.js.map +1 -1
- package/.server/server/plugins/engine/components/helpers/index.d.ts +21 -1
- package/.server/server/plugins/engine/components/helpers/index.js +45 -1
- package/.server/server/plugins/engine/components/helpers/index.js.map +1 -1
- package/.server/server/plugins/engine/components/index.d.ts +1 -0
- package/.server/server/plugins/engine/components/index.js +1 -0
- package/.server/server/plugins/engine/components/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/errors.d.ts +49 -0
- package/.server/server/plugins/engine/errors.js +75 -0
- package/.server/server/plugins/engine/errors.js.map +1 -0
- package/.server/server/plugins/engine/form-availability.d.ts +3 -2
- package/.server/server/plugins/engine/form-availability.js +3 -2
- package/.server/server/plugins/engine/form-availability.js.map +1 -1
- package/.server/server/plugins/engine/form-context.js +2 -2
- package/.server/server/plugins/engine/form-context.js.map +1 -1
- package/.server/server/plugins/engine/helpers.d.ts +23 -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 +4 -1
- package/.server/server/plugins/engine/i18n/buildValidationMessages.js +31 -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 +27 -5
- 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 +176 -7
- package/.server/server/plugins/engine/i18n/translations/en-GB.json +110 -6
- 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 +35 -23
- 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/models/types.d.ts +28 -1
- package/.server/server/plugins/engine/models/types.js.map +1 -1
- package/.server/server/plugins/engine/models/unavailable-view-model.d.ts +11 -2
- package/.server/server/plugins/engine/models/unavailable-view-model.js +23 -4
- package/.server/server/plugins/engine/models/unavailable-view-model.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 +14 -6
- 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 +7 -1
- package/.server/server/plugins/engine/pageControllers/FileUploadPageController.js +56 -10
- 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 +2 -2
- 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/pages.js +2 -1
- package/.server/server/plugins/engine/pageControllers/helpers/pages.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/helpers/submission.d.ts +35 -2
- package/.server/server/plugins/engine/pageControllers/helpers/submission.js +100 -3
- package/.server/server/plugins/engine/pageControllers/helpers/submission.js.map +1 -1
- package/.server/server/plugins/engine/pageControllers/validationOptions.d.ts +1 -1
- package/.server/server/plugins/engine/pageControllers/validationOptions.js +24 -3
- package/.server/server/plugins/engine/pageControllers/validationOptions.js.map +1 -1
- package/.server/server/plugins/engine/plugin.js +3 -0
- package/.server/server/plugins/engine/plugin.js.map +1 -1
- package/.server/server/plugins/engine/referenceNumbers.d.ts +1 -0
- package/.server/server/plugins/engine/referenceNumbers.js +1 -0
- package/.server/server/plugins/engine/referenceNumbers.js.map +1 -1
- package/.server/server/plugins/engine/routes/index.js +9 -4
- package/.server/server/plugins/engine/routes/index.js.map +1 -1
- package/.server/server/plugins/engine/types/enums.d.ts +3 -3
- package/.server/server/plugins/engine/types/enums.js +5 -4
- package/.server/server/plugins/engine/types/enums.js.map +1 -1
- package/.server/server/plugins/engine/types/schema.js +15 -4
- package/.server/server/plugins/engine/types/schema.js.map +1 -1
- package/.server/server/plugins/engine/types.d.ts +24 -2
- package/.server/server/plugins/engine/types.js.map +1 -1
- package/.server/server/plugins/engine/unavailable-response.js +5 -2
- package/.server/server/plugins/engine/unavailable-response.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 +1 -1
- package/.server/server/plugins/engine/views/components/geospatialfield.html +1 -0
- package/.server/server/plugins/engine/views/components/osgridreffield.html +4 -1
- package/.server/server/plugins/engine/views/components/trackingfield.html +3 -0
- package/.server/server/plugins/engine/views/components/ukaddressfield.html +1 -1
- package/.server/server/plugins/engine/views/file-upload.html +1 -1
- package/.server/server/plugins/engine/views/summary.html +1 -0
- package/.server/server/plugins/engine/views/unavailable.html +14 -11
- package/.server/server/plugins/map/routes/index.d.ts +4 -0
- package/.server/server/plugins/map/routes/index.js +12 -4
- package/.server/server/plugins/map/routes/index.js.map +1 -1
- package/.server/server/plugins/map/routes/index.test.js +7 -0
- package/.server/server/plugins/map/routes/index.test.js.map +1 -0
- package/.server/server/plugins/map/routes/vts/README.md +38 -0
- package/.server/server/plugins/map/routes/vts/countries-5dp.geojson +4 -0
- package/.server/server/plugins/map/routes/vts/countries.geojson +10 -39283
- package/.server/server/plugins/map/types.d.ts +24 -2
- package/.server/server/plugins/map/types.js +9 -2
- package/.server/server/plugins/map/types.js.map +1 -1
- package/.server/server/plugins/nunjucks/enviroment.test.js +11 -4
- package/.server/server/plugins/nunjucks/enviroment.test.js.map +1 -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 +103 -36
- 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 +64 -18
- 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/.server/server/utils/utils.d.ts +6 -0
- package/.server/server/utils/utils.js +18 -1
- package/.server/server/utils/utils.js.map +1 -1
- package/.server/server/utils/utils.test.js +21 -1
- package/.server/server/utils/utils.test.js.map +1 -1
- package/.server/typings/geodesy/index.d.js +2 -0
- package/.server/typings/geodesy/index.d.js.map +1 -0
- package/.server/typings/hapi/index.d.js.map +1 -1
- package/package.json +24 -9
- package/src/client/javascripts/file-upload.js +11 -3
- package/src/client/javascripts/geospatial-map.js +181 -86
- package/src/client/javascripts/govuk.js +2 -0
- package/src/client/javascripts/location-map.js +62 -6
- package/src/client/javascripts/map-constants.js +3 -0
- package/src/client/javascripts/map.js +66 -9
- package/src/client/javascripts/maps.js +5 -0
- package/src/client/javascripts/shared.js +1 -4
- 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/forms/components.json +8 -0
- package/src/server/forms/register-as-a-unicorn-breeder.yaml +4 -0
- package/src/server/plugins/engine/__stubs__/definitions.ts +155 -0
- package/src/server/plugins/engine/components/AutocompleteField.ts +20 -0
- package/src/server/plugins/engine/components/CheckboxesField.ts +41 -8
- package/src/server/plugins/engine/components/ComponentBase.ts +6 -4
- package/src/server/plugins/engine/components/ComponentCollection.ts +17 -15
- package/src/server/plugins/engine/components/DatePartsField.ts +20 -9
- package/src/server/plugins/engine/components/DeclarationField.ts +10 -10
- package/src/server/plugins/engine/components/EastingNorthingField.ts +185 -89
- package/src/server/plugins/engine/components/EmailAddressField.ts +2 -1
- package/src/server/plugins/engine/components/FileUploadField.ts +46 -5
- package/src/server/plugins/engine/components/FormComponent.ts +6 -5
- package/src/server/plugins/engine/components/GeospatialField.ts +47 -9
- package/src/server/plugins/engine/components/LatLongField.ts +128 -58
- package/src/server/plugins/engine/components/ListFormComponent.ts +4 -4
- package/src/server/plugins/engine/components/LocationFieldBase.ts +41 -8
- package/src/server/plugins/engine/components/LocationFieldHelpers.ts +28 -14
- 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 +24 -0
- package/src/server/plugins/engine/components/OsGridRefField.ts +22 -3
- package/src/server/plugins/engine/components/PaymentField.ts +9 -4
- package/src/server/plugins/engine/components/TrackingField.ts +64 -0
- package/src/server/plugins/engine/components/UkAddressField.ts +30 -7
- package/src/server/plugins/engine/components/YesNoField.ts +27 -9
- package/src/server/plugins/engine/components/helpers/components.ts +8 -3
- package/src/server/plugins/engine/components/helpers/geospatial.ts +87 -24
- package/src/server/plugins/engine/components/helpers/index.ts +64 -1
- package/src/server/plugins/engine/components/index.ts +1 -0
- package/src/server/plugins/engine/components/types.ts +1 -0
- package/src/server/plugins/engine/errors.ts +78 -0
- package/src/server/plugins/engine/form-availability.ts +8 -2
- package/src/server/plugins/engine/form-context.ts +4 -2
- package/src/server/plugins/engine/helpers.ts +52 -5
- package/src/server/plugins/engine/i18n/buildValidationMessages.ts +16 -8
- package/src/server/plugins/engine/i18n/createFormTranslator.ts +43 -12
- 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 +176 -7
- package/src/server/plugins/engine/i18n/translations/en-GB.json +110 -6
- 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 +46 -23
- package/src/server/plugins/engine/models/SummaryViewModel.ts +6 -5
- package/src/server/plugins/engine/models/types.ts +31 -0
- package/src/server/plugins/engine/models/unavailable-view-model.ts +26 -5
- package/src/server/plugins/engine/options.js +2 -1
- package/src/server/plugins/engine/outputFormatters/adapter/v1.ts +18 -7
- 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 +60 -9
- package/src/server/plugins/engine/pageControllers/QuestionPageController.ts +2 -2
- 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/pages.ts +2 -1
- package/src/server/plugins/engine/pageControllers/helpers/submission.ts +143 -4
- package/src/server/plugins/engine/pageControllers/validationOptions.ts +29 -4
- package/src/server/plugins/engine/plugin.ts +6 -0
- package/src/server/plugins/engine/referenceNumbers.ts +2 -0
- package/src/server/plugins/engine/routes/index.ts +9 -3
- package/src/server/plugins/engine/types/enums.ts +4 -3
- package/src/server/plugins/engine/types/schema.ts +22 -5
- package/src/server/plugins/engine/types.ts +28 -1
- package/src/server/plugins/engine/unavailable-response.ts +6 -2
- package/src/server/plugins/engine/views/components/_location-field-base.html +4 -2
- package/src/server/plugins/engine/views/components/fileuploadfield.html +1 -1
- package/src/server/plugins/engine/views/components/geospatialfield.html +1 -0
- package/src/server/plugins/engine/views/components/osgridreffield.html +4 -1
- package/src/server/plugins/engine/views/components/trackingfield.html +3 -0
- package/src/server/plugins/engine/views/components/ukaddressfield.html +1 -1
- package/src/server/plugins/engine/views/file-upload.html +1 -1
- package/src/server/plugins/engine/views/summary.html +1 -0
- package/src/server/plugins/engine/views/unavailable.html +14 -11
- package/src/server/plugins/map/routes/index.js +29 -4
- package/src/server/plugins/map/routes/vts/README.md +38 -0
- package/src/server/plugins/map/routes/vts/countries-5dp.geojson +4 -0
- package/src/server/plugins/map/routes/vts/countries.geojson +10 -39283
- package/src/server/plugins/map/types.js +9 -2
- 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 +91 -46
- package/src/server/plugins/postcode-lookup/routes/index.js +96 -24
- 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
- package/src/server/utils/utils.js +19 -1
- package/src/typings/geodesy/index.d.ts +18 -0
- package/src/typings/hapi/index.d.ts +2 -0
|
@@ -1,25 +1,47 @@
|
|
|
1
1
|
import { yesNoListNoItemId, yesNoListYesItemId } from '@defra/forms-model';
|
|
2
|
+
import { CY } from "../../../constants.js";
|
|
2
3
|
import { createTranslator } from "./createTranslator.js";
|
|
3
4
|
import { extractBaseTranslations } from "./extractBaseTranslations.js";
|
|
4
5
|
import { createFormI18nInstance } from "./index.js";
|
|
5
|
-
export function createFormTranslator(
|
|
6
|
-
const baseTranslations = extractBaseTranslations(
|
|
6
|
+
export function createFormTranslator(metadata, definition, language) {
|
|
7
|
+
const baseTranslations = extractBaseTranslations(definition);
|
|
7
8
|
const i18nInstance = createFormI18nInstance(baseTranslations);
|
|
8
|
-
loadFormTranslations(
|
|
9
|
-
|
|
9
|
+
loadFormTranslations(definition, i18nInstance);
|
|
10
|
+
extractMetadataBaseTranslations(metadata, i18nInstance);
|
|
11
|
+
const translator = createTranslator(i18nInstance, language);
|
|
12
|
+
return translator;
|
|
10
13
|
}
|
|
11
14
|
export function loadFormTranslations(def, i18nInstance) {
|
|
15
|
+
if (!def) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
12
18
|
const formTranslations = def.metadata?.translations;
|
|
13
19
|
if (formTranslations) {
|
|
14
20
|
for (const [lng, resources] of Object.entries(formTranslations)) {
|
|
15
21
|
i18nInstance.addResourceBundle(lng, 'form', resources, true, true);
|
|
16
22
|
|
|
17
23
|
// Temporary workaround - until we develop a better solution
|
|
18
|
-
if (lng ===
|
|
24
|
+
if (lng === CY) {
|
|
19
25
|
i18nInstance.addResource(lng, 'form', `listItems.${yesNoListYesItemId}.text`, 'Ie');
|
|
20
26
|
i18nInstance.addResource(lng, 'form', `listItems.${yesNoListNoItemId}.text`, 'Nage');
|
|
21
27
|
}
|
|
22
28
|
}
|
|
23
29
|
}
|
|
24
30
|
}
|
|
31
|
+
export function extractMetadataBaseTranslations(metadata, i18nInstance) {
|
|
32
|
+
if (metadata) {
|
|
33
|
+
const translations = {
|
|
34
|
+
'form.title': metadata.title,
|
|
35
|
+
'form.contact.email.address': metadata.contact?.email?.address ?? '',
|
|
36
|
+
'form.contact.email.responseTime': metadata.contact?.email?.responseTime ?? '',
|
|
37
|
+
'form.contact.online.url': metadata.contact?.online?.url ?? '',
|
|
38
|
+
'form.contact.online.text': metadata.contact?.online?.text ?? '',
|
|
39
|
+
'form.contact.phone': metadata.contact?.phone ?? '',
|
|
40
|
+
'form.submissionGuidance': metadata.submissionGuidance ?? '',
|
|
41
|
+
'form.privacyNoticeText': metadata.privacyNoticeText ?? '',
|
|
42
|
+
'form.privacyNoticeUrl': metadata.privacyNoticeUrl ?? ''
|
|
43
|
+
};
|
|
44
|
+
i18nInstance.addResourceBundle('en-GB', 'form', translations, true, true);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
25
47
|
//# sourceMappingURL=createFormTranslator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createFormTranslator.js","names":["yesNoListNoItemId","yesNoListYesItemId","createTranslator","extractBaseTranslations","createFormI18nInstance","createFormTranslator","
|
|
1
|
+
{"version":3,"file":"createFormTranslator.js","names":["yesNoListNoItemId","yesNoListYesItemId","CY","createTranslator","extractBaseTranslations","createFormI18nInstance","createFormTranslator","metadata","definition","language","baseTranslations","i18nInstance","loadFormTranslations","extractMetadataBaseTranslations","translator","def","formTranslations","translations","lng","resources","Object","entries","addResourceBundle","addResource","title","contact","email","address","responseTime","online","url","text","phone","submissionGuidance","privacyNoticeText","privacyNoticeUrl"],"sources":["../../../../../src/server/plugins/engine/i18n/createFormTranslator.ts"],"sourcesContent":["import {\n yesNoListNoItemId,\n yesNoListYesItemId,\n type FormDefinition,\n type FormMetadata\n} from '@defra/forms-model'\nimport { type i18n } from 'i18next'\n\nimport { CY } from '~/src/server/constants.js'\nimport { createTranslator } from '~/src/server/plugins/engine/i18n/createTranslator.js'\nimport { extractBaseTranslations } from '~/src/server/plugins/engine/i18n/extractBaseTranslations.js'\nimport { createFormI18nInstance } from '~/src/server/plugins/engine/i18n/index.js'\nimport { type FormDefinitionTranslations } from '~/src/server/plugins/engine/i18n/types.js'\n\nexport function createFormTranslator(\n metadata: FormMetadata,\n definition: FormDefinition | undefined,\n language: string\n) {\n const baseTranslations = extractBaseTranslations(definition)\n const i18nInstance = createFormI18nInstance(baseTranslations)\n loadFormTranslations(definition, i18nInstance)\n extractMetadataBaseTranslations(metadata, i18nInstance)\n\n const translator = createTranslator(i18nInstance, language)\n\n return translator\n}\n\nexport function loadFormTranslations(\n def: FormDefinition | undefined,\n i18nInstance: i18n\n) {\n if (!def) {\n return\n }\n\n const formTranslations = def.metadata?.translations as\n | FormDefinitionTranslations\n | undefined\n\n if (formTranslations) {\n for (const [lng, resources] of Object.entries(formTranslations)) {\n i18nInstance.addResourceBundle(lng, 'form', resources, true, true)\n\n // Temporary workaround - until we develop a better solution\n if (lng === CY) {\n i18nInstance.addResource(\n lng,\n 'form',\n `listItems.${yesNoListYesItemId}.text`,\n 'Ie'\n )\n i18nInstance.addResource(\n lng,\n 'form',\n `listItems.${yesNoListNoItemId}.text`,\n 'Nage'\n )\n }\n }\n }\n}\n\nexport function extractMetadataBaseTranslations(\n metadata: FormMetadata | undefined,\n i18nInstance: i18n\n) {\n if (metadata) {\n const translations = {\n 'form.title': metadata.title,\n 'form.contact.email.address': metadata.contact?.email?.address ?? '',\n 'form.contact.email.responseTime':\n metadata.contact?.email?.responseTime ?? '',\n 'form.contact.online.url': metadata.contact?.online?.url ?? '',\n 'form.contact.online.text': metadata.contact?.online?.text ?? '',\n 'form.contact.phone': metadata.contact?.phone ?? '',\n 'form.submissionGuidance': metadata.submissionGuidance ?? '',\n 'form.privacyNoticeText': metadata.privacyNoticeText ?? '',\n 'form.privacyNoticeUrl': metadata.privacyNoticeUrl ?? ''\n }\n i18nInstance.addResourceBundle('en-GB', 'form', translations, true, true)\n }\n}\n"],"mappings":"AAAA,SACEA,iBAAiB,EACjBC,kBAAkB,QAGb,oBAAoB;AAG3B,SAASC,EAAE;AACX,SAASC,gBAAgB;AACzB,SAASC,uBAAuB;AAChC,SAASC,sBAAsB;AAG/B,OAAO,SAASC,oBAAoBA,CAClCC,QAAsB,EACtBC,UAAsC,EACtCC,QAAgB,EAChB;EACA,MAAMC,gBAAgB,GAAGN,uBAAuB,CAACI,UAAU,CAAC;EAC5D,MAAMG,YAAY,GAAGN,sBAAsB,CAACK,gBAAgB,CAAC;EAC7DE,oBAAoB,CAACJ,UAAU,EAAEG,YAAY,CAAC;EAC9CE,+BAA+B,CAACN,QAAQ,EAAEI,YAAY,CAAC;EAEvD,MAAMG,UAAU,GAAGX,gBAAgB,CAACQ,YAAY,EAAEF,QAAQ,CAAC;EAE3D,OAAOK,UAAU;AACnB;AAEA,OAAO,SAASF,oBAAoBA,CAClCG,GAA+B,EAC/BJ,YAAkB,EAClB;EACA,IAAI,CAACI,GAAG,EAAE;IACR;EACF;EAEA,MAAMC,gBAAgB,GAAGD,GAAG,CAACR,QAAQ,EAAEU,YAE1B;EAEb,IAAID,gBAAgB,EAAE;IACpB,KAAK,MAAM,CAACE,GAAG,EAAEC,SAAS,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,gBAAgB,CAAC,EAAE;MAC/DL,YAAY,CAACW,iBAAiB,CAACJ,GAAG,EAAE,MAAM,EAAEC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;;MAElE;MACA,IAAID,GAAG,KAAKhB,EAAE,EAAE;QACdS,YAAY,CAACY,WAAW,CACtBL,GAAG,EACH,MAAM,EACN,aAAajB,kBAAkB,OAAO,EACtC,IACF,CAAC;QACDU,YAAY,CAACY,WAAW,CACtBL,GAAG,EACH,MAAM,EACN,aAAalB,iBAAiB,OAAO,EACrC,MACF,CAAC;MACH;IACF;EACF;AACF;AAEA,OAAO,SAASa,+BAA+BA,CAC7CN,QAAkC,EAClCI,YAAkB,EAClB;EACA,IAAIJ,QAAQ,EAAE;IACZ,MAAMU,YAAY,GAAG;MACnB,YAAY,EAAEV,QAAQ,CAACiB,KAAK;MAC5B,4BAA4B,EAAEjB,QAAQ,CAACkB,OAAO,EAAEC,KAAK,EAAEC,OAAO,IAAI,EAAE;MACpE,iCAAiC,EAC/BpB,QAAQ,CAACkB,OAAO,EAAEC,KAAK,EAAEE,YAAY,IAAI,EAAE;MAC7C,yBAAyB,EAAErB,QAAQ,CAACkB,OAAO,EAAEI,MAAM,EAAEC,GAAG,IAAI,EAAE;MAC9D,0BAA0B,EAAEvB,QAAQ,CAACkB,OAAO,EAAEI,MAAM,EAAEE,IAAI,IAAI,EAAE;MAChE,oBAAoB,EAAExB,QAAQ,CAACkB,OAAO,EAAEO,KAAK,IAAI,EAAE;MACnD,yBAAyB,EAAEzB,QAAQ,CAAC0B,kBAAkB,IAAI,EAAE;MAC5D,wBAAwB,EAAE1B,QAAQ,CAAC2B,iBAAiB,IAAI,EAAE;MAC1D,uBAAuB,EAAE3B,QAAQ,CAAC4B,gBAAgB,IAAI;IACxD,CAAC;IACDxB,YAAY,CAACW,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAEL,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;EAC3E;AACF","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type FormDefinition } from '@defra/forms-model';
|
|
2
2
|
import { type FormDefinitionTranslations } from '../../../../server/plugins/engine/i18n/types.js';
|
|
3
3
|
type BaseTranslations = FormDefinitionTranslations[string];
|
|
4
|
-
export declare function extractBaseTranslations(def: FormDefinition): BaseTranslations;
|
|
4
|
+
export declare function extractBaseTranslations(def: FormDefinition | undefined): BaseTranslations;
|
|
5
5
|
export {};
|
|
@@ -5,6 +5,15 @@ export function extractBaseTranslations(def) {
|
|
|
5
5
|
const sections = {};
|
|
6
6
|
const listItems = {};
|
|
7
7
|
const form = {};
|
|
8
|
+
if (!def) {
|
|
9
|
+
return {
|
|
10
|
+
pages,
|
|
11
|
+
components,
|
|
12
|
+
sections,
|
|
13
|
+
listItems,
|
|
14
|
+
form
|
|
15
|
+
};
|
|
16
|
+
}
|
|
8
17
|
for (const page of def.pages) {
|
|
9
18
|
if (page.id && page.title) {
|
|
10
19
|
pages[page.id] = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractBaseTranslations.js","names":["hasComponentsEvenIfNoNext","extractBaseTranslations","def","pages","components","sections","listItems","form","page","id","title","component","entry","hint","content","shortDescription","Object","keys","length","section","list","lists","item","items","text","name"],"sources":["../../../../../src/server/plugins/engine/i18n/extractBaseTranslations.ts"],"sourcesContent":["import {\n hasComponentsEvenIfNoNext,\n type FormDefinition\n} from '@defra/forms-model'\n\nimport { type FormDefinitionTranslations } from '~/src/server/plugins/engine/i18n/types.js'\n\ntype BaseTranslations = FormDefinitionTranslations[string]\n\nexport function extractBaseTranslations(def: FormDefinition): BaseTranslations {\n const pages: BaseTranslations['pages'] = {}\n const components: BaseTranslations['components'] = {}\n const sections: BaseTranslations['sections'] = {}\n const listItems: BaseTranslations['listItems'] = {}\n const form: BaseTranslations['form'] = {}\n\n for (const page of def.pages) {\n if (page.id && page.title) {\n pages[page.id] = { title: page.title }\n }\n\n if (hasComponentsEvenIfNoNext(page)) {\n for (const component of page.components) {\n if (!component.id) continue\n\n const entry: BaseTranslations['components'][string] = {}\n\n if (component.title) entry.title = component.title\n if ('hint' in component && component.hint) entry.hint = component.hint\n if ('content' in component && component.content) {\n entry.content = component.content\n }\n if ('shortDescription' in component && component.shortDescription) {\n entry.shortDescription = component.shortDescription\n }\n\n if (Object.keys(entry).length) {\n components[component.id] = entry\n }\n }\n }\n }\n\n for (const section of def.sections) {\n if (section.id && section.title) {\n sections[section.id] = { title: section.title }\n }\n }\n\n for (const list of def.lists) {\n for (const item of list.items) {\n if (item.id && item.text) {\n listItems[item.id] = { text: item.text }\n }\n }\n }\n\n form.title = def.name ?? ''\n\n return { pages, components, sections, listItems, form }\n}\n"],"mappings":"AAAA,SACEA,yBAAyB,QAEpB,oBAAoB;AAM3B,OAAO,SAASC,uBAAuBA,
|
|
1
|
+
{"version":3,"file":"extractBaseTranslations.js","names":["hasComponentsEvenIfNoNext","extractBaseTranslations","def","pages","components","sections","listItems","form","page","id","title","component","entry","hint","content","shortDescription","Object","keys","length","section","list","lists","item","items","text","name"],"sources":["../../../../../src/server/plugins/engine/i18n/extractBaseTranslations.ts"],"sourcesContent":["import {\n hasComponentsEvenIfNoNext,\n type FormDefinition\n} from '@defra/forms-model'\n\nimport { type FormDefinitionTranslations } from '~/src/server/plugins/engine/i18n/types.js'\n\ntype BaseTranslations = FormDefinitionTranslations[string]\n\nexport function extractBaseTranslations(\n def: FormDefinition | undefined\n): BaseTranslations {\n const pages: BaseTranslations['pages'] = {}\n const components: BaseTranslations['components'] = {}\n const sections: BaseTranslations['sections'] = {}\n const listItems: BaseTranslations['listItems'] = {}\n const form: BaseTranslations['form'] = {}\n\n if (!def) {\n return { pages, components, sections, listItems, form }\n }\n\n for (const page of def.pages) {\n if (page.id && page.title) {\n pages[page.id] = { title: page.title }\n }\n\n if (hasComponentsEvenIfNoNext(page)) {\n for (const component of page.components) {\n if (!component.id) continue\n\n const entry: BaseTranslations['components'][string] = {}\n\n if (component.title) entry.title = component.title\n if ('hint' in component && component.hint) entry.hint = component.hint\n if ('content' in component && component.content) {\n entry.content = component.content\n }\n if ('shortDescription' in component && component.shortDescription) {\n entry.shortDescription = component.shortDescription\n }\n\n if (Object.keys(entry).length) {\n components[component.id] = entry\n }\n }\n }\n }\n\n for (const section of def.sections) {\n if (section.id && section.title) {\n sections[section.id] = { title: section.title }\n }\n }\n\n for (const list of def.lists) {\n for (const item of list.items) {\n if (item.id && item.text) {\n listItems[item.id] = { text: item.text }\n }\n }\n }\n\n form.title = def.name ?? ''\n\n return { pages, components, sections, listItems, form }\n}\n"],"mappings":"AAAA,SACEA,yBAAyB,QAEpB,oBAAoB;AAM3B,OAAO,SAASC,uBAAuBA,CACrCC,GAA+B,EACb;EAClB,MAAMC,KAAgC,GAAG,CAAC,CAAC;EAC3C,MAAMC,UAA0C,GAAG,CAAC,CAAC;EACrD,MAAMC,QAAsC,GAAG,CAAC,CAAC;EACjD,MAAMC,SAAwC,GAAG,CAAC,CAAC;EACnD,MAAMC,IAA8B,GAAG,CAAC,CAAC;EAEzC,IAAI,CAACL,GAAG,EAAE;IACR,OAAO;MAAEC,KAAK;MAAEC,UAAU;MAAEC,QAAQ;MAAEC,SAAS;MAAEC;IAAK,CAAC;EACzD;EAEA,KAAK,MAAMC,IAAI,IAAIN,GAAG,CAACC,KAAK,EAAE;IAC5B,IAAIK,IAAI,CAACC,EAAE,IAAID,IAAI,CAACE,KAAK,EAAE;MACzBP,KAAK,CAACK,IAAI,CAACC,EAAE,CAAC,GAAG;QAAEC,KAAK,EAAEF,IAAI,CAACE;MAAM,CAAC;IACxC;IAEA,IAAIV,yBAAyB,CAACQ,IAAI,CAAC,EAAE;MACnC,KAAK,MAAMG,SAAS,IAAIH,IAAI,CAACJ,UAAU,EAAE;QACvC,IAAI,CAACO,SAAS,CAACF,EAAE,EAAE;QAEnB,MAAMG,KAA6C,GAAG,CAAC,CAAC;QAExD,IAAID,SAAS,CAACD,KAAK,EAAEE,KAAK,CAACF,KAAK,GAAGC,SAAS,CAACD,KAAK;QAClD,IAAI,MAAM,IAAIC,SAAS,IAAIA,SAAS,CAACE,IAAI,EAAED,KAAK,CAACC,IAAI,GAAGF,SAAS,CAACE,IAAI;QACtE,IAAI,SAAS,IAAIF,SAAS,IAAIA,SAAS,CAACG,OAAO,EAAE;UAC/CF,KAAK,CAACE,OAAO,GAAGH,SAAS,CAACG,OAAO;QACnC;QACA,IAAI,kBAAkB,IAAIH,SAAS,IAAIA,SAAS,CAACI,gBAAgB,EAAE;UACjEH,KAAK,CAACG,gBAAgB,GAAGJ,SAAS,CAACI,gBAAgB;QACrD;QAEA,IAAIC,MAAM,CAACC,IAAI,CAACL,KAAK,CAAC,CAACM,MAAM,EAAE;UAC7Bd,UAAU,CAACO,SAAS,CAACF,EAAE,CAAC,GAAGG,KAAK;QAClC;MACF;IACF;EACF;EAEA,KAAK,MAAMO,OAAO,IAAIjB,GAAG,CAACG,QAAQ,EAAE;IAClC,IAAIc,OAAO,CAACV,EAAE,IAAIU,OAAO,CAACT,KAAK,EAAE;MAC/BL,QAAQ,CAACc,OAAO,CAACV,EAAE,CAAC,GAAG;QAAEC,KAAK,EAAES,OAAO,CAACT;MAAM,CAAC;IACjD;EACF;EAEA,KAAK,MAAMU,IAAI,IAAIlB,GAAG,CAACmB,KAAK,EAAE;IAC5B,KAAK,MAAMC,IAAI,IAAIF,IAAI,CAACG,KAAK,EAAE;MAC7B,IAAID,IAAI,CAACb,EAAE,IAAIa,IAAI,CAACE,IAAI,EAAE;QACxBlB,SAAS,CAACgB,IAAI,CAACb,EAAE,CAAC,GAAG;UAAEe,IAAI,EAAEF,IAAI,CAACE;QAAK,CAAC;MAC1C;IACF;EACF;EAEAjB,IAAI,CAACG,KAAK,GAAGR,GAAG,CAACuB,IAAI,IAAI,EAAE;EAE3B,OAAO;IAAEtB,KAAK;IAAEC,UAAU;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAK,CAAC;AACzD","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type FormMetadata, type FormStatus } from '@defra/forms-model';
|
|
2
|
+
import { type Translator } from '../../../../server/plugins/engine/i18n/types.js';
|
|
3
|
+
import { type AnyFormRequest } from '../../../../server/plugins/engine/types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Get translator for plugin, for the current form's metadata (as well as the plugin-specific boilerplate).
|
|
6
|
+
* This is an async call so we can read the form definition inside this call.
|
|
7
|
+
* See docs/features/multi-language.md for the language and translation flow overview.
|
|
8
|
+
* @param {AnyFormRequest} request
|
|
9
|
+
* @param {FormMetadata} metadata - the metadata of the form
|
|
10
|
+
* @param {FormStatus} status - the form status to use when retrieving the definition
|
|
11
|
+
* @param {string} language - the language to use for the translator
|
|
12
|
+
*/
|
|
13
|
+
export declare function getCachedPluginTranslator(request: AnyFormRequest, metadata: FormMetadata, status: FormStatus, language: string): Promise<Translator>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import Boom from '@hapi/boom';
|
|
2
|
+
import { LRUCache } from 'lru-cache';
|
|
3
|
+
import { getPluginOptions } from "../helpers.js";
|
|
4
|
+
import { createFormTranslator } from "./createFormTranslator.js";
|
|
5
|
+
const cache = new LRUCache({
|
|
6
|
+
max: 100,
|
|
7
|
+
ttl: 1000 * 60 * 15 // 15 minutes
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Get translator for plugin, for the current form's metadata (as well as the plugin-specific boilerplate).
|
|
12
|
+
* This is an async call so we can read the form definition inside this call.
|
|
13
|
+
* See docs/features/multi-language.md for the language and translation flow overview.
|
|
14
|
+
* @param {AnyFormRequest} request
|
|
15
|
+
* @param {FormMetadata} metadata - the metadata of the form
|
|
16
|
+
* @param {FormStatus} status - the form status to use when retrieving the definition
|
|
17
|
+
* @param {string} language - the language to use for the translator
|
|
18
|
+
*/
|
|
19
|
+
export async function getCachedPluginTranslator(request, metadata, status, language) {
|
|
20
|
+
const key = `${metadata.id}-${status}-${language}-plugin-meta`;
|
|
21
|
+
if (cache.has(key)) {
|
|
22
|
+
return cache.get(key);
|
|
23
|
+
}
|
|
24
|
+
const {
|
|
25
|
+
services
|
|
26
|
+
} = getPluginOptions(request.server);
|
|
27
|
+
const definition = await services?.formsService.getFormDefinition(metadata.id, status);
|
|
28
|
+
if (!definition) {
|
|
29
|
+
throw Boom.notFound(`FormDefinition not found for form ${metadata.id} and status ${status}`);
|
|
30
|
+
}
|
|
31
|
+
const translator = createFormTranslator(metadata, definition, language);
|
|
32
|
+
cache.set(key, translator);
|
|
33
|
+
return translator;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.js","names":["Boom","LRUCache","getPluginOptions","createFormTranslator","cache","max","ttl","getCachedPluginTranslator","request","metadata","status","language","key","id","has","get","services","server","definition","formsService","getFormDefinition","notFound","translator","set"],"sources":["../../../../../src/server/plugins/engine/i18n/form.ts"],"sourcesContent":["import { type FormMetadata, type FormStatus } from '@defra/forms-model'\nimport Boom from '@hapi/boom'\nimport { LRUCache } from 'lru-cache'\n\nimport { getPluginOptions } from '~/src/server/plugins/engine/helpers.js'\nimport { createFormTranslator } from '~/src/server/plugins/engine/i18n/createFormTranslator.js'\nimport { type Translator } from '~/src/server/plugins/engine/i18n/types.js'\nimport { type AnyFormRequest } from '~/src/server/plugins/engine/types.js'\n\nconst cache = new LRUCache({\n max: 100,\n ttl: 1000 * 60 * 15 // 15 minutes\n})\n\n/**\n * Get translator for plugin, for the current form's metadata (as well as the plugin-specific boilerplate).\n * This is an async call so we can read the form definition inside this call.\n * See docs/features/multi-language.md for the language and translation flow overview.\n * @param {AnyFormRequest} request\n * @param {FormMetadata} metadata - the metadata of the form\n * @param {FormStatus} status - the form status to use when retrieving the definition\n * @param {string} language - the language to use for the translator\n */\nexport async function getCachedPluginTranslator(\n request: AnyFormRequest,\n metadata: FormMetadata,\n status: FormStatus,\n language: string\n) {\n const key = `${metadata.id}-${status}-${language}-plugin-meta`\n\n if (cache.has(key)) {\n return cache.get(key) as unknown as Translator\n }\n\n const { services } = getPluginOptions(request.server)\n\n const definition = await services?.formsService.getFormDefinition(\n metadata.id,\n status\n )\n\n if (!definition) {\n throw Boom.notFound(\n `FormDefinition not found for form ${metadata.id} and status ${status}`\n )\n }\n\n const translator = createFormTranslator(metadata, definition, language)\n\n cache.set(key, translator)\n\n return translator\n}\n"],"mappings":"AACA,OAAOA,IAAI,MAAM,YAAY;AAC7B,SAASC,QAAQ,QAAQ,WAAW;AAEpC,SAASC,gBAAgB;AACzB,SAASC,oBAAoB;AAI7B,MAAMC,KAAK,GAAG,IAAIH,QAAQ,CAAC;EACzBI,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AACtB,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,yBAAyBA,CAC7CC,OAAuB,EACvBC,QAAsB,EACtBC,MAAkB,EAClBC,QAAgB,EAChB;EACA,MAAMC,GAAG,GAAG,GAAGH,QAAQ,CAACI,EAAE,IAAIH,MAAM,IAAIC,QAAQ,cAAc;EAE9D,IAAIP,KAAK,CAACU,GAAG,CAACF,GAAG,CAAC,EAAE;IAClB,OAAOR,KAAK,CAACW,GAAG,CAACH,GAAG,CAAC;EACvB;EAEA,MAAM;IAAEI;EAAS,CAAC,GAAGd,gBAAgB,CAACM,OAAO,CAACS,MAAM,CAAC;EAErD,MAAMC,UAAU,GAAG,MAAMF,QAAQ,EAAEG,YAAY,CAACC,iBAAiB,CAC/DX,QAAQ,CAACI,EAAE,EACXH,MACF,CAAC;EAED,IAAI,CAACQ,UAAU,EAAE;IACf,MAAMlB,IAAI,CAACqB,QAAQ,CACjB,qCAAqCZ,QAAQ,CAACI,EAAE,eAAeH,MAAM,EACvE,CAAC;EACH;EAEA,MAAMY,UAAU,GAAGnB,oBAAoB,CAACM,QAAQ,EAAES,UAAU,EAAEP,QAAQ,CAAC;EAEvEP,KAAK,CAACmB,GAAG,CAACX,GAAG,EAAEU,UAAU,CAAC;EAE1B,OAAOA,UAAU;AACnB","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type FormDefinition } from '@defra/forms-model';
|
|
2
|
+
/**
|
|
3
|
+
* Return a list of available languages.
|
|
4
|
+
* Empty array if only English, or an array of English and Welsh if translations have been defined.
|
|
5
|
+
* @param {FormDefinition} def
|
|
6
|
+
*/
|
|
7
|
+
export declare function getAvailableLanguages(def: FormDefinition): {
|
|
8
|
+
name: string;
|
|
9
|
+
code: string;
|
|
10
|
+
}[];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return a list of available languages.
|
|
3
|
+
* Empty array if only English, or an array of English and Welsh if translations have been defined.
|
|
4
|
+
* @param {FormDefinition} def
|
|
5
|
+
*/
|
|
6
|
+
export function getAvailableLanguages(def) {
|
|
7
|
+
// @ts-expect-error - dynamic property
|
|
8
|
+
if (def.metadata?.translations?.cy) {
|
|
9
|
+
return [{
|
|
10
|
+
name: 'English',
|
|
11
|
+
code: 'en-GB'
|
|
12
|
+
}, {
|
|
13
|
+
name: 'Cymraeg',
|
|
14
|
+
code: 'cy'
|
|
15
|
+
}];
|
|
16
|
+
}
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=languages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"languages.js","names":["getAvailableLanguages","def","metadata","translations","cy","name","code"],"sources":["../../../../../src/server/plugins/engine/i18n/languages.ts"],"sourcesContent":["import { type FormDefinition } from '@defra/forms-model'\n\n/**\n * Return a list of available languages.\n * Empty array if only English, or an array of English and Welsh if translations have been defined.\n * @param {FormDefinition} def\n */\nexport function getAvailableLanguages(\n def: FormDefinition\n): { name: string; code: string }[] {\n // @ts-expect-error - dynamic property\n if (def.metadata?.translations?.cy) {\n return [\n { name: 'English', code: 'en-GB' },\n { name: 'Cymraeg', code: 'cy' }\n ]\n }\n return []\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,qBAAqBA,CACnCC,GAAmB,EACe;EAClC;EACA,IAAIA,GAAG,CAACC,QAAQ,EAAEC,YAAY,EAAEC,EAAE,EAAE;IAClC,OAAO,CACL;MAAEC,IAAI,EAAE,SAAS;MAAEC,IAAI,EAAE;IAAQ,CAAC,EAClC;MAAED,IAAI,EAAE,SAAS;MAAEC,IAAI,EAAE;IAAK,CAAC,CAChC;EACH;EACA,OAAO,EAAE;AACX","ignoreList":[]}
|
|
@@ -14,7 +14,63 @@
|
|
|
14
14
|
"numberInteger": "Rhaid i {{#label}} fod yn rhif cyfan",
|
|
15
15
|
"numberMin": "Rhaid i {{#label}} fod yn {{#limit}} neu uwch",
|
|
16
16
|
"numberMax": "Rhaid i {{#label}} fod yn {{#limit}} neu is",
|
|
17
|
-
"maxWords": "Rhaid i {{#label}} fod yn {{#limit}} o eiriau neu lai"
|
|
17
|
+
"maxWords": "Rhaid i {{#label}} fod yn {{#limit}} o eiriau neu lai",
|
|
18
|
+
"unicode": "Mae {{#label}} yn cynnwys nodau annilys, er enghraifft, dashes hirion",
|
|
19
|
+
"arrayMin_zero": "Dewiswch o leiaf 1 opsiwn o'r rhestr",
|
|
20
|
+
"arrayMin_one": "Dewiswch o leiaf {{#limit}} opsiwn o'r rhestr",
|
|
21
|
+
"arrayMin_two": "Dewiswch o leiaf ddau opsiwn o'r rhestr",
|
|
22
|
+
"arrayMin_few": "Dewiswch o leiaf {{#limit}} opsiwn o'r rhestr",
|
|
23
|
+
"arrayMin_many": "Dewiswch o leiaf {{#limit}} opsiwn o'r rhestr",
|
|
24
|
+
"arrayMin_other": "Dewiswch o leiaf {{#limit}} opsiwn o'r rhestr",
|
|
25
|
+
"arrayMax_zero": "Dim ond {{#limit}} opsiynau y gellir eu dewis o'r rhestr",
|
|
26
|
+
"arrayMax_one": "Dim ond {{#limit}} opsiwn y gellir ei ddewis o'r rhestr",
|
|
27
|
+
"arrayMax_two": "Dim ond dwy opsiwn y gellir eu dewis o'r rhestr",
|
|
28
|
+
"arrayMax_few": "Dim ond {{#limit}} opsiwn y gellir eu dewis o'r rhestr",
|
|
29
|
+
"arrayMax_many": "Dim ond {{#limit}} opsiwn y gellir eu dewis o'r rhestr",
|
|
30
|
+
"arrayMax_other": "Dim ond {{#limit}} opsiwn y gellir eu dewis o'r rhestr",
|
|
31
|
+
"arrayLength_zero": "Dewiswch 0 opsiwn yn unig o'r rhestr",
|
|
32
|
+
"arrayLength_one": "Dewiswch un opsiwn yn unig o'r rhestr",
|
|
33
|
+
"arrayLength_two": "Dewiswch {{#limit}} opsiwn yn unig o'r rhestr",
|
|
34
|
+
"arrayLength_few": "Dewiswch {{#limit}} opsiwn yn unig o'r rhestr",
|
|
35
|
+
"arrayLength_many": "Dewiswch {{#limit}} opsiwn yn unig o'r rhestr",
|
|
36
|
+
"arrayLength_other": "Dewiswch {{#limit}} opsiwn yn unig o'r rhestr",
|
|
37
|
+
|
|
38
|
+
"featuresMin_zero": "Diffiniwch o leiaf {{#limit}} nodwedd",
|
|
39
|
+
"featuresMin_one": "Diffiniwch o leiaf un nodwedd",
|
|
40
|
+
"featuresMin_two": "Diffiniwch o leiaf {{#limit}} nodwedd",
|
|
41
|
+
"featuresMin_few": "Diffiniwch o leiaf {{#limit}} nodwedd",
|
|
42
|
+
"featuresMin_many": "Diffiniwch o leiaf {{#limit}} nodwedd",
|
|
43
|
+
"featuresMin_other": "Diffiniwch o leiaf {{#limit}} nodwedd",
|
|
44
|
+
"featuresMax_zero": "Dim ond {{#limit}} nodwedd y gellir eu diffinio",
|
|
45
|
+
"featuresMax_one": "Dim ond {{#limit}} nodwedd y gellir ei diffinio",
|
|
46
|
+
"featuresMax_two": "Dim ond {{#limit}} nodwedd y gellir eu diffinio",
|
|
47
|
+
"featuresMax_few": "Dim ond {{#limit}} nodwedd y gellir eu diffinio",
|
|
48
|
+
"featuresMax_many": "Dim ond {{#limit}} nodwedd y gellir eu diffinio",
|
|
49
|
+
"featuresMax_other": "Dim ond {{#limit}} nodwedd y gellir eu diffinio",
|
|
50
|
+
"featuresLength_zero": "Diffiniwch yn union {{#limit}} nodwedd",
|
|
51
|
+
"featuresLength_one": "Diffiniwch un nodwedd yn union",
|
|
52
|
+
"featuresLength_two": "Diffiniwch nodweddion {{#limit}} yn union",
|
|
53
|
+
"featuresLength_few": "Diffiniwch nodweddion {{#limit}} yn union",
|
|
54
|
+
"featuresLength_many": "Diffiniwch nodweddion {{#limit}} yn union",
|
|
55
|
+
"featuresLength_other": "Diffiniwch nodweddion {{#limit}} yn union",
|
|
56
|
+
"filesMin_zero": "Rhaid i chi uwchlwytho {{#limit}} ffeil neu fwy",
|
|
57
|
+
"filesMin_one": "Rhaid i chi uwchlwytho un ffeil neu fwy",
|
|
58
|
+
"filesMin_two": "Rhaid i chi uwchlwytho {{#limit}} o ffeiliau neu fwy",
|
|
59
|
+
"filesMin_few": "Rhaid i chi uwchlwytho {{#limit}} o ffeiliau neu fwy",
|
|
60
|
+
"filesMin_many": "Rhaid i chi uwchlwytho {{#limit}} o ffeiliau neu fwy",
|
|
61
|
+
"filesMin_other": "Rhaid i chi uwchlwytho {{#limit}} o ffeiliau neu fwy",
|
|
62
|
+
"filesMax_zero": "Dim ond {{#limit}} ffeil neu lai y gallwch eu huwchlwytho",
|
|
63
|
+
"filesMax_one": "Dim ond un ffeil neu lai y gallwch ei huwchlwytho",
|
|
64
|
+
"filesMax_two": "Dim ond {{#limit}} o ffeiliau neu lai y gallwch eu huwchlwytho",
|
|
65
|
+
"filesMax_few": "Dim ond {{#limit}} o ffeiliau neu lai y gallwch eu huwchlwytho",
|
|
66
|
+
"filesMax_many": "Dim ond {{#limit}} o ffeiliau neu lai y gallwch eu huwchlwytho",
|
|
67
|
+
"filesMax_other": "Dim ond {{#limit}} o ffeiliau neu lai y gallwch eu huwchlwytho",
|
|
68
|
+
"filesLength_zero": "Rhaid i chi uwchlwytho union {{#limit}} ffeil",
|
|
69
|
+
"filesLength_one": "Rhaid i chi uwchlwytho union un ffeil",
|
|
70
|
+
"filesLength_two": "Rhaid i chi uwchlwytho'n union {{#limit}} o ffeiliau",
|
|
71
|
+
"filesLength_few": "Rhaid i chi uwchlwytho'n union {{#limit}} o ffeiliau",
|
|
72
|
+
"filesLength_many": "Rhaid i chi uwchlwytho'n union {{#limit}} o ffeiliau",
|
|
73
|
+
"filesLength_other": "Rhaid i chi uwchlwytho'n union {{#limit}} o ffeiliau"
|
|
18
74
|
},
|
|
19
75
|
|
|
20
76
|
"errors": {
|
|
@@ -29,7 +85,14 @@
|
|
|
29
85
|
"continue": "Parhau",
|
|
30
86
|
"saveAndExit": "Cadw a gadael",
|
|
31
87
|
"draft": "ddrafft",
|
|
32
|
-
"live": "fyw"
|
|
88
|
+
"live": "fyw",
|
|
89
|
+
"or": "neu",
|
|
90
|
+
"and": "a",
|
|
91
|
+
"england": "Lloegr",
|
|
92
|
+
"wales": "Cymru",
|
|
93
|
+
"northern-ireland": "Gogledd Iwerddon",
|
|
94
|
+
"scotland": "Yr Alban",
|
|
95
|
+
"sendFeedback": "Anfon adborth"
|
|
33
96
|
},
|
|
34
97
|
|
|
35
98
|
"pages": {
|
|
@@ -60,6 +123,12 @@
|
|
|
60
123
|
"totalAmount": "Cyfanswm",
|
|
61
124
|
"reference": "Cyfeirnod",
|
|
62
125
|
"dateOfPayment": "Dyddiad talu",
|
|
126
|
+
"fileUpload_zero": "Ni uwchlwythwyd unrhyw ffeiliau",
|
|
127
|
+
"fileUpload_one": "Uwchlwythwyd [[count]] ffeil",
|
|
128
|
+
"fileUpload_two": "Uwchlwythwyd dwy feil",
|
|
129
|
+
"fileUpload_few": "Uwchlwythwyd [[count]] ffeil",
|
|
130
|
+
"fileUpload_many": "Uwchlwythwyd [[count]] o ffeiliau",
|
|
131
|
+
"fileUpload_other": "Uwchlwythwyd [[count]] ffeil",
|
|
63
132
|
"submissionFailed": "Roedd problem ac ni chyflwynwyd eich ffurflen. Ceisiwch gyflwyno'r ffurflen eto",
|
|
64
133
|
"submissionFailedContactSuffix": " neu gallwch [[contactUsLink]] a dyfynnu'ch cyfeirnod i drefnu ad-daliad",
|
|
65
134
|
"contactUsLinkText": "cysylltu â ni (yn agor mewn tab newydd)",
|
|
@@ -79,17 +148,40 @@
|
|
|
79
148
|
"change": "Newid",
|
|
80
149
|
"notProvided": "Heb ei ddarparu",
|
|
81
150
|
"visuallyHiddenItem": "eitem [[index]]",
|
|
151
|
+
"pageTitle_zero": "Nid ydych wedi ychwanegu unrhyw atebion",
|
|
82
152
|
"pageTitle_one": "Rydych wedi ychwanegu [[count]] ateb",
|
|
153
|
+
"pageTitle_two": "Rydych wedi ychwanegu dau ateb",
|
|
154
|
+
"pageTitle_few": "Rydych wedi ychwanegu [[count]] ateb",
|
|
155
|
+
"pageTitle_many": "Rydych wedi ychwanegu [[count]] o atebion",
|
|
83
156
|
"pageTitle_other": "Rydych wedi ychwanegu [[count]] ateb",
|
|
157
|
+
"tooMany_zero": "Ni allwch ychwanegu unrhyw atebion",
|
|
84
158
|
"tooMany_one": "Dim ond hyd at [[count]] ateb y gallwch ei ychwanegu",
|
|
159
|
+
"tooMany_two": "Dim ond hyd at ddau gateb y gallwch eu hychwanegu",
|
|
160
|
+
"tooMany_few": "Dim ond hyd at [[count]] ateb y gallwch eu hychwanegu",
|
|
161
|
+
"tooMany_many": "Dim ond hyd at [[count]] o atebion y gallwch eu hychwanegu",
|
|
85
162
|
"tooMany_other": "Dim ond hyd at [[count]] ateb y gallwch eu hychwanegu",
|
|
163
|
+
"tooFew_zero": "Rhaid i chi ychwanegu atebion",
|
|
86
164
|
"tooFew_one": "Rhaid i chi ychwanegu o leiaf [[count]] ateb",
|
|
165
|
+
"tooFew_two": "Rhaid i chi ychwanegu o leiaf ddau gateb",
|
|
166
|
+
"tooFew_few": "Rhaid i chi ychwanegu o leiaf [[count]] ateb",
|
|
167
|
+
"tooFew_many": "Rhaid i chi ychwanegu o leiaf [[count]] o atebion",
|
|
87
168
|
"tooFew_other": "Rhaid i chi ychwanegu o leiaf [[count]] ateb"
|
|
88
169
|
},
|
|
89
170
|
|
|
90
171
|
"fileUpload": {
|
|
91
172
|
"upload": "Uwchlwytho ffeil",
|
|
92
|
-
"maxFilesReached": "Rydych wedi cyrraedd nifer uchaf y ffeiliau. Tynnwch ffeil i uwchlwytho rhagor."
|
|
173
|
+
"maxFilesReached": "Rydych wedi cyrraedd nifer uchaf y ffeiliau. Tynnwch ffeil i uwchlwytho rhagor.",
|
|
174
|
+
"remove": "Tynnu",
|
|
175
|
+
"removeFileTitle": "Ydych chi'n siŵr eich bod chi eisiau dileu'r ffeil hon?",
|
|
176
|
+
"removeFileBody": "Ni allwch adfer ffeiliau a dynnwyd.",
|
|
177
|
+
"removeFileButton": "Dileu ffeil",
|
|
178
|
+
"cancel": "Canslo",
|
|
179
|
+
"FILE_VIRUS": "Mae'r ffeil a ddewiswyd yn cynnwys firws",
|
|
180
|
+
"FILE_EMPTY": "Mae'r ffeil a ddewiswyd yn wag",
|
|
181
|
+
"FILE_TOO_LARGE": "Rhaid i'r ffeil a ddewiswyd fod yn llai na [[maxFileSizeFormatted]]",
|
|
182
|
+
"FILE_INVALID_TYPE": "Rhaid i'r ffeil a ddewiswyd fod yn [[fileExtensions]]",
|
|
183
|
+
"FILE_UPLOAD_FAILED": "Ni ellid uwchlwytho'r ffeil a ddewiswyd - rhowch gynnig arall arni",
|
|
184
|
+
"FILE_ERROR_UNKNOWN": "Gwall anhysbys"
|
|
93
185
|
},
|
|
94
186
|
|
|
95
187
|
"exit": {
|
|
@@ -115,6 +207,16 @@
|
|
|
115
207
|
"bannerForce": "Rhagolwg o ffurflen [[previewMode]] yw hon. Peidiwch â rhoi gwybodaeth bersonol.",
|
|
116
208
|
"bannerText": "Dyma ragolwg o dudalen ffurflen [[previewMode]] rydych chi'n ei golygu.",
|
|
117
209
|
"previousPages": "Mae'n dibynnu ar atebion o dudalennau cynharach yn y ffurflen. Yn y fersiwn fyw, bydd angen i ddefnyddwyr gwblhau'r cwestiynau hynny yn gyntaf."
|
|
210
|
+
},
|
|
211
|
+
|
|
212
|
+
"formUnavailable": {
|
|
213
|
+
"title": "Mae'n ddrwg gennyf, nid yw'r ffurflen hon ar gael",
|
|
214
|
+
"subHeading": "Nid yw '[[formTitle]]' ar gael mwyach.",
|
|
215
|
+
"contactDetailsHeading": "Manylion cyswllt ar gyfer [[organisationName]]",
|
|
216
|
+
"telephone": "Ffôn",
|
|
217
|
+
"callCharges": "Dysgwch am gostau galwadau",
|
|
218
|
+
"email": "E-bost",
|
|
219
|
+
"onlineContactForm": "Ffurflen gyswllt ar-lein"
|
|
118
220
|
}
|
|
119
221
|
},
|
|
120
222
|
|
|
@@ -135,7 +237,11 @@
|
|
|
135
237
|
"findAnAddressInstead": "dod o hyd i gyfeiriad yn lle hynny",
|
|
136
238
|
"noAddressFoundTitle": "Ni chanfuwyd cyfeiriad",
|
|
137
239
|
"noAddressFoundBody": "Ni allem ddod o hyd i gyfeiriad cyfatebol",
|
|
240
|
+
"addressFound_zero": "Ni chanfuwyd unrhyw gyfeiriadau ar gyfer",
|
|
138
241
|
"addressFound_one": "Canfuwyd [[count]] cyfeiriad ar gyfer",
|
|
242
|
+
"addressFound_two": "Canfuwyd dau gyfeiriad ar gyfer",
|
|
243
|
+
"addressFound_few": "Canfuwyd [[count]] chyfeiriad ar gyfer",
|
|
244
|
+
"addressFound_many": "Canfuwyd [[count]] o gyfeiriadau ar gyfer",
|
|
139
245
|
"addressFound_other": "Canfuwyd [[count]] cyfeiriad ar gyfer",
|
|
140
246
|
"validation": {
|
|
141
247
|
"invalidPostcode": "Nodwch god post dilys neu nodwch gyfeiriad â llaw",
|
|
@@ -200,7 +306,8 @@
|
|
|
200
306
|
"eastingDigits": "Rhaid i {{#label}} ar gyfer [[fieldLabel]] fod rhwng 1 a 6 digid",
|
|
201
307
|
"northingDigits": "Rhaid i {{#label}} ar gyfer [[fieldLabel]] fod rhwng 1 a 7 digid",
|
|
202
308
|
"eastingRange": "Rhaid i {{#label}} ar gyfer [[fieldLabel]] fod rhwng [[min]] a [[max]]",
|
|
203
|
-
"northingRange": "Rhaid i {{#label}} ar gyfer [[fieldLabel]] fod rhwng [[min]] a [[max]]"
|
|
309
|
+
"northingRange": "Rhaid i {{#label}} ar gyfer [[fieldLabel]] fod rhwng [[min]] a [[max]]",
|
|
310
|
+
"wrongCountry": "Rhaid i leoliad fod y tu mewn i [[country]]"
|
|
204
311
|
},
|
|
205
312
|
|
|
206
313
|
"nationalGridField": {
|
|
@@ -216,14 +323,23 @@
|
|
|
216
323
|
},
|
|
217
324
|
|
|
218
325
|
"locationFieldBase": {
|
|
219
|
-
"howToFind": "Sut i ddod o hyd i fanylion lleoliad"
|
|
326
|
+
"howToFind": "Sut i ddod o hyd i fanylion lleoliad",
|
|
327
|
+
"map": {
|
|
328
|
+
"helpPanel": {
|
|
329
|
+
"label": "Sut i ddefnyddio'r map hwn",
|
|
330
|
+
"point1": "Chwilio am sir, lle neu god post",
|
|
331
|
+
"point2": "Defnyddiwch yr eiconau + a - i chwyddo i mewn ac allan",
|
|
332
|
+
"point3": "Defnyddiwch lyfliwr neu allweddlon i ganolbwyntio'r pwynt yn y lleoliad",
|
|
333
|
+
"point4": "Cliciwch i ychwanegu'r lleoliad i'r map"
|
|
334
|
+
}
|
|
335
|
+
}
|
|
220
336
|
},
|
|
221
337
|
|
|
222
338
|
"yesNoField": {
|
|
223
339
|
"yes": "Ie",
|
|
224
340
|
"no": "Nage",
|
|
225
341
|
"validation": {
|
|
226
|
-
"selectYesNoRequired": "{{#label}} - dewiswch ie neu
|
|
342
|
+
"selectYesNoRequired": "{{#label}} - dewiswch ie neu nage"
|
|
227
343
|
}
|
|
228
344
|
},
|
|
229
345
|
|
|
@@ -237,8 +353,53 @@
|
|
|
237
353
|
},
|
|
238
354
|
|
|
239
355
|
"geospatialField": {
|
|
356
|
+
"added_zero": "Ni ychwanegwyd unrhyw leoliadau",
|
|
240
357
|
"added_one": "Ychwanegwyd [[count]] lleoliad",
|
|
358
|
+
"added_two": "Ychwanegwyd dau leoliad",
|
|
359
|
+
"added_few": "Ychwanegwyd [[count]] lleoliad",
|
|
360
|
+
"added_many": "Ychwanegwyd [[count]] o leoliadau",
|
|
241
361
|
"added_other": "Ychwanegwyd [[count]] lleoliad",
|
|
362
|
+
"map": {
|
|
363
|
+
"helpPanel": {
|
|
364
|
+
"label": "Sut i ddefnyddio'r map hwn",
|
|
365
|
+
"ledeIntro": "Gallwch ychwanegu",
|
|
366
|
+
"ledeOutro": "i'r map.",
|
|
367
|
+
"lineText": "llinell",
|
|
368
|
+
"shapeText": "siâp",
|
|
369
|
+
"lineOrShapeText": "llinell neu siâp",
|
|
370
|
+
"typesPhrasePoint": "pwyntiau",
|
|
371
|
+
"typesPhraseLine": "lliniau",
|
|
372
|
+
"typesPhraseShape": "siâpiau",
|
|
373
|
+
"typesPhraseOr": "neu",
|
|
374
|
+
"point1": "Chwilio am sir, lle neu god post",
|
|
375
|
+
"point2": "Defnyddiwch yr eiconau + a - i chwyddo i mewn ac allan",
|
|
376
|
+
"point3": "Cliciwch ddwywaith, neu dewiswch 'Wedi gorffen', pan fyddwch wedi",
|
|
377
|
+
"point4": "Rhowch enw i'r lleoliad"
|
|
378
|
+
},
|
|
379
|
+
"typeDescriptions": {
|
|
380
|
+
"point": "Pwynt",
|
|
381
|
+
"line": "Llinell",
|
|
382
|
+
"polygon": "Siâp"
|
|
383
|
+
},
|
|
384
|
+
"buttons": {
|
|
385
|
+
"point": "Ychwanegu pwynt",
|
|
386
|
+
"line": "Ychwanegu llinell",
|
|
387
|
+
"polygon": "Ychwanegu siâp"
|
|
388
|
+
},
|
|
389
|
+
"itemLabel1": "Lleoliad",
|
|
390
|
+
"itemLabel2": "disgrifiad",
|
|
391
|
+
"itemUpdateLink": "Diweddaru",
|
|
392
|
+
"itemDeleteLink": "Dileu",
|
|
393
|
+
"itemFocusLink": "Dangos",
|
|
394
|
+
"itemVisuallyHidden": "lleoliad",
|
|
395
|
+
"details": {
|
|
396
|
+
"summary": "Cyfesurynnau",
|
|
397
|
+
"type": "Math",
|
|
398
|
+
"centroidGridReference": "Canol cyfeirnod grid",
|
|
399
|
+
"firstPointGridReference": "Cyfeirnod grid y pwynt cyntaf",
|
|
400
|
+
"detailedCoordinates": "Cyfesurynnau manwl"
|
|
401
|
+
}
|
|
402
|
+
},
|
|
242
403
|
"validation": {
|
|
243
404
|
"descriptionRequired": "Rhowch ddisgrifiad ar gyfer lleoliad [[count]]",
|
|
244
405
|
"wrongCountry": "Rhaid i leoliad [[count]] fod y tu mewn i [[country]]"
|
|
@@ -262,11 +423,19 @@
|
|
|
262
423
|
},
|
|
263
424
|
|
|
264
425
|
"fileUploadField": {
|
|
426
|
+
"uploading": "Yn uwchlwytho…",
|
|
265
427
|
"uploaded": "Wedi'i uwchlwytho",
|
|
266
428
|
"uploadFailed": "Roedd problem gyda'ch ffeiliau a uwchlwythwyd. Uwchlwythwch nhw eto cyn cyflwyno'r ffurflen.",
|
|
267
429
|
"uploadedFilesHeading": "Ffeiliau a uwchlwythwyd",
|
|
430
|
+
"filesCount_zero": "Uwchlwythwyd [[count]] o ffeiliau",
|
|
268
431
|
"filesCount_one": "Uwchlwythwyd [[count]] ffeil",
|
|
269
|
-
"
|
|
432
|
+
"filesCount_two": "Uwchlwythwyd [[count]] ffeil",
|
|
433
|
+
"filesCount_few": "Uwchlwythwyd [[count]] ffeil",
|
|
434
|
+
"filesCount_many": "Uwchlwythwyd [[count]] o ffeiliau",
|
|
435
|
+
"filesCount_other": "Uwchlwythwyd [[count]] ffeil",
|
|
436
|
+
"chooseFile": "Dewiswch ffeil",
|
|
437
|
+
"dropFile": "neu ollwng ffeil",
|
|
438
|
+
"noFileChosen": "Dim ffeil wedi'i dewis"
|
|
270
439
|
},
|
|
271
440
|
|
|
272
441
|
"characterCount": {
|