@defra/forms-model 3.0.169 → 3.0.171

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.
@@ -5,10 +5,10 @@ export class ConditionRef extends ConditionAbstract {
5
5
  constructor(conditionName, conditionDisplayName, coordinator) {
6
6
  super(coordinator);
7
7
  if (typeof conditionName !== 'string') {
8
- throw Error(`condition name ${conditionName} is not valid`);
8
+ throw new Error("ConditionRef param 'conditionName' must be a string");
9
9
  }
10
10
  if (typeof conditionDisplayName !== 'string') {
11
- throw Error(`condition display name ${conditionDisplayName} is not valid`);
11
+ throw new Error("ConditionRef param 'conditionDisplayName' must be a string");
12
12
  }
13
13
  this.conditionName = conditionName;
14
14
  this.conditionDisplayName = conditionDisplayName;
@@ -1 +1 @@
1
- {"version":3,"file":"condition-ref.js","names":["ConditionAbstract","ConditionRef","conditionName","conditionDisplayName","constructor","coordinator","Error","asFirstCondition","_asFirstCondition","conditionString","conditionExpression","clone"],"sources":["../../../src/conditions/condition-ref.ts"],"sourcesContent":["import { ConditionAbstract } from '~/src/conditions/condition-abstract.js'\nimport { type Coordinator } from '~/src/conditions/enums.js'\n\nexport class ConditionRef extends ConditionAbstract {\n conditionName: string\n conditionDisplayName: string\n\n constructor(\n conditionName: string,\n conditionDisplayName: string,\n coordinator: Coordinator | undefined\n ) {\n super(coordinator)\n\n if (typeof conditionName !== 'string') {\n throw Error(`condition name ${conditionName} is not valid`)\n }\n\n if (typeof conditionDisplayName !== 'string') {\n throw Error(`condition display name ${conditionDisplayName} is not valid`)\n }\n\n this.conditionName = conditionName\n this.conditionDisplayName = conditionDisplayName\n }\n\n asFirstCondition() {\n this._asFirstCondition()\n return this\n }\n\n conditionString() {\n return `'${this.conditionDisplayName}'`\n }\n\n conditionExpression() {\n return this.conditionName\n }\n\n clone() {\n return new ConditionRef(\n this.conditionName,\n this.conditionDisplayName,\n this.coordinator\n )\n }\n}\n"],"mappings":"AAAA,SAASA,iBAAiB;AAG1B,OAAO,MAAMC,YAAY,SAASD,iBAAiB,CAAC;EAClDE,aAAa;EACbC,oBAAoB;EAEpBC,WAAWA,CACTF,aAAqB,EACrBC,oBAA4B,EAC5BE,WAAoC,EACpC;IACA,KAAK,CAACA,WAAW,CAAC;IAElB,IAAI,OAAOH,aAAa,KAAK,QAAQ,EAAE;MACrC,MAAMI,KAAK,CAAC,kBAAkBJ,aAAa,eAAe,CAAC;IAC7D;IAEA,IAAI,OAAOC,oBAAoB,KAAK,QAAQ,EAAE;MAC5C,MAAMG,KAAK,CAAC,0BAA0BH,oBAAoB,eAAe,CAAC;IAC5E;IAEA,IAAI,CAACD,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACC,oBAAoB,GAAGA,oBAAoB;EAClD;EAEAI,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACC,iBAAiB,CAAC,CAAC;IACxB,OAAO,IAAI;EACb;EAEAC,eAAeA,CAAA,EAAG;IAChB,OAAO,IAAI,IAAI,CAACN,oBAAoB,GAAG;EACzC;EAEAO,mBAAmBA,CAAA,EAAG;IACpB,OAAO,IAAI,CAACR,aAAa;EAC3B;EAEAS,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIV,YAAY,CACrB,IAAI,CAACC,aAAa,EAClB,IAAI,CAACC,oBAAoB,EACzB,IAAI,CAACE,WACP,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"file":"condition-ref.js","names":["ConditionAbstract","ConditionRef","conditionName","conditionDisplayName","constructor","coordinator","Error","asFirstCondition","_asFirstCondition","conditionString","conditionExpression","clone"],"sources":["../../../src/conditions/condition-ref.ts"],"sourcesContent":["import { ConditionAbstract } from '~/src/conditions/condition-abstract.js'\nimport { type Coordinator } from '~/src/conditions/enums.js'\n\nexport class ConditionRef extends ConditionAbstract {\n conditionName: string\n conditionDisplayName: string\n\n constructor(\n conditionName: string,\n conditionDisplayName: string,\n coordinator: Coordinator | undefined\n ) {\n super(coordinator)\n\n if (typeof conditionName !== 'string') {\n throw new Error(\"ConditionRef param 'conditionName' must be a string\")\n }\n\n if (typeof conditionDisplayName !== 'string') {\n throw new Error(\n \"ConditionRef param 'conditionDisplayName' must be a string\"\n )\n }\n\n this.conditionName = conditionName\n this.conditionDisplayName = conditionDisplayName\n }\n\n asFirstCondition() {\n this._asFirstCondition()\n return this\n }\n\n conditionString() {\n return `'${this.conditionDisplayName}'`\n }\n\n conditionExpression() {\n return this.conditionName\n }\n\n clone() {\n return new ConditionRef(\n this.conditionName,\n this.conditionDisplayName,\n this.coordinator\n )\n }\n}\n"],"mappings":"AAAA,SAASA,iBAAiB;AAG1B,OAAO,MAAMC,YAAY,SAASD,iBAAiB,CAAC;EAClDE,aAAa;EACbC,oBAAoB;EAEpBC,WAAWA,CACTF,aAAqB,EACrBC,oBAA4B,EAC5BE,WAAoC,EACpC;IACA,KAAK,CAACA,WAAW,CAAC;IAElB,IAAI,OAAOH,aAAa,KAAK,QAAQ,EAAE;MACrC,MAAM,IAAII,KAAK,CAAC,qDAAqD,CAAC;IACxE;IAEA,IAAI,OAAOH,oBAAoB,KAAK,QAAQ,EAAE;MAC5C,MAAM,IAAIG,KAAK,CACb,4DACF,CAAC;IACH;IAEA,IAAI,CAACJ,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACC,oBAAoB,GAAGA,oBAAoB;EAClD;EAEAI,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACC,iBAAiB,CAAC,CAAC;IACxB,OAAO,IAAI;EACb;EAEAC,eAAeA,CAAA,EAAG;IAChB,OAAO,IAAI,IAAI,CAACN,oBAAoB,GAAG;EACzC;EAEAO,mBAAmBA,CAAA,EAAG;IACpB,OAAO,IAAI,CAACR,aAAa;EAC3B;EAEAS,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIV,YAAY,CACrB,IAAI,CAACC,aAAa,EAClB,IAAI,CAACC,oBAAoB,EACzB,IAAI,CAACE,WACP,CAAC;EACH;AACF","ignoreList":[]}
@@ -1,20 +1,12 @@
1
- import { Registration } from "./condition-value-registration.js";
2
1
  export class ConditionValueAbstract {
3
- type;
4
- constructor(registration) {
5
- if (new.target === ConditionValueAbstract) {
6
- throw new TypeError('Cannot construct ConditionValue instances directly');
7
- }
8
- if (!(registration instanceof Registration)) {
9
- throw new TypeError('You must register your value type! Call registerValueType!');
10
- }
11
- this.type = registration.type;
12
- }
13
2
  toPresentationString() {
14
- throw new Error('Unsupported Operation. Method toPresentationString have not been implemented');
3
+ throw new Error('Unsupported Operation. Method toPresentationString has not been implemented');
15
4
  }
16
5
  toExpression() {
17
- throw new Error('Unsupported Operation. Method toExpression have not been implemented');
6
+ throw new Error('Unsupported Operation. Method toExpression has not been implemented');
7
+ }
8
+ clone() {
9
+ throw new Error('Unsupported Operation. Method clone has not been implemented');
18
10
  }
19
11
  }
20
12
  //# sourceMappingURL=condition-value-abstract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition-value-abstract.js","names":["Registration","ConditionValueAbstract","type","constructor","registration","new","target","TypeError","toPresentationString","Error","toExpression"],"sources":["../../../src/conditions/condition-value-abstract.ts"],"sourcesContent":["import { Registration } from '~/src/conditions/condition-value-registration.js'\n\nexport class ConditionValueAbstract {\n type: string\n\n constructor(registration: Registration) {\n if (new.target === ConditionValueAbstract) {\n throw new TypeError('Cannot construct ConditionValue instances directly')\n }\n\n if (!(registration instanceof Registration)) {\n throw new TypeError(\n 'You must register your value type! Call registerValueType!'\n )\n }\n\n this.type = registration.type\n }\n\n toPresentationString() {\n throw new Error(\n 'Unsupported Operation. Method toPresentationString have not been implemented'\n )\n }\n\n toExpression() {\n throw new Error(\n 'Unsupported Operation. Method toExpression have not been implemented'\n )\n }\n}\n"],"mappings":"AAAA,SAASA,YAAY;AAErB,OAAO,MAAMC,sBAAsB,CAAC;EAClCC,IAAI;EAEJC,WAAWA,CAACC,YAA0B,EAAE;IACtC,IAAIC,GAAG,CAACC,MAAM,KAAKL,sBAAsB,EAAE;MACzC,MAAM,IAAIM,SAAS,CAAC,oDAAoD,CAAC;IAC3E;IAEA,IAAI,EAAEH,YAAY,YAAYJ,YAAY,CAAC,EAAE;MAC3C,MAAM,IAAIO,SAAS,CACjB,4DACF,CAAC;IACH;IAEA,IAAI,CAACL,IAAI,GAAGE,YAAY,CAACF,IAAI;EAC/B;EAEAM,oBAAoBA,CAAA,EAAG;IACrB,MAAM,IAAIC,KAAK,CACb,8EACF,CAAC;EACH;EAEAC,YAAYA,CAAA,EAAG;IACb,MAAM,IAAID,KAAK,CACb,sEACF,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"file":"condition-value-abstract.js","names":["ConditionValueAbstract","toPresentationString","Error","toExpression","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 toExpression(): 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,YAAYA,CAAA,EAAW;IACrB,MAAM,IAAID,KAAK,CACb,qEACF,CAAC;EACH;EAEAE,KAAKA,CAAA,EAAG;IACN,MAAM,IAAIF,KAAK,CACb,8DACF,CAAC;EACH;AACF","ignoreList":[]}
@@ -1,18 +1,19 @@
1
1
  import { ConditionValueAbstract } from "./condition-value-abstract.js";
2
- import { Registration } from "./condition-value-registration.js";
3
2
  export class ConditionValue extends ConditionValueAbstract {
3
+ type;
4
4
  value;
5
5
  display;
6
6
  constructor(value, display) {
7
- super(valueType);
8
7
  if (!value || typeof value !== 'string') {
9
- throw Error(`value ${value} is not valid`);
8
+ throw new Error("ConditionValue param 'value' must be a string");
10
9
  }
11
10
  if (display && typeof display !== 'string') {
12
- throw Error(`display ${display} is not valid`);
11
+ throw new Error("ConditionValue param 'display' must be a string");
13
12
  }
13
+ super();
14
+ this.type = 'Value';
14
15
  this.value = value;
15
- this.display = display || value;
16
+ this.display = display ?? value;
16
17
  }
17
18
  toPresentationString() {
18
19
  return this.display;
@@ -27,7 +28,6 @@ export class ConditionValue extends ConditionValueAbstract {
27
28
  return ConditionValue.from(this);
28
29
  }
29
30
  }
30
- const valueType = Registration.register('Value', obj => ConditionValue.from(obj));
31
31
  export let DateDirections = /*#__PURE__*/function (DateDirections) {
32
32
  DateDirections["FUTURE"] = "in the future";
33
33
  DateDirections["PAST"] = "in the past";
@@ -63,21 +63,23 @@ export const timeUnits = {
63
63
  };
64
64
  export const dateTimeUnits = Object.assign({}, dateUnits, timeUnits);
65
65
  export class RelativeTimeValue extends ConditionValueAbstract {
66
+ type;
66
67
  timePeriod;
67
68
  timeUnit;
68
69
  direction;
69
70
  timeOnly;
70
71
  constructor(timePeriod, timeUnit, direction, timeOnly = false) {
71
- super(relativeTimeValueType);
72
72
  if (typeof timePeriod !== 'string') {
73
- throw Error(`time period ${timePeriod} is not valid`);
73
+ throw new Error("RelativeTimeValue param 'timePeriod' must be a string");
74
74
  }
75
75
  if (!Object.values(dateTimeUnits).map(unit => unit.value).includes(timeUnit)) {
76
- throw Error(`time unit ${timeUnit} is not valid`);
76
+ throw new Error("RelativeTimeValue param 'dateTimeUnits' must only include DateTimeUnitValues keys");
77
77
  }
78
78
  if (!Object.values(DateDirections).includes(direction)) {
79
- throw Error(`direction ${direction} is not valid`);
79
+ throw new Error("RelativeTimeValue param 'direction' must be from enum DateDirections");
80
80
  }
81
+ super();
82
+ this.type = 'RelativeTime';
81
83
  this.timePeriod = timePeriod;
82
84
  this.timeUnit = timeUnit;
83
85
  this.direction = direction;
@@ -97,8 +99,12 @@ export class RelativeTimeValue extends ConditionValueAbstract {
97
99
  return RelativeTimeValue.from(this);
98
100
  }
99
101
  }
100
- export const relativeTimeValueType = Registration.register('RelativeTime', obj => RelativeTimeValue.from(obj));
101
102
  export function conditionValueFrom(obj) {
102
- return Registration.conditionValueFrom(obj);
103
+ switch (obj.type) {
104
+ case 'Value':
105
+ return ConditionValue.from(obj);
106
+ case 'RelativeTime':
107
+ return RelativeTimeValue.from(obj);
108
+ }
103
109
  }
104
110
  //# sourceMappingURL=condition-values.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition-values.js","names":["ConditionValueAbstract","Registration","ConditionValue","value","display","constructor","valueType","Error","toPresentationString","toExpression","from","obj","clone","register","DateDirections","dateUnits","YEARS","MONTHS","DAYS","timeUnits","HOURS","MINUTES","SECONDS","dateTimeUnits","Object","assign","RelativeTimeValue","timePeriod","timeUnit","direction","timeOnly","relativeTimeValueType","values","map","unit","includes","PAST","Number","conditionValueFrom"],"sources":["../../../src/conditions/condition-values.ts"],"sourcesContent":["import { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract.js'\nimport { Registration } from '~/src/conditions/condition-value-registration.js'\nimport {\n type DateTimeUnitValues,\n type DateUnits,\n type TimeUnits\n} from '~/src/conditions/types.js'\n\nexport class ConditionValue extends ConditionValueAbstract {\n value: string\n display: string\n\n constructor(value: string, display?: string) {\n super(valueType)\n\n if (!value || typeof value !== 'string') {\n throw Error(`value ${value} is not valid`)\n }\n\n if (display && typeof display !== 'string') {\n throw Error(`display ${display} is not valid`)\n }\n\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: { value: string; display?: string }) {\n return new ConditionValue(obj.value, obj.display)\n }\n\n clone() {\n return ConditionValue.from(this)\n }\n}\n\nconst valueType = Registration.register('Value', (obj) =>\n ConditionValue.from(obj)\n)\n\nexport enum DateDirections {\n FUTURE = 'in the future',\n PAST = 'in the past'\n}\n\nexport const dateUnits: DateUnits = {\n YEARS: { display: 'year(s)', value: 'years' },\n MONTHS: { display: 'month(s)', value: 'months' },\n DAYS: { display: 'day(s)', value: 'days' }\n}\n\nexport const timeUnits: TimeUnits = {\n HOURS: { display: 'hour(s)', value: 'hours' },\n MINUTES: { display: 'minute(s)', value: 'minutes' },\n SECONDS: { display: 'second(s)', value: 'seconds' }\n}\n\nexport const dateTimeUnits: DateUnits & TimeUnits = Object.assign(\n {},\n dateUnits,\n timeUnits\n)\n\nexport class RelativeTimeValue extends ConditionValueAbstract {\n timePeriod: string\n timeUnit: DateTimeUnitValues\n direction: DateDirections\n timeOnly: boolean\n\n constructor(\n timePeriod: string,\n timeUnit: DateTimeUnitValues,\n direction: DateDirections,\n timeOnly = false\n ) {\n super(relativeTimeValueType)\n\n if (typeof timePeriod !== 'string') {\n throw Error(`time period ${timePeriod} is not valid`)\n }\n\n if (\n !Object.values(dateTimeUnits)\n .map((unit) => unit.value)\n .includes(timeUnit)\n ) {\n throw Error(`time unit ${timeUnit} is not valid`)\n }\n\n if (!Object.values(DateDirections).includes(direction)) {\n throw Error(`direction ${direction} is not valid`)\n }\n\n this.timePeriod = timePeriod\n this.timeUnit = timeUnit\n this.direction = direction\n this.timeOnly = timeOnly\n }\n\n toPresentationString() {\n return `${this.timePeriod} ${this.timeUnit} ${this.direction}`\n }\n\n toExpression(): string {\n const timePeriod =\n this.direction === DateDirections.PAST\n ? 0 - Number(this.timePeriod)\n : this.timePeriod\n return this.timeOnly\n ? `timeForComparison(${timePeriod}, '${this.timeUnit}')`\n : `dateForComparison(${timePeriod}, '${this.timeUnit}')`\n }\n\n static from(obj) {\n return new RelativeTimeValue(\n obj.timePeriod,\n obj.timeUnit,\n obj.direction,\n obj.timeOnly\n )\n }\n\n clone() {\n return RelativeTimeValue.from(this)\n }\n}\n\nexport const relativeTimeValueType = Registration.register(\n 'RelativeTime',\n (obj): RelativeTimeValue => RelativeTimeValue.from(obj)\n)\n\ntype ConditionValueFrom =\n | Pick<ConditionValue, 'type' | 'value' | 'display'>\n | Pick<\n RelativeTimeValue,\n 'type' | 'timePeriod' | 'timeUnit' | 'direction' | 'timeOnly'\n >\n\nexport function conditionValueFrom(obj: ConditionValueFrom) {\n return Registration.conditionValueFrom(obj)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"condition-values.js","names":["ConditionValueAbstract","ConditionValue","type","value","display","constructor","Error","toPresentationString","toExpression","from","obj","clone","DateDirections","dateUnits","YEARS","MONTHS","DAYS","timeUnits","HOURS","MINUTES","SECONDS","dateTimeUnits","Object","assign","RelativeTimeValue","timePeriod","timeUnit","direction","timeOnly","values","map","unit","includes","PAST","Number","conditionValueFrom"],"sources":["../../../src/conditions/condition-values.ts"],"sourcesContent":["import { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract.js'\nimport {\n type DateTimeUnitValues,\n type DateUnits,\n type TimeUnits\n} from '~/src/conditions/types.js'\n\nexport class ConditionValue\n extends ConditionValueAbstract\n implements ConditionValueFrom\n{\n type: 'Value'\n value: string\n display: string\n\n constructor(value: string, display?: string) {\n if (!value || typeof value !== 'string') {\n throw new Error(\"ConditionValue param 'value' must be a string\")\n }\n\n if (display && typeof display !== 'string') {\n throw new Error(\"ConditionValue param 'display' must be a string\")\n }\n\n super()\n\n this.type = 'Value'\n this.value = value\n this.display = display ?? value\n }\n\n toPresentationString() {\n return this.display\n }\n\n toExpression() {\n return this.value\n }\n\n static from(obj: ConditionValue | ConditionValueFrom) {\n return new ConditionValue(obj.value, obj.display)\n }\n\n clone() {\n return ConditionValue.from(this)\n }\n}\n\nexport interface ConditionValueFrom {\n value: string\n display?: string\n}\n\nexport enum DateDirections {\n FUTURE = 'in the future',\n PAST = 'in the past'\n}\n\nexport const dateUnits: DateUnits = {\n YEARS: { display: 'year(s)', value: 'years' },\n MONTHS: { display: 'month(s)', value: 'months' },\n DAYS: { display: 'day(s)', value: 'days' }\n}\n\nexport const timeUnits: TimeUnits = {\n HOURS: { display: 'hour(s)', value: 'hours' },\n MINUTES: { display: 'minute(s)', value: 'minutes' },\n SECONDS: { display: 'second(s)', value: 'seconds' }\n}\n\nexport const dateTimeUnits: DateUnits & TimeUnits = Object.assign(\n {},\n dateUnits,\n timeUnits\n)\n\nexport class RelativeTimeValue\n extends ConditionValueAbstract\n implements RelativeTimeValueFrom\n{\n type: 'RelativeTime'\n timePeriod: string\n timeUnit: DateTimeUnitValues\n direction: DateDirections\n timeOnly: boolean\n\n constructor(\n timePeriod: string,\n timeUnit: DateTimeUnitValues,\n direction: DateDirections,\n timeOnly = false\n ) {\n if (typeof timePeriod !== 'string') {\n throw new Error(\"RelativeTimeValue param 'timePeriod' must be a string\")\n }\n\n if (\n !Object.values(dateTimeUnits)\n .map((unit) => unit.value)\n .includes(timeUnit)\n ) {\n throw new Error(\n \"RelativeTimeValue param 'dateTimeUnits' must only include DateTimeUnitValues keys\"\n )\n }\n\n if (!Object.values(DateDirections).includes(direction)) {\n throw new Error(\n \"RelativeTimeValue param 'direction' must be from enum DateDirections\"\n )\n }\n\n super()\n\n this.type = 'RelativeTime'\n this.timePeriod = timePeriod\n this.timeUnit = timeUnit\n this.direction = direction\n this.timeOnly = timeOnly\n }\n\n toPresentationString() {\n return `${this.timePeriod} ${this.timeUnit} ${this.direction}`\n }\n\n toExpression(): string {\n const timePeriod =\n this.direction === DateDirections.PAST\n ? 0 - Number(this.timePeriod)\n : this.timePeriod\n return this.timeOnly\n ? `timeForComparison(${timePeriod}, '${this.timeUnit}')`\n : `dateForComparison(${timePeriod}, '${this.timeUnit}')`\n }\n\n static from(obj: RelativeTimeValue | RelativeTimeValueFrom) {\n return new RelativeTimeValue(\n obj.timePeriod,\n obj.timeUnit,\n obj.direction,\n obj.timeOnly\n )\n }\n\n clone() {\n return RelativeTimeValue.from(this)\n }\n}\n\nexport interface RelativeTimeValueFrom {\n timePeriod: string\n timeUnit: DateTimeUnitValues\n direction: DateDirections\n timeOnly: boolean\n}\n\nexport function conditionValueFrom(\n obj:\n | ConditionValue\n | RelativeTimeValue\n | ({ type: 'Value' } & ConditionValueFrom)\n | ({ type: 'RelativeTime' } & RelativeTimeValueFrom)\n) {\n switch (obj.type) {\n case 'Value':\n return ConditionValue.from(obj)\n\n case 'RelativeTime':\n return RelativeTimeValue.from(obj)\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -7,16 +7,16 @@ export class Condition extends ConditionAbstract {
7
7
  operator;
8
8
  value;
9
9
  constructor(field, operator, value, coordinator) {
10
- super(coordinator);
11
10
  if (!(field instanceof ConditionField)) {
12
- throw Error(`field ${field} is not a valid ConditionField object`);
11
+ throw new Error("Condition param 'field' must be ConditionField instance");
13
12
  }
14
13
  if (typeof operator !== 'string') {
15
- throw Error(`operator ${operator} is not a valid operator`);
14
+ throw new Error("Condition param 'operator' must be a string");
16
15
  }
17
16
  if (!(value instanceof ConditionValueAbstract)) {
18
- throw Error(`value ${value} is not a valid value type`);
17
+ throw new Error("Condition param 'field' must be ConditionValueAbstract instance");
19
18
  }
19
+ super(coordinator);
20
20
  this.field = field;
21
21
  this.operator = operator;
22
22
  this.value = value;
@@ -1 +1 @@
1
- {"version":3,"file":"condition.js","names":["ConditionAbstract","ConditionField","getExpression","ConditionValueAbstract","Condition","field","operator","value","constructor","coordinator","Error","asFirstCondition","_asFirstCondition","conditionString","display","toPresentationString","conditionExpression","type","name","clone","from"],"sources":["../../../src/conditions/condition.ts"],"sourcesContent":["import { ConditionAbstract } from '~/src/conditions/condition-abstract.js'\nimport { ConditionField } from '~/src/conditions/condition-field.js'\nimport { getExpression } from '~/src/conditions/condition-operators.js'\nimport { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract.js'\nimport {\n type ConditionValue,\n type RelativeTimeValue\n} from '~/src/conditions/condition-values.js'\nimport { type Coordinator } from '~/src/conditions/enums.js'\n\nexport class Condition extends ConditionAbstract {\n field: ConditionField\n operator: string\n value: ConditionValue | RelativeTimeValue\n\n constructor(\n field: ConditionField,\n operator: string,\n value: ConditionValue | RelativeTimeValue,\n coordinator?: Coordinator\n ) {\n super(coordinator)\n\n if (!(field instanceof ConditionField)) {\n throw Error(`field ${field} is not a valid ConditionField object`)\n }\n if (typeof operator !== 'string') {\n throw Error(`operator ${operator} is not a valid operator`)\n }\n if (!(value instanceof ConditionValueAbstract)) {\n throw Error(`value ${value} is not a valid value type`)\n }\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,KAAqB,EACrBC,QAAgB,EAChBC,KAAyC,EACzCE,WAAyB,EACzB;IACA,KAAK,CAACA,WAAW,CAAC;IAElB,IAAI,EAAEJ,KAAK,YAAYJ,cAAc,CAAC,EAAE;MACtC,MAAMS,KAAK,CAAC,SAASL,KAAK,uCAAuC,CAAC;IACpE;IACA,IAAI,OAAOC,QAAQ,KAAK,QAAQ,EAAE;MAChC,MAAMI,KAAK,CAAC,YAAYJ,QAAQ,0BAA0B,CAAC;IAC7D;IACA,IAAI,EAAEC,KAAK,YAAYJ,sBAAsB,CAAC,EAAE;MAC9C,MAAMO,KAAK,CAAC,SAASH,KAAK,4BAA4B,CAAC;IACzD;IAEA,IAAI,CAACF,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
+ {"version":3,"file":"condition.js","names":["ConditionAbstract","ConditionField","getExpression","ConditionValueAbstract","Condition","field","operator","value","constructor","coordinator","Error","asFirstCondition","_asFirstCondition","conditionString","display","toPresentationString","conditionExpression","type","name","clone","from"],"sources":["../../../src/conditions/condition.ts"],"sourcesContent":["import { ConditionAbstract } from '~/src/conditions/condition-abstract.js'\nimport { ConditionField } from '~/src/conditions/condition-field.js'\nimport { getExpression } from '~/src/conditions/condition-operators.js'\nimport { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract.js'\nimport {\n type ConditionValue,\n type RelativeTimeValue\n} from '~/src/conditions/condition-values.js'\nimport { type Coordinator } from '~/src/conditions/enums.js'\n\nexport class Condition extends ConditionAbstract {\n field: ConditionField\n operator: string\n value: ConditionValue | RelativeTimeValue\n\n constructor(\n field?: ConditionField,\n operator?: string,\n value?: ConditionValue | RelativeTimeValue,\n coordinator?: Coordinator\n ) {\n if (!(field instanceof ConditionField)) {\n throw new Error(\"Condition param 'field' must be ConditionField instance\")\n }\n if (typeof operator !== 'string') {\n throw new Error(\"Condition param 'operator' must be a string\")\n }\n if (!(value instanceof ConditionValueAbstract)) {\n throw new Error(\n \"Condition param 'field' must be ConditionValueAbstract instance\"\n )\n }\n\n super(coordinator)\n\n this.field = field\n this.operator = operator\n this.value = value\n }\n\n asFirstCondition() {\n this._asFirstCondition()\n return this\n }\n\n conditionString() {\n return `'${this.field.display}' ${\n this.operator\n } '${this.value.toPresentationString()}'`\n }\n\n conditionExpression() {\n return getExpression(\n this.field.type,\n this.field.name,\n this.operator,\n this.value\n )\n }\n\n clone() {\n return new Condition(\n ConditionField.from(this.field),\n this.operator,\n this.value.clone(),\n this.coordinator\n )\n }\n}\n"],"mappings":"AAAA,SAASA,iBAAiB;AAC1B,SAASC,cAAc;AACvB,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAO/B,OAAO,MAAMC,SAAS,SAASJ,iBAAiB,CAAC;EAC/CK,KAAK;EACLC,QAAQ;EACRC,KAAK;EAELC,WAAWA,CACTH,KAAsB,EACtBC,QAAiB,EACjBC,KAA0C,EAC1CE,WAAyB,EACzB;IACA,IAAI,EAAEJ,KAAK,YAAYJ,cAAc,CAAC,EAAE;MACtC,MAAM,IAAIS,KAAK,CAAC,yDAAyD,CAAC;IAC5E;IACA,IAAI,OAAOJ,QAAQ,KAAK,QAAQ,EAAE;MAChC,MAAM,IAAII,KAAK,CAAC,6CAA6C,CAAC;IAChE;IACA,IAAI,EAAEH,KAAK,YAAYJ,sBAAsB,CAAC,EAAE;MAC9C,MAAM,IAAIO,KAAK,CACb,iEACF,CAAC;IACH;IAEA,KAAK,CAACD,WAAW,CAAC;IAElB,IAAI,CAACJ,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,KAAK,GAAGA,KAAK;EACpB;EAEAI,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACC,iBAAiB,CAAC,CAAC;IACxB,OAAO,IAAI;EACb;EAEAC,eAAeA,CAAA,EAAG;IAChB,OAAO,IAAI,IAAI,CAACR,KAAK,CAACS,OAAO,KAC3B,IAAI,CAACR,QAAQ,KACV,IAAI,CAACC,KAAK,CAACQ,oBAAoB,CAAC,CAAC,GAAG;EAC3C;EAEAC,mBAAmBA,CAAA,EAAG;IACpB,OAAOd,aAAa,CAClB,IAAI,CAACG,KAAK,CAACY,IAAI,EACf,IAAI,CAACZ,KAAK,CAACa,IAAI,EACf,IAAI,CAACZ,QAAQ,EACb,IAAI,CAACC,KACP,CAAC;EACH;EAEAY,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIf,SAAS,CAClBH,cAAc,CAACmB,IAAI,CAAC,IAAI,CAACf,KAAK,CAAC,EAC/B,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,KAAK,CAACY,KAAK,CAAC,CAAC,EAClB,IAAI,CAACV,WACP,CAAC;EACH;AACF","ignoreList":[]}
@@ -1 +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,EAAE,WAAW,GAAG,SAAS;IAgBtC,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;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,EAAE,WAAW,GAAG,SAAS;IAkBtC,gBAAgB;IAKhB,eAAe;IAIf,mBAAmB;IAInB,KAAK;CAON"}
@@ -1,8 +1,6 @@
1
- import { Registration } from '../conditions/condition-value-registration.js';
2
1
  export declare class ConditionValueAbstract {
3
- type: string;
4
- constructor(registration: Registration);
5
- toPresentationString(): void;
6
- toExpression(): void;
2
+ toPresentationString(): string;
3
+ toExpression(): string;
4
+ clone(): void;
7
5
  }
8
6
  //# sourceMappingURL=condition-value-abstract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition-value-abstract.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-value-abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kDAAkD,CAAA;AAE/E,qBAAa,sBAAsB;IACjC,IAAI,EAAE,MAAM,CAAA;gBAEA,YAAY,EAAE,YAAY;IActC,oBAAoB;IAMpB,YAAY;CAKb"}
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,YAAY,IAAI,MAAM;IAMtB,KAAK;CAKN"}
@@ -1,18 +1,19 @@
1
1
  import { ConditionValueAbstract } from '../conditions/condition-value-abstract.js';
2
- import { Registration } from '../conditions/condition-value-registration.js';
3
2
  import { type DateTimeUnitValues, type DateUnits, type TimeUnits } from '../conditions/types.js';
4
- export declare class ConditionValue extends ConditionValueAbstract {
3
+ export declare class ConditionValue extends ConditionValueAbstract implements ConditionValueFrom {
4
+ type: 'Value';
5
5
  value: string;
6
6
  display: string;
7
7
  constructor(value: string, display?: string);
8
8
  toPresentationString(): string;
9
9
  toExpression(): string;
10
- static from(obj: {
11
- value: string;
12
- display?: string;
13
- }): ConditionValue;
10
+ static from(obj: ConditionValue | ConditionValueFrom): ConditionValue;
14
11
  clone(): ConditionValue;
15
12
  }
13
+ export interface ConditionValueFrom {
14
+ value: string;
15
+ display?: string;
16
+ }
16
17
  export declare enum DateDirections {
17
18
  FUTURE = "in the future",
18
19
  PAST = "in the past"
@@ -20,7 +21,8 @@ export declare enum DateDirections {
20
21
  export declare const dateUnits: DateUnits;
21
22
  export declare const timeUnits: TimeUnits;
22
23
  export declare const dateTimeUnits: DateUnits & TimeUnits;
23
- export declare class RelativeTimeValue extends ConditionValueAbstract {
24
+ export declare class RelativeTimeValue extends ConditionValueAbstract implements RelativeTimeValueFrom {
25
+ type: 'RelativeTime';
24
26
  timePeriod: string;
25
27
  timeUnit: DateTimeUnitValues;
26
28
  direction: DateDirections;
@@ -28,11 +30,18 @@ export declare class RelativeTimeValue extends ConditionValueAbstract {
28
30
  constructor(timePeriod: string, timeUnit: DateTimeUnitValues, direction: DateDirections, timeOnly?: boolean);
29
31
  toPresentationString(): string;
30
32
  toExpression(): string;
31
- static from(obj: any): RelativeTimeValue;
33
+ static from(obj: RelativeTimeValue | RelativeTimeValueFrom): RelativeTimeValue;
32
34
  clone(): RelativeTimeValue;
33
35
  }
34
- export declare const relativeTimeValueType: Registration;
35
- type ConditionValueFrom = Pick<ConditionValue, 'type' | 'value' | 'display'> | Pick<RelativeTimeValue, 'type' | 'timePeriod' | 'timeUnit' | 'direction' | 'timeOnly'>;
36
- export declare function conditionValueFrom(obj: ConditionValueFrom): any;
37
- export {};
36
+ export interface RelativeTimeValueFrom {
37
+ timePeriod: string;
38
+ timeUnit: DateTimeUnitValues;
39
+ direction: DateDirections;
40
+ timeOnly: boolean;
41
+ }
42
+ export declare function conditionValueFrom(obj: ConditionValue | RelativeTimeValue | ({
43
+ type: 'Value';
44
+ } & ConditionValueFrom) | ({
45
+ type: 'RelativeTime';
46
+ } & RelativeTimeValueFrom)): ConditionValue | RelativeTimeValue;
38
47
  //# 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,YAAY,EAAE,MAAM,kDAAkD,CAAA;AAC/E,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,2BAA2B,CAAA;AAElC,qBAAa,cAAe,SAAQ,sBAAsB;IACxD,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;gBAEH,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAe3C,oBAAoB;IAIpB,YAAY;IAIZ,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAIpD,KAAK;CAGN;AAMD,oBAAY,cAAc;IACxB,MAAM,kBAAkB;IACxB,IAAI,gBAAgB;CACrB;AAED,eAAO,MAAM,SAAS,EAAE,SAIvB,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,SAIvB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,GAAG,SAIvC,CAAA;AAED,qBAAa,iBAAkB,SAAQ,sBAAsB;IAC3D,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,SAAS,EAAE,cAAc,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;gBAGf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,cAAc,EACzB,QAAQ,UAAQ;IA0BlB,oBAAoB;IAIpB,YAAY,IAAI,MAAM;IAUtB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAA;IASf,KAAK;CAGN;AAED,eAAO,MAAM,qBAAqB,cAGjC,CAAA;AAED,KAAK,kBAAkB,GACnB,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAClD,IAAI,CACF,iBAAiB,EACjB,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAC9D,CAAA;AAEL,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,kBAAkB,OAEzD"}
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,EACL,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,2BAA2B,CAAA;AAElC,qBAAa,cACX,SAAQ,sBACR,YAAW,kBAAkB;IAE7B,IAAI,EAAE,OAAO,CAAA;IACb,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,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,oBAAY,cAAc;IACxB,MAAM,kBAAkB;IACxB,IAAI,gBAAgB;CACrB;AAED,eAAO,MAAM,SAAS,EAAE,SAIvB,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,SAIvB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,GAAG,SAIvC,CAAA;AAED,qBAAa,iBACX,SAAQ,sBACR,YAAW,qBAAqB;IAEhC,IAAI,EAAE,cAAc,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,SAAS,EAAE,cAAc,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;gBAGf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,cAAc,EACzB,QAAQ,UAAQ;IA+BlB,oBAAoB;IAIpB,YAAY,IAAI,MAAM;IAUtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,qBAAqB;IAS1D,KAAK;CAGN;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,SAAS,EAAE,cAAc,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EACC,cAAc,GACd,iBAAiB,GACjB,CAAC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,kBAAkB,CAAC,GACxC,CAAC;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GAAG,qBAAqB,CAAC,sCASvD"}
@@ -6,7 +6,7 @@ export declare class Condition extends ConditionAbstract {
6
6
  field: ConditionField;
7
7
  operator: string;
8
8
  value: ConditionValue | RelativeTimeValue;
9
- constructor(field: ConditionField, operator: string, value: ConditionValue | RelativeTimeValue, coordinator?: Coordinator);
9
+ constructor(field?: ConditionField, operator?: string, value?: ConditionValue | RelativeTimeValue, coordinator?: Coordinator);
10
10
  asFirstCondition(): this;
11
11
  conditionString(): string;
12
12
  conditionExpression(): any;
@@ -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,MAAM,2BAA2B,CAAA;AAE5D,qBAAa,SAAU,SAAQ,iBAAiB;IAC9C,KAAK,EAAE,cAAc,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,cAAc,GAAG,iBAAiB,CAAA;gBAGvC,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,GAAG,iBAAiB,EACzC,WAAW,CAAC,EAAE,WAAW;IAmB3B,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,EACL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE5D,qBAAa,SAAU,SAAQ,iBAAiB;IAC9C,KAAK,EAAE,cAAc,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,cAAc,GAAG,iBAAiB,CAAA;gBAGvC,KAAK,CAAC,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,cAAc,GAAG,iBAAiB,EAC1C,WAAW,CAAC,EAAE,WAAW;IAqB3B,gBAAgB;IAKhB,eAAe;IAMf,mBAAmB;IASnB,KAAK;CAQN"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/forms-model",
3
- "version": "3.0.169",
3
+ "version": "3.0.171",
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": {
@@ -15,7 +15,7 @@
15
15
  "types": "dist/types/index.d.ts",
16
16
  "scripts": {
17
17
  "build": "npm run build:types && npm run build:node",
18
- "build:node": "BABEL_ENV=node babel --delete-dir-on-start --extensions \".ts\" --ignore \"**/*.test.*\" --copy-files --no-copy-ignored --source-maps --out-dir ./dist/module ./src",
18
+ "build:node": "babel --delete-dir-on-start --extensions \".ts\" --ignore \"**/*.test.*\" --copy-files --no-copy-ignored --source-maps --out-dir ./dist/module ./src",
19
19
  "build:types": "tsc --build --force tsconfig.build.json && tsc-alias --project tsconfig.build.json",
20
20
  "test": "jest --color --coverage --verbose",
21
21
  "test:watch": "jest --color --watch"
@@ -13,11 +13,13 @@ export class ConditionRef extends ConditionAbstract {
13
13
  super(coordinator)
14
14
 
15
15
  if (typeof conditionName !== 'string') {
16
- throw Error(`condition name ${conditionName} is not valid`)
16
+ throw new Error("ConditionRef param 'conditionName' must be a string")
17
17
  }
18
18
 
19
19
  if (typeof conditionDisplayName !== 'string') {
20
- throw Error(`condition display name ${conditionDisplayName} is not valid`)
20
+ throw new Error(
21
+ "ConditionRef param 'conditionDisplayName' must be a string"
22
+ )
21
23
  }
22
24
 
23
25
  this.conditionName = conditionName
@@ -1,31 +1,19 @@
1
- import { Registration } from '~/src/conditions/condition-value-registration.js'
2
-
3
1
  export class ConditionValueAbstract {
4
- type: string
5
-
6
- constructor(registration: Registration) {
7
- if (new.target === ConditionValueAbstract) {
8
- throw new TypeError('Cannot construct ConditionValue instances directly')
9
- }
10
-
11
- if (!(registration instanceof Registration)) {
12
- throw new TypeError(
13
- 'You must register your value type! Call registerValueType!'
14
- )
15
- }
16
-
17
- this.type = registration.type
2
+ toPresentationString(): string {
3
+ throw new Error(
4
+ 'Unsupported Operation. Method toPresentationString has not been implemented'
5
+ )
18
6
  }
19
7
 
20
- toPresentationString() {
8
+ toExpression(): string {
21
9
  throw new Error(
22
- 'Unsupported Operation. Method toPresentationString have not been implemented'
10
+ 'Unsupported Operation. Method toExpression has not been implemented'
23
11
  )
24
12
  }
25
13
 
26
- toExpression() {
14
+ clone() {
27
15
  throw new Error(
28
- 'Unsupported Operation. Method toExpression have not been implemented'
16
+ 'Unsupported Operation. Method clone has not been implemented'
29
17
  )
30
18
  }
31
19
  }
@@ -1,28 +1,32 @@
1
1
  import { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract.js'
2
- import { Registration } from '~/src/conditions/condition-value-registration.js'
3
2
  import {
4
3
  type DateTimeUnitValues,
5
4
  type DateUnits,
6
5
  type TimeUnits
7
6
  } from '~/src/conditions/types.js'
8
7
 
9
- export class ConditionValue extends ConditionValueAbstract {
8
+ export class ConditionValue
9
+ extends ConditionValueAbstract
10
+ implements ConditionValueFrom
11
+ {
12
+ type: 'Value'
10
13
  value: string
11
14
  display: string
12
15
 
13
16
  constructor(value: string, display?: string) {
14
- super(valueType)
15
-
16
17
  if (!value || typeof value !== 'string') {
17
- throw Error(`value ${value} is not valid`)
18
+ throw new Error("ConditionValue param 'value' must be a string")
18
19
  }
19
20
 
20
21
  if (display && typeof display !== 'string') {
21
- throw Error(`display ${display} is not valid`)
22
+ throw new Error("ConditionValue param 'display' must be a string")
22
23
  }
23
24
 
25
+ super()
26
+
27
+ this.type = 'Value'
24
28
  this.value = value
25
- this.display = display || value
29
+ this.display = display ?? value
26
30
  }
27
31
 
28
32
  toPresentationString() {
@@ -33,7 +37,7 @@ export class ConditionValue extends ConditionValueAbstract {
33
37
  return this.value
34
38
  }
35
39
 
36
- static from(obj: { value: string; display?: string }) {
40
+ static from(obj: ConditionValue | ConditionValueFrom) {
37
41
  return new ConditionValue(obj.value, obj.display)
38
42
  }
39
43
 
@@ -42,9 +46,10 @@ export class ConditionValue extends ConditionValueAbstract {
42
46
  }
43
47
  }
44
48
 
45
- const valueType = Registration.register('Value', (obj) =>
46
- ConditionValue.from(obj)
47
- )
49
+ export interface ConditionValueFrom {
50
+ value: string
51
+ display?: string
52
+ }
48
53
 
49
54
  export enum DateDirections {
50
55
  FUTURE = 'in the future',
@@ -69,7 +74,11 @@ export const dateTimeUnits: DateUnits & TimeUnits = Object.assign(
69
74
  timeUnits
70
75
  )
71
76
 
72
- export class RelativeTimeValue extends ConditionValueAbstract {
77
+ export class RelativeTimeValue
78
+ extends ConditionValueAbstract
79
+ implements RelativeTimeValueFrom
80
+ {
81
+ type: 'RelativeTime'
73
82
  timePeriod: string
74
83
  timeUnit: DateTimeUnitValues
75
84
  direction: DateDirections
@@ -81,10 +90,8 @@ export class RelativeTimeValue extends ConditionValueAbstract {
81
90
  direction: DateDirections,
82
91
  timeOnly = false
83
92
  ) {
84
- super(relativeTimeValueType)
85
-
86
93
  if (typeof timePeriod !== 'string') {
87
- throw Error(`time period ${timePeriod} is not valid`)
94
+ throw new Error("RelativeTimeValue param 'timePeriod' must be a string")
88
95
  }
89
96
 
90
97
  if (
@@ -92,13 +99,20 @@ export class RelativeTimeValue extends ConditionValueAbstract {
92
99
  .map((unit) => unit.value)
93
100
  .includes(timeUnit)
94
101
  ) {
95
- throw Error(`time unit ${timeUnit} is not valid`)
102
+ throw new Error(
103
+ "RelativeTimeValue param 'dateTimeUnits' must only include DateTimeUnitValues keys"
104
+ )
96
105
  }
97
106
 
98
107
  if (!Object.values(DateDirections).includes(direction)) {
99
- throw Error(`direction ${direction} is not valid`)
108
+ throw new Error(
109
+ "RelativeTimeValue param 'direction' must be from enum DateDirections"
110
+ )
100
111
  }
101
112
 
113
+ super()
114
+
115
+ this.type = 'RelativeTime'
102
116
  this.timePeriod = timePeriod
103
117
  this.timeUnit = timeUnit
104
118
  this.direction = direction
@@ -119,7 +133,7 @@ export class RelativeTimeValue extends ConditionValueAbstract {
119
133
  : `dateForComparison(${timePeriod}, '${this.timeUnit}')`
120
134
  }
121
135
 
122
- static from(obj) {
136
+ static from(obj: RelativeTimeValue | RelativeTimeValueFrom) {
123
137
  return new RelativeTimeValue(
124
138
  obj.timePeriod,
125
139
  obj.timeUnit,
@@ -133,18 +147,25 @@ export class RelativeTimeValue extends ConditionValueAbstract {
133
147
  }
134
148
  }
135
149
 
136
- export const relativeTimeValueType = Registration.register(
137
- 'RelativeTime',
138
- (obj): RelativeTimeValue => RelativeTimeValue.from(obj)
139
- )
140
-
141
- type ConditionValueFrom =
142
- | Pick<ConditionValue, 'type' | 'value' | 'display'>
143
- | Pick<
144
- RelativeTimeValue,
145
- 'type' | 'timePeriod' | 'timeUnit' | 'direction' | 'timeOnly'
146
- >
150
+ export interface RelativeTimeValueFrom {
151
+ timePeriod: string
152
+ timeUnit: DateTimeUnitValues
153
+ direction: DateDirections
154
+ timeOnly: boolean
155
+ }
147
156
 
148
- export function conditionValueFrom(obj: ConditionValueFrom) {
149
- return Registration.conditionValueFrom(obj)
157
+ export function conditionValueFrom(
158
+ obj:
159
+ | ConditionValue
160
+ | RelativeTimeValue
161
+ | ({ type: 'Value' } & ConditionValueFrom)
162
+ | ({ type: 'RelativeTime' } & RelativeTimeValueFrom)
163
+ ) {
164
+ switch (obj.type) {
165
+ case 'Value':
166
+ return ConditionValue.from(obj)
167
+
168
+ case 'RelativeTime':
169
+ return RelativeTimeValue.from(obj)
170
+ }
150
171
  }
@@ -14,23 +14,25 @@ export class Condition extends ConditionAbstract {
14
14
  value: ConditionValue | RelativeTimeValue
15
15
 
16
16
  constructor(
17
- field: ConditionField,
18
- operator: string,
19
- value: ConditionValue | RelativeTimeValue,
17
+ field?: ConditionField,
18
+ operator?: string,
19
+ value?: ConditionValue | RelativeTimeValue,
20
20
  coordinator?: Coordinator
21
21
  ) {
22
- super(coordinator)
23
-
24
22
  if (!(field instanceof ConditionField)) {
25
- throw Error(`field ${field} is not a valid ConditionField object`)
23
+ throw new Error("Condition param 'field' must be ConditionField instance")
26
24
  }
27
25
  if (typeof operator !== 'string') {
28
- throw Error(`operator ${operator} is not a valid operator`)
26
+ throw new Error("Condition param 'operator' must be a string")
29
27
  }
30
28
  if (!(value instanceof ConditionValueAbstract)) {
31
- throw Error(`value ${value} is not a valid value type`)
29
+ throw new Error(
30
+ "Condition param 'field' must be ConditionValueAbstract instance"
31
+ )
32
32
  }
33
33
 
34
+ super(coordinator)
35
+
34
36
  this.field = field
35
37
  this.operator = operator
36
38
  this.value = value
@@ -1,15 +0,0 @@
1
- const conditionValueFactories = {};
2
- export class Registration {
3
- type;
4
- constructor(type, factory) {
5
- conditionValueFactories[type] = factory;
6
- this.type = type;
7
- }
8
- static register(type, factory) {
9
- return new Registration(type, factory);
10
- }
11
- static conditionValueFrom(obj) {
12
- return conditionValueFactories[obj.type](obj);
13
- }
14
- }
15
- //# sourceMappingURL=condition-value-registration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"condition-value-registration.js","names":["conditionValueFactories","Registration","type","constructor","factory","register","conditionValueFrom","obj"],"sources":["../../../src/conditions/condition-value-registration.ts"],"sourcesContent":["const conditionValueFactories = {}\n\nexport class Registration {\n type: string\n\n constructor(type: string, factory: (obj: any) => Registration) {\n conditionValueFactories[type] = factory\n this.type = type\n }\n\n static register(type: string, factory: (obj: any) => Registration) {\n return new Registration(type, factory)\n }\n\n static conditionValueFrom(obj: { type: string; [prop: string]: any }) {\n return conditionValueFactories[obj.type](obj)\n }\n}\n"],"mappings":"AAAA,MAAMA,uBAAuB,GAAG,CAAC,CAAC;AAElC,OAAO,MAAMC,YAAY,CAAC;EACxBC,IAAI;EAEJC,WAAWA,CAACD,IAAY,EAAEE,OAAmC,EAAE;IAC7DJ,uBAAuB,CAACE,IAAI,CAAC,GAAGE,OAAO;IACvC,IAAI,CAACF,IAAI,GAAGA,IAAI;EAClB;EAEA,OAAOG,QAAQA,CAACH,IAAY,EAAEE,OAAmC,EAAE;IACjE,OAAO,IAAIH,YAAY,CAACC,IAAI,EAAEE,OAAO,CAAC;EACxC;EAEA,OAAOE,kBAAkBA,CAACC,GAA0C,EAAE;IACpE,OAAOP,uBAAuB,CAACO,GAAG,CAACL,IAAI,CAAC,CAACK,GAAG,CAAC;EAC/C;AACF","ignoreList":[]}
@@ -1,10 +0,0 @@
1
- export declare class Registration {
2
- type: string;
3
- constructor(type: string, factory: (obj: any) => Registration);
4
- static register(type: string, factory: (obj: any) => Registration): Registration;
5
- static conditionValueFrom(obj: {
6
- type: string;
7
- [prop: string]: any;
8
- }): any;
9
- }
10
- //# sourceMappingURL=condition-value-registration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"condition-value-registration.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition-value-registration.ts"],"names":[],"mappings":"AAEA,qBAAa,YAAY;IACvB,IAAI,EAAE,MAAM,CAAA;gBAEA,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,YAAY;IAK7D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,YAAY;IAIjE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;CAGrE"}
@@ -1,18 +0,0 @@
1
- const conditionValueFactories = {}
2
-
3
- export class Registration {
4
- type: string
5
-
6
- constructor(type: string, factory: (obj: any) => Registration) {
7
- conditionValueFactories[type] = factory
8
- this.type = type
9
- }
10
-
11
- static register(type: string, factory: (obj: any) => Registration) {
12
- return new Registration(type, factory)
13
- }
14
-
15
- static conditionValueFrom(obj: { type: string; [prop: string]: any }) {
16
- return conditionValueFactories[obj.type](obj)
17
- }
18
- }