@defra/forms-engine-plugin 5.0.0-alpha.14 → 5.0.0-alpha.16

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.
@@ -1,9 +1,110 @@
1
1
  import { type OsGridRefFieldComponent } from '@defra/forms-model';
2
2
  import { LocationFieldBase } from '../../../../server/plugins/engine/components/LocationFieldBase.js';
3
+ import { type RenderContext } from '../../../../server/plugins/engine/components/types.js';
3
4
  import { type Translator } from '../../../../server/plugins/engine/types/index.js';
4
5
  import { type ErrorMessageTemplateList } from '../../../../server/plugins/engine/types.js';
5
6
  export declare class OsGridRefField extends LocationFieldBase {
6
7
  options: OsGridRefFieldComponent['options'];
8
+ getViewModel(context: RenderContext): {
9
+ label: {
10
+ text: string;
11
+ };
12
+ id: string;
13
+ name: string;
14
+ value: import("../../../../server/plugins/engine/types.js").FormValue;
15
+ type?: string;
16
+ hint?: {
17
+ id?: string;
18
+ text: string;
19
+ };
20
+ prefix?: import("../../../../server/plugins/engine/components/types.js").ComponentText;
21
+ suffix?: import("../../../../server/plugins/engine/components/types.js").ComponentText;
22
+ classes?: string;
23
+ condition?: string;
24
+ errors?: import("../../../../server/plugins/engine/types.js").FormSubmissionError[];
25
+ errorMessage?: {
26
+ text: string;
27
+ };
28
+ summaryHtml?: string;
29
+ html?: string;
30
+ attributes: {
31
+ autocomplete?: string;
32
+ maxlength?: number;
33
+ multiple?: string;
34
+ accept?: string;
35
+ inputmode?: string;
36
+ };
37
+ content?: import("../../../../server/plugins/engine/components/types.js").Content | import("../../../../server/plugins/engine/components/types.js").Content[] | string;
38
+ maxlength?: number;
39
+ maxwords?: number;
40
+ rows?: number;
41
+ items?: import("../../../../server/plugins/engine/components/types.js").ListItem[] | import("../../../../server/plugins/engine/components/types.js").DateInputItem[];
42
+ fieldset?: {
43
+ attributes?: string | Record<string, string>;
44
+ legend?: import("../../../../server/plugins/engine/components/types.js").Label;
45
+ };
46
+ formGroup?: {
47
+ classes?: string;
48
+ attributes?: string | Record<string, string>;
49
+ };
50
+ showFieldsetError?: boolean;
51
+ components?: import("../../../../server/plugins/engine/components/types.js").ComponentViewModel[];
52
+ upload?: {
53
+ count: number;
54
+ summaryList: import("../../../../server/plugins/engine/types.js").SummaryList;
55
+ uploadingLabel?: string;
56
+ };
57
+ } | {
58
+ instructionText: string;
59
+ label: {
60
+ text: string;
61
+ };
62
+ id: string;
63
+ name: string;
64
+ value: import("../../../../server/plugins/engine/types.js").FormValue;
65
+ type?: string;
66
+ hint?: {
67
+ id?: string;
68
+ text: string;
69
+ };
70
+ prefix?: import("../../../../server/plugins/engine/components/types.js").ComponentText;
71
+ suffix?: import("../../../../server/plugins/engine/components/types.js").ComponentText;
72
+ classes?: string;
73
+ condition?: string;
74
+ errors?: import("../../../../server/plugins/engine/types.js").FormSubmissionError[];
75
+ errorMessage?: {
76
+ text: string;
77
+ };
78
+ summaryHtml?: string;
79
+ html?: string;
80
+ attributes: {
81
+ autocomplete?: string;
82
+ maxlength?: number;
83
+ multiple?: string;
84
+ accept?: string;
85
+ inputmode?: string;
86
+ };
87
+ content?: import("../../../../server/plugins/engine/components/types.js").Content | import("../../../../server/plugins/engine/components/types.js").Content[] | string;
88
+ maxlength?: number;
89
+ maxwords?: number;
90
+ rows?: number;
91
+ items?: import("../../../../server/plugins/engine/components/types.js").ListItem[] | import("../../../../server/plugins/engine/components/types.js").DateInputItem[];
92
+ fieldset?: {
93
+ attributes?: string | Record<string, string>;
94
+ legend?: import("../../../../server/plugins/engine/components/types.js").Label;
95
+ };
96
+ formGroup?: {
97
+ classes?: string;
98
+ attributes?: string | Record<string, string>;
99
+ };
100
+ showFieldsetError?: boolean;
101
+ components?: import("../../../../server/plugins/engine/components/types.js").ComponentViewModel[];
102
+ upload?: {
103
+ count: number;
104
+ summaryList: import("../../../../server/plugins/engine/types.js").SummaryList;
105
+ uploadingLabel?: string;
106
+ };
107
+ };
7
108
  protected getValidationConfig(translator: Translator | undefined): {
8
109
  pattern: RegExp;
9
110
  patternErrorMessage: import("joi").JoiExpression;
@@ -1,8 +1,17 @@
1
1
  import { EN_GB } from "../../../constants.js";
2
2
  import { LocationFieldBase } from "./LocationFieldBase.js";
3
+ import { getMapLayers } from "./LocationFieldHelpers.js";
3
4
  import { createLowerFirstExpression } from "./helpers/index.js";
4
5
  import { t } from "../i18n/index.js";
5
6
  export class OsGridRefField extends LocationFieldBase {
7
+ getViewModel(context) {
8
+ const viewModel = super.getViewModel(context);
9
+ Object.assign(viewModel, {
10
+ lang: context.translator.language,
11
+ mapLayers: getMapLayers(this)
12
+ });
13
+ return viewModel;
14
+ }
6
15
  getValidationConfig(translator) {
7
16
  // Regex for OS national grid references (NGR)
8
17
  // Validates specific valid OS grid letter combinations with:
@@ -1 +1 @@
1
- {"version":3,"file":"OsGridRefField.js","names":["EN_GB","LocationFieldBase","createLowerFirstExpression","t","OsGridRefField","getValidationConfig","translator","pattern","patternErrorMessage","requiredMessage","getErrorTemplates","type","template","getAllPossibleErrors","baseErrors","advancedSettingsErrors"],"sources":["../../../../../src/server/plugins/engine/components/OsGridRefField.ts"],"sourcesContent":["import { type OsGridRefFieldComponent } from '@defra/forms-model'\n\nimport { EN_GB } from '~/src/server/constants.js'\nimport { LocationFieldBase } from '~/src/server/plugins/engine/components/LocationFieldBase.js'\nimport { createLowerFirstExpression } from '~/src/server/plugins/engine/components/helpers/index.js'\nimport { t } from '~/src/server/plugins/engine/i18n/index.js'\nimport { type Translator } from '~/src/server/plugins/engine/types/index.js'\nimport { type ErrorMessageTemplateList } from '~/src/server/plugins/engine/types.js'\n\nexport class OsGridRefField extends LocationFieldBase {\n declare options: OsGridRefFieldComponent['options']\n\n protected getValidationConfig(translator: Translator | undefined) {\n // Regex for OS national grid references (NGR)\n // Validates specific valid OS grid letter combinations with:\n // - 2 letters & 6 digits in 2 blocks of 3 e.g. ST 678 678\n // - 2 letters & 8 digits in 2 blocks of 4 e.g. ST 6789 6789\n // - 2 letters & 10 digits in 2 blocks of 5 e.g. SO 12345 12345\n // Optional spaces between each block\n const pattern =\n /^((([sS]|[nN])[a-hA-Hj-zJ-Z])|(([tT]|[oO])[abfglmqrvwABFGLMQRVW])|([hH][l-zL-Z])|([jJ][lmqrvwLMQRVW]))\\s?(([0-9]{3})\\s?([0-9]{3})|([0-9]{4})\\s?([0-9]{4})|([0-9]{5})\\s?([0-9]{5}))$/\n\n return {\n pattern,\n patternErrorMessage: createLowerFirstExpression(\n translator\n ? translator.t('components.osGridRefField.pattern')\n : t('components.osGridRefField.pattern', EN_GB)\n ),\n requiredMessage: createLowerFirstExpression(\n translator\n ? translator.t('components.osGridRefField.required')\n : t('components.osGridRefField.required', EN_GB)\n )\n }\n }\n\n protected getErrorTemplates() {\n return [\n {\n type: 'pattern',\n template: createLowerFirstExpression(\n t('components.osGridRefField.pattern', 'en-GB')\n )\n }\n ]\n }\n\n /**\n * Static version of getAllPossibleErrors that doesn't require a component instance.\n */\n static getAllPossibleErrors(): ErrorMessageTemplateList {\n return {\n baseErrors: [\n {\n type: 'required',\n template: createLowerFirstExpression(\n t('components.osGridRefField.required', 'en-GB')\n )\n },\n {\n type: 'pattern',\n template: createLowerFirstExpression(\n t('components.osGridRefField.pattern', 'en-GB')\n )\n }\n ],\n advancedSettingsErrors: []\n }\n }\n}\n"],"mappings":"AAEA,SAASA,KAAK;AACd,SAASC,iBAAiB;AAC1B,SAASC,0BAA0B;AACnC,SAASC,CAAC;AAIV,OAAO,MAAMC,cAAc,SAASH,iBAAiB,CAAC;EAG1CI,mBAAmBA,CAACC,UAAkC,EAAE;IAChE;IACA;IACA;IACA;IACA;IACA;IACA,MAAMC,OAAO,GACX,qLAAqL;IAEvL,OAAO;MACLA,OAAO;MACPC,mBAAmB,EAAEN,0BAA0B,CAC7CI,UAAU,GACNA,UAAU,CAACH,CAAC,CAAC,mCAAmC,CAAC,GACjDA,CAAC,CAAC,mCAAmC,EAAEH,KAAK,CAClD,CAAC;MACDS,eAAe,EAAEP,0BAA0B,CACzCI,UAAU,GACNA,UAAU,CAACH,CAAC,CAAC,oCAAoC,CAAC,GAClDA,CAAC,CAAC,oCAAoC,EAAEH,KAAK,CACnD;IACF,CAAC;EACH;EAEUU,iBAAiBA,CAAA,EAAG;IAC5B,OAAO,CACL;MACEC,IAAI,EAAE,SAAS;MACfC,QAAQ,EAAEV,0BAA0B,CAClCC,CAAC,CAAC,mCAAmC,EAAE,OAAO,CAChD;IACF,CAAC,CACF;EACH;;EAEA;AACF;AACA;EACE,OAAOU,oBAAoBA,CAAA,EAA6B;IACtD,OAAO;MACLC,UAAU,EAAE,CACV;QACEH,IAAI,EAAE,UAAU;QAChBC,QAAQ,EAAEV,0BAA0B,CAClCC,CAAC,CAAC,oCAAoC,EAAE,OAAO,CACjD;MACF,CAAC,EACD;QACEQ,IAAI,EAAE,SAAS;QACfC,QAAQ,EAAEV,0BAA0B,CAClCC,CAAC,CAAC,mCAAmC,EAAE,OAAO,CAChD;MACF,CAAC,CACF;MACDY,sBAAsB,EAAE;IAC1B,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"file":"OsGridRefField.js","names":["EN_GB","LocationFieldBase","getMapLayers","createLowerFirstExpression","t","OsGridRefField","getViewModel","context","viewModel","Object","assign","lang","translator","language","mapLayers","getValidationConfig","pattern","patternErrorMessage","requiredMessage","getErrorTemplates","type","template","getAllPossibleErrors","baseErrors","advancedSettingsErrors"],"sources":["../../../../../src/server/plugins/engine/components/OsGridRefField.ts"],"sourcesContent":["import { type OsGridRefFieldComponent } from '@defra/forms-model'\n\nimport { EN_GB } from '~/src/server/constants.js'\nimport { LocationFieldBase } from '~/src/server/plugins/engine/components/LocationFieldBase.js'\nimport { getMapLayers } from '~/src/server/plugins/engine/components/LocationFieldHelpers.js'\nimport { createLowerFirstExpression } from '~/src/server/plugins/engine/components/helpers/index.js'\nimport { type RenderContext } from '~/src/server/plugins/engine/components/types.js'\nimport { t } from '~/src/server/plugins/engine/i18n/index.js'\nimport { type Translator } from '~/src/server/plugins/engine/types/index.js'\nimport { type ErrorMessageTemplateList } from '~/src/server/plugins/engine/types.js'\n\nexport class OsGridRefField extends LocationFieldBase {\n declare options: OsGridRefFieldComponent['options']\n\n getViewModel(context: RenderContext) {\n const viewModel = super.getViewModel(context)\n\n Object.assign(viewModel, {\n lang: context.translator.language,\n mapLayers: getMapLayers(this)\n })\n\n return viewModel\n }\n\n protected getValidationConfig(translator: Translator | undefined) {\n // Regex for OS national grid references (NGR)\n // Validates specific valid OS grid letter combinations with:\n // - 2 letters & 6 digits in 2 blocks of 3 e.g. ST 678 678\n // - 2 letters & 8 digits in 2 blocks of 4 e.g. ST 6789 6789\n // - 2 letters & 10 digits in 2 blocks of 5 e.g. SO 12345 12345\n // Optional spaces between each block\n const pattern =\n /^((([sS]|[nN])[a-hA-Hj-zJ-Z])|(([tT]|[oO])[abfglmqrvwABFGLMQRVW])|([hH][l-zL-Z])|([jJ][lmqrvwLMQRVW]))\\s?(([0-9]{3})\\s?([0-9]{3})|([0-9]{4})\\s?([0-9]{4})|([0-9]{5})\\s?([0-9]{5}))$/\n\n return {\n pattern,\n patternErrorMessage: createLowerFirstExpression(\n translator\n ? translator.t('components.osGridRefField.pattern')\n : t('components.osGridRefField.pattern', EN_GB)\n ),\n requiredMessage: createLowerFirstExpression(\n translator\n ? translator.t('components.osGridRefField.required')\n : t('components.osGridRefField.required', EN_GB)\n )\n }\n }\n\n protected getErrorTemplates() {\n return [\n {\n type: 'pattern',\n template: createLowerFirstExpression(\n t('components.osGridRefField.pattern', 'en-GB')\n )\n }\n ]\n }\n\n /**\n * Static version of getAllPossibleErrors that doesn't require a component instance.\n */\n static getAllPossibleErrors(): ErrorMessageTemplateList {\n return {\n baseErrors: [\n {\n type: 'required',\n template: createLowerFirstExpression(\n t('components.osGridRefField.required', 'en-GB')\n )\n },\n {\n type: 'pattern',\n template: createLowerFirstExpression(\n t('components.osGridRefField.pattern', 'en-GB')\n )\n }\n ],\n advancedSettingsErrors: []\n }\n }\n}\n"],"mappings":"AAEA,SAASA,KAAK;AACd,SAASC,iBAAiB;AAC1B,SAASC,YAAY;AACrB,SAASC,0BAA0B;AAEnC,SAASC,CAAC;AAIV,OAAO,MAAMC,cAAc,SAASJ,iBAAiB,CAAC;EAGpDK,YAAYA,CAACC,OAAsB,EAAE;IACnC,MAAMC,SAAS,GAAG,KAAK,CAACF,YAAY,CAACC,OAAO,CAAC;IAE7CE,MAAM,CAACC,MAAM,CAACF,SAAS,EAAE;MACvBG,IAAI,EAAEJ,OAAO,CAACK,UAAU,CAACC,QAAQ;MACjCC,SAAS,EAAEZ,YAAY,CAAC,IAAI;IAC9B,CAAC,CAAC;IAEF,OAAOM,SAAS;EAClB;EAEUO,mBAAmBA,CAACH,UAAkC,EAAE;IAChE;IACA;IACA;IACA;IACA;IACA;IACA,MAAMI,OAAO,GACX,qLAAqL;IAEvL,OAAO;MACLA,OAAO;MACPC,mBAAmB,EAAEd,0BAA0B,CAC7CS,UAAU,GACNA,UAAU,CAACR,CAAC,CAAC,mCAAmC,CAAC,GACjDA,CAAC,CAAC,mCAAmC,EAAEJ,KAAK,CAClD,CAAC;MACDkB,eAAe,EAAEf,0BAA0B,CACzCS,UAAU,GACNA,UAAU,CAACR,CAAC,CAAC,oCAAoC,CAAC,GAClDA,CAAC,CAAC,oCAAoC,EAAEJ,KAAK,CACnD;IACF,CAAC;EACH;EAEUmB,iBAAiBA,CAAA,EAAG;IAC5B,OAAO,CACL;MACEC,IAAI,EAAE,SAAS;MACfC,QAAQ,EAAElB,0BAA0B,CAClCC,CAAC,CAAC,mCAAmC,EAAE,OAAO,CAChD;IACF,CAAC,CACF;EACH;;EAEA;AACF;AACA;EACE,OAAOkB,oBAAoBA,CAAA,EAA6B;IACtD,OAAO;MACLC,UAAU,EAAE,CACV;QACEH,IAAI,EAAE,UAAU;QAChBC,QAAQ,EAAElB,0BAA0B,CAClCC,CAAC,CAAC,oCAAoC,EAAE,OAAO,CACjD;MACF,CAAC,EACD;QACEgB,IAAI,EAAE,SAAS;QACfC,QAAQ,EAAElB,0BAA0B,CAClCC,CAAC,CAAC,mCAAmC,EAAE,OAAO,CAChD;MACF,CAAC,CACF;MACDoB,sBAAsB,EAAE;IAC1B,CAAC;EACH;AACF","ignoreList":[]}
@@ -5,7 +5,8 @@
5
5
  {% set hasErrors = component.model.errorMessage %}
6
6
  <div class="govuk-form-group app-location-field {{ "govuk-form-group--error" if hasErrors }}"
7
7
  data-locationtype="{{component.type | lower}}"
8
- data-lang="{{component.model.lang}}">
8
+ data-lang="{{component.model.lang}}"
9
+ data-maplayers="{{component.model.mapLayers}}">
9
10
  <div class="app-location-field-inputs">
10
11
  {{ TextField(component) }}
11
12
  </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/forms-engine-plugin",
3
- "version": "5.0.0-alpha.14",
3
+ "version": "5.0.0-alpha.16",
4
4
  "description": "Defra forms engine",
5
5
  "type": "module",
6
6
  "files": [
@@ -88,7 +88,7 @@
88
88
  },
89
89
  "engines": {
90
90
  "node": ">=22.11.0 <25.0.0",
91
- "npm": ">=10.9.0 <=11.17.0"
91
+ "npm": ">=10.9.0 <=12"
92
92
  },
93
93
  "license": "SEE LICENSE IN LICENSE",
94
94
  "dependencies": {
@@ -2,7 +2,9 @@ import { type OsGridRefFieldComponent } from '@defra/forms-model'
2
2
 
3
3
  import { EN_GB } from '../../../constants.js'
4
4
  import { LocationFieldBase } from './LocationFieldBase.js'
5
+ import { getMapLayers } from './LocationFieldHelpers.js'
5
6
  import { createLowerFirstExpression } from './helpers/index.js'
7
+ import { type RenderContext } from './types.js'
6
8
  import { t } from '../i18n/index.js'
7
9
  import { type Translator } from '../types/index.js'
8
10
  import { type ErrorMessageTemplateList } from '../types.js'
@@ -10,6 +12,17 @@ import { type ErrorMessageTemplateList } from '../types.js'
10
12
  export class OsGridRefField extends LocationFieldBase {
11
13
  declare options: OsGridRefFieldComponent['options']
12
14
 
15
+ getViewModel(context: RenderContext) {
16
+ const viewModel = super.getViewModel(context)
17
+
18
+ Object.assign(viewModel, {
19
+ lang: context.translator.language,
20
+ mapLayers: getMapLayers(this)
21
+ })
22
+
23
+ return viewModel
24
+ }
25
+
13
26
  protected getValidationConfig(translator: Translator | undefined) {
14
27
  // Regex for OS national grid references (NGR)
15
28
  // Validates specific valid OS grid letter combinations with:
@@ -5,7 +5,8 @@
5
5
  {% set hasErrors = component.model.errorMessage %}
6
6
  <div class="govuk-form-group app-location-field {{ "govuk-form-group--error" if hasErrors }}"
7
7
  data-locationtype="{{component.type | lower}}"
8
- data-lang="{{component.model.lang}}">
8
+ data-lang="{{component.model.lang}}"
9
+ data-maplayers="{{component.model.mapLayers}}">
9
10
  <div class="app-location-field-inputs">
10
11
  {{ TextField(component) }}
11
12
  </div>