@defra/forms-model 3.0.10 → 3.0.12

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 (239) hide show
  1. package/dist/module/components/component-types.js +1 -5
  2. package/dist/module/components/component-types.js.map +1 -1
  3. package/dist/module/components/conditional-component-types.js +1 -5
  4. package/dist/module/components/conditional-component-types.js.map +1 -1
  5. package/dist/module/components/enums.js +1 -5
  6. package/dist/module/components/enums.js.map +1 -1
  7. package/dist/module/components/index.js +3 -24
  8. package/dist/module/components/index.js.map +1 -1
  9. package/dist/module/components/types.js +1 -1
  10. package/dist/module/conditions/condition-abstract.js +3 -8
  11. package/dist/module/conditions/condition-abstract.js.map +1 -1
  12. package/dist/module/conditions/condition-field.js +3 -8
  13. package/dist/module/conditions/condition-field.js.map +1 -1
  14. package/dist/module/conditions/condition-group-def.js +1 -6
  15. package/dist/module/conditions/condition-group-def.js.map +1 -1
  16. package/dist/module/conditions/condition-group.js +4 -9
  17. package/dist/module/conditions/condition-group.js.map +1 -1
  18. package/dist/module/conditions/condition-model.js +20 -25
  19. package/dist/module/conditions/condition-model.js.map +1 -1
  20. package/dist/module/conditions/condition-operators.js +15 -23
  21. package/dist/module/conditions/condition-operators.js.map +1 -1
  22. package/dist/module/conditions/condition-ref.js +2 -7
  23. package/dist/module/conditions/condition-ref.js.map +1 -1
  24. package/dist/module/conditions/condition-value-abstract.js +3 -8
  25. package/dist/module/conditions/condition-value-abstract.js.map +1 -1
  26. package/dist/module/conditions/condition-value-registration.js +1 -6
  27. package/dist/module/conditions/condition-value-registration.js.map +1 -1
  28. package/dist/module/conditions/condition-values.js +12 -20
  29. package/dist/module/conditions/condition-values.js.map +1 -1
  30. package/dist/module/conditions/condition.js +9 -14
  31. package/dist/module/conditions/condition.js.map +1 -1
  32. package/dist/module/conditions/enums.js +1 -5
  33. package/dist/module/conditions/enums.js.map +1 -1
  34. package/dist/module/conditions/helpers.js +2 -7
  35. package/dist/module/conditions/helpers.js.map +1 -1
  36. package/dist/module/conditions/index.js +10 -139
  37. package/dist/module/conditions/index.js.map +1 -1
  38. package/dist/module/conditions/inline-condition-model.js +15 -26
  39. package/dist/module/conditions/inline-condition-model.js.map +1 -1
  40. package/dist/module/conditions/inline-condition-operators.js +15 -23
  41. package/dist/module/conditions/inline-condition-operators.js.map +1 -1
  42. package/dist/module/conditions/inline-condition-values.js +9 -17
  43. package/dist/module/conditions/inline-condition-values.js.map +1 -1
  44. package/dist/module/conditions/types.js +1 -1
  45. package/dist/module/conditions/types.js.map +1 -1
  46. package/dist/module/data-model/conditions-wrapper.js +3 -8
  47. package/dist/module/data-model/conditions-wrapper.js.map +1 -1
  48. package/dist/module/data-model/enums.js +1 -5
  49. package/dist/module/data-model/enums.js.map +1 -1
  50. package/dist/module/data-model/index.js +3 -24
  51. package/dist/module/data-model/index.js.map +1 -1
  52. package/dist/module/data-model/input-wrapper.js +3 -8
  53. package/dist/module/data-model/input-wrapper.js.map +1 -1
  54. package/dist/module/data-model/types.js +1 -5
  55. package/dist/module/data-model/types.js.map +1 -1
  56. package/dist/module/form/form-configuration.js +1 -6
  57. package/dist/module/form/form-configuration.js.map +1 -1
  58. package/dist/module/form/index.js +1 -10
  59. package/dist/module/form/index.js.map +1 -1
  60. package/dist/module/index.js +8 -91
  61. package/dist/module/index.js.map +1 -1
  62. package/dist/module/migration/index.js +1 -10
  63. package/dist/module/migration/index.js.map +1 -1
  64. package/dist/module/migration/migration.0-2.js +1 -5
  65. package/dist/module/migration/migration.0-2.js.map +1 -1
  66. package/dist/module/migration/migration.1-2.js +3 -6
  67. package/dist/module/migration/migration.1-2.js.map +1 -1
  68. package/dist/module/migration/types.js +1 -1
  69. package/dist/module/migration/whichMigrations.js +5 -9
  70. package/dist/module/migration/whichMigrations.js.map +1 -1
  71. package/dist/module/schema/index.js +1 -16
  72. package/dist/module/schema/index.js.map +1 -1
  73. package/dist/module/schema/schema.js +163 -167
  74. package/dist/module/schema/schema.js.map +1 -1
  75. package/dist/module/utils/helpers.js +5 -13
  76. package/dist/module/utils/helpers.js.map +1 -1
  77. package/dist/module/utils/logger.js +1 -6
  78. package/dist/module/utils/logger.js.map +1 -1
  79. package/dist/types/components/component-types.d.ts +1 -1
  80. package/dist/types/components/component-types.d.ts.map +1 -1
  81. package/dist/types/components/conditional-component-types.d.ts +1 -1
  82. package/dist/types/components/conditional-component-types.d.ts.map +1 -1
  83. package/dist/types/components/index.d.ts +3 -3
  84. package/dist/types/components/index.d.ts.map +1 -1
  85. package/dist/types/conditions/condition-abstract.d.ts +1 -1
  86. package/dist/types/conditions/condition-abstract.d.ts.map +1 -1
  87. package/dist/types/conditions/condition-field.d.ts +1 -1
  88. package/dist/types/conditions/condition-field.d.ts.map +1 -1
  89. package/dist/types/conditions/condition-group-def.d.ts +2 -2
  90. package/dist/types/conditions/condition-group-def.d.ts.map +1 -1
  91. package/dist/types/conditions/condition-group.d.ts +2 -2
  92. package/dist/types/conditions/condition-group.d.ts.map +1 -1
  93. package/dist/types/conditions/condition-model.d.ts +5 -5
  94. package/dist/types/conditions/condition-model.d.ts.map +1 -1
  95. package/dist/types/conditions/condition-operators.d.ts +2 -2
  96. package/dist/types/conditions/condition-operators.d.ts.map +1 -1
  97. package/dist/types/conditions/condition-ref.d.ts +2 -2
  98. package/dist/types/conditions/condition-ref.d.ts.map +1 -1
  99. package/dist/types/conditions/condition-value-abstract.d.ts +1 -1
  100. package/dist/types/conditions/condition-value-abstract.d.ts.map +1 -1
  101. package/dist/types/conditions/condition-values.d.ts +3 -3
  102. package/dist/types/conditions/condition-values.d.ts.map +1 -1
  103. package/dist/types/conditions/condition.d.ts +4 -4
  104. package/dist/types/conditions/condition.d.ts.map +1 -1
  105. package/dist/types/conditions/index.d.ts +10 -10
  106. package/dist/types/conditions/index.d.ts.map +1 -1
  107. package/dist/types/conditions/types.d.ts +3 -3
  108. package/dist/types/conditions/types.d.ts.map +1 -1
  109. package/dist/types/data-model/conditions-wrapper.d.ts +1 -1
  110. package/dist/types/data-model/conditions-wrapper.d.ts.map +1 -1
  111. package/dist/types/data-model/index.d.ts +3 -3
  112. package/dist/types/data-model/index.d.ts.map +1 -1
  113. package/dist/types/data-model/input-wrapper.d.ts +2 -2
  114. package/dist/types/data-model/input-wrapper.d.ts.map +1 -1
  115. package/dist/types/data-model/types.d.ts +3 -3
  116. package/dist/types/data-model/types.d.ts.map +1 -1
  117. package/dist/types/form/index.d.ts +1 -1
  118. package/dist/types/form/index.d.ts.map +1 -1
  119. package/dist/types/index.d.ts +11 -11
  120. package/dist/types/index.d.ts.map +1 -1
  121. package/dist/types/migration/index.d.ts +1 -1
  122. package/dist/types/migration/index.d.ts.map +1 -1
  123. package/dist/types/migration/migration.0-2.d.ts +1 -1
  124. package/dist/types/migration/migration.0-2.d.ts.map +1 -1
  125. package/dist/types/migration/migration.1-2.d.ts +1 -1
  126. package/dist/types/migration/migration.1-2.d.ts.map +1 -1
  127. package/dist/types/migration/whichMigrations.d.ts +1 -1
  128. package/dist/types/migration/whichMigrations.d.ts.map +1 -1
  129. package/dist/types/schema/index.d.ts +1 -1
  130. package/dist/types/schema/index.d.ts.map +1 -1
  131. package/package.json +3 -4
  132. package/src/components/component-types.ts +1 -1
  133. package/src/components/conditional-component-types.ts +1 -1
  134. package/src/components/index.ts +3 -3
  135. package/src/conditions/condition-abstract.ts +1 -1
  136. package/src/conditions/condition-field.ts +2 -2
  137. package/src/conditions/condition-group-def.ts +1 -1
  138. package/src/conditions/condition-group.ts +3 -3
  139. package/src/conditions/condition-model.ts +9 -9
  140. package/src/conditions/condition-operators.ts +6 -3
  141. package/src/conditions/condition-ref.ts +2 -2
  142. package/src/conditions/condition-value-abstract.ts +1 -1
  143. package/src/conditions/condition-values.ts +3 -3
  144. package/src/conditions/condition.ts +6 -6
  145. package/src/conditions/index.ts +10 -10
  146. package/src/conditions/inline-condition-model.ts +3 -3
  147. package/src/conditions/inline-condition-operators.ts +1 -1
  148. package/src/conditions/types.ts +3 -3
  149. package/src/data-model/conditions-wrapper.ts +2 -2
  150. package/src/data-model/index.ts +3 -3
  151. package/src/data-model/input-wrapper.ts +3 -3
  152. package/src/data-model/types.ts +3 -3
  153. package/src/form/index.ts +1 -1
  154. package/src/index.ts +11 -11
  155. package/src/migration/index.ts +1 -1
  156. package/src/migration/migration.0-2.ts +1 -1
  157. package/src/migration/migration.1-2.ts +2 -2
  158. package/src/migration/whichMigrations.ts +3 -3
  159. package/src/schema/index.ts +1 -1
  160. package/dist/browser/components/component-types.js +0 -220
  161. package/dist/browser/components/component-types.js.map +0 -1
  162. package/dist/browser/components/conditional-component-types.js +0 -28
  163. package/dist/browser/components/conditional-component-types.js.map +0 -1
  164. package/dist/browser/components/enums.js +0 -46
  165. package/dist/browser/components/enums.js.map +0 -1
  166. package/dist/browser/components/index.js +0 -36
  167. package/dist/browser/components/index.js.map +0 -1
  168. package/dist/browser/components/types.js +0 -16
  169. package/dist/browser/components/types.js.map +0 -1
  170. package/dist/browser/conditions/condition-abstract.js +0 -62
  171. package/dist/browser/conditions/condition-abstract.js.map +0 -1
  172. package/dist/browser/conditions/condition-field.js +0 -45
  173. package/dist/browser/conditions/condition-field.js.map +0 -1
  174. package/dist/browser/conditions/condition-group-def.js +0 -45
  175. package/dist/browser/conditions/condition-group-def.js.map +0 -1
  176. package/dist/browser/conditions/condition-group.js +0 -64
  177. package/dist/browser/conditions/condition-group.js.map +0 -1
  178. package/dist/browser/conditions/condition-model.js +0 -214
  179. package/dist/browser/conditions/condition-model.js.map +0 -1
  180. package/dist/browser/conditions/condition-operators.js +0 -132
  181. package/dist/browser/conditions/condition-operators.js.map +0 -1
  182. package/dist/browser/conditions/condition-ref.js +0 -51
  183. package/dist/browser/conditions/condition-ref.js.map +0 -1
  184. package/dist/browser/conditions/condition-value-abstract.js +0 -41
  185. package/dist/browser/conditions/condition-value-abstract.js.map +0 -1
  186. package/dist/browser/conditions/condition-value-registration.js +0 -37
  187. package/dist/browser/conditions/condition-value-registration.js.map +0 -1
  188. package/dist/browser/conditions/condition-values.js +0 -127
  189. package/dist/browser/conditions/condition-values.js.map +0 -1
  190. package/dist/browser/conditions/condition.js +0 -56
  191. package/dist/browser/conditions/condition.js.map +0 -1
  192. package/dist/browser/conditions/enums.js +0 -24
  193. package/dist/browser/conditions/enums.js.map +0 -1
  194. package/dist/browser/conditions/helpers.js +0 -26
  195. package/dist/browser/conditions/helpers.js.map +0 -1
  196. package/dist/browser/conditions/index.js +0 -144
  197. package/dist/browser/conditions/index.js.map +0 -1
  198. package/dist/browser/conditions/inline-condition-model.js +0 -418
  199. package/dist/browser/conditions/inline-condition-model.js.map +0 -1
  200. package/dist/browser/conditions/inline-condition-operators.js +0 -132
  201. package/dist/browser/conditions/inline-condition-operators.js.map +0 -1
  202. package/dist/browser/conditions/inline-condition-values.js +0 -159
  203. package/dist/browser/conditions/inline-condition-values.js.map +0 -1
  204. package/dist/browser/conditions/types.js +0 -16
  205. package/dist/browser/conditions/types.js.map +0 -1
  206. package/dist/browser/data-model/conditions-wrapper.js +0 -49
  207. package/dist/browser/data-model/conditions-wrapper.js.map +0 -1
  208. package/dist/browser/data-model/enums.js +0 -25
  209. package/dist/browser/data-model/enums.js.map +0 -1
  210. package/dist/browser/data-model/index.js +0 -36
  211. package/dist/browser/data-model/index.js.map +0 -1
  212. package/dist/browser/data-model/input-wrapper.js +0 -49
  213. package/dist/browser/data-model/input-wrapper.js.map +0 -1
  214. package/dist/browser/data-model/types.js +0 -27
  215. package/dist/browser/data-model/types.js.map +0 -1
  216. package/dist/browser/form/form-configuration.js +0 -38
  217. package/dist/browser/form/form-configuration.js.map +0 -1
  218. package/dist/browser/form/index.js +0 -24
  219. package/dist/browser/form/index.js.map +0 -1
  220. package/dist/browser/index.js +0 -98
  221. package/dist/browser/index.js.map +0 -1
  222. package/dist/browser/migration/index.js +0 -24
  223. package/dist/browser/migration/index.js.map +0 -1
  224. package/dist/browser/migration/migration.0-2.js +0 -65
  225. package/dist/browser/migration/migration.0-2.js.map +0 -1
  226. package/dist/browser/migration/migration.1-2.js +0 -108
  227. package/dist/browser/migration/migration.1-2.js.map +0 -1
  228. package/dist/browser/migration/types.js +0 -16
  229. package/dist/browser/migration/types.js.map +0 -1
  230. package/dist/browser/migration/whichMigrations.js +0 -38
  231. package/dist/browser/migration/whichMigrations.js.map +0 -1
  232. package/dist/browser/schema/index.js +0 -30
  233. package/dist/browser/schema/index.js.map +0 -1
  234. package/dist/browser/schema/schema.js +0 -255
  235. package/dist/browser/schema/schema.js.map +0 -1
  236. package/dist/browser/utils/helpers.js +0 -48
  237. package/dist/browser/utils/helpers.js.map +0 -1
  238. package/dist/browser/utils/logger.js +0 -46
  239. package/dist/browser/utils/logger.js.map +0 -1
