@defra/forms-model 3.0.10 → 3.0.11

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 (237) hide show
  1. package/dist/browser/components/component-types.js +201 -219
  2. package/dist/browser/components/component-types.js.map +1 -1
  3. package/dist/browser/components/conditional-component-types.js +9 -27
  4. package/dist/browser/components/conditional-component-types.js.map +1 -1
  5. package/dist/browser/components/enums.js +27 -45
  6. package/dist/browser/components/enums.js.map +1 -1
  7. package/dist/browser/components/index.js +3 -35
  8. package/dist/browser/components/index.js.map +1 -1
  9. package/dist/browser/components/types.js +1 -15
  10. package/dist/browser/conditions/condition-abstract.js +42 -60
  11. package/dist/browser/conditions/condition-abstract.js.map +1 -1
  12. package/dist/browser/conditions/condition-field.js +23 -41
  13. package/dist/browser/conditions/condition-field.js.map +1 -1
  14. package/dist/browser/conditions/condition-group-def.js +23 -42
  15. package/dist/browser/conditions/condition-group-def.js.map +1 -1
  16. package/dist/browser/conditions/condition-group.js +43 -61
  17. package/dist/browser/conditions/condition-group.js.map +1 -1
  18. package/dist/browser/conditions/condition-model.js +185 -196
  19. package/dist/browser/conditions/condition-model.js.map +1 -1
  20. package/dist/browser/conditions/condition-operators.js +103 -124
  21. package/dist/browser/conditions/condition-operators.js.map +1 -1
  22. package/dist/browser/conditions/condition-ref.js +29 -47
  23. package/dist/browser/conditions/condition-ref.js.map +1 -1
  24. package/dist/browser/conditions/condition-value-abstract.js +19 -37
  25. package/dist/browser/conditions/condition-value-abstract.js.map +1 -1
  26. package/dist/browser/conditions/condition-value-registration.js +15 -34
  27. package/dist/browser/conditions/condition-value-registration.js.map +1 -1
  28. package/dist/browser/conditions/condition-values.js +98 -118
  29. package/dist/browser/conditions/condition-values.js.map +1 -1
  30. package/dist/browser/conditions/condition.js +36 -51
  31. package/dist/browser/conditions/condition.js.map +1 -1
  32. package/dist/browser/conditions/enums.js +5 -23
  33. package/dist/browser/conditions/enums.js.map +1 -1
  34. package/dist/browser/conditions/helpers.js +6 -25
  35. package/dist/browser/conditions/helpers.js.map +1 -1
  36. package/dist/browser/conditions/index.js +10 -143
  37. package/dist/browser/conditions/index.js.map +1 -1
  38. package/dist/browser/conditions/inline-condition-model.js +372 -394
  39. package/dist/browser/conditions/inline-condition-model.js.map +1 -1
  40. package/dist/browser/conditions/inline-condition-operators.js +103 -124
  41. package/dist/browser/conditions/inline-condition-operators.js.map +1 -1
  42. package/dist/browser/conditions/inline-condition-values.js +123 -145
  43. package/dist/browser/conditions/inline-condition-values.js.map +1 -1
  44. package/dist/browser/conditions/types.js +1 -15
  45. package/dist/browser/conditions/types.js.map +1 -1
  46. package/dist/browser/data-model/conditions-wrapper.js +27 -45
  47. package/dist/browser/data-model/conditions-wrapper.js.map +1 -1
  48. package/dist/browser/data-model/enums.js +6 -24
  49. package/dist/browser/data-model/enums.js.map +1 -1
  50. package/dist/browser/data-model/index.js +3 -35
  51. package/dist/browser/data-model/index.js.map +1 -1
  52. package/dist/browser/data-model/input-wrapper.js +28 -46
  53. package/dist/browser/data-model/input-wrapper.js.map +1 -1
  54. package/dist/browser/data-model/types.js +7 -25
  55. package/dist/browser/data-model/types.js.map +1 -1
  56. package/dist/browser/form/form-configuration.js +16 -35
  57. package/dist/browser/form/form-configuration.js.map +1 -1
  58. package/dist/browser/form/index.js +1 -23
  59. package/dist/browser/form/index.js.map +1 -1
  60. package/dist/browser/index.js +8 -97
  61. package/dist/browser/index.js.map +1 -1
  62. package/dist/browser/migration/index.js +1 -23
  63. package/dist/browser/migration/index.js.map +1 -1
  64. package/dist/browser/migration/migration.0-2.js +42 -60
  65. package/dist/browser/migration/migration.0-2.js.map +1 -1
  66. package/dist/browser/migration/migration.1-2.js +83 -99
  67. package/dist/browser/migration/migration.1-2.js.map +1 -1
  68. package/dist/browser/migration/types.js +1 -15
  69. package/dist/browser/migration/whichMigrations.js +20 -36
  70. package/dist/browser/migration/whichMigrations.js.map +1 -1
  71. package/dist/browser/schema/index.js +1 -29
  72. package/dist/browser/schema/index.js.map +1 -1
  73. package/dist/browser/schema/schema.js +231 -249
  74. package/dist/browser/schema/schema.js.map +1 -1
  75. package/dist/browser/utils/helpers.js +22 -43
  76. package/dist/browser/utils/helpers.js.map +1 -1
  77. package/dist/browser/utils/logger.js +24 -43
  78. package/dist/browser/utils/logger.js.map +1 -1
  79. package/dist/module/components/component-types.js +1 -5
  80. package/dist/module/components/component-types.js.map +1 -1
  81. package/dist/module/components/conditional-component-types.js +1 -5
  82. package/dist/module/components/conditional-component-types.js.map +1 -1
  83. package/dist/module/components/enums.js +1 -5
  84. package/dist/module/components/enums.js.map +1 -1
  85. package/dist/module/components/index.js +3 -24
  86. package/dist/module/components/index.js.map +1 -1
  87. package/dist/module/components/types.js +1 -1
  88. package/dist/module/conditions/condition-abstract.js +3 -8
  89. package/dist/module/conditions/condition-abstract.js.map +1 -1
  90. package/dist/module/conditions/condition-field.js +3 -8
  91. package/dist/module/conditions/condition-field.js.map +1 -1
  92. package/dist/module/conditions/condition-group-def.js +1 -6
  93. package/dist/module/conditions/condition-group-def.js.map +1 -1
  94. package/dist/module/conditions/condition-group.js +4 -9
  95. package/dist/module/conditions/condition-group.js.map +1 -1
  96. package/dist/module/conditions/condition-model.js +20 -25
  97. package/dist/module/conditions/condition-model.js.map +1 -1
  98. package/dist/module/conditions/condition-operators.js +15 -23
  99. package/dist/module/conditions/condition-operators.js.map +1 -1
  100. package/dist/module/conditions/condition-ref.js +2 -7
  101. package/dist/module/conditions/condition-ref.js.map +1 -1
  102. package/dist/module/conditions/condition-value-abstract.js +3 -8
  103. package/dist/module/conditions/condition-value-abstract.js.map +1 -1
  104. package/dist/module/conditions/condition-value-registration.js +1 -6
  105. package/dist/module/conditions/condition-value-registration.js.map +1 -1
  106. package/dist/module/conditions/condition-values.js +12 -20
  107. package/dist/module/conditions/condition-values.js.map +1 -1
  108. package/dist/module/conditions/condition.js +9 -14
  109. package/dist/module/conditions/condition.js.map +1 -1
  110. package/dist/module/conditions/enums.js +1 -5
  111. package/dist/module/conditions/enums.js.map +1 -1
  112. package/dist/module/conditions/helpers.js +2 -7
  113. package/dist/module/conditions/helpers.js.map +1 -1
  114. package/dist/module/conditions/index.js +10 -139
  115. package/dist/module/conditions/index.js.map +1 -1
  116. package/dist/module/conditions/inline-condition-model.js +15 -26
  117. package/dist/module/conditions/inline-condition-model.js.map +1 -1
  118. package/dist/module/conditions/inline-condition-operators.js +15 -23
  119. package/dist/module/conditions/inline-condition-operators.js.map +1 -1
  120. package/dist/module/conditions/inline-condition-values.js +9 -17
  121. package/dist/module/conditions/inline-condition-values.js.map +1 -1
  122. package/dist/module/conditions/types.js +1 -1
  123. package/dist/module/conditions/types.js.map +1 -1
  124. package/dist/module/data-model/conditions-wrapper.js +3 -8
  125. package/dist/module/data-model/conditions-wrapper.js.map +1 -1
  126. package/dist/module/data-model/enums.js +1 -5
  127. package/dist/module/data-model/enums.js.map +1 -1
  128. package/dist/module/data-model/index.js +3 -24
  129. package/dist/module/data-model/index.js.map +1 -1
  130. package/dist/module/data-model/input-wrapper.js +3 -8
  131. package/dist/module/data-model/input-wrapper.js.map +1 -1
  132. package/dist/module/data-model/types.js +1 -5
  133. package/dist/module/data-model/types.js.map +1 -1
  134. package/dist/module/form/form-configuration.js +1 -6
  135. package/dist/module/form/form-configuration.js.map +1 -1
  136. package/dist/module/form/index.js +1 -10
  137. package/dist/module/form/index.js.map +1 -1
  138. package/dist/module/index.js +8 -91
  139. package/dist/module/index.js.map +1 -1
  140. package/dist/module/migration/index.js +1 -10
  141. package/dist/module/migration/index.js.map +1 -1
  142. package/dist/module/migration/migration.0-2.js +1 -5
  143. package/dist/module/migration/migration.0-2.js.map +1 -1
  144. package/dist/module/migration/migration.1-2.js +3 -6
  145. package/dist/module/migration/migration.1-2.js.map +1 -1
  146. package/dist/module/migration/types.js +1 -1
  147. package/dist/module/migration/whichMigrations.js +5 -9
  148. package/dist/module/migration/whichMigrations.js.map +1 -1
  149. package/dist/module/schema/index.js +1 -16
  150. package/dist/module/schema/index.js.map +1 -1
  151. package/dist/module/schema/schema.js +163 -167
  152. package/dist/module/schema/schema.js.map +1 -1
  153. package/dist/module/utils/helpers.js +5 -13
  154. package/dist/module/utils/helpers.js.map +1 -1
  155. package/dist/module/utils/logger.js +1 -6
  156. package/dist/module/utils/logger.js.map +1 -1
  157. package/dist/types/components/component-types.d.ts +1 -1
  158. package/dist/types/components/component-types.d.ts.map +1 -1
  159. package/dist/types/components/conditional-component-types.d.ts +1 -1
  160. package/dist/types/components/conditional-component-types.d.ts.map +1 -1
  161. package/dist/types/components/index.d.ts +3 -3
  162. package/dist/types/components/index.d.ts.map +1 -1
  163. package/dist/types/conditions/condition-abstract.d.ts +1 -1
  164. package/dist/types/conditions/condition-abstract.d.ts.map +1 -1
  165. package/dist/types/conditions/condition-field.d.ts +1 -1
  166. package/dist/types/conditions/condition-field.d.ts.map +1 -1
  167. package/dist/types/conditions/condition-group-def.d.ts +2 -2
  168. package/dist/types/conditions/condition-group-def.d.ts.map +1 -1
  169. package/dist/types/conditions/condition-group.d.ts +2 -2
  170. package/dist/types/conditions/condition-group.d.ts.map +1 -1
  171. package/dist/types/conditions/condition-model.d.ts +5 -5
  172. package/dist/types/conditions/condition-model.d.ts.map +1 -1
  173. package/dist/types/conditions/condition-operators.d.ts +2 -2
  174. package/dist/types/conditions/condition-operators.d.ts.map +1 -1
  175. package/dist/types/conditions/condition-ref.d.ts +2 -2
  176. package/dist/types/conditions/condition-ref.d.ts.map +1 -1
  177. package/dist/types/conditions/condition-value-abstract.d.ts +1 -1
  178. package/dist/types/conditions/condition-value-abstract.d.ts.map +1 -1
  179. package/dist/types/conditions/condition-values.d.ts +3 -3
  180. package/dist/types/conditions/condition-values.d.ts.map +1 -1
  181. package/dist/types/conditions/condition.d.ts +4 -4
  182. package/dist/types/conditions/condition.d.ts.map +1 -1
  183. package/dist/types/conditions/index.d.ts +10 -10
  184. package/dist/types/conditions/index.d.ts.map +1 -1
  185. package/dist/types/conditions/types.d.ts +3 -3
  186. package/dist/types/conditions/types.d.ts.map +1 -1
  187. package/dist/types/data-model/conditions-wrapper.d.ts +1 -1
  188. package/dist/types/data-model/conditions-wrapper.d.ts.map +1 -1
  189. package/dist/types/data-model/index.d.ts +3 -3
  190. package/dist/types/data-model/index.d.ts.map +1 -1
  191. package/dist/types/data-model/input-wrapper.d.ts +2 -2
  192. package/dist/types/data-model/input-wrapper.d.ts.map +1 -1
  193. package/dist/types/data-model/types.d.ts +3 -3
  194. package/dist/types/data-model/types.d.ts.map +1 -1
  195. package/dist/types/form/index.d.ts +1 -1
  196. package/dist/types/form/index.d.ts.map +1 -1
  197. package/dist/types/index.d.ts +11 -11
  198. package/dist/types/index.d.ts.map +1 -1
  199. package/dist/types/migration/index.d.ts +1 -1
  200. package/dist/types/migration/index.d.ts.map +1 -1
  201. package/dist/types/migration/migration.0-2.d.ts +1 -1
  202. package/dist/types/migration/migration.0-2.d.ts.map +1 -1
  203. package/dist/types/migration/migration.1-2.d.ts +1 -1
  204. package/dist/types/migration/migration.1-2.d.ts.map +1 -1
  205. package/dist/types/migration/whichMigrations.d.ts +1 -1
  206. package/dist/types/migration/whichMigrations.d.ts.map +1 -1
  207. package/dist/types/schema/index.d.ts +1 -1
  208. package/dist/types/schema/index.d.ts.map +1 -1
  209. package/package.json +2 -1
  210. package/src/components/component-types.ts +1 -1
  211. package/src/components/conditional-component-types.ts +1 -1
  212. package/src/components/index.ts +3 -3
  213. package/src/conditions/condition-abstract.ts +1 -1
  214. package/src/conditions/condition-field.ts +2 -2
  215. package/src/conditions/condition-group-def.ts +1 -1
  216. package/src/conditions/condition-group.ts +3 -3
  217. package/src/conditions/condition-model.ts +9 -9
  218. package/src/conditions/condition-operators.ts +6 -3
  219. package/src/conditions/condition-ref.ts +2 -2
  220. package/src/conditions/condition-value-abstract.ts +1 -1
  221. package/src/conditions/condition-values.ts +3 -3
  222. package/src/conditions/condition.ts +6 -6
  223. package/src/conditions/index.ts +10 -10
  224. package/src/conditions/inline-condition-model.ts +3 -3
  225. package/src/conditions/inline-condition-operators.ts +1 -1
  226. package/src/conditions/types.ts +3 -3
  227. package/src/data-model/conditions-wrapper.ts +2 -2
  228. package/src/data-model/index.ts +3 -3
  229. package/src/data-model/input-wrapper.ts +3 -3
  230. package/src/data-model/types.ts +3 -3
  231. package/src/form/index.ts +1 -1
  232. package/src/index.ts +11 -11
  233. package/src/migration/index.ts +1 -1
  234. package/src/migration/migration.0-2.ts +1 -1
  235. package/src/migration/migration.1-2.ts +2 -2
  236. package/src/migration/whichMigrations.ts +3 -3
  237. package/src/schema/index.ts +1 -1
