@defra/forms-model 3.0.168 → 3.0.170
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/module/components/component-types.js +47 -46
- package/dist/module/components/component-types.js.map +1 -1
- package/dist/module/components/enums.js +31 -24
- package/dist/module/components/enums.js.map +1 -1
- package/dist/module/components/index.js +1 -2
- package/dist/module/components/index.js.map +1 -1
- package/dist/module/components/types.js.map +1 -1
- package/dist/module/conditions/condition-field.js.map +1 -1
- package/dist/module/conditions/condition-operators.js +12 -11
- package/dist/module/conditions/condition-operators.js.map +1 -1
- package/dist/module/conditions/condition-ref.js +2 -2
- package/dist/module/conditions/condition-ref.js.map +1 -1
- package/dist/module/conditions/condition-value-abstract.js +5 -13
- package/dist/module/conditions/condition-value-abstract.js.map +1 -1
- package/dist/module/conditions/condition-values.js +18 -12
- package/dist/module/conditions/condition-values.js.map +1 -1
- package/dist/module/conditions/condition.js +4 -4
- package/dist/module/conditions/condition.js.map +1 -1
- package/dist/module/conditions/enums.js +5 -0
- package/dist/module/conditions/enums.js.map +1 -1
- package/dist/module/conditions/index.js +1 -1
- package/dist/module/conditions/index.js.map +1 -1
- package/dist/module/form/form-definition/index.js +4 -3
- package/dist/module/form/form-definition/index.js.map +1 -1
- package/dist/module/index.js +0 -1
- package/dist/module/index.js.map +1 -1
- package/dist/types/components/component-types.d.ts.map +1 -1
- package/dist/types/components/enums.d.ts +8 -2
- package/dist/types/components/enums.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +1 -2
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/types.d.ts +46 -47
- package/dist/types/components/types.d.ts.map +1 -1
- package/dist/types/conditions/condition-field.d.ts +1 -1
- package/dist/types/conditions/condition-operators.d.ts +2 -1
- package/dist/types/conditions/condition-operators.d.ts.map +1 -1
- package/dist/types/conditions/condition-ref.d.ts.map +1 -1
- package/dist/types/conditions/condition-value-abstract.d.ts +3 -5
- package/dist/types/conditions/condition-value-abstract.d.ts.map +1 -1
- package/dist/types/conditions/condition-values.d.ts +21 -12
- package/dist/types/conditions/condition-values.d.ts.map +1 -1
- package/dist/types/conditions/condition.d.ts +1 -1
- package/dist/types/conditions/condition.d.ts.map +1 -1
- package/dist/types/conditions/enums.d.ts +4 -0
- package/dist/types/conditions/enums.d.ts.map +1 -1
- package/dist/types/conditions/index.d.ts +1 -1
- package/dist/types/conditions/index.d.ts.map +1 -1
- package/dist/types/form/form-definition/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/component-types.ts +47 -46
- package/src/components/enums.ts +9 -2
- package/src/components/index.ts +1 -2
- package/src/components/types.ts +68 -71
- package/src/conditions/condition-field.ts +1 -1
- package/src/conditions/condition-operators.ts +19 -15
- package/src/conditions/condition-ref.ts +4 -2
- package/src/conditions/condition-value-abstract.ts +8 -20
- package/src/conditions/condition-values.ts +52 -31
- package/src/conditions/condition.ts +10 -8
- package/src/conditions/enums.ts +5 -0
- package/src/conditions/index.ts +1 -1
- package/src/form/form-definition/index.ts +20 -11
- package/src/index.ts +0 -1
- package/dist/module/components/conditional-component-types.js +0 -10
- package/dist/module/components/conditional-component-types.js.map +0 -1
- package/dist/module/conditions/condition-value-registration.js +0 -15
- package/dist/module/conditions/condition-value-registration.js.map +0 -1
- package/dist/module/form/form-configuration/index.js +0 -16
- package/dist/module/form/form-configuration/index.js.map +0 -1
- package/dist/types/components/conditional-component-types.d.ts +0 -3
- package/dist/types/components/conditional-component-types.d.ts.map +0 -1
- package/dist/types/conditions/condition-value-registration.d.ts +0 -10
- package/dist/types/conditions/condition-value-registration.d.ts.map +0 -1
- package/dist/types/form/form-configuration/index.d.ts +0 -8
- package/dist/types/form/form-configuration/index.d.ts.map +0 -1
- package/src/components/conditional-component-types.ts +0 -14
- package/src/conditions/condition-value-registration.ts +0 -18
- package/src/form/form-configuration/index.ts +0 -21
@@ -1,18 +1,19 @@
|
|
1
1
|
import { ConditionValueAbstract } from "./condition-value-abstract.js";
|
2
|
-
import { Registration } from "./condition-value-registration.js";
|
3
2
|
export class ConditionValue extends ConditionValueAbstract {
|
3
|
+
type;
|
4
4
|
value;
|
5
5
|
display;
|
6
6
|
constructor(value, display) {
|
7
|
-
super(valueType);
|
8
7
|
if (!value || typeof value !== 'string') {
|
9
|
-
throw Error(
|
8
|
+
throw new Error("ConditionValue param 'value' must be a string");
|
10
9
|
}
|
11
10
|
if (display && typeof display !== 'string') {
|
12
|
-
throw Error(
|
11
|
+
throw new Error("ConditionValue param 'display' must be a string");
|
13
12
|
}
|
13
|
+
super();
|
14
|
+
this.type = 'Value';
|
14
15
|
this.value = value;
|
15
|
-
this.display = display
|
16
|
+
this.display = display ?? value;
|
16
17
|
}
|
17
18
|
toPresentationString() {
|
18
19
|
return this.display;
|
@@ -27,7 +28,6 @@ export class ConditionValue extends ConditionValueAbstract {
|
|
27
28
|
return ConditionValue.from(this);
|
28
29
|
}
|
29
30
|
}
|
30
|
-
const valueType = Registration.register('Value', obj => ConditionValue.from(obj));
|
31
31
|
export let DateDirections = /*#__PURE__*/function (DateDirections) {
|
32
32
|
DateDirections["FUTURE"] = "in the future";
|
33
33
|
DateDirections["PAST"] = "in the past";
|
@@ -63,21 +63,23 @@ export const timeUnits = {
|
|
63
63
|
};
|
64
64
|
export const dateTimeUnits = Object.assign({}, dateUnits, timeUnits);
|
65
65
|
export class RelativeTimeValue extends ConditionValueAbstract {
|
66
|
+
type;
|
66
67
|
timePeriod;
|
67
68
|
timeUnit;
|
68
69
|
direction;
|
69
70
|
timeOnly;
|
70
71
|
constructor(timePeriod, timeUnit, direction, timeOnly = false) {
|
71
|
-
super(relativeTimeValueType);
|
72
72
|
if (typeof timePeriod !== 'string') {
|
73
|
-
throw Error(
|
73
|
+
throw new Error("RelativeTimeValue param 'timePeriod' must be a string");
|
74
74
|
}
|
75
75
|
if (!Object.values(dateTimeUnits).map(unit => unit.value).includes(timeUnit)) {
|
76
|
-
throw Error(
|
76
|
+
throw new Error("RelativeTimeValue param 'dateTimeUnits' must only include DateTimeUnitValues keys");
|
77
77
|
}
|
78
78
|
if (!Object.values(DateDirections).includes(direction)) {
|
79
|
-
throw Error(
|
79
|
+
throw new Error("RelativeTimeValue param 'direction' must be from enum DateDirections");
|
80
80
|
}
|
81
|
+
super();
|
82
|
+
this.type = 'RelativeTime';
|
81
83
|
this.timePeriod = timePeriod;
|
82
84
|
this.timeUnit = timeUnit;
|
83
85
|
this.direction = direction;
|
@@ -97,8 +99,12 @@ export class RelativeTimeValue extends ConditionValueAbstract {
|
|
97
99
|
return RelativeTimeValue.from(this);
|
98
100
|
}
|
99
101
|
}
|
100
|
-
export const relativeTimeValueType = Registration.register('RelativeTime', obj => RelativeTimeValue.from(obj));
|
101
102
|
export function conditionValueFrom(obj) {
|
102
|
-
|
103
|
+
switch (obj.type) {
|
104
|
+
case 'Value':
|
105
|
+
return ConditionValue.from(obj);
|
106
|
+
case 'RelativeTime':
|
107
|
+
return RelativeTimeValue.from(obj);
|
108
|
+
}
|
103
109
|
}
|
104
110
|
//# sourceMappingURL=condition-values.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"condition-values.js","names":["ConditionValueAbstract","
|
1
|
+
{"version":3,"file":"condition-values.js","names":["ConditionValueAbstract","ConditionValue","type","value","display","constructor","Error","toPresentationString","toExpression","from","obj","clone","DateDirections","dateUnits","YEARS","MONTHS","DAYS","timeUnits","HOURS","MINUTES","SECONDS","dateTimeUnits","Object","assign","RelativeTimeValue","timePeriod","timeUnit","direction","timeOnly","values","map","unit","includes","PAST","Number","conditionValueFrom"],"sources":["../../../src/conditions/condition-values.ts"],"sourcesContent":["import { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract.js'\nimport {\n type DateTimeUnitValues,\n type DateUnits,\n type TimeUnits\n} from '~/src/conditions/types.js'\n\nexport class ConditionValue\n extends ConditionValueAbstract\n implements ConditionValueFrom\n{\n type: 'Value'\n value: string\n display: string\n\n constructor(value: string, display?: string) {\n if (!value || typeof value !== 'string') {\n throw new Error(\"ConditionValue param 'value' must be a string\")\n }\n\n if (display && typeof display !== 'string') {\n throw new Error(\"ConditionValue param 'display' must be a string\")\n }\n\n super()\n\n this.type = 'Value'\n this.value = value\n this.display = display ?? value\n }\n\n toPresentationString() {\n return this.display\n }\n\n toExpression() {\n return this.value\n }\n\n static from(obj: ConditionValue | ConditionValueFrom) {\n return new ConditionValue(obj.value, obj.display)\n }\n\n clone() {\n return ConditionValue.from(this)\n }\n}\n\nexport interface ConditionValueFrom {\n value: string\n display?: string\n}\n\nexport enum DateDirections {\n FUTURE = 'in the future',\n PAST = 'in the past'\n}\n\nexport const dateUnits: DateUnits = {\n YEARS: { display: 'year(s)', value: 'years' },\n MONTHS: { display: 'month(s)', value: 'months' },\n DAYS: { display: 'day(s)', value: 'days' }\n}\n\nexport const timeUnits: TimeUnits = {\n HOURS: { display: 'hour(s)', value: 'hours' },\n MINUTES: { display: 'minute(s)', value: 'minutes' },\n SECONDS: { display: 'second(s)', value: 'seconds' }\n}\n\nexport const dateTimeUnits: DateUnits & TimeUnits = Object.assign(\n {},\n dateUnits,\n timeUnits\n)\n\nexport class RelativeTimeValue\n extends ConditionValueAbstract\n implements RelativeTimeValueFrom\n{\n type: 'RelativeTime'\n timePeriod: string\n timeUnit: DateTimeUnitValues\n direction: DateDirections\n timeOnly: boolean\n\n constructor(\n timePeriod: string,\n timeUnit: DateTimeUnitValues,\n direction: DateDirections,\n timeOnly = false\n ) {\n if (typeof timePeriod !== 'string') {\n throw new Error(\"RelativeTimeValue param 'timePeriod' must be a string\")\n }\n\n if (\n !Object.values(dateTimeUnits)\n .map((unit) => unit.value)\n .includes(timeUnit)\n ) {\n throw new Error(\n \"RelativeTimeValue param 'dateTimeUnits' must only include DateTimeUnitValues keys\"\n )\n }\n\n if (!Object.values(DateDirections).includes(direction)) {\n throw new Error(\n \"RelativeTimeValue param 'direction' must be from enum DateDirections\"\n )\n }\n\n super()\n\n this.type = 'RelativeTime'\n this.timePeriod = timePeriod\n this.timeUnit = timeUnit\n this.direction = direction\n this.timeOnly = timeOnly\n }\n\n toPresentationString() {\n return `${this.timePeriod} ${this.timeUnit} ${this.direction}`\n }\n\n toExpression(): string {\n const timePeriod =\n this.direction === DateDirections.PAST\n ? 0 - Number(this.timePeriod)\n : this.timePeriod\n return this.timeOnly\n ? `timeForComparison(${timePeriod}, '${this.timeUnit}')`\n : `dateForComparison(${timePeriod}, '${this.timeUnit}')`\n }\n\n static from(obj: RelativeTimeValue | RelativeTimeValueFrom) {\n return new RelativeTimeValue(\n obj.timePeriod,\n obj.timeUnit,\n obj.direction,\n obj.timeOnly\n )\n }\n\n clone() {\n return RelativeTimeValue.from(this)\n }\n}\n\nexport interface RelativeTimeValueFrom {\n timePeriod: string\n timeUnit: DateTimeUnitValues\n direction: DateDirections\n timeOnly: boolean\n}\n\nexport function conditionValueFrom(\n obj:\n | ConditionValue\n | RelativeTimeValue\n | ({ type: 'Value' } & ConditionValueFrom)\n | ({ type: 'RelativeTime' } & RelativeTimeValueFrom)\n) {\n switch (obj.type) {\n case 'Value':\n return ConditionValue.from(obj)\n\n case 'RelativeTime':\n return RelativeTimeValue.from(obj)\n }\n}\n"],"mappings":"AAAA,SAASA,sBAAsB;AAO/B,OAAO,MAAMC,cAAc,SACjBD,sBAAsB,CAEhC;EACEE,IAAI;EACJC,KAAK;EACLC,OAAO;EAEPC,WAAWA,CAACF,KAAa,EAAEC,OAAgB,EAAE;IAC3C,IAAI,CAACD,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MACvC,MAAM,IAAIG,KAAK,CAAC,+CAA+C,CAAC;IAClE;IAEA,IAAIF,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;MAC1C,MAAM,IAAIE,KAAK,CAAC,iDAAiD,CAAC;IACpE;IAEA,KAAK,CAAC,CAAC;IAEP,IAAI,CAACJ,IAAI,GAAG,OAAO;IACnB,IAAI,CAACC,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,OAAO,GAAGA,OAAO,IAAID,KAAK;EACjC;EAEAI,oBAAoBA,CAAA,EAAG;IACrB,OAAO,IAAI,CAACH,OAAO;EACrB;EAEAI,YAAYA,CAAA,EAAG;IACb,OAAO,IAAI,CAACL,KAAK;EACnB;EAEA,OAAOM,IAAIA,CAACC,GAAwC,EAAE;IACpD,OAAO,IAAIT,cAAc,CAACS,GAAG,CAACP,KAAK,EAAEO,GAAG,CAACN,OAAO,CAAC;EACnD;EAEAO,KAAKA,CAAA,EAAG;IACN,OAAOV,cAAc,CAACQ,IAAI,CAAC,IAAI,CAAC;EAClC;AACF;AAOA,WAAYG,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAK1B,OAAO,MAAMC,SAAoB,GAAG;EAClCC,KAAK,EAAE;IAAEV,OAAO,EAAE,SAAS;IAAED,KAAK,EAAE;EAAQ,CAAC;EAC7CY,MAAM,EAAE;IAAEX,OAAO,EAAE,UAAU;IAAED,KAAK,EAAE;EAAS,CAAC;EAChDa,IAAI,EAAE;IAAEZ,OAAO,EAAE,QAAQ;IAAED,KAAK,EAAE;EAAO;AAC3C,CAAC;AAED,OAAO,MAAMc,SAAoB,GAAG;EAClCC,KAAK,EAAE;IAAEd,OAAO,EAAE,SAAS;IAAED,KAAK,EAAE;EAAQ,CAAC;EAC7CgB,OAAO,EAAE;IAAEf,OAAO,EAAE,WAAW;IAAED,KAAK,EAAE;EAAU,CAAC;EACnDiB,OAAO,EAAE;IAAEhB,OAAO,EAAE,WAAW;IAAED,KAAK,EAAE;EAAU;AACpD,CAAC;AAED,OAAO,MAAMkB,aAAoC,GAAGC,MAAM,CAACC,MAAM,CAC/D,CAAC,CAAC,EACFV,SAAS,EACTI,SACF,CAAC;AAED,OAAO,MAAMO,iBAAiB,SACpBxB,sBAAsB,CAEhC;EACEE,IAAI;EACJuB,UAAU;EACVC,QAAQ;EACRC,SAAS;EACTC,QAAQ;EAERvB,WAAWA,CACToB,UAAkB,EAClBC,QAA4B,EAC5BC,SAAyB,EACzBC,QAAQ,GAAG,KAAK,EAChB;IACA,IAAI,OAAOH,UAAU,KAAK,QAAQ,EAAE;MAClC,MAAM,IAAInB,KAAK,CAAC,uDAAuD,CAAC;IAC1E;IAEA,IACE,CAACgB,MAAM,CAACO,MAAM,CAACR,aAAa,CAAC,CAC1BS,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAAC5B,KAAK,CAAC,CACzB6B,QAAQ,CAACN,QAAQ,CAAC,EACrB;MACA,MAAM,IAAIpB,KAAK,CACb,mFACF,CAAC;IACH;IAEA,IAAI,CAACgB,MAAM,CAACO,MAAM,CAACjB,cAAc,CAAC,CAACoB,QAAQ,CAACL,SAAS,CAAC,EAAE;MACtD,MAAM,IAAIrB,KAAK,CACb,sEACF,CAAC;IACH;IAEA,KAAK,CAAC,CAAC;IAEP,IAAI,CAACJ,IAAI,GAAG,cAAc;IAC1B,IAAI,CAACuB,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC1B;EAEArB,oBAAoBA,CAAA,EAAG;IACrB,OAAO,GAAG,IAAI,CAACkB,UAAU,IAAI,IAAI,CAACC,QAAQ,IAAI,IAAI,CAACC,SAAS,EAAE;EAChE;EAEAnB,YAAYA,CAAA,EAAW;IACrB,MAAMiB,UAAU,GACd,IAAI,CAACE,SAAS,KAAKf,cAAc,CAACqB,IAAI,GAClC,CAAC,GAAGC,MAAM,CAAC,IAAI,CAACT,UAAU,CAAC,GAC3B,IAAI,CAACA,UAAU;IACrB,OAAO,IAAI,CAACG,QAAQ,GAChB,qBAAqBH,UAAU,MAAM,IAAI,CAACC,QAAQ,IAAI,GACtD,qBAAqBD,UAAU,MAAM,IAAI,CAACC,QAAQ,IAAI;EAC5D;EAEA,OAAOjB,IAAIA,CAACC,GAA8C,EAAE;IAC1D,OAAO,IAAIc,iBAAiB,CAC1Bd,GAAG,CAACe,UAAU,EACdf,GAAG,CAACgB,QAAQ,EACZhB,GAAG,CAACiB,SAAS,EACbjB,GAAG,CAACkB,QACN,CAAC;EACH;EAEAjB,KAAKA,CAAA,EAAG;IACN,OAAOa,iBAAiB,CAACf,IAAI,CAAC,IAAI,CAAC;EACrC;AACF;AASA,OAAO,SAAS0B,kBAAkBA,CAChCzB,GAIsD,EACtD;EACA,QAAQA,GAAG,CAACR,IAAI;IACd,KAAK,OAAO;MACV,OAAOD,cAAc,CAACQ,IAAI,CAACC,GAAG,CAAC;IAEjC,KAAK,cAAc;MACjB,OAAOc,iBAAiB,CAACf,IAAI,CAACC,GAAG,CAAC;EACtC;AACF","ignoreList":[]}
|
@@ -7,16 +7,16 @@ export class Condition extends ConditionAbstract {
|
|
7
7
|
operator;
|
8
8
|
value;
|
9
9
|
constructor(field, operator, value, coordinator) {
|
10
|
-
super(coordinator);
|
11
10
|
if (!(field instanceof ConditionField)) {
|
12
|
-
throw Error(
|
11
|
+
throw new Error("Condition param 'field' must be ConditionField instance");
|
13
12
|
}
|
14
13
|
if (typeof operator !== 'string') {
|
15
|
-
throw Error(
|
14
|
+
throw new Error("Condition param 'operator' must be a string");
|
16
15
|
}
|
17
16
|
if (!(value instanceof ConditionValueAbstract)) {
|
18
|
-
throw Error(
|
17
|
+
throw new Error("Condition param 'field' must be ConditionValueAbstract instance");
|
19
18
|
}
|
19
|
+
super(coordinator);
|
20
20
|
this.field = field;
|
21
21
|
this.operator = operator;
|
22
22
|
this.value = value;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"condition.js","names":["ConditionAbstract","ConditionField","getExpression","ConditionValueAbstract","Condition","field","operator","value","constructor","coordinator","Error","asFirstCondition","_asFirstCondition","conditionString","display","toPresentationString","conditionExpression","type","name","clone","from"],"sources":["../../../src/conditions/condition.ts"],"sourcesContent":["import { ConditionAbstract } from '~/src/conditions/condition-abstract.js'\nimport { ConditionField } from '~/src/conditions/condition-field.js'\nimport { getExpression } from '~/src/conditions/condition-operators.js'\nimport { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract.js'\nimport {\n type ConditionValue,\n type RelativeTimeValue\n} from '~/src/conditions/condition-values.js'\nimport { type Coordinator } from '~/src/conditions/enums.js'\n\nexport class Condition extends ConditionAbstract {\n field: ConditionField\n operator: string\n value: ConditionValue | RelativeTimeValue\n\n constructor(\n field
|
1
|
+
{"version":3,"file":"condition.js","names":["ConditionAbstract","ConditionField","getExpression","ConditionValueAbstract","Condition","field","operator","value","constructor","coordinator","Error","asFirstCondition","_asFirstCondition","conditionString","display","toPresentationString","conditionExpression","type","name","clone","from"],"sources":["../../../src/conditions/condition.ts"],"sourcesContent":["import { ConditionAbstract } from '~/src/conditions/condition-abstract.js'\nimport { ConditionField } from '~/src/conditions/condition-field.js'\nimport { getExpression } from '~/src/conditions/condition-operators.js'\nimport { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract.js'\nimport {\n type ConditionValue,\n type RelativeTimeValue\n} from '~/src/conditions/condition-values.js'\nimport { type Coordinator } from '~/src/conditions/enums.js'\n\nexport class Condition extends ConditionAbstract {\n field: ConditionField\n operator: string\n value: ConditionValue | RelativeTimeValue\n\n constructor(\n field?: ConditionField,\n operator?: string,\n value?: ConditionValue | RelativeTimeValue,\n coordinator?: Coordinator\n ) {\n if (!(field instanceof ConditionField)) {\n throw new Error(\"Condition param 'field' must be ConditionField instance\")\n }\n if (typeof operator !== 'string') {\n throw new Error(\"Condition param 'operator' must be a string\")\n }\n if (!(value instanceof ConditionValueAbstract)) {\n throw new Error(\n \"Condition param 'field' must be ConditionValueAbstract instance\"\n )\n }\n\n super(coordinator)\n\n this.field = field\n this.operator = operator\n this.value = value\n }\n\n asFirstCondition() {\n this._asFirstCondition()\n return this\n }\n\n conditionString() {\n return `'${this.field.display}' ${\n this.operator\n } '${this.value.toPresentationString()}'`\n }\n\n conditionExpression() {\n return getExpression(\n this.field.type,\n this.field.name,\n this.operator,\n this.value\n )\n }\n\n clone() {\n return new Condition(\n ConditionField.from(this.field),\n this.operator,\n this.value.clone(),\n this.coordinator\n )\n }\n}\n"],"mappings":"AAAA,SAASA,iBAAiB;AAC1B,SAASC,cAAc;AACvB,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAO/B,OAAO,MAAMC,SAAS,SAASJ,iBAAiB,CAAC;EAC/CK,KAAK;EACLC,QAAQ;EACRC,KAAK;EAELC,WAAWA,CACTH,KAAsB,EACtBC,QAAiB,EACjBC,KAA0C,EAC1CE,WAAyB,EACzB;IACA,IAAI,EAAEJ,KAAK,YAAYJ,cAAc,CAAC,EAAE;MACtC,MAAM,IAAIS,KAAK,CAAC,yDAAyD,CAAC;IAC5E;IACA,IAAI,OAAOJ,QAAQ,KAAK,QAAQ,EAAE;MAChC,MAAM,IAAII,KAAK,CAAC,6CAA6C,CAAC;IAChE;IACA,IAAI,EAAEH,KAAK,YAAYJ,sBAAsB,CAAC,EAAE;MAC9C,MAAM,IAAIO,KAAK,CACb,iEACF,CAAC;IACH;IAEA,KAAK,CAACD,WAAW,CAAC;IAElB,IAAI,CAACJ,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,KAAK,GAAGA,KAAK;EACpB;EAEAI,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACC,iBAAiB,CAAC,CAAC;IACxB,OAAO,IAAI;EACb;EAEAC,eAAeA,CAAA,EAAG;IAChB,OAAO,IAAI,IAAI,CAACR,KAAK,CAACS,OAAO,KAC3B,IAAI,CAACR,QAAQ,KACV,IAAI,CAACC,KAAK,CAACQ,oBAAoB,CAAC,CAAC,GAAG;EAC3C;EAEAC,mBAAmBA,CAAA,EAAG;IACpB,OAAOd,aAAa,CAClB,IAAI,CAACG,KAAK,CAACY,IAAI,EACf,IAAI,CAACZ,KAAK,CAACa,IAAI,EACf,IAAI,CAACZ,QAAQ,EACb,IAAI,CAACC,KACP,CAAC;EACH;EAEAY,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIf,SAAS,CAClBH,cAAc,CAACmB,IAAI,CAAC,IAAI,CAACf,KAAK,CAAC,EAC/B,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,KAAK,CAACY,KAAK,CAAC,CAAC,EAClB,IAAI,CAACV,WACP,CAAC;EACH;AACF","ignoreList":[]}
|
@@ -1,3 +1,8 @@
|
|
1
|
+
export let ConditionType = /*#__PURE__*/function (ConditionType) {
|
2
|
+
ConditionType["Value"] = "Value";
|
3
|
+
ConditionType["RelativeTime"] = "RelativeTime";
|
4
|
+
return ConditionType;
|
5
|
+
}({});
|
1
6
|
export let Coordinator = /*#__PURE__*/function (Coordinator) {
|
2
7
|
Coordinator["AND"] = "and";
|
3
8
|
Coordinator["OR"] = "or";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"enums.js","names":["Coordinator"],"sources":["../../../src/conditions/enums.ts"],"sourcesContent":["export enum Coordinator {\n AND = 'and',\n OR = 'or'\n}\n"],"mappings":"AAAA,WAAYA,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA","ignoreList":[]}
|
1
|
+
{"version":3,"file":"enums.js","names":["ConditionType","Coordinator"],"sources":["../../../src/conditions/enums.ts"],"sourcesContent":["export enum ConditionType {\n Value = 'Value',\n RelativeTime = 'RelativeTime'\n}\n\nexport enum Coordinator {\n AND = 'and',\n OR = 'or'\n}\n"],"mappings":"AAAA,WAAYA,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAKzB,WAAYC,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA","ignoreList":[]}
|
@@ -7,5 +7,5 @@ export { ConditionGroup } from "./condition-group.js";
|
|
7
7
|
export { ConditionsModel } from "./condition-model.js";
|
8
8
|
export { ConditionGroupDef } from "./condition-group-def.js";
|
9
9
|
export { toExpression, toPresentationString } from "./helpers.js";
|
10
|
-
export { Coordinator } from "./enums.js";
|
10
|
+
export { ConditionType, Coordinator } from "./enums.js";
|
11
11
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["getExpression","getOperatorConfig","getOperatorNames","absoluteDateOrTimeOperatorNames","relativeDateOrTimeOperatorNames","timeUnits","dateUnits","dateTimeUnits","ConditionValue","DateDirections","RelativeTimeValue","conditionValueFrom","ConditionField","Condition","ConditionRef","ConditionGroup","ConditionsModel","ConditionGroupDef","toExpression","toPresentationString","Coordinator"],"sources":["../../../src/conditions/index.ts"],"sourcesContent":["export {\n getExpression,\n getOperatorConfig,\n getOperatorNames,\n absoluteDateOrTimeOperatorNames,\n relativeDateOrTimeOperatorNames\n} from '~/src/conditions/condition-operators.js'\n\nexport {\n timeUnits,\n dateUnits,\n dateTimeUnits,\n ConditionValue,\n DateDirections,\n RelativeTimeValue,\n conditionValueFrom\n} from '~/src/conditions/condition-values.js'\n\nexport { ConditionField } from '~/src/conditions/condition-field.js'\nexport { Condition } from '~/src/conditions/condition.js'\nexport { ConditionRef } from '~/src/conditions/condition-ref.js'\nexport { ConditionGroup } from '~/src/conditions/condition-group.js'\nexport { ConditionsModel } from '~/src/conditions/condition-model.js'\nexport { ConditionGroupDef } from '~/src/conditions/condition-group-def.js'\nexport { toExpression, toPresentationString } from '~/src/conditions/helpers.js'\n\nexport { Coordinator } from '~/src/conditions/enums.js'\n"],"mappings":"AAAA,SACEA,aAAa,EACbC,iBAAiB,EACjBC,gBAAgB,EAChBC,+BAA+B,EAC/BC,+BAA+B;AAGjC,SACEC,SAAS,EACTC,SAAS,EACTC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,kBAAkB;AAGpB,SAASC,cAAc;AACvB,SAASC,SAAS;AAClB,SAASC,YAAY;AACrB,SAASC,cAAc;AACvB,SAASC,eAAe;AACxB,SAASC,iBAAiB;AAC1B,SAASC,YAAY,EAAEC,oBAAoB;AAE3C,SAASC,WAAW","ignoreList":[]}
|
1
|
+
{"version":3,"file":"index.js","names":["getExpression","getOperatorConfig","getOperatorNames","absoluteDateOrTimeOperatorNames","relativeDateOrTimeOperatorNames","timeUnits","dateUnits","dateTimeUnits","ConditionValue","DateDirections","RelativeTimeValue","conditionValueFrom","ConditionField","Condition","ConditionRef","ConditionGroup","ConditionsModel","ConditionGroupDef","toExpression","toPresentationString","ConditionType","Coordinator"],"sources":["../../../src/conditions/index.ts"],"sourcesContent":["export {\n getExpression,\n getOperatorConfig,\n getOperatorNames,\n absoluteDateOrTimeOperatorNames,\n relativeDateOrTimeOperatorNames\n} from '~/src/conditions/condition-operators.js'\n\nexport {\n timeUnits,\n dateUnits,\n dateTimeUnits,\n ConditionValue,\n DateDirections,\n RelativeTimeValue,\n conditionValueFrom\n} from '~/src/conditions/condition-values.js'\n\nexport { ConditionField } from '~/src/conditions/condition-field.js'\nexport { Condition } from '~/src/conditions/condition.js'\nexport { ConditionRef } from '~/src/conditions/condition-ref.js'\nexport { ConditionGroup } from '~/src/conditions/condition-group.js'\nexport { ConditionsModel } from '~/src/conditions/condition-model.js'\nexport { ConditionGroupDef } from '~/src/conditions/condition-group-def.js'\nexport { toExpression, toPresentationString } from '~/src/conditions/helpers.js'\n\nexport { ConditionType, Coordinator } from '~/src/conditions/enums.js'\n"],"mappings":"AAAA,SACEA,aAAa,EACbC,iBAAiB,EACjBC,gBAAgB,EAChBC,+BAA+B,EAC/BC,+BAA+B;AAGjC,SACEC,SAAS,EACTC,SAAS,EACTC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,kBAAkB;AAGpB,SAASC,cAAc;AACvB,SAASC,SAAS;AAClB,SAASC,YAAY;AACrB,SAASC,cAAc;AACvB,SAASC,eAAe;AACxB,SAASC,iBAAiB;AAC1B,SAASC,YAAY,EAAEC,oBAAoB;AAE3C,SAASC,aAAa,EAAEC,WAAW","ignoreList":[]}
|
@@ -40,19 +40,20 @@ const conditionSchema = Joi.object().keys({
|
|
40
40
|
const conditionGroupSchema = Joi.object().keys({
|
41
41
|
conditions: Joi.array().items(Joi.alternatives().try(conditionSchema, conditionRefSchema, Joi.any() /** Should be a joi.link('#conditionGroupSchema') */))
|
42
42
|
});
|
43
|
-
const conditionsModelSchema = Joi.object().keys({
|
43
|
+
const conditionsModelSchema = Joi.alternatives().try(Joi.string(), Joi.object().keys({
|
44
44
|
name: Joi.string().required(),
|
45
45
|
conditions: Joi.array().items(Joi.alternatives().try(conditionSchema, conditionRefSchema, conditionGroupSchema))
|
46
|
-
});
|
46
|
+
}));
|
47
47
|
const conditionsSchema = Joi.object().keys({
|
48
48
|
name: Joi.string().required(),
|
49
49
|
displayName: Joi.string(),
|
50
|
-
value:
|
50
|
+
value: conditionsModelSchema.required()
|
51
51
|
});
|
52
52
|
const localisedString = Joi.alternatives().try(Joi.object({
|
53
53
|
a: Joi.any()
|
54
54
|
}).unknown(), Joi.string().allow(''));
|
55
55
|
export const componentSchema = Joi.object().keys({
|
56
|
+
subType: Joi.string().optional(),
|
56
57
|
type: Joi.string().required(),
|
57
58
|
name: Joi.string(),
|
58
59
|
title: localisedString,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["Joi","CURRENT_VERSION","sectionsSchema","object","keys","name","string","required","title","hideTitle","boolean","optional","default","conditionFieldSchema","type","display","conditionValueSchema","value","relativeTimeValueSchema","timePeriod","timeUnit","direction","timeOnly","conditionRefSchema","conditionName","conditionDisplayName","coordinator","conditionSchema","field","operator","alternatives","try","conditionGroupSchema","conditions","array","items","any","conditionsModelSchema","conditionsSchema","displayName","localisedString","a","unknown","allow","componentSchema","hint","options","schema","min","number","max","list","nextSchema","path","condition","redirect","pageSchema","disallow","section","controller","components","next","repeatField","backLinkFallback","toggleableString","confirmationPageSchema","customText","nextSteps","specialPagesSchema","confirmationPage","listItemSchema","text","description","conditional","unique","listSchema","valid","multiApiKeySchema","test","production","replyToConfigurationSchema","emailReplyToId","notifySchema","apiKey","templateId","emailField","personalisation","personalisationFieldCustomisation","pattern","addReferencesToPersonalisation","emailReplyToIdConfiguration","emailSchema","emailAddress","webhookSchema","url","allowRetry","outputSchema","outputConfiguration","feedbackSchema","feedbackForm","when","is","then","email","tlds","phaseBannerSchema","phase","formDefinitionSchema","feedback","startPage","pages","sections","lists","metadata","declaration","outputs","skipSummary","phaseBanner","specialPages","outputEmail","trim","Schema"],"sources":["../../../../src/form/form-definition/index.ts"],"sourcesContent":["import Joi from 'joi'\n\nimport { type ComponentDef } from '~/src/components/types.js'\nimport {\n type ConditionRawData,\n type ConfirmationPage,\n type EmailOutputConfiguration,\n type FormDefinition,\n type Item,\n type List,\n type MultipleApiKeys,\n type Next,\n type NotifyOutputConfiguration,\n type Output,\n type Page,\n type PhaseBanner,\n type RepeatingFieldPage,\n type Section,\n type SpecialPages,\n type WebhookOutputConfiguration\n} from '~/src/form/form-definition/types.js'\n\n/**\n * If an optional key is added, CURRENT_VERSION does not need to be incremented.\n * Only breaking changes will require an increment, as well as a migration script.\n */\nexport const CURRENT_VERSION = 2\n\nconst sectionsSchema = Joi.object<Section>().keys({\n name: Joi.string().required(),\n title: Joi.string().required(),\n hideTitle: Joi.boolean().optional().default(false)\n})\n\nconst conditionFieldSchema = Joi.object().keys({\n name: Joi.string().required(),\n type: Joi.string().required(),\n display: Joi.string().required()\n})\n\nconst conditionValueSchema = Joi.object().keys({\n type: Joi.string().required(),\n value: Joi.string().required(),\n display: Joi.string().required()\n})\n\nconst relativeTimeValueSchema = Joi.object().keys({\n type: Joi.string().required(),\n timePeriod: Joi.string().required(),\n timeUnit: Joi.string().required(),\n direction: Joi.string().required(),\n timeOnly: Joi.boolean().required()\n})\n\nconst conditionRefSchema = Joi.object().keys({\n conditionName: Joi.string().required(),\n conditionDisplayName: Joi.string().required(),\n coordinator: Joi.string().optional()\n})\n\nconst conditionSchema = Joi.object().keys({\n field: conditionFieldSchema,\n operator: Joi.string().required(),\n value: Joi.alternatives().try(conditionValueSchema, relativeTimeValueSchema),\n coordinator: Joi.string().optional()\n})\n\nconst conditionGroupSchema = Joi.object().keys({\n conditions: Joi.array().items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n Joi.any() /** Should be a joi.link('#conditionGroupSchema') */\n )\n )\n})\n\nconst conditionsModelSchema = Joi.object().keys({\n name: Joi.string().required(),\n conditions: Joi.array().items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n conditionGroupSchema\n )\n )\n})\n\nconst conditionsSchema = Joi.object<ConditionRawData>().keys({\n name: Joi.string().required(),\n displayName: Joi.string(),\n value: Joi.alternatives().try(Joi.string(), conditionsModelSchema).required()\n})\n\nconst localisedString = Joi.alternatives().try(\n Joi.object({ a: Joi.any() }).unknown(),\n Joi.string().allow('')\n)\n\nexport const componentSchema = Joi.object<ComponentDef>()\n .keys({\n type: Joi.string().required(),\n name: Joi.string(),\n title: localisedString,\n hint: localisedString.optional(),\n options: Joi.object().default({}),\n schema: Joi.object({ min: Joi.number(), max: Joi.number() })\n .unknown(true)\n .default({}),\n list: Joi.string().optional()\n })\n .unknown(true)\n\nconst nextSchema = Joi.object<Next>().keys({\n path: Joi.string().required(),\n condition: Joi.string().allow('').optional(),\n redirect: Joi.string().optional()\n})\n\n/**\n * `/status` is a special route for providing a user's application status.\n * It should not be configured via the designer.\n */\nconst pageSchema = Joi.object<Page | RepeatingFieldPage>().keys({\n path: Joi.string().required().disallow('/status'),\n title: localisedString,\n section: Joi.string(),\n controller: Joi.string().optional(),\n components: Joi.array<ComponentDef>().items(componentSchema),\n next: Joi.array<Next>().items(nextSchema),\n repeatField: Joi.string().optional(),\n options: Joi.object().optional(),\n backLinkFallback: Joi.string().optional()\n})\n\nconst toggleableString = Joi.alternatives().try(Joi.boolean(), Joi.string())\n\nconst confirmationPageSchema = Joi.object<ConfirmationPage>({\n customText: Joi.object<ConfirmationPage['customText']>({\n title: Joi.string().default('Application complete'),\n nextSteps: toggleableString.default(\n 'You will receive an email with details with the next steps.'\n )\n }).default(),\n components: Joi.array<ComponentDef>().items(componentSchema)\n})\n\nconst specialPagesSchema = Joi.object<SpecialPages>().keys({\n confirmationPage: confirmationPageSchema.optional()\n})\n\nconst listItemSchema = Joi.object<Item>().keys({\n text: localisedString,\n value: Joi.alternatives().try(Joi.number(), Joi.string()),\n description: localisedString.optional(),\n conditional: Joi.object<Item['conditional']>()\n .keys({\n components: Joi.array<ComponentDef>()\n .required()\n .items(componentSchema.unknown(true))\n .unique('name')\n })\n .allow(null)\n .optional(),\n condition: Joi.string().allow(null, '').optional()\n})\n\nconst listSchema = Joi.object<List>().keys({\n name: Joi.string().required(),\n title: localisedString,\n type: Joi.string().required().valid('string', 'number'),\n items: Joi.array<Item>().items(listItemSchema)\n})\n\nconst multiApiKeySchema = Joi.object<MultipleApiKeys>({\n test: Joi.string().optional(),\n production: Joi.string().optional()\n})\n\nconst replyToConfigurationSchema = Joi.object({\n emailReplyToId: Joi.string(),\n condition: Joi.string().allow('').optional()\n})\n\nconst notifySchema = Joi.object<NotifyOutputConfiguration>().keys({\n apiKey: [Joi.string().allow('').optional(), multiApiKeySchema],\n templateId: Joi.string(),\n emailField: Joi.string(),\n personalisation: Joi.array<string>().items(Joi.string()),\n personalisationFieldCustomisation: Joi.object()\n .pattern(/./, Joi.array<string>().items(Joi.string()))\n .optional(),\n addReferencesToPersonalisation: Joi.boolean().optional(),\n emailReplyToIdConfiguration: Joi.array().items(replyToConfigurationSchema)\n})\n\nconst emailSchema = Joi.object<EmailOutputConfiguration>().keys({\n emailAddress: Joi.string().required()\n})\n\nconst webhookSchema = Joi.object<WebhookOutputConfiguration>().keys({\n url: Joi.string(),\n allowRetry: Joi.boolean().optional().default(true)\n})\n\nconst outputSchema = Joi.object<Output>().keys({\n name: Joi.string(),\n title: Joi.string().optional(),\n type: Joi.string().allow('notify', 'email', 'webhook', 'sheets'),\n outputConfiguration: Joi.alternatives().try(\n notifySchema,\n emailSchema,\n webhookSchema\n )\n})\n\nconst feedbackSchema = Joi.object<FormDefinition['feedback']>().keys({\n feedbackForm: Joi.boolean().default(false),\n url: Joi.when('feedbackForm', {\n is: Joi.boolean().valid(false),\n then: Joi.string().optional().allow('')\n }),\n emailAddress: Joi.string()\n .email({\n tlds: {\n allow: false\n }\n })\n .optional()\n})\n\nconst phaseBannerSchema = Joi.object<PhaseBanner>().keys({\n phase: Joi.string().valid('alpha', 'beta')\n})\n\n/**\n * Joi schema for `FormDefinition` interface\n * @see {@link FormDefinition}\n */\nexport const formDefinitionSchema = Joi.object<FormDefinition>()\n .required()\n .keys({\n name: localisedString.optional(),\n feedback: feedbackSchema.optional(),\n startPage: Joi.string().required(),\n pages: Joi.array<Page | RepeatingFieldPage>()\n .required()\n .items(pageSchema)\n .unique('path'),\n sections: Joi.array<Section>()\n .items(sectionsSchema)\n .unique('name')\n .required(),\n conditions: Joi.array<ConditionRawData>()\n .items(conditionsSchema)\n .unique('name'),\n lists: Joi.array<List>().items(listSchema).unique('name'),\n metadata: Joi.object({ a: Joi.any() }).unknown().optional(),\n declaration: Joi.string().allow('').optional(),\n outputs: Joi.array<Output>().items(outputSchema),\n skipSummary: Joi.boolean().optional().default(false),\n phaseBanner: phaseBannerSchema,\n specialPages: specialPagesSchema.optional(),\n outputEmail: Joi.string()\n .email({ tlds: { allow: ['uk'] } })\n .trim()\n .optional()\n })\n\n// Maintain compatibility with legacy named export\n// E.g. `import { Schema } from '@defra/forms-model'`\nexport const Schema = formDefinitionSchema\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"index.js","names":["Joi","CURRENT_VERSION","sectionsSchema","object","keys","name","string","required","title","hideTitle","boolean","optional","default","conditionFieldSchema","type","display","conditionValueSchema","value","relativeTimeValueSchema","timePeriod","timeUnit","direction","timeOnly","conditionRefSchema","conditionName","conditionDisplayName","coordinator","conditionSchema","field","operator","alternatives","try","conditionGroupSchema","conditions","array","items","any","conditionsModelSchema","conditionsSchema","displayName","localisedString","a","unknown","allow","componentSchema","subType","hint","options","schema","min","number","max","list","nextSchema","path","condition","redirect","pageSchema","disallow","section","controller","components","next","repeatField","backLinkFallback","toggleableString","confirmationPageSchema","customText","nextSteps","specialPagesSchema","confirmationPage","listItemSchema","text","description","conditional","unique","listSchema","valid","multiApiKeySchema","test","production","replyToConfigurationSchema","emailReplyToId","notifySchema","apiKey","templateId","emailField","personalisation","personalisationFieldCustomisation","pattern","addReferencesToPersonalisation","emailReplyToIdConfiguration","emailSchema","emailAddress","webhookSchema","url","allowRetry","outputSchema","outputConfiguration","feedbackSchema","feedbackForm","when","is","then","email","tlds","phaseBannerSchema","phase","formDefinitionSchema","feedback","startPage","pages","sections","lists","metadata","declaration","outputs","skipSummary","phaseBanner","specialPages","outputEmail","trim","Schema"],"sources":["../../../../src/form/form-definition/index.ts"],"sourcesContent":["import Joi from 'joi'\n\nimport {\n type ComponentSubType,\n type ComponentType\n} from '~/src/components/enums.js'\nimport { type ComponentDef } from '~/src/components/types.js'\nimport {\n type ConditionRawData,\n type ConditionWrapperValue,\n type ConfirmationPage,\n type EmailOutputConfiguration,\n type FormDefinition,\n type Item,\n type List,\n type MultipleApiKeys,\n type Next,\n type NotifyOutputConfiguration,\n type Output,\n type Page,\n type PhaseBanner,\n type RepeatingFieldPage,\n type Section,\n type SpecialPages,\n type WebhookOutputConfiguration\n} from '~/src/form/form-definition/types.js'\n\n/**\n * If an optional key is added, CURRENT_VERSION does not need to be incremented.\n * Only breaking changes will require an increment, as well as a migration script.\n */\nexport const CURRENT_VERSION = 2\n\nconst sectionsSchema = Joi.object<Section>().keys({\n name: Joi.string().required(),\n title: Joi.string().required(),\n hideTitle: Joi.boolean().optional().default(false)\n})\n\nconst conditionFieldSchema = Joi.object().keys({\n name: Joi.string().required(),\n type: Joi.string().required(),\n display: Joi.string().required()\n})\n\nconst conditionValueSchema = Joi.object().keys({\n type: Joi.string().required(),\n value: Joi.string().required(),\n display: Joi.string().required()\n})\n\nconst relativeTimeValueSchema = Joi.object().keys({\n type: Joi.string().required(),\n timePeriod: Joi.string().required(),\n timeUnit: Joi.string().required(),\n direction: Joi.string().required(),\n timeOnly: Joi.boolean().required()\n})\n\nconst conditionRefSchema = Joi.object().keys({\n conditionName: Joi.string().required(),\n conditionDisplayName: Joi.string().required(),\n coordinator: Joi.string().optional()\n})\n\nconst conditionSchema = Joi.object().keys({\n field: conditionFieldSchema,\n operator: Joi.string().required(),\n value: Joi.alternatives().try(conditionValueSchema, relativeTimeValueSchema),\n coordinator: Joi.string().optional()\n})\n\nconst conditionGroupSchema = Joi.object().keys({\n conditions: Joi.array().items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n Joi.any() /** Should be a joi.link('#conditionGroupSchema') */\n )\n )\n})\n\nconst conditionsModelSchema = Joi.alternatives<ConditionWrapperValue>().try(\n Joi.string(),\n Joi.object().keys({\n name: Joi.string().required(),\n conditions: Joi.array().items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n conditionGroupSchema\n )\n )\n })\n)\n\nconst conditionsSchema = Joi.object<ConditionRawData>().keys({\n name: Joi.string().required(),\n displayName: Joi.string(),\n value: conditionsModelSchema.required()\n})\n\nconst localisedString = Joi.alternatives().try(\n Joi.object({ a: Joi.any() }).unknown(),\n Joi.string().allow('')\n)\n\nexport const componentSchema = Joi.object<ComponentDef>()\n .keys({\n subType: Joi.string<ComponentSubType>().optional(),\n type: Joi.string<ComponentType>().required(),\n name: Joi.string(),\n title: localisedString,\n hint: localisedString.optional(),\n options: Joi.object().default({}),\n schema: Joi.object({ min: Joi.number(), max: Joi.number() })\n .unknown(true)\n .default({}),\n list: Joi.string().optional()\n })\n .unknown(true)\n\nconst nextSchema = Joi.object<Next>().keys({\n path: Joi.string().required(),\n condition: Joi.string().allow('').optional(),\n redirect: Joi.string().optional()\n})\n\n/**\n * `/status` is a special route for providing a user's application status.\n * It should not be configured via the designer.\n */\nconst pageSchema = Joi.object<Page | RepeatingFieldPage>().keys({\n path: Joi.string().required().disallow('/status'),\n title: localisedString,\n section: Joi.string(),\n controller: Joi.string().optional(),\n components: Joi.array<ComponentDef>().items(componentSchema),\n next: Joi.array<Next>().items(nextSchema),\n repeatField: Joi.string().optional(),\n options: Joi.object().optional(),\n backLinkFallback: Joi.string().optional()\n})\n\nconst toggleableString = Joi.alternatives().try(Joi.boolean(), Joi.string())\n\nconst confirmationPageSchema = Joi.object<ConfirmationPage>({\n customText: Joi.object<ConfirmationPage['customText']>({\n title: Joi.string().default('Application complete'),\n nextSteps: toggleableString.default(\n 'You will receive an email with details with the next steps.'\n )\n }).default(),\n components: Joi.array<ComponentDef>().items(componentSchema)\n})\n\nconst specialPagesSchema = Joi.object<SpecialPages>().keys({\n confirmationPage: confirmationPageSchema.optional()\n})\n\nconst listItemSchema = Joi.object<Item>().keys({\n text: localisedString,\n value: Joi.alternatives().try(Joi.number(), Joi.string()),\n description: localisedString.optional(),\n conditional: Joi.object<Item['conditional']>()\n .keys({\n components: Joi.array<ComponentDef>()\n .required()\n .items(componentSchema.unknown(true))\n .unique('name')\n })\n .allow(null)\n .optional(),\n condition: Joi.string().allow(null, '').optional()\n})\n\nconst listSchema = Joi.object<List>().keys({\n name: Joi.string().required(),\n title: localisedString,\n type: Joi.string().required().valid('string', 'number'),\n items: Joi.array<Item>().items(listItemSchema)\n})\n\nconst multiApiKeySchema = Joi.object<MultipleApiKeys>({\n test: Joi.string().optional(),\n production: Joi.string().optional()\n})\n\nconst replyToConfigurationSchema = Joi.object({\n emailReplyToId: Joi.string(),\n condition: Joi.string().allow('').optional()\n})\n\nconst notifySchema = Joi.object<NotifyOutputConfiguration>().keys({\n apiKey: [Joi.string().allow('').optional(), multiApiKeySchema],\n templateId: Joi.string(),\n emailField: Joi.string(),\n personalisation: Joi.array<string>().items(Joi.string()),\n personalisationFieldCustomisation: Joi.object()\n .pattern(/./, Joi.array<string>().items(Joi.string()))\n .optional(),\n addReferencesToPersonalisation: Joi.boolean().optional(),\n emailReplyToIdConfiguration: Joi.array().items(replyToConfigurationSchema)\n})\n\nconst emailSchema = Joi.object<EmailOutputConfiguration>().keys({\n emailAddress: Joi.string().required()\n})\n\nconst webhookSchema = Joi.object<WebhookOutputConfiguration>().keys({\n url: Joi.string(),\n allowRetry: Joi.boolean().optional().default(true)\n})\n\nconst outputSchema = Joi.object<Output>().keys({\n name: Joi.string(),\n title: Joi.string().optional(),\n type: Joi.string().allow('notify', 'email', 'webhook', 'sheets'),\n outputConfiguration: Joi.alternatives().try(\n notifySchema,\n emailSchema,\n webhookSchema\n )\n})\n\nconst feedbackSchema = Joi.object<FormDefinition['feedback']>().keys({\n feedbackForm: Joi.boolean().default(false),\n url: Joi.when('feedbackForm', {\n is: Joi.boolean().valid(false),\n then: Joi.string().optional().allow('')\n }),\n emailAddress: Joi.string()\n .email({\n tlds: {\n allow: false\n }\n })\n .optional()\n})\n\nconst phaseBannerSchema = Joi.object<PhaseBanner>().keys({\n phase: Joi.string().valid('alpha', 'beta')\n})\n\n/**\n * Joi schema for `FormDefinition` interface\n * @see {@link FormDefinition}\n */\nexport const formDefinitionSchema = Joi.object<FormDefinition>()\n .required()\n .keys({\n name: localisedString.optional(),\n feedback: feedbackSchema.optional(),\n startPage: Joi.string().required(),\n pages: Joi.array<Page | RepeatingFieldPage>()\n .required()\n .items(pageSchema)\n .unique('path'),\n sections: Joi.array<Section>()\n .items(sectionsSchema)\n .unique('name')\n .required(),\n conditions: Joi.array<ConditionRawData>()\n .items(conditionsSchema)\n .unique('name'),\n lists: Joi.array<List>().items(listSchema).unique('name'),\n metadata: Joi.object({ a: Joi.any() }).unknown().optional(),\n declaration: Joi.string().allow('').optional(),\n outputs: Joi.array<Output>().items(outputSchema),\n skipSummary: Joi.boolean().optional().default(false),\n phaseBanner: phaseBannerSchema,\n specialPages: specialPagesSchema.optional(),\n outputEmail: Joi.string()\n .email({ tlds: { allow: ['uk'] } })\n .trim()\n .optional()\n })\n\n// Maintain compatibility with legacy named export\n// E.g. `import { Schema } from '@defra/forms-model'`\nexport const Schema = formDefinitionSchema\n"],"mappings":"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","ignoreList":[]}
|
package/dist/module/index.js
CHANGED
package/dist/module/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from '~/src/data-model/index.js'\nexport * from '~/src/form/form-
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from '~/src/data-model/index.js'\nexport * from '~/src/form/form-definition/index.js'\nexport * from '~/src/form/form-metadata/index.js'\nexport * from '~/src/components/index.js'\nexport * from '~/src/conditions/index.js'\nexport * from '~/src/utils/helpers.js'\nexport type * from '~/src/components/types.js'\nexport type * from '~/src/conditions/types.js'\nexport type * from '~/src/form/form-definition/types.js'\nexport type * from '~/src/form/form-metadata/types.js'\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"component-types.d.ts","sourceRoot":"","sources":["../../../src/components/component-types.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"component-types.d.ts","sourceRoot":"","sources":["../../../src/components/component-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,eAAO,MAAM,cAAc,EAAE,YAAY,EAgNxC,CAAA"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
export declare enum
|
1
|
+
export declare enum ComponentType {
|
2
2
|
TextField = "TextField",
|
3
3
|
MultilineTextField = "MultilineTextField",
|
4
4
|
YesNoField = "YesNoField",
|
@@ -20,6 +20,12 @@ export declare enum ComponentTypeEnum {
|
|
20
20
|
Html = "Html",
|
21
21
|
InsetText = "InsetText",
|
22
22
|
Details = "Details",
|
23
|
-
List = "List"
|
23
|
+
List = "List",
|
24
|
+
WebsiteField = "WebsiteField"
|
25
|
+
}
|
26
|
+
export declare enum ComponentSubType {
|
27
|
+
Content = "content",
|
28
|
+
Field = "field",
|
29
|
+
ListField = "listField"
|
24
30
|
}
|
25
31
|
//# sourceMappingURL=enums.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/components/enums.ts"],"names":[],"mappings":"AAAA,oBAAY,
|
1
|
+
{"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/components/enums.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,SAAS,cAAc;IACvB,kBAAkB,uBAAuB;IACzC,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,iBAAiB,sBAAsB;IACvC,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IACnC,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,eAAe,oBAAoB;IACnC,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,YAAY,iBAAiB;CAC9B;AAED,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,SAAS,cAAc;CACxB"}
|
@@ -1,4 +1,3 @@
|
|
1
1
|
export { ComponentTypes } from '../components/component-types.js';
|
2
|
-
export {
|
3
|
-
export { ComponentTypeEnum } from '../components/enums.js';
|
2
|
+
export { ComponentType, ComponentSubType } from '../components/enums.js';
|
4
3
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA"}
|
@@ -1,9 +1,8 @@
|
|
1
|
-
|
2
|
-
export type ComponentSubType = 'field' | 'content';
|
1
|
+
import { type ComponentSubType, type ComponentType } from '../components/enums.js';
|
3
2
|
export interface ConditionalComponent {
|
4
|
-
name:
|
3
|
+
name: string;
|
5
4
|
title: string;
|
6
|
-
subType:
|
5
|
+
subType: ComponentSubType.Field;
|
7
6
|
}
|
8
7
|
export interface ContentOptions {
|
9
8
|
condition?: string;
|
@@ -12,8 +11,8 @@ export interface ContentOptions {
|
|
12
11
|
* Types for Components JSON structure which are expected by engine and turned into actual form input/content/lists
|
13
12
|
*/
|
14
13
|
interface TextFieldBase {
|
15
|
-
|
16
|
-
|
14
|
+
type: ComponentType.EmailAddressField | ComponentType.MultilineTextField | ComponentType.NumberField | ComponentType.TelephoneNumberField | ComponentType.TextField | ComponentType.UkAddressField | ComponentType.WebsiteField | ComponentType.YesNoField;
|
15
|
+
subType?: ComponentSubType.Field;
|
17
16
|
name: string;
|
18
17
|
title: string;
|
19
18
|
hint?: string;
|
@@ -31,12 +30,12 @@ interface TextFieldBase {
|
|
31
30
|
min?: number;
|
32
31
|
length?: number;
|
33
32
|
regex?: string;
|
34
|
-
error?:
|
33
|
+
error?: unknown;
|
35
34
|
};
|
36
35
|
}
|
37
36
|
interface NumberFieldBase {
|
38
|
-
|
39
|
-
|
37
|
+
type: ComponentType;
|
38
|
+
subType?: ComponentSubType.Field;
|
40
39
|
name: string;
|
41
40
|
title: string;
|
42
41
|
hint: string;
|
@@ -52,8 +51,8 @@ interface NumberFieldBase {
|
|
52
51
|
};
|
53
52
|
}
|
54
53
|
interface ListFieldBase {
|
55
|
-
|
56
|
-
|
54
|
+
type: ComponentType.AutocompleteField | ComponentType.CheckboxesField | ComponentType.List | ComponentType.RadiosField | ComponentType.SelectField;
|
55
|
+
subType?: ComponentSubType.Content | ComponentSubType.ListField;
|
57
56
|
name: string;
|
58
57
|
title: string;
|
59
58
|
options: {
|
@@ -67,20 +66,20 @@ interface ListFieldBase {
|
|
67
66
|
allowPrePopulation?: boolean;
|
68
67
|
};
|
69
68
|
list: string;
|
70
|
-
schema:
|
69
|
+
schema: object;
|
71
70
|
}
|
72
71
|
interface ContentFieldBase {
|
73
|
-
|
74
|
-
|
72
|
+
type: ComponentType.Details | ComponentType.Html | ComponentType.InsetText;
|
73
|
+
subType?: ComponentSubType.Content;
|
75
74
|
name: string;
|
76
75
|
title: string;
|
77
76
|
content: string;
|
78
77
|
options: ContentOptions;
|
79
|
-
schema
|
78
|
+
schema?: object;
|
80
79
|
}
|
81
80
|
interface DateFieldBase {
|
82
|
-
|
83
|
-
|
81
|
+
type: ComponentType.DateField | ComponentType.DatePartsField | ComponentType.DateTimeField | ComponentType.DateTimePartsField | ComponentType.MonthYearField | ComponentType.TimeField;
|
82
|
+
subType?: ComponentSubType.Field;
|
84
83
|
name: string;
|
85
84
|
title: string;
|
86
85
|
hint: string;
|
@@ -92,37 +91,37 @@ interface DateFieldBase {
|
|
92
91
|
maxDaysInPast?: number;
|
93
92
|
exposeToContext?: boolean;
|
94
93
|
};
|
95
|
-
schema:
|
94
|
+
schema: object;
|
96
95
|
}
|
97
96
|
export interface TextFieldComponent extends TextFieldBase {
|
98
|
-
type:
|
97
|
+
type: ComponentType.TextField;
|
99
98
|
options: TextFieldBase['options'] & {
|
100
99
|
customValidationMessage?: string;
|
101
100
|
};
|
102
101
|
}
|
103
102
|
export interface EmailAddressFieldComponent extends TextFieldBase {
|
104
|
-
type:
|
103
|
+
type: ComponentType.EmailAddressField;
|
105
104
|
}
|
106
105
|
export interface NumberFieldComponent extends NumberFieldBase {
|
107
|
-
type:
|
106
|
+
type: ComponentType.NumberField;
|
108
107
|
}
|
109
108
|
export interface WebsiteFieldComponent extends TextFieldBase {
|
110
|
-
type:
|
109
|
+
type: ComponentType.WebsiteField;
|
111
110
|
options: TextFieldBase['options'] & {
|
112
111
|
customValidationMessage?: string;
|
113
112
|
};
|
114
113
|
}
|
115
114
|
export interface TelephoneNumberFieldComponent extends TextFieldBase {
|
116
|
-
type:
|
115
|
+
type: ComponentType.TelephoneNumberField;
|
117
116
|
options: TextFieldBase['options'] & {
|
118
117
|
customValidationMessage?: string;
|
119
118
|
};
|
120
119
|
}
|
121
120
|
export interface YesNoFieldComponent extends TextFieldBase {
|
122
|
-
type:
|
121
|
+
type: ComponentType.YesNoField;
|
123
122
|
}
|
124
123
|
export interface MultilineTextFieldComponent extends TextFieldBase {
|
125
|
-
type:
|
124
|
+
type: ComponentType.MultilineTextField;
|
126
125
|
options: TextFieldBase['options'] & {
|
127
126
|
customValidationMessage?: string;
|
128
127
|
rows?: number;
|
@@ -134,8 +133,8 @@ export interface MultilineTextFieldComponent extends TextFieldBase {
|
|
134
133
|
};
|
135
134
|
}
|
136
135
|
export interface FileUploadFieldComponent {
|
137
|
-
|
138
|
-
|
136
|
+
type: ComponentType.FileUploadField;
|
137
|
+
subType?: ComponentSubType.Field;
|
139
138
|
name: string;
|
140
139
|
title: string;
|
141
140
|
hint: string;
|
@@ -147,59 +146,59 @@ export interface FileUploadFieldComponent {
|
|
147
146
|
exposeToContext?: boolean;
|
148
147
|
imageQualityPlayback?: boolean;
|
149
148
|
};
|
150
|
-
schema:
|
149
|
+
schema: object;
|
151
150
|
}
|
152
151
|
export interface UkAddressFieldComponent extends TextFieldBase {
|
153
|
-
type:
|
152
|
+
type: ComponentType.UkAddressField;
|
154
153
|
}
|
155
154
|
export interface DateFieldComponent extends DateFieldBase {
|
156
|
-
type:
|
155
|
+
type: ComponentType.DateField;
|
157
156
|
}
|
158
157
|
export interface DateTimeFieldComponent extends DateFieldBase {
|
159
|
-
type:
|
158
|
+
type: ComponentType.DateTimeField;
|
160
159
|
}
|
161
160
|
export interface DatePartsFieldFieldComponent extends DateFieldBase {
|
162
|
-
type:
|
161
|
+
type: ComponentType.DatePartsField;
|
163
162
|
}
|
164
163
|
export interface MonthYearFieldComponent extends DateFieldBase {
|
165
|
-
type:
|
164
|
+
type: ComponentType.MonthYearField;
|
166
165
|
}
|
167
166
|
export interface DateTimePartsFieldComponent extends DateFieldBase {
|
168
|
-
type:
|
167
|
+
type: ComponentType.DateTimePartsField;
|
169
168
|
}
|
170
169
|
export interface TimeFieldComponent extends DateFieldBase {
|
171
|
-
type:
|
170
|
+
type: ComponentType.TimeField;
|
172
171
|
}
|
173
172
|
export interface DetailsComponent extends ContentFieldBase {
|
174
|
-
type:
|
173
|
+
type: ComponentType.Details;
|
175
174
|
}
|
176
175
|
export interface HtmlComponent extends ContentFieldBase {
|
177
|
-
type:
|
176
|
+
type: ComponentType.Html;
|
178
177
|
}
|
179
178
|
export interface InsetTextComponent extends ContentFieldBase {
|
180
|
-
type:
|
179
|
+
type: ComponentType.InsetText;
|
181
180
|
}
|
182
181
|
export interface ListComponent extends ListFieldBase {
|
183
|
-
type:
|
182
|
+
type: ComponentType.List;
|
184
183
|
}
|
185
184
|
export interface AutocompleteFieldComponent extends ListFieldBase {
|
186
|
-
type:
|
187
|
-
subType?:
|
185
|
+
type: ComponentType.AutocompleteField;
|
186
|
+
subType?: ComponentSubType.ListField;
|
188
187
|
}
|
189
188
|
export interface CheckboxesFieldComponent extends ListFieldBase {
|
190
|
-
type:
|
191
|
-
subType?:
|
189
|
+
type: ComponentType.CheckboxesField;
|
190
|
+
subType?: ComponentSubType.ListField;
|
192
191
|
}
|
193
192
|
export interface RadiosFieldComponent extends ListFieldBase {
|
194
|
-
type:
|
195
|
-
subType?:
|
193
|
+
type: ComponentType.RadiosField;
|
194
|
+
subType?: ComponentSubType.ListField;
|
196
195
|
}
|
197
196
|
export interface SelectFieldComponent extends ListFieldBase {
|
198
|
-
type:
|
197
|
+
type: ComponentType.SelectField;
|
198
|
+
subType?: ComponentSubType.ListField;
|
199
199
|
options: ListFieldBase['options'] & {
|
200
200
|
autocomplete?: string;
|
201
201
|
};
|
202
|
-
subType?: 'listField';
|
203
202
|
}
|
204
203
|
export type ComponentDef = InsetTextComponent | AutocompleteFieldComponent | CheckboxesFieldComponent | DateFieldComponent | DatePartsFieldFieldComponent | MonthYearFieldComponent | DateTimeFieldComponent | DateTimePartsFieldComponent | DetailsComponent | EmailAddressFieldComponent | FileUploadFieldComponent | HtmlComponent | ListComponent | MultilineTextFieldComponent | NumberFieldComponent | RadiosFieldComponent | SelectFieldComponent | TelephoneNumberFieldComponent | TextFieldComponent | TimeFieldComponent | UkAddressFieldComponent | YesNoFieldComponent | WebsiteFieldComponent;
|
205
204
|
export type InputFieldsComponentsDef = TextFieldComponent | EmailAddressFieldComponent | NumberFieldComponent | MultilineTextFieldComponent | TelephoneNumberFieldComponent | YesNoFieldComponent | FileUploadFieldComponent | DateFieldComponent | DateTimeFieldComponent | DateTimePartsFieldComponent | MonthYearFieldComponent | TimeFieldComponent | UkAddressFieldComponent | WebsiteFieldComponent;
|