@defra/forms-model 3.0.9 → 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 +2 -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 +2 -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 +2 -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 +4 -3
  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 +1 @@
1
- {"version":3,"file":"condition-model.js","names":["_conditionField","require","_conditionGroupDef","_condition2","_conditionRef","_conditionGroup","_conditionValues","_enums","_helpers","ConditionsModel","groupedConditions","userGroupedConditions","conditionName","undefined","constructor","_conditionsObject","clone","toReturn","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","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","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","ConditionsModel","groupedConditions","userGroupedConditions","conditionName","undefined","constructor","_conditionsObject","clone","toReturn","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","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","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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"}
@@ -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 _conditionValues = require("./condition-values");
1
+ import { timeUnits, dateUnits, dateTimeUnits, ConditionValue, DateDirections, RelativeTimeValue } from "./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(_conditionValues.dateUnits)),
46
- TimeField: Object.assign({}, absoluteDateTimeOperators, relativeTimeOperators(_conditionValues.timeUnits)),
47
- DatePartsField: Object.assign({}, absoluteDateTimeOperators, relativeTimeOperators(_conditionValues.dateUnits)),
48
- DateTimeField: Object.assign({}, absoluteDateTimeOperators, relativeTimeOperators(_conditionValues.dateTimeUnits)),
49
- DateTimePartsField: Object.assign({}, absoluteDateTimeOperators, relativeTimeOperators(_conditionValues.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(_conditionValues.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 _conditionValues.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 _conditionValues.RelativeTimeValue) {
112
- const operator = value.direction === _conditionValues.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":"condition-operators.js","names":["_conditionValues","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/condition-operators.ts"],"sourcesContent":["import { type ComponentType, type ComponentDef } from '~/src/components/types'\nimport { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract'\nimport {\n timeUnits,\n dateUnits,\n dateTimeUnits,\n ConditionValue,\n DateDirections,\n RelativeTimeValue\n} from '~/src/conditions/condition-values'\n\ntype Operator = '==' | '!=' | '>=' | '<=' | '<' | '>'\n\nconst defaultOperators = {\n is: inline('=='),\n 'is not': inline('!=')\n}\n\nfunction withDefaults<T>(param: T) {\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(\n fieldType: ComponentType,\n fieldName: string,\n operator: string,\n value: ConditionValueAbstract\n) {\n return getConditionals(fieldType)[operator].expression(\n { type: fieldType, name: fieldName },\n value\n )\n}\n\nexport function getOperatorConfig(fieldType: ComponentType, operator) {\n return getConditionals(fieldType)[operator]\n}\n\nfunction getConditionals(fieldType: ComponentType) {\n return customOperators[fieldType] || defaultOperators\n}\n\nfunction inline(operator: Operator) {\n return {\n expression: (field: ComponentDef, value) =>\n `${field.name} ${operator} ${formatValue(field.type, value.value)}`\n }\n}\n\nfunction lengthIs(operator: Operator) {\n return {\n expression: (field: ComponentDef, value) =>\n `length(${field.name}) ${operator} ${value.value}`\n }\n}\n\nfunction reverseInline(operator: 'in') {\n return {\n expression: (field: ComponentDef, value) =>\n `${formatValue(field.type, value.value)} ${operator} ${field.name}`\n }\n}\n\nfunction not(operatorDefinition) {\n return {\n expression: (field: ComponentDef, value) =>\n `not (${operatorDefinition.expression(field, value)})`\n }\n}\n\nfunction formatValue(fieldType: ComponentType, 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: Operator) {\n return {\n expression: (field: ComponentDef, 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: ComponentDef, 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":"condition-operators.js","names":["timeUnits","dateUnits","dateTimeUnits","ConditionValue","DateDirections","RelativeTimeValue","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/condition-operators.ts"],"sourcesContent":["import {\n type ComponentType,\n type ComponentDef\n} from '~/src/components/types.js'\nimport { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract.js'\nimport {\n timeUnits,\n dateUnits,\n dateTimeUnits,\n ConditionValue,\n DateDirections,\n RelativeTimeValue\n} from '~/src/conditions/condition-values.js'\n\ntype Operator = '==' | '!=' | '>=' | '<=' | '<' | '>'\n\nconst defaultOperators = {\n is: inline('=='),\n 'is not': inline('!=')\n}\n\nfunction withDefaults<T>(param: T) {\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(\n fieldType: ComponentType,\n fieldName: string,\n operator: string,\n value: ConditionValueAbstract\n) {\n return getConditionals(fieldType)[operator].expression(\n { type: fieldType, name: fieldName },\n value\n )\n}\n\nexport function getOperatorConfig(fieldType: ComponentType, operator) {\n return getConditionals(fieldType)[operator]\n}\n\nfunction getConditionals(fieldType: ComponentType) {\n return customOperators[fieldType] || defaultOperators\n}\n\nfunction inline(operator: Operator) {\n return {\n expression: (field: ComponentDef, value) =>\n `${field.name} ${operator} ${formatValue(field.type, value.value)}`\n }\n}\n\nfunction lengthIs(operator: Operator) {\n return {\n expression: (field: ComponentDef, value) =>\n `length(${field.name}) ${operator} ${value.value}`\n }\n}\n\nfunction reverseInline(operator: 'in') {\n return {\n expression: (field: ComponentDef, value) =>\n `${formatValue(field.type, value.value)} ${operator} ${field.name}`\n }\n}\n\nfunction not(operatorDefinition) {\n return {\n expression: (field: ComponentDef, value) =>\n `not (${operatorDefinition.expression(field, value)})`\n }\n}\n\nfunction formatValue(fieldType: ComponentType, 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: Operator) {\n return {\n expression: (field: ComponentDef, 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: ComponentDef, 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":"AAKA,SACEA,SAAS,EACTC,SAAS,EACTC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,iBAAiB;AAKnB,MAAMC,gBAAgB,GAAG;EACvBC,EAAE,EAAEC,MAAM,CAAC,IAAI,CAAC;EAChB,QAAQ,EAAEA,MAAM,CAAC,IAAI;AACvB,CAAC;AAED,SAASC,YAAYA,CAAIC,KAAQ,EAAE;EACjC,OAAOC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEF,KAAK,EAAEJ,gBAAgB,CAAC;AACnD;AAEA,MAAMO,4BAA4B,GAAG;EACnC,gBAAgB,EAAEC,QAAQ,CAAC,GAAG,CAAC;EAC/B,iBAAiB,EAAEA,QAAQ,CAAC,GAAG,CAAC;EAChC,YAAY,EAAEA,QAAQ,CAAC,IAAI;AAC7B,CAAC;AAED,MAAMC,yBAAyB,GAAG;EAChCR,EAAE,EAAES,gBAAgB,CAAC,IAAI,CAAC;EAC1B,QAAQ,EAAEA,gBAAgB,CAAC,IAAI,CAAC;EAChC,WAAW,EAAEA,gBAAgB,CAAC,GAAG,CAAC;EAClC,UAAU,EAAEA,gBAAgB,CAAC,GAAG;AAClC,CAAC;AAED,MAAMC,qBAAqB,GAAIC,KAAK,KAAM;EACxC,aAAa,EAAEC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAED,KAAK,CAAC;EAC9C,YAAY,EAAEC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAED,KAAK,CAAC;EAC7C,cAAc,EAAEC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAED,KAAK,CAAC;EAC7C,cAAc,EAAEC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAED,KAAK;AAC9C,CAAC,CAAC;AAEF,OAAO,MAAME,eAAe,GAAG;EAC7BC,eAAe,EAAE;IACfC,QAAQ,EAAEC,aAAa,CAAC,IAAI,CAAC;IAC7B,kBAAkB,EAAEC,GAAG,CAACD,aAAa,CAAC,IAAI,CAAC;EAC7C,CAAC;EACDE,WAAW,EAAEhB,YAAY,CAAC;IACxB,aAAa,EAAED,MAAM,CAAC,IAAI,CAAC;IAC3B,YAAY,EAAEA,MAAM,CAAC,IAAI,CAAC;IAC1B,cAAc,EAAEA,MAAM,CAAC,GAAG,CAAC;IAC3B,cAAc,EAAEA,MAAM,CAAC,GAAG;EAC5B,CAAC,CAAC;EACFkB,SAAS,EAAEf,MAAM,CAACC,MAAM,CACtB,CAAC,CAAC,EACFG,yBAAyB,EACzBE,qBAAqB,CAAChB,SAAS,CACjC,CAAC;EACD0B,SAAS,EAAEhB,MAAM,CAACC,MAAM,CACtB,CAAC,CAAC,EACFG,yBAAyB,EACzBE,qBAAqB,CAACjB,SAAS,CACjC,CAAC;EACD4B,cAAc,EAAEjB,MAAM,CAACC,MAAM,CAC3B,CAAC,CAAC,EACFG,yBAAyB,EACzBE,qBAAqB,CAAChB,SAAS,CACjC,CAAC;EACD4B,aAAa,EAAElB,MAAM,CAACC,MAAM,CAC1B,CAAC,CAAC,EACFG,yBAAyB,EACzBE,qBAAqB,CAACf,aAAa,CACrC,CAAC;EACD4B,kBAAkB,EAAEnB,MAAM,CAACC,MAAM,CAC/B,CAAC,CAAC,EACFG,yBAAyB,EACzBE,qBAAqB,CAACf,aAAa,CACrC,CAAC;EACD6B,SAAS,EAAEtB,YAAY,CAACI,4BAA4B,CAAC;EACrDmB,kBAAkB,EAAEvB,YAAY,CAACI,4BAA4B,CAAC;EAC9DoB,iBAAiB,EAAExB,YAAY,CAACI,4BAA4B;AAC9D,CAAC;AAED,OAAO,SAASqB,gBAAgBA,CAACC,SAAS,EAAE;EAC1C,OAAOxB,MAAM,CAACyB,IAAI,CAACC,eAAe,CAACF,SAAS,CAAC,CAAC,CAACG,IAAI,CAAC,CAAC;AACvD;AAEA,OAAO,SAASC,aAAaA,CAC3BJ,SAAwB,EACxBK,SAAiB,EACjBC,QAAgB,EAChBC,KAA6B,EAC7B;EACA,OAAOL,eAAe,CAACF,SAAS,CAAC,CAACM,QAAQ,CAAC,CAACE,UAAU,CACpD;IAAEC,IAAI,EAAET,SAAS;IAAEU,IAAI,EAAEL;EAAU,CAAC,EACpCE,KACF,CAAC;AACH;AAEA,OAAO,SAASI,iBAAiBA,CAACX,SAAwB,EAAEM,QAAQ,EAAE;EACpE,OAAOJ,eAAe,CAACF,SAAS,CAAC,CAACM,QAAQ,CAAC;AAC7C;AAEA,SAASJ,eAAeA,CAACF,SAAwB,EAAE;EACjD,OAAOf,eAAe,CAACe,SAAS,CAAC,IAAI7B,gBAAgB;AACvD;AAEA,SAASE,MAAMA,CAACiC,QAAkB,EAAE;EAClC,OAAO;IACLE,UAAU,EAAEA,CAACI,KAAmB,EAAEL,KAAK,KACpC,GAAEK,KAAK,CAACF,IAAK,IAAGJ,QAAS,IAAGO,WAAW,CAACD,KAAK,CAACH,IAAI,EAAEF,KAAK,CAACA,KAAK,CAAE;EACtE,CAAC;AACH;AAEA,SAAS5B,QAAQA,CAAC2B,QAAkB,EAAE;EACpC,OAAO;IACLE,UAAU,EAAEA,CAACI,KAAmB,EAAEL,KAAK,KACpC,UAASK,KAAK,CAACF,IAAK,KAAIJ,QAAS,IAAGC,KAAK,CAACA,KAAM;EACrD,CAAC;AACH;AAEA,SAASnB,aAAaA,CAACkB,QAAc,EAAE;EACrC,OAAO;IACLE,UAAU,EAAEA,CAACI,KAAmB,EAAEL,KAAK,KACpC,GAAEM,WAAW,CAACD,KAAK,CAACH,IAAI,EAAEF,KAAK,CAACA,KAAK,CAAE,IAAGD,QAAS,IAAGM,KAAK,CAACF,IAAK;EACtE,CAAC;AACH;AAEA,SAASrB,GAAGA,CAACyB,kBAAkB,EAAE;EAC/B,OAAO;IACLN,UAAU,EAAEA,CAACI,KAAmB,EAAEL,KAAK,KACpC,QAAOO,kBAAkB,CAACN,UAAU,CAACI,KAAK,EAAEL,KAAK,CAAE;EACxD,CAAC;AACH;AAEA,SAASM,WAAWA,CAACb,SAAwB,EAAEO,KAAK,EAAE;EACpD,IAAIP,SAAS,KAAK,aAAa,IAAIA,SAAS,KAAK,YAAY,EAAE;IAC7D,OAAOO,KAAK;EACd;EACA,OAAQ,IAAGA,KAAM,GAAE;AACrB;AAEA,OAAO,MAAMQ,+BAA+B,GAAGvC,MAAM,CAACyB,IAAI,CACxDrB,yBACF,CAAC;AACD,OAAO,MAAMoC,+BAA+B,GAAGxC,MAAM,CAACyB,IAAI,CACxDnB,qBAAqB,CAACf,aAAa,CACrC,CAAC;AAED,SAASc,gBAAgBA,CAACyB,QAAkB,EAAE;EAC5C,OAAO;IACLE,UAAU,EAAEA,CAACI,KAAmB,EAAEL,KAAK,KAAK;MAC1C,IAAIA,KAAK,YAAYvC,cAAc,EAAE;QACnC,OAAQ,GAAE4C,KAAK,CAACF,IAAK,IAAGJ,QAAS,KAAIC,KAAK,CAACU,YAAY,CAAC,CAAE,GAAE;MAC9D;MACA,MAAMC,KAAK,CAAC,gCAAgC,CAAC;IAC/C;EACF,CAAC;AACH;AAEA,SAASlC,YAAYA,CAACmC,YAAY,EAAEC,cAAc,EAAErC,KAAK,EAAE;EACzD,OAAO;IACLA,KAAK;IACLyB,UAAU,EAAEA,CAACI,KAAmB,EAAEL,KAAK,KAAK;MAC1C,IAAIA,KAAK,YAAYrC,iBAAiB,EAAE;QACtC,MAAMoC,QAAQ,GACZC,KAAK,CAACc,SAAS,KAAKpD,cAAc,CAACqD,IAAI,GACnCH,YAAY,GACZC,cAAc;QACpB,OAAQ,GAAER,KAAK,CAACF,IAAK,IAAGJ,QAAS,IAAGC,KAAK,CAACU,YAAY,CAAC,CAAE,EAAC;MAC5D;MACA,MAAMC,KAAK,CAAC,sCAAsC,CAAC;IACrD;EACF,CAAC;AACH"}
@@ -1,9 +1,5 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.ConditionRef = void 0;
5
- var _conditionAbstract = require("./condition-abstract");
6
- class ConditionRef extends _conditionAbstract.ConditionAbstract {
1
+ import { ConditionAbstract } from "./condition-abstract.js";
2
+ export class ConditionRef extends ConditionAbstract {
7
3
  constructor(conditionName, conditionDisplayName, coordinator) {
8
4
  super(coordinator);
9
5
  if (typeof conditionName !== 'string') {
@@ -29,5 +25,4 @@ class ConditionRef extends _conditionAbstract.ConditionAbstract {
29
25
  return new ConditionRef(this.conditionName, this.conditionDisplayName, this.coordinator);
30
26
  }
31
27
  }
32
- exports.ConditionRef = ConditionRef;
33
28
  //# sourceMappingURL=condition-ref.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition-ref.js","names":["_conditionAbstract","require","ConditionRef","ConditionAbstract","constructor","conditionName","conditionDisplayName","coordinator","Error","asFirstCondition","_asFirstCondition","conditionString","conditionExpression","clone","exports"],"sources":["../../../src/conditions/condition-ref.ts"],"sourcesContent":["import { ConditionAbstract } from '~/src/conditions/condition-abstract'\nimport { Coordinator } from '~/src/conditions/enums'\n\nexport class ConditionRef extends ConditionAbstract {\n conditionName: string\n conditionDisplayName: string\n\n constructor(\n conditionName: string,\n conditionDisplayName: string,\n coordinator: Coordinator | undefined\n ) {\n super(coordinator)\n\n if (typeof conditionName !== 'string') {\n throw Error(`condition name ${conditionName} is not valid`)\n }\n\n if (typeof conditionDisplayName !== 'string') {\n throw Error(`condition display name ${conditionDisplayName} is not valid`)\n }\n\n this.conditionName = conditionName\n this.conditionDisplayName = conditionDisplayName\n }\n\n asFirstCondition() {\n this._asFirstCondition()\n return this\n }\n\n conditionString() {\n return `'${this.conditionDisplayName}'`\n }\n\n conditionExpression() {\n return this.conditionName\n }\n\n clone() {\n return new ConditionRef(\n this.conditionName,\n this.conditionDisplayName,\n this.coordinator\n )\n }\n}\n"],"mappings":";;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAGO,MAAMC,YAAY,SAASC,oCAAiB,CAAC;EAIlDC,WAAWA,CACTC,aAAqB,EACrBC,oBAA4B,EAC5BC,WAAoC,EACpC;IACA,KAAK,CAACA,WAAW,CAAC;IAElB,IAAI,OAAOF,aAAa,KAAK,QAAQ,EAAE;MACrC,MAAMG,KAAK,CAAE,kBAAiBH,aAAc,eAAc,CAAC;IAC7D;IAEA,IAAI,OAAOC,oBAAoB,KAAK,QAAQ,EAAE;MAC5C,MAAME,KAAK,CAAE,0BAAyBF,oBAAqB,eAAc,CAAC;IAC5E;IAEA,IAAI,CAACD,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACC,oBAAoB,GAAGA,oBAAoB;EAClD;EAEAG,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACC,iBAAiB,CAAC,CAAC;IACxB,OAAO,IAAI;EACb;EAEAC,eAAeA,CAAA,EAAG;IAChB,OAAQ,IAAG,IAAI,CAACL,oBAAqB,GAAE;EACzC;EAEAM,mBAAmBA,CAAA,EAAG;IACpB,OAAO,IAAI,CAACP,aAAa;EAC3B;EAEAQ,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIX,YAAY,CACrB,IAAI,CAACG,aAAa,EAClB,IAAI,CAACC,oBAAoB,EACzB,IAAI,CAACC,WACP,CAAC;EACH;AACF;AAACO,OAAA,CAAAZ,YAAA,GAAAA,YAAA"}
1
+ {"version":3,"file":"condition-ref.js","names":["ConditionAbstract","ConditionRef","constructor","conditionName","conditionDisplayName","coordinator","Error","asFirstCondition","_asFirstCondition","conditionString","conditionExpression","clone"],"sources":["../../../src/conditions/condition-ref.ts"],"sourcesContent":["import { ConditionAbstract } from '~/src/conditions/condition-abstract.js'\nimport { Coordinator } from '~/src/conditions/enums.js'\n\nexport class ConditionRef extends ConditionAbstract {\n conditionName: string\n conditionDisplayName: string\n\n constructor(\n conditionName: string,\n conditionDisplayName: string,\n coordinator: Coordinator | undefined\n ) {\n super(coordinator)\n\n if (typeof conditionName !== 'string') {\n throw Error(`condition name ${conditionName} is not valid`)\n }\n\n if (typeof conditionDisplayName !== 'string') {\n throw Error(`condition display name ${conditionDisplayName} is not valid`)\n }\n\n this.conditionName = conditionName\n this.conditionDisplayName = conditionDisplayName\n }\n\n asFirstCondition() {\n this._asFirstCondition()\n return this\n }\n\n conditionString() {\n return `'${this.conditionDisplayName}'`\n }\n\n conditionExpression() {\n return this.conditionName\n }\n\n clone() {\n return new ConditionRef(\n this.conditionName,\n this.conditionDisplayName,\n this.coordinator\n )\n }\n}\n"],"mappings":"AAAA,SAASA,iBAAiB;AAG1B,OAAO,MAAMC,YAAY,SAASD,iBAAiB,CAAC;EAIlDE,WAAWA,CACTC,aAAqB,EACrBC,oBAA4B,EAC5BC,WAAoC,EACpC;IACA,KAAK,CAACA,WAAW,CAAC;IAElB,IAAI,OAAOF,aAAa,KAAK,QAAQ,EAAE;MACrC,MAAMG,KAAK,CAAE,kBAAiBH,aAAc,eAAc,CAAC;IAC7D;IAEA,IAAI,OAAOC,oBAAoB,KAAK,QAAQ,EAAE;MAC5C,MAAME,KAAK,CAAE,0BAAyBF,oBAAqB,eAAc,CAAC;IAC5E;IAEA,IAAI,CAACD,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACC,oBAAoB,GAAGA,oBAAoB;EAClD;EAEAG,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACC,iBAAiB,CAAC,CAAC;IACxB,OAAO,IAAI;EACb;EAEAC,eAAeA,CAAA,EAAG;IAChB,OAAQ,IAAG,IAAI,CAACL,oBAAqB,GAAE;EACzC;EAEAM,mBAAmBA,CAAA,EAAG;IACpB,OAAO,IAAI,CAACP,aAAa;EAC3B;EAEAQ,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIV,YAAY,CACrB,IAAI,CAACE,aAAa,EAClB,IAAI,CAACC,oBAAoB,EACzB,IAAI,CAACC,WACP,CAAC;EACH;AACF"}
@@ -1,14 +1,10 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.ConditionValueAbstract = void 0;
5
- var _conditionValueRegistration = require("./condition-value-registration");
6
- class ConditionValueAbstract {
1
+ import { Registration } from "./condition-value-registration.js";
2
+ export class ConditionValueAbstract {
7
3
  constructor(registration) {
8
4
  if (new.target === ConditionValueAbstract) {
9
5
  throw new TypeError('Cannot construct ConditionValue instances directly');
10
6
  }
11
- if (!(registration instanceof _conditionValueRegistration.Registration)) {
7
+ if (!(registration instanceof Registration)) {
12
8
  throw new TypeError('You must register your value type! Call registerValueType!');
13
9
  }
14
10
  this.type = registration.type;
@@ -20,5 +16,4 @@ class ConditionValueAbstract {
20
16
  throw new Error('Unsupported Operation. Method toExpression have not been implemented');
21
17
  }
22
18
  }
23
- exports.ConditionValueAbstract = ConditionValueAbstract;
24
19
  //# sourceMappingURL=condition-value-abstract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition-value-abstract.js","names":["_conditionValueRegistration","require","ConditionValueAbstract","constructor","registration","new","target","TypeError","Registration","type","toPresentationString","Error","toExpression","exports"],"sources":["../../../src/conditions/condition-value-abstract.ts"],"sourcesContent":["import { Registration } from '~/src/conditions/condition-value-registration'\n\nexport class ConditionValueAbstract {\n type: string\n\n constructor(registration: Registration) {\n if (new.target === ConditionValueAbstract) {\n throw new TypeError('Cannot construct ConditionValue instances directly')\n }\n\n if (!(registration instanceof Registration)) {\n throw new TypeError(\n 'You must register your value type! Call registerValueType!'\n )\n }\n\n this.type = registration.type\n }\n\n toPresentationString() {\n throw new Error(\n 'Unsupported Operation. Method toPresentationString have not been implemented'\n )\n }\n\n toExpression() {\n throw new Error(\n 'Unsupported Operation. Method toExpression have not been implemented'\n )\n }\n}\n"],"mappings":";;;;AAAA,IAAAA,2BAAA,GAAAC,OAAA;AAEO,MAAMC,sBAAsB,CAAC;EAGlCC,WAAWA,CAACC,YAA0B,EAAE;IACtC,IAAIC,GAAG,CAACC,MAAM,KAAKJ,sBAAsB,EAAE;MACzC,MAAM,IAAIK,SAAS,CAAC,oDAAoD,CAAC;IAC3E;IAEA,IAAI,EAAEH,YAAY,YAAYI,wCAAY,CAAC,EAAE;MAC3C,MAAM,IAAID,SAAS,CACjB,4DACF,CAAC;IACH;IAEA,IAAI,CAACE,IAAI,GAAGL,YAAY,CAACK,IAAI;EAC/B;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,MAAM,IAAIC,KAAK,CACb,8EACF,CAAC;EACH;EAEAC,YAAYA,CAAA,EAAG;IACb,MAAM,IAAID,KAAK,CACb,sEACF,CAAC;EACH;AACF;AAACE,OAAA,CAAAX,sBAAA,GAAAA,sBAAA"}
1
+ {"version":3,"file":"condition-value-abstract.js","names":["Registration","ConditionValueAbstract","constructor","registration","new","target","TypeError","type","toPresentationString","Error","toExpression"],"sources":["../../../src/conditions/condition-value-abstract.ts"],"sourcesContent":["import { Registration } from '~/src/conditions/condition-value-registration.js'\n\nexport class ConditionValueAbstract {\n type: string\n\n constructor(registration: Registration) {\n if (new.target === ConditionValueAbstract) {\n throw new TypeError('Cannot construct ConditionValue instances directly')\n }\n\n if (!(registration instanceof Registration)) {\n throw new TypeError(\n 'You must register your value type! Call registerValueType!'\n )\n }\n\n this.type = registration.type\n }\n\n toPresentationString() {\n throw new Error(\n 'Unsupported Operation. Method toPresentationString have not been implemented'\n )\n }\n\n toExpression() {\n throw new Error(\n 'Unsupported Operation. Method toExpression have not been implemented'\n )\n }\n}\n"],"mappings":"AAAA,SAASA,YAAY;AAErB,OAAO,MAAMC,sBAAsB,CAAC;EAGlCC,WAAWA,CAACC,YAA0B,EAAE;IACtC,IAAIC,GAAG,CAACC,MAAM,KAAKJ,sBAAsB,EAAE;MACzC,MAAM,IAAIK,SAAS,CAAC,oDAAoD,CAAC;IAC3E;IAEA,IAAI,EAAEH,YAAY,YAAYH,YAAY,CAAC,EAAE;MAC3C,MAAM,IAAIM,SAAS,CACjB,4DACF,CAAC;IACH;IAEA,IAAI,CAACC,IAAI,GAAGJ,YAAY,CAACI,IAAI;EAC/B;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,MAAM,IAAIC,KAAK,CACb,8EACF,CAAC;EACH;EAEAC,YAAYA,CAAA,EAAG;IACb,MAAM,IAAID,KAAK,CACb,sEACF,CAAC;EACH;AACF"}
@@ -1,9 +1,5 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.Registration = void 0;
5
1
  const conditionValueFactories = {};
6
- class Registration {
2
+ export class Registration {
7
3
  constructor(type, factory) {
8
4
  conditionValueFactories[type] = factory;
9
5
  this.type = type;
@@ -15,5 +11,4 @@ class Registration {
15
11
  return conditionValueFactories[obj.type](obj);
16
12
  }
17
13
  }
18
- exports.Registration = Registration;
19
14
  //# sourceMappingURL=condition-value-registration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition-value-registration.js","names":["conditionValueFactories","Registration","constructor","type","factory","register","conditionValueFrom","obj","exports"],"sources":["../../../src/conditions/condition-value-registration.ts"],"sourcesContent":["const conditionValueFactories = {}\n\nexport class Registration {\n type: string\n\n constructor(type: string, factory: (obj: any) => Registration) {\n conditionValueFactories[type] = factory\n this.type = type\n }\n\n static register(type: string, factory: (obj: any) => Registration) {\n return new Registration(type, factory)\n }\n\n static conditionValueFrom(obj: { type: string; [prop: string]: any }) {\n return conditionValueFactories[obj.type](obj)\n }\n}\n"],"mappings":";;;;AAAA,MAAMA,uBAAuB,GAAG,CAAC,CAAC;AAE3B,MAAMC,YAAY,CAAC;EAGxBC,WAAWA,CAACC,IAAY,EAAEC,OAAmC,EAAE;IAC7DJ,uBAAuB,CAACG,IAAI,CAAC,GAAGC,OAAO;IACvC,IAAI,CAACD,IAAI,GAAGA,IAAI;EAClB;EAEA,OAAOE,QAAQA,CAACF,IAAY,EAAEC,OAAmC,EAAE;IACjE,OAAO,IAAIH,YAAY,CAACE,IAAI,EAAEC,OAAO,CAAC;EACxC;EAEA,OAAOE,kBAAkBA,CAACC,GAA0C,EAAE;IACpE,OAAOP,uBAAuB,CAACO,GAAG,CAACJ,IAAI,CAAC,CAACI,GAAG,CAAC;EAC/C;AACF;AAACC,OAAA,CAAAP,YAAA,GAAAA,YAAA"}
1
+ {"version":3,"file":"condition-value-registration.js","names":["conditionValueFactories","Registration","constructor","type","factory","register","conditionValueFrom","obj"],"sources":["../../../src/conditions/condition-value-registration.ts"],"sourcesContent":["const conditionValueFactories = {}\n\nexport class Registration {\n type: string\n\n constructor(type: string, factory: (obj: any) => Registration) {\n conditionValueFactories[type] = factory\n this.type = type\n }\n\n static register(type: string, factory: (obj: any) => Registration) {\n return new Registration(type, factory)\n }\n\n static conditionValueFrom(obj: { type: string; [prop: string]: any }) {\n return conditionValueFactories[obj.type](obj)\n }\n}\n"],"mappings":"AAAA,MAAMA,uBAAuB,GAAG,CAAC,CAAC;AAElC,OAAO,MAAMC,YAAY,CAAC;EAGxBC,WAAWA,CAACC,IAAY,EAAEC,OAAmC,EAAE;IAC7DJ,uBAAuB,CAACG,IAAI,CAAC,GAAGC,OAAO;IACvC,IAAI,CAACD,IAAI,GAAGA,IAAI;EAClB;EAEA,OAAOE,QAAQA,CAACF,IAAY,EAAEC,OAAmC,EAAE;IACjE,OAAO,IAAIH,YAAY,CAACE,IAAI,EAAEC,OAAO,CAAC;EACxC;EAEA,OAAOE,kBAAkBA,CAACC,GAA0C,EAAE;IACpE,OAAOP,uBAAuB,CAACO,GAAG,CAACJ,IAAI,CAAC,CAACI,GAAG,CAAC;EAC/C;AACF"}
@@ -1,12 +1,6 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.RelativeTimeValue = exports.DateDirections = exports.ConditionValue = void 0;
5
- exports.conditionValueFrom = conditionValueFrom;
6
- exports.timeUnits = exports.relativeTimeValueType = exports.dateUnits = exports.dateTimeUnits = void 0;
7
- var _conditionValueAbstract = require("./condition-value-abstract");
8
- var _conditionValueRegistration = require("./condition-value-registration");
9
- class ConditionValue extends _conditionValueAbstract.ConditionValueAbstract {
1
+ import { ConditionValueAbstract } from "./condition-value-abstract.js";
2
+ import { Registration } from "./condition-value-registration.js";
3
+ export class ConditionValue extends ConditionValueAbstract {
10
4
  constructor(value, display) {
11
5
  super(valueType);
12
6
  if (!value || typeof value !== 'string') {
@@ -31,14 +25,13 @@ class ConditionValue extends _conditionValueAbstract.ConditionValueAbstract {
31
25
  return ConditionValue.from(this);
32
26
  }
33
27
  }
34
- exports.ConditionValue = ConditionValue;
35
- const valueType = _conditionValueRegistration.Registration.register('Value', obj => ConditionValue.from(obj));
36
- let DateDirections = exports.DateDirections = /*#__PURE__*/function (DateDirections) {
28
+ const valueType = Registration.register('Value', obj => ConditionValue.from(obj));
29
+ export let DateDirections = /*#__PURE__*/function (DateDirections) {
37
30
  DateDirections["FUTURE"] = "in the future";
38
31
  DateDirections["PAST"] = "in the past";
39
32
  return DateDirections;
40
33
  }({});
41
- const dateUnits = exports.dateUnits = {
34
+ export const dateUnits = {
42
35
  YEARS: {
43
36
  display: 'year(s)',
44
37
  value: 'years'
@@ -52,7 +45,7 @@ const dateUnits = exports.dateUnits = {
52
45
  value: 'days'
53
46
  }
54
47
  };
55
- const timeUnits = exports.timeUnits = {
48
+ export const timeUnits = {
56
49
  HOURS: {
57
50
  display: 'hour(s)',
58
51
  value: 'hours'
@@ -66,8 +59,8 @@ const timeUnits = exports.timeUnits = {
66
59
  value: 'seconds'
67
60
  }
68
61
  };
69
- const dateTimeUnits = exports.dateTimeUnits = Object.assign({}, dateUnits, timeUnits);
70
- class RelativeTimeValue extends _conditionValueAbstract.ConditionValueAbstract {
62
+ export const dateTimeUnits = Object.assign({}, dateUnits, timeUnits);
63
+ export class RelativeTimeValue extends ConditionValueAbstract {
71
64
  constructor(timePeriod, timeUnit, direction, timeOnly = false) {
72
65
  super(relativeTimeValueType);
73
66
  if (typeof timePeriod !== 'string') {
@@ -98,9 +91,8 @@ class RelativeTimeValue extends _conditionValueAbstract.ConditionValueAbstract {
98
91
  return RelativeTimeValue.from(this);
99
92
  }
100
93
  }
101
- exports.RelativeTimeValue = RelativeTimeValue;
102
- const relativeTimeValueType = exports.relativeTimeValueType = _conditionValueRegistration.Registration.register('RelativeTime', obj => RelativeTimeValue.from(obj));
103
- function conditionValueFrom(obj) {
104
- return _conditionValueRegistration.Registration.conditionValueFrom(obj);
94
+ export const relativeTimeValueType = Registration.register('RelativeTime', obj => RelativeTimeValue.from(obj));
95
+ export function conditionValueFrom(obj) {
96
+ return Registration.conditionValueFrom(obj);
105
97
  }
106
98
  //# sourceMappingURL=condition-values.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition-values.js","names":["_conditionValueAbstract","require","_conditionValueRegistration","ConditionValue","ConditionValueAbstract","constructor","value","display","valueType","Error","toPresentationString","toExpression","from","obj","clone","exports","Registration","register","DateDirections","dateUnits","YEARS","MONTHS","DAYS","timeUnits","HOURS","MINUTES","SECONDS","dateTimeUnits","Object","assign","RelativeTimeValue","timePeriod","timeUnit","direction","timeOnly","relativeTimeValueType","values","map","unit","includes","PAST","Number","conditionValueFrom"],"sources":["../../../src/conditions/condition-values.ts"],"sourcesContent":["import { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract'\nimport { Registration } from '~/src/conditions/condition-value-registration'\nimport {\n type DateTimeUnitValues,\n type DateUnits,\n type TimeUnits\n} from '~/src/conditions/types'\n\nexport class ConditionValue extends ConditionValueAbstract {\n value: string\n display: string\n\n constructor(value: string, display?: string) {\n super(valueType)\n\n if (!value || typeof value !== 'string') {\n throw Error(`value ${value} is not valid`)\n }\n\n if (display && typeof display !== 'string') {\n throw Error(`display ${display} is not valid`)\n }\n\n this.value = value\n this.display = display || value\n }\n\n toPresentationString() {\n return this.display\n }\n\n toExpression() {\n return this.value\n }\n\n static from(obj: { value: string; display?: string }) {\n return new ConditionValue(obj.value, obj.display)\n }\n\n clone() {\n return ConditionValue.from(this)\n }\n}\n\nconst valueType = Registration.register('Value', (obj) =>\n ConditionValue.from(obj)\n)\n\nexport enum DateDirections {\n FUTURE = 'in the future',\n PAST = 'in the past'\n}\n\nexport const dateUnits: DateUnits = {\n YEARS: { display: 'year(s)', value: 'years' },\n MONTHS: { display: 'month(s)', value: 'months' },\n DAYS: { display: 'day(s)', value: 'days' }\n}\n\nexport const timeUnits: TimeUnits = {\n HOURS: { display: 'hour(s)', value: 'hours' },\n MINUTES: { display: 'minute(s)', value: 'minutes' },\n SECONDS: { display: 'second(s)', value: 'seconds' }\n}\n\nexport const dateTimeUnits: DateUnits & TimeUnits = Object.assign(\n {},\n dateUnits,\n timeUnits\n)\n\nexport class RelativeTimeValue extends ConditionValueAbstract {\n timePeriod: string\n timeUnit: DateTimeUnitValues\n direction: DateDirections\n timeOnly: boolean\n\n constructor(\n timePeriod: string,\n timeUnit: DateTimeUnitValues,\n direction: DateDirections,\n timeOnly = false\n ) {\n super(relativeTimeValueType)\n\n if (typeof timePeriod !== 'string') {\n throw Error(`time period ${timePeriod} is not valid`)\n }\n\n if (\n !Object.values(dateTimeUnits)\n .map((unit) => unit.value)\n .includes(timeUnit)\n ) {\n throw Error(`time unit ${timeUnit} is not valid`)\n }\n\n if (!Object.values(DateDirections).includes(direction)) {\n throw Error(`direction ${direction} is not valid`)\n }\n\n this.timePeriod = timePeriod\n this.timeUnit = timeUnit\n this.direction = direction\n this.timeOnly = timeOnly\n }\n\n toPresentationString() {\n return `${this.timePeriod} ${this.timeUnit} ${this.direction}`\n }\n\n toExpression(): string {\n const timePeriod =\n this.direction === DateDirections.PAST\n ? 0 - Number(this.timePeriod)\n : this.timePeriod\n return this.timeOnly\n ? `timeForComparison(${timePeriod}, '${this.timeUnit}')`\n : `dateForComparison(${timePeriod}, '${this.timeUnit}')`\n }\n\n static from(obj) {\n return new RelativeTimeValue(\n obj.timePeriod,\n obj.timeUnit,\n obj.direction,\n obj.timeOnly\n )\n }\n\n clone() {\n return RelativeTimeValue.from(this)\n }\n}\n\nexport const relativeTimeValueType = Registration.register(\n 'RelativeTime',\n (obj): RelativeTimeValue => RelativeTimeValue.from(obj)\n)\n\ntype ConditionValueFrom =\n | Pick<ConditionValue, 'type' | 'value' | 'display'>\n | Pick<\n RelativeTimeValue,\n 'type' | 'timePeriod' | 'timeUnit' | 'direction' | 'timeOnly'\n >\n\nexport function conditionValueFrom(obj: ConditionValueFrom) {\n return Registration.conditionValueFrom(obj)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"condition-values.js","names":["ConditionValueAbstract","Registration","ConditionValue","constructor","value","display","valueType","Error","toPresentationString","toExpression","from","obj","clone","register","DateDirections","dateUnits","YEARS","MONTHS","DAYS","timeUnits","HOURS","MINUTES","SECONDS","dateTimeUnits","Object","assign","RelativeTimeValue","timePeriod","timeUnit","direction","timeOnly","relativeTimeValueType","values","map","unit","includes","PAST","Number","conditionValueFrom"],"sources":["../../../src/conditions/condition-values.ts"],"sourcesContent":["import { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract.js'\nimport { Registration } from '~/src/conditions/condition-value-registration.js'\nimport {\n type DateTimeUnitValues,\n type DateUnits,\n type TimeUnits\n} from '~/src/conditions/types.js'\n\nexport class ConditionValue extends ConditionValueAbstract {\n value: string\n display: string\n\n constructor(value: string, display?: string) {\n super(valueType)\n\n if (!value || typeof value !== 'string') {\n throw Error(`value ${value} is not valid`)\n }\n\n if (display && typeof display !== 'string') {\n throw Error(`display ${display} is not valid`)\n }\n\n this.value = value\n this.display = display || value\n }\n\n toPresentationString() {\n return this.display\n }\n\n toExpression() {\n return this.value\n }\n\n static from(obj: { value: string; display?: string }) {\n return new ConditionValue(obj.value, obj.display)\n }\n\n clone() {\n return ConditionValue.from(this)\n }\n}\n\nconst valueType = Registration.register('Value', (obj) =>\n ConditionValue.from(obj)\n)\n\nexport enum DateDirections {\n FUTURE = 'in the future',\n PAST = 'in the past'\n}\n\nexport const dateUnits: DateUnits = {\n YEARS: { display: 'year(s)', value: 'years' },\n MONTHS: { display: 'month(s)', value: 'months' },\n DAYS: { display: 'day(s)', value: 'days' }\n}\n\nexport const timeUnits: TimeUnits = {\n HOURS: { display: 'hour(s)', value: 'hours' },\n MINUTES: { display: 'minute(s)', value: 'minutes' },\n SECONDS: { display: 'second(s)', value: 'seconds' }\n}\n\nexport const dateTimeUnits: DateUnits & TimeUnits = Object.assign(\n {},\n dateUnits,\n timeUnits\n)\n\nexport class RelativeTimeValue extends ConditionValueAbstract {\n timePeriod: string\n timeUnit: DateTimeUnitValues\n direction: DateDirections\n timeOnly: boolean\n\n constructor(\n timePeriod: string,\n timeUnit: DateTimeUnitValues,\n direction: DateDirections,\n timeOnly = false\n ) {\n super(relativeTimeValueType)\n\n if (typeof timePeriod !== 'string') {\n throw Error(`time period ${timePeriod} is not valid`)\n }\n\n if (\n !Object.values(dateTimeUnits)\n .map((unit) => unit.value)\n .includes(timeUnit)\n ) {\n throw Error(`time unit ${timeUnit} is not valid`)\n }\n\n if (!Object.values(DateDirections).includes(direction)) {\n throw Error(`direction ${direction} is not valid`)\n }\n\n this.timePeriod = timePeriod\n this.timeUnit = timeUnit\n this.direction = direction\n this.timeOnly = timeOnly\n }\n\n toPresentationString() {\n return `${this.timePeriod} ${this.timeUnit} ${this.direction}`\n }\n\n toExpression(): string {\n const timePeriod =\n this.direction === DateDirections.PAST\n ? 0 - Number(this.timePeriod)\n : this.timePeriod\n return this.timeOnly\n ? `timeForComparison(${timePeriod}, '${this.timeUnit}')`\n : `dateForComparison(${timePeriod}, '${this.timeUnit}')`\n }\n\n static from(obj) {\n return new RelativeTimeValue(\n obj.timePeriod,\n obj.timeUnit,\n obj.direction,\n obj.timeOnly\n )\n }\n\n clone() {\n return RelativeTimeValue.from(this)\n }\n}\n\nexport const relativeTimeValueType = Registration.register(\n 'RelativeTime',\n (obj): RelativeTimeValue => RelativeTimeValue.from(obj)\n)\n\ntype ConditionValueFrom =\n | Pick<ConditionValue, 'type' | 'value' | 'display'>\n | Pick<\n RelativeTimeValue,\n 'type' | 'timePeriod' | 'timeUnit' | 'direction' | 'timeOnly'\n >\n\nexport function conditionValueFrom(obj: ConditionValueFrom) {\n return Registration.conditionValueFrom(obj)\n}\n"],"mappings":"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"}
@@ -1,21 +1,17 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.Condition = void 0;
5
- var _conditionField = require("./condition-field");
6
- var _conditionAbstract = require("./condition-abstract");
7
- var _conditionOperators = require("./condition-operators");
8
- var _conditionValueAbstract = require("./condition-value-abstract");
9
- class Condition extends _conditionAbstract.ConditionAbstract {
1
+ import { ConditionField } from "./condition-field.js";
2
+ import { ConditionAbstract } from "./condition-abstract.js";
3
+ import { getExpression } from "./condition-operators.js";
4
+ import { ConditionValueAbstract } from "./condition-value-abstract.js";
5
+ export class Condition extends ConditionAbstract {
10
6
  constructor(field, operator, value, coordinator) {
11
7
  super(coordinator);
12
- if (!(field instanceof _conditionField.ConditionField)) {
8
+ if (!(field instanceof ConditionField)) {
13
9
  throw Error(`field ${field} is not a valid ConditionField object`);
14
10
  }
15
11
  if (typeof operator !== 'string') {
16
12
  throw Error(`operator ${operator} is not a valid operator`);
17
13
  }
18
- if (!(value instanceof _conditionValueAbstract.ConditionValueAbstract)) {
14
+ if (!(value instanceof ConditionValueAbstract)) {
19
15
  throw Error(`value ${value} is not a valid value type`);
20
16
  }
21
17
  this.field = field;
@@ -30,11 +26,10 @@ class Condition extends _conditionAbstract.ConditionAbstract {
30
26
  return `'${this.field.display}' ${this.operator} '${this.value.toPresentationString()}'`;
31
27
  }
32
28
  conditionExpression() {
33
- return (0, _conditionOperators.getExpression)(this.field.type, this.field.name, this.operator, this.value);
29
+ return getExpression(this.field.type, this.field.name, this.operator, this.value);
34
30
  }
35
31
  clone() {
36
- return new Condition(_conditionField.ConditionField.from(this.field), this.operator, this.value.clone(), this.coordinator);
32
+ return new Condition(ConditionField.from(this.field), this.operator, this.value.clone(), this.coordinator);
37
33
  }
38
34
  }
39
- exports.Condition = Condition;
40
35
  //# sourceMappingURL=condition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition.js","names":["_conditionField","require","_conditionAbstract","_conditionOperators","_conditionValueAbstract","Condition","ConditionAbstract","constructor","field","operator","value","coordinator","ConditionField","Error","ConditionValueAbstract","asFirstCondition","_asFirstCondition","conditionString","display","toPresentationString","conditionExpression","getExpression","type","name","clone","from","exports"],"sources":["../../../src/conditions/condition.ts"],"sourcesContent":["import { ConditionField } from '~/src/conditions/condition-field'\nimport { ConditionAbstract } from '~/src/conditions/condition-abstract'\nimport { getExpression } from '~/src/conditions/condition-operators'\nimport {\n ConditionValue,\n RelativeTimeValue\n} from '~/src/conditions/condition-values'\nimport { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract'\nimport { Coordinator } from '~/src/conditions/enums'\n\nexport class Condition extends ConditionAbstract {\n field: ConditionField\n operator: string\n value: ConditionValue | RelativeTimeValue\n\n constructor(\n field: ConditionField,\n operator: string,\n value: ConditionValue | RelativeTimeValue,\n coordinator?: Coordinator\n ) {\n super(coordinator)\n\n if (!(field instanceof ConditionField)) {\n throw Error(`field ${field} is not a valid ConditionField object`)\n }\n if (typeof operator !== 'string') {\n throw Error(`operator ${operator} is not a valid operator`)\n }\n if (!(value instanceof ConditionValueAbstract)) {\n throw Error(`value ${value} is not a valid value type`)\n }\n\n this.field = field\n this.operator = operator\n this.value = value\n }\n\n asFirstCondition() {\n this._asFirstCondition()\n return this\n }\n\n conditionString() {\n return `'${this.field.display}' ${\n this.operator\n } '${this.value.toPresentationString()}'`\n }\n\n conditionExpression() {\n return getExpression(\n this.field.type,\n this.field.name,\n this.operator,\n this.value\n )\n }\n\n clone() {\n return new Condition(\n ConditionField.from(this.field),\n this.operator,\n this.value.clone(),\n this.coordinator\n )\n }\n}\n"],"mappings":";;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAKA,IAAAG,uBAAA,GAAAH,OAAA;AAGO,MAAMI,SAAS,SAASC,oCAAiB,CAAC;EAK/CC,WAAWA,CACTC,KAAqB,EACrBC,QAAgB,EAChBC,KAAyC,EACzCC,WAAyB,EACzB;IACA,KAAK,CAACA,WAAW,CAAC;IAElB,IAAI,EAAEH,KAAK,YAAYI,8BAAc,CAAC,EAAE;MACtC,MAAMC,KAAK,CAAE,SAAQL,KAAM,uCAAsC,CAAC;IACpE;IACA,IAAI,OAAOC,QAAQ,KAAK,QAAQ,EAAE;MAChC,MAAMI,KAAK,CAAE,YAAWJ,QAAS,0BAAyB,CAAC;IAC7D;IACA,IAAI,EAAEC,KAAK,YAAYI,8CAAsB,CAAC,EAAE;MAC9C,MAAMD,KAAK,CAAE,SAAQH,KAAM,4BAA2B,CAAC;IACzD;IAEA,IAAI,CAACF,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,KAAK,GAAGA,KAAK;EACpB;EAEAK,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACC,iBAAiB,CAAC,CAAC;IACxB,OAAO,IAAI;EACb;EAEAC,eAAeA,CAAA,EAAG;IAChB,OAAQ,IAAG,IAAI,CAACT,KAAK,CAACU,OAAQ,KAC5B,IAAI,CAACT,QACN,KAAI,IAAI,CAACC,KAAK,CAACS,oBAAoB,CAAC,CAAE,GAAE;EAC3C;EAEAC,mBAAmBA,CAAA,EAAG;IACpB,OAAO,IAAAC,iCAAa,EAClB,IAAI,CAACb,KAAK,CAACc,IAAI,EACf,IAAI,CAACd,KAAK,CAACe,IAAI,EACf,IAAI,CAACd,QAAQ,EACb,IAAI,CAACC,KACP,CAAC;EACH;EAEAc,KAAKA,CAAA,EAAG;IACN,OAAO,IAAInB,SAAS,CAClBO,8BAAc,CAACa,IAAI,CAAC,IAAI,CAACjB,KAAK,CAAC,EAC/B,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,KAAK,CAACc,KAAK,CAAC,CAAC,EAClB,IAAI,CAACb,WACP,CAAC;EACH;AACF;AAACe,OAAA,CAAArB,SAAA,GAAAA,SAAA"}
1
+ {"version":3,"file":"condition.js","names":["ConditionField","ConditionAbstract","getExpression","ConditionValueAbstract","Condition","constructor","field","operator","value","coordinator","Error","asFirstCondition","_asFirstCondition","conditionString","display","toPresentationString","conditionExpression","type","name","clone","from"],"sources":["../../../src/conditions/condition.ts"],"sourcesContent":["import { ConditionField } from '~/src/conditions/condition-field.js'\nimport { ConditionAbstract } from '~/src/conditions/condition-abstract.js'\nimport { getExpression } from '~/src/conditions/condition-operators.js'\nimport {\n ConditionValue,\n RelativeTimeValue\n} from '~/src/conditions/condition-values.js'\nimport { ConditionValueAbstract } from '~/src/conditions/condition-value-abstract.js'\nimport { Coordinator } from '~/src/conditions/enums.js'\n\nexport class Condition extends ConditionAbstract {\n field: ConditionField\n operator: string\n value: ConditionValue | RelativeTimeValue\n\n constructor(\n field: ConditionField,\n operator: string,\n value: ConditionValue | RelativeTimeValue,\n coordinator?: Coordinator\n ) {\n super(coordinator)\n\n if (!(field instanceof ConditionField)) {\n throw Error(`field ${field} is not a valid ConditionField object`)\n }\n if (typeof operator !== 'string') {\n throw Error(`operator ${operator} is not a valid operator`)\n }\n if (!(value instanceof ConditionValueAbstract)) {\n throw Error(`value ${value} is not a valid value type`)\n }\n\n this.field = field\n this.operator = operator\n this.value = value\n }\n\n asFirstCondition() {\n this._asFirstCondition()\n return this\n }\n\n conditionString() {\n return `'${this.field.display}' ${\n this.operator\n } '${this.value.toPresentationString()}'`\n }\n\n conditionExpression() {\n return getExpression(\n this.field.type,\n this.field.name,\n this.operator,\n this.value\n )\n }\n\n clone() {\n return new Condition(\n ConditionField.from(this.field),\n this.operator,\n this.value.clone(),\n this.coordinator\n )\n }\n}\n"],"mappings":"AAAA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,aAAa;AAKtB,SAASC,sBAAsB;AAG/B,OAAO,MAAMC,SAAS,SAASH,iBAAiB,CAAC;EAK/CI,WAAWA,CACTC,KAAqB,EACrBC,QAAgB,EAChBC,KAAyC,EACzCC,WAAyB,EACzB;IACA,KAAK,CAACA,WAAW,CAAC;IAElB,IAAI,EAAEH,KAAK,YAAYN,cAAc,CAAC,EAAE;MACtC,MAAMU,KAAK,CAAE,SAAQJ,KAAM,uCAAsC,CAAC;IACpE;IACA,IAAI,OAAOC,QAAQ,KAAK,QAAQ,EAAE;MAChC,MAAMG,KAAK,CAAE,YAAWH,QAAS,0BAAyB,CAAC;IAC7D;IACA,IAAI,EAAEC,KAAK,YAAYL,sBAAsB,CAAC,EAAE;MAC9C,MAAMO,KAAK,CAAE,SAAQF,KAAM,4BAA2B,CAAC;IACzD;IAEA,IAAI,CAACF,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,KAAK,GAAGA,KAAK;EACpB;EAEAG,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACC,iBAAiB,CAAC,CAAC;IACxB,OAAO,IAAI;EACb;EAEAC,eAAeA,CAAA,EAAG;IAChB,OAAQ,IAAG,IAAI,CAACP,KAAK,CAACQ,OAAQ,KAC5B,IAAI,CAACP,QACN,KAAI,IAAI,CAACC,KAAK,CAACO,oBAAoB,CAAC,CAAE,GAAE;EAC3C;EAEAC,mBAAmBA,CAAA,EAAG;IACpB,OAAOd,aAAa,CAClB,IAAI,CAACI,KAAK,CAACW,IAAI,EACf,IAAI,CAACX,KAAK,CAACY,IAAI,EACf,IAAI,CAACX,QAAQ,EACb,IAAI,CAACC,KACP,CAAC;EACH;EAEAW,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIf,SAAS,CAClBJ,cAAc,CAACoB,IAAI,CAAC,IAAI,CAACd,KAAK,CAAC,EAC/B,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,KAAK,CAACW,KAAK,CAAC,CAAC,EAClB,IAAI,CAACV,WACP,CAAC;EACH;AACF"}
@@ -1,8 +1,4 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.Coordinator = void 0;
5
- let Coordinator = exports.Coordinator = /*#__PURE__*/function (Coordinator) {
1
+ export let Coordinator = /*#__PURE__*/function (Coordinator) {
6
2
  Coordinator["AND"] = "and";
7
3
  Coordinator["OR"] = "or";
8
4
  return Coordinator;
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","names":["Coordinator","exports"],"sources":["../../../src/conditions/enums.ts"],"sourcesContent":["export enum Coordinator {\n AND = 'and',\n OR = 'or'\n}\n"],"mappings":";;;;IAAYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA"}
1
+ {"version":3,"file":"enums.js","names":["Coordinator"],"sources":["../../../src/conditions/enums.ts"],"sourcesContent":["export enum Coordinator {\n AND = 'and',\n OR = 'or'\n}\n"],"mappings":"AAAA,WAAYA,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA"}
@@ -1,12 +1,7 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.toExpression = toExpression;
5
- exports.toPresentationString = toPresentationString;
6
- function toPresentationString(condition) {
1
+ export function toPresentationString(condition) {
7
2
  return `${condition.coordinatorString()}${condition.conditionString()}`;
8
3
  }
9
- function toExpression(condition) {
4
+ export function toExpression(condition) {
10
5
  return `${condition.coordinatorString()}${condition.conditionExpression()}`;
11
6
  }
12
7
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["toPresentationString","condition","coordinatorString","conditionString","toExpression","conditionExpression"],"sources":["../../../src/conditions/helpers.ts"],"sourcesContent":["export function toPresentationString(condition) {\n return `${condition.coordinatorString()}${condition.conditionString()}`\n}\n\nexport function toExpression(condition) {\n return `${condition.coordinatorString()}${condition.conditionExpression()}`\n}\n"],"mappings":";;;;;AAAO,SAASA,oBAAoBA,CAACC,SAAS,EAAE;EAC9C,OAAQ,GAAEA,SAAS,CAACC,iBAAiB,CAAC,CAAE,GAAED,SAAS,CAACE,eAAe,CAAC,CAAE,EAAC;AACzE;AAEO,SAASC,YAAYA,CAACH,SAAS,EAAE;EACtC,OAAQ,GAAEA,SAAS,CAACC,iBAAiB,CAAC,CAAE,GAAED,SAAS,CAACI,mBAAmB,CAAC,CAAE,EAAC;AAC7E"}
1
+ {"version":3,"file":"helpers.js","names":["toPresentationString","condition","coordinatorString","conditionString","toExpression","conditionExpression"],"sources":["../../../src/conditions/helpers.ts"],"sourcesContent":["export function toPresentationString(condition) {\n return `${condition.coordinatorString()}${condition.conditionString()}`\n}\n\nexport function toExpression(condition) {\n return `${condition.coordinatorString()}${condition.conditionExpression()}`\n}\n"],"mappings":"AAAA,OAAO,SAASA,oBAAoBA,CAACC,SAAS,EAAE;EAC9C,OAAQ,GAAEA,SAAS,CAACC,iBAAiB,CAAC,CAAE,GAAED,SAAS,CAACE,eAAe,CAAC,CAAE,EAAC;AACzE;AAEA,OAAO,SAASC,YAAYA,CAACH,SAAS,EAAE;EACtC,OAAQ,GAAEA,SAAS,CAACC,iBAAiB,CAAC,CAAE,GAAED,SAAS,CAACI,mBAAmB,CAAC,CAAE,EAAC;AAC7E"}