@defra/forms-model 3.0.383 → 3.0.385
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/conditions/condition-operators.js +2 -2
- package/dist/module/conditions/condition-operators.js.map +1 -1
- package/dist/module/conditions/condition-value-abstract.js +1 -1
- package/dist/module/conditions/condition-value-abstract.js.map +1 -1
- package/dist/module/conditions/condition-values.js +2 -2
- package/dist/module/conditions/condition-values.js.map +1 -1
- package/dist/module/form/utils/index.js +0 -1
- package/dist/module/form/utils/index.js.map +1 -1
- package/dist/types/conditions/condition-value-abstract.d.ts +1 -1
- package/dist/types/conditions/condition-value-abstract.d.ts.map +1 -1
- package/dist/types/conditions/condition-values.d.ts +2 -2
- package/dist/types/conditions/condition-values.d.ts.map +1 -1
- package/dist/types/form/utils/index.d.ts +0 -1
- package/dist/types/form/utils/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/conditions/condition-operators.ts +2 -2
- package/src/conditions/condition-value-abstract.ts +1 -1
- package/src/conditions/condition-values.ts +2 -2
- package/src/form/utils/index.ts +0 -1
- package/dist/module/form/utils/update-start-page.js +0 -28
- package/dist/module/form/utils/update-start-page.js.map +0 -1
- package/dist/types/form/utils/update-start-page.d.ts +0 -7
- package/dist/types/form/utils/update-start-page.d.ts.map +0 -1
- package/src/form/utils/update-start-page.ts +0 -26
@@ -106,9 +106,9 @@ function not(operatorDefinition) {
|
|
106
106
|
}
|
107
107
|
function formatValue(field, value) {
|
108
108
|
if (field.type === ComponentType.DatePartsField && value.type === ConditionType.RelativeDate || field.type === ComponentType.NumberField || field.type === ComponentType.YesNoField) {
|
109
|
-
return value.
|
109
|
+
return value.toValue();
|
110
110
|
}
|
111
|
-
return `'${value.
|
111
|
+
return `'${value.toValue().replace(/'/g, "\\'")}'`;
|
112
112
|
}
|
113
113
|
export const absoluteDateOperatorNames = Object.keys(absoluteDateOperators);
|
114
114
|
export const relativeDateOperatorNames = Object.keys(relativeDateOperators);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"condition-operators.js","names":["ComponentType","isConditionalType","isContentType","ConditionValue","RelativeDateValue","ConditionType","DateDirections","Operator","OperatorName","defaultOperators","Is","inline","IsNot","withDefaults","operators","textFieldOperators","IsLongerThan","lengthIs","IsMoreThan","IsShorterThan","IsLessThan","HasLength","absoluteDateOperators","absoluteDate","IsBefore","IsAfter","relativeDateOperators","IsAtLeast","relativeDate","IsAtMost","customOperators","AutocompleteField","RadiosField","CheckboxesField","Contains","reverseInline","DoesNotContain","not","NumberField","DatePartsField","TextField","MultilineTextField","EmailAddressField","TelephoneNumberField","SelectField","YesNoField","getOperatorNames","fieldType","conditionals","getConditionals","Object","keys","getExpression","fieldName","operator","value","expression","type","name","field","formatValue","operatorDefinition","RelativeDate","toExpression","absoluteDateOperatorNames","relativeDateOperatorNames","Error","pastOperator","futureOperator","isPast","direction","PAST"],"sources":["../../../src/conditions/condition-operators.ts"],"sourcesContent":["import { ComponentType } from '~/src/components/enums.js'\nimport { isConditionalType, isContentType } from '~/src/components/helpers.js'\nimport {\n type ComponentDef,\n type ConditionalComponentType\n} from '~/src/components/types.js'\nimport {\n ConditionValue,\n RelativeDateValue\n} from '~/src/conditions/condition-values.js'\nimport { type Condition } from '~/src/conditions/condition.js'\nimport {\n ConditionType,\n DateDirections,\n Operator,\n OperatorName\n} from '~/src/conditions/enums.js'\nimport {\n type Conditionals,\n type OperatorDefinition\n} from '~/src/conditions/types.js'\n\nconst defaultOperators = {\n [OperatorName.Is]: inline(Operator.Is),\n [OperatorName.IsNot]: inline(Operator.IsNot)\n}\n\nfunction withDefaults<T>(operators: T) {\n return { ...defaultOperators, ...operators }\n}\n\nconst textFieldOperators = {\n [OperatorName.IsLongerThan]: lengthIs(Operator.IsMoreThan),\n [OperatorName.IsShorterThan]: lengthIs(Operator.IsLessThan),\n [OperatorName.HasLength]: lengthIs(Operator.Is)\n}\n\nconst absoluteDateOperators = {\n [OperatorName.Is]: absoluteDate(Operator.Is),\n [OperatorName.IsNot]: absoluteDate(Operator.IsNot),\n [OperatorName.IsBefore]: absoluteDate(Operator.IsLessThan),\n [OperatorName.IsAfter]: absoluteDate(Operator.IsMoreThan)\n}\n\nconst relativeDateOperators = {\n [OperatorName.IsAtLeast]: relativeDate(Operator.IsAtMost, Operator.IsAtLeast),\n [OperatorName.IsAtMost]: relativeDate(Operator.IsAtLeast, Operator.IsAtMost),\n [OperatorName.IsLessThan]: relativeDate(\n Operator.IsMoreThan,\n Operator.IsLessThan\n ),\n [OperatorName.IsMoreThan]: relativeDate(\n Operator.IsLessThan,\n Operator.IsMoreThan\n )\n}\n\nexport const customOperators = {\n [ComponentType.AutocompleteField]: defaultOperators,\n [ComponentType.RadiosField]: defaultOperators,\n [ComponentType.CheckboxesField]: {\n [OperatorName.Contains]: reverseInline(Operator.Contains),\n [OperatorName.DoesNotContain]: not(reverseInline(Operator.Contains))\n },\n [ComponentType.NumberField]: withDefaults({\n [OperatorName.IsAtLeast]: inline(Operator.IsAtLeast),\n [OperatorName.IsAtMost]: inline(Operator.IsAtMost),\n [OperatorName.IsLessThan]: inline(Operator.IsLessThan),\n [OperatorName.IsMoreThan]: inline(Operator.IsMoreThan)\n }),\n [ComponentType.DatePartsField]: {\n ...absoluteDateOperators,\n ...relativeDateOperators\n },\n [ComponentType.TextField]: withDefaults(textFieldOperators),\n [ComponentType.MultilineTextField]: withDefaults(textFieldOperators),\n [ComponentType.EmailAddressField]: withDefaults(textFieldOperators),\n [ComponentType.TelephoneNumberField]: defaultOperators,\n [ComponentType.SelectField]: defaultOperators,\n [ComponentType.YesNoField]: defaultOperators\n}\n\nexport function getOperatorNames(fieldType?: ConditionalComponentType) {\n const conditionals = getConditionals(fieldType)\n if (!conditionals) {\n return []\n }\n\n return Object.keys(conditionals) as OperatorName[]\n}\n\nexport function getExpression(\n fieldType: ConditionalComponentType,\n fieldName: string,\n operator: OperatorName,\n value: Condition['value']\n) {\n const conditionals = getConditionals(fieldType)\n if (!conditionals) {\n return\n }\n\n return conditionals[operator]?.expression(\n { type: fieldType, name: fieldName },\n value\n )\n}\n\nfunction getConditionals(\n fieldType?: ConditionalComponentType\n): Partial<Conditionals> | undefined {\n if (!fieldType || !isConditionalType(fieldType) || isContentType(fieldType)) {\n return\n }\n\n return fieldType in customOperators\n ? customOperators[fieldType]\n : defaultOperators\n}\n\nfunction inline(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n return `${field.name} ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction lengthIs(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n return `length(${field.name}) ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction reverseInline(operator: Operator.Contains): OperatorDefinition {\n return {\n expression(field, value) {\n return `${formatValue(field, value)} ${operator} ${field.name}`\n }\n }\n}\n\nfunction not(operatorDefinition: OperatorDefinition): OperatorDefinition {\n return {\n expression(field, value) {\n return `not (${operatorDefinition.expression(field, value)})`\n }\n }\n}\n\nfunction formatValue(\n field: Pick<ComponentDef, 'type'>,\n value: Condition['value']\n) {\n if (\n (field.type === ComponentType.DatePartsField &&\n value.type === ConditionType.RelativeDate) ||\n field.type === ComponentType.NumberField ||\n field.type === ComponentType.YesNoField\n ) {\n return value.toExpression()\n }\n\n return `'${value.toExpression()}'`\n}\n\nexport const absoluteDateOperatorNames = Object.keys(\n absoluteDateOperators\n) as OperatorName[]\n\nexport const relativeDateOperatorNames = Object.keys(\n relativeDateOperators\n) as OperatorName[]\n\nfunction absoluteDate(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n if (!(value instanceof ConditionValue)) {\n throw new Error(\n \"Expression param 'value' must be ConditionValue instance\"\n )\n }\n\n return `${field.name} ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction relativeDate(\n pastOperator: Operator,\n futureOperator: Operator\n): OperatorDefinition {\n return {\n expression(field, value) {\n if (!(value instanceof RelativeDateValue)) {\n throw new Error(\n \"Expression param 'value' must be RelativeDateValue instance\"\n )\n }\n\n const isPast = value.direction === DateDirections.PAST\n return `${field.name} ${isPast ? pastOperator : futureOperator} ${formatValue(field, value)}`\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"condition-operators.js","names":["ComponentType","isConditionalType","isContentType","ConditionValue","RelativeDateValue","ConditionType","DateDirections","Operator","OperatorName","defaultOperators","Is","inline","IsNot","withDefaults","operators","textFieldOperators","IsLongerThan","lengthIs","IsMoreThan","IsShorterThan","IsLessThan","HasLength","absoluteDateOperators","absoluteDate","IsBefore","IsAfter","relativeDateOperators","IsAtLeast","relativeDate","IsAtMost","customOperators","AutocompleteField","RadiosField","CheckboxesField","Contains","reverseInline","DoesNotContain","not","NumberField","DatePartsField","TextField","MultilineTextField","EmailAddressField","TelephoneNumberField","SelectField","YesNoField","getOperatorNames","fieldType","conditionals","getConditionals","Object","keys","getExpression","fieldName","operator","value","expression","type","name","field","formatValue","operatorDefinition","RelativeDate","toValue","replace","absoluteDateOperatorNames","relativeDateOperatorNames","Error","pastOperator","futureOperator","isPast","direction","PAST"],"sources":["../../../src/conditions/condition-operators.ts"],"sourcesContent":["import { ComponentType } from '~/src/components/enums.js'\nimport { isConditionalType, isContentType } from '~/src/components/helpers.js'\nimport {\n type ComponentDef,\n type ConditionalComponentType\n} from '~/src/components/types.js'\nimport {\n ConditionValue,\n RelativeDateValue\n} from '~/src/conditions/condition-values.js'\nimport { type Condition } from '~/src/conditions/condition.js'\nimport {\n ConditionType,\n DateDirections,\n Operator,\n OperatorName\n} from '~/src/conditions/enums.js'\nimport {\n type Conditionals,\n type OperatorDefinition\n} from '~/src/conditions/types.js'\n\nconst defaultOperators = {\n [OperatorName.Is]: inline(Operator.Is),\n [OperatorName.IsNot]: inline(Operator.IsNot)\n}\n\nfunction withDefaults<T>(operators: T) {\n return { ...defaultOperators, ...operators }\n}\n\nconst textFieldOperators = {\n [OperatorName.IsLongerThan]: lengthIs(Operator.IsMoreThan),\n [OperatorName.IsShorterThan]: lengthIs(Operator.IsLessThan),\n [OperatorName.HasLength]: lengthIs(Operator.Is)\n}\n\nconst absoluteDateOperators = {\n [OperatorName.Is]: absoluteDate(Operator.Is),\n [OperatorName.IsNot]: absoluteDate(Operator.IsNot),\n [OperatorName.IsBefore]: absoluteDate(Operator.IsLessThan),\n [OperatorName.IsAfter]: absoluteDate(Operator.IsMoreThan)\n}\n\nconst relativeDateOperators = {\n [OperatorName.IsAtLeast]: relativeDate(Operator.IsAtMost, Operator.IsAtLeast),\n [OperatorName.IsAtMost]: relativeDate(Operator.IsAtLeast, Operator.IsAtMost),\n [OperatorName.IsLessThan]: relativeDate(\n Operator.IsMoreThan,\n Operator.IsLessThan\n ),\n [OperatorName.IsMoreThan]: relativeDate(\n Operator.IsLessThan,\n Operator.IsMoreThan\n )\n}\n\nexport const customOperators = {\n [ComponentType.AutocompleteField]: defaultOperators,\n [ComponentType.RadiosField]: defaultOperators,\n [ComponentType.CheckboxesField]: {\n [OperatorName.Contains]: reverseInline(Operator.Contains),\n [OperatorName.DoesNotContain]: not(reverseInline(Operator.Contains))\n },\n [ComponentType.NumberField]: withDefaults({\n [OperatorName.IsAtLeast]: inline(Operator.IsAtLeast),\n [OperatorName.IsAtMost]: inline(Operator.IsAtMost),\n [OperatorName.IsLessThan]: inline(Operator.IsLessThan),\n [OperatorName.IsMoreThan]: inline(Operator.IsMoreThan)\n }),\n [ComponentType.DatePartsField]: {\n ...absoluteDateOperators,\n ...relativeDateOperators\n },\n [ComponentType.TextField]: withDefaults(textFieldOperators),\n [ComponentType.MultilineTextField]: withDefaults(textFieldOperators),\n [ComponentType.EmailAddressField]: withDefaults(textFieldOperators),\n [ComponentType.TelephoneNumberField]: defaultOperators,\n [ComponentType.SelectField]: defaultOperators,\n [ComponentType.YesNoField]: defaultOperators\n}\n\nexport function getOperatorNames(fieldType?: ConditionalComponentType) {\n const conditionals = getConditionals(fieldType)\n if (!conditionals) {\n return []\n }\n\n return Object.keys(conditionals) as OperatorName[]\n}\n\nexport function getExpression(\n fieldType: ConditionalComponentType,\n fieldName: string,\n operator: OperatorName,\n value: Condition['value']\n) {\n const conditionals = getConditionals(fieldType)\n if (!conditionals) {\n return\n }\n\n return conditionals[operator]?.expression(\n { type: fieldType, name: fieldName },\n value\n )\n}\n\nfunction getConditionals(\n fieldType?: ConditionalComponentType\n): Partial<Conditionals> | undefined {\n if (!fieldType || !isConditionalType(fieldType) || isContentType(fieldType)) {\n return\n }\n\n return fieldType in customOperators\n ? customOperators[fieldType]\n : defaultOperators\n}\n\nfunction inline(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n return `${field.name} ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction lengthIs(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n return `length(${field.name}) ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction reverseInline(operator: Operator.Contains): OperatorDefinition {\n return {\n expression(field, value) {\n return `${formatValue(field, value)} ${operator} ${field.name}`\n }\n }\n}\n\nfunction not(operatorDefinition: OperatorDefinition): OperatorDefinition {\n return {\n expression(field, value) {\n return `not (${operatorDefinition.expression(field, value)})`\n }\n }\n}\n\nfunction formatValue(\n field: Pick<ComponentDef, 'type'>,\n value: Condition['value']\n) {\n if (\n (field.type === ComponentType.DatePartsField &&\n value.type === ConditionType.RelativeDate) ||\n field.type === ComponentType.NumberField ||\n field.type === ComponentType.YesNoField\n ) {\n return value.toValue()\n }\n\n return `'${value.toValue().replace(/'/g, \"\\\\'\")}'`\n}\n\nexport const absoluteDateOperatorNames = Object.keys(\n absoluteDateOperators\n) as OperatorName[]\n\nexport const relativeDateOperatorNames = Object.keys(\n relativeDateOperators\n) as OperatorName[]\n\nfunction absoluteDate(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n if (!(value instanceof ConditionValue)) {\n throw new Error(\n \"Expression param 'value' must be ConditionValue instance\"\n )\n }\n\n return `${field.name} ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction relativeDate(\n pastOperator: Operator,\n futureOperator: Operator\n): OperatorDefinition {\n return {\n expression(field, value) {\n if (!(value instanceof RelativeDateValue)) {\n throw new Error(\n \"Expression param 'value' must be RelativeDateValue instance\"\n )\n }\n\n const isPast = value.direction === DateDirections.PAST\n return `${field.name} ${isPast ? pastOperator : futureOperator} ${formatValue(field, value)}`\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -2,7 +2,7 @@ export class ConditionValueAbstract {
|
|
2
2
|
toPresentationString() {
|
3
3
|
throw new Error('Unsupported Operation. Method toPresentationString has not been implemented');
|
4
4
|
}
|
5
|
-
|
5
|
+
toValue() {
|
6
6
|
throw new Error('Unsupported Operation. Method toExpression has not been implemented');
|
7
7
|
}
|
8
8
|
clone() {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"condition-value-abstract.js","names":["ConditionValueAbstract","toPresentationString","Error","
|
1
|
+
{"version":3,"file":"condition-value-abstract.js","names":["ConditionValueAbstract","toPresentationString","Error","toValue","clone"],"sources":["../../../src/conditions/condition-value-abstract.ts"],"sourcesContent":["export class ConditionValueAbstract {\n toPresentationString(): string {\n throw new Error(\n 'Unsupported Operation. Method toPresentationString has not been implemented'\n )\n }\n\n toValue(): string {\n throw new Error(\n 'Unsupported Operation. Method toExpression has not been implemented'\n )\n }\n\n clone() {\n throw new Error(\n 'Unsupported Operation. Method clone has not been implemented'\n )\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,sBAAsB,CAAC;EAClCC,oBAAoBA,CAAA,EAAW;IAC7B,MAAM,IAAIC,KAAK,CACb,6EACF,CAAC;EACH;EAEAC,OAAOA,CAAA,EAAW;IAChB,MAAM,IAAID,KAAK,CACb,qEACF,CAAC;EACH;EAEAE,KAAKA,CAAA,EAAG;IACN,MAAM,IAAIF,KAAK,CACb,8DACF,CAAC;EACH;AACF","ignoreList":[]}
|
@@ -19,7 +19,7 @@ export class ConditionValue extends ConditionValueAbstract {
|
|
19
19
|
toPresentationString() {
|
20
20
|
return this.display;
|
21
21
|
}
|
22
|
-
|
22
|
+
toValue() {
|
23
23
|
return this.value;
|
24
24
|
}
|
25
25
|
clone() {
|
@@ -53,7 +53,7 @@ export class RelativeDateValue extends ConditionValueAbstract {
|
|
53
53
|
toPresentationString() {
|
54
54
|
return `${this.period} ${this.unit} ${this.direction}`;
|
55
55
|
}
|
56
|
-
|
56
|
+
toValue() {
|
57
57
|
const period = this.direction === DateDirections.PAST ? 0 - Number(this.period) : this.period;
|
58
58
|
return `dateForComparison(${period}, '${this.unit}')`;
|
59
59
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"condition-values.js","names":["ConditionValueAbstract","ConditionType","DateDirections","ConditionValue","type","value","display","constructor","Error","Value","toPresentationString","
|
1
|
+
{"version":3,"file":"condition-values.js","names":["ConditionValueAbstract","ConditionType","DateDirections","ConditionValue","type","value","display","constructor","Error","Value","toPresentationString","toValue","clone","from","toJSON","structuredClone","obj","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 (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 toValue() {\n return this.value\n }\n\n clone() {\n return ConditionValue.from(this)\n }\n\n toJSON(): ConditionValueData {\n return structuredClone(this.clone())\n }\n\n static from(obj: ConditionValue | ConditionValueData) {\n return new ConditionValue(obj.value, obj.display)\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 toValue(): 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 clone() {\n return RelativeDateValue.from(this)\n }\n\n toJSON(): RelativeDateValueData {\n return structuredClone(this.clone())\n }\n\n static from(obj: RelativeDateValue | RelativeDateValueData) {\n return new RelativeDateValue(obj.period, obj.unit, obj.direction)\n }\n}\n\nexport function conditionValueFrom(\n obj:\n | ConditionValue\n | ConditionValueData\n | RelativeDateValue\n | RelativeDateValueData\n) {\n if ('clone' in obj) {\n return obj.clone()\n }\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":"AAAA,SAASA,sBAAsB;AAC/B,SAASC,aAAa,EAAEC,cAAc;AAOtC,OAAO,MAAMC,cAAc,SAASH,sBAAsB,CAAC;EACzDI,IAAI;EACJC,KAAK;EACLC,OAAO;EAEPC,WAAWA,CAACF,KAAa,EAAEC,OAAgB,EAAE;IAC3C,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;MAC7B,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,GAAGH,aAAa,CAACQ,KAAK;IAC/B,IAAI,CAACJ,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,OAAO,GAAGA,OAAO,IAAID,KAAK;EACjC;EAEAK,oBAAoBA,CAAA,EAAG;IACrB,OAAO,IAAI,CAACJ,OAAO;EACrB;EAEAK,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI,CAACN,KAAK;EACnB;EAEAO,KAAKA,CAAA,EAAG;IACN,OAAOT,cAAc,CAACU,IAAI,CAAC,IAAI,CAAC;EAClC;EAEAC,MAAMA,CAAA,EAAuB;IAC3B,OAAOC,eAAe,CAAC,IAAI,CAACH,KAAK,CAAC,CAAC,CAAC;EACtC;EAEA,OAAOC,IAAIA,CAACG,GAAwC,EAAE;IACpD,OAAO,IAAIb,cAAc,CAACa,GAAG,CAACX,KAAK,EAAEW,GAAG,CAACV,OAAO,CAAC;EACnD;AACF;AAEA,OAAO,MAAMW,iBAAiB,SAASjB,sBAAsB,CAAC;EAC5DI,IAAI;EACJc,MAAM;EACNC,IAAI;EACJC,SAAS;EAETb,WAAWA,CAACW,MAAc,EAAEC,IAAe,EAAEC,SAAyB,EAAE;IACtE,IAAI,OAAOF,MAAM,KAAK,QAAQ,EAAE;MAC9B,MAAM,IAAIV,KAAK,CAAC,mDAAmD,CAAC;IACtE;IAEA,IAAI,CAACa,MAAM,CAACC,MAAM,CAACpB,cAAc,CAAC,CAACqB,QAAQ,CAACH,SAAS,CAAC,EAAE;MACtD,MAAM,IAAIZ,KAAK,CACb,sEACF,CAAC;IACH;IAEA,KAAK,CAAC,CAAC;IAEP,IAAI,CAACJ,IAAI,GAAGH,aAAa,CAACuB,YAAY;IACtC,IAAI,CAACN,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,SAAS,GAAGA,SAAS;EAC5B;EAEAV,oBAAoBA,CAAA,EAAG;IACrB,OAAO,GAAG,IAAI,CAACQ,MAAM,IAAI,IAAI,CAACC,IAAI,IAAI,IAAI,CAACC,SAAS,EAAE;EACxD;EAEAT,OAAOA,CAAA,EAAW;IAChB,MAAMO,MAAM,GACV,IAAI,CAACE,SAAS,KAAKlB,cAAc,CAACuB,IAAI,GAClC,CAAC,GAAGC,MAAM,CAAC,IAAI,CAACR,MAAM,CAAC,GACvB,IAAI,CAACA,MAAM;IAEjB,OAAO,qBAAqBA,MAAM,MAAM,IAAI,CAACC,IAAI,IAAI;EACvD;EAEAP,KAAKA,CAAA,EAAG;IACN,OAAOK,iBAAiB,CAACJ,IAAI,CAAC,IAAI,CAAC;EACrC;EAEAC,MAAMA,CAAA,EAA0B;IAC9B,OAAOC,eAAe,CAAC,IAAI,CAACH,KAAK,CAAC,CAAC,CAAC;EACtC;EAEA,OAAOC,IAAIA,CAACG,GAA8C,EAAE;IAC1D,OAAO,IAAIC,iBAAiB,CAACD,GAAG,CAACE,MAAM,EAAEF,GAAG,CAACG,IAAI,EAAEH,GAAG,CAACI,SAAS,CAAC;EACnE;AACF;AAEA,OAAO,SAASO,kBAAkBA,CAChCX,GAIyB,EACzB;EACA,IAAI,OAAO,IAAIA,GAAG,EAAE;IAClB,OAAOA,GAAG,CAACJ,KAAK,CAAC,CAAC;EACpB;EAEA,QAAQI,GAAG,CAACZ,IAAI;IACd,KAAKH,aAAa,CAACQ,KAAK;MACtB,OAAON,cAAc,CAACU,IAAI,CAACG,GAAG,CAAC;IAEjC,KAAKf,aAAa,CAACuB,YAAY;MAC7B,OAAOP,iBAAiB,CAACJ,IAAI,CAACG,GAAG,CAAC;EACtC;AACF","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["findStartPage"
|
1
|
+
{"version":3,"file":"index.js","names":["findStartPage"],"sources":["../../../../src/form/utils/index.ts"],"sourcesContent":["export { findStartPage } from '~/src/form/utils/find-start-page.js'\n"],"mappings":"AAAA,SAASA,aAAa","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"condition-value-abstract.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-value-abstract.ts"],"names":[],"mappings":"AAAA,qBAAa,sBAAsB;IACjC,oBAAoB,IAAI,MAAM;IAM9B,
|
1
|
+
{"version":3,"file":"condition-value-abstract.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-value-abstract.ts"],"names":[],"mappings":"AAAA,qBAAa,sBAAsB;IACjC,oBAAoB,IAAI,MAAM;IAM9B,OAAO,IAAI,MAAM;IAMjB,KAAK;CAKN"}
|
@@ -8,7 +8,7 @@ export declare class ConditionValue extends ConditionValueAbstract {
|
|
8
8
|
display: string;
|
9
9
|
constructor(value: string, display?: string);
|
10
10
|
toPresentationString(): string;
|
11
|
-
|
11
|
+
toValue(): string;
|
12
12
|
clone(): ConditionValue;
|
13
13
|
toJSON(): ConditionValueData;
|
14
14
|
static from(obj: ConditionValue | ConditionValueData): ConditionValue;
|
@@ -20,7 +20,7 @@ export declare class RelativeDateValue extends ConditionValueAbstract {
|
|
20
20
|
direction: any;
|
21
21
|
constructor(period: string, unit: DateUnits, direction: DateDirections);
|
22
22
|
toPresentationString(): string;
|
23
|
-
|
23
|
+
toValue(): string;
|
24
24
|
clone(): RelativeDateValue;
|
25
25
|
toJSON(): RelativeDateValueData;
|
26
26
|
static from(obj: RelativeDateValue | RelativeDateValueData): RelativeDateValue;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"condition-values.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAA;AACrF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAA;AAElC,qBAAa,cAAe,SAAQ,sBAAsB;IACxD,IAAI,EAAE,aAAa,CAAC,KAAK,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;gBAEH,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAgB3C,oBAAoB;IAIpB,
|
1
|
+
{"version":3,"file":"condition-values.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAA;AACrF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAA;AAElC,qBAAa,cAAe,SAAQ,sBAAsB;IACxD,IAAI,EAAE,aAAa,CAAC,KAAK,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;gBAEH,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAgB3C,oBAAoB;IAIpB,OAAO;IAIP,KAAK;IAIL,MAAM,IAAI,kBAAkB;IAI5B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,GAAG,kBAAkB;CAGrD;AAED,qBAAa,iBAAkB,SAAQ,sBAAsB;IAC3D,IAAI,EAAE,aAAa,CAAC,YAAY,CAAA;IAChC,MAAM,MAAA;IACN,IAAI,MAAA;IACJ,SAAS,MAAA;gBAEG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc;IAmBtE,oBAAoB;IAIpB,OAAO,IAAI,MAAM;IASjB,KAAK;IAIL,MAAM,IAAI,qBAAqB;IAI/B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,qBAAqB;CAG3D;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EACC,cAAc,GACd,kBAAkB,GAClB,iBAAiB,GACjB,qBAAqB,sCAa1B"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@defra/forms-model",
|
3
|
-
"version": "3.0.
|
3
|
+
"version": "3.0.385",
|
4
4
|
"description": "A hapi plugin providing the model for Defra forms",
|
5
5
|
"homepage": "https://github.com/DEFRA/forms-designer/tree/main/model#readme",
|
6
6
|
"repository": {
|
@@ -21,7 +21,7 @@
|
|
21
21
|
"test:watch": "jest --color --watch"
|
22
22
|
},
|
23
23
|
"dependencies": {
|
24
|
-
"marked": "^
|
24
|
+
"marked": "^15.0.1",
|
25
25
|
"slug": "^10.0.0"
|
26
26
|
},
|
27
27
|
"devDependencies": {
|
@@ -160,10 +160,10 @@ function formatValue(
|
|
160
160
|
field.type === ComponentType.NumberField ||
|
161
161
|
field.type === ComponentType.YesNoField
|
162
162
|
) {
|
163
|
-
return value.
|
163
|
+
return value.toValue()
|
164
164
|
}
|
165
165
|
|
166
|
-
return `'${value.
|
166
|
+
return `'${value.toValue().replace(/'/g, "\\'")}'`
|
167
167
|
}
|
168
168
|
|
169
169
|
export const absoluteDateOperatorNames = Object.keys(
|
@@ -31,7 +31,7 @@ export class ConditionValue extends ConditionValueAbstract {
|
|
31
31
|
return this.display
|
32
32
|
}
|
33
33
|
|
34
|
-
|
34
|
+
toValue() {
|
35
35
|
return this.value
|
36
36
|
}
|
37
37
|
|
@@ -77,7 +77,7 @@ export class RelativeDateValue extends ConditionValueAbstract {
|
|
77
77
|
return `${this.period} ${this.unit} ${this.direction}`
|
78
78
|
}
|
79
79
|
|
80
|
-
|
80
|
+
toValue(): string {
|
81
81
|
const period =
|
82
82
|
this.direction === DateDirections.PAST
|
83
83
|
? 0 - Number(this.period)
|
package/src/form/utils/index.ts
CHANGED
@@ -1,28 +0,0 @@
|
|
1
|
-
import { findStartPage } from "./find-start-page.js";
|
2
|
-
|
3
|
-
/**
|
4
|
-
* Update start page when pages are modified
|
5
|
-
* @param data - Form definition
|
6
|
-
*/
|
7
|
-
export function updateStartPage(data) {
|
8
|
-
const startPage = findStartPage(data);
|
9
|
-
|
10
|
-
// Update start page if incorrect
|
11
|
-
if (startPage && (!data.startPage || data.startPage !== startPage)) {
|
12
|
-
return {
|
13
|
-
...structuredClone(data),
|
14
|
-
startPage
|
15
|
-
};
|
16
|
-
}
|
17
|
-
|
18
|
-
// Remove start page if no pages exist
|
19
|
-
if (!startPage && 'startPage' in data) {
|
20
|
-
const definition = structuredClone(data);
|
21
|
-
|
22
|
-
// Remove without modifying original
|
23
|
-
delete definition.startPage;
|
24
|
-
return definition;
|
25
|
-
}
|
26
|
-
return data;
|
27
|
-
}
|
28
|
-
//# sourceMappingURL=update-start-page.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"update-start-page.js","names":["findStartPage","updateStartPage","data","startPage","structuredClone","definition"],"sources":["../../../../src/form/utils/update-start-page.ts"],"sourcesContent":["import { type FormDefinition } from '~/src/form/form-definition/types.js'\nimport { findStartPage } from '~/src/form/utils/find-start-page.js'\n\n/**\n * Update start page when pages are modified\n * @param data - Form definition\n */\nexport function updateStartPage(data: FormDefinition) {\n const startPage = findStartPage(data)\n\n // Update start page if incorrect\n if (startPage && (!data.startPage || data.startPage !== startPage)) {\n return { ...structuredClone(data), startPage }\n }\n\n // Remove start page if no pages exist\n if (!startPage && 'startPage' in data) {\n const definition = structuredClone(data)\n\n // Remove without modifying original\n delete definition.startPage\n return definition\n }\n\n return data\n}\n"],"mappings":"AACA,SAASA,aAAa;;AAEtB;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAACC,IAAoB,EAAE;EACpD,MAAMC,SAAS,GAAGH,aAAa,CAACE,IAAI,CAAC;;EAErC;EACA,IAAIC,SAAS,KAAK,CAACD,IAAI,CAACC,SAAS,IAAID,IAAI,CAACC,SAAS,KAAKA,SAAS,CAAC,EAAE;IAClE,OAAO;MAAE,GAAGC,eAAe,CAACF,IAAI,CAAC;MAAEC;IAAU,CAAC;EAChD;;EAEA;EACA,IAAI,CAACA,SAAS,IAAI,WAAW,IAAID,IAAI,EAAE;IACrC,MAAMG,UAAU,GAAGD,eAAe,CAACF,IAAI,CAAC;;IAExC;IACA,OAAOG,UAAU,CAACF,SAAS;IAC3B,OAAOE,UAAU;EACnB;EAEA,OAAOH,IAAI;AACb","ignoreList":[]}
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import { type FormDefinition } from '../../form/form-definition/types.js';
|
2
|
-
/**
|
3
|
-
* Update start page when pages are modified
|
4
|
-
* @param data - Form definition
|
5
|
-
*/
|
6
|
-
export declare function updateStartPage(data: FormDefinition): FormDefinition;
|
7
|
-
//# sourceMappingURL=update-start-page.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"update-start-page.d.ts","sourceRoot":"","sources":["../../../../src/form/utils/update-start-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAGzE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,kBAkBnD"}
|
@@ -1,26 +0,0 @@
|
|
1
|
-
import { type FormDefinition } from '~/src/form/form-definition/types.js'
|
2
|
-
import { findStartPage } from '~/src/form/utils/find-start-page.js'
|
3
|
-
|
4
|
-
/**
|
5
|
-
* Update start page when pages are modified
|
6
|
-
* @param data - Form definition
|
7
|
-
*/
|
8
|
-
export function updateStartPage(data: FormDefinition) {
|
9
|
-
const startPage = findStartPage(data)
|
10
|
-
|
11
|
-
// Update start page if incorrect
|
12
|
-
if (startPage && (!data.startPage || data.startPage !== startPage)) {
|
13
|
-
return { ...structuredClone(data), startPage }
|
14
|
-
}
|
15
|
-
|
16
|
-
// Remove start page if no pages exist
|
17
|
-
if (!startPage && 'startPage' in data) {
|
18
|
-
const definition = structuredClone(data)
|
19
|
-
|
20
|
-
// Remove without modifying original
|
21
|
-
delete definition.startPage
|
22
|
-
return definition
|
23
|
-
}
|
24
|
-
|
25
|
-
return data
|
26
|
-
}
|