@dwp/govuk-casa 8.7.12 → 8.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/casa.js +2 -1
- package/dist/casa.js.map +1 -0
- package/dist/lib/CasaTemplateLoader.js +1 -0
- package/dist/lib/CasaTemplateLoader.js.map +1 -0
- package/dist/lib/JourneyContext.d.ts +1 -1
- package/dist/lib/JourneyContext.js +2 -1
- package/dist/lib/JourneyContext.js.map +1 -0
- package/dist/lib/MutableRouter.js +1 -0
- package/dist/lib/MutableRouter.js.map +1 -0
- package/dist/lib/Plan.d.ts +2 -1
- package/dist/lib/Plan.js +4 -3
- package/dist/lib/Plan.js.map +1 -0
- package/dist/lib/ValidationError.js +1 -0
- package/dist/lib/ValidationError.js.map +1 -0
- package/dist/lib/ValidatorFactory.d.ts +2 -2
- package/dist/lib/ValidatorFactory.js +3 -2
- package/dist/lib/ValidatorFactory.js.map +1 -0
- package/dist/lib/configuration-ingestor.js +1 -0
- package/dist/lib/configuration-ingestor.js.map +1 -0
- package/dist/lib/configure.js +2 -1
- package/dist/lib/configure.js.map +1 -0
- package/dist/lib/end-session.js +1 -0
- package/dist/lib/end-session.js.map +1 -0
- package/dist/lib/field.js +1 -0
- package/dist/lib/field.js.map +1 -0
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/logger.js +1 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/mount.js +3 -2
- package/dist/lib/mount.js.map +1 -0
- package/dist/lib/nunjucks-filters.js +1 -0
- package/dist/lib/nunjucks-filters.js.map +1 -0
- package/dist/lib/nunjucks.js +1 -0
- package/dist/lib/nunjucks.js.map +1 -0
- package/dist/lib/utils.d.ts +45 -27
- package/dist/lib/utils.js +105 -67
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/validators/dateObject.js +4 -3
- package/dist/lib/validators/dateObject.js.map +1 -0
- package/dist/lib/validators/email.js +1 -0
- package/dist/lib/validators/email.js.map +1 -0
- package/dist/lib/validators/inArray.js +1 -0
- package/dist/lib/validators/inArray.js.map +1 -0
- package/dist/lib/validators/index.js +1 -0
- package/dist/lib/validators/index.js.map +1 -0
- package/dist/lib/validators/nino.js +1 -0
- package/dist/lib/validators/nino.js.map +1 -0
- package/dist/lib/validators/postalAddressObject.d.ts +2 -2
- package/dist/lib/validators/postalAddressObject.js +2 -1
- package/dist/lib/validators/postalAddressObject.js.map +1 -0
- package/dist/lib/validators/regex.js +1 -0
- package/dist/lib/validators/regex.js.map +1 -0
- package/dist/lib/validators/required.js +1 -0
- package/dist/lib/validators/required.js.map +1 -0
- package/dist/lib/validators/strlen.js +1 -0
- package/dist/lib/validators/strlen.js.map +1 -0
- package/dist/lib/validators/wordCount.js +1 -0
- package/dist/lib/validators/wordCount.js.map +1 -0
- package/dist/lib/waypoint-url.js +1 -0
- package/dist/lib/waypoint-url.js.map +1 -0
- package/dist/middleware/body-parser.js +1 -0
- package/dist/middleware/body-parser.js.map +1 -0
- package/dist/middleware/csrf.js +1 -0
- package/dist/middleware/csrf.js.map +1 -0
- package/dist/middleware/data.js +1 -0
- package/dist/middleware/data.js.map +1 -0
- package/dist/middleware/gather-fields.js +1 -0
- package/dist/middleware/gather-fields.js.map +1 -0
- package/dist/middleware/i18n.js +1 -0
- package/dist/middleware/i18n.js.map +1 -0
- package/dist/middleware/post.js +1 -0
- package/dist/middleware/post.js.map +1 -0
- package/dist/middleware/pre.js +1 -0
- package/dist/middleware/pre.js.map +1 -0
- package/dist/middleware/progress-journey.js +1 -0
- package/dist/middleware/progress-journey.js.map +1 -0
- package/dist/middleware/sanitise-fields.js +1 -0
- package/dist/middleware/sanitise-fields.js.map +1 -0
- package/dist/middleware/serve-first-waypoint.js +1 -0
- package/dist/middleware/serve-first-waypoint.js.map +1 -0
- package/dist/middleware/session.js +1 -0
- package/dist/middleware/session.js.map +1 -0
- package/dist/middleware/skip-waypoint.js +1 -0
- package/dist/middleware/skip-waypoint.js.map +1 -0
- package/dist/middleware/steer-journey.js +1 -0
- package/dist/middleware/steer-journey.js.map +1 -0
- package/dist/middleware/strip-proxy-path.js +1 -0
- package/dist/middleware/strip-proxy-path.js.map +1 -0
- package/dist/middleware/validate-fields.js +1 -0
- package/dist/middleware/validate-fields.js.map +1 -0
- package/dist/mjs/esm-wrapper.js +10 -15
- package/dist/routes/ancillary.js +1 -0
- package/dist/routes/ancillary.js.map +1 -0
- package/dist/routes/journey.js +1 -0
- package/dist/routes/journey.js.map +1 -0
- package/dist/routes/static.js +1 -0
- package/dist/routes/static.js.map +1 -0
- package/locales/cy/error.json +1 -1
- package/locales/en/error.json +1 -1
- package/package.json +16 -15
- package/src/casa.js +320 -0
- package/src/lib/CasaTemplateLoader.js +104 -0
- package/src/lib/JourneyContext.js +783 -0
- package/src/lib/MutableRouter.js +310 -0
- package/src/lib/Plan.js +624 -0
- package/src/lib/ValidationError.js +163 -0
- package/src/lib/ValidatorFactory.js +105 -0
- package/src/lib/configuration-ingestor.js +457 -0
- package/src/lib/configure.js +202 -0
- package/src/lib/dirname.cjs +1 -0
- package/src/lib/end-session.js +45 -0
- package/src/lib/field.js +456 -0
- package/src/lib/index.js +33 -0
- package/src/lib/logger.js +16 -0
- package/src/lib/mount.js +127 -0
- package/src/lib/nunjucks-filters.js +150 -0
- package/src/lib/nunjucks.js +53 -0
- package/src/lib/utils.js +232 -0
- package/src/lib/validators/dateObject.js +169 -0
- package/src/lib/validators/email.js +55 -0
- package/src/lib/validators/inArray.js +81 -0
- package/src/lib/validators/index.js +24 -0
- package/src/lib/validators/nino.js +57 -0
- package/src/lib/validators/postalAddressObject.js +162 -0
- package/src/lib/validators/regex.js +48 -0
- package/src/lib/validators/required.js +74 -0
- package/src/lib/validators/strlen.js +66 -0
- package/src/lib/validators/wordCount.js +70 -0
- package/src/lib/waypoint-url.js +93 -0
- package/src/middleware/body-parser.js +31 -0
- package/src/middleware/csrf.js +29 -0
- package/src/middleware/data.js +105 -0
- package/src/middleware/dirname.cjs +1 -0
- package/src/middleware/gather-fields.js +51 -0
- package/src/middleware/i18n.js +106 -0
- package/src/middleware/post.js +61 -0
- package/src/middleware/pre.js +91 -0
- package/src/middleware/progress-journey.js +92 -0
- package/src/middleware/sanitise-fields.js +58 -0
- package/src/middleware/serve-first-waypoint.js +28 -0
- package/src/middleware/session.js +129 -0
- package/src/middleware/skip-waypoint.js +46 -0
- package/src/middleware/steer-journey.js +78 -0
- package/src/middleware/strip-proxy-path.js +56 -0
- package/src/middleware/validate-fields.js +84 -0
- package/src/routes/ancillary.js +29 -0
- package/src/routes/dirname.cjs +1 -0
- package/src/routes/journey.js +212 -0
- package/src/routes/static.js +77 -0
- package/views/casa/components/character-count/README.md +10 -0
- package/views/casa/components/character-count/template.njk +6 -2
- package/views/casa/components/checkboxes/README.md +43 -34
- package/views/casa/components/checkboxes/template.njk +8 -7
- package/views/casa/components/date-input/README.md +11 -1
- package/views/casa/components/date-input/template.njk +6 -4
- package/views/casa/components/input/README.md +9 -0
- package/views/casa/components/input/template.njk +6 -2
- package/views/casa/components/postal-address-object/README.md +10 -0
- package/views/casa/components/postal-address-object/template.njk +20 -5
- package/views/casa/components/radios/README.md +49 -24
- package/views/casa/components/radios/template.njk +6 -3
- package/views/casa/components/select/README.md +65 -0
- package/views/casa/components/select/macro.njk +3 -0
- package/views/casa/components/select/template.njk +49 -0
- package/views/casa/components/textarea/README.md +9 -0
- package/views/casa/components/textarea/template.njk +6 -2
- package/views/casa/layouts/journey.njk +1 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{% from 'govuk/components/select/macro.njk' import govukSelect %}
|
|
2
|
+
|
|
3
|
+
{% set fieldErrors = params.casaErrors[params.name] %}
|
|
4
|
+
|
|
5
|
+
{# Generate validation data- attributes #}
|
|
6
|
+
{% set mergedAttributes = params.attributes or {} %}
|
|
7
|
+
{% if fieldErrors %}
|
|
8
|
+
{% set mergedAttributes = mergeObjects(mergedAttributes, {
|
|
9
|
+
'data-validation': {fn: params.name, va: fieldErrors[0].validator} | dump
|
|
10
|
+
}) %}
|
|
11
|
+
{% endif %}
|
|
12
|
+
|
|
13
|
+
{# Add selected flag to chosen item #}
|
|
14
|
+
{% set mergedItems = [] %}
|
|
15
|
+
{% for item in params.items %}
|
|
16
|
+
{% set item = mergeObjects({
|
|
17
|
+
attributes: {
|
|
18
|
+
'data-ga-question': params.label.text or params.label.html,
|
|
19
|
+
'data-ga-answer': item.text or item.html
|
|
20
|
+
}
|
|
21
|
+
} if params.casaWithAnalytics else {}, item, {
|
|
22
|
+
selected: true if item.selected or item.value == params.casaValue else false
|
|
23
|
+
}) %}
|
|
24
|
+
{% set mergedItems = (mergedItems.push(item), mergedItems) %}
|
|
25
|
+
{% endfor %}
|
|
26
|
+
|
|
27
|
+
{# Merge parameters #}
|
|
28
|
+
{% set mergedParams = mergeObjects(params, {
|
|
29
|
+
id: params.id if params.id else 'f-' + params.name,
|
|
30
|
+
attributes: mergedAttributes,
|
|
31
|
+
items: mergedItems,
|
|
32
|
+
errorMessage: {
|
|
33
|
+
text: t(params.casaErrors[params.name][0].inline, params.casaErrors[params.name][0].variables),
|
|
34
|
+
attributes: {
|
|
35
|
+
'data-ga-question': params.label.text or params.label.html | striptags
|
|
36
|
+
} if params.casaWithAnalytics else {}
|
|
37
|
+
} if params.casaErrors[params.name].length
|
|
38
|
+
}) %}
|
|
39
|
+
|
|
40
|
+
{# Ensure that the first item has the id matching `f-<name>` in order for error summary linkage to work
|
|
41
|
+
{% if not mergedParams.items[0].id %}
|
|
42
|
+
{% set mergedParams = mergeObjects(mergedParams, {
|
|
43
|
+
items: [{
|
|
44
|
+
id: 'f-' + params.name
|
|
45
|
+
}]
|
|
46
|
+
}) %}
|
|
47
|
+
{% endif %} #}
|
|
48
|
+
|
|
49
|
+
{{ govukSelect(mergedParams) }}
|
|
@@ -19,3 +19,12 @@ casaGovukTextarea({
|
|
|
19
19
|
casaErrors: formErrors
|
|
20
20
|
})
|
|
21
21
|
```
|
|
22
|
+
## Google Tag Manager
|
|
23
|
+
|
|
24
|
+
The following attributes will be attached to the error `<p>` tag if `casaWithAnalytics` is `true`:
|
|
25
|
+
|
|
26
|
+
* `data-ga-question`: Holds the fieldset label's text content after removing all html tags
|
|
27
|
+
|
|
28
|
+
These are the conventions used by DWP.
|
|
29
|
+
|
|
30
|
+
> **IMPORTANT:** DO NOT ENABLE this option if the question or answer may contain personally-identifiable information as values will be pushed to Google
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{% from
|
|
1
|
+
{% from 'govuk/components/textarea/macro.njk' import govukTextarea %}
|
|
2
2
|
|
|
3
3
|
{% set fieldErrors = params.casaErrors[params.name] %}
|
|
4
4
|
|
|
@@ -10,11 +10,15 @@
|
|
|
10
10
|
}) %}
|
|
11
11
|
{% endif %}
|
|
12
12
|
|
|
13
|
+
{# Merge parameters #}
|
|
13
14
|
{% set mergedParams = mergeObjects(params, {
|
|
14
15
|
id: params.id if params.id else 'f-' + params.name,
|
|
15
16
|
attributes: mergedAttributes,
|
|
16
17
|
errorMessage: {
|
|
17
|
-
text: t(params.casaErrors[params.name][0].inline, params.casaErrors[params.name][0].variables)
|
|
18
|
+
text: t(params.casaErrors[params.name][0].inline, params.casaErrors[params.name][0].variables),
|
|
19
|
+
attributes: {
|
|
20
|
+
'data-ga-question': params.label.text or params.label.html | striptags
|
|
21
|
+
} if params.casaWithAnalytics else {}
|
|
18
22
|
} if params.casaErrors[params.name].length
|
|
19
23
|
}) %}
|
|
20
24
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
{# Use `casaPageTitle` instead of `pageTitle` if you want CASA to automatically prefix with `Error` when appropriate #}
|
|
24
24
|
{% block pageTitle -%}
|
|
25
|
-
{{- t("error:
|
|
25
|
+
{{- t("error:documentTitlePrefix") if formErrors -}}
|
|
26
26
|
{% block casaPageTitle %}{% endblock %}
|
|
27
27
|
{%- endblock %}
|
|
28
28
|
|