@planning-inspectorate/dynamic-forms 3.14.0 → 3.15.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/package.json +1 -1
- package/src/components/address/question.js +14 -0
- package/src/components/address/question.test.js +13 -0
- package/src/components/date/question.js +8 -0
- package/src/components/date/question.test.js +17 -0
- package/src/components/date-period/question.js +15 -0
- package/src/components/date-period/question.test.js +20 -0
- package/src/components/date-time/question.js +15 -0
- package/src/components/date-time/question.test.js +11 -0
- package/src/components/multi-field-input/question.js +8 -0
- package/src/components/multi-field-input/question.test.js +7 -0
- package/src/questions/question.js +11 -0
- package/src/questions/question.test.js +7 -0
- package/src/validator/address-validator.js +1 -1
- package/src/validator/base-validator.js +1 -1
- package/src/validator/conditional-required-validator.js +1 -1
- package/src/validator/cross-question-validator.README.md +131 -0
- package/src/validator/cross-question-validator.js +48 -5
- package/src/validator/cross-question-validator.test.js +448 -11
- package/src/validator/date-period-validator.js +1 -5
- package/src/validator/date-time-validator.js +1 -5
- package/src/validator/date-validator.js +1 -5
- package/src/validator/required-validator.js +1 -5
- package/src/validator/unit-option-entry-validator.js +1 -5
- package/types/src/components/address/question.d.ts.map +1 -1
- package/types/src/components/date/question.d.ts.map +1 -1
- package/types/src/components/date-period/question.d.ts.map +1 -1
- package/types/src/components/date-time/question.d.ts.map +1 -1
- package/types/src/components/multi-field-input/question.d.ts.map +1 -1
- package/types/src/questions/question.d.ts +8 -0
- package/types/src/questions/question.d.ts.map +1 -1
- package/types/src/validator/address-validator.d.ts +2 -2
- package/types/src/validator/address-validator.d.ts.map +1 -1
- package/types/src/validator/base-validator.d.ts +4 -2
- package/types/src/validator/base-validator.d.ts.map +1 -1
- package/types/src/validator/conditional-required-validator.d.ts +2 -2
- package/types/src/validator/conditional-required-validator.d.ts.map +1 -1
- package/types/src/validator/cross-question-validator.d.ts +11 -4
- package/types/src/validator/cross-question-validator.d.ts.map +1 -1
- package/types/src/validator/date-period-validator.d.ts +2 -6
- package/types/src/validator/date-period-validator.d.ts.map +1 -1
- package/types/src/validator/date-time-validator.d.ts +2 -6
- package/types/src/validator/date-time-validator.d.ts.map +1 -1
- package/types/src/validator/date-validator.d.ts +2 -6
- package/types/src/validator/date-validator.d.ts.map +1 -1
- package/types/src/validator/required-validator.d.ts +2 -6
- package/types/src/validator/required-validator.d.ts.map +1 -1
- package/types/src/validator/unit-option-entry-validator.d.ts +2 -6
- package/types/src/validator/unit-option-entry-validator.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"question.d.ts","sourceRoot":"","sources":["../../../src/questions/question.js"],"names":[],"mappings":"AAKA;;;;GAIG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;;;;;GAWG;AAEH;;;GAGG;AACH;IA4DC;;;OAGG;IACH,yLAHW,OAAO,qBAAqB,EAAE,kBAAkB,oBAChD,MAAM,CAAC,MAAM,WAAW,EAsDlC;IAnHD,6EAA6E;IAC7E,WADW,MAAM,CACP;IACV,sDAAsD;IACtD,OADW,MAAM,CACX;IACN,+DAA+D;IAC/D,UADW,MAAM,CACR;IACT,mFAAmF;IACnF,aADW,MAAM,GAAC,SAAS,CACf;IACZ,iDAAiD;IACjD,YADW,MAAM,CACN;IACX,qHAAqH;IACrH,WADW,MAAM,CACP;IACV,6FAA6F;IAC7F,UADW,OAAO,CACF;IAChB,iGAAiG;IACjG,YADW,KAAK,CAAE,aAAa,CAAC,CAChB;IAChB,2DAA2D;IAC3D,MADW,MAAM,GAAC,SAAS,CACtB;IACL,sEAAsE;IACtE,oBADW,OAAO,CACQ;IAC1B,oDAAoD;IACpD,KADW,MAAM,GAAC,SAAS,CACvB;IACJ,qDAAqD;IACrD,MADW,MAAM,GAAC,SAAS,CACtB;IACL,sDAAsD;IACtD,eADW,MAAM,GAAC,SAAS,CACb;IACd,wDAAwD;IACxD,YADW,UAAU,GAAC,SAAS,CACpB;IAEX,iFAAiF;IACjF,gBADW,MAAM,CACc;IAC/B,4CAA4C;IAC5C,oBADW,MAAM,CACe;IAChC,uDAAuD;IACvD,kBADW,MAAM,CACW;IAC5B,uDAAuD;IACvD,kBADW,MAAM,CACW;IAC5B,oDAAoD;IACpD,eADW,MAAM,CACK;IAEtB;;;OAGG;IACH,qBAFa,OAAO,CAEO;IAE3B;;;MAGE;IACF;;;;;;OAMG;IACH,wBAFU,OAAO,CAEc;IAyC9B,iCAAgC;IAChC,kBAAwB;IAExB;;;;MAAwB;IAgBzB;;;;;;OAMG;IACH,4BAFa,OAAO,CAInB;IAWD,iCANa,OAAO,EAWnB;IAdD;;;;OAIG;IACH,6BAFa,OAAO,CAInB;IASD;;;;;;;;;;;;;;OAcG;IACH,uFARG;QAAmE,MAAM,EAAjE,OAAO,6BAA6B,EAAE,WAAW;QACS,kBAAkB;QACnC,OAAO,EAAhD,OAAO,eAAe,EAAE,OAAO;QACkB,OAAO,EAAxD,OAAO,uBAAuB,EAAE,OAAO;QACL,cAAc;QAC9B,OAAO,GAAzB,OAAO;KACf,GAAU,iBAAiB,CAS7B;IAED;;;;;;;;;OASG;IACH,kCAPW,OAAO,eAAe,EAAE,OAAO,WAC/B,OAAO,uBAAuB,EAAE,OAAO,mBACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YACvB,OAAO,YACP,OAAO,qBAAqB,EAAE,+BAA+B,GAC3D,iBAAiB,CAuC7B;IAED;;;;;;;;OAQG,CACH,4BAJW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,uBAEjB,GAAC,GAAC,MAAM,CAIpB;IAED;;;;;;OAMG,CACH,oCAFW,iBAAiB,QAEU;IAEtC;;;;;;OAMG;IACH,0CAJW,OAAO,gCAAgC,EAAE,eAAe,mCACxD,OAAO,qBAAqB,EAAE,+BAA+B,GAC3D,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAc/B;IAED;;;;;OAKG;IACH,kBAJW,OAAO,SAAS,EAAE,QAAQ,aAC1B,iBAAiB,GACf,IAAI,CAShB;IAED;;;;;;;OAOG;IACH,8BANW,OAAO,SAAS,EAAE,OAAO,WAEzB,OAAO,eAAe,EAAE,OAAO,WAD/B,OAAO,uBAAuB,EAAE,OAAO,gFAGrC,iBAAiB,GAAC,SAAS,CAmBvC;IAED;;;;;;OAMG,CACH,mBAJW,OAAO,SAAS,EAAE,OAAO,mBACzB,OAAO,gCAAgC,EAAE,eAAe,GACtD,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAczD;IAED;;;;;;OAMG,CACH,0BALW,OAAO,SAAS,EAAE,OAAO,cAEzB,OAAO,eAAe,EAAE,OAAO,WAD/B,OAAO,uBAAuB,EAAE,OAAO,GAErC,iBAAiB,GAAG,SAAS,CAIzC;IAED;;;;;;;;;OASG;IACH,wBAPW,OAAO,SAAS,EAAE,QAAQ,WAC1B,OAAO,uBAAuB,EAAE,OAAO,kBACvC,MAAM,mBACN,MAAM,GACJ,IAAI,CAQhB;IAED;;;;;;;;;;OAUG;IACH,wDARW,OAAO,uBAAuB,EAAE,OAAO,UACvC,OAAO,uBACL,KAAK,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;KACpC,CAAC,CAaJ;IAED;;;;;;OAMG;IACH,2CAJW,OAAO,uBAAuB,EAAE,OAAO,UADvC,OAAO,GAGL,UAAU,GAAC,UAAU,EAAE,GAAC,SAAS,CAqB7C;IAED;;;OAGG;IACH,eAHW,OAAO,GACL,OAAO,CAInB;IAED;;OAEG;IACH,cAFa,OAAO,CAInB;IACD;;;OAGG;IACH,4BAHW,MAAM,GACJ,OAAO,CAMnB;IAED;;;;OAIG;IACH,4BAJW,OAAO,gCAAgC,EAAE,eAAe,cACxD,MAAM,GACJ,OAAO,CAInB;CACD;;
|
|
1
|
+
{"version":3,"file":"question.d.ts","sourceRoot":"","sources":["../../../src/questions/question.js"],"names":[],"mappings":"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"}
|
|
@@ -37,9 +37,9 @@ export class AddressValidator extends BaseValidator {
|
|
|
37
37
|
} | undefined;
|
|
38
38
|
/**
|
|
39
39
|
* validates response body using questionObj fieldname
|
|
40
|
-
* @param {Question} questionObj
|
|
40
|
+
* @param {import('../questions/question.js').Question} questionObj
|
|
41
41
|
*/
|
|
42
|
-
validate(questionObj: Question): import("express-validator").ValidationChain[];
|
|
42
|
+
validate(questionObj: import("../questions/question.js").Question): import("express-validator").ValidationChain[];
|
|
43
43
|
#private;
|
|
44
44
|
}
|
|
45
45
|
export default AddressValidator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/address-validator.js"],"names":[],"mappings":"AAIO,4EAQN;AAGD,oCAAqC,GAAG,CAAC;AACzC,oCAAqC,CAAC,CAAC;AACvC,oCAAqC,GAAG,CAAC;AACzC,oCAAqC,CAAC,CAAC;AACvC,gCAAiC,GAAG,CAAC;AACrC,gCAAiC,CAAC,CAAC;AACnC,8BAA+B,GAAG,CAAC;AACnC,8BAA+B,CAAC,CAAC;AACjC,gCAAiC,CAAC,CAAC;AACnC,gCAAiC,CAAC,CAAC;AAEnC;;;GAGG;AACH;IACC;;;;OAIG;IACH,mBAFG;QAAqH,cAAc;0BAA5G,OAAO;0BAAgB,OAAO;sBAAY,OAAO;oBAAU,OAAO;sBAAY,OAAO;;KAAwB,EAKtI;IADA;sBAJyB,OAAO;sBAAgB,OAAO;kBAAY,OAAO;gBAAU,OAAO;kBAAY,OAAO;kBAIpE;IAG3C;;;OAGG;IACH,sBAFW,QAAQ,
|
|
1
|
+
{"version":3,"file":"address-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/address-validator.js"],"names":[],"mappings":"AAIO,4EAQN;AAGD,oCAAqC,GAAG,CAAC;AACzC,oCAAqC,CAAC,CAAC;AACvC,oCAAqC,GAAG,CAAC;AACzC,oCAAqC,CAAC,CAAC;AACvC,gCAAiC,GAAG,CAAC;AACrC,gCAAiC,CAAC,CAAC;AACnC,8BAA+B,GAAG,CAAC;AACnC,8BAA+B,CAAC,CAAC;AACjC,gCAAiC,CAAC,CAAC;AACnC,gCAAiC,CAAC,CAAC;AAEnC;;;GAGG;AACH;IACC;;;;OAIG;IACH,mBAFG;QAAqH,cAAc;0BAA5G,OAAO;0BAAgB,OAAO;sBAAY,OAAO;oBAAU,OAAO;sBAAY,OAAO;;KAAwB,EAKtI;IADA;sBAJyB,OAAO;sBAAgB,OAAO;kBAAY,OAAO;gBAAU,OAAO;kBAAY,OAAO;kBAIpE;IAG3C;;;OAGG;IACH,sBAFW,OAAO,0BAA0B,EAAE,QAAQ,iDAYrD;;CAqGD;;0BA1JyB,qBAAqB"}
|
|
@@ -11,11 +11,13 @@ export class BaseValidator {
|
|
|
11
11
|
* Validates response body against field validators.
|
|
12
12
|
* Subclasses must override this method.
|
|
13
13
|
* @abstract
|
|
14
|
-
* @param {
|
|
14
|
+
* @param {{fieldName: string}} questionObj - The question object containing the fieldName to validate.
|
|
15
15
|
* @param {import('../journey/journey-response.js').JourneyResponse} [journeyResponse] - The current journey response (optional).
|
|
16
16
|
* @returns {import('express-validator').ValidationChain | import('express-validator').ValidationChain[]}
|
|
17
17
|
*/
|
|
18
|
-
validate(questionObj:
|
|
18
|
+
validate(questionObj: {
|
|
19
|
+
fieldName: string;
|
|
20
|
+
}, journeyResponse?: import("../journey/journey-response.js").JourneyResponse): import("express-validator").ValidationChain | import("express-validator").ValidationChain[];
|
|
19
21
|
/**
|
|
20
22
|
* Should the question that this validator is configured with be treated as a required question?
|
|
21
23
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/base-validator.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH;IACC;;OAEG;IACH,cAFU,MAAM,CAEH;IAQb;;;;;;;OAOG;IAEH,sBALW,
|
|
1
|
+
{"version":3,"file":"base-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/base-validator.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH;IACC;;OAEG;IACH,cAFU,MAAM,CAEH;IAQb;;;;;;;OAOG;IAEH,sBALW;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,oBACnB,OAAO,gCAAgC,EAAE,eAAe,GACtD,OAAO,mBAAmB,EAAE,eAAe,GAAG,OAAO,mBAAmB,EAAE,eAAe,EAAE,CAKvG;IAED;;;;;OAKG;IACH,sBAEC;CACD"}
|
|
@@ -13,9 +13,9 @@ export class ConditionalRequiredValidator extends BaseValidator {
|
|
|
13
13
|
constructor(errorMessage?: string);
|
|
14
14
|
/**
|
|
15
15
|
* validates the response body, checking the questionObj's fieldname
|
|
16
|
-
* @param {
|
|
16
|
+
* @param {import('../questions/options-question.js').OptionsQuestion} questionObj
|
|
17
17
|
*/
|
|
18
|
-
validate(questionObj:
|
|
18
|
+
validate(questionObj: import("../questions/options-question.js").OptionsQuestion): never[];
|
|
19
19
|
getConditionalFieldName(questionObj: any, option: any): string;
|
|
20
20
|
isValueIncluded(questionObj: any, value: any): import("express-validator").ValidationChain;
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-required-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/conditional-required-validator.js"],"names":[],"mappings":"AAKA;;GAEG;AAEH;;;GAGG;AACH;IAMC;;;OAGG;IACH,2BAFW,MAAM,EAQhB;IAED;;;OAGG;IACH,sBAFW,
|
|
1
|
+
{"version":3,"file":"conditional-required-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/conditional-required-validator.js"],"names":[],"mappings":"AAKA;;GAEG;AAEH;;;GAGG;AACH;IAMC;;;OAGG;IACH,2BAFW,MAAM,EAQhB;IAED;;;OAGG;IACH,sBAFW,OAAO,kCAAkC,EAAE,eAAe,WAcpE;IAED,+DAEC;IAED,2FAKC;CACD;;;0BAzDyB,qBAAqB"}
|
|
@@ -6,14 +6,16 @@ export class CrossQuestionValidator extends BaseValidator {
|
|
|
6
6
|
* @param {Object} params
|
|
7
7
|
* @param {string} params.dependencyFieldName - The field name of the other question to compare against.
|
|
8
8
|
* @param {((currentAnswer: unknown, dependencyAnswer: unknown) => boolean)| null} params.validationFunction - A function that takes the current question's answer and the other question's answer and returns true if valid, false otherwise.
|
|
9
|
-
* @param {boolean} [params.useBodyValues=false] - Whether to use req.body values for validation (default: false). Usually CrossQuestionValidator will be for validating across saved
|
|
9
|
+
* @param {boolean} [params.useBodyValues=false] - Whether to use req.body values for validation (default: false). Usually CrossQuestionValidator will be for validating across saved JourneyResponse answers, but if used between multiple fields on one question, it will need to use the body.
|
|
10
|
+
* @param {boolean} [params.useBodyValuesForCurrent=false] - Whether to use req.body values for the current question's answer (default: false). This may help with questions where data is not saved to the JourneyResponse on POST (e.g. non-multiple entities questions).
|
|
10
11
|
* @throws {Error} If validationFunction is not provided or is not a function.
|
|
11
12
|
* @throws {Error} If dependencyFieldName is not provided
|
|
12
13
|
*/
|
|
13
|
-
constructor({ dependencyFieldName, validationFunction, useBodyValues }?: {
|
|
14
|
+
constructor({ dependencyFieldName, validationFunction, useBodyValues, useBodyValuesForCurrent }?: {
|
|
14
15
|
dependencyFieldName: string;
|
|
15
16
|
validationFunction: ((currentAnswer: unknown, dependencyAnswer: unknown) => boolean) | null;
|
|
16
17
|
useBodyValues?: boolean | undefined;
|
|
18
|
+
useBodyValuesForCurrent?: boolean | undefined;
|
|
17
19
|
});
|
|
18
20
|
/** @type {string} */
|
|
19
21
|
dependencyFieldName: string;
|
|
@@ -21,13 +23,18 @@ export class CrossQuestionValidator extends BaseValidator {
|
|
|
21
23
|
validationFunction: ((currentAnswer: unknown, dependencyAnswer: unknown) => boolean);
|
|
22
24
|
/** @type {boolean} */
|
|
23
25
|
useBodyValues: boolean;
|
|
26
|
+
/** @type {boolean} */
|
|
27
|
+
useBodyValuesForCurrent: boolean;
|
|
24
28
|
/**
|
|
25
29
|
* Validates response body against individual field validators.
|
|
26
|
-
*
|
|
30
|
+
* Uses the question's getDataToSave method to extract and format body values when useBodyValuesForCurrent is true,
|
|
31
|
+
* allowing generic handling of any question type without needing to know its internal structure.
|
|
32
|
+
* @param {import('../questions/question.js').Question} questionObj - The question object containing the fieldName to validate.
|
|
27
33
|
* @param {import('../journey/journey-response.js').JourneyResponse} [journeyResponse={}] - The current journey response, used to access saved answers for validation.
|
|
28
34
|
* @returns {import('express-validator').ValidationChain[]}
|
|
29
35
|
*/
|
|
30
|
-
validate(questionObj: import("../questions/question
|
|
36
|
+
validate(questionObj: import("../questions/question.js").Question, journeyResponse?: import("../journey/journey-response.js").JourneyResponse): import("express-validator").ValidationChain[];
|
|
37
|
+
#private;
|
|
31
38
|
}
|
|
32
39
|
export default CrossQuestionValidator;
|
|
33
40
|
import BaseValidator from './base-validator.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-question-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/cross-question-validator.js"],"names":[],"mappings":"AAGA;;GAEG;AACH;
|
|
1
|
+
{"version":3,"file":"cross-question-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/cross-question-validator.js"],"names":[],"mappings":"AAGA;;GAEG;AACH;IAUC;;;;;;;;OAQG;IACH,kGAPG;QAAuB,mBAAmB,EAAlC,MAAM;QACyE,kBAAkB,EAAjG,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,KAAK,OAAO,CAAC,GAAE,IAAI;QACrD,aAAa;QACb,uBAAuB;KAChD,EAsBF;IArCD,qBAAqB;IACrB,qBADW,MAAM,CACG;IACpB,+EAA+E;IAC/E,oBADW,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,KAAK,OAAO,CAAC,CACxD;IACnB,sBAAsB;IACtB,eADW,OAAO,CACJ;IACd,sBAAsB;IACtB,yBADW,OAAO,CACM;IA8CxB;;;;;;;OAOG;IACH,sBAJW,OAAO,0BAA0B,EAAE,QAAQ,oBAC3C,OAAO,gCAAgC,EAAE,eAAe,GACtD,OAAO,mBAAmB,EAAE,eAAe,EAAE,CAuCzD;;CACD;;0BA1GyB,qBAAqB"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @typedef {import('../components/date/question.js')} DateQuestion
|
|
3
|
-
*/
|
|
4
1
|
/**
|
|
5
2
|
* @typedef {Object} DateValidationSettings
|
|
6
3
|
* @property {Boolean} ensureFuture
|
|
@@ -34,9 +31,9 @@ export class DatePeriodValidator extends BaseValidator {
|
|
|
34
31
|
pastDateErrorMessage: any;
|
|
35
32
|
/**
|
|
36
33
|
* validates the response body, checking the values sent for the date are valid
|
|
37
|
-
* @param {DateQuestion} questionObj
|
|
34
|
+
* @param {import('../components/date/question.js').DateQuestion} questionObj
|
|
38
35
|
*/
|
|
39
|
-
validate(questionObj: DateQuestion): import("express-validator").ValidationChain[];
|
|
36
|
+
validate(questionObj: import("../components/date/question.js").DateQuestion): import("express-validator").ValidationChain[];
|
|
40
37
|
rulesForNotEmptyInput({ dayInput, monthInput, yearInput }: {
|
|
41
38
|
dayInput: any;
|
|
42
39
|
monthInput: any;
|
|
@@ -55,7 +52,6 @@ export class DatePeriodValidator extends BaseValidator {
|
|
|
55
52
|
#private;
|
|
56
53
|
}
|
|
57
54
|
export default DatePeriodValidator;
|
|
58
|
-
export type DateQuestion = typeof import("../components/date/question.js");
|
|
59
55
|
export type DateValidationSettings = {
|
|
60
56
|
ensureFuture: boolean;
|
|
61
57
|
ensurePast: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-period-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/date-period-validator.js"],"names":[],"mappings":"AAQA
|
|
1
|
+
{"version":3,"file":"date-period-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/date-period-validator.js"],"names":[],"mappings":"AAQA;;;;GAIG;AAEH;;;GAGG;AACH;IAIC;;;;;OAKG;IACH,wBAJW,MAAM,2BACN,sBAAsB,kBACtB,MAAM,EAgChB;IAvCD,qCAAqC;IACrC,wBADW,sBAAsB,CACV;IAoBtB,uBAAmG;IACnG,uBAAmG;IACnG,yBAAyG;IACzG,wBAAsG;IACtG,4BAAkH;IAClH,2BAA+G;IAC/G,6BACuF;IACvF,6BACuF;IACvF,8BACyF;IACzF,6BACuF;IACvF,4BAAkH;IAClH,0BAA4G;IAK7G;;;OAGG;IACH,sBAFW,OAAO,gCAAgC,EAAE,YAAY,iDAsB/D;IAED;;;;sDAuCC;IAED;;;;sDAwBC;IAED;;;;sDAuBC;;CA6BD;;;;;;0BAxMyB,qBAAqB"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @typedef {import('./question.js')} DateTimeQuestion
|
|
3
|
-
*/
|
|
4
1
|
/**
|
|
5
2
|
* enforces a user has entered a valid date
|
|
6
3
|
* @class
|
|
@@ -17,11 +14,10 @@ export class DateTimeValidator extends DateValidator {
|
|
|
17
14
|
timeInputLabel: string;
|
|
18
15
|
/**
|
|
19
16
|
* validates the response body, checking the values sent for the date are valid
|
|
20
|
-
* @param {DateTimeQuestion} questionObj
|
|
17
|
+
* @param {import('../components/date-time/question.js').DateTimeQuestion} questionObj
|
|
21
18
|
*/
|
|
22
|
-
validate(questionObj: DateTimeQuestion): import("express-validator").ValidationChain[];
|
|
19
|
+
validate(questionObj: import("../components/date-time/question.js").DateTimeQuestion): import("express-validator").ValidationChain[];
|
|
23
20
|
}
|
|
24
21
|
export default DateTimeValidator;
|
|
25
|
-
export type DateTimeQuestion = any;
|
|
26
22
|
import DateValidator from './date-validator.js';
|
|
27
23
|
//# sourceMappingURL=date-time-validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-time-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/date-time-validator.js"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"date-time-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/date-time-validator.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH;IACC;;;;;;OAMG;IACH,4BALW,MAAM,mBACN,MAAM,2BACN,sBAAsB,sBACtB,MAAM,EAahB;IADA,uBAAoC;IAGrC;;;OAGG;IACH,sBAFW,OAAO,qCAAqC,EAAE,gBAAgB,iDAsCxE;CACD;;0BApEyB,qBAAqB"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @typedef {import('../components/date/question.js')} DateQuestion
|
|
3
|
-
*/
|
|
4
1
|
/**
|
|
5
2
|
* @typedef {Object} DateValidationSettings
|
|
6
3
|
* @property {Boolean} [ensureFuture]
|
|
@@ -35,13 +32,12 @@ export class DateValidator extends BaseValidator {
|
|
|
35
32
|
pastDateErrorMessage: any;
|
|
36
33
|
/**
|
|
37
34
|
* validates the response body, checking the values sent for the date are valid
|
|
38
|
-
* @param {DateQuestion} questionObj
|
|
35
|
+
* @param {import('../components/date/question.js').DateQuestion} questionObj
|
|
39
36
|
*/
|
|
40
|
-
validate(questionObj: DateQuestion): import("express-validator").ValidationChain[];
|
|
37
|
+
validate(questionObj: import("../components/date/question.js").DateQuestion): import("express-validator").ValidationChain[];
|
|
41
38
|
#private;
|
|
42
39
|
}
|
|
43
40
|
export default DateValidator;
|
|
44
|
-
export type DateQuestion = typeof import("../components/date/question.js");
|
|
45
41
|
export type DateValidationSettings = {
|
|
46
42
|
ensureFuture?: boolean | undefined;
|
|
47
43
|
ensurePast?: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/date-validator.js"],"names":[],"mappings":"AAOA
|
|
1
|
+
{"version":3,"file":"date-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/date-validator.js"],"names":[],"mappings":"AAOA;;;;;GAKG;AAEH;;;GAGG;AACH;IAIC;;;;;OAKG;IACH,wBAJW,MAAM,2BACN,sBAAsB,kBACtB,MAAM,EAiChB;IAxCD,qCAAqC;IACrC,wBADW,sBAAsB,CACV;IAqBtB,uBAAmG;IACnG,uBAAmG;IACnG,yBAAyG;IACzG,wBAAsG;IACtG,4BAAkH;IAClH,2BAA+G;IAC/G,6BACuF;IACvF,6BACuF;IACvF,8BACyF;IACzF,6BACuF;IACvF,4BAAkH;IAClH,0BAA4G;IAS7G;;;OAGG;IACH,sBAFW,OAAO,gCAAgC,EAAE,YAAY,iDA0H/D;;CA6BD;;;;;;;0BAtNyB,qBAAqB"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @typedef {import('../questions/question.js')} Question
|
|
3
|
-
*/
|
|
4
1
|
/**
|
|
5
2
|
* enforces a field is not empty
|
|
6
3
|
* @class
|
|
@@ -13,11 +10,10 @@ export class RequiredValidator extends BaseValidator {
|
|
|
13
10
|
constructor(errorMessage?: string);
|
|
14
11
|
/**
|
|
15
12
|
* validates the response body, checking the questionObj's fieldname
|
|
16
|
-
* @param {Question} questionObj
|
|
13
|
+
* @param {import('../questions/question.js').Question} questionObj
|
|
17
14
|
*/
|
|
18
|
-
validate(questionObj: Question): import("express-validator").ValidationChain;
|
|
15
|
+
validate(questionObj: import("../questions/question.js").Question): import("express-validator").ValidationChain;
|
|
19
16
|
}
|
|
20
17
|
export default RequiredValidator;
|
|
21
|
-
export type Question = typeof import("../questions/question.js");
|
|
22
18
|
import BaseValidator from './base-validator.js';
|
|
23
19
|
//# sourceMappingURL=required-validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"required-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/required-validator.js"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"required-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/required-validator.js"],"names":[],"mappings":"AAIA;;;GAGG;AACH;IAMC;;;OAGG;IACH,2BAFW,MAAM,EAQhB;IAED;;;OAGG;IACH,sBAFW,OAAO,0BAA0B,EAAE,QAAQ,+CAIrD;CAKD;;0BAnCyB,qBAAqB"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @typedef {import('../questions/question.js')} Question
|
|
3
|
-
*/
|
|
4
1
|
/**
|
|
5
2
|
* enforces a field is not empty when condition is satisfied
|
|
6
3
|
* @class
|
|
@@ -30,12 +27,11 @@ export class UnitOptionEntryValidator extends BaseValidator {
|
|
|
30
27
|
regexMessage: string;
|
|
31
28
|
/**
|
|
32
29
|
* validates the response body, checking the questionObj's fieldname
|
|
33
|
-
* @param {
|
|
30
|
+
* @param {import('../components/unit-option-entry/question.js').UnitOptionEntryQuestion} questionObj
|
|
34
31
|
*/
|
|
35
|
-
validate(questionObj:
|
|
32
|
+
validate(questionObj: import("../components/unit-option-entry/question.js").UnitOptionEntryQuestion): never[];
|
|
36
33
|
isValueIncluded(questionObj: any, value: any): import("express-validator").ValidationChain;
|
|
37
34
|
}
|
|
38
35
|
export default UnitOptionEntryValidator;
|
|
39
|
-
export type Question = typeof import("../questions/question.js");
|
|
40
36
|
import BaseValidator from './base-validator.js';
|
|
41
37
|
//# sourceMappingURL=unit-option-entry-validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unit-option-entry-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/unit-option-entry-validator.js"],"names":[],"mappings":"AAKA
|
|
1
|
+
{"version":3,"file":"unit-option-entry-validator.d.ts","sourceRoot":"","sources":["../../../src/validator/unit-option-entry-validator.js"],"names":[],"mappings":"AAKA;;;GAGG;AACH;IACC;;;;;;;;OAQG;IAEH,oEARG;QAAwB,YAAY;QACZ,IAAI;QACJ,GAAG;QACH,GAAG;QACJ,KAAK;QACJ,YAAY;KAAC,EAWvC;IALA,aAA2B;IAC3B,wBAAc;IACd,wBAAc;IACd,WAAkB;IAClB,qBAA0D;IAG3D;;;OAGG;IACH,sBAFW,OAAO,6CAA6C,EAAE,uBAAuB,WA4CvF;IAED,2FAKC;CACD;;0BAlFyB,qBAAqB"}
|