@@ -1,17 +1,11 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.coordinators = exports.GroupDef = exports.Field = exports.ConditionsModel = exports.ConditionRef = exports.Condition = void 0;
5
- exports.toExpression = toExpression;
6
- exports.toPresentationString = toPresentationString;
7
- var _componentTypes = require("../components/component-types");
8
- var _inlineConditionOperators = require("./inline-condition-operators");
9
- var _inlineConditionValues = require("./inline-condition-values");
10
- const coordinators = exports.coordinators = {
1
+ import { ComponentTypes } from "../components/component-types.js";
2
+ import { getExpression } from "./inline-condition-operators.js";
3
+ import { AbstractConditionValue, valueFrom } from "./inline-condition-values.js";
4
+ export const coordinators = {
11
5
  AND: 'and',
12
6
  OR: 'or'
13
7
  };
14
- class ConditionsModel {
8
+ export class ConditionsModel {
15
9
  #groupedConditions;
16
10
  #userGroupedConditions;
17
11
  #conditionName;
@@ -188,7 +182,6 @@ class ConditionsModel {
188
182
  return toReturn;
189
183
  }
190
184
  }
191
- exports.ConditionsModel = ConditionsModel;
192
185
  function conditionFrom(it) {
193
186
  if (it.conditions) {
194
187
  return new ConditionGroup(it.conditions.map(condition => conditionFrom(condition)));
@@ -196,9 +189,9 @@ function conditionFrom(it) {
196
189
  if (it.conditionName) {
197
190
  return new ConditionRef(it.conditionName, it.conditionDisplayName, it.coordinator);
198
191
  }
199
- return new Condition(Field.from(it.field), it.operator, (0, _inlineConditionValues.valueFrom)(it.value), it.coordinator);
192
+ return new Condition(Field.from(it.field), it.operator, valueFrom(it.value), it.coordinator);
200
193
  }
201
- class GroupDef {
194
+ export class GroupDef {
202
195
  constructor(first, last) {
203
196
  if (typeof first !== 'number' || typeof last !== 'number') {
204
197
  throw Error(`Cannot construct a group from ${first} and ${last}`);
@@ -218,7 +211,6 @@ class GroupDef {
218
211
  return [...conditions].splice(this.first, this.last - this.first + 1);
219
212
  }
220
213
  }
221
- exports.GroupDef = GroupDef;
222
214
  class ConditionGroup {
223
215
  constructor(conditions) {
224
216
  if (!Array.isArray(conditions) || conditions.length < 2) {
@@ -259,18 +251,18 @@ class ConditionGroup {
259
251
  return new ConditionGroup(this.conditions.map(condition => condition.clone()));
260
252
  }
261
253
  }
262
- function toPresentationString(condition) {
254
+ export function toPresentationString(condition) {
263
255
  return `${condition.coordinatorString()}${condition.conditionString()}`;
264
256
  }
265
- function toExpression(condition) {
257
+ export function toExpression(condition) {
266
258
  return `${condition.coordinatorString()}${condition.conditionExpression()}`;
267
259
  }
268
- class Field {
260
+ export class Field {
269
261
  constructor(name, type, display) {
270
262
  if (!name || typeof name !== 'string') {
271
263
  throw Error(`name ${name} is not valid`);
272
264
  }
273
- if (!_componentTypes.ComponentTypes.find(componentType => componentType.name === type)) {
265
+ if (!ComponentTypes.find(componentType => componentType.name === type)) {
274
266
  throw Error(`type ${type} is not valid`);
275
267
  }
276
268
  if (!display || typeof display !== 'string') {
@@ -284,7 +276,6 @@ class Field {
284
276
  return new Field(obj.name, obj.type, obj.display);
285
277
  }
286
278
  }
287
- exports.Field = Field;
288
279
  class AbstractCondition {
289
280
  constructor(coordinator) {
290
281
  if (coordinator && !Object.values(coordinators).includes(coordinator)) {
@@ -323,7 +314,7 @@ class AbstractCondition {
323
314
  throw Error('Implement on the subclass (Why do we have to have this method here at all?!)');
324
315
  }
325
316
  }
326
- class Condition extends AbstractCondition {
317
+ export class Condition extends AbstractCondition {
327
318
  constructor(field, operator, value, coordinator) {
328
319
  super(coordinator);
329
320
  if (!(field instanceof Field)) {
@@ -332,7 +323,7 @@ class Condition extends AbstractCondition {
332
323
  if (typeof operator !== 'string') {
333
324
  throw Error(`operator ${operator} is not a valid operator`);
334
325
  }
335
- if (!(value instanceof _inlineConditionValues.AbstractConditionValue)) {
326
+ if (!(value instanceof AbstractConditionValue)) {
336
327
  throw Error(`value ${value} is not a valid value type`);
337
328
  }
338
329
  this.field = field;
@@ -347,14 +338,13 @@ class Condition extends AbstractCondition {
347
338
  return `'${this.field.display}' ${this.operator} '${this.value.toPresentationString()}'`;
348
339
  }
349
340
  conditionExpression() {
350
- return (0, _inlineConditionOperators.getExpression)(this.field.type, this.field.name, this.operator, this.value);
341
+ return getExpression(this.field.type, this.field.name, this.operator, this.value);
351
342
  }
352
343
  clone() {
353
344
  return new Condition(Field.from(this.field), this.operator, this.value.clone(), this.coordinator);
354
345
  }
355
346
  }
356
- exports.Condition = Condition;
357
- class ConditionRef extends AbstractCondition {
347
+ export class ConditionRef extends AbstractCondition {
358
348
  constructor(conditionName, conditionDisplayName, coordinator) {
359
349
  super(coordinator);
360
350
  if (typeof conditionName !== 'string') {
@@ -380,5 +370,4 @@ class ConditionRef extends AbstractCondition {
380
370
  return new ConditionRef(this.conditionName, this.conditionDisplayName, this.coordinator);
381
371
  }
382
372
  }
383
- exports.ConditionRef = ConditionRef;
384
373
  //# sourceMappingURL=inline-condition-model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inline-condition-model.js","names":["_componentTypes","require","_inlineConditionOperators","_inlineConditionValues","coordinators","exports","AND","OR","ConditionsModel","groupedConditions","userGroupedConditions","conditionName","constructor","clone","toReturn","map","it","clear","undefined","name","add","condition","coordinatorExpected","length","getCoordinator","Error","push","_applyGroups","replace","index","splice","remove","indexes","filter","_condition","includes","asFirstCondition","addGroups","groupDefs","_group","splitGroup","_ungroup","moveEarlier","switchCoordinators","moveLater","setCoordinator","asPerUserGroupings","hasConditions","lastIndex","toPresentationString","join","toExpression","correctedUserGroups","ConditionGroup","conditions","_autoGroupDefs","reduce","groups","groupDef","find","contains","startsWith","groupConditions","applyTo","splitIndex","isGroup","copy","getGroupedConditions","orPositions","forEach","hasAnd","hasOr","start","position","GroupDef","thisIsTheLastOr","thereAreMoreConditions","toJSON","from","obj","conditionFrom","ConditionRef","conditionDisplayName","coordinator","Condition","Field","field","operator","valueFrom","value","first","last","Array","isArray","coordinatorString","conditionString","conditionExpression","type","display","ComponentTypes","componentType","AbstractCondition","Object","values","_asFirstCondition","AbstractConditionValue","getExpression"],"sources":["../../../src/conditions/inline-condition-model.ts"],"sourcesContent":["import { ComponentTypes } from '~/src/components/component-types'\nimport { getExpression } from '~/src/conditions/inline-condition-operators'\nimport {\n AbstractConditionValue,\n valueFrom\n} from '~/src/conditions/inline-condition-values'\n\nexport const coordinators = {\n AND: 'and',\n OR: 'or'\n}\n\nexport class ConditionsModel {\n #groupedConditions\n #userGroupedConditions\n #conditionName\n\n constructor() {\n this.#groupedConditions = []\n this.#userGroupedConditions = []\n }\n\n clone() {\n const toReturn = new ConditionsModel()\n toReturn.#groupedConditions = this.#groupedConditions.map((it) =>\n it.clone()\n )\n toReturn.#userGroupedConditions = this.#userGroupedConditions.map((it) =>\n it.clone()\n )\n toReturn.#conditionName = this.#conditionName\n return toReturn\n }\n\n clear() {\n this.#userGroupedConditions = []\n this.#groupedConditions = []\n this.#conditionName = undefined\n return this\n }\n\n set name(name) {\n this.#conditionName = name\n }\n\n get name() {\n return this.#conditionName\n }\n\n add(condition) {\n const coordinatorExpected = this.#userGroupedConditions.length !== 0\n if (condition.getCoordinator() && !coordinatorExpected) {\n throw Error('No coordinator allowed on the first condition')\n } else if (!condition.getCoordinator() && coordinatorExpected) {\n throw Error('Coordinator must be present on subsequent conditions')\n }\n this.#userGroupedConditions.push(condition)\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n replace(index, condition) {\n const coordinatorExpected = index !== 0\n if (condition.getCoordinator() && !coordinatorExpected) {\n throw Error('No coordinator allowed on the first condition')\n } else if (!condition.getCoordinator() && coordinatorExpected) {\n throw Error('Coordinator must be present on subsequent conditions')\n } else if (index >= this.#userGroupedConditions.length) {\n throw Error(\n `Cannot replace condition ${index} as no such condition exists`\n )\n }\n this.#userGroupedConditions.splice(index, 1, condition)\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n remove(indexes) {\n this.#userGroupedConditions = this.#userGroupedConditions\n .filter((_condition, index) => !indexes.includes(index))\n .map((condition, index) =>\n index === 0 ? condition.asFirstCondition() : condition\n )\n\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n addGroups(groupDefs) {\n this.#userGroupedConditions = this._group(\n this.#userGroupedConditions,\n groupDefs\n )\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n splitGroup(index) {\n this.#userGroupedConditions = this._ungroup(\n this.#userGroupedConditions,\n index\n )\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n moveEarlier(index) {\n if (index > 0 && index < this.#userGroupedConditions.length) {\n this.#userGroupedConditions.splice(\n index - 1,\n 0,\n this.#userGroupedConditions.splice(index, 1)[0]\n )\n if (index === 1) {\n this.switchCoordinators()\n }\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n }\n return this\n }\n\n moveLater(index) {\n if (index >= 0 && index < this.#userGroupedConditions.length - 1) {\n this.#userGroupedConditions.splice(\n index + 1,\n 0,\n this.#userGroupedConditions.splice(index, 1)[0]\n )\n if (index === 0) {\n this.switchCoordinators()\n }\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n }\n return this\n }\n\n switchCoordinators() {\n this.#userGroupedConditions[1].setCoordinator(\n this.#userGroupedConditions[0].getCoordinator()\n )\n this.#userGroupedConditions[0].setCoordinator(undefined)\n }\n\n get asPerUserGroupings() {\n return [...this.#userGroupedConditions]\n }\n\n get hasConditions() {\n return this.#userGroupedConditions.length > 0\n }\n\n get lastIndex() {\n return this.#userGroupedConditions.length - 1\n }\n\n toPresentationString() {\n return this.#groupedConditions\n .map((condition) => toPresentationString(condition))\n .join(' ')\n }\n\n toExpression() {\n return this.#groupedConditions\n .map((condition) => toExpression(condition))\n .join(' ')\n }\n\n _applyGroups(userGroupedConditions) {\n const correctedUserGroups = userGroupedConditions.map((condition) =>\n condition instanceof ConditionGroup && condition.conditions.length > 2\n ? new ConditionGroup(\n this._group(\n condition.conditions,\n this._autoGroupDefs(condition.conditions)\n )\n )\n : condition\n )\n return this._group(\n correctedUserGroups,\n this._autoGroupDefs(correctedUserGroups)\n )\n }\n\n _group(conditions, groupDefs) {\n return conditions.reduce((groups, condition, index, conditions) => {\n const groupDef = groupDefs.find((groupDef) => groupDef.contains(index))\n if (groupDef) {\n if (groupDef.startsWith(index)) {\n const groupConditions = groupDef.applyTo(conditions)\n groups.push(new ConditionGroup(groupConditions))\n }\n } else {\n groups.push(condition)\n }\n return groups\n }, [])\n }\n\n _ungroup(conditions, splitIndex) {\n if (conditions[splitIndex].isGroup()) {\n const copy = [...conditions]\n copy.splice(\n splitIndex,\n 1,\n ...conditions[splitIndex].getGroupedConditions()\n )\n return copy\n }\n return conditions\n }\n\n _autoGroupDefs(conditions) {\n const orPositions: number[] = []\n conditions.forEach((condition, index) => {\n if (condition.getCoordinator() === coordinators.OR) {\n orPositions.push(index)\n }\n })\n const hasAnd = !!conditions.find(\n (condition) => condition.getCoordinator() === coordinators.AND\n )\n const hasOr = orPositions.length > 0\n if (hasAnd && hasOr) {\n let start = 0\n const groupDefs: GroupDef[] = []\n orPositions.forEach((position, index) => {\n if (start < position - 1) {\n groupDefs.push(new GroupDef(start, position - 1))\n }\n const thisIsTheLastOr = orPositions.length === index + 1\n const thereAreMoreConditions = conditions.length - 1 > position\n if (thisIsTheLastOr && thereAreMoreConditions) {\n groupDefs.push(new GroupDef(position, conditions.length - 1))\n }\n start = position\n })\n return groupDefs\n }\n return []\n }\n\n toJSON() {\n const name = this.#conditionName\n const conditions = this.#userGroupedConditions\n return {\n name,\n conditions: conditions.map((it) => it.clone())\n }\n }\n\n static from(obj) {\n if (obj instanceof ConditionsModel) {\n return obj\n }\n const toReturn = new ConditionsModel()\n toReturn.#conditionName = obj.name\n toReturn.#userGroupedConditions = obj.conditions.map((it) =>\n conditionFrom(it)\n )\n toReturn.#groupedConditions = toReturn._applyGroups(\n toReturn.#userGroupedConditions\n )\n return toReturn\n }\n}\n\nfunction conditionFrom(it) {\n if (it.conditions) {\n return new ConditionGroup(\n it.conditions.map((condition) => conditionFrom(condition))\n )\n }\n if (it.conditionName) {\n return new ConditionRef(\n it.conditionName,\n it.conditionDisplayName,\n it.coordinator\n )\n }\n return new Condition(\n Field.from(it.field),\n it.operator,\n valueFrom(it.value),\n it.coordinator\n )\n}\n\nexport class GroupDef {\n first\n last\n\n constructor(first, last) {\n if (typeof first !== 'number' || typeof last !== 'number') {\n throw Error(`Cannot construct a group from ${first} and ${last}`)\n } else if (first >= last) {\n throw Error(`Last (${last}) must be greater than first (${first})`)\n }\n this.first = first\n this.last = last\n }\n\n contains(index) {\n return this.first <= index && this.last >= index\n }\n\n startsWith(index) {\n return this.first === index\n }\n\n applyTo(conditions) {\n return [...conditions].splice(this.first, this.last - this.first + 1)\n }\n}\n\nclass ConditionGroup {\n conditions\n\n constructor(conditions) {\n if (!Array.isArray(conditions) || conditions.length < 2) {\n throw Error('Cannot construct a condition group from a single condition')\n }\n this.conditions = conditions\n }\n\n coordinatorString() {\n return this.conditions[0].coordinatorString()\n }\n\n conditionString() {\n const copy = [...this.conditions]\n copy.splice(0, 1)\n return `(${this.conditions[0].conditionString()} ${copy\n .map((condition) => toPresentationString(condition))\n .join(' ')})`\n }\n\n conditionExpression() {\n const copy = [...this.conditions]\n copy.splice(0, 1)\n return `(${this.conditions[0].conditionExpression()} ${copy\n .map((condition) => toExpression(condition))\n .join(' ')})`\n }\n\n asFirstCondition() {\n this.conditions[0].asFirstCondition()\n return this\n }\n\n getCoordinator() {\n return this.conditions[0].getCoordinator()\n }\n\n setCoordinator(coordinator) {\n this.conditions[0].setCoordinator(coordinator)\n }\n\n isGroup() {\n return true\n }\n\n getGroupedConditions() {\n return this.conditions.map((condition) => condition.clone())\n }\n\n clone() {\n return new ConditionGroup(\n this.conditions.map((condition) => condition.clone())\n )\n }\n}\n\nexport function toPresentationString(condition) {\n return `${condition.coordinatorString()}${condition.conditionString()}`\n}\n\nexport function toExpression(condition) {\n return `${condition.coordinatorString()}${condition.conditionExpression()}`\n}\n\nexport class Field {\n name\n type\n display\n\n constructor(name, type, display) {\n if (!name || typeof name !== 'string') {\n throw Error(`name ${name} is not valid`)\n }\n if (!ComponentTypes.find((componentType) => componentType.name === type)) {\n throw Error(`type ${type} is not valid`)\n }\n if (!display || typeof display !== 'string') {\n throw Error(`display ${display} is not valid`)\n }\n this.name = name\n this.type = type\n this.display = display\n }\n\n static from(obj) {\n return new Field(obj.name, obj.type, obj.display)\n }\n}\n\nclass AbstractCondition {\n coordinator\n\n constructor(coordinator) {\n if (coordinator && !Object.values(coordinators).includes(coordinator)) {\n throw Error(`coordinator ${coordinator} is not a valid coordinator`)\n }\n this.coordinator = coordinator\n }\n\n coordinatorString() {\n return this.coordinator ? `${this.coordinator} ` : ''\n }\n\n getCoordinator() {\n return this.coordinator\n }\n\n setCoordinator(coordinator) {\n this.coordinator = coordinator\n }\n\n isGroup() {\n return false\n }\n\n getGroupedConditions() {\n return [this]\n }\n\n _asFirstCondition() {\n delete this.coordinator\n }\n\n asFirstCondition() {\n throw Error(\n 'Implement on the subclass (Why do we have to have this method here at all?!)'\n )\n }\n\n clone() {\n throw Error(\n 'Implement on the subclass (Why do we have to have this method here at all?!)'\n )\n }\n\n conditionString() {\n throw Error(\n 'Implement on the subclass (Why do we have to have this method here at all?!)'\n )\n }\n\n conditionExpression() {\n throw Error(\n 'Implement on the subclass (Why do we have to have this method here at all?!)'\n )\n }\n}\n\nexport class Condition extends AbstractCondition {\n field\n operator\n value\n\n constructor(field, operator, value, coordinator) {\n super(coordinator)\n if (!(field instanceof Field)) {\n throw Error(`field ${field} is not a valid Field object`)\n }\n if (typeof operator !== 'string') {\n throw Error(`operator ${operator} is not a valid operator`)\n }\n if (!(value instanceof AbstractConditionValue)) {\n throw Error(`value ${value} is not a valid value type`)\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 Field.from(this.field),\n this.operator,\n this.value.clone(),\n this.coordinator\n )\n }\n}\n\nexport class ConditionRef extends AbstractCondition {\n conditionName\n conditionDisplayName\n\n constructor(conditionName, conditionDisplayName, coordinator) {\n super(coordinator)\n if (typeof conditionName !== 'string') {\n throw Error(`condition name ${conditionName} is not valid`)\n }\n if (typeof conditionDisplayName !== 'string') {\n throw Error(`condition display name ${conditionDisplayName} is not valid`)\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":"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"}
1
+ {"version":3,"file":"inline-condition-model.js","names":["ComponentTypes","getExpression","AbstractConditionValue","valueFrom","coordinators","AND","OR","ConditionsModel","groupedConditions","userGroupedConditions","conditionName","constructor","clone","toReturn","map","it","clear","undefined","name","add","condition","coordinatorExpected","length","getCoordinator","Error","push","_applyGroups","replace","index","splice","remove","indexes","filter","_condition","includes","asFirstCondition","addGroups","groupDefs","_group","splitGroup","_ungroup","moveEarlier","switchCoordinators","moveLater","setCoordinator","asPerUserGroupings","hasConditions","lastIndex","toPresentationString","join","toExpression","correctedUserGroups","ConditionGroup","conditions","_autoGroupDefs","reduce","groups","groupDef","find","contains","startsWith","groupConditions","applyTo","splitIndex","isGroup","copy","getGroupedConditions","orPositions","forEach","hasAnd","hasOr","start","position","GroupDef","thisIsTheLastOr","thereAreMoreConditions","toJSON","from","obj","conditionFrom","ConditionRef","conditionDisplayName","coordinator","Condition","Field","field","operator","value","first","last","Array","isArray","coordinatorString","conditionString","conditionExpression","type","display","componentType","AbstractCondition","Object","values","_asFirstCondition"],"sources":["../../../src/conditions/inline-condition-model.ts"],"sourcesContent":["import { ComponentTypes } from '~/src/components/component-types.js'\nimport { getExpression } from '~/src/conditions/inline-condition-operators.js'\nimport {\n AbstractConditionValue,\n valueFrom\n} from '~/src/conditions/inline-condition-values.js'\n\nexport const coordinators = {\n AND: 'and',\n OR: 'or'\n}\n\nexport class ConditionsModel {\n #groupedConditions\n #userGroupedConditions\n #conditionName\n\n constructor() {\n this.#groupedConditions = []\n this.#userGroupedConditions = []\n }\n\n clone() {\n const toReturn = new ConditionsModel()\n toReturn.#groupedConditions = this.#groupedConditions.map((it) =>\n it.clone()\n )\n toReturn.#userGroupedConditions = this.#userGroupedConditions.map((it) =>\n it.clone()\n )\n toReturn.#conditionName = this.#conditionName\n return toReturn\n }\n\n clear() {\n this.#userGroupedConditions = []\n this.#groupedConditions = []\n this.#conditionName = undefined\n return this\n }\n\n set name(name) {\n this.#conditionName = name\n }\n\n get name() {\n return this.#conditionName\n }\n\n add(condition) {\n const coordinatorExpected = this.#userGroupedConditions.length !== 0\n if (condition.getCoordinator() && !coordinatorExpected) {\n throw Error('No coordinator allowed on the first condition')\n } else if (!condition.getCoordinator() && coordinatorExpected) {\n throw Error('Coordinator must be present on subsequent conditions')\n }\n this.#userGroupedConditions.push(condition)\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n replace(index, condition) {\n const coordinatorExpected = index !== 0\n if (condition.getCoordinator() && !coordinatorExpected) {\n throw Error('No coordinator allowed on the first condition')\n } else if (!condition.getCoordinator() && coordinatorExpected) {\n throw Error('Coordinator must be present on subsequent conditions')\n } else if (index >= this.#userGroupedConditions.length) {\n throw Error(\n `Cannot replace condition ${index} as no such condition exists`\n )\n }\n this.#userGroupedConditions.splice(index, 1, condition)\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n remove(indexes) {\n this.#userGroupedConditions = this.#userGroupedConditions\n .filter((_condition, index) => !indexes.includes(index))\n .map((condition, index) =>\n index === 0 ? condition.asFirstCondition() : condition\n )\n\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n addGroups(groupDefs) {\n this.#userGroupedConditions = this._group(\n this.#userGroupedConditions,\n groupDefs\n )\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n splitGroup(index) {\n this.#userGroupedConditions = this._ungroup(\n this.#userGroupedConditions,\n index\n )\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n moveEarlier(index) {\n if (index > 0 && index < this.#userGroupedConditions.length) {\n this.#userGroupedConditions.splice(\n index - 1,\n 0,\n this.#userGroupedConditions.splice(index, 1)[0]\n )\n if (index === 1) {\n this.switchCoordinators()\n }\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n }\n return this\n }\n\n moveLater(index) {\n if (index >= 0 && index < this.#userGroupedConditions.length - 1) {\n this.#userGroupedConditions.splice(\n index + 1,\n 0,\n this.#userGroupedConditions.splice(index, 1)[0]\n )\n if (index === 0) {\n this.switchCoordinators()\n }\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n }\n return this\n }\n\n switchCoordinators() {\n this.#userGroupedConditions[1].setCoordinator(\n this.#userGroupedConditions[0].getCoordinator()\n )\n this.#userGroupedConditions[0].setCoordinator(undefined)\n }\n\n get asPerUserGroupings() {\n return [...this.#userGroupedConditions]\n }\n\n get hasConditions() {\n return this.#userGroupedConditions.length > 0\n }\n\n get lastIndex() {\n return this.#userGroupedConditions.length - 1\n }\n\n toPresentationString() {\n return this.#groupedConditions\n .map((condition) => toPresentationString(condition))\n .join(' ')\n }\n\n toExpression() {\n return this.#groupedConditions\n .map((condition) => toExpression(condition))\n .join(' ')\n }\n\n _applyGroups(userGroupedConditions) {\n const correctedUserGroups = userGroupedConditions.map((condition) =>\n condition instanceof ConditionGroup && condition.conditions.length > 2\n ? new ConditionGroup(\n this._group(\n condition.conditions,\n this._autoGroupDefs(condition.conditions)\n )\n )\n : condition\n )\n return this._group(\n correctedUserGroups,\n this._autoGroupDefs(correctedUserGroups)\n )\n }\n\n _group(conditions, groupDefs) {\n return conditions.reduce((groups, condition, index, conditions) => {\n const groupDef = groupDefs.find((groupDef) => groupDef.contains(index))\n if (groupDef) {\n if (groupDef.startsWith(index)) {\n const groupConditions = groupDef.applyTo(conditions)\n groups.push(new ConditionGroup(groupConditions))\n }\n } else {\n groups.push(condition)\n }\n return groups\n }, [])\n }\n\n _ungroup(conditions, splitIndex) {\n if (conditions[splitIndex].isGroup()) {\n const copy = [...conditions]\n copy.splice(\n splitIndex,\n 1,\n ...conditions[splitIndex].getGroupedConditions()\n )\n return copy\n }\n return conditions\n }\n\n _autoGroupDefs(conditions) {\n const orPositions: number[] = []\n conditions.forEach((condition, index) => {\n if (condition.getCoordinator() === coordinators.OR) {\n orPositions.push(index)\n }\n })\n const hasAnd = !!conditions.find(\n (condition) => condition.getCoordinator() === coordinators.AND\n )\n const hasOr = orPositions.length > 0\n if (hasAnd && hasOr) {\n let start = 0\n const groupDefs: GroupDef[] = []\n orPositions.forEach((position, index) => {\n if (start < position - 1) {\n groupDefs.push(new GroupDef(start, position - 1))\n }\n const thisIsTheLastOr = orPositions.length === index + 1\n const thereAreMoreConditions = conditions.length - 1 > position\n if (thisIsTheLastOr && thereAreMoreConditions) {\n groupDefs.push(new GroupDef(position, conditions.length - 1))\n }\n start = position\n })\n return groupDefs\n }\n return []\n }\n\n toJSON() {\n const name = this.#conditionName\n const conditions = this.#userGroupedConditions\n return {\n name,\n conditions: conditions.map((it) => it.clone())\n }\n }\n\n static from(obj) {\n if (obj instanceof ConditionsModel) {\n return obj\n }\n const toReturn = new ConditionsModel()\n toReturn.#conditionName = obj.name\n toReturn.#userGroupedConditions = obj.conditions.map((it) =>\n conditionFrom(it)\n )\n toReturn.#groupedConditions = toReturn._applyGroups(\n toReturn.#userGroupedConditions\n )\n return toReturn\n }\n}\n\nfunction conditionFrom(it) {\n if (it.conditions) {\n return new ConditionGroup(\n it.conditions.map((condition) => conditionFrom(condition))\n )\n }\n if (it.conditionName) {\n return new ConditionRef(\n it.conditionName,\n it.conditionDisplayName,\n it.coordinator\n )\n }\n return new Condition(\n Field.from(it.field),\n it.operator,\n valueFrom(it.value),\n it.coordinator\n )\n}\n\nexport class GroupDef {\n first\n last\n\n constructor(first, last) {\n if (typeof first !== 'number' || typeof last !== 'number') {\n throw Error(`Cannot construct a group from ${first} and ${last}`)\n } else if (first >= last) {\n throw Error(`Last (${last}) must be greater than first (${first})`)\n }\n this.first = first\n this.last = last\n }\n\n contains(index) {\n return this.first <= index && this.last >= index\n }\n\n startsWith(index) {\n return this.first === index\n }\n\n applyTo(conditions) {\n return [...conditions].splice(this.first, this.last - this.first + 1)\n }\n}\n\nclass ConditionGroup {\n conditions\n\n constructor(conditions) {\n if (!Array.isArray(conditions) || conditions.length < 2) {\n throw Error('Cannot construct a condition group from a single condition')\n }\n this.conditions = conditions\n }\n\n coordinatorString() {\n return this.conditions[0].coordinatorString()\n }\n\n conditionString() {\n const copy = [...this.conditions]\n copy.splice(0, 1)\n return `(${this.conditions[0].conditionString()} ${copy\n .map((condition) => toPresentationString(condition))\n .join(' ')})`\n }\n\n conditionExpression() {\n const copy = [...this.conditions]\n copy.splice(0, 1)\n return `(${this.conditions[0].conditionExpression()} ${copy\n .map((condition) => toExpression(condition))\n .join(' ')})`\n }\n\n asFirstCondition() {\n this.conditions[0].asFirstCondition()\n return this\n }\n\n getCoordinator() {\n return this.conditions[0].getCoordinator()\n }\n\n setCoordinator(coordinator) {\n this.conditions[0].setCoordinator(coordinator)\n }\n\n isGroup() {\n return true\n }\n\n getGroupedConditions() {\n return this.conditions.map((condition) => condition.clone())\n }\n\n clone() {\n return new ConditionGroup(\n this.conditions.map((condition) => condition.clone())\n )\n }\n}\n\nexport function toPresentationString(condition) {\n return `${condition.coordinatorString()}${condition.conditionString()}`\n}\n\nexport function toExpression(condition) {\n return `${condition.coordinatorString()}${condition.conditionExpression()}`\n}\n\nexport class Field {\n name\n type\n display\n\n constructor(name, type, display) {\n if (!name || typeof name !== 'string') {\n throw Error(`name ${name} is not valid`)\n }\n if (!ComponentTypes.find((componentType) => componentType.name === type)) {\n throw Error(`type ${type} is not valid`)\n }\n if (!display || typeof display !== 'string') {\n throw Error(`display ${display} is not valid`)\n }\n this.name = name\n this.type = type\n this.display = display\n }\n\n static from(obj) {\n return new Field(obj.name, obj.type, obj.display)\n }\n}\n\nclass AbstractCondition {\n coordinator\n\n constructor(coordinator) {\n if (coordinator && !Object.values(coordinators).includes(coordinator)) {\n throw Error(`coordinator ${coordinator} is not a valid coordinator`)\n }\n this.coordinator = coordinator\n }\n\n coordinatorString() {\n return this.coordinator ? `${this.coordinator} ` : ''\n }\n\n getCoordinator() {\n return this.coordinator\n }\n\n setCoordinator(coordinator) {\n this.coordinator = coordinator\n }\n\n isGroup() {\n return false\n }\n\n getGroupedConditions() {\n return [this]\n }\n\n _asFirstCondition() {\n delete this.coordinator\n }\n\n asFirstCondition() {\n throw Error(\n 'Implement on the subclass (Why do we have to have this method here at all?!)'\n )\n }\n\n clone() {\n throw Error(\n 'Implement on the subclass (Why do we have to have this method here at all?!)'\n )\n }\n\n conditionString() {\n throw Error(\n 'Implement on the subclass (Why do we have to have this method here at all?!)'\n )\n }\n\n conditionExpression() {\n throw Error(\n 'Implement on the subclass (Why do we have to have this method here at all?!)'\n )\n }\n}\n\nexport class Condition extends AbstractCondition {\n field\n operator\n value\n\n constructor(field, operator, value, coordinator) {\n super(coordinator)\n if (!(field instanceof Field)) {\n throw Error(`field ${field} is not a valid Field object`)\n }\n if (typeof operator !== 'string') {\n throw Error(`operator ${operator} is not a valid operator`)\n }\n if (!(value instanceof AbstractConditionValue)) {\n throw Error(`value ${value} is not a valid value type`)\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 Field.from(this.field),\n this.operator,\n this.value.clone(),\n this.coordinator\n )\n }\n}\n\nexport class ConditionRef extends AbstractCondition {\n conditionName\n conditionDisplayName\n\n constructor(conditionName, conditionDisplayName, coordinator) {\n super(coordinator)\n if (typeof conditionName !== 'string') {\n throw Error(`condition name ${conditionName} is not valid`)\n }\n if (typeof conditionDisplayName !== 'string') {\n throw Error(`condition display name ${conditionDisplayName} is not valid`)\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,cAAc;AACvB,SAASC,aAAa;AACtB,SACEC,sBAAsB,EACtBC,SAAS;AAGX,OAAO,MAAMC,YAAY,GAAG;EAC1BC,GAAG,EAAE,KAAK;EACVC,EAAE,EAAE;AACN,CAAC;AAED,OAAO,MAAMC,eAAe,CAAC;EAC3B,CAACC,iBAAiB;EAClB,CAACC,qBAAqB;EACtB,CAACC,aAAa;EAEdC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAAC,CAACH,iBAAiB,GAAG,EAAE;IAC5B,IAAI,CAAC,CAACC,qBAAqB,GAAG,EAAE;EAClC;EAEAG,KAAKA,CAAA,EAAG;IACN,MAAMC,QAAQ,GAAG,IAAIN,eAAe,CAAC,CAAC;IACtCM,QAAQ,CAAC,CAACL,iBAAiB,GAAG,IAAI,CAAC,CAACA,iBAAiB,CAACM,GAAG,CAAEC,EAAE,IAC3DA,EAAE,CAACH,KAAK,CAAC,CACX,CAAC;IACDC,QAAQ,CAAC,CAACJ,qBAAqB,GAAG,IAAI,CAAC,CAACA,qBAAqB,CAACK,GAAG,CAAEC,EAAE,IACnEA,EAAE,CAACH,KAAK,CAAC,CACX,CAAC;IACDC,QAAQ,CAAC,CAACH,aAAa,GAAG,IAAI,CAAC,CAACA,aAAa;IAC7C,OAAOG,QAAQ;EACjB;EAEAG,KAAKA,CAAA,EAAG;IACN,IAAI,CAAC,CAACP,qBAAqB,GAAG,EAAE;IAChC,IAAI,CAAC,CAACD,iBAAiB,GAAG,EAAE;IAC5B,IAAI,CAAC,CAACE,aAAa,GAAGO,SAAS;IAC/B,OAAO,IAAI;EACb;EAEA,IAAIC,IAAIA,CAACA,IAAI,EAAE;IACb,IAAI,CAAC,CAACR,aAAa,GAAGQ,IAAI;EAC5B;EAEA,IAAIA,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAAC,CAACR,aAAa;EAC5B;EAEAS,GAAGA,CAACC,SAAS,EAAE;IACb,MAAMC,mBAAmB,GAAG,IAAI,CAAC,CAACZ,qBAAqB,CAACa,MAAM,KAAK,CAAC;IACpE,IAAIF,SAAS,CAACG,cAAc,CAAC,CAAC,IAAI,CAACF,mBAAmB,EAAE;MACtD,MAAMG,KAAK,CAAC,+CAA+C,CAAC;IAC9D,CAAC,MAAM,IAAI,CAACJ,SAAS,CAACG,cAAc,CAAC,CAAC,IAAIF,mBAAmB,EAAE;MAC7D,MAAMG,KAAK,CAAC,sDAAsD,CAAC;IACrE;IACA,IAAI,CAAC,CAACf,qBAAqB,CAACgB,IAAI,CAACL,SAAS,CAAC;IAC3C,IAAI,CAAC,CAACZ,iBAAiB,GAAG,IAAI,CAACkB,YAAY,CAAC,IAAI,CAAC,CAACjB,qBAAqB,CAAC;IACxE,OAAO,IAAI;EACb;EAEAkB,OAAOA,CAACC,KAAK,EAAER,SAAS,EAAE;IACxB,MAAMC,mBAAmB,GAAGO,KAAK,KAAK,CAAC;IACvC,IAAIR,SAAS,CAACG,cAAc,CAAC,CAAC,IAAI,CAACF,mBAAmB,EAAE;MACtD,MAAMG,KAAK,CAAC,+CAA+C,CAAC;IAC9D,CAAC,MAAM,IAAI,CAACJ,SAAS,CAACG,cAAc,CAAC,CAAC,IAAIF,mBAAmB,EAAE;MAC7D,MAAMG,KAAK,CAAC,sDAAsD,CAAC;IACrE,CAAC,MAAM,IAAII,KAAK,IAAI,IAAI,CAAC,CAACnB,qBAAqB,CAACa,MAAM,EAAE;MACtD,MAAME,KAAK,CACR,4BAA2BI,KAAM,8BACpC,CAAC;IACH;IACA,IAAI,CAAC,CAACnB,qBAAqB,CAACoB,MAAM,CAACD,KAAK,EAAE,CAAC,EAAER,SAAS,CAAC;IACvD,IAAI,CAAC,CAACZ,iBAAiB,GAAG,IAAI,CAACkB,YAAY,CAAC,IAAI,CAAC,CAACjB,qBAAqB,CAAC;IACxE,OAAO,IAAI;EACb;EAEAqB,MAAMA,CAACC,OAAO,EAAE;IACd,IAAI,CAAC,CAACtB,qBAAqB,GAAG,IAAI,CAAC,CAACA,qBAAqB,CACtDuB,MAAM,CAAC,CAACC,UAAU,EAAEL,KAAK,KAAK,CAACG,OAAO,CAACG,QAAQ,CAACN,KAAK,CAAC,CAAC,CACvDd,GAAG,CAAC,CAACM,SAAS,EAAEQ,KAAK,KACpBA,KAAK,KAAK,CAAC,GAAGR,SAAS,CAACe,gBAAgB,CAAC,CAAC,GAAGf,SAC/C,CAAC;IAEH,IAAI,CAAC,CAACZ,iBAAiB,GAAG,IAAI,CAACkB,YAAY,CAAC,IAAI,CAAC,CAACjB,qBAAqB,CAAC;IACxE,OAAO,IAAI;EACb;EAEA2B,SAASA,CAACC,SAAS,EAAE;IACnB,IAAI,CAAC,CAAC5B,qBAAqB,GAAG,IAAI,CAAC6B,MAAM,CACvC,IAAI,CAAC,CAAC7B,qBAAqB,EAC3B4B,SACF,CAAC;IACD,IAAI,CAAC,CAAC7B,iBAAiB,GAAG,IAAI,CAACkB,YAAY,CAAC,IAAI,CAAC,CAACjB,qBAAqB,CAAC;IACxE,OAAO,IAAI;EACb;EAEA8B,UAAUA,CAACX,KAAK,EAAE;IAChB,IAAI,CAAC,CAACnB,qBAAqB,GAAG,IAAI,CAAC+B,QAAQ,CACzC,IAAI,CAAC,CAAC/B,qBAAqB,EAC3BmB,KACF,CAAC;IACD,IAAI,CAAC,CAACpB,iBAAiB,GAAG,IAAI,CAACkB,YAAY,CAAC,IAAI,CAAC,CAACjB,qBAAqB,CAAC;IACxE,OAAO,IAAI;EACb;EAEAgC,WAAWA,CAACb,KAAK,EAAE;IACjB,IAAIA,KAAK,GAAG,CAAC,IAAIA,KAAK,GAAG,IAAI,CAAC,CAACnB,qBAAqB,CAACa,MAAM,EAAE;MAC3D,IAAI,CAAC,CAACb,qBAAqB,CAACoB,MAAM,CAChCD,KAAK,GAAG,CAAC,EACT,CAAC,EACD,IAAI,CAAC,CAACnB,qBAAqB,CAACoB,MAAM,CAACD,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAChD,CAAC;MACD,IAAIA,KAAK,KAAK,CAAC,EAAE;QACf,IAAI,CAACc,kBAAkB,CAAC,CAAC;MAC3B;MACA,IAAI,CAAC,CAAClC,iBAAiB,GAAG,IAAI,CAACkB,YAAY,CAAC,IAAI,CAAC,CAACjB,qBAAqB,CAAC;IAC1E;IACA,OAAO,IAAI;EACb;EAEAkC,SAASA,CAACf,KAAK,EAAE;IACf,IAAIA,KAAK,IAAI,CAAC,IAAIA,KAAK,GAAG,IAAI,CAAC,CAACnB,qBAAqB,CAACa,MAAM,GAAG,CAAC,EAAE;MAChE,IAAI,CAAC,CAACb,qBAAqB,CAACoB,MAAM,CAChCD,KAAK,GAAG,CAAC,EACT,CAAC,EACD,IAAI,CAAC,CAACnB,qBAAqB,CAACoB,MAAM,CAACD,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAChD,CAAC;MACD,IAAIA,KAAK,KAAK,CAAC,EAAE;QACf,IAAI,CAACc,kBAAkB,CAAC,CAAC;MAC3B;MACA,IAAI,CAAC,CAAClC,iBAAiB,GAAG,IAAI,CAACkB,YAAY,CAAC,IAAI,CAAC,CAACjB,qBAAqB,CAAC;IAC1E;IACA,OAAO,IAAI;EACb;EAEAiC,kBAAkBA,CAAA,EAAG;IACnB,IAAI,CAAC,CAACjC,qBAAqB,CAAC,CAAC,CAAC,CAACmC,cAAc,CAC3C,IAAI,CAAC,CAACnC,qBAAqB,CAAC,CAAC,CAAC,CAACc,cAAc,CAAC,CAChD,CAAC;IACD,IAAI,CAAC,CAACd,qBAAqB,CAAC,CAAC,CAAC,CAACmC,cAAc,CAAC3B,SAAS,CAAC;EAC1D;EAEA,IAAI4B,kBAAkBA,CAAA,EAAG;IACvB,OAAO,CAAC,GAAG,IAAI,CAAC,CAACpC,qBAAqB,CAAC;EACzC;EAEA,IAAIqC,aAAaA,CAAA,EAAG;IAClB,OAAO,IAAI,CAAC,CAACrC,qBAAqB,CAACa,MAAM,GAAG,CAAC;EAC/C;EAEA,IAAIyB,SAASA,CAAA,EAAG;IACd,OAAO,IAAI,CAAC,CAACtC,qBAAqB,CAACa,MAAM,GAAG,CAAC;EAC/C;EAEA0B,oBAAoBA,CAAA,EAAG;IACrB,OAAO,IAAI,CAAC,CAACxC,iBAAiB,CAC3BM,GAAG,CAAEM,SAAS,IAAK4B,oBAAoB,CAAC5B,SAAS,CAAC,CAAC,CACnD6B,IAAI,CAAC,GAAG,CAAC;EACd;EAEAC,YAAYA,CAAA,EAAG;IACb,OAAO,IAAI,CAAC,CAAC1C,iBAAiB,CAC3BM,GAAG,CAAEM,SAAS,IAAK8B,YAAY,CAAC9B,SAAS,CAAC,CAAC,CAC3C6B,IAAI,CAAC,GAAG,CAAC;EACd;EAEAvB,YAAYA,CAACjB,qBAAqB,EAAE;IAClC,MAAM0C,mBAAmB,GAAG1C,qBAAqB,CAACK,GAAG,CAAEM,SAAS,IAC9DA,SAAS,YAAYgC,cAAc,IAAIhC,SAAS,CAACiC,UAAU,CAAC/B,MAAM,GAAG,CAAC,GAClE,IAAI8B,cAAc,CAChB,IAAI,CAACd,MAAM,CACTlB,SAAS,CAACiC,UAAU,EACpB,IAAI,CAACC,cAAc,CAAClC,SAAS,CAACiC,UAAU,CAC1C,CACF,CAAC,GACDjC,SACN,CAAC;IACD,OAAO,IAAI,CAACkB,MAAM,CAChBa,mBAAmB,EACnB,IAAI,CAACG,cAAc,CAACH,mBAAmB,CACzC,CAAC;EACH;EAEAb,MAAMA,CAACe,UAAU,EAAEhB,SAAS,EAAE;IAC5B,OAAOgB,UAAU,CAACE,MAAM,CAAC,CAACC,MAAM,EAAEpC,SAAS,EAAEQ,KAAK,EAAEyB,UAAU,KAAK;MACjE,MAAMI,QAAQ,GAAGpB,SAAS,CAACqB,IAAI,CAAED,QAAQ,IAAKA,QAAQ,CAACE,QAAQ,CAAC/B,KAAK,CAAC,CAAC;MACvE,IAAI6B,QAAQ,EAAE;QACZ,IAAIA,QAAQ,CAACG,UAAU,CAAChC,KAAK,CAAC,EAAE;UAC9B,MAAMiC,eAAe,GAAGJ,QAAQ,CAACK,OAAO,CAACT,UAAU,CAAC;UACpDG,MAAM,CAAC/B,IAAI,CAAC,IAAI2B,cAAc,CAACS,eAAe,CAAC,CAAC;QAClD;MACF,CAAC,MAAM;QACLL,MAAM,CAAC/B,IAAI,CAACL,SAAS,CAAC;MACxB;MACA,OAAOoC,MAAM;IACf,CAAC,EAAE,EAAE,CAAC;EACR;EAEAhB,QAAQA,CAACa,UAAU,EAAEU,UAAU,EAAE;IAC/B,IAAIV,UAAU,CAACU,UAAU,CAAC,CAACC,OAAO,CAAC,CAAC,EAAE;MACpC,MAAMC,IAAI,GAAG,CAAC,GAAGZ,UAAU,CAAC;MAC5BY,IAAI,CAACpC,MAAM,CACTkC,UAAU,EACV,CAAC,EACD,GAAGV,UAAU,CAACU,UAAU,CAAC,CAACG,oBAAoB,CAAC,CACjD,CAAC;MACD,OAAOD,IAAI;IACb;IACA,OAAOZ,UAAU;EACnB;EAEAC,cAAcA,CAACD,UAAU,EAAE;IACzB,MAAMc,WAAqB,GAAG,EAAE;IAChCd,UAAU,CAACe,OAAO,CAAC,CAAChD,SAAS,EAAEQ,KAAK,KAAK;MACvC,IAAIR,SAAS,CAACG,cAAc,CAAC,CAAC,KAAKnB,YAAY,CAACE,EAAE,EAAE;QAClD6D,WAAW,CAAC1C,IAAI,CAACG,KAAK,CAAC;MACzB;IACF,CAAC,CAAC;IACF,MAAMyC,MAAM,GAAG,CAAC,CAAChB,UAAU,CAACK,IAAI,CAC7BtC,SAAS,IAAKA,SAAS,CAACG,cAAc,CAAC,CAAC,KAAKnB,YAAY,CAACC,GAC7D,CAAC;IACD,MAAMiE,KAAK,GAAGH,WAAW,CAAC7C,MAAM,GAAG,CAAC;IACpC,IAAI+C,MAAM,IAAIC,KAAK,EAAE;MACnB,IAAIC,KAAK,GAAG,CAAC;MACb,MAAMlC,SAAqB,GAAG,EAAE;MAChC8B,WAAW,CAACC,OAAO,CAAC,CAACI,QAAQ,EAAE5C,KAAK,KAAK;QACvC,IAAI2C,KAAK,GAAGC,QAAQ,GAAG,CAAC,EAAE;UACxBnC,SAAS,CAACZ,IAAI,CAAC,IAAIgD,QAAQ,CAACF,KAAK,EAAEC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACnD;QACA,MAAME,eAAe,GAAGP,WAAW,CAAC7C,MAAM,KAAKM,KAAK,GAAG,CAAC;QACxD,MAAM+C,sBAAsB,GAAGtB,UAAU,CAAC/B,MAAM,GAAG,CAAC,GAAGkD,QAAQ;QAC/D,IAAIE,eAAe,IAAIC,sBAAsB,EAAE;UAC7CtC,SAAS,CAACZ,IAAI,CAAC,IAAIgD,QAAQ,CAACD,QAAQ,EAAEnB,UAAU,CAAC/B,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/D;QACAiD,KAAK,GAAGC,QAAQ;MAClB,CAAC,CAAC;MACF,OAAOnC,SAAS;IAClB;IACA,OAAO,EAAE;EACX;EAEAuC,MAAMA,CAAA,EAAG;IACP,MAAM1D,IAAI,GAAG,IAAI,CAAC,CAACR,aAAa;IAChC,MAAM2C,UAAU,GAAG,IAAI,CAAC,CAAC5C,qBAAqB;IAC9C,OAAO;MACLS,IAAI;MACJmC,UAAU,EAAEA,UAAU,CAACvC,GAAG,CAAEC,EAAE,IAAKA,EAAE,CAACH,KAAK,CAAC,CAAC;IAC/C,CAAC;EACH;EAEA,OAAOiE,IAAIA,CAACC,GAAG,EAAE;IACf,IAAIA,GAAG,YAAYvE,eAAe,EAAE;MAClC,OAAOuE,GAAG;IACZ;IACA,MAAMjE,QAAQ,GAAG,IAAIN,eAAe,CAAC,CAAC;IACtCM,QAAQ,CAAC,CAACH,aAAa,GAAGoE,GAAG,CAAC5D,IAAI;IAClCL,QAAQ,CAAC,CAACJ,qBAAqB,GAAGqE,GAAG,CAACzB,UAAU,CAACvC,GAAG,CAAEC,EAAE,IACtDgE,aAAa,CAAChE,EAAE,CAClB,CAAC;IACDF,QAAQ,CAAC,CAACL,iBAAiB,GAAGK,QAAQ,CAACa,YAAY,CACjDb,QAAQ,CAAC,CAACJ,qBACZ,CAAC;IACD,OAAOI,QAAQ;EACjB;AACF;AAEA,SAASkE,aAAaA,CAAChE,EAAE,EAAE;EACzB,IAAIA,EAAE,CAACsC,UAAU,EAAE;IACjB,OAAO,IAAID,cAAc,CACvBrC,EAAE,CAACsC,UAAU,CAACvC,GAAG,CAAEM,SAAS,IAAK2D,aAAa,CAAC3D,SAAS,CAAC,CAC3D,CAAC;EACH;EACA,IAAIL,EAAE,CAACL,aAAa,EAAE;IACpB,OAAO,IAAIsE,YAAY,CACrBjE,EAAE,CAACL,aAAa,EAChBK,EAAE,CAACkE,oBAAoB,EACvBlE,EAAE,CAACmE,WACL,CAAC;EACH;EACA,OAAO,IAAIC,SAAS,CAClBC,KAAK,CAACP,IAAI,CAAC9D,EAAE,CAACsE,KAAK,CAAC,EACpBtE,EAAE,CAACuE,QAAQ,EACXnF,SAAS,CAACY,EAAE,CAACwE,KAAK,CAAC,EACnBxE,EAAE,CAACmE,WACL,CAAC;AACH;AAEA,OAAO,MAAMT,QAAQ,CAAC;EAIpB9D,WAAWA,CAAC6E,KAAK,EAAEC,IAAI,EAAE;IACvB,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAI,OAAOC,IAAI,KAAK,QAAQ,EAAE;MACzD,MAAMjE,KAAK,CAAE,iCAAgCgE,KAAM,QAAOC,IAAK,EAAC,CAAC;IACnE,CAAC,MAAM,IAAID,KAAK,IAAIC,IAAI,EAAE;MACxB,MAAMjE,KAAK,CAAE,SAAQiE,IAAK,iCAAgCD,KAAM,GAAE,CAAC;IACrE;IACA,IAAI,CAACA,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;EAEA9B,QAAQA,CAAC/B,KAAK,EAAE;IACd,OAAO,IAAI,CAAC4D,KAAK,IAAI5D,KAAK,IAAI,IAAI,CAAC6D,IAAI,IAAI7D,KAAK;EAClD;EAEAgC,UAAUA,CAAChC,KAAK,EAAE;IAChB,OAAO,IAAI,CAAC4D,KAAK,KAAK5D,KAAK;EAC7B;EAEAkC,OAAOA,CAACT,UAAU,EAAE;IAClB,OAAO,CAAC,GAAGA,UAAU,CAAC,CAACxB,MAAM,CAAC,IAAI,CAAC2D,KAAK,EAAE,IAAI,CAACC,IAAI,GAAG,IAAI,CAACD,KAAK,GAAG,CAAC,CAAC;EACvE;AACF;AAEA,MAAMpC,cAAc,CAAC;EAGnBzC,WAAWA,CAAC0C,UAAU,EAAE;IACtB,IAAI,CAACqC,KAAK,CAACC,OAAO,CAACtC,UAAU,CAAC,IAAIA,UAAU,CAAC/B,MAAM,GAAG,CAAC,EAAE;MACvD,MAAME,KAAK,CAAC,4DAA4D,CAAC;IAC3E;IACA,IAAI,CAAC6B,UAAU,GAAGA,UAAU;EAC9B;EAEAuC,iBAAiBA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACvC,UAAU,CAAC,CAAC,CAAC,CAACuC,iBAAiB,CAAC,CAAC;EAC/C;EAEAC,eAAeA,CAAA,EAAG;IAChB,MAAM5B,IAAI,GAAG,CAAC,GAAG,IAAI,CAACZ,UAAU,CAAC;IACjCY,IAAI,CAACpC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACjB,OAAQ,IAAG,IAAI,CAACwB,UAAU,CAAC,CAAC,CAAC,CAACwC,eAAe,CAAC,CAAE,IAAG5B,IAAI,CACpDnD,GAAG,CAAEM,SAAS,IAAK4B,oBAAoB,CAAC5B,SAAS,CAAC,CAAC,CACnD6B,IAAI,CAAC,GAAG,CAAE,GAAE;EACjB;EAEA6C,mBAAmBA,CAAA,EAAG;IACpB,MAAM7B,IAAI,GAAG,CAAC,GAAG,IAAI,CAACZ,UAAU,CAAC;IACjCY,IAAI,CAACpC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACjB,OAAQ,IAAG,IAAI,CAACwB,UAAU,CAAC,CAAC,CAAC,CAACyC,mBAAmB,CAAC,CAAE,IAAG7B,IAAI,CACxDnD,GAAG,CAAEM,SAAS,IAAK8B,YAAY,CAAC9B,SAAS,CAAC,CAAC,CAC3C6B,IAAI,CAAC,GAAG,CAAE,GAAE;EACjB;EAEAd,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACkB,UAAU,CAAC,CAAC,CAAC,CAAClB,gBAAgB,CAAC,CAAC;IACrC,OAAO,IAAI;EACb;EAEAZ,cAAcA,CAAA,EAAG;IACf,OAAO,IAAI,CAAC8B,UAAU,CAAC,CAAC,CAAC,CAAC9B,cAAc,CAAC,CAAC;EAC5C;EAEAqB,cAAcA,CAACsC,WAAW,EAAE;IAC1B,IAAI,CAAC7B,UAAU,CAAC,CAAC,CAAC,CAACT,cAAc,CAACsC,WAAW,CAAC;EAChD;EAEAlB,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI;EACb;EAEAE,oBAAoBA,CAAA,EAAG;IACrB,OAAO,IAAI,CAACb,UAAU,CAACvC,GAAG,CAAEM,SAAS,IAAKA,SAAS,CAACR,KAAK,CAAC,CAAC,CAAC;EAC9D;EAEAA,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIwC,cAAc,CACvB,IAAI,CAACC,UAAU,CAACvC,GAAG,CAAEM,SAAS,IAAKA,SAAS,CAACR,KAAK,CAAC,CAAC,CACtD,CAAC;EACH;AACF;AAEA,OAAO,SAASoC,oBAAoBA,CAAC5B,SAAS,EAAE;EAC9C,OAAQ,GAAEA,SAAS,CAACwE,iBAAiB,CAAC,CAAE,GAAExE,SAAS,CAACyE,eAAe,CAAC,CAAE,EAAC;AACzE;AAEA,OAAO,SAAS3C,YAAYA,CAAC9B,SAAS,EAAE;EACtC,OAAQ,GAAEA,SAAS,CAACwE,iBAAiB,CAAC,CAAE,GAAExE,SAAS,CAAC0E,mBAAmB,CAAC,CAAE,EAAC;AAC7E;AAEA,OAAO,MAAMV,KAAK,CAAC;EAKjBzE,WAAWA,CAACO,IAAI,EAAE6E,IAAI,EAAEC,OAAO,EAAE;IAC/B,IAAI,CAAC9E,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MACrC,MAAMM,KAAK,CAAE,QAAON,IAAK,eAAc,CAAC;IAC1C;IACA,IAAI,CAAClB,cAAc,CAAC0D,IAAI,CAAEuC,aAAa,IAAKA,aAAa,CAAC/E,IAAI,KAAK6E,IAAI,CAAC,EAAE;MACxE,MAAMvE,KAAK,CAAE,QAAOuE,IAAK,eAAc,CAAC;IAC1C;IACA,IAAI,CAACC,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;MAC3C,MAAMxE,KAAK,CAAE,WAAUwE,OAAQ,eAAc,CAAC;IAChD;IACA,IAAI,CAAC9E,IAAI,GAAGA,IAAI;IAChB,IAAI,CAAC6E,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,OAAO,GAAGA,OAAO;EACxB;EAEA,OAAOnB,IAAIA,CAACC,GAAG,EAAE;IACf,OAAO,IAAIM,KAAK,CAACN,GAAG,CAAC5D,IAAI,EAAE4D,GAAG,CAACiB,IAAI,EAAEjB,GAAG,CAACkB,OAAO,CAAC;EACnD;AACF;AAEA,MAAME,iBAAiB,CAAC;EAGtBvF,WAAWA,CAACuE,WAAW,EAAE;IACvB,IAAIA,WAAW,IAAI,CAACiB,MAAM,CAACC,MAAM,CAAChG,YAAY,CAAC,CAAC8B,QAAQ,CAACgD,WAAW,CAAC,EAAE;MACrE,MAAM1D,KAAK,CAAE,eAAc0D,WAAY,6BAA4B,CAAC;IACtE;IACA,IAAI,CAACA,WAAW,GAAGA,WAAW;EAChC;EAEAU,iBAAiBA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACV,WAAW,GAAI,GAAE,IAAI,CAACA,WAAY,GAAE,GAAG,EAAE;EACvD;EAEA3D,cAAcA,CAAA,EAAG;IACf,OAAO,IAAI,CAAC2D,WAAW;EACzB;EAEAtC,cAAcA,CAACsC,WAAW,EAAE;IAC1B,IAAI,CAACA,WAAW,GAAGA,WAAW;EAChC;EAEAlB,OAAOA,CAAA,EAAG;IACR,OAAO,KAAK;EACd;EAEAE,oBAAoBA,CAAA,EAAG;IACrB,OAAO,CAAC,IAAI,CAAC;EACf;EAEAmC,iBAAiBA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACnB,WAAW;EACzB;EAEA/C,gBAAgBA,CAAA,EAAG;IACjB,MAAMX,KAAK,CACT,8EACF,CAAC;EACH;EAEAZ,KAAKA,CAAA,EAAG;IACN,MAAMY,KAAK,CACT,8EACF,CAAC;EACH;EAEAqE,eAAeA,CAAA,EAAG;IAChB,MAAMrE,KAAK,CACT,8EACF,CAAC;EACH;EAEAsE,mBAAmBA,CAAA,EAAG;IACpB,MAAMtE,KAAK,CACT,8EACF,CAAC;EACH;AACF;AAEA,OAAO,MAAM2D,SAAS,SAASe,iBAAiB,CAAC;EAK/CvF,WAAWA,CAAC0E,KAAK,EAAEC,QAAQ,EAAEC,KAAK,EAAEL,WAAW,EAAE;IAC/C,KAAK,CAACA,WAAW,CAAC;IAClB,IAAI,EAAEG,KAAK,YAAYD,KAAK,CAAC,EAAE;MAC7B,MAAM5D,KAAK,CAAE,SAAQ6D,KAAM,8BAA6B,CAAC;IAC3D;IACA,IAAI,OAAOC,QAAQ,KAAK,QAAQ,EAAE;MAChC,MAAM9D,KAAK,CAAE,YAAW8D,QAAS,0BAAyB,CAAC;IAC7D;IACA,IAAI,EAAEC,KAAK,YAAYrF,sBAAsB,CAAC,EAAE;MAC9C,MAAMsB,KAAK,CAAE,SAAQ+D,KAAM,4BAA2B,CAAC;IACzD;IACA,IAAI,CAACF,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,KAAK,GAAGA,KAAK;EACpB;EAEApD,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACkE,iBAAiB,CAAC,CAAC;IACxB,OAAO,IAAI;EACb;EAEAR,eAAeA,CAAA,EAAG;IAChB,OAAQ,IAAG,IAAI,CAACR,KAAK,CAACW,OAAQ,KAC5B,IAAI,CAACV,QACN,KAAI,IAAI,CAACC,KAAK,CAACvC,oBAAoB,CAAC,CAAE,GAAE;EAC3C;EAEA8C,mBAAmBA,CAAA,EAAG;IACpB,OAAO7F,aAAa,CAClB,IAAI,CAACoF,KAAK,CAACU,IAAI,EACf,IAAI,CAACV,KAAK,CAACnE,IAAI,EACf,IAAI,CAACoE,QAAQ,EACb,IAAI,CAACC,KACP,CAAC;EACH;EAEA3E,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIuE,SAAS,CAClBC,KAAK,CAACP,IAAI,CAAC,IAAI,CAACQ,KAAK,CAAC,EACtB,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,KAAK,CAAC3E,KAAK,CAAC,CAAC,EAClB,IAAI,CAACsE,WACP,CAAC;EACH;AACF;AAEA,OAAO,MAAMF,YAAY,SAASkB,iBAAiB,CAAC;EAIlDvF,WAAWA,CAACD,aAAa,EAAEuE,oBAAoB,EAAEC,WAAW,EAAE;IAC5D,KAAK,CAACA,WAAW,CAAC;IAClB,IAAI,OAAOxE,aAAa,KAAK,QAAQ,EAAE;MACrC,MAAMc,KAAK,CAAE,kBAAiBd,aAAc,eAAc,CAAC;IAC7D;IACA,IAAI,OAAOuE,oBAAoB,KAAK,QAAQ,EAAE;MAC5C,MAAMzD,KAAK,CAAE,0BAAyByD,oBAAqB,eAAc,CAAC;IAC5E;IACA,IAAI,CAACvE,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACuE,oBAAoB,GAAGA,oBAAoB;EAClD;EAEA9C,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACkE,iBAAiB,CAAC,CAAC;IACxB,OAAO,IAAI;EACb;EAEAR,eAAeA,CAAA,EAAG;IAChB,OAAQ,IAAG,IAAI,CAACZ,oBAAqB,GAAE;EACzC;EAEAa,mBAAmBA,CAAA,EAAG;IACpB,OAAO,IAAI,CAACpF,aAAa;EAC3B;EAEAE,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIoE,YAAY,CACrB,IAAI,CAACtE,aAAa,EAClB,IAAI,CAACuE,oBAAoB,EACzB,IAAI,CAACC,WACP,CAAC;EACH;AACF"}
@@ -1,12 +1,4 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.customOperators = exports.absoluteDateOrTimeOperatorNames = void 0;
5
- exports.getExpression = getExpression;
6
- exports.getOperatorConfig = getOperatorConfig;
7
- exports.getOperatorNames = getOperatorNames;
8
- exports.relativeDateOrTimeOperatorNames = void 0;
9
- var _inlineConditionValues = require("./inline-condition-values");
1
+ import { ConditionValue, dateDirections, dateTimeUnits, dateUnits, RelativeTimeValue, timeUnits } from "./inline-condition-values.js";
10
2
  const defaultOperators = {
11
3
  is: inline('=='),
12
4
  'is not': inline('!=')
@@ -31,7 +23,7 @@ const relativeTimeOperators = units => ({
31
23
  'is less than': relativeTime('>', '<', units),
32
24
  'is more than': relativeTime('<', '>', units)
33
25
  });
34
- const customOperators = exports.customOperators = {
26
+ export const customOperators = {
35
27
  CheckboxesField: {
36
28
  contains: reverseInline('in'),
37
29
  'does not contain': not(reverseInline('in'))
@@ -42,25 +34,25 @@ const customOperators = exports.customOperators = {
42
34
  'is less than': inline('<'),
43
35
  'is more than': inline('>')
44
36
  }),
45
- DateField: Object.assign({}, absoluteDateTimeOperators, relativeTimeOperators(_inlineConditionValues.dateUnits)),
46
- TimeField: Object.assign({}, absoluteDateTimeOperators, relativeTimeOperators(_inlineConditionValues.timeUnits)),
47
- DatePartsField: Object.assign({}, absoluteDateTimeOperators, relativeTimeOperators(_inlineConditionValues.dateUnits)),
48
- DateTimeField: Object.assign({}, absoluteDateTimeOperators, relativeTimeOperators(_inlineConditionValues.dateTimeUnits)),
49
- DateTimePartsField: Object.assign({}, absoluteDateTimeOperators, relativeTimeOperators(_inlineConditionValues.dateTimeUnits)),
37
+ DateField: Object.assign({}, absoluteDateTimeOperators, relativeTimeOperators(dateUnits)),
38
+ TimeField: Object.assign({}, absoluteDateTimeOperators, relativeTimeOperators(timeUnits)),
39
+ DatePartsField: Object.assign({}, absoluteDateTimeOperators, relativeTimeOperators(dateUnits)),
40
+ DateTimeField: Object.assign({}, absoluteDateTimeOperators, relativeTimeOperators(dateTimeUnits)),
41
+ DateTimePartsField: Object.assign({}, absoluteDateTimeOperators, relativeTimeOperators(dateTimeUnits)),
50
42
  TextField: withDefaults(textBasedFieldCustomisations),
51
43
  MultilineTextField: withDefaults(textBasedFieldCustomisations),
52
44
  EmailAddressField: withDefaults(textBasedFieldCustomisations)
53
45
  };
54
- function getOperatorNames(fieldType) {
46
+ export function getOperatorNames(fieldType) {
55
47
  return Object.keys(getConditionals(fieldType)).sort();
56
48
  }
57
- function getExpression(fieldType, fieldName, operator, value) {
49
+ export function getExpression(fieldType, fieldName, operator, value) {
58
50
  return getConditionals(fieldType)[operator].expression({
59
51
  type: fieldType,
60
52
  name: fieldName
61
53
  }, value);
62
54
  }
63
- function getOperatorConfig(fieldType, operator) {
55
+ export function getOperatorConfig(fieldType, operator) {
64
56
  return getConditionals(fieldType)[operator];
65
57
  }
66
58
  function getConditionals(fieldType) {
@@ -92,12 +84,12 @@ function formatValue(fieldType, value) {
92
84
  }
93
85
  return `'${value}'`;
94
86
  }
95
- const absoluteDateOrTimeOperatorNames = exports.absoluteDateOrTimeOperatorNames = Object.keys(absoluteDateTimeOperators);
96
- const relativeDateOrTimeOperatorNames = exports.relativeDateOrTimeOperatorNames = Object.keys(relativeTimeOperators(_inlineConditionValues.dateTimeUnits));
87
+ export const absoluteDateOrTimeOperatorNames = Object.keys(absoluteDateTimeOperators);
88
+ export const relativeDateOrTimeOperatorNames = Object.keys(relativeTimeOperators(dateTimeUnits));
97
89
  function absoluteDateTime(operator) {
98
90
  return {
99
91
  expression: (field, value) => {
100
- if (value instanceof _inlineConditionValues.ConditionValue) {
92
+ if (value instanceof ConditionValue) {
101
93
  return `${field.name} ${operator} '${value.toExpression()}'`;
102
94
  }
103
95
  throw Error('only Value types are supported');
@@ -108,8 +100,8 @@ function relativeTime(pastOperator, futureOperator, units) {
108
100
  return {
109
101
  units,
110
102
  expression: (field, value) => {
111
- if (value instanceof _inlineConditionValues.RelativeTimeValue) {
112
- const operator = value.direction === _inlineConditionValues.dateDirections.PAST ? pastOperator : futureOperator;
103
+ if (value instanceof RelativeTimeValue) {
104
+ const operator = value.direction === dateDirections.PAST ? pastOperator : futureOperator;
113
105
  return `${field.name} ${operator} ${value.toExpression()}`;
114
106
  }
115
107
  throw Error('time shift requires a TimeShiftValue');
@@ -1 +1 @@
1
- {"version":3,"file":"inline-condition-operators.js","names":["_inlineConditionValues","require","defaultOperators","is","inline","withDefaults","param","Object","assign","textBasedFieldCustomisations","lengthIs","absoluteDateTimeOperators","absoluteDateTime","relativeTimeOperators","units","relativeTime","customOperators","exports","CheckboxesField","contains","reverseInline","not","NumberField","DateField","dateUnits","TimeField","timeUnits","DatePartsField","DateTimeField","dateTimeUnits","DateTimePartsField","TextField","MultilineTextField","EmailAddressField","getOperatorNames","fieldType","keys","getConditionals","sort","getExpression","fieldName","operator","value","expression","type","name","getOperatorConfig","field","formatValue","operatorDefinition","absoluteDateOrTimeOperatorNames","relativeDateOrTimeOperatorNames","ConditionValue","toExpression","Error","pastOperator","futureOperator","RelativeTimeValue","direction","dateDirections","PAST"],"sources":["../../../src/conditions/inline-condition-operators.ts"],"sourcesContent":["import {\n ConditionValue,\n dateDirections,\n dateTimeUnits,\n dateUnits,\n RelativeTimeValue,\n timeUnits\n} from '~/src/conditions/inline-condition-values'\n\nconst defaultOperators = {\n is: inline('=='),\n 'is not': inline('!=')\n}\n\nfunction withDefaults(param) {\n return Object.assign({}, param, defaultOperators)\n}\n\nconst textBasedFieldCustomisations = {\n 'is longer than': lengthIs('>'),\n 'is shorter than': lengthIs('<'),\n 'has length': lengthIs('==')\n}\n\nconst absoluteDateTimeOperators = {\n is: absoluteDateTime('=='),\n 'is not': absoluteDateTime('!='),\n 'is before': absoluteDateTime('<'),\n 'is after': absoluteDateTime('>')\n}\n\nconst relativeTimeOperators = (units) => ({\n 'is at least': relativeTime('<=', '>=', units),\n 'is at most': relativeTime('>=', '<=', units),\n 'is less than': relativeTime('>', '<', units),\n 'is more than': relativeTime('<', '>', units)\n})\n\nexport const customOperators = {\n CheckboxesField: {\n contains: reverseInline('in'),\n 'does not contain': not(reverseInline('in'))\n },\n NumberField: withDefaults({\n 'is at least': inline('>='),\n 'is at most': inline('<='),\n 'is less than': inline('<'),\n 'is more than': inline('>')\n }),\n DateField: Object.assign(\n {},\n absoluteDateTimeOperators,\n relativeTimeOperators(dateUnits)\n ),\n TimeField: Object.assign(\n {},\n absoluteDateTimeOperators,\n relativeTimeOperators(timeUnits)\n ),\n DatePartsField: Object.assign(\n {},\n absoluteDateTimeOperators,\n relativeTimeOperators(dateUnits)\n ),\n DateTimeField: Object.assign(\n {},\n absoluteDateTimeOperators,\n relativeTimeOperators(dateTimeUnits)\n ),\n DateTimePartsField: Object.assign(\n {},\n absoluteDateTimeOperators,\n relativeTimeOperators(dateTimeUnits)\n ),\n TextField: withDefaults(textBasedFieldCustomisations),\n MultilineTextField: withDefaults(textBasedFieldCustomisations),\n EmailAddressField: withDefaults(textBasedFieldCustomisations)\n}\n\nexport function getOperatorNames(fieldType) {\n return Object.keys(getConditionals(fieldType)).sort()\n}\n\nexport function getExpression(fieldType, fieldName, operator, value) {\n return getConditionals(fieldType)[operator].expression(\n { type: fieldType, name: fieldName },\n value\n )\n}\n\nexport function getOperatorConfig(fieldType, operator) {\n return getConditionals(fieldType)[operator]\n}\n\nfunction getConditionals(fieldType) {\n return customOperators[fieldType] || defaultOperators\n}\n\nfunction inline(operator) {\n return {\n expression: (field, value) =>\n `${field.name} ${operator} ${formatValue(field.type, value.value)}`\n }\n}\n\nfunction lengthIs(operator) {\n return {\n expression: (field, value) =>\n `length(${field.name}) ${operator} ${value.value}`\n }\n}\n\nfunction reverseInline(operator) {\n return {\n expression: (field, value) =>\n `${formatValue(field.type, value.value)} ${operator} ${field.name}`\n }\n}\n\nfunction not(operatorDefinition) {\n return {\n expression: (field, value) =>\n `not (${operatorDefinition.expression(field, value)})`\n }\n}\n\nfunction formatValue(fieldType, value) {\n if (fieldType === 'NumberField' || fieldType === 'YesNoField') {\n return value\n }\n return `'${value}'`\n}\n\nexport const absoluteDateOrTimeOperatorNames = Object.keys(\n absoluteDateTimeOperators\n)\nexport const relativeDateOrTimeOperatorNames = Object.keys(\n relativeTimeOperators(dateTimeUnits)\n)\n\nfunction absoluteDateTime(operator) {\n return {\n expression: (field, value) => {\n if (value instanceof ConditionValue) {\n return `${field.name} ${operator} '${value.toExpression()}'`\n }\n throw Error('only Value types are supported')\n }\n }\n}\n\nfunction relativeTime(pastOperator, futureOperator, units) {\n return {\n units,\n expression: (field, value) => {\n if (value instanceof RelativeTimeValue) {\n const operator =\n value.direction === dateDirections.PAST\n ? pastOperator\n : futureOperator\n return `${field.name} ${operator} ${value.toExpression()}`\n }\n throw Error('time shift requires a TimeShiftValue')\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"inline-condition-operators.js","names":["ConditionValue","dateDirections","dateTimeUnits","dateUnits","RelativeTimeValue","timeUnits","defaultOperators","is","inline","withDefaults","param","Object","assign","textBasedFieldCustomisations","lengthIs","absoluteDateTimeOperators","absoluteDateTime","relativeTimeOperators","units","relativeTime","customOperators","CheckboxesField","contains","reverseInline","not","NumberField","DateField","TimeField","DatePartsField","DateTimeField","DateTimePartsField","TextField","MultilineTextField","EmailAddressField","getOperatorNames","fieldType","keys","getConditionals","sort","getExpression","fieldName","operator","value","expression","type","name","getOperatorConfig","field","formatValue","operatorDefinition","absoluteDateOrTimeOperatorNames","relativeDateOrTimeOperatorNames","toExpression","Error","pastOperator","futureOperator","direction","PAST"],"sources":["../../../src/conditions/inline-condition-operators.ts"],"sourcesContent":["import {\n ConditionValue,\n dateDirections,\n dateTimeUnits,\n dateUnits,\n RelativeTimeValue,\n timeUnits\n} from '~/src/conditions/inline-condition-values.js'\n\nconst defaultOperators = {\n is: inline('=='),\n 'is not': inline('!=')\n}\n\nfunction withDefaults(param) {\n return Object.assign({}, param, defaultOperators)\n}\n\nconst textBasedFieldCustomisations = {\n 'is longer than': lengthIs('>'),\n 'is shorter than': lengthIs('<'),\n 'has length': lengthIs('==')\n}\n\nconst absoluteDateTimeOperators = {\n is: absoluteDateTime('=='),\n 'is not': absoluteDateTime('!='),\n 'is before': absoluteDateTime('<'),\n 'is after': absoluteDateTime('>')\n}\n\nconst relativeTimeOperators = (units) => ({\n 'is at least': relativeTime('<=', '>=', units),\n 'is at most': relativeTime('>=', '<=', units),\n 'is less than': relativeTime('>', '<', units),\n 'is more than': relativeTime('<', '>', units)\n})\n\nexport const customOperators = {\n CheckboxesField: {\n contains: reverseInline('in'),\n 'does not contain': not(reverseInline('in'))\n },\n NumberField: withDefaults({\n 'is at least': inline('>='),\n 'is at most': inline('<='),\n 'is less than': inline('<'),\n 'is more than': inline('>')\n }),\n DateField: Object.assign(\n {},\n absoluteDateTimeOperators,\n relativeTimeOperators(dateUnits)\n ),\n TimeField: Object.assign(\n {},\n absoluteDateTimeOperators,\n relativeTimeOperators(timeUnits)\n ),\n DatePartsField: Object.assign(\n {},\n absoluteDateTimeOperators,\n relativeTimeOperators(dateUnits)\n ),\n DateTimeField: Object.assign(\n {},\n absoluteDateTimeOperators,\n relativeTimeOperators(dateTimeUnits)\n ),\n DateTimePartsField: Object.assign(\n {},\n absoluteDateTimeOperators,\n relativeTimeOperators(dateTimeUnits)\n ),\n TextField: withDefaults(textBasedFieldCustomisations),\n MultilineTextField: withDefaults(textBasedFieldCustomisations),\n EmailAddressField: withDefaults(textBasedFieldCustomisations)\n}\n\nexport function getOperatorNames(fieldType) {\n return Object.keys(getConditionals(fieldType)).sort()\n}\n\nexport function getExpression(fieldType, fieldName, operator, value) {\n return getConditionals(fieldType)[operator].expression(\n { type: fieldType, name: fieldName },\n value\n )\n}\n\nexport function getOperatorConfig(fieldType, operator) {\n return getConditionals(fieldType)[operator]\n}\n\nfunction getConditionals(fieldType) {\n return customOperators[fieldType] || defaultOperators\n}\n\nfunction inline(operator) {\n return {\n expression: (field, value) =>\n `${field.name} ${operator} ${formatValue(field.type, value.value)}`\n }\n}\n\nfunction lengthIs(operator) {\n return {\n expression: (field, value) =>\n `length(${field.name}) ${operator} ${value.value}`\n }\n}\n\nfunction reverseInline(operator) {\n return {\n expression: (field, value) =>\n `${formatValue(field.type, value.value)} ${operator} ${field.name}`\n }\n}\n\nfunction not(operatorDefinition) {\n return {\n expression: (field, value) =>\n `not (${operatorDefinition.expression(field, value)})`\n }\n}\n\nfunction formatValue(fieldType, value) {\n if (fieldType === 'NumberField' || fieldType === 'YesNoField') {\n return value\n }\n return `'${value}'`\n}\n\nexport const absoluteDateOrTimeOperatorNames = Object.keys(\n absoluteDateTimeOperators\n)\nexport const relativeDateOrTimeOperatorNames = Object.keys(\n relativeTimeOperators(dateTimeUnits)\n)\n\nfunction absoluteDateTime(operator) {\n return {\n expression: (field, value) => {\n if (value instanceof ConditionValue) {\n return `${field.name} ${operator} '${value.toExpression()}'`\n }\n throw Error('only Value types are supported')\n }\n }\n}\n\nfunction relativeTime(pastOperator, futureOperator, units) {\n return {\n units,\n expression: (field, value) => {\n if (value instanceof RelativeTimeValue) {\n const operator =\n value.direction === dateDirections.PAST\n ? pastOperator\n : futureOperator\n return `${field.name} ${operator} ${value.toExpression()}`\n }\n throw Error('time shift requires a TimeShiftValue')\n }\n }\n}\n"],"mappings":"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"}
@@ -1,8 +1,3 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.timeUnits = exports.relativeTimeValueType = exports.dateUnits = exports.dateTimeUnits = exports.dateDirections = exports.RelativeTimeValue = exports.ConditionValue = exports.AbstractConditionValue = void 0;
5
- exports.valueFrom = valueFrom;
6
1
  const conditionValueFactories = {};
7
2
  class Registration {
8
3
  constructor(type, factory) {
@@ -10,7 +5,7 @@ class Registration {
10
5
  this.type = type;
11
6
  }
12
7
  }
13
- class AbstractConditionValue {
8
+ export class AbstractConditionValue {
14
9
  constructor(registration) {
15
10
  if (new.target === AbstractConditionValue) {
16
11
  throw new TypeError('Cannot construct ConditionValue instances directly');
@@ -23,9 +18,8 @@ class AbstractConditionValue {
23
18
  toPresentationString() {}
24
19
  toExpression() {}
25
20
  }
26
- exports.AbstractConditionValue = AbstractConditionValue;
27
21
  const valueType = registerValueType('Value', obj => ConditionValue.from(obj));
28
- class ConditionValue extends AbstractConditionValue {
22
+ export class ConditionValue extends AbstractConditionValue {
29
23
  constructor(value, display) {
30
24
  super(valueType);
31
25
  if (!value || typeof value !== 'string') {
@@ -50,12 +44,11 @@ class ConditionValue extends AbstractConditionValue {
50
44
  return ConditionValue.from(this);
51
45
  }
52
46
  }
53
- exports.ConditionValue = ConditionValue;
54
- const dateDirections = exports.dateDirections = {
47
+ export const dateDirections = {
55
48
  FUTURE: 'in the future',
56
49
  PAST: 'in the past'
57
50
  };
58
- const dateUnits = exports.dateUnits = {
51
+ export const dateUnits = {
59
52
  YEARS: {
60
53
  display: 'year(s)',
61
54
  value: 'years'
@@ -69,7 +62,7 @@ const dateUnits = exports.dateUnits = {
69
62
  value: 'days'
70
63
  }
71
64
  };
72
- const timeUnits = exports.timeUnits = {
65
+ export const timeUnits = {
73
66
  HOURS: {
74
67
  display: 'hour(s)',
75
68
  value: 'hours'
@@ -83,9 +76,9 @@ const timeUnits = exports.timeUnits = {
83
76
  value: 'seconds'
84
77
  }
85
78
  };
86
- const dateTimeUnits = exports.dateTimeUnits = Object.assign({}, dateUnits, timeUnits);
87
- const relativeTimeValueType = exports.relativeTimeValueType = registerValueType('RelativeTime', obj => RelativeTimeValue.from(obj));
88
- class RelativeTimeValue extends AbstractConditionValue {
79
+ export const dateTimeUnits = Object.assign({}, dateUnits, timeUnits);
80
+ export const relativeTimeValueType = registerValueType('RelativeTime', obj => RelativeTimeValue.from(obj));
81
+ export class RelativeTimeValue extends AbstractConditionValue {
89
82
  constructor(timePeriod, timeUnit, direction, timeOnly = false) {
90
83
  super(relativeTimeValueType);
91
84
  if (typeof timePeriod !== 'string') {
@@ -124,11 +117,10 @@ class RelativeTimeValue extends AbstractConditionValue {
124
117
  * Otherwise we can't guarantee they've been registered for deserialization before
125
118
  * valueFrom is called
126
119
  */
127
- exports.RelativeTimeValue = RelativeTimeValue;
128
120
  function registerValueType(type, factory) {
129
121
  return new Registration(type, factory);
130
122
  }
131
- function valueFrom(obj) {
123
+ export function valueFrom(obj) {
132
124
  return conditionValueFactories[obj.type](obj);
133
125
  }
134
126
  //# sourceMappingURL=inline-condition-values.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inline-condition-values.js","names":["conditionValueFactories","Registration","constructor","type","factory","AbstractConditionValue","registration","new","target","TypeError","toPresentationString","toExpression","exports","valueType","registerValueType","obj","ConditionValue","from","value","display","Error","clone","dateDirections","FUTURE","PAST","dateUnits","YEARS","MONTHS","DAYS","timeUnits","HOURS","MINUTES","SECONDS","dateTimeUnits","Object","assign","relativeTimeValueType","RelativeTimeValue","timePeriod","timeUnit","direction","timeOnly","values","map","it","includes","Number","valueFrom"],"sources":["../../../src/conditions/inline-condition-values.ts"],"sourcesContent":["const conditionValueFactories = {}\n\nclass Registration {\n type\n\n constructor(type, factory) {\n conditionValueFactories[type] = factory\n this.type = type\n }\n}\n\nexport class AbstractConditionValue {\n type\n\n constructor(registration) {\n if (new.target === AbstractConditionValue) {\n throw new TypeError('Cannot construct ConditionValue instances directly')\n }\n if (!(registration instanceof Registration)) {\n throw new TypeError(\n 'You must register your value type! Call registerValueType!'\n )\n }\n this.type = registration.type\n }\n\n toPresentationString() {}\n toExpression() {}\n}\n\nconst valueType = registerValueType('Value', (obj) => ConditionValue.from(obj))\nexport class ConditionValue extends AbstractConditionValue {\n value\n display\n\n constructor(value, display) {\n super(valueType)\n if (!value || typeof value !== 'string') {\n throw Error(`value ${value} is not valid`)\n }\n if (display && typeof display !== 'string') {\n throw Error(`display ${display} is not valid`)\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) {\n return new ConditionValue(obj.value, obj.display)\n }\n\n clone() {\n return ConditionValue.from(this)\n }\n}\n\nexport const dateDirections = {\n FUTURE: 'in the future',\n PAST: 'in the past'\n}\n\nexport const dateUnits = {\n YEARS: { display: 'year(s)', value: 'years' },\n MONTHS: { display: 'month(s)', value: 'months' },\n DAYS: { display: 'day(s)', value: 'days' }\n}\nexport const timeUnits = {\n HOURS: { display: 'hour(s)', value: 'hours' },\n MINUTES: { display: 'minute(s)', value: 'minutes' },\n SECONDS: { display: 'second(s)', value: 'seconds' }\n}\nexport const dateTimeUnits = Object.assign({}, dateUnits, timeUnits)\n\nexport const relativeTimeValueType = registerValueType('RelativeTime', (obj) =>\n RelativeTimeValue.from(obj)\n)\nexport class RelativeTimeValue extends AbstractConditionValue {\n timePeriod\n timeUnit\n direction\n timeOnly\n\n constructor(timePeriod, timeUnit, direction, timeOnly = false) {\n super(relativeTimeValueType)\n if (typeof timePeriod !== 'string') {\n throw Error(`time period ${timePeriod} is not valid`)\n }\n if (\n !Object.values(dateTimeUnits)\n .map((it) => it.value)\n .includes(timeUnit)\n ) {\n throw Error(`time unit ${timeUnit} is not valid`)\n }\n if (!Object.values(dateDirections).includes(direction)) {\n throw Error(`direction ${direction} is not valid`)\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() {\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\n/**\n * All value types should call this, and should be located in this file.\n * Furthermore the types should be registered without the classes needing to be instantiated.\n *\n * Otherwise we can't guarantee they've been registered for deserialization before\n * valueFrom is called\n */\nfunction registerValueType(type, factory) {\n return new Registration(type, factory)\n}\n\nexport function valueFrom(obj) {\n return conditionValueFactories[obj.type](obj)\n}\n"],"mappings":";;;;;AAAA,MAAMA,uBAAuB,GAAG,CAAC,CAAC;AAElC,MAAMC,YAAY,CAAC;EAGjBC,WAAWA,CAACC,IAAI,EAAEC,OAAO,EAAE;IACzBJ,uBAAuB,CAACG,IAAI,CAAC,GAAGC,OAAO;IACvC,IAAI,CAACD,IAAI,GAAGA,IAAI;EAClB;AACF;AAEO,MAAME,sBAAsB,CAAC;EAGlCH,WAAWA,CAACI,YAAY,EAAE;IACxB,IAAIC,GAAG,CAACC,MAAM,KAAKH,sBAAsB,EAAE;MACzC,MAAM,IAAII,SAAS,CAAC,oDAAoD,CAAC;IAC3E;IACA,IAAI,EAAEH,YAAY,YAAYL,YAAY,CAAC,EAAE;MAC3C,MAAM,IAAIQ,SAAS,CACjB,4DACF,CAAC;IACH;IACA,IAAI,CAACN,IAAI,GAAGG,YAAY,CAACH,IAAI;EAC/B;EAEAO,oBAAoBA,CAAA,EAAG,CAAC;EACxBC,YAAYA,CAAA,EAAG,CAAC;AAClB;AAACC,OAAA,CAAAP,sBAAA,GAAAA,sBAAA;AAED,MAAMQ,SAAS,GAAGC,iBAAiB,CAAC,OAAO,EAAGC,GAAG,IAAKC,cAAc,CAACC,IAAI,CAACF,GAAG,CAAC,CAAC;AACxE,MAAMC,cAAc,SAASX,sBAAsB,CAAC;EAIzDH,WAAWA,CAACgB,KAAK,EAAEC,OAAO,EAAE;IAC1B,KAAK,CAACN,SAAS,CAAC;IAChB,IAAI,CAACK,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MACvC,MAAME,KAAK,CAAE,SAAQF,KAAM,eAAc,CAAC;IAC5C;IACA,IAAIC,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;MAC1C,MAAMC,KAAK,CAAE,WAAUD,OAAQ,eAAc,CAAC;IAChD;IACA,IAAI,CAACD,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,OAAO,GAAGA,OAAO,IAAID,KAAK;EACjC;EAEAR,oBAAoBA,CAAA,EAAG;IACrB,OAAO,IAAI,CAACS,OAAO;EACrB;EAEAR,YAAYA,CAAA,EAAG;IACb,OAAO,IAAI,CAACO,KAAK;EACnB;EAEA,OAAOD,IAAIA,CAACF,GAAG,EAAE;IACf,OAAO,IAAIC,cAAc,CAACD,GAAG,CAACG,KAAK,EAAEH,GAAG,CAACI,OAAO,CAAC;EACnD;EAEAE,KAAKA,CAAA,EAAG;IACN,OAAOL,cAAc,CAACC,IAAI,CAAC,IAAI,CAAC;EAClC;AACF;AAACL,OAAA,CAAAI,cAAA,GAAAA,cAAA;AAEM,MAAMM,cAAc,GAAAV,OAAA,CAAAU,cAAA,GAAG;EAC5BC,MAAM,EAAE,eAAe;EACvBC,IAAI,EAAE;AACR,CAAC;AAEM,MAAMC,SAAS,GAAAb,OAAA,CAAAa,SAAA,GAAG;EACvBC,KAAK,EAAE;IAAEP,OAAO,EAAE,SAAS;IAAED,KAAK,EAAE;EAAQ,CAAC;EAC7CS,MAAM,EAAE;IAAER,OAAO,EAAE,UAAU;IAAED,KAAK,EAAE;EAAS,CAAC;EAChDU,IAAI,EAAE;IAAET,OAAO,EAAE,QAAQ;IAAED,KAAK,EAAE;EAAO;AAC3C,CAAC;AACM,MAAMW,SAAS,GAAAjB,OAAA,CAAAiB,SAAA,GAAG;EACvBC,KAAK,EAAE;IAAEX,OAAO,EAAE,SAAS;IAAED,KAAK,EAAE;EAAQ,CAAC;EAC7Ca,OAAO,EAAE;IAAEZ,OAAO,EAAE,WAAW;IAAED,KAAK,EAAE;EAAU,CAAC;EACnDc,OAAO,EAAE;IAAEb,OAAO,EAAE,WAAW;IAAED,KAAK,EAAE;EAAU;AACpD,CAAC;AACM,MAAMe,aAAa,GAAArB,OAAA,CAAAqB,aAAA,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEV,SAAS,EAAEI,SAAS,CAAC;AAE7D,MAAMO,qBAAqB,GAAAxB,OAAA,CAAAwB,qBAAA,GAAGtB,iBAAiB,CAAC,cAAc,EAAGC,GAAG,IACzEsB,iBAAiB,CAACpB,IAAI,CAACF,GAAG,CAC5B,CAAC;AACM,MAAMsB,iBAAiB,SAAShC,sBAAsB,CAAC;EAM5DH,WAAWA,CAACoC,UAAU,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,GAAG,KAAK,EAAE;IAC7D,KAAK,CAACL,qBAAqB,CAAC;IAC5B,IAAI,OAAOE,UAAU,KAAK,QAAQ,EAAE;MAClC,MAAMlB,KAAK,CAAE,eAAckB,UAAW,eAAc,CAAC;IACvD;IACA,IACE,CAACJ,MAAM,CAACQ,MAAM,CAACT,aAAa,CAAC,CAC1BU,GAAG,CAAEC,EAAE,IAAKA,EAAE,CAAC1B,KAAK,CAAC,CACrB2B,QAAQ,CAACN,QAAQ,CAAC,EACrB;MACA,MAAMnB,KAAK,CAAE,aAAYmB,QAAS,eAAc,CAAC;IACnD;IACA,IAAI,CAACL,MAAM,CAACQ,MAAM,CAACpB,cAAc,CAAC,CAACuB,QAAQ,CAACL,SAAS,CAAC,EAAE;MACtD,MAAMpB,KAAK,CAAE,aAAYoB,SAAU,eAAc,CAAC;IACpD;IACA,IAAI,CAACF,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC1B;EAEA/B,oBAAoBA,CAAA,EAAG;IACrB,OAAQ,GAAE,IAAI,CAAC4B,UAAW,IAAG,IAAI,CAACC,QAAS,IAAG,IAAI,CAACC,SAAU,EAAC;EAChE;EAEA7B,YAAYA,CAAA,EAAG;IACb,MAAM2B,UAAU,GACd,IAAI,CAACE,SAAS,KAAKlB,cAAc,CAACE,IAAI,GAClC,CAAC,GAAGsB,MAAM,CAAC,IAAI,CAACR,UAAU,CAAC,GAC3B,IAAI,CAACA,UAAU;IACrB,OAAO,IAAI,CAACG,QAAQ,GACf,qBAAoBH,UAAW,MAAK,IAAI,CAACC,QAAS,IAAG,GACrD,qBAAoBD,UAAW,MAAK,IAAI,CAACC,QAAS,IAAG;EAC5D;EAEA,OAAOtB,IAAIA,CAACF,GAAG,EAAE;IACf,OAAO,IAAIsB,iBAAiB,CAC1BtB,GAAG,CAACuB,UAAU,EACdvB,GAAG,CAACwB,QAAQ,EACZxB,GAAG,CAACyB,SAAS,EACbzB,GAAG,CAAC0B,QACN,CAAC;EACH;EAEApB,KAAKA,CAAA,EAAG;IACN,OAAOgB,iBAAiB,CAACpB,IAAI,CAAC,IAAI,CAAC;EACrC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AANAL,OAAA,CAAAyB,iBAAA,GAAAA,iBAAA;AAOA,SAASvB,iBAAiBA,CAACX,IAAI,EAAEC,OAAO,EAAE;EACxC,OAAO,IAAIH,YAAY,CAACE,IAAI,EAAEC,OAAO,CAAC;AACxC;AAEO,SAAS2C,SAASA,CAAChC,GAAG,EAAE;EAC7B,OAAOf,uBAAuB,CAACe,GAAG,CAACZ,IAAI,CAAC,CAACY,GAAG,CAAC;AAC/C"}
1
+ {"version":3,"file":"inline-condition-values.js","names":["conditionValueFactories","Registration","constructor","type","factory","AbstractConditionValue","registration","new","target","TypeError","toPresentationString","toExpression","valueType","registerValueType","obj","ConditionValue","from","value","display","Error","clone","dateDirections","FUTURE","PAST","dateUnits","YEARS","MONTHS","DAYS","timeUnits","HOURS","MINUTES","SECONDS","dateTimeUnits","Object","assign","relativeTimeValueType","RelativeTimeValue","timePeriod","timeUnit","direction","timeOnly","values","map","it","includes","Number","valueFrom"],"sources":["../../../src/conditions/inline-condition-values.ts"],"sourcesContent":["const conditionValueFactories = {}\n\nclass Registration {\n type\n\n constructor(type, factory) {\n conditionValueFactories[type] = factory\n this.type = type\n }\n}\n\nexport class AbstractConditionValue {\n type\n\n constructor(registration) {\n if (new.target === AbstractConditionValue) {\n throw new TypeError('Cannot construct ConditionValue instances directly')\n }\n if (!(registration instanceof Registration)) {\n throw new TypeError(\n 'You must register your value type! Call registerValueType!'\n )\n }\n this.type = registration.type\n }\n\n toPresentationString() {}\n toExpression() {}\n}\n\nconst valueType = registerValueType('Value', (obj) => ConditionValue.from(obj))\nexport class ConditionValue extends AbstractConditionValue {\n value\n display\n\n constructor(value, display) {\n super(valueType)\n if (!value || typeof value !== 'string') {\n throw Error(`value ${value} is not valid`)\n }\n if (display && typeof display !== 'string') {\n throw Error(`display ${display} is not valid`)\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) {\n return new ConditionValue(obj.value, obj.display)\n }\n\n clone() {\n return ConditionValue.from(this)\n }\n}\n\nexport const dateDirections = {\n FUTURE: 'in the future',\n PAST: 'in the past'\n}\n\nexport const dateUnits = {\n YEARS: { display: 'year(s)', value: 'years' },\n MONTHS: { display: 'month(s)', value: 'months' },\n DAYS: { display: 'day(s)', value: 'days' }\n}\nexport const timeUnits = {\n HOURS: { display: 'hour(s)', value: 'hours' },\n MINUTES: { display: 'minute(s)', value: 'minutes' },\n SECONDS: { display: 'second(s)', value: 'seconds' }\n}\nexport const dateTimeUnits = Object.assign({}, dateUnits, timeUnits)\n\nexport const relativeTimeValueType = registerValueType('RelativeTime', (obj) =>\n RelativeTimeValue.from(obj)\n)\nexport class RelativeTimeValue extends AbstractConditionValue {\n timePeriod\n timeUnit\n direction\n timeOnly\n\n constructor(timePeriod, timeUnit, direction, timeOnly = false) {\n super(relativeTimeValueType)\n if (typeof timePeriod !== 'string') {\n throw Error(`time period ${timePeriod} is not valid`)\n }\n if (\n !Object.values(dateTimeUnits)\n .map((it) => it.value)\n .includes(timeUnit)\n ) {\n throw Error(`time unit ${timeUnit} is not valid`)\n }\n if (!Object.values(dateDirections).includes(direction)) {\n throw Error(`direction ${direction} is not valid`)\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() {\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\n/**\n * All value types should call this, and should be located in this file.\n * Furthermore the types should be registered without the classes needing to be instantiated.\n *\n * Otherwise we can't guarantee they've been registered for deserialization before\n * valueFrom is called\n */\nfunction registerValueType(type, factory) {\n return new Registration(type, factory)\n}\n\nexport function valueFrom(obj) {\n return conditionValueFactories[obj.type](obj)\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";
1
+ export {};
2
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/conditions/types.ts"],"sourcesContent":["import { type Condition } from '~/src/conditions/condition'\nimport { type ConditionRef } from '~/src/conditions/condition-ref'\nimport { type ConditionGroup } from '~/src/conditions/condition-group'\n\nexport type ConditionsArray = (Condition | ConditionGroup | ConditionRef)[]\n\nexport type DateTimeUnitValues =\n | 'years'\n | 'months'\n | 'days'\n | 'hours'\n | 'minutes'\n | 'seconds'\n\nexport type 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 type TimeUnits = {\n HOURS: { display: 'hour(s)'; value: 'hours' }\n MINUTES: { display: 'minute(s)'; value: 'minutes' }\n SECONDS: { display: 'second(s)'; value: 'seconds' }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/conditions/types.ts"],"sourcesContent":["import { type Condition } from '~/src/conditions/condition.js'\nimport { type ConditionRef } from '~/src/conditions/condition-ref.js'\nimport { type ConditionGroup } from '~/src/conditions/condition-group.js'\n\nexport type ConditionsArray = (Condition | ConditionGroup | ConditionRef)[]\n\nexport type DateTimeUnitValues =\n | 'years'\n | 'months'\n | 'days'\n | 'hours'\n | 'minutes'\n | 'seconds'\n\nexport type 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 type TimeUnits = {\n HOURS: { display: 'hour(s)'; value: 'hours' }\n MINUTES: { display: 'minute(s)'; value: 'minutes' }\n SECONDS: { display: 'second(s)'; value: 'seconds' }\n}\n"],"mappings":""}
@@ -1,9 +1,5 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.ConditionsWrapper = void 0;
5
- var _conditionModel = require("../conditions/condition-model");
6
- class ConditionsWrapper {
1
+ import { ConditionsModel } from "../conditions/condition-model.js";
2
+ export class ConditionsWrapper {
7
3
  constructor(rawData) {
8
4
  const {
9
5
  name,
@@ -20,11 +16,10 @@ class ConditionsWrapper {
20
16
  // keep this so application can support legacy forms exports.
21
17
  return this.value;
22
18
  }
23
- return _conditionModel.ConditionsModel.from(this.value).toExpression();
19
+ return ConditionsModel.from(this.value).toExpression();
24
20
  }
25
21
  clone() {
26
22
  return new ConditionsWrapper(this);
27
23
  }
28
24
  }
29
- exports.ConditionsWrapper = ConditionsWrapper;
30
25
  //# sourceMappingURL=conditions-wrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conditions-wrapper.js","names":["_conditionModel","require","ConditionsWrapper","constructor","rawData","name","displayName","value","expression","ConditionsModel","from","toExpression","clone","exports"],"sources":["../../../src/data-model/conditions-wrapper.ts"],"sourcesContent":["import { ConditionsModel } from '~/src/conditions/condition-model'\nimport {\n type ConditionRawData,\n type ConditionWrapperValue\n} from '~/src/data-model/types'\n\nexport class ConditionsWrapper {\n name: string\n displayName: string\n value: ConditionWrapperValue\n\n constructor(rawData: ConditionRawData) {\n const { name, displayName, value } = rawData\n this.displayName = displayName || name\n this.value = value\n this.name = name\n }\n\n get expression() {\n if (typeof this.value === 'string') {\n // Previously conditions were defined as strings, e.g: \"section.age < 18\"\n // keep this so application can support legacy forms exports.\n return this.value\n }\n\n return ConditionsModel.from(this.value).toExpression()\n }\n\n clone(): ConditionsWrapper {\n return new ConditionsWrapper(this)\n }\n}\n"],"mappings":";;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAMO,MAAMC,iBAAiB,CAAC;EAK7BC,WAAWA,CAACC,OAAyB,EAAE;IACrC,MAAM;MAAEC,IAAI;MAAEC,WAAW;MAAEC;IAAM,CAAC,GAAGH,OAAO;IAC5C,IAAI,CAACE,WAAW,GAAGA,WAAW,IAAID,IAAI;IACtC,IAAI,CAACE,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACF,IAAI,GAAGA,IAAI;EAClB;EAEA,IAAIG,UAAUA,CAAA,EAAG;IACf,IAAI,OAAO,IAAI,CAACD,KAAK,KAAK,QAAQ,EAAE;MAClC;MACA;MACA,OAAO,IAAI,CAACA,KAAK;IACnB;IAEA,OAAOE,+BAAe,CAACC,IAAI,CAAC,IAAI,CAACH,KAAK,CAAC,CAACI,YAAY,CAAC,CAAC;EACxD;EAEAC,KAAKA,CAAA,EAAsB;IACzB,OAAO,IAAIV,iBAAiB,CAAC,IAAI,CAAC;EACpC;AACF;AAACW,OAAA,CAAAX,iBAAA,GAAAA,iBAAA"}
1
+ {"version":3,"file":"conditions-wrapper.js","names":["ConditionsModel","ConditionsWrapper","constructor","rawData","name","displayName","value","expression","from","toExpression","clone"],"sources":["../../../src/data-model/conditions-wrapper.ts"],"sourcesContent":["import { ConditionsModel } from '~/src/conditions/condition-model.js'\nimport {\n type ConditionRawData,\n type ConditionWrapperValue\n} from '~/src/data-model/types.js'\n\nexport class ConditionsWrapper {\n name: string\n displayName: string\n value: ConditionWrapperValue\n\n constructor(rawData: ConditionRawData) {\n const { name, displayName, value } = rawData\n this.displayName = displayName || name\n this.value = value\n this.name = name\n }\n\n get expression() {\n if (typeof this.value === 'string') {\n // Previously conditions were defined as strings, e.g: \"section.age < 18\"\n // keep this so application can support legacy forms exports.\n return this.value\n }\n\n return ConditionsModel.from(this.value).toExpression()\n }\n\n clone(): ConditionsWrapper {\n return new ConditionsWrapper(this)\n }\n}\n"],"mappings":"AAAA,SAASA,eAAe;AAMxB,OAAO,MAAMC,iBAAiB,CAAC;EAK7BC,WAAWA,CAACC,OAAyB,EAAE;IACrC,MAAM;MAAEC,IAAI;MAAEC,WAAW;MAAEC;IAAM,CAAC,GAAGH,OAAO;IAC5C,IAAI,CAACE,WAAW,GAAGA,WAAW,IAAID,IAAI;IACtC,IAAI,CAACE,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACF,IAAI,GAAGA,IAAI;EAClB;EAEA,IAAIG,UAAUA,CAAA,EAAG;IACf,IAAI,OAAO,IAAI,CAACD,KAAK,KAAK,QAAQ,EAAE;MAClC;MACA;MACA,OAAO,IAAI,CAACA,KAAK;IACnB;IAEA,OAAON,eAAe,CAACQ,IAAI,CAAC,IAAI,CAACF,KAAK,CAAC,CAACG,YAAY,CAAC,CAAC;EACxD;EAEAC,KAAKA,CAAA,EAAsB;IACzB,OAAO,IAAIT,iBAAiB,CAAC,IAAI,CAAC;EACpC;AACF"}
@@ -1,8 +1,4 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.OutputType = void 0;
5
- let OutputType = exports.OutputType = /*#__PURE__*/function (OutputType) {
1
+ export let OutputType = /*#__PURE__*/function (OutputType) {
6
2
  OutputType["Email"] = "email";
7
3
  OutputType["Notify"] = "notify";
8
4
  OutputType["Webhook"] = "webhook";
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","names":["OutputType","exports"],"sources":["../../../src/data-model/enums.ts"],"sourcesContent":["export enum OutputType {\n Email = 'email',\n Notify = 'notify',\n Webhook = 'webhook'\n}\n"],"mappings":";;;;IAAYA,UAAU,GAAAC,OAAA,CAAAD,UAAA,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA"}
1
+ {"version":3,"file":"enums.js","names":["OutputType"],"sources":["../../../src/data-model/enums.ts"],"sourcesContent":["export enum OutputType {\n Email = 'email',\n Notify = 'notify',\n Webhook = 'webhook'\n}\n"],"mappings":"AAAA,WAAYA,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA"}