@defra/forms-engine-plugin 5.0.0-alpha.2 → 5.0.0-alpha.21
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.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 +7 -0
- 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 +6 -3
- package/.server/client/javascripts/file-upload.js.map +1 -1
- package/.server/client/javascripts/geospatial-map.d.ts +153 -5
- package/.server/client/javascripts/geospatial-map.js +157 -77
- package/.server/client/javascripts/geospatial-map.js.map +1 -1
- 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 +54 -5
- 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 +10 -0
- package/.server/client/javascripts/map.js +42 -0
- 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/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 +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 +21 -0
- 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 +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 +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 +21 -0
- 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 +1 -0
- package/.server/server/plugins/engine/components/LocationFieldBase.d.ts +8 -2
- package/.server/server/plugins/engine/components/LocationFieldBase.js +25 -6
- 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 +16 -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 +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 +3 -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 +56 -15
- package/.server/server/plugins/engine/components/helpers/geospatial.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/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 +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 +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 +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 +192 -9
- package/.server/server/plugins/engine/i18n/translations/en-GB.json +125 -7
- package/.server/server/plugins/engine/i18n/types.d.ts +3 -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/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 +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/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/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 +10 -3
- package/.server/server/plugins/engine/types/schema.js.map +1 -1
- package/.server/server/plugins/engine/types.d.ts +18 -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/multilinetextfield.html +12 -1
- package/.server/server/plugins/engine/views/components/osgridreffield.html +4 -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/file-upload.html +1 -1
- package/.server/server/plugins/engine/views/partials/preview-banner.html +3 -1
- package/.server/server/plugins/engine/views/unavailable.html +14 -11
- 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/.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/package.json +20 -5
- package/src/client/javascripts/file-upload.js +11 -3
- package/src/client/javascripts/geospatial-map.js +176 -81
- package/src/client/javascripts/govuk.js +2 -0
- package/src/client/javascripts/location-map.js +60 -4
- package/src/client/javascripts/map-constants.js +3 -0
- package/src/client/javascripts/map.js +47 -0
- 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/plugins/engine/__stubs__/definitions.ts +155 -0
- package/src/server/plugins/engine/components/AutocompleteField.ts +13 -0
- package/src/server/plugins/engine/components/CheckboxesField.ts +38 -5
- 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 +185 -89
- package/src/server/plugins/engine/components/EmailAddressField.ts +2 -1
- package/src/server/plugins/engine/components/FileUploadField.ts +44 -3
- 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/LocationFieldBase.ts +30 -7
- 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 +21 -1
- package/src/server/plugins/engine/components/OsGridRefField.ts +22 -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 +3 -3
- package/src/server/plugins/engine/components/helpers/geospatial.ts +84 -21
- 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/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 +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 +192 -9
- package/src/server/plugins/engine/i18n/translations/en-GB.json +125 -7
- package/src/server/plugins/engine/i18n/types.ts +3 -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/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 +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/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/types/enums.ts +4 -3
- package/src/server/plugins/engine/types/schema.ts +17 -4
- package/src/server/plugins/engine/types.ts +19 -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/multilinetextfield.html +12 -1
- package/src/server/plugins/engine/views/components/osgridreffield.html +4 -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/file-upload.html +1 -1
- package/src/server/plugins/engine/views/partials/preview-banner.html +3 -1
- package/src/server/plugins/engine/views/unavailable.html +14 -11
- 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
- package/src/server/utils/utils.js +19 -1
|
@@ -3,13 +3,33 @@ import createDatasetsPlugin from '@defra/interactive-map/plugins/datasets';
|
|
|
3
3
|
// @ts-expect-error - no types
|
|
4
4
|
import createDrawPlugin from '@defra/interactive-map/plugins/draw-ml';
|
|
5
5
|
import { bbox } from '@turf/bbox';
|
|
6
|
-
import {
|
|
6
|
+
import { DEFAULT_LANG, ENGLISH_LANG, WELSH_LANG } from "./map-constants.js";
|
|
7
|
+
import { EVENTS, createMap, defaultConfig, getCentroidGridRef, getCoordinateGridRef, getMapCountryLayers, getMapLayers } from "./map.js";
|
|
7
8
|
import sssiDataset from "./sssi-dataset.js";
|
|
8
9
|
import { formatDelimtedList } from "./utils.js";
|
|
10
|
+
import cy from "../../server/plugins/engine/i18n/translations/cy.json" with { type: 'json' };
|
|
11
|
+
import enGB from "../../server/plugins/engine/i18n/translations/en-GB.json" with { type: 'json' };
|
|
12
|
+
const englishTranslations = enGB.components.geospatialField.map;
|
|
13
|
+
const welshTranslations = cy.components.geospatialField.map;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @type {Record<LanguageCode, GeospatialLanguageTexts>}
|
|
17
|
+
*/
|
|
18
|
+
export const languageTexts = {
|
|
19
|
+
[ENGLISH_LANG]: englishTranslations,
|
|
20
|
+
[WELSH_LANG]: welshTranslations
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Get the map texts for the given language code
|
|
25
|
+
* @param {LanguageCode} lang - the lanugae code
|
|
26
|
+
*/
|
|
27
|
+
export function getTexts(lang = DEFAULT_LANG) {
|
|
28
|
+
return languageTexts[lang];
|
|
29
|
+
}
|
|
9
30
|
const helpPanelConfig = {
|
|
10
31
|
focus: false,
|
|
11
32
|
showLabel: true,
|
|
12
|
-
label: 'How to use this map',
|
|
13
33
|
mobile: {
|
|
14
34
|
slot: 'drawer',
|
|
15
35
|
open: true,
|
|
@@ -31,51 +51,70 @@ const helpPanelConfig = {
|
|
|
31
51
|
};
|
|
32
52
|
|
|
33
53
|
/**
|
|
54
|
+
* @param {GeospatialPanelTexts} texts
|
|
34
55
|
* @param {boolean} allowLine
|
|
35
56
|
* @param {boolean} allowShape
|
|
36
57
|
*/
|
|
37
|
-
function getLineOrShapeText(allowLine, allowShape) {
|
|
58
|
+
function getLineOrShapeText(texts, allowLine, allowShape) {
|
|
38
59
|
if (allowLine && allowShape) {
|
|
39
|
-
return
|
|
60
|
+
return texts.lineOrShapeText;
|
|
40
61
|
}
|
|
41
62
|
if (allowLine) {
|
|
42
|
-
return
|
|
63
|
+
return texts.lineText;
|
|
43
64
|
}
|
|
44
65
|
if (allowShape) {
|
|
45
|
-
return
|
|
66
|
+
return texts.shapeText;
|
|
46
67
|
}
|
|
47
68
|
return '';
|
|
48
69
|
}
|
|
49
70
|
|
|
50
71
|
/**
|
|
72
|
+
* @param {GeospatialPanelTexts} texts
|
|
51
73
|
* @param {boolean} allowPoint
|
|
52
74
|
* @param {boolean} allowLine
|
|
53
75
|
* @param {boolean} allowShape
|
|
54
76
|
*/
|
|
55
|
-
function getAllowedTypesPhrase(allowPoint, allowLine, allowShape) {
|
|
77
|
+
function getAllowedTypesPhrase(texts, allowPoint, allowLine, allowShape) {
|
|
56
78
|
const items = [];
|
|
57
79
|
if (allowPoint) {
|
|
58
|
-
items.push(
|
|
80
|
+
items.push(texts.typesPhrasePoint);
|
|
59
81
|
}
|
|
60
82
|
if (allowLine) {
|
|
61
|
-
items.push(
|
|
83
|
+
items.push(texts.typesPhraseLine);
|
|
62
84
|
}
|
|
63
85
|
if (allowShape) {
|
|
64
|
-
items.push(
|
|
86
|
+
items.push(texts.typesPhraseShape);
|
|
65
87
|
}
|
|
66
|
-
return formatDelimtedList(items, ',',
|
|
88
|
+
return formatDelimtedList(items, ',', texts.typesPhraseOr);
|
|
67
89
|
}
|
|
68
90
|
|
|
69
91
|
/**
|
|
92
|
+
* Gets the type description for a given feature
|
|
93
|
+
* @param {Feature} feature - the geojson feature
|
|
94
|
+
* @param {GeometryTexts} typeDescriptions
|
|
95
|
+
*/
|
|
96
|
+
function getTypeDescription(feature, typeDescriptions) {
|
|
97
|
+
switch (feature.geometry.type) {
|
|
98
|
+
case 'Point':
|
|
99
|
+
return typeDescriptions.point;
|
|
100
|
+
case 'LineString':
|
|
101
|
+
return typeDescriptions.line;
|
|
102
|
+
case 'Polygon':
|
|
103
|
+
return typeDescriptions.polygon;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* @param {GeospatialPanelTexts} texts
|
|
70
109
|
* @param {boolean} allowPoint
|
|
71
110
|
* @param {boolean} allowLine
|
|
72
111
|
* @param {boolean} allowShape
|
|
73
112
|
*/
|
|
74
|
-
export function getHelpPanelHtml(allowPoint, allowLine, allowShape) {
|
|
75
|
-
const lineOrShapeText = getLineOrShapeText(allowLine, allowShape);
|
|
76
|
-
const
|
|
77
|
-
const allowedTypesText = getAllowedTypesPhrase(allowPoint, allowLine, allowShape);
|
|
78
|
-
return `<p class="govuk-body-s govuk-!-margin-bottom-2"
|
|
113
|
+
export function getHelpPanelHtml(texts, allowPoint, allowLine, allowShape) {
|
|
114
|
+
const lineOrShapeText = getLineOrShapeText(texts, allowLine, allowShape);
|
|
115
|
+
const point3 = lineOrShapeText ? `<li>${texts.point3} ${lineOrShapeText}</li>` : '';
|
|
116
|
+
const allowedTypesText = getAllowedTypesPhrase(texts, allowPoint, allowLine, allowShape);
|
|
117
|
+
return `<p class="govuk-body-s govuk-!-margin-bottom-2">${texts.ledeIntro} ${allowedTypesText} ${texts.ledeOutro}</p><ul class="govuk-list govuk-list--number govuk-body-s"><li>${texts.point1}</li><li>${texts.point2}</li>${point3}<li>${texts.point4}</li></ul>`;
|
|
79
118
|
}
|
|
80
119
|
const lineFeatureProperties = {
|
|
81
120
|
stroke: 'rgba(0, 11, 112, 1)',
|
|
@@ -87,15 +126,6 @@ const polygonFeatureProperties = {
|
|
|
87
126
|
fill: 'rgba(255, 221, 0, 0.2)',
|
|
88
127
|
strokeWidth: 2
|
|
89
128
|
};
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* @type {Record<'Point' | 'LineString' | 'Polygon', string>}
|
|
93
|
-
*/
|
|
94
|
-
const typeDescriptions = {
|
|
95
|
-
Point: 'Point',
|
|
96
|
-
LineString: 'Line',
|
|
97
|
-
Polygon: 'Shape'
|
|
98
|
-
};
|
|
99
129
|
const POINT_SVG = '<path d="M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0" /><circle cx="12" cy="10" r="3" />';
|
|
100
130
|
const POLYGON_SVG = '<path d="M19.5 7v10M4.5 7v10M7 19.5h10M7 4.5h10"/><path d="M22 18v3a1 1 0 0 1-1 1h-3a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1zm0-15v3a1 1 0 0 1-1 1h-3a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1zM7 18v3a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1zM7 3v3a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1z"/>';
|
|
101
131
|
const LINE_SVG = '<path d="M5.706 16.294L16.294 5.706"/><path d="M21 2v3c0 .549-.451 1-1 1h-3c-.549 0-1-.451-1-1V2c0-.549.451-1 1-1h3c.549 0 1 .451 1 1zM6 17v3c0 .549-.451 1-1 1H2c-.549 0-1-.451-1-1v-3c0-.549.451-1 1-1h3c.549 0 1 .451 1 1z"/>';
|
|
@@ -151,37 +181,16 @@ export function processGeospatial(config, geospatial, index) {
|
|
|
151
181
|
const plugins = [drawPlugin];
|
|
152
182
|
const country = geospatial.dataset.country;
|
|
153
183
|
const mapLayers = getMapLayers(geospatial.dataset.maplayers);
|
|
154
|
-
|
|
155
|
-
// Add the country bounds as a dataset plugin to show the valid area on the map
|
|
156
|
-
// and provide feedback to the user when they add features outside of the bounds.
|
|
157
|
-
const countriesDatasetPlugin = createDatasetsPlugin({
|
|
158
|
-
datasets: [{
|
|
159
|
-
id: 'invalid-area',
|
|
160
|
-
label: 'Invalid areas',
|
|
161
|
-
geojson: `${config.apiPath}/maps/countries.geojson?omit=${country}`,
|
|
162
|
-
showInKey: false,
|
|
163
|
-
showInMenu: false,
|
|
164
|
-
style: {
|
|
165
|
-
stroke: 'gray',
|
|
166
|
-
strokeWidth: 1,
|
|
167
|
-
fill: 'rgba(211,211,211,0.8)'
|
|
168
|
-
}
|
|
169
|
-
}, {
|
|
170
|
-
id: 'valid-area',
|
|
171
|
-
label: 'Valid areas',
|
|
172
|
-
geojson: `${config.apiPath}/maps/countries.geojson?only=${country}`,
|
|
173
|
-
showInKey: false,
|
|
174
|
-
showInMenu: false,
|
|
175
|
-
style: {
|
|
176
|
-
stroke: 'rgba(0,112,60,1)',
|
|
177
|
-
strokeWidth: 1
|
|
178
|
-
}
|
|
179
|
-
}]
|
|
180
|
-
});
|
|
181
|
-
plugins.push(countriesDatasetPlugin);
|
|
182
|
-
}
|
|
184
|
+
const datasets = getMapCountryLayers(config.apiPath, country);
|
|
183
185
|
if (mapLayers.includes('sssi')) {
|
|
184
|
-
|
|
186
|
+
datasets.push(...sssiDataset);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// Create a map dataset plugin if there are any present
|
|
190
|
+
if (datasets.length) {
|
|
191
|
+
plugins.push(createDatasetsPlugin({
|
|
192
|
+
datasets
|
|
193
|
+
}));
|
|
185
194
|
}
|
|
186
195
|
const initConfig = {
|
|
187
196
|
...defaultConfig,
|
|
@@ -198,12 +207,20 @@ export function processGeospatial(config, geospatial, index) {
|
|
|
198
207
|
const options = {
|
|
199
208
|
geometryTypes
|
|
200
209
|
};
|
|
201
|
-
const
|
|
210
|
+
const lang = /** @type {LanguageCode} */
|
|
211
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
212
|
+
geospatial.dataset.lang || DEFAULT_LANG;
|
|
213
|
+
const uiManager = getUIManager(geojson, map, mapId, listEl, geospatialInput, options, lang);
|
|
214
|
+
const languageManager = {
|
|
215
|
+
lang,
|
|
216
|
+
texts: getTexts(lang)
|
|
217
|
+
};
|
|
202
218
|
|
|
203
219
|
/**
|
|
204
220
|
* @type {Context}
|
|
205
221
|
*/
|
|
206
222
|
const context = {
|
|
223
|
+
languageManager,
|
|
207
224
|
map,
|
|
208
225
|
featuresManager,
|
|
209
226
|
activeFeatureManager,
|
|
@@ -248,10 +265,11 @@ export function addFeatureToMap(feature, drawPlugin, map) {
|
|
|
248
265
|
* @param {string} mapId - the ID of the map
|
|
249
266
|
* @param {boolean} [disabled] - render the list with disabled links
|
|
250
267
|
* @param {boolean} [readonly] - render the list in readonly mode
|
|
268
|
+
* @param {LanguageCode} [lang] - the language for the feature details
|
|
251
269
|
*/
|
|
252
|
-
export function createFeaturesHTML(features, mapId, disabled = false, readonly = false) {
|
|
270
|
+
export function createFeaturesHTML(features, mapId, disabled = false, readonly = false, lang = DEFAULT_LANG) {
|
|
253
271
|
return `<dl class="govuk-summary-list">
|
|
254
|
-
${features.map((feature, index) => createFeatureHTML(feature, index, mapId, disabled, readonly)).join('\n')}
|
|
272
|
+
${features.map((feature, index) => createFeatureHTML(feature, index, mapId, disabled, readonly, lang)).join('\n')}
|
|
255
273
|
</dl>`;
|
|
256
274
|
}
|
|
257
275
|
|
|
@@ -271,8 +289,10 @@ export function focusFeature(feature, mapProvider) {
|
|
|
271
289
|
* @param {string} mapId - the ID of the map
|
|
272
290
|
* @param {boolean} [disabled] - render the list with disabled links
|
|
273
291
|
* @param {boolean} [readonly] - render the list item in readonly mode
|
|
292
|
+
* @param {LanguageCode} [lang] - the language for the feature details
|
|
274
293
|
*/
|
|
275
|
-
export function createFeatureHTML(feature, index, mapId, disabled = false, readonly = false) {
|
|
294
|
+
export function createFeatureHTML(feature, index, mapId, disabled = false, readonly = false, lang = DEFAULT_LANG) {
|
|
295
|
+
const texts = getTexts(lang);
|
|
276
296
|
const flattened = feature.geometry.coordinates.flat(2);
|
|
277
297
|
const points = [];
|
|
278
298
|
for (let i = 0; i < flattened.length; i += 2) {
|
|
@@ -284,25 +304,26 @@ export function createFeatureHTML(feature, index, mapId, disabled = false, reado
|
|
|
284
304
|
// Change action link
|
|
285
305
|
const changeAction = () => `<li class="govuk-summary-list__actions-list-item">
|
|
286
306
|
<a class="govuk-link govuk-link--no-visited-state ${disabled ? 'govuk-link--disabled' : ''}" href="#${mapId}" data-action="edit" data-id="${feature.id}"
|
|
287
|
-
data-type="${feature.geometry.type}"
|
|
307
|
+
data-type="${feature.geometry.type}">${texts.itemUpdateLink}<span class="govuk-visually-hidden"> ${texts.itemVisuallyHidden}</span></a>
|
|
288
308
|
</li>`;
|
|
289
309
|
|
|
290
310
|
// Delete action link
|
|
291
311
|
const deleteAction = () => `<li class="govuk-summary-list__actions-list-item">
|
|
292
312
|
<a class="govuk-link govuk-link--no-visited-state ${disabled ? 'govuk-link--disabled' : ''}" href="#" data-action="delete" data-id="${feature.id}"
|
|
293
|
-
data-type="${feature.geometry.type}"
|
|
313
|
+
data-type="${feature.geometry.type}">${texts.itemDeleteLink}<span class="govuk-visually-hidden"> ${texts.itemVisuallyHidden}</span></a>
|
|
294
314
|
</li>`;
|
|
295
315
|
|
|
296
316
|
// Focus action link
|
|
297
317
|
const focusAction = () => `<li class="govuk-summary-list__actions-list-item">
|
|
298
|
-
<a class="govuk-link govuk-link--no-visited-state" href="#${mapId}" data-action="focus" data-id="${feature.id}"
|
|
318
|
+
<a class="govuk-link govuk-link--no-visited-state" href="#${mapId}" data-action="focus" data-id="${feature.id}">${texts.itemFocusLink}<span class="govuk-visually-hidden"> ${texts.itemVisuallyHidden}</span></a>
|
|
299
319
|
</li>`;
|
|
300
320
|
const links = readonly ? focusAction() : `${changeAction()}${deleteAction()}`;
|
|
301
321
|
const actions = `<ul class="govuk-summary-list__actions-list">${links}</ul>`;
|
|
322
|
+
const typeDescription = getTypeDescription(feature, texts.typeDescriptions);
|
|
302
323
|
return `<div class="govuk-summary-list__row govuk-summary-list__row--no-border">
|
|
303
324
|
<dt class="govuk-summary-list__key">
|
|
304
325
|
<div class="govuk-form-group">
|
|
305
|
-
<label class="govuk-label govuk-label--s" ${readonly ? '' : `for="description_${index}"`}
|
|
326
|
+
<label class="govuk-label govuk-label--s" ${readonly ? '' : `for="description_${index}"`}>${texts.itemLabel1} ${index + 1} ${texts.itemLabel2}</label>
|
|
306
327
|
${description}
|
|
307
328
|
</div>
|
|
308
329
|
</dt>
|
|
@@ -313,24 +334,24 @@ export function createFeatureHTML(feature, index, mapId, disabled = false, reado
|
|
|
313
334
|
<div class="govuk-summary-list__row">
|
|
314
335
|
<details class="govuk-details govuk-!-margin-bottom-2">
|
|
315
336
|
<summary class="govuk-details__summary">
|
|
316
|
-
<span class="govuk-details__summary-text"
|
|
337
|
+
<span class="govuk-details__summary-text">${texts.details.summary}</span>
|
|
317
338
|
</summary>
|
|
318
339
|
<div class="govuk-details__text">
|
|
319
340
|
<dl class="govuk-summary-list">
|
|
320
341
|
<div class="govuk-summary-list__row">
|
|
321
|
-
<dt class="govuk-summary-list__key"
|
|
322
|
-
<dd class="govuk-summary-list__value">${
|
|
342
|
+
<dt class="govuk-summary-list__key">${texts.details.type}</dt>
|
|
343
|
+
<dd class="govuk-summary-list__value">${typeDescription}</dd>
|
|
323
344
|
</div>
|
|
324
345
|
<div class="govuk-summary-list__row">
|
|
325
|
-
<dt class="govuk-summary-list__key"
|
|
346
|
+
<dt class="govuk-summary-list__key">${texts.details.centroidGridReference}</dt>
|
|
326
347
|
<dd class="govuk-summary-list__value">${feature.properties.centroidGridReference}</dd>
|
|
327
348
|
</div>
|
|
328
349
|
<div class="govuk-summary-list__row">
|
|
329
|
-
<dt class="govuk-summary-list__key"
|
|
350
|
+
<dt class="govuk-summary-list__key">${texts.details.firstPointGridReference}</dt>
|
|
330
351
|
<dd class="govuk-summary-list__value">${feature.properties.coordinateGridReference}</dd>
|
|
331
352
|
</div>
|
|
332
353
|
<div class="govuk-summary-list__row">
|
|
333
|
-
<dt class="govuk-summary-list__key"
|
|
354
|
+
<dt class="govuk-summary-list__key">${texts.details.detailedCoordinates}</dt>
|
|
334
355
|
<dd class="govuk-summary-list__value">
|
|
335
356
|
<ol class="govuk-list govuk-list--number">${coordinates}</ol>
|
|
336
357
|
</dd>
|
|
@@ -485,11 +506,12 @@ function getFeaturesManager(geojson) {
|
|
|
485
506
|
* @param {string} mapId - the ID of the map
|
|
486
507
|
* @param {HTMLDivElement} listEl - where to render the feature list
|
|
487
508
|
* @param {Function} renderValue - function that renders the features JSON into the hidden textarea
|
|
509
|
+
* @param {LanguageCode} [lang] - the language for the feature details
|
|
488
510
|
* @returns {RenderList}
|
|
489
511
|
*/
|
|
490
|
-
function getListRenderer(geojson, mapId, listEl, renderValue) {
|
|
512
|
+
function getListRenderer(geojson, mapId, listEl, renderValue, lang = DEFAULT_LANG) {
|
|
491
513
|
return function renderList(disabled = false) {
|
|
492
|
-
const html = createFeaturesHTML(geojson.features, mapId, disabled);
|
|
514
|
+
const html = createFeaturesHTML(geojson.features, mapId, disabled, false, lang);
|
|
493
515
|
listEl.innerHTML = html;
|
|
494
516
|
renderValue();
|
|
495
517
|
};
|
|
@@ -515,8 +537,9 @@ function getValueRenderer(geojson, geospatialInput) {
|
|
|
515
537
|
* @param {HTMLDivElement} listEl - where to render the feature list
|
|
516
538
|
* @param {HTMLTextAreaElement} geospatialInput - the geospatial textarea
|
|
517
539
|
* @param { UIManagerOptions | undefined } options - extra options such as allowable geometry types
|
|
540
|
+
* @param {LanguageCode} [lang] - the language for the feature details
|
|
518
541
|
*/
|
|
519
|
-
export function getUIManager(geojson, map, mapId, listEl, geospatialInput, options) {
|
|
542
|
+
export function getUIManager(geojson, map, mapId, listEl, geospatialInput, options, lang = DEFAULT_LANG) {
|
|
520
543
|
/**
|
|
521
544
|
* Get a CSV list of geometry types the user can create
|
|
522
545
|
* @returns {string[]}
|
|
@@ -555,7 +578,7 @@ export function getUIManager(geojson, map, mapId, listEl, geospatialInput, optio
|
|
|
555
578
|
}
|
|
556
579
|
}
|
|
557
580
|
const renderValue = getValueRenderer(geojson, geospatialInput);
|
|
558
|
-
const renderList = getListRenderer(geojson, mapId, listEl, renderValue);
|
|
581
|
+
const renderList = getListRenderer(geojson, mapId, listEl, renderValue, lang);
|
|
559
582
|
|
|
560
583
|
/** @type {UIManager} */
|
|
561
584
|
return {
|
|
@@ -633,16 +656,20 @@ function onMapReadyFactory(context) {
|
|
|
633
656
|
const allowPoint = types.includes('point');
|
|
634
657
|
const allowLine = types.includes('line');
|
|
635
658
|
const allowShape = types.includes('shape');
|
|
659
|
+
const {
|
|
660
|
+
texts
|
|
661
|
+
} = context.languageManager;
|
|
636
662
|
|
|
637
663
|
// Add info panel
|
|
638
664
|
map.addPanel('info', {
|
|
639
665
|
...helpPanelConfig,
|
|
640
|
-
|
|
666
|
+
label: texts.helpPanel.label,
|
|
667
|
+
html: getHelpPanelHtml(texts.helpPanel, allowPoint, allowLine, allowShape)
|
|
641
668
|
});
|
|
642
669
|
if (allowPoint) {
|
|
643
670
|
map.addButton('btnAddPoint', {
|
|
644
671
|
variant: 'tertiary',
|
|
645
|
-
label:
|
|
672
|
+
label: texts.buttons.point,
|
|
646
673
|
iconSvgContent: POINT_SVG,
|
|
647
674
|
onClick: () => {
|
|
648
675
|
resetActiveFeature();
|
|
@@ -664,7 +691,7 @@ function onMapReadyFactory(context) {
|
|
|
664
691
|
if (allowShape) {
|
|
665
692
|
map.addButton('btnAddPolygon', {
|
|
666
693
|
variant: 'tertiary',
|
|
667
|
-
label:
|
|
694
|
+
label: texts.buttons.polygon,
|
|
668
695
|
iconSvgContent: POLYGON_SVG,
|
|
669
696
|
onClick: () => {
|
|
670
697
|
resetActiveFeature();
|
|
@@ -686,7 +713,7 @@ function onMapReadyFactory(context) {
|
|
|
686
713
|
if (allowLine) {
|
|
687
714
|
map.addButton('btnAddLine', {
|
|
688
715
|
variant: 'tertiary',
|
|
689
|
-
label:
|
|
716
|
+
label: texts.buttons.line,
|
|
690
717
|
iconSvgContent: LINE_SVG,
|
|
691
718
|
onClick: () => {
|
|
692
719
|
resetActiveFeature();
|
|
@@ -1159,6 +1186,7 @@ function onListElKeydownFactory() {
|
|
|
1159
1186
|
* Renders the features into the list
|
|
1160
1187
|
* @callback RenderList
|
|
1161
1188
|
* @param {boolean} [disabled] - whether to render the list with disabled links
|
|
1189
|
+
* @param {LanguageCode} [lang] - the language for the feature details
|
|
1162
1190
|
* @returns {void}
|
|
1163
1191
|
*/
|
|
1164
1192
|
|
|
@@ -1213,8 +1241,59 @@ function onListElKeydownFactory() {
|
|
|
1213
1241
|
* @property {GetAllowableGeometryTypes} getAllowableGeometryTypes - function that returns the array of geometry types a user can create
|
|
1214
1242
|
*/
|
|
1215
1243
|
|
|
1244
|
+
/**
|
|
1245
|
+
* @typedef {object} GeometryTexts
|
|
1246
|
+
* @property {string} point - the label for a point feature in the list
|
|
1247
|
+
* @property {string} line - the label for a line string feature in the list
|
|
1248
|
+
* @property {string} polygon - the label for a polygon feature in the list
|
|
1249
|
+
*/
|
|
1250
|
+
|
|
1251
|
+
/**
|
|
1252
|
+
* @typedef {object} GeospatialPanelTexts
|
|
1253
|
+
* @property {string} label - the label for the info panel
|
|
1254
|
+
* @property {string} ledeIntro - the lede intro text for the info panel
|
|
1255
|
+
* @property {string} ledeOutro - the lede outro text for the info panel
|
|
1256
|
+
* @property {string} lineText - the label for the info panel line text
|
|
1257
|
+
* @property {string} shapeText - the label for the info panel shape text
|
|
1258
|
+
* @property {string} point1 - the text for bullet point 1 in the info panel
|
|
1259
|
+
* @property {string} point2 - the text for bullet point 2 in the info panel
|
|
1260
|
+
* @property {string} point3 - the text for bullet point 3 in the info panel
|
|
1261
|
+
* @property {string} point4 - the text for bullet point 4 in the info panel
|
|
1262
|
+
* @property {string} lineOrShapeText - the label for the info panel line or shape text
|
|
1263
|
+
* @property {string} typesPhrasePoint - the label for the info panel types phrase point
|
|
1264
|
+
* @property {string} typesPhraseLine - the label for the info panel types phrase line
|
|
1265
|
+
* @property {string} typesPhraseShape - the label for the info panel types phrase shape
|
|
1266
|
+
* @property {string} typesPhraseOr - the label for the info panel types phrase "or"
|
|
1267
|
+
*/
|
|
1268
|
+
|
|
1269
|
+
/**
|
|
1270
|
+
* @typedef {object} GeospatialLanguageTexts
|
|
1271
|
+
* @property {GeometryTexts} typeDescriptions - the descriptions of the geometry types
|
|
1272
|
+
* @property {GeospatialPanelTexts} helpPanel - texts for the info panel
|
|
1273
|
+
* @property {GeometryTexts} buttons - the labels for the action buttons
|
|
1274
|
+
* @property {string} itemLabel1 - the first part of the label for a feature in the list
|
|
1275
|
+
* @property {string} itemLabel2 - the second part of the label for a feature in the list
|
|
1276
|
+
* @property {string} itemUpdateLink - the label for the "update" link for a feature in the list
|
|
1277
|
+
* @property {string} itemDeleteLink - the label for the "delete" link for a feature in the list
|
|
1278
|
+
* @property {string} itemFocusLink - the label for the "focus" link for a feature in the list
|
|
1279
|
+
* @property {string} itemVisuallyHidden - visually hidden text to add context to action links
|
|
1280
|
+
* @property {object} details - labels for the details section of a feature in the list
|
|
1281
|
+
* @property {string} details.summary - label for the summary of a feature in the list
|
|
1282
|
+
* @property {string} details.type - label for the type of a feature in the list
|
|
1283
|
+
* @property {string} details.centroidGridReference - label for the centroid grid reference of a feature in the list
|
|
1284
|
+
* @property {string} details.firstPointGridReference - label for the first point grid reference of a feature in the list
|
|
1285
|
+
* @property {string} details.detailedCoordinates - label for the detailed coordinates of a feature in the list
|
|
1286
|
+
*/
|
|
1287
|
+
|
|
1288
|
+
/**
|
|
1289
|
+
* @typedef {object} LanguageManager
|
|
1290
|
+
* @property {LanguageCode} lang - the language for the interactive map
|
|
1291
|
+
* @property {GeospatialLanguageTexts} texts - the descriptions of the geometry types
|
|
1292
|
+
*/
|
|
1293
|
+
|
|
1216
1294
|
/**
|
|
1217
1295
|
* @typedef {object} Context
|
|
1296
|
+
* @property {LanguageManager} languageManager - the language manager for the interactive map
|
|
1218
1297
|
* @property {InteractiveMap} map - the interactive map
|
|
1219
1298
|
* @property {MapLibreMap} [mapProvider] - the interactive map provider
|
|
1220
1299
|
* @property {FeaturesManager} featuresManager - the features manager
|
|
@@ -1225,6 +1304,7 @@ function onListElKeydownFactory() {
|
|
|
1225
1304
|
*/
|
|
1226
1305
|
|
|
1227
1306
|
/**
|
|
1307
|
+
* @import { LanguageCode } from '../../client/javascripts/map.js'
|
|
1228
1308
|
* @import { MapLibreMap, UIManagerOptions } from '../../client/javascripts/map.js'
|
|
1229
1309
|
*/
|
|
1230
1310
|
//# sourceMappingURL=geospatial-map.js.map
|