@@ -1,214 +1,203 @@
1
- (function (global, factory) {
2
- if (typeof define === "function" && define.amd) {
3
- define(["exports", "./condition-field", "./condition-group-def", "./condition", "./condition-ref", "./condition-group", "./condition-values", "./enums", "./helpers"], factory);
4
- } else if (typeof exports !== "undefined") {
5
- factory(exports, require("./condition-field"), require("./condition-group-def"), require("./condition"), require("./condition-ref"), require("./condition-group"), require("./condition-values"), require("./enums"), require("./helpers"));
6
- } else {
7
- var mod = {
8
- exports: {}
9
- };
10
- factory(mod.exports, global.conditionField, global.conditionGroupDef, global.condition, global.conditionRef, global.conditionGroup, global.conditionValues, global.enums, global.helpers);
11
- global.conditionModel = mod.exports;
1
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
2
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
3
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
4
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
5
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
6
+ import { ConditionField } from "./condition-field.js";
7
+ import { ConditionGroupDef } from "./condition-group-def.js";
8
+ import { Condition } from "./condition.js";
9
+ import { ConditionRef } from "./condition-ref.js";
10
+ import { ConditionGroup } from "./condition-group.js";
11
+ import { conditionValueFrom } from "./condition-values.js";
12
+ import { Coordinator } from "./enums.js";
13
+ import { toPresentationString, toExpression } from "./helpers.js";
14
+ var _groupedConditions = /*#__PURE__*/new WeakMap();
15
+ var _userGroupedConditions = /*#__PURE__*/new WeakMap();
16
+ var _conditionName = /*#__PURE__*/new WeakMap();
17
+ export class ConditionsModel {
18
+ constructor(_conditionsObject) {
19
+ _classPrivateFieldInitSpec(this, _groupedConditions, []);
20
+ _classPrivateFieldInitSpec(this, _userGroupedConditions, []);
21
+ _classPrivateFieldInitSpec(this, _conditionName, undefined);
12
22
  }
13
- })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _conditionField, _conditionGroupDef, _condition2, _conditionRef, _conditionGroup, _conditionValues, _enums, _helpers) {
14
- "use strict";
15
-
16
- _exports.__esModule = true;
17
- _exports.ConditionsModel = void 0;
18
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
19
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
20
- function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
21
- function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
22
- function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
23
- var _groupedConditions = /*#__PURE__*/new WeakMap();
24
- var _userGroupedConditions = /*#__PURE__*/new WeakMap();
25
- var _conditionName = /*#__PURE__*/new WeakMap();
26
- class ConditionsModel {
27
- constructor(_conditionsObject) {
28
- _classPrivateFieldInitSpec(this, _groupedConditions, []);
29
- _classPrivateFieldInitSpec(this, _userGroupedConditions, []);
30
- _classPrivateFieldInitSpec(this, _conditionName, undefined);
31
- }
32
- clone() {
33
- const toReturn = new ConditionsModel();
34
- _classPrivateFieldSet(_groupedConditions, toReturn, _classPrivateFieldGet(_groupedConditions, this).map(it => it.clone()));
35
- _classPrivateFieldSet(_userGroupedConditions, toReturn, _classPrivateFieldGet(_userGroupedConditions, this).map(it => it.clone()));
36
- _classPrivateFieldSet(_conditionName, toReturn, _classPrivateFieldGet(_conditionName, this));
37
- return toReturn;
38
- }
39
- clear() {
40
- _classPrivateFieldSet(_userGroupedConditions, this, []);
41
- _classPrivateFieldSet(_groupedConditions, this, []);
42
- _classPrivateFieldSet(_conditionName, this, undefined);
43
- return this;
44
- }
45
- set name(name) {
46
- _classPrivateFieldSet(_conditionName, this, name);
47
- }
48
- get name() {
49
- return _classPrivateFieldGet(_conditionName, this);
50
- }
51
- add(condition) {
52
- const coordinatorExpected = _classPrivateFieldGet(_userGroupedConditions, this).length !== 0;
53
- if (condition.getCoordinator() && !coordinatorExpected) {
54
- throw Error('No coordinator allowed on the first condition');
55
- } else if (!condition.getCoordinator() && coordinatorExpected) {
56
- throw Error('Coordinator must be present on subsequent conditions');
23
+ clone() {
24
+ const toReturn = new ConditionsModel();
25
+ _classPrivateFieldSet(_groupedConditions, toReturn, _classPrivateFieldGet(_groupedConditions, this).map(it => it.clone()));
26
+ _classPrivateFieldSet(_userGroupedConditions, toReturn, _classPrivateFieldGet(_userGroupedConditions, this).map(it => it.clone()));
27
+ _classPrivateFieldSet(_conditionName, toReturn, _classPrivateFieldGet(_conditionName, this));
28
+ return toReturn;
29
+ }
30
+ clear() {
31
+ _classPrivateFieldSet(_userGroupedConditions, this, []);
32
+ _classPrivateFieldSet(_groupedConditions, this, []);
33
+ _classPrivateFieldSet(_conditionName, this, undefined);
34
+ return this;
35
+ }
36
+ set name(name) {
37
+ _classPrivateFieldSet(_conditionName, this, name);
38
+ }
39
+ get name() {
40
+ return _classPrivateFieldGet(_conditionName, this);
41
+ }
42
+ add(condition) {
43
+ const coordinatorExpected = _classPrivateFieldGet(_userGroupedConditions, this).length !== 0;
44
+ if (condition.getCoordinator() && !coordinatorExpected) {
45
+ throw Error('No coordinator allowed on the first condition');
46
+ } else if (!condition.getCoordinator() && coordinatorExpected) {
47
+ throw Error('Coordinator must be present on subsequent conditions');
48
+ }
49
+ _classPrivateFieldGet(_userGroupedConditions, this).push(condition);
50
+ _classPrivateFieldSet(_groupedConditions, this, this._applyGroups(_classPrivateFieldGet(_userGroupedConditions, this)));
51
+ return this;
52
+ }
53
+ replace(index, condition) {
54
+ const coordinatorExpected = index !== 0;
55
+ if (condition.getCoordinator() && !coordinatorExpected) {
56
+ throw Error('No coordinator allowed on the first condition');
57
+ } else if (!condition.getCoordinator() && coordinatorExpected) {
58
+ throw Error('Coordinator must be present on subsequent conditions');
59
+ } else if (index >= _classPrivateFieldGet(_userGroupedConditions, this).length) {
60
+ throw Error(`Cannot replace condition ${index} as no such condition exists`);
61
+ }
62
+ _classPrivateFieldGet(_userGroupedConditions, this).splice(index, 1, condition);
63
+ _classPrivateFieldSet(_groupedConditions, this, this._applyGroups(_classPrivateFieldGet(_userGroupedConditions, this)));
64
+ return this;
65
+ }
66
+ remove(indexes) {
67
+ _classPrivateFieldSet(_userGroupedConditions, this, _classPrivateFieldGet(_userGroupedConditions, this).filter((_condition, index) => !indexes.includes(index)).map((condition, index) => index === 0 ? condition.asFirstCondition() : condition));
68
+ _classPrivateFieldSet(_groupedConditions, this, this._applyGroups(_classPrivateFieldGet(_userGroupedConditions, this)));
69
+ return this;
70
+ }
71
+ addGroups(groupDefs) {
72
+ _classPrivateFieldSet(_userGroupedConditions, this, this._group(_classPrivateFieldGet(_userGroupedConditions, this), groupDefs));
73
+ _classPrivateFieldSet(_groupedConditions, this, this._applyGroups(_classPrivateFieldGet(_userGroupedConditions, this)));
74
+ return this;
75
+ }
76
+ splitGroup(index) {
77
+ _classPrivateFieldSet(_userGroupedConditions, this, this._ungroup(_classPrivateFieldGet(_userGroupedConditions, this), index));
78
+ _classPrivateFieldSet(_groupedConditions, this, this._applyGroups(_classPrivateFieldGet(_userGroupedConditions, this)));
79
+ return this;
80
+ }
81
+ moveEarlier(index) {
82
+ if (index > 0 && index < _classPrivateFieldGet(_userGroupedConditions, this).length) {
83
+ _classPrivateFieldGet(_userGroupedConditions, this).splice(index - 1, 0, _classPrivateFieldGet(_userGroupedConditions, this).splice(index, 1)[0]);
84
+ if (index === 1) {
85
+ this.switchCoordinators();
57
86
  }
58
- _classPrivateFieldGet(_userGroupedConditions, this).push(condition);
59
87
  _classPrivateFieldSet(_groupedConditions, this, this._applyGroups(_classPrivateFieldGet(_userGroupedConditions, this)));
60
- return this;
61
88
  }
62
- replace(index, condition) {
63
- const coordinatorExpected = index !== 0;
64
- if (condition.getCoordinator() && !coordinatorExpected) {
65
- throw Error('No coordinator allowed on the first condition');
66
- } else if (!condition.getCoordinator() && coordinatorExpected) {
67
- throw Error('Coordinator must be present on subsequent conditions');
68
- } else if (index >= _classPrivateFieldGet(_userGroupedConditions, this).length) {
69
- throw Error(`Cannot replace condition ${index} as no such condition exists`);
89
+ return this;
90
+ }
91
+ moveLater(index) {
92
+ if (index >= 0 && index < _classPrivateFieldGet(_userGroupedConditions, this).length - 1) {
93
+ _classPrivateFieldGet(_userGroupedConditions, this).splice(index + 1, 0, _classPrivateFieldGet(_userGroupedConditions, this).splice(index, 1)[0]);
94
+ if (index === 0) {
95
+ this.switchCoordinators();
70
96
  }
71
- _classPrivateFieldGet(_userGroupedConditions, this).splice(index, 1, condition);
72
- _classPrivateFieldSet(_groupedConditions, this, this._applyGroups(_classPrivateFieldGet(_userGroupedConditions, this)));
73
- return this;
74
- }
75
- remove(indexes) {
76
- _classPrivateFieldSet(_userGroupedConditions, this, _classPrivateFieldGet(_userGroupedConditions, this).filter((_condition, index) => !indexes.includes(index)).map((condition, index) => index === 0 ? condition.asFirstCondition() : condition));
77
- _classPrivateFieldSet(_groupedConditions, this, this._applyGroups(_classPrivateFieldGet(_userGroupedConditions, this)));
78
- return this;
79
- }
80
- addGroups(groupDefs) {
81
- _classPrivateFieldSet(_userGroupedConditions, this, this._group(_classPrivateFieldGet(_userGroupedConditions, this), groupDefs));
82
97
  _classPrivateFieldSet(_groupedConditions, this, this._applyGroups(_classPrivateFieldGet(_userGroupedConditions, this)));
83
- return this;
84
98
  }
85
- splitGroup(index) {
86
- _classPrivateFieldSet(_userGroupedConditions, this, this._ungroup(_classPrivateFieldGet(_userGroupedConditions, this), index));
87
- _classPrivateFieldSet(_groupedConditions, this, this._applyGroups(_classPrivateFieldGet(_userGroupedConditions, this)));
88
- return this;
89
- }
90
- moveEarlier(index) {
91
- if (index > 0 && index < _classPrivateFieldGet(_userGroupedConditions, this).length) {
92
- _classPrivateFieldGet(_userGroupedConditions, this).splice(index - 1, 0, _classPrivateFieldGet(_userGroupedConditions, this).splice(index, 1)[0]);
93
- if (index === 1) {
94
- this.switchCoordinators();
99
+ return this;
100
+ }
101
+ switchCoordinators() {
102
+ _classPrivateFieldGet(_userGroupedConditions, this)[1].setCoordinator(_classPrivateFieldGet(_userGroupedConditions, this)[0].getCoordinator());
103
+ _classPrivateFieldGet(_userGroupedConditions, this)[0].setCoordinator(undefined);
104
+ }
105
+ get asPerUserGroupings() {
106
+ return [..._classPrivateFieldGet(_userGroupedConditions, this)];
107
+ }
108
+ get hasConditions() {
109
+ return _classPrivateFieldGet(_userGroupedConditions, this).length > 0;
110
+ }
111
+ get lastIndex() {
112
+ return _classPrivateFieldGet(_userGroupedConditions, this).length - 1;
113
+ }
114
+ toPresentationString() {
115
+ return _classPrivateFieldGet(_groupedConditions, this).map(condition => toPresentationString(condition)).join(' ');
116
+ }
117
+ toExpression() {
118
+ return _classPrivateFieldGet(_groupedConditions, this).map(condition => toExpression(condition)).join(' ');
119
+ }
120
+ _applyGroups(userGroupedConditions) {
121
+ const correctedUserGroups = userGroupedConditions.map(condition => condition instanceof ConditionGroup && condition.conditions.length > 2 ? new ConditionGroup(this._group(condition.conditions, this._autoGroupDefs(condition.conditions))) : condition);
122
+ return this._group(correctedUserGroups, this._autoGroupDefs(correctedUserGroups));
123
+ }
124
+ _group(conditions, groupDefs) {
125
+ return conditions.reduce((groups, condition, index, conditions) => {
126
+ const groupDef = groupDefs.find(groupDef => groupDef.contains(index));
127
+ if (groupDef) {
128
+ if (groupDef.startsWith(index)) {
129
+ const groupConditions = groupDef.applyTo(conditions);
130
+ groups.push(new ConditionGroup(groupConditions));
95
131
  }
96
- _classPrivateFieldSet(_groupedConditions, this, this._applyGroups(_classPrivateFieldGet(_userGroupedConditions, this)));
132
+ } else {
133
+ groups.push(condition);
97
134
  }
98
- return this;
135
+ return groups;
136
+ }, []);
137
+ }
138
+ _ungroup(conditions, splitIndex) {
139
+ if (conditions[splitIndex].isGroup()) {
140
+ const copy = [...conditions];
141
+ copy.splice(splitIndex, 1, ...conditions[splitIndex].getGroupedConditions());
142
+ return copy;
99
143
  }
100
- moveLater(index) {
101
- if (index >= 0 && index < _classPrivateFieldGet(_userGroupedConditions, this).length - 1) {
102
- _classPrivateFieldGet(_userGroupedConditions, this).splice(index + 1, 0, _classPrivateFieldGet(_userGroupedConditions, this).splice(index, 1)[0]);
103
- if (index === 0) {
104
- this.switchCoordinators();
105
- }
106
- _classPrivateFieldSet(_groupedConditions, this, this._applyGroups(_classPrivateFieldGet(_userGroupedConditions, this)));
144
+ return conditions;
145
+ }
146
+ _autoGroupDefs(conditions) {
147
+ const orPositions = [];
148
+ conditions.forEach((condition, index) => {
149
+ if (condition.getCoordinator() === Coordinator.OR) {
150
+ orPositions.push(index);
107
151
  }
108
- return this;
109
- }
110
- switchCoordinators() {
111
- _classPrivateFieldGet(_userGroupedConditions, this)[1].setCoordinator(_classPrivateFieldGet(_userGroupedConditions, this)[0].getCoordinator());
112
- _classPrivateFieldGet(_userGroupedConditions, this)[0].setCoordinator(undefined);
113
- }
114
- get asPerUserGroupings() {
115
- return [..._classPrivateFieldGet(_userGroupedConditions, this)];
116
- }
117
- get hasConditions() {
118
- return _classPrivateFieldGet(_userGroupedConditions, this).length > 0;
119
- }
120
- get lastIndex() {
121
- return _classPrivateFieldGet(_userGroupedConditions, this).length - 1;
122
- }
123
- toPresentationString() {
124
- return _classPrivateFieldGet(_groupedConditions, this).map(condition => (0, _helpers.toPresentationString)(condition)).join(' ');
125
- }
126
- toExpression() {
127
- return _classPrivateFieldGet(_groupedConditions, this).map(condition => (0, _helpers.toExpression)(condition)).join(' ');
128
- }
129
- _applyGroups(userGroupedConditions) {
130
- const correctedUserGroups = userGroupedConditions.map(condition => condition instanceof _conditionGroup.ConditionGroup && condition.conditions.length > 2 ? new _conditionGroup.ConditionGroup(this._group(condition.conditions, this._autoGroupDefs(condition.conditions))) : condition);
131
- return this._group(correctedUserGroups, this._autoGroupDefs(correctedUserGroups));
132
- }
133
- _group(conditions, groupDefs) {
134
- return conditions.reduce((groups, condition, index, conditions) => {
135
- const groupDef = groupDefs.find(groupDef => groupDef.contains(index));
136
- if (groupDef) {
137
- if (groupDef.startsWith(index)) {
138
- const groupConditions = groupDef.applyTo(conditions);
139
- groups.push(new _conditionGroup.ConditionGroup(groupConditions));
140
- }
141
- } else {
142
- groups.push(condition);
152
+ });
153
+ const hasOr = orPositions.length > 0;
154
+ const hasAnd = !!conditions.find(condition => condition.getCoordinator() === Coordinator.AND);
155
+ if (hasAnd && hasOr) {
156
+ let start = 0;
157
+ const groupDefs = [];
158
+ orPositions.forEach((position, index) => {
159
+ if (start < position - 1) {
160
+ groupDefs.push(new ConditionGroupDef(start, position - 1));
143
161
  }
144
- return groups;
145
- }, []);
146
- }
147
- _ungroup(conditions, splitIndex) {
148
- if (conditions[splitIndex].isGroup()) {
149
- const copy = [...conditions];
150
- copy.splice(splitIndex, 1, ...conditions[splitIndex].getGroupedConditions());
151
- return copy;
152
- }
153
- return conditions;
154
- }
155
- _autoGroupDefs(conditions) {
156
- const orPositions = [];
157
- conditions.forEach((condition, index) => {
158
- if (condition.getCoordinator() === _enums.Coordinator.OR) {
159
- orPositions.push(index);
162
+ const thisIsTheLastOr = orPositions.length === index + 1;
163
+ const thereAreMoreConditions = conditions.length - 1 > position;
164
+ if (thisIsTheLastOr && thereAreMoreConditions) {
165
+ groupDefs.push(new ConditionGroupDef(position, conditions.length - 1));
160
166
  }
167
+ start = position;
161
168
  });
162
- const hasOr = orPositions.length > 0;
163
- const hasAnd = !!conditions.find(condition => condition.getCoordinator() === _enums.Coordinator.AND);
164
- if (hasAnd && hasOr) {
165
- let start = 0;
166
- const groupDefs = [];
167
- orPositions.forEach((position, index) => {
168
- if (start < position - 1) {
169
- groupDefs.push(new _conditionGroupDef.ConditionGroupDef(start, position - 1));
170
- }
171
- const thisIsTheLastOr = orPositions.length === index + 1;
172
- const thereAreMoreConditions = conditions.length - 1 > position;
173
- if (thisIsTheLastOr && thereAreMoreConditions) {
174
- groupDefs.push(new _conditionGroupDef.ConditionGroupDef(position, conditions.length - 1));
175
- }
176
- start = position;
177
- });
178
- return groupDefs;
179
- }
180
- return [];
181
- }
182
- toJSON() {
183
- const name = _classPrivateFieldGet(_conditionName, this);
184
- const conditions = _classPrivateFieldGet(_userGroupedConditions, this);
185
- return {
186
- name,
187
- conditions: conditions.map(it => it.clone())
188
- };
169
+ return groupDefs;
189
170
  }
171
+ return [];
172
+ }
173
+ toJSON() {
174
+ const name = _classPrivateFieldGet(_conditionName, this);
175
+ const conditions = _classPrivateFieldGet(_userGroupedConditions, this);
176
+ return {
177
+ name,
178
+ conditions: conditions.map(it => it.clone())
179
+ };
180
+ }
190
181
 
191
- // TODO:- why is this not a constructor?
192
- static from(obj) {
193
- if (obj instanceof ConditionsModel) {
194
- return obj;
195
- }
196
- const toReturn = new ConditionsModel();
197
- _classPrivateFieldSet(_conditionName, toReturn, obj.name);
198
- _classPrivateFieldSet(_userGroupedConditions, toReturn, obj.conditions.map(condition => conditionFrom(condition)));
199
- _classPrivateFieldSet(_groupedConditions, toReturn, toReturn._applyGroups(_classPrivateFieldGet(_userGroupedConditions, toReturn)));
200
- return toReturn;
201
- }
182
+ // TODO:- why is this not a constructor?
183
+ static from(obj) {
184
+ if (obj instanceof ConditionsModel) {
185
+ return obj;
186
+ }
187
+ const toReturn = new ConditionsModel();
188
+ _classPrivateFieldSet(_conditionName, toReturn, obj.name);
189
+ _classPrivateFieldSet(_userGroupedConditions, toReturn, obj.conditions.map(condition => conditionFrom(condition)));
190
+ _classPrivateFieldSet(_groupedConditions, toReturn, toReturn._applyGroups(_classPrivateFieldGet(_userGroupedConditions, toReturn)));
191
+ return toReturn;
202
192
  }
203
- _exports.ConditionsModel = ConditionsModel;
204
- const conditionFrom = function conditionFrom(it) {
205
- if ('conditions' in it) {
206
- return new _conditionGroup.ConditionGroup(it.conditions.map(condition => conditionFrom(condition)));
207
- }
208
- if ('conditionName' in it) {
209
- return new _conditionRef.ConditionRef(it.conditionName, it.conditionDisplayName, it.coordinator);
210
- }
211
- return new _condition2.Condition(_conditionField.ConditionField.from(it.field), it.operator, (0, _conditionValues.conditionValueFrom)(it.value), it.coordinator);
212
- };
213
- });
193
+ }
194
+ const conditionFrom = function conditionFrom(it) {
195
+ if ('conditions' in it) {
196
+ return new ConditionGroup(it.conditions.map(condition => conditionFrom(condition)));
197
+ }
198
+ if ('conditionName' in it) {
199
+ return new ConditionRef(it.conditionName, it.conditionDisplayName, it.coordinator);
200
+ }
201
+ return new Condition(ConditionField.from(it.field), it.operator, conditionValueFrom(it.value), it.coordinator);
202
+ };
214
203
  //# sourceMappingURL=condition-model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition-model.js","names":["ConditionsModel","constructor","_conditionsObject","_classPrivateFieldInitSpec","_groupedConditions","_userGroupedConditions","_conditionName","undefined","clone","toReturn","_classPrivateFieldSet","_classPrivateFieldGet","map","it","clear","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","userGroupedConditions","correctedUserGroups","ConditionGroup","conditions","_autoGroupDefs","reduce","groups","groupDef","find","contains","startsWith","groupConditions","applyTo","splitIndex","isGroup","copy","getGroupedConditions","orPositions","forEach","Coordinator","OR","hasOr","hasAnd","AND","start","position","ConditionGroupDef","thisIsTheLastOr","thereAreMoreConditions","toJSON","from","obj","conditionFrom","_exports","ConditionRef","conditionName","conditionDisplayName","coordinator","Condition","ConditionField","field","operator","conditionValueFrom","value"],"sources":["../../../src/conditions/condition-model.ts"],"sourcesContent":["import { ConditionField } from '~/src/conditions/condition-field'\nimport { ConditionGroupDef } from '~/src/conditions/condition-group-def'\nimport { Condition } from '~/src/conditions/condition'\nimport { ConditionRef } from '~/src/conditions/condition-ref'\nimport { ConditionGroup } from '~/src/conditions/condition-group'\nimport { conditionValueFrom } from '~/src/conditions/condition-values'\nimport { Coordinator } from '~/src/conditions/enums'\nimport { toPresentationString, toExpression } from '~/src/conditions/helpers'\nimport { type ConditionsArray } from '~/src/conditions/types'\n\ntype ConditionRawObject =\n | ConditionsModel\n | {\n name: string\n conditions: Condition[]\n }\n\nexport class ConditionsModel {\n #groupedConditions: ConditionsArray = []\n #userGroupedConditions: ConditionsArray = []\n #conditionName: string | undefined = undefined\n\n constructor(_conditionsObject?: ConditionRawObject) {}\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: Condition) {\n const coordinatorExpected = this.#userGroupedConditions.length !== 0\n\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\n this.#userGroupedConditions.push(condition)\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n\n return this\n }\n\n replace(index: number, condition: Condition) {\n const coordinatorExpected = index !== 0\n\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\n this.#userGroupedConditions.splice(index, 1, condition)\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n\n return this\n }\n\n remove(indexes: number[]) {\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: ConditionGroupDef[]) {\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: number) {\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: number) {\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: number) {\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(\n userGroupedConditions: (Condition | ConditionGroup | ConditionRef)[]\n ) {\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\n return this._group(\n correctedUserGroups,\n this._autoGroupDefs(correctedUserGroups)\n )\n }\n\n _group(conditions: ConditionsArray, groupDefs: ConditionGroupDef[]) {\n return conditions.reduce((groups, condition, index, conditions) => {\n const groupDef = groupDefs.find((groupDef) => groupDef.contains(index))\n\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\n return groups\n }, [] as ConditionsArray)\n }\n\n _ungroup(conditions: ConditionsArray, splitIndex: number) {\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: ConditionsArray) {\n const orPositions: number[] = []\n\n conditions.forEach((condition, index) => {\n if (condition.getCoordinator() === Coordinator.OR) {\n orPositions.push(index)\n }\n })\n\n const hasOr = orPositions.length > 0\n const hasAnd = !!conditions.find(\n (condition) => condition.getCoordinator() === Coordinator.AND\n )\n\n if (hasAnd && hasOr) {\n let start = 0\n const groupDefs: ConditionGroupDef[] = []\n orPositions.forEach((position, index) => {\n if (start < position - 1) {\n groupDefs.push(new ConditionGroupDef(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 ConditionGroupDef(position, conditions.length - 1))\n }\n start = position\n })\n return groupDefs\n }\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 // TODO:- why is this not a constructor?\n static from(obj: ConditionRawObject | ConditionsModel) {\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((condition) =>\n conditionFrom(condition)\n )\n toReturn.#groupedConditions = toReturn._applyGroups(\n toReturn.#userGroupedConditions\n )\n return toReturn\n }\n}\n\ninterface ConditionFrom {\n (\n it: Condition | ConditionRef | ConditionGroup\n ): Condition | ConditionRef | ConditionGroup\n}\n\nconst conditionFrom: ConditionFrom = function (it) {\n if ('conditions' in it) {\n return new ConditionGroup(\n (it as ConditionGroup).conditions.map((condition) =>\n conditionFrom(condition)\n )\n )\n }\n\n if ('conditionName' in it) {\n return new ConditionRef(\n it.conditionName,\n it.conditionDisplayName,\n it.coordinator\n )\n }\n\n return new Condition(\n ConditionField.from(it.field),\n it.operator,\n conditionValueFrom(it.value),\n it.coordinator\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"condition-model.js","names":["ConditionField","ConditionGroupDef","Condition","ConditionRef","ConditionGroup","conditionValueFrom","Coordinator","toPresentationString","toExpression","_groupedConditions","WeakMap","_userGroupedConditions","_conditionName","ConditionsModel","constructor","_conditionsObject","_classPrivateFieldInitSpec","undefined","clone","toReturn","_classPrivateFieldSet","_classPrivateFieldGet","map","it","clear","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","join","userGroupedConditions","correctedUserGroups","conditions","_autoGroupDefs","reduce","groups","groupDef","find","contains","startsWith","groupConditions","applyTo","splitIndex","isGroup","copy","getGroupedConditions","orPositions","forEach","OR","hasOr","hasAnd","AND","start","position","thisIsTheLastOr","thereAreMoreConditions","toJSON","from","obj","conditionFrom","conditionName","conditionDisplayName","coordinator","field","operator","value"],"sources":["../../../src/conditions/condition-model.ts"],"sourcesContent":["import { ConditionField } from '~/src/conditions/condition-field.js'\nimport { ConditionGroupDef } from '~/src/conditions/condition-group-def.js'\nimport { Condition } from '~/src/conditions/condition.js'\nimport { ConditionRef } from '~/src/conditions/condition-ref.js'\nimport { ConditionGroup } from '~/src/conditions/condition-group.js'\nimport { conditionValueFrom } from '~/src/conditions/condition-values.js'\nimport { Coordinator } from '~/src/conditions/enums.js'\nimport { toPresentationString, toExpression } from '~/src/conditions/helpers.js'\nimport { type ConditionsArray } from '~/src/conditions/types.js'\n\ntype ConditionRawObject =\n | ConditionsModel\n | {\n name: string\n conditions: Condition[]\n }\n\nexport class ConditionsModel {\n #groupedConditions: ConditionsArray = []\n #userGroupedConditions: ConditionsArray = []\n #conditionName: string | undefined = undefined\n\n constructor(_conditionsObject?: ConditionRawObject) {}\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: Condition) {\n const coordinatorExpected = this.#userGroupedConditions.length !== 0\n\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\n this.#userGroupedConditions.push(condition)\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n\n return this\n }\n\n replace(index: number, condition: Condition) {\n const coordinatorExpected = index !== 0\n\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\n this.#userGroupedConditions.splice(index, 1, condition)\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n\n return this\n }\n\n remove(indexes: number[]) {\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: ConditionGroupDef[]) {\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: number) {\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: number) {\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: number) {\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(\n userGroupedConditions: (Condition | ConditionGroup | ConditionRef)[]\n ) {\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\n return this._group(\n correctedUserGroups,\n this._autoGroupDefs(correctedUserGroups)\n )\n }\n\n _group(conditions: ConditionsArray, groupDefs: ConditionGroupDef[]) {\n return conditions.reduce((groups, condition, index, conditions) => {\n const groupDef = groupDefs.find((groupDef) => groupDef.contains(index))\n\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\n return groups\n }, [] as ConditionsArray)\n }\n\n _ungroup(conditions: ConditionsArray, splitIndex: number) {\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: ConditionsArray) {\n const orPositions: number[] = []\n\n conditions.forEach((condition, index) => {\n if (condition.getCoordinator() === Coordinator.OR) {\n orPositions.push(index)\n }\n })\n\n const hasOr = orPositions.length > 0\n const hasAnd = !!conditions.find(\n (condition) => condition.getCoordinator() === Coordinator.AND\n )\n\n if (hasAnd && hasOr) {\n let start = 0\n const groupDefs: ConditionGroupDef[] = []\n orPositions.forEach((position, index) => {\n if (start < position - 1) {\n groupDefs.push(new ConditionGroupDef(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 ConditionGroupDef(position, conditions.length - 1))\n }\n start = position\n })\n return groupDefs\n }\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 // TODO:- why is this not a constructor?\n static from(obj: ConditionRawObject | ConditionsModel) {\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((condition) =>\n conditionFrom(condition)\n )\n toReturn.#groupedConditions = toReturn._applyGroups(\n toReturn.#userGroupedConditions\n )\n return toReturn\n }\n}\n\ninterface ConditionFrom {\n (\n it: Condition | ConditionRef | ConditionGroup\n ): Condition | ConditionRef | ConditionGroup\n}\n\nconst conditionFrom: ConditionFrom = function (it) {\n if ('conditions' in it) {\n return new ConditionGroup(\n (it as ConditionGroup).conditions.map((condition) =>\n conditionFrom(condition)\n )\n )\n }\n\n if ('conditionName' in it) {\n return new ConditionRef(\n it.conditionName,\n it.conditionDisplayName,\n it.coordinator\n )\n }\n\n return new Condition(\n ConditionField.from(it.field),\n it.operator,\n conditionValueFrom(it.value),\n it.coordinator\n )\n}\n"],"mappings":"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"}