@defra/forms-model 3.0.247 → 3.0.248
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 +0 -7
- package/dist/module/components/component-types.js.map +1 -1
- package/dist/module/components/enums.js +0 -1
- package/dist/module/components/enums.js.map +1 -1
- package/dist/module/components/helpers.js +2 -2
- package/dist/module/components/helpers.js.map +1 -1
- package/dist/module/components/types.js.map +1 -1
- package/dist/module/conditions/condition-abstract.js.map +1 -1
- package/dist/module/conditions/condition-field.js.map +1 -1
- package/dist/module/conditions/condition-group-def.js.map +1 -1
- package/dist/module/conditions/condition-group.js.map +1 -1
- package/dist/module/conditions/condition-model.js +4 -4
- package/dist/module/conditions/condition-model.js.map +1 -1
- package/dist/module/conditions/condition-operators.js +21 -25
- package/dist/module/conditions/condition-operators.js.map +1 -1
- package/dist/module/conditions/condition-ref.js.map +1 -1
- package/dist/module/conditions/condition-values.js +17 -54
- package/dist/module/conditions/condition-values.js.map +1 -1
- package/dist/module/conditions/condition.js.map +1 -1
- package/dist/module/conditions/enums.js +7 -1
- package/dist/module/conditions/enums.js.map +1 -1
- package/dist/module/conditions/helpers.js.map +1 -1
- package/dist/module/conditions/index.js +3 -3
- package/dist/module/conditions/index.js.map +1 -1
- package/dist/module/conditions/types.js.map +1 -1
- package/dist/module/form/form-definition/index.js +22 -29
- package/dist/module/form/form-definition/index.js.map +1 -1
- package/dist/module/form/form-definition/types.js.map +1 -1
- package/dist/module/form/form-metadata/types.js.map +1 -1
- package/dist/types/components/component-types.d.ts.map +1 -1
- package/dist/types/components/enums.d.ts +0 -1
- package/dist/types/components/enums.d.ts.map +1 -1
- package/dist/types/components/helpers.d.ts.map +1 -1
- package/dist/types/components/types.d.ts +7 -12
- package/dist/types/components/types.d.ts.map +1 -1
- package/dist/types/conditions/condition-abstract.d.ts +3 -3
- package/dist/types/conditions/condition-abstract.d.ts.map +1 -1
- package/dist/types/conditions/condition-field.d.ts +6 -8
- package/dist/types/conditions/condition-field.d.ts.map +1 -1
- package/dist/types/conditions/condition-group-def.d.ts +5 -3
- package/dist/types/conditions/condition-group-def.d.ts.map +1 -1
- package/dist/types/conditions/condition-group.d.ts +11 -10
- package/dist/types/conditions/condition-group.d.ts.map +1 -1
- package/dist/types/conditions/condition-model.d.ts +9 -17
- package/dist/types/conditions/condition-model.d.ts.map +1 -1
- package/dist/types/conditions/condition-operators.d.ts +8 -14
- package/dist/types/conditions/condition-operators.d.ts.map +1 -1
- package/dist/types/conditions/condition-ref.d.ts +4 -4
- package/dist/types/conditions/condition-ref.d.ts.map +1 -1
- package/dist/types/conditions/condition-values.d.ts +13 -30
- package/dist/types/conditions/condition-values.d.ts.map +1 -1
- package/dist/types/conditions/condition.d.ts +5 -5
- package/dist/types/conditions/condition.d.ts.map +1 -1
- package/dist/types/conditions/enums.d.ts +6 -1
- package/dist/types/conditions/enums.d.ts.map +1 -1
- package/dist/types/conditions/helpers.d.ts +5 -2
- package/dist/types/conditions/helpers.d.ts.map +1 -1
- package/dist/types/conditions/index.d.ts +3 -3
- package/dist/types/conditions/index.d.ts.map +1 -1
- package/dist/types/conditions/types.d.ts +36 -37
- package/dist/types/conditions/types.d.ts.map +1 -1
- package/dist/types/form/form-definition/index.d.ts +0 -5
- package/dist/types/form/form-definition/index.d.ts.map +1 -1
- package/dist/types/form/form-definition/types.d.ts +6 -10
- package/dist/types/form/form-definition/types.d.ts.map +1 -1
- package/dist/types/form/form-metadata/types.d.ts +5 -0
- package/dist/types/form/form-metadata/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/component-types.ts +0 -8
- package/src/components/enums.ts +0 -1
- package/src/components/helpers.ts +1 -2
- package/src/components/types.ts +7 -17
- package/src/conditions/condition-abstract.ts +5 -5
- package/src/conditions/condition-field.ts +6 -4
- package/src/conditions/condition-group-def.ts +7 -3
- package/src/conditions/condition-group.ts +11 -10
- package/src/conditions/condition-model.ts +27 -25
- package/src/conditions/condition-operators.ts +29 -49
- package/src/conditions/condition-ref.ts +3 -3
- package/src/conditions/condition-values.ts +31 -89
- package/src/conditions/condition.ts +5 -5
- package/src/conditions/enums.ts +7 -1
- package/src/conditions/helpers.ts +10 -2
- package/src/conditions/index.ts +4 -6
- package/src/conditions/types.ts +47 -24
- package/src/form/form-definition/index.ts +47 -51
- package/src/form/form-definition/types.ts +6 -13
- package/src/form/form-metadata/types.ts +6 -0
@@ -29,81 +29,44 @@ export class ConditionValue extends ConditionValueAbstract {
|
|
29
29
|
return ConditionValue.from(this);
|
30
30
|
}
|
31
31
|
}
|
32
|
-
export
|
33
|
-
YEARS: {
|
34
|
-
display: 'year(s)',
|
35
|
-
value: 'years'
|
36
|
-
},
|
37
|
-
MONTHS: {
|
38
|
-
display: 'month(s)',
|
39
|
-
value: 'months'
|
40
|
-
},
|
41
|
-
DAYS: {
|
42
|
-
display: 'day(s)',
|
43
|
-
value: 'days'
|
44
|
-
}
|
45
|
-
};
|
46
|
-
export const timeUnits = {
|
47
|
-
HOURS: {
|
48
|
-
display: 'hour(s)',
|
49
|
-
value: 'hours'
|
50
|
-
},
|
51
|
-
MINUTES: {
|
52
|
-
display: 'minute(s)',
|
53
|
-
value: 'minutes'
|
54
|
-
},
|
55
|
-
SECONDS: {
|
56
|
-
display: 'second(s)',
|
57
|
-
value: 'seconds'
|
58
|
-
}
|
59
|
-
};
|
60
|
-
export const dateTimeUnits = {
|
61
|
-
...dateUnits,
|
62
|
-
...timeUnits
|
63
|
-
};
|
64
|
-
export class RelativeTimeValue extends ConditionValueAbstract {
|
32
|
+
export class RelativeDateValue extends ConditionValueAbstract {
|
65
33
|
type;
|
66
|
-
|
67
|
-
|
34
|
+
period;
|
35
|
+
unit;
|
68
36
|
direction;
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
throw new Error("RelativeTimeValue param 'timePeriod' must be a string");
|
73
|
-
}
|
74
|
-
if (!Object.values(dateTimeUnits).map(unit => unit.value).includes(timeUnit)) {
|
75
|
-
throw new Error("RelativeTimeValue param 'dateTimeUnits' must only include DateTimeUnitValues keys");
|
37
|
+
constructor(period, unit, direction) {
|
38
|
+
if (typeof period !== 'string') {
|
39
|
+
throw new Error("RelativeDateValue param 'period' must be a string");
|
76
40
|
}
|
77
41
|
if (!Object.values(DateDirections).includes(direction)) {
|
78
|
-
throw new Error("
|
42
|
+
throw new Error("RelativeDateValue param 'direction' must be from enum DateDirections");
|
79
43
|
}
|
80
44
|
super();
|
81
|
-
this.type = ConditionType.
|
82
|
-
this.
|
83
|
-
this.
|
45
|
+
this.type = ConditionType.RelativeDate;
|
46
|
+
this.period = period;
|
47
|
+
this.unit = unit;
|
84
48
|
this.direction = direction;
|
85
|
-
this.timeOnly = timeOnly;
|
86
49
|
}
|
87
50
|
toPresentationString() {
|
88
|
-
return `${this.
|
51
|
+
return `${this.period} ${this.unit} ${this.direction}`;
|
89
52
|
}
|
90
53
|
toExpression() {
|
91
|
-
const
|
92
|
-
return
|
54
|
+
const period = this.direction === DateDirections.PAST ? 0 - Number(this.period) : this.period;
|
55
|
+
return `dateForComparison(${period}, '${this.unit}')`;
|
93
56
|
}
|
94
57
|
static from(obj) {
|
95
|
-
return new
|
58
|
+
return new RelativeDateValue(obj.period, obj.unit, obj.direction);
|
96
59
|
}
|
97
60
|
clone() {
|
98
|
-
return
|
61
|
+
return RelativeDateValue.from(this);
|
99
62
|
}
|
100
63
|
}
|
101
64
|
export function conditionValueFrom(obj) {
|
102
65
|
switch (obj.type) {
|
103
66
|
case ConditionType.Value:
|
104
67
|
return ConditionValue.from(obj);
|
105
|
-
case ConditionType.
|
106
|
-
return
|
68
|
+
case ConditionType.RelativeDate:
|
69
|
+
return RelativeDateValue.from(obj);
|
107
70
|
}
|
108
71
|
}
|
109
72
|
//# sourceMappingURL=condition-values.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"condition-values.js","names":["ConditionValueAbstract","ConditionType","DateDirections","ConditionValue","type","value","display","constructor","Error","Value","toPresentationString","toExpression","from","obj","clone","
|
1
|
+
{"version":3,"file":"condition-values.js","names":["ConditionValueAbstract","ConditionType","DateDirections","ConditionValue","type","value","display","constructor","Error","Value","toPresentationString","toExpression","from","obj","clone","RelativeDateValue","period","unit","direction","Object","values","includes","RelativeDate","PAST","Number","conditionValueFrom"],"sources":["../../../src/conditions/condition-values.ts"],"sourcesContent":["import { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract.js'\nimport { ConditionType, DateDirections } from '~/src/conditions/enums.js'\nimport { type DateUnits } from '~/src/conditions/enums.js'\nimport {\n type ConditionValueData,\n type RelativeDateValueData\n} from '~/src/conditions/types.js'\n\nexport class ConditionValue extends ConditionValueAbstract {\n type: ConditionType.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 = ConditionType.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 | ConditionValueData) {\n return new ConditionValue(obj.value, obj.display)\n }\n\n clone() {\n return ConditionValue.from(this)\n }\n}\n\nexport class RelativeDateValue extends ConditionValueAbstract {\n type: ConditionType.RelativeDate\n period\n unit\n direction\n\n constructor(period: string, unit: DateUnits, direction: DateDirections) {\n if (typeof period !== 'string') {\n throw new Error(\"RelativeDateValue param 'period' must be a string\")\n }\n\n if (!Object.values(DateDirections).includes(direction)) {\n throw new Error(\n \"RelativeDateValue param 'direction' must be from enum DateDirections\"\n )\n }\n\n super()\n\n this.type = ConditionType.RelativeDate\n this.period = period\n this.unit = unit\n this.direction = direction\n }\n\n toPresentationString() {\n return `${this.period} ${this.unit} ${this.direction}`\n }\n\n toExpression(): string {\n const period =\n this.direction === DateDirections.PAST\n ? 0 - Number(this.period)\n : this.period\n\n return `dateForComparison(${period}, '${this.unit}')`\n }\n\n static from(obj: RelativeDateValue | RelativeDateValueData) {\n return new RelativeDateValue(obj.period, obj.unit, obj.direction)\n }\n\n clone() {\n return RelativeDateValue.from(this)\n }\n}\n\nexport function conditionValueFrom(\n obj:\n | ConditionValue\n | ConditionValueData\n | RelativeDateValue\n | RelativeDateValueData\n) {\n switch (obj.type) {\n case ConditionType.Value:\n return ConditionValue.from(obj)\n\n case ConditionType.RelativeDate:\n return RelativeDateValue.from(obj)\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -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
|
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 RelativeDateValue\n} from '~/src/conditions/condition-values.js'\nimport { type Coordinator, type OperatorName } from '~/src/conditions/enums.js'\n\nexport class Condition extends ConditionAbstract {\n field: ConditionField\n operator: OperatorName\n value: ConditionValue | RelativeDateValue\n\n constructor(\n field?: ConditionField,\n operator?: OperatorName,\n value?: ConditionValue | RelativeDateValue,\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,QAAuB,EACvBC,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,6 +1,6 @@
|
|
1
1
|
export let ConditionType = /*#__PURE__*/function (ConditionType) {
|
2
2
|
ConditionType["Value"] = "Value";
|
3
|
-
ConditionType["
|
3
|
+
ConditionType["RelativeDate"] = "RelativeDate";
|
4
4
|
return ConditionType;
|
5
5
|
}({});
|
6
6
|
export let Coordinator = /*#__PURE__*/function (Coordinator) {
|
@@ -39,4 +39,10 @@ export let DateDirections = /*#__PURE__*/function (DateDirections) {
|
|
39
39
|
DateDirections["PAST"] = "in the past";
|
40
40
|
return DateDirections;
|
41
41
|
}({});
|
42
|
+
export let DateUnits = /*#__PURE__*/function (DateUnits) {
|
43
|
+
DateUnits["YEARS"] = "years";
|
44
|
+
DateUnits["MONTHS"] = "months";
|
45
|
+
DateUnits["DAYS"] = "days";
|
46
|
+
return DateUnits;
|
47
|
+
}({});
|
42
48
|
//# sourceMappingURL=enums.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"enums.js","names":["ConditionType","Coordinator","Operator","OperatorName","DateDirections"],"sources":["../../../src/conditions/enums.ts"],"sourcesContent":["export enum ConditionType {\n Value = 'Value',\n
|
1
|
+
{"version":3,"file":"enums.js","names":["ConditionType","Coordinator","Operator","OperatorName","DateDirections","DateUnits"],"sources":["../../../src/conditions/enums.ts"],"sourcesContent":["export enum ConditionType {\n Value = 'Value',\n RelativeDate = 'RelativeDate'\n}\n\nexport enum Coordinator {\n AND = 'and',\n OR = 'or'\n}\n\nexport enum Operator {\n Is = '==',\n IsNot = '!=',\n Contains = 'in',\n IsAtLeast = '>=',\n IsAtMost = '<=',\n IsLessThan = '<',\n IsMoreThan = '>'\n}\n\nexport enum OperatorName {\n Is = 'is',\n IsNot = 'is not',\n IsLongerThan = 'is longer than',\n IsShorterThan = 'is shorter than',\n HasLength = 'has length',\n Contains = 'contains',\n DoesNotContain = 'does not contain',\n IsAtLeast = 'is at least',\n IsAtMost = 'is at most',\n IsLessThan = 'is less than',\n IsMoreThan = 'is more than',\n IsBefore = 'is before',\n IsAfter = 'is after'\n}\n\nexport enum DateDirections {\n FUTURE = 'in the future',\n PAST = 'in the past'\n}\n\nexport enum DateUnits {\n YEARS = 'years',\n MONTHS = 'months',\n DAYS = 'days'\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;AAKvB,WAAYC,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AAUpB,WAAYC,YAAY,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAgBxB,WAAYC,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAK1B,WAAYC,SAAS,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["toPresentationString","condition","coordinatorString","conditionString","toExpression","conditionExpression"],"sources":["../../../src/conditions/helpers.ts"],"sourcesContent":["
|
1
|
+
{"version":3,"file":"helpers.js","names":["toPresentationString","condition","coordinatorString","conditionString","toExpression","conditionExpression"],"sources":["../../../src/conditions/helpers.ts"],"sourcesContent":["import { type ConditionGroup } from '~/src/conditions/condition-group.js'\nimport { type ConditionRef } from '~/src/conditions/condition-ref.js'\nimport { type Condition } from '~/src/conditions/condition.js'\n\nexport function toPresentationString(\n condition: Condition | ConditionRef | ConditionGroup\n) {\n return `${condition.coordinatorString()}${condition.conditionString()}`\n}\n\nexport function toExpression(\n condition: Condition | ConditionRef | ConditionGroup\n) {\n return `${condition.coordinatorString()}${condition.conditionExpression()}`\n}\n"],"mappings":"AAIA,OAAO,SAASA,oBAAoBA,CAClCC,SAAoD,EACpD;EACA,OAAO,GAAGA,SAAS,CAACC,iBAAiB,CAAC,CAAC,GAAGD,SAAS,CAACE,eAAe,CAAC,CAAC,EAAE;AACzE;AAEA,OAAO,SAASC,YAAYA,CAC1BH,SAAoD,EACpD;EACA,OAAO,GAAGA,SAAS,CAACC,iBAAiB,CAAC,CAAC,GAAGD,SAAS,CAACI,mBAAmB,CAAC,CAAC,EAAE;AAC7E","ignoreList":[]}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
export { getExpression, getOperatorConfig, getOperatorNames,
|
2
|
-
export {
|
1
|
+
export { getExpression, getOperatorConfig, getOperatorNames, absoluteDateOperatorNames, relativeDateOperatorNames } from "./condition-operators.js";
|
2
|
+
export { ConditionValue, RelativeDateValue, conditionValueFrom } from "./condition-values.js";
|
3
3
|
export { ConditionField } from "./condition-field.js";
|
4
4
|
export { Condition } from "./condition.js";
|
5
5
|
export { ConditionRef } from "./condition-ref.js";
|
@@ -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 { ConditionType, Coordinator, DateDirections, Operator, OperatorName } from "./enums.js";
|
10
|
+
export { ConditionType, Coordinator, DateDirections, DateUnits, Operator, OperatorName } from "./enums.js";
|
11
11
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["getExpression","getOperatorConfig","getOperatorNames","
|
1
|
+
{"version":3,"file":"index.js","names":["getExpression","getOperatorConfig","getOperatorNames","absoluteDateOperatorNames","relativeDateOperatorNames","ConditionValue","RelativeDateValue","conditionValueFrom","ConditionField","Condition","ConditionRef","ConditionGroup","ConditionsModel","ConditionGroupDef","toExpression","toPresentationString","ConditionType","Coordinator","DateDirections","DateUnits","Operator","OperatorName"],"sources":["../../../src/conditions/index.ts"],"sourcesContent":["export {\n getExpression,\n getOperatorConfig,\n getOperatorNames,\n absoluteDateOperatorNames,\n relativeDateOperatorNames\n} from '~/src/conditions/condition-operators.js'\n\nexport {\n ConditionValue,\n RelativeDateValue,\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 {\n ConditionType,\n Coordinator,\n DateDirections,\n DateUnits,\n Operator,\n OperatorName\n} from '~/src/conditions/enums.js'\n"],"mappings":"AAAA,SACEA,aAAa,EACbC,iBAAiB,EACjBC,gBAAgB,EAChBC,yBAAyB,EACzBC,yBAAyB;AAG3B,SACEC,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,SACEC,aAAa,EACbC,WAAW,EACXC,cAAc,EACdC,SAAS,EACTC,QAAQ,EACRC,YAAY","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/conditions/types.ts"],"sourcesContent":["import {
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/conditions/types.ts"],"sourcesContent":["import {\n type ComponentDef,\n type ConditionalComponentType\n} from '~/src/components/types.js'\nimport {\n type ConditionValue,\n type RelativeDateValue\n} from '~/src/conditions/condition-values.js'\nimport {\n type ConditionType,\n type Coordinator,\n type DateDirections,\n type DateUnits,\n type OperatorName\n} from '~/src/conditions/enums.js'\n\nexport interface ConditionValueData {\n type: ConditionType.Value\n value: string\n display: string\n}\n\nexport interface RelativeDateValueData {\n type: ConditionType.RelativeDate\n period: string\n unit: DateUnits\n direction: DateDirections\n}\n\nexport interface ConditionFieldData {\n name: string\n type: ConditionalComponentType\n display: string\n}\n\nexport interface ConditionData {\n field: ConditionFieldData\n operator: OperatorName\n value: ConditionValueData | RelativeDateValueData\n coordinator?: Coordinator\n}\n\nexport interface ConditionRefData {\n conditionName: string\n conditionDisplayName: string\n coordinator?: Coordinator\n}\n\nexport interface ConditionGroupData {\n conditions: (ConditionData | ConditionRefData | ConditionGroupData)[]\n}\n\nexport interface ConditionsModelData extends ConditionGroupData {\n name: string\n}\n\nexport interface OperatorDefinition {\n expression: (\n component: Pick<ComponentDef, 'type' | 'name'>,\n conditionValue: ConditionValue | RelativeDateValue\n ) => string\n}\n\nexport type Conditionals = Record<OperatorName, OperatorDefinition>\n"],"mappings":"","ignoreList":[]}
|
@@ -1,9 +1,4 @@
|
|
1
1
|
import Joi from 'joi';
|
2
|
-
/**
|
3
|
-
* If an optional key is added, CURRENT_VERSION does not need to be incremented.
|
4
|
-
* Only breaking changes will require an increment, as well as a migration script.
|
5
|
-
*/
|
6
|
-
export const CURRENT_VERSION = 2;
|
7
2
|
const sectionsSchema = Joi.object().keys({
|
8
3
|
name: Joi.string().required(),
|
9
4
|
title: Joi.string().required(),
|
@@ -19,12 +14,11 @@ const conditionValueSchema = Joi.object().keys({
|
|
19
14
|
value: Joi.string().required(),
|
20
15
|
display: Joi.string().required()
|
21
16
|
});
|
22
|
-
const
|
17
|
+
const relativeDateValueSchema = Joi.object().keys({
|
23
18
|
type: Joi.string().required(),
|
24
|
-
|
25
|
-
|
26
|
-
direction: Joi.string().required()
|
27
|
-
timeOnly: Joi.boolean().required()
|
19
|
+
period: Joi.string().required(),
|
20
|
+
unit: Joi.string().required(),
|
21
|
+
direction: Joi.string().required()
|
28
22
|
});
|
29
23
|
const conditionRefSchema = Joi.object().keys({
|
30
24
|
conditionName: Joi.string().required(),
|
@@ -34,32 +28,31 @@ const conditionRefSchema = Joi.object().keys({
|
|
34
28
|
const conditionSchema = Joi.object().keys({
|
35
29
|
field: conditionFieldSchema,
|
36
30
|
operator: Joi.string().required(),
|
37
|
-
value: Joi.alternatives().try(conditionValueSchema,
|
31
|
+
value: Joi.alternatives().try(conditionValueSchema, relativeDateValueSchema),
|
38
32
|
coordinator: Joi.string().optional()
|
39
33
|
});
|
40
34
|
const conditionGroupSchema = Joi.object().keys({
|
41
|
-
conditions: Joi.array().items(Joi.alternatives().try(conditionSchema, conditionRefSchema, Joi.
|
42
|
-
});
|
43
|
-
const conditionsModelSchema = Joi.
|
35
|
+
conditions: Joi.array().items(Joi.alternatives().try(conditionSchema, conditionRefSchema, Joi.link('#conditionGroupSchema')))
|
36
|
+
}).id('conditionGroupSchema');
|
37
|
+
const conditionsModelSchema = Joi.object().keys({
|
44
38
|
name: Joi.string().required(),
|
45
39
|
conditions: Joi.array().items(Joi.alternatives().try(conditionSchema, conditionRefSchema, conditionGroupSchema))
|
46
|
-
})
|
47
|
-
const
|
40
|
+
});
|
41
|
+
const conditionWrapperSchema = Joi.object().keys({
|
48
42
|
name: Joi.string().required(),
|
49
43
|
displayName: Joi.string(),
|
50
44
|
value: conditionsModelSchema.required()
|
51
45
|
});
|
52
|
-
const localisedString = Joi.alternatives().try(Joi.object({
|
53
|
-
a: Joi.any()
|
54
|
-
}).unknown(), Joi.string().allow(''));
|
55
46
|
export const componentSchema = Joi.object().keys({
|
56
47
|
type: Joi.string().required(),
|
57
48
|
name: Joi.string(),
|
58
|
-
title:
|
59
|
-
hint:
|
49
|
+
title: Joi.string().allow(''),
|
50
|
+
hint: Joi.string().allow('').optional(),
|
60
51
|
options: Joi.object({
|
61
52
|
rows: Joi.number().empty(''),
|
62
53
|
maxWords: Joi.number().empty(''),
|
54
|
+
maxDaysInPast: Joi.number().empty(''),
|
55
|
+
maxDaysInFuture: Joi.number().empty(''),
|
63
56
|
customValidationMessage: Joi.string().allow('')
|
64
57
|
}).default({}).unknown(true),
|
65
58
|
schema: Joi.object({
|
@@ -81,19 +74,19 @@ const nextSchema = Joi.object().keys({
|
|
81
74
|
*/
|
82
75
|
const pageSchema = Joi.object().keys({
|
83
76
|
path: Joi.string().required().disallow('/status'),
|
84
|
-
title:
|
77
|
+
title: Joi.string().allow(''),
|
85
78
|
section: Joi.string(),
|
86
79
|
controller: Joi.string().optional(),
|
87
80
|
components: Joi.array().items(componentSchema),
|
88
81
|
next: Joi.array().items(nextSchema)
|
89
82
|
});
|
90
83
|
const baseListItemSchema = Joi.object().keys({
|
91
|
-
text:
|
92
|
-
description:
|
84
|
+
text: Joi.string().allow(''),
|
85
|
+
description: Joi.string().allow('').optional(),
|
93
86
|
conditional: Joi.object().keys({
|
94
87
|
components: Joi.array().required().items(componentSchema.unknown(true)).unique('name')
|
95
|
-
}).
|
96
|
-
condition: Joi.string().allow(
|
88
|
+
}).optional(),
|
89
|
+
condition: Joi.string().allow('').optional()
|
97
90
|
});
|
98
91
|
const stringListItemSchema = baseListItemSchema.append({
|
99
92
|
value: Joi.string().required()
|
@@ -103,7 +96,7 @@ const numberListItemSchema = baseListItemSchema.append({
|
|
103
96
|
});
|
104
97
|
const listSchema = Joi.object().keys({
|
105
98
|
name: Joi.string().required(),
|
106
|
-
title:
|
99
|
+
title: Joi.string().allow(''),
|
107
100
|
type: Joi.string().required().valid('string', 'number'),
|
108
101
|
items: Joi.when('type', {
|
109
102
|
is: 'string',
|
@@ -132,12 +125,12 @@ const phaseBannerSchema = Joi.object().keys({
|
|
132
125
|
* @see {@link FormDefinition}
|
133
126
|
*/
|
134
127
|
export const formDefinitionSchema = Joi.object().required().keys({
|
135
|
-
name:
|
128
|
+
name: Joi.string().allow('').optional(),
|
136
129
|
feedback: feedbackSchema.optional(),
|
137
130
|
startPage: Joi.string().optional(),
|
138
131
|
pages: Joi.array().required().items(pageSchema).unique('path'),
|
139
132
|
sections: Joi.array().items(sectionsSchema).unique('name').required(),
|
140
|
-
conditions: Joi.array().items(
|
133
|
+
conditions: Joi.array().items(conditionWrapperSchema).unique('name'),
|
141
134
|
lists: Joi.array().items(listSchema).unique('name'),
|
142
135
|
metadata: Joi.object({
|
143
136
|
a: Joi.any()
|
@@ -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","rows","number","empty","maxWords","customValidationMessage","schema","min","max","length","list","nextSchema","path","condition","redirect","pageSchema","disallow","section","controller","components","next","baseListItemSchema","text","description","conditional","unique","stringListItemSchema","append","numberListItemSchema","listSchema","valid","when","is","then","otherwise","feedbackSchema","feedbackForm","url","emailAddress","email","tlds","phaseBannerSchema","phase","formDefinitionSchema","feedback","startPage","pages","sections","lists","metadata","declaration","skipSummary","phaseBanner","outputEmail","trim","Schema"],"sources":["../../../../src/form/form-definition/index.ts"],"sourcesContent":["import Joi from 'joi'\n\nimport { type ComponentType } from '~/src/components/enums.js'\nimport { type ComponentDef } from '~/src/components/types.js'\nimport {\n type ConditionRawData,\n type ConditionWrapperValue,\n type FormDefinition,\n type Item,\n type Link,\n type List,\n type Page,\n type PhaseBanner,\n type Section\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 type: Joi.string<ComponentType>().required(),\n name: Joi.string(),\n title: localisedString,\n hint: localisedString.optional(),\n options: Joi.object({\n rows: Joi.number().empty(''),\n maxWords: Joi.number().empty(''),\n customValidationMessage: Joi.string().allow('')\n })\n .default({})\n .unknown(true),\n schema: Joi.object({\n min: Joi.number().empty(''),\n max: Joi.number().empty(''),\n length: Joi.number().empty('')\n })\n .unknown(true)\n .default({}),\n list: Joi.string().optional()\n })\n .unknown(true)\n\nconst nextSchema = Joi.object<Link>().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>().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<Link>().items(nextSchema)\n})\n\nconst baseListItemSchema = Joi.object<Item>().keys({\n text: localisedString,\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 stringListItemSchema = baseListItemSchema.append({\n value: Joi.string().required()\n})\n\nconst numberListItemSchema = baseListItemSchema.append({\n value: Joi.number().required()\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.when('type', {\n is: 'string',\n then: Joi.array()\n .items(stringListItemSchema)\n .unique('text')\n .unique('value'),\n otherwise: Joi.array()\n .items(numberListItemSchema)\n .unique('text')\n .unique('value')\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().optional(),\n pages: Joi.array<Page>().required().items(pageSchema).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 skipSummary: Joi.boolean().optional().default(false),\n phaseBanner: phaseBannerSchema.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","sectionsSchema","object","keys","name","string","required","title","hideTitle","boolean","optional","default","conditionFieldSchema","type","display","conditionValueSchema","value","relativeDateValueSchema","period","unit","direction","conditionRefSchema","conditionName","conditionDisplayName","coordinator","conditionSchema","field","operator","alternatives","try","conditionGroupSchema","conditions","array","items","link","id","conditionsModelSchema","conditionWrapperSchema","displayName","componentSchema","allow","hint","options","rows","number","empty","maxWords","maxDaysInPast","maxDaysInFuture","customValidationMessage","unknown","schema","min","max","length","list","nextSchema","path","condition","redirect","pageSchema","disallow","section","controller","components","next","baseListItemSchema","text","description","conditional","unique","stringListItemSchema","append","numberListItemSchema","listSchema","valid","when","is","then","otherwise","feedbackSchema","feedbackForm","url","emailAddress","email","tlds","phaseBannerSchema","phase","formDefinitionSchema","feedback","startPage","pages","sections","lists","metadata","a","any","declaration","skipSummary","phaseBanner","outputEmail","trim","Schema"],"sources":["../../../../src/form/form-definition/index.ts"],"sourcesContent":["import Joi from 'joi'\n\nimport { type ComponentType } from '~/src/components/enums.js'\nimport { type ComponentDef } from '~/src/components/types.js'\nimport {\n type ConditionData,\n type ConditionFieldData,\n type ConditionGroupData,\n type ConditionRefData,\n type ConditionsModelData,\n type ConditionValueData,\n type RelativeDateValueData\n} from '~/src/conditions/types.js'\nimport {\n type ConditionWrapper,\n type FormDefinition,\n type Item,\n type Link,\n type List,\n type Page,\n type PhaseBanner,\n type Section\n} from '~/src/form/form-definition/types.js'\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<ConditionFieldData>().keys({\n name: Joi.string().required(),\n type: Joi.string().required(),\n display: Joi.string().required()\n})\n\nconst conditionValueSchema = Joi.object<ConditionValueData>().keys({\n type: Joi.string().required(),\n value: Joi.string().required(),\n display: Joi.string().required()\n})\n\nconst relativeDateValueSchema = Joi.object<RelativeDateValueData>().keys({\n type: Joi.string().required(),\n period: Joi.string().required(),\n unit: Joi.string().required(),\n direction: Joi.string().required()\n})\n\nconst conditionRefSchema = Joi.object<ConditionRefData>().keys({\n conditionName: Joi.string().required(),\n conditionDisplayName: Joi.string().required(),\n coordinator: Joi.string().optional()\n})\n\nconst conditionSchema = Joi.object<ConditionData>().keys({\n field: conditionFieldSchema,\n operator: Joi.string().required(),\n value: Joi.alternatives().try(conditionValueSchema, relativeDateValueSchema),\n coordinator: Joi.string().optional()\n})\n\nconst conditionGroupSchema = Joi.object<ConditionGroupData>()\n .keys({\n conditions: Joi.array().items(\n Joi.alternatives().try(\n conditionSchema,\n conditionRefSchema,\n Joi.link('#conditionGroupSchema')\n )\n )\n })\n .id('conditionGroupSchema')\n\nconst conditionsModelSchema = Joi.object<ConditionsModelData>().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 conditionWrapperSchema = Joi.object<ConditionWrapper>().keys({\n name: Joi.string().required(),\n displayName: Joi.string(),\n value: conditionsModelSchema.required()\n})\n\nexport const componentSchema = Joi.object<ComponentDef>()\n .keys({\n type: Joi.string<ComponentType>().required(),\n name: Joi.string(),\n title: Joi.string().allow(''),\n hint: Joi.string().allow('').optional(),\n options: Joi.object({\n rows: Joi.number().empty(''),\n maxWords: Joi.number().empty(''),\n maxDaysInPast: Joi.number().empty(''),\n maxDaysInFuture: Joi.number().empty(''),\n customValidationMessage: Joi.string().allow('')\n })\n .default({})\n .unknown(true),\n schema: Joi.object({\n min: Joi.number().empty(''),\n max: Joi.number().empty(''),\n length: Joi.number().empty('')\n })\n .unknown(true)\n .default({}),\n list: Joi.string().optional()\n })\n .unknown(true)\n\nconst nextSchema = Joi.object<Link>().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>().keys({\n path: Joi.string().required().disallow('/status'),\n title: Joi.string().allow(''),\n section: Joi.string(),\n controller: Joi.string().optional(),\n components: Joi.array<ComponentDef>().items(componentSchema),\n next: Joi.array<Link>().items(nextSchema)\n})\n\nconst baseListItemSchema = Joi.object<Item>().keys({\n text: Joi.string().allow(''),\n description: Joi.string().allow('').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 .optional(),\n condition: Joi.string().allow('').optional()\n})\n\nconst stringListItemSchema = baseListItemSchema.append({\n value: Joi.string().required()\n})\n\nconst numberListItemSchema = baseListItemSchema.append({\n value: Joi.number().required()\n})\n\nconst listSchema = Joi.object<List>().keys({\n name: Joi.string().required(),\n title: Joi.string().allow(''),\n type: Joi.string().required().valid('string', 'number'),\n items: Joi.when('type', {\n is: 'string',\n then: Joi.array()\n .items(stringListItemSchema)\n .unique('text')\n .unique('value'),\n otherwise: Joi.array()\n .items(numberListItemSchema)\n .unique('text')\n .unique('value')\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: Joi.string().allow('').optional(),\n feedback: feedbackSchema.optional(),\n startPage: Joi.string().optional(),\n pages: Joi.array<Page>().required().items(pageSchema).unique('path'),\n sections: Joi.array<Section>()\n .items(sectionsSchema)\n .unique('name')\n .required(),\n conditions: Joi.array<ConditionWrapper>()\n .items(conditionWrapperSchema)\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 skipSummary: Joi.boolean().optional().default(false),\n phaseBanner: phaseBannerSchema.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 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/form/form-definition/types.ts"],"sourcesContent":["import { type ComponentDef } from '~/src/components/types.js'\nimport { type
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/form/form-definition/types.ts"],"sourcesContent":["import { type ComponentDef } from '~/src/components/types.js'\nimport { type ConditionsModelData } from '~/src/conditions/types.js'\nimport { formDefinitionSchema } from '~/src/form/form-definition/index.js'\n\nexport interface Link {\n path: string\n condition?: string\n redirect?: string\n}\n\nexport interface Page {\n title: string\n path: string\n controller?: string\n components?: ComponentDef[]\n section?: string // the section ID\n next?: Link[]\n}\n\nexport interface Section {\n name: string\n title: string\n hideTitle?: boolean\n}\n\nexport interface Item {\n text: string\n value: string | number | boolean\n description?: string\n conditional?: { components: ComponentDef[] }\n condition?: string\n}\n\nexport interface List {\n name: string\n title: string\n type: 'string' | 'number' | 'boolean'\n items: Item[]\n}\n\nexport interface Feedback {\n feedbackForm?: boolean\n url?: string\n emailAddress?: string\n}\n\nexport interface PhaseBanner {\n phase?: 'alpha' | 'beta'\n feedbackUrl?: string\n}\n\nexport interface ConditionWrapper {\n name: string\n displayName: string\n value: ConditionsModelData\n}\n\n/**\n * Interface for `formDefinitionSchema` Joi schema\n * @see {@link formDefinitionSchema}\n */\nexport interface FormDefinition {\n pages: Page[]\n conditions: ConditionWrapper[]\n lists: List[]\n sections: Section[]\n startPage?: Page['path']\n name?: string\n feedback?: Feedback\n phaseBanner?: PhaseBanner\n skipSummary?: boolean\n declaration?: string\n metadata?: Record<string, unknown>\n outputEmail?: string\n}\n"],"mappings":"","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/form/form-metadata/types.ts"],"sourcesContent":["import { formMetadataSchema } from '~/src/form/form-metadata/index.js'\n\n/**\n * Interface for author (createdBy and updatedBy)\n */\nexport interface FormMetadataAuthor {\n /**\n * The ID of the user\n */\n id: string\n\n /**\n * The display name of the user\n */\n displayName: string\n}\n\n/**\n * Interface for metadata state (draft & live)\n */\nexport interface FormMetadataState {\n /**\n * The date the form state was created\n */\n createdAt: Date\n\n /**\n * The author who created the state\n */\n createdBy: FormMetadataAuthor\n\n /**\n * The date the form state was last updated\n */\n updatedAt: Date\n\n /**\n * The author who last updated the state\n */\n updatedBy: FormMetadataAuthor\n}\n\n/**\n * Interface for `formMetadataSchema` Joi schema\n * @see {@link formMetadataSchema}\n */\nexport interface FormMetadata {\n /**\n * The id of the form\n */\n id: string\n\n /**\n * The human-readable slug id of the form\n */\n slug: string\n\n /**\n * The human-readable title of the form\n */\n title: string\n\n /**\n * The organisation this form belongs to\n */\n organisation: string\n\n /**\n * The name of the team who own this form\n */\n teamName: string\n\n /**\n * The email of the team who own this form\n */\n teamEmail: string\n\n /**\n * The draft state of the form\n */\n draft?: FormMetadataState\n\n /**\n * The live state of the form\n */\n live?: FormMetadataState\n\n /**\n * The author who created the form\n */\n createdBy: FormMetadataState['createdBy']\n\n /**\n * The date the form was created\n */\n createdAt: FormMetadataState['createdAt']\n\n /**\n * The author who last updated the form\n */\n updatedBy: FormMetadataState['updatedBy']\n\n /**\n * The date the form was last updated\n */\n updatedAt: FormMetadataState['updatedAt']\n}\n\nexport type FormByIdInput = Pick<FormMetadata, 'id'>\nexport type FormBySlugInput = Pick<FormMetadata, 'slug'>\nexport type FormMetadataDocument = Omit<FormMetadata, 'id'>\nexport type FormMetadataInput = Pick<\n FormMetadata,\n 'title' | 'organisation' | 'teamName' | 'teamEmail'\n>\n"],"mappings":"","ignoreList":[]}
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/form/form-metadata/types.ts"],"sourcesContent":["import { formMetadataSchema } from '~/src/form/form-metadata/index.js'\n\n/**\n * Interface for author (createdBy and updatedBy)\n */\nexport interface FormMetadataAuthor {\n /**\n * The ID of the user\n */\n id: string\n\n /**\n * The display name of the user\n */\n displayName: string\n}\n\n/**\n * Interface for metadata state (draft & live)\n */\nexport interface FormMetadataState {\n /**\n * The date the form state was created\n */\n createdAt: Date\n\n /**\n * The author who created the state\n */\n createdBy: FormMetadataAuthor\n\n /**\n * The date the form state was last updated\n */\n updatedAt: Date\n\n /**\n * The author who last updated the state\n */\n updatedBy: FormMetadataAuthor\n}\n\n/**\n * Interface for `formMetadataSchema` Joi schema\n * @see {@link formMetadataSchema}\n */\nexport interface FormMetadata {\n /**\n * The id of the form\n */\n id: string\n\n /**\n * The human-readable slug id of the form\n */\n slug: string\n\n /**\n * The human-readable title of the form\n */\n title: string\n\n /**\n * The organisation this form belongs to\n */\n organisation: string\n\n /**\n * The name of the team who own this form\n */\n teamName: string\n\n /**\n * The email of the team who own this form\n */\n teamEmail: string\n\n /**\n * The draft state of the form\n */\n draft?: FormMetadataState\n\n /**\n * The live state of the form\n */\n live?: FormMetadataState\n\n /**\n * The author who created the form\n */\n createdBy: FormMetadataState['createdBy']\n\n /**\n * The date the form was created\n */\n createdAt: FormMetadataState['createdAt']\n\n /**\n * The author who last updated the form\n */\n updatedBy: FormMetadataState['updatedBy']\n\n /**\n * The date the form was last updated\n */\n updatedAt: FormMetadataState['updatedAt']\n}\n\nexport type FormByIdInput = Pick<FormMetadata, 'id'>\nexport type FormBySlugInput = Pick<FormMetadata, 'slug'>\nexport type FormMetadataDocument = Omit<FormMetadata, 'id'>\nexport type FormMetadataInput = Pick<\n FormMetadata,\n 'title' | 'organisation' | 'teamName' | 'teamEmail'\n>\n\nexport interface FormResponse {\n id: FormMetadata['id']\n slug: FormMetadata['slug']\n status: string\n}\n"],"mappings":"","ignoreList":[]}
|
@@ -1 +1 @@
|
|
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;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,YAAY,
|
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;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,YAAY,EAyIxC,CAAA"}
|
@@ -1 +1 @@
|
|
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,
|
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,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAC3B,iBAAiB,sBAAsB;IACvC,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IACnC,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/components/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAA;AAElC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,4BAMrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,SAAS,IAAI,wBAAwB,CAEvC;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,CAAC,EAAE,aAAa,GACnB,IAAI,IAAI,wBAAwB,CAclC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,SAAS,IAAI,oBAAoB,CAQnC;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,SAAS,IAAI,mBAAmB,CAmBlC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,SAAS,IAAI,wBAAwB,
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/components/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAA;AAElC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,4BAMrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,SAAS,IAAI,wBAAwB,CAEvC;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,CAAC,EAAE,aAAa,GACnB,IAAI,IAAI,wBAAwB,CAclC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,SAAS,IAAI,oBAAoB,CAQnC;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,SAAS,IAAI,mBAAmB,CAmBlC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,SAAS,IAAI,wBAAwB,CAcvC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,SAAS,IAAI,iBAAiB,CAUhC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,SAAS,IAAI,sBAAsB,CASrC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,SAAS,IAAI,OAAO,CAAC,YAAY,EAAE,kBAAkB,GAAG,aAAa,CAAC,CAGxE"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { type ComponentType } from '../components/enums.js';
|
2
|
-
export type ConditionalComponentType = ComponentType.RadiosField | ComponentType.CheckboxesField | ComponentType.DatePartsField | ComponentType.EmailAddressField | ComponentType.MultilineTextField | ComponentType.NumberField | ComponentType.
|
2
|
+
export type ConditionalComponentType = ComponentType.RadiosField | ComponentType.CheckboxesField | ComponentType.DatePartsField | ComponentType.EmailAddressField | ComponentType.MultilineTextField | ComponentType.NumberField | ComponentType.SelectField | ComponentType.TextField | ComponentType.YesNoField;
|
3
3
|
/**
|
4
4
|
* Types for Components JSON structure which are expected by engine and turned into actual form input/content/lists
|
5
5
|
*/
|
@@ -66,15 +66,15 @@ interface ContentFieldBase {
|
|
66
66
|
schema: object;
|
67
67
|
}
|
68
68
|
interface DateFieldBase {
|
69
|
-
type: ComponentType.DatePartsField | ComponentType.MonthYearField
|
69
|
+
type: ComponentType.DatePartsField | ComponentType.MonthYearField;
|
70
70
|
name: string;
|
71
71
|
title: string;
|
72
72
|
hint?: string;
|
73
73
|
options: {
|
74
74
|
required?: boolean;
|
75
75
|
optionalText?: boolean;
|
76
|
-
maxDaysInFuture?: number;
|
77
76
|
maxDaysInPast?: number;
|
77
|
+
maxDaysInFuture?: number;
|
78
78
|
};
|
79
79
|
schema: object;
|
80
80
|
}
|
@@ -144,12 +144,6 @@ export interface MonthYearFieldComponent extends DateFieldBase {
|
|
144
144
|
customValidationMessage?: string;
|
145
145
|
};
|
146
146
|
}
|
147
|
-
export interface TimeFieldComponent extends DateFieldBase {
|
148
|
-
type: ComponentType.TimeField;
|
149
|
-
options: DateFieldBase['options'] & {
|
150
|
-
condition?: string;
|
151
|
-
};
|
152
|
-
}
|
153
147
|
export interface DetailsComponent extends ContentFieldBase {
|
154
148
|
type: ComponentType.Details;
|
155
149
|
}
|
@@ -181,14 +175,15 @@ export interface SelectFieldComponent extends ListFieldBase {
|
|
181
175
|
type: ComponentType.SelectField;
|
182
176
|
options: ListFieldBase['options'] & {
|
183
177
|
autocomplete?: string;
|
178
|
+
condition?: string;
|
184
179
|
};
|
185
180
|
}
|
186
|
-
export type ComponentDef = InsetTextComponent | AutocompleteFieldComponent | CheckboxesFieldComponent | DatePartsFieldFieldComponent | MonthYearFieldComponent | DetailsComponent | EmailAddressFieldComponent | HtmlComponent | ListComponent | MultilineTextFieldComponent | NumberFieldComponent | RadiosFieldComponent | SelectFieldComponent | TelephoneNumberFieldComponent | TextFieldComponent |
|
187
|
-
export type InputFieldsComponentsDef = TextFieldComponent | EmailAddressFieldComponent | NumberFieldComponent | MultilineTextFieldComponent | TelephoneNumberFieldComponent | YesNoFieldComponent | MonthYearFieldComponent |
|
181
|
+
export type ComponentDef = InsetTextComponent | AutocompleteFieldComponent | CheckboxesFieldComponent | DatePartsFieldFieldComponent | MonthYearFieldComponent | DetailsComponent | EmailAddressFieldComponent | HtmlComponent | ListComponent | MultilineTextFieldComponent | NumberFieldComponent | RadiosFieldComponent | SelectFieldComponent | TelephoneNumberFieldComponent | TextFieldComponent | UkAddressFieldComponent | YesNoFieldComponent;
|
182
|
+
export type InputFieldsComponentsDef = TextFieldComponent | EmailAddressFieldComponent | NumberFieldComponent | MultilineTextFieldComponent | TelephoneNumberFieldComponent | YesNoFieldComponent | MonthYearFieldComponent | DatePartsFieldFieldComponent | UkAddressFieldComponent;
|
188
183
|
export type ContentComponentsDef = DetailsComponent | HtmlComponent | InsetTextComponent;
|
189
184
|
export type EditorComponentsDef = TextFieldComponent | EmailAddressFieldComponent | TelephoneNumberFieldComponent | MultilineTextFieldComponent | NumberFieldComponent | AutocompleteFieldComponent | SelectFieldComponent | RadiosFieldComponent | CheckboxesFieldComponent | ListComponent | DetailsComponent | HtmlComponent | InsetTextComponent | DatePartsFieldFieldComponent;
|
190
185
|
export type ListComponentsDef = ListComponent | AutocompleteFieldComponent | CheckboxesFieldComponent | RadiosFieldComponent | SelectFieldComponent;
|
191
186
|
export type SelectionComponentsDef = CheckboxesFieldComponent | RadiosFieldComponent | SelectFieldComponent | YesNoFieldComponent;
|
192
|
-
export type ConditionalComponentsDef = CheckboxesFieldComponent | DatePartsFieldFieldComponent | EmailAddressFieldComponent | MultilineTextFieldComponent | NumberFieldComponent | TextFieldComponent |
|
187
|
+
export type ConditionalComponentsDef = CheckboxesFieldComponent | DatePartsFieldFieldComponent | EmailAddressFieldComponent | MultilineTextFieldComponent | NumberFieldComponent | TextFieldComponent | YesNoFieldComponent;
|
193
188
|
export {};
|
194
189
|
//# sourceMappingURL=types.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,MAAM,MAAM,wBAAwB,GAChC,aAAa,CAAC,WAAW,GACzB,aAAa,CAAC,eAAe,GAC7B,aAAa,CAAC,cAAc,GAC5B,aAAa,CAAC,iBAAiB,GAC/B,aAAa,CAAC,kBAAkB,GAChC,aAAa,CAAC,WAAW,GACzB,aAAa,CAAC,
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/types.ts"],"names":[],"mappings":"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"}
|