@defra/forms-model 3.0.253 → 3.0.255

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.
Files changed (60) hide show
  1. package/dist/module/components/helpers.js +4 -1
  2. package/dist/module/components/helpers.js.map +1 -1
  3. package/dist/module/components/index.js +1 -1
  4. package/dist/module/components/index.js.map +1 -1
  5. package/dist/module/conditions/condition-field.js +6 -0
  6. package/dist/module/conditions/condition-field.js.map +1 -1
  7. package/dist/module/conditions/condition-group.js +15 -1
  8. package/dist/module/conditions/condition-group.js.map +1 -1
  9. package/dist/module/conditions/condition-model.js +9 -11
  10. package/dist/module/conditions/condition-model.js.map +1 -1
  11. package/dist/module/conditions/condition-operators.js +11 -8
  12. package/dist/module/conditions/condition-operators.js.map +1 -1
  13. package/dist/module/conditions/condition-ref.js +7 -1
  14. package/dist/module/conditions/condition-ref.js.map +1 -1
  15. package/dist/module/conditions/condition-values.js +16 -7
  16. package/dist/module/conditions/condition-values.js.map +1 -1
  17. package/dist/module/conditions/condition.js +8 -1
  18. package/dist/module/conditions/condition.js.map +1 -1
  19. package/dist/module/conditions/helpers.js +15 -0
  20. package/dist/module/conditions/helpers.js.map +1 -1
  21. package/dist/module/conditions/index.js +2 -2
  22. package/dist/module/conditions/index.js.map +1 -1
  23. package/dist/module/conditions/types.js.map +1 -1
  24. package/dist/types/components/helpers.d.ts +1 -0
  25. package/dist/types/components/helpers.d.ts.map +1 -1
  26. package/dist/types/components/index.d.ts +1 -1
  27. package/dist/types/components/index.d.ts.map +1 -1
  28. package/dist/types/conditions/condition-field.d.ts +2 -0
  29. package/dist/types/conditions/condition-field.d.ts.map +1 -1
  30. package/dist/types/conditions/condition-group.d.ts +3 -0
  31. package/dist/types/conditions/condition-group.d.ts.map +1 -1
  32. package/dist/types/conditions/condition-model.d.ts +8 -4
  33. package/dist/types/conditions/condition-model.d.ts.map +1 -1
  34. package/dist/types/conditions/condition-operators.d.ts +15 -15
  35. package/dist/types/conditions/condition-operators.d.ts.map +1 -1
  36. package/dist/types/conditions/condition-ref.d.ts +3 -0
  37. package/dist/types/conditions/condition-ref.d.ts.map +1 -1
  38. package/dist/types/conditions/condition-values.d.ts +4 -2
  39. package/dist/types/conditions/condition-values.d.ts.map +1 -1
  40. package/dist/types/conditions/condition.d.ts +3 -0
  41. package/dist/types/conditions/condition.d.ts.map +1 -1
  42. package/dist/types/conditions/helpers.d.ts +7 -0
  43. package/dist/types/conditions/helpers.d.ts.map +1 -1
  44. package/dist/types/conditions/index.d.ts +2 -2
  45. package/dist/types/conditions/index.d.ts.map +1 -1
  46. package/dist/types/conditions/types.d.ts +2 -2
  47. package/dist/types/conditions/types.d.ts.map +1 -1
  48. package/package.json +1 -1
  49. package/src/components/helpers.ts +7 -1
  50. package/src/components/index.ts +3 -1
  51. package/src/conditions/condition-field.ts +8 -0
  52. package/src/conditions/condition-group.ts +19 -1
  53. package/src/conditions/condition-model.ts +17 -27
  54. package/src/conditions/condition-operators.ts +14 -11
  55. package/src/conditions/condition-ref.ts +12 -3
  56. package/src/conditions/condition-values.ts +21 -9
  57. package/src/conditions/condition.ts +14 -4
  58. package/src/conditions/helpers.ts +35 -0
  59. package/src/conditions/index.ts +9 -2
  60. package/src/conditions/types.ts +2 -5
@@ -1,4 +1,4 @@
1
- export { getExpression, getOperatorConfig, getOperatorNames, absoluteDateOperatorNames, relativeDateOperatorNames } from "./condition-operators.js";
1
+ export { getExpression, getOperatorNames, absoluteDateOperatorNames, relativeDateOperatorNames } from "./condition-operators.js";
2
2
  export { ConditionValue, RelativeDateValue, conditionValueFrom } from "./condition-values.js";
3
3
  export { ConditionField } from "./condition-field.js";
4
4
  export { Condition } from "./condition.js";
@@ -6,6 +6,6 @@ export { ConditionRef } from "./condition-ref.js";
6
6
  export { ConditionGroup } from "./condition-group.js";
7
7
  export { ConditionsModel } from "./condition-model.js";
8
8
  export { ConditionGroupDef } from "./condition-group-def.js";
9
- export { toExpression, toPresentationString } from "./helpers.js";
9
+ export { hasConditionField, hasConditionGroup, hasConditionName, hasNestedCondition, isDuplicateCondition, toExpression, toPresentationString } from "./helpers.js";
10
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","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
+ {"version":3,"file":"index.js","names":["getExpression","getOperatorNames","absoluteDateOperatorNames","relativeDateOperatorNames","ConditionValue","RelativeDateValue","conditionValueFrom","ConditionField","Condition","ConditionRef","ConditionGroup","ConditionsModel","ConditionGroupDef","hasConditionField","hasConditionGroup","hasConditionName","hasNestedCondition","isDuplicateCondition","toExpression","toPresentationString","ConditionType","Coordinator","DateDirections","DateUnits","Operator","OperatorName"],"sources":["../../../src/conditions/index.ts"],"sourcesContent":["export {\n getExpression,\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 {\n hasConditionField,\n hasConditionGroup,\n hasConditionName,\n hasNestedCondition,\n isDuplicateCondition,\n toExpression,\n toPresentationString\n} 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,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,SACEC,iBAAiB,EACjBC,iBAAiB,EACjBC,gBAAgB,EAChBC,kBAAkB,EAClBC,oBAAoB,EACpBC,YAAY,EACZC,oBAAoB;AAGtB,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 {\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
+ {"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 { type Condition } from '~/src/conditions/condition.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: Condition['value']\n ) => string\n}\n\nexport type Conditionals = Record<OperatorName, OperatorDefinition>\n"],"mappings":"","ignoreList":[]}
@@ -21,6 +21,7 @@ export declare function hasEditor(component?: Partial<ComponentDef>): component
21
21
  * Filter known components with lists
22
22
  */
23
23
  export declare function hasListField(component?: Partial<ComponentDef>): component is ListComponentsDef;
24
+ export declare function isListType(type?: ComponentType): type is ListComponentsDef['type'];
24
25
  /**
25
26
  * Filter known components with selection fields
26
27
  */
@@ -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,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,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
+ {"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,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,YAAY,CAC1B,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,SAAS,IAAI,iBAAiB,CAEhC;AAED,wBAAgB,UAAU,CACxB,IAAI,CAAC,EAAE,aAAa,GACnB,IAAI,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAUnC;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,4 +1,4 @@
1
1
  export { ComponentTypes } from '../components/component-types.js';
2
- export { getComponentDefaults, hasConditionSupport, hasContentField, hasEditor, hasListField, hasSelectionFields, hasTitle } from '../components/helpers.js';
2
+ export { getComponentDefaults, hasConditionSupport, hasContentField, hasEditor, hasListField, hasSelectionFields, hasTitle, isConditionalType, isListType } from '../components/helpers.js';
3
3
  export { ComponentType } from '../components/enums.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACT,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,UAAU,EACX,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA"}
@@ -6,6 +6,8 @@ export declare class ConditionField {
6
6
  type: ConditionalComponentType;
7
7
  display: string;
8
8
  constructor(name?: string, type?: ComponentType, display?: string);
9
+ clone(): ConditionField;
10
+ toJSON(): ConditionFieldData;
9
11
  static from(obj: ConditionField | ConditionFieldData): ConditionField;
10
12
  }
11
13
  //# sourceMappingURL=condition-field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition-field.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,qBAAa,cAAc;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,wBAAwB,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;gBAEH,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM;IAkBjE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,GAAG,kBAAkB;CAGrD"}
1
+ {"version":3,"file":"condition-field.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,qBAAa,cAAc;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,wBAAwB,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;gBAEH,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM;IAkBjE,KAAK,IAAI,cAAc;IAIvB,MAAM,IAAI,kBAAkB;IAI5B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,GAAG,kBAAkB;CAGrD"}
@@ -1,6 +1,7 @@
1
1
  import { type ConditionRef } from '../conditions/condition-ref.js';
2
2
  import { type Condition } from '../conditions/condition.js';
3
3
  import { type Coordinator } from '../conditions/enums.js';
4
+ import { type ConditionGroupData } from '../conditions/types.js';
4
5
  export declare class ConditionGroup {
5
6
  conditions: (Condition | ConditionRef | ConditionGroup)[];
6
7
  constructor(conditions?: (Condition | ConditionRef | ConditionGroup)[]);
@@ -13,5 +14,7 @@ export declare class ConditionGroup {
13
14
  isGroup(): boolean;
14
15
  getGroupedConditions(): (Condition | ConditionRef | ConditionGroup)[];
15
16
  clone(): ConditionGroup;
17
+ toJSON(): ConditionGroupData;
18
+ static from(obj: ConditionGroupData | ConditionGroup): ConditionGroup;
16
19
  }
17
20
  //# sourceMappingURL=condition-group.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition-group.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAG5D,qBAAa,cAAc;IACzB,UAAU,EAAE,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC,EAAE,CAAA;gBAE7C,UAAU,GAAE,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC,EAAO;IAQ1E,iBAAiB,IAAI,MAAM;IAI3B,eAAe,IAAI,MAAM;IAQzB,mBAAmB,IAAI,MAAM;IAQ7B,gBAAgB;IAKhB,cAAc,IAAI,WAAW,GAAG,SAAS;IAIzC,cAAc,CAAC,WAAW,CAAC,EAAE,WAAW;IAIxC,OAAO;IAIP,oBAAoB,IAAI,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC,EAAE;IAIrE,KAAK,IAAI,cAAc;CAKxB"}
1
+ {"version":3,"file":"condition-group.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-group.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE5D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,qBAAa,cAAc;IACzB,UAAU,EAAE,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC,EAAE,CAAA;gBAE7C,UAAU,GAAE,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC,EAAO;IAQ1E,iBAAiB,IAAI,MAAM;IAI3B,eAAe,IAAI,MAAM;IAQzB,mBAAmB,IAAI,MAAM;IAQ7B,gBAAgB;IAKhB,cAAc,IAAI,WAAW,GAAG,SAAS;IAIzC,cAAc,CAAC,WAAW,CAAC,EAAE,WAAW;IAIxC,OAAO;IAIP,oBAAoB,IAAI,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC,EAAE;IAIrE,KAAK,IAAI,cAAc;IAIvB,MAAM,IAAI,kBAAkB;IAQ5B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,GAAG,cAAc,GAAG,cAAc;CAStE"}
@@ -2,15 +2,15 @@ import { ConditionGroupDef } from '../conditions/condition-group-def.js';
2
2
  import { ConditionGroup } from '../conditions/condition-group.js';
3
3
  import { ConditionRef } from '../conditions/condition-ref.js';
4
4
  import { Condition } from '../conditions/condition.js';
5
- import { type ConditionsModelData } from '../conditions/types.js';
5
+ import { type ConditionData, type ConditionGroupData, type ConditionRefData, type ConditionsModelData } from '../conditions/types.js';
6
6
  export declare class ConditionsModel {
7
7
  #private;
8
8
  clone(): ConditionsModel;
9
9
  clear(): this;
10
10
  set name(name: string | undefined);
11
11
  get name(): string | undefined;
12
- add(condition: Condition | ConditionRef): this;
13
- replace(index: number, condition: Condition): this;
12
+ add(condition: Condition | ConditionRef | ConditionGroup): this;
13
+ replace(index: number, condition: Condition | ConditionRef | ConditionGroup): this;
14
14
  remove(indexes: number[]): this;
15
15
  addGroups(groupDefs: ConditionGroupDef[]): this;
16
16
  splitGroup(index: number): this;
@@ -26,7 +26,11 @@ export declare class ConditionsModel {
26
26
  _group(conditions: (Condition | ConditionRef | ConditionGroup)[], groupDefs: ConditionGroupDef[]): (Condition | ConditionRef | ConditionGroup)[];
27
27
  _ungroup(conditions: (Condition | ConditionRef | ConditionGroup)[], splitIndex: number): (Condition | ConditionRef | ConditionGroup)[];
28
28
  _autoGroupDefs(conditions: (Condition | ConditionRef | ConditionGroup)[]): ConditionGroupDef[];
29
- toJSON(): ConditionsModelData;
29
+ toJSON(): {
30
+ name: string;
31
+ conditions: (ConditionData | ConditionRefData | ConditionGroupData)[];
32
+ };
30
33
  static from(obj: ConditionsModel | ConditionsModelData): ConditionsModel;
31
34
  }
35
+ export declare function conditionFrom(it: ConditionData | ConditionRefData | ConditionGroupData): Condition | ConditionRef | ConditionGroup;
32
36
  //# sourceMappingURL=condition-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition-model.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAGzD,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAA;AAElC,qBAAa,eAAe;;IAK1B,KAAK;IAYL,KAAK;IAOL,IAAI,IAAI,CAAC,IAAI,oBAAA,EAEZ;IAED,IAAI,IAAI,uBAEP;IAED,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,YAAY;IAevC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;IAmB3C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE;IAWxB,SAAS,CAAC,SAAS,EAAE,iBAAiB,EAAE;IASxC,UAAU,CAAC,KAAK,EAAE,MAAM;IASxB,WAAW,CAAC,KAAK,EAAE,MAAM;IAezB,SAAS,CAAC,KAAK,EAAE,MAAM;IAevB,kBAAkB;IAOlB,IAAI,kBAAkB,kDAErB;IAED,IAAI,aAAa,YAEhB;IAED,IAAI,SAAS,WAEZ;IAED,oBAAoB;IAMpB,YAAY;IAMZ,YAAY,CACV,qBAAqB,EAAE,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC,EAAE;IAmBtE,MAAM,CACJ,UAAU,EAAE,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC,EAAE,EACzD,SAAS,EAAE,iBAAiB,EAAE;IAqBhC,QAAQ,CACN,UAAU,EAAE,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC,EAAE,EACzD,UAAU,EAAE,MAAM;IAcpB,cAAc,CAAC,UAAU,EAAE,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC,EAAE;IAkCxE,MAAM,IAAI,mBAAmB;IAU7B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,mBAAmB;CAcvD"}
1
+ {"version":3,"file":"condition-model.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAQzD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAA;AAElC,qBAAa,eAAe;;IAK1B,KAAK;IAYL,KAAK;IAOL,IAAI,IAAI,CAAC,IAAI,oBAAA,EAEZ;IAED,IAAI,IAAI,uBAEP;IAED,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,cAAc;IAexD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,cAAc;IAmB3E,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE;IAWxB,SAAS,CAAC,SAAS,EAAE,iBAAiB,EAAE;IASxC,UAAU,CAAC,KAAK,EAAE,MAAM;IASxB,WAAW,CAAC,KAAK,EAAE,MAAM;IAezB,SAAS,CAAC,KAAK,EAAE,MAAM;IAevB,kBAAkB;IAOlB,IAAI,kBAAkB,kDAErB;IAED,IAAI,aAAa,YAEhB;IAED,IAAI,SAAS,WAEZ;IAED,oBAAoB;IAMpB,YAAY;IAMZ,YAAY,CACV,qBAAqB,EAAE,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC,EAAE;IAmBtE,MAAM,CACJ,UAAU,EAAE,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC,EAAE,EACzD,SAAS,EAAE,iBAAiB,EAAE;IAqBhC,QAAQ,CACN,UAAU,EAAE,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC,EAAE,EACzD,UAAU,EAAE,MAAM;IAcpB,cAAc,CAAC,UAAU,EAAE,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC,EAAE;IAkCxE,MAAM;;;;IAUN,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,mBAAmB;CAYvD;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,aAAa,GAAG,gBAAgB,GAAG,kBAAkB,GACxD,SAAS,GAAG,YAAY,GAAG,cAAc,CAU3C"}
@@ -1,5 +1,5 @@
1
1
  import { ComponentType } from '../components/enums.js';
2
- import { ConditionValue, RelativeDateValue } from '../conditions/condition-values.js';
2
+ import { type Condition } from '../conditions/condition.js';
3
3
  import { OperatorName } from '../conditions/enums.js';
4
4
  import { type OperatorDefinition } from '../conditions/types.js';
5
5
  export declare const customOperators: {
@@ -12,13 +12,13 @@ export declare const customOperators: {
12
12
  "does not contain": OperatorDefinition;
13
13
  };
14
14
  NumberField: {
15
+ is: OperatorDefinition;
16
+ "is not": OperatorDefinition;
17
+ } & {
15
18
  "is at least": OperatorDefinition;
16
19
  "is at most": OperatorDefinition;
17
20
  "is less than": OperatorDefinition;
18
21
  "is more than": OperatorDefinition;
19
- } & {
20
- is: OperatorDefinition;
21
- "is not": OperatorDefinition;
22
22
  };
23
23
  DatePartsField: {
24
24
  "is at least": OperatorDefinition;
@@ -31,28 +31,28 @@ export declare const customOperators: {
31
31
  "is after": OperatorDefinition;
32
32
  };
33
33
  TextField: {
34
+ is: OperatorDefinition;
35
+ "is not": OperatorDefinition;
36
+ } & {
34
37
  "is longer than": OperatorDefinition;
35
38
  "is shorter than": OperatorDefinition;
36
39
  "has length": OperatorDefinition;
37
- } & {
38
- is: OperatorDefinition;
39
- "is not": OperatorDefinition;
40
40
  };
41
41
  MultilineTextField: {
42
+ is: OperatorDefinition;
43
+ "is not": OperatorDefinition;
44
+ } & {
42
45
  "is longer than": OperatorDefinition;
43
46
  "is shorter than": OperatorDefinition;
44
47
  "has length": OperatorDefinition;
45
- } & {
46
- is: OperatorDefinition;
47
- "is not": OperatorDefinition;
48
48
  };
49
49
  EmailAddressField: {
50
+ is: OperatorDefinition;
51
+ "is not": OperatorDefinition;
52
+ } & {
50
53
  "is longer than": OperatorDefinition;
51
54
  "is shorter than": OperatorDefinition;
52
55
  "has length": OperatorDefinition;
53
- } & {
54
- is: OperatorDefinition;
55
- "is not": OperatorDefinition;
56
56
  };
57
57
  SelectField: {
58
58
  is: OperatorDefinition;
@@ -63,8 +63,8 @@ export declare const customOperators: {
63
63
  "is not": OperatorDefinition;
64
64
  };
65
65
  };
66
- export declare function getOperatorNames(fieldType?: ComponentType): string[];
67
- export declare function getExpression(fieldType: ComponentType, fieldName: string, operator: OperatorName, value: ConditionValue | RelativeDateValue): string | undefined;
66
+ export declare function getOperatorNames(fieldType?: ComponentType): OperatorName[];
67
+ export declare function getExpression(fieldType: ComponentType, fieldName: string, operator: OperatorName, value: Condition['value']): string | undefined;
68
68
  export declare function getOperatorConfig(fieldType: ComponentType, operator: OperatorName): OperatorDefinition | undefined;
69
69
  export declare const absoluteDateOperatorNames: OperatorName[];
70
70
  export declare const relativeDateOperatorNames: OperatorName[];
@@ -1 +1 @@
1
- {"version":3,"file":"condition-operators.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-operators.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEzD,OAAO,EACL,cAAc,EACd,iBAAiB,EAClB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAGL,YAAY,EACb,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,2BAA2B,CAAA;AAqClC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqB3B,CAAA;AAED,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,aAAa,YAOzD;AAED,wBAAgB,aAAa,CAC3B,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,cAAc,GAAG,iBAAiB,sBAW1C;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,YAAY,kCAGvB;AA6DD,eAAO,MAAM,yBAAyB,EAEjC,YAAY,EAAE,CAAA;AAEnB,eAAO,MAAM,yBAAyB,EAEjC,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"condition-operators.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-operators.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAMzD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAIL,YAAY,EACb,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,2BAA2B,CAAA;AAqClC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqB3B,CAAA;AAED,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,aAAa,kBAOzD;AAED,wBAAgB,aAAa,CAC3B,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,sBAW1B;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,YAAY,kCAGvB;AA8DD,eAAO,MAAM,yBAAyB,EAEjC,YAAY,EAAE,CAAA;AAEnB,eAAO,MAAM,yBAAyB,EAEjC,YAAY,EAAE,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { ConditionAbstract } from '../conditions/condition-abstract.js';
2
2
  import { type Coordinator } from '../conditions/enums.js';
3
+ import { type ConditionRefData } from '../conditions/types.js';
3
4
  export declare class ConditionRef extends ConditionAbstract {
4
5
  conditionName: string;
5
6
  conditionDisplayName: string;
@@ -8,5 +9,7 @@ export declare class ConditionRef extends ConditionAbstract {
8
9
  conditionString(): string;
9
10
  conditionExpression(): string;
10
11
  clone(): ConditionRef;
12
+ toJSON(): ConditionRefData;
13
+ static from(obj: ConditionRefData | ConditionRef): ConditionRef;
11
14
  }
12
15
  //# sourceMappingURL=condition-ref.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition-ref.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE5D,qBAAa,YAAa,SAAQ,iBAAiB;IACjD,aAAa,EAAE,MAAM,CAAA;IACrB,oBAAoB,EAAE,MAAM,CAAA;gBAG1B,aAAa,EAAE,MAAM,EACrB,oBAAoB,EAAE,MAAM,EAC5B,WAAW,CAAC,EAAE,WAAW;IAkB3B,gBAAgB;IAKhB,eAAe;IAIf,mBAAmB;IAInB,KAAK;CAON"}
1
+ {"version":3,"file":"condition-ref.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAEjE,qBAAa,YAAa,SAAQ,iBAAiB;IACjD,aAAa,EAAE,MAAM,CAAA;IACrB,oBAAoB,EAAE,MAAM,CAAA;gBAG1B,aAAa,EAAE,MAAM,EACrB,oBAAoB,EAAE,MAAM,EAC5B,WAAW,CAAC,EAAE,WAAW;IAkB3B,gBAAgB;IAKhB,eAAe;IAIf,mBAAmB;IAInB,KAAK;IAIL,MAAM,IAAI,gBAAgB;IAI1B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,GAAG,YAAY;CAOjD"}
@@ -9,8 +9,9 @@ export declare class ConditionValue extends ConditionValueAbstract {
9
9
  constructor(value: string, display?: string);
10
10
  toPresentationString(): string;
11
11
  toExpression(): string;
12
- static from(obj: ConditionValue | ConditionValueData): ConditionValue;
13
12
  clone(): ConditionValue;
13
+ toJSON(): ConditionValueData;
14
+ static from(obj: ConditionValue | ConditionValueData): ConditionValue;
14
15
  }
15
16
  export declare class RelativeDateValue extends ConditionValueAbstract {
16
17
  type: ConditionType.RelativeDate;
@@ -20,8 +21,9 @@ export declare class RelativeDateValue extends ConditionValueAbstract {
20
21
  constructor(period: string, unit: DateUnits, direction: DateDirections);
21
22
  toPresentationString(): string;
22
23
  toExpression(): string;
23
- static from(obj: RelativeDateValue | RelativeDateValueData): RelativeDateValue;
24
24
  clone(): RelativeDateValue;
25
+ toJSON(): RelativeDateValueData;
26
+ static from(obj: RelativeDateValue | RelativeDateValueData): RelativeDateValue;
25
27
  }
26
28
  export declare function conditionValueFrom(obj: ConditionValue | ConditionValueData | RelativeDateValue | RelativeDateValueData): ConditionValue | RelativeDateValue;
27
29
  //# sourceMappingURL=condition-values.d.ts.map
@@ -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,YAAY;IAIZ,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,GAAG,kBAAkB;IAIpD,KAAK;CAGN;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,YAAY,IAAI,MAAM;IAStB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,qBAAqB;IAI1D,KAAK;CAGN;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EACC,cAAc,GACd,kBAAkB,GAClB,iBAAiB,GACjB,qBAAqB,sCAS1B"}
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,YAAY;IAIZ,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,YAAY,IAAI,MAAM;IAStB,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"}
@@ -2,6 +2,7 @@ import { ConditionAbstract } from '../conditions/condition-abstract.js';
2
2
  import { ConditionField } from '../conditions/condition-field.js';
3
3
  import { type ConditionValue, type RelativeDateValue } from '../conditions/condition-values.js';
4
4
  import { type Coordinator, type OperatorName } from '../conditions/enums.js';
5
+ import { type ConditionData } from '../conditions/types.js';
5
6
  export declare class Condition extends ConditionAbstract {
6
7
  field: ConditionField;
7
8
  operator: OperatorName;
@@ -11,5 +12,7 @@ export declare class Condition extends ConditionAbstract {
11
12
  conditionString(): string;
12
13
  conditionExpression(): string | undefined;
13
14
  clone(): Condition;
15
+ toJSON(): ConditionData;
16
+ static from(obj: ConditionData | Condition): Condition;
14
17
  }
15
18
  //# sourceMappingURL=condition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAGpE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE/E,qBAAa,SAAU,SAAQ,iBAAiB;IAC9C,KAAK,EAAE,cAAc,CAAA;IACrB,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,cAAc,GAAG,iBAAiB,CAAA;gBAGvC,KAAK,CAAC,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,YAAY,EACvB,KAAK,CAAC,EAAE,cAAc,GAAG,iBAAiB,EAC1C,WAAW,CAAC,EAAE,WAAW;IAqB3B,gBAAgB;IAKhB,eAAe;IAMf,mBAAmB;IASnB,KAAK;CAQN"}
1
+ {"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAGpE,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC/E,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,qBAAa,SAAU,SAAQ,iBAAiB;IAC9C,KAAK,EAAE,cAAc,CAAA;IACrB,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,cAAc,GAAG,iBAAiB,CAAA;gBAGvC,KAAK,CAAC,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,YAAY,EACvB,KAAK,CAAC,EAAE,cAAc,GAAG,iBAAiB,EAC1C,WAAW,CAAC,EAAE,WAAW;IAqB3B,gBAAgB;IAKhB,eAAe;IAMf,mBAAmB;IASnB,KAAK;IAIL,MAAM,IAAI,aAAa;IAIvB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS;CAQ3C"}
@@ -1,6 +1,13 @@
1
1
  import { type ConditionGroup } from '../conditions/condition-group.js';
2
2
  import { type ConditionRef } from '../conditions/condition-ref.js';
3
3
  import { type Condition } from '../conditions/condition.js';
4
+ import { type ConditionData, type ConditionGroupData, type ConditionRefData } from '../conditions/types.js';
5
+ import { type ConditionWrapper } from '../form/form-definition/types.js';
4
6
  export declare function toPresentationString(condition: Condition | ConditionRef | ConditionGroup): string;
5
7
  export declare function toExpression(condition: Condition | ConditionRef | ConditionGroup): string;
8
+ export declare const hasConditionField: (condition?: ConditionGroupData | ConditionData | ConditionRefData) => condition is ConditionData;
9
+ export declare const hasConditionGroup: (condition?: ConditionGroupData | ConditionData | ConditionRefData) => condition is ConditionGroupData;
10
+ export declare const hasConditionName: (condition?: ConditionGroupData | ConditionData | ConditionRefData) => condition is ConditionRefData;
11
+ export declare const hasNestedCondition: (condition?: ConditionWrapper) => boolean;
12
+ export declare const isDuplicateCondition: (conditions: ConditionWrapper[], conditionName: string) => boolean;
6
13
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/conditions/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAE9D,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,cAAc,UAGrD;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,cAAc,UAGrD"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/conditions/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,cAAc,UAGrD;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,cAAc,UAGrD;AAED,eAAO,MAAM,iBAAiB,eAChB,kBAAkB,GAAG,aAAa,GAAG,gBAAgB,KAChE,SAAS,IAAI,aAEf,CAAA;AAED,eAAO,MAAM,iBAAiB,eAChB,kBAAkB,GAAG,aAAa,GAAG,gBAAgB,KAChE,SAAS,IAAI,kBAEf,CAAA;AAED,eAAO,MAAM,gBAAgB,eACf,kBAAkB,GAAG,aAAa,GAAG,gBAAgB,KAChE,SAAS,IAAI,gBAEf,CAAA;AAED,eAAO,MAAM,kBAAkB,eAAgB,gBAAgB,YAE9D,CAAA;AAED,eAAO,MAAM,oBAAoB,eACnB,gBAAgB,EAAE,iBACf,MAAM,YAGtB,CAAA"}
@@ -1,4 +1,4 @@
1
- export { getExpression, getOperatorConfig, getOperatorNames, absoluteDateOperatorNames, relativeDateOperatorNames } from '../conditions/condition-operators.js';
1
+ export { getExpression, getOperatorNames, absoluteDateOperatorNames, relativeDateOperatorNames } from '../conditions/condition-operators.js';
2
2
  export { ConditionValue, RelativeDateValue, conditionValueFrom } from '../conditions/condition-values.js';
3
3
  export { ConditionField } from '../conditions/condition-field.js';
4
4
  export { Condition } from '../conditions/condition.js';
@@ -6,6 +6,6 @@ export { ConditionRef } from '../conditions/condition-ref.js';
6
6
  export { ConditionGroup } from '../conditions/condition-group.js';
7
7
  export { ConditionsModel } from '../conditions/condition-model.js';
8
8
  export { ConditionGroupDef } from '../conditions/condition-group-def.js';
9
- export { toExpression, toPresentationString } from '../conditions/helpers.js';
9
+ export { hasConditionField, hasConditionGroup, hasConditionName, hasNestedCondition, isDuplicateCondition, toExpression, toPresentationString } from '../conditions/helpers.js';
10
10
  export { ConditionType, Coordinator, DateDirections, DateUnits, Operator, OperatorName } from '../conditions/enums.js';
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/conditions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,sCAAsC,CAAA;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAEhF,OAAO,EACL,aAAa,EACb,WAAW,EACX,cAAc,EACd,SAAS,EACT,QAAQ,EACR,YAAY,EACb,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/conditions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,sCAAsC,CAAA;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AAC3E,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACrB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,aAAa,EACb,WAAW,EACX,cAAc,EACd,SAAS,EACT,QAAQ,EACR,YAAY,EACb,MAAM,2BAA2B,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { type ComponentDef, type ConditionalComponentType } from '../components/types.js';
2
- import { type ConditionValue, type RelativeDateValue } from '../conditions/condition-values.js';
2
+ import { type Condition } from '../conditions/condition.js';
3
3
  import { type ConditionType, type Coordinator, type DateDirections, type DateUnits, type OperatorName } from '../conditions/enums.js';
4
4
  export interface ConditionValueData {
5
5
  type: ConditionType.Value;
@@ -35,7 +35,7 @@ export interface ConditionsModelData extends ConditionGroupData {
35
35
  name: string;
36
36
  }
37
37
  export interface OperatorDefinition {
38
- expression: (component: Pick<ComponentDef, 'type' | 'name'>, conditionValue: ConditionValue | RelativeDateValue) => string;
38
+ expression: (component: Pick<ComponentDef, 'type' | 'name'>, conditionValue: Condition['value']) => string;
39
39
  }
40
40
  export type Conditionals = Record<OperatorName, OperatorDefinition>;
41
41
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/conditions/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAA;AAElC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,aAAa,CAAC,YAAY,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,SAAS,CAAA;IACf,SAAS,EAAE,cAAc,CAAA;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,wBAAwB,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,kBAAkB,CAAA;IACzB,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,kBAAkB,GAAG,qBAAqB,CAAA;IACjD,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,CAAC,aAAa,GAAG,gBAAgB,GAAG,kBAAkB,CAAC,EAAE,CAAA;CACtE;AAED,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,CACV,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,EAC9C,cAAc,EAAE,cAAc,GAAG,iBAAiB,KAC/C,MAAM,CAAA;CACZ;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/conditions/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAA;AAElC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,aAAa,CAAC,YAAY,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,SAAS,CAAA;IACf,SAAS,EAAE,cAAc,CAAA;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,wBAAwB,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,kBAAkB,CAAA;IACzB,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,kBAAkB,GAAG,qBAAqB,CAAA;IACjD,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,CAAC,aAAa,GAAG,gBAAgB,GAAG,kBAAkB,CAAC,EAAE,CAAA;CACtE;AAED,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,CACV,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,EAC9C,cAAc,EAAE,SAAS,CAAC,OAAO,CAAC,KAC/B,MAAM,CAAA;CACZ;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/forms-model",
3
- "version": "3.0.253",
3
+ "version": "3.0.255",
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": {
@@ -97,6 +97,12 @@ export function hasEditor(
97
97
  export function hasListField(
98
98
  component?: Partial<ComponentDef>
99
99
  ): component is ListComponentsDef {
100
+ return isListType(component?.type)
101
+ }
102
+
103
+ export function isListType(
104
+ type?: ComponentType
105
+ ): type is ListComponentsDef['type'] {
100
106
  const allowedTypes = [
101
107
  ComponentType.AutocompleteField,
102
108
  ComponentType.List,
@@ -105,7 +111,7 @@ export function hasListField(
105
111
  ComponentType.CheckboxesField
106
112
  ]
107
113
 
108
- return !!component?.type && allowedTypes.includes(component.type)
114
+ return !!type && allowedTypes.includes(type)
109
115
  }
110
116
 
111
117
  /**
@@ -6,7 +6,9 @@ export {
6
6
  hasEditor,
7
7
  hasListField,
8
8
  hasSelectionFields,
9
- hasTitle
9
+ hasTitle,
10
+ isConditionalType,
11
+ isListType
10
12
  } from '~/src/components/helpers.js'
11
13
 
12
14
  export { ComponentType } from '~/src/components/enums.js'
@@ -26,6 +26,14 @@ export class ConditionField {
26
26
  this.display = display
27
27
  }
28
28
 
29
+ clone(): ConditionField {
30
+ return ConditionField.from(this)
31
+ }
32
+
33
+ toJSON(): ConditionFieldData {
34
+ return structuredClone(this.clone())
35
+ }
36
+
29
37
  static from(obj: ConditionField | ConditionFieldData) {
30
38
  return new ConditionField(obj.name, obj.type, obj.display)
31
39
  }
@@ -1,7 +1,9 @@
1
+ import { conditionFrom } from '~/src/conditions/condition-model.js'
1
2
  import { type ConditionRef } from '~/src/conditions/condition-ref.js'
2
3
  import { type Condition } from '~/src/conditions/condition.js'
3
4
  import { type Coordinator } from '~/src/conditions/enums.js'
4
5
  import { toPresentationString, toExpression } from '~/src/conditions/helpers.js'
6
+ import { type ConditionGroupData } from '~/src/conditions/types.js'
5
7
 
6
8
  export class ConditionGroup {
7
9
  conditions: (Condition | ConditionRef | ConditionGroup)[]
@@ -56,8 +58,24 @@ export class ConditionGroup {
56
58
  }
57
59
 
58
60
  clone(): ConditionGroup {
61
+ return ConditionGroup.from(this)
62
+ }
63
+
64
+ toJSON(): ConditionGroupData {
65
+ const { conditions } = this.clone()
66
+
67
+ return structuredClone({
68
+ conditions: conditions.map((condition) => condition.toJSON())
69
+ })
70
+ }
71
+
72
+ static from(obj: ConditionGroupData | ConditionGroup): ConditionGroup {
59
73
  return new ConditionGroup(
60
- this.conditions.map((condition) => condition.clone())
74
+ obj.conditions.map((condition) => {
75
+ return 'clone' in condition
76
+ ? condition.clone()
77
+ : conditionFrom(condition)
78
+ })
61
79
  )
62
80
  }
63
81
  }
@@ -1,11 +1,14 @@
1
- import { ConditionField } from '~/src/conditions/condition-field.js'
2
1
  import { ConditionGroupDef } from '~/src/conditions/condition-group-def.js'
3
2
  import { ConditionGroup } from '~/src/conditions/condition-group.js'
4
3
  import { ConditionRef } from '~/src/conditions/condition-ref.js'
5
- import { conditionValueFrom } from '~/src/conditions/condition-values.js'
6
4
  import { Condition } from '~/src/conditions/condition.js'
7
5
  import { Coordinator } from '~/src/conditions/enums.js'
8
- import { toPresentationString, toExpression } from '~/src/conditions/helpers.js'
6
+ import {
7
+ toPresentationString,
8
+ toExpression,
9
+ hasConditionGroup,
10
+ hasConditionName
11
+ } from '~/src/conditions/helpers.js'
9
12
  import {
10
13
  type ConditionData,
11
14
  type ConditionGroupData,
@@ -45,7 +48,7 @@ export class ConditionsModel {
45
48
  return this.#conditionName
46
49
  }
47
50
 
48
- add(condition: Condition | ConditionRef) {
51
+ add(condition: Condition | ConditionRef | ConditionGroup) {
49
52
  const coordinatorExpected = this.#userGroupedConditions.length !== 0
50
53
 
51
54
  if (condition.getCoordinator() && !coordinatorExpected) {
@@ -60,7 +63,7 @@ export class ConditionsModel {
60
63
  return this
61
64
  }
62
65
 
63
- replace(index: number, condition: Condition) {
66
+ replace(index: number, condition: Condition | ConditionRef | ConditionGroup) {
64
67
  const coordinatorExpected = index !== 0
65
68
 
66
69
  if (condition.getCoordinator() && !coordinatorExpected) {
@@ -262,12 +265,12 @@ export class ConditionsModel {
262
265
  return []
263
266
  }
264
267
 
265
- toJSON(): ConditionsModelData {
268
+ toJSON() {
266
269
  const name = this.#conditionName
267
270
  const conditions = this.#userGroupedConditions
268
271
  return {
269
272
  name: name ?? '',
270
- conditions: conditions.map((it) => it.clone())
273
+ conditions: conditions.map((it) => it.toJSON())
271
274
  }
272
275
  }
273
276
 
@@ -278,9 +281,7 @@ export class ConditionsModel {
278
281
  }
279
282
  const toReturn = new ConditionsModel()
280
283
  toReturn.#conditionName = obj.name
281
- toReturn.#userGroupedConditions = obj.conditions.map((condition) =>
282
- conditionFrom(condition)
283
- )
284
+ toReturn.#userGroupedConditions = obj.conditions.map(conditionFrom)
284
285
  toReturn.#groupedConditions = toReturn._applyGroups(
285
286
  toReturn.#userGroupedConditions
286
287
  )
@@ -288,27 +289,16 @@ export class ConditionsModel {
288
289
  }
289
290
  }
290
291
 
291
- function conditionFrom(
292
+ export function conditionFrom(
292
293
  it: ConditionData | ConditionRefData | ConditionGroupData
293
294
  ): Condition | ConditionRef | ConditionGroup {
294
- if ('conditions' in it) {
295
- return new ConditionGroup(
296
- it.conditions.map((condition) => conditionFrom(condition))
297
- )
295
+ if (hasConditionGroup(it)) {
296
+ return new ConditionGroup(it.conditions.map(conditionFrom))
298
297
  }
299
298
 
300
- if ('conditionName' in it) {
301
- return new ConditionRef(
302
- it.conditionName,
303
- it.conditionDisplayName,
304
- it.coordinator
305
- )
299
+ if (hasConditionName(it)) {
300
+ return ConditionRef.from(it)
306
301
  }
307
302
 
308
- return new Condition(
309
- ConditionField.from(it.field),
310
- it.operator,
311
- conditionValueFrom(it.value),
312
- it.coordinator
313
- )
303
+ return Condition.from(it)
314
304
  }