@iapps/d2-web-sdk 1.0.0 → 1.0.2

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 (288) hide show
  1. package/package.json +12 -1
  2. package/src/lib/d2-web-sdk.d.ts +16 -4
  3. package/src/lib/d2-web-sdk.js +89 -16
  4. package/src/lib/d2-web-sdk.js.map +1 -1
  5. package/src/lib/index.d.ts +0 -0
  6. package/src/lib/index.js +5 -0
  7. package/src/lib/index.js.map +1 -0
  8. package/src/lib/modules/app-manifest/app-manifest.module.d.ts +7 -0
  9. package/src/lib/modules/app-manifest/app-manifest.module.js +29 -0
  10. package/src/lib/modules/app-manifest/app-manifest.module.js.map +1 -0
  11. package/src/lib/modules/app-manifest/index.d.ts +2 -0
  12. package/src/lib/modules/app-manifest/index.js +9 -0
  13. package/src/lib/modules/app-manifest/index.js.map +1 -0
  14. package/src/lib/modules/app-manifest/models/index.d.ts +1 -0
  15. package/src/lib/modules/app-manifest/models/index.js +8 -0
  16. package/src/lib/modules/app-manifest/models/index.js.map +1 -0
  17. package/src/lib/modules/app-manifest/models/manifest.model.d.ts +24 -0
  18. package/src/lib/modules/app-manifest/models/manifest.model.js +3 -0
  19. package/src/lib/modules/app-manifest/models/manifest.model.js.map +1 -0
  20. package/src/lib/modules/data-element/models/data-element.model.d.ts +3 -2
  21. package/src/lib/modules/data-element/models/data-element.model.js +14 -60
  22. package/src/lib/modules/data-element/models/data-element.model.js.map +1 -1
  23. package/src/lib/modules/data-element/queries/data-element.query.d.ts +2 -2
  24. package/src/lib/modules/data-element/queries/data-element.query.js.map +1 -1
  25. package/src/lib/modules/engine/engine.module.d.ts +4 -0
  26. package/src/lib/modules/engine/engine.module.js +14 -0
  27. package/src/lib/modules/engine/engine.module.js.map +1 -0
  28. package/src/lib/modules/engine/index.d.ts +2 -0
  29. package/src/lib/modules/{organisation-unit → engine}/index.js +2 -3
  30. package/src/lib/modules/engine/index.js.map +1 -0
  31. package/src/lib/modules/engine/program-rule/index.d.ts +1 -0
  32. package/src/lib/{shared/decorators → modules/engine/program-rule}/index.js +1 -1
  33. package/src/lib/modules/engine/program-rule/index.js.map +1 -0
  34. package/src/lib/modules/engine/program-rule/program-rule.engine.d.ts +7 -0
  35. package/src/lib/modules/engine/program-rule/program-rule.engine.js +42 -0
  36. package/src/lib/modules/engine/program-rule/program-rule.engine.js.map +1 -0
  37. package/src/lib/modules/engine/program-rule/utils/d2-functions.util.d.ts +7 -0
  38. package/src/lib/modules/engine/program-rule/utils/d2-functions.util.js +361 -0
  39. package/src/lib/modules/engine/program-rule/utils/d2-functions.util.js.map +1 -0
  40. package/src/lib/modules/engine/program-rule/utils/d2.util.d.ts +17 -0
  41. package/src/lib/modules/engine/program-rule/utils/d2.util.js +35 -0
  42. package/src/lib/modules/engine/program-rule/utils/d2.util.js.map +1 -0
  43. package/src/lib/modules/engine/program-rule/utils/date.utils.d.ts +9 -0
  44. package/src/lib/modules/engine/program-rule/utils/date.utils.js +35 -0
  45. package/src/lib/modules/engine/program-rule/utils/date.utils.js.map +1 -0
  46. package/src/lib/modules/engine/program-rule/utils/index.d.ts +1 -0
  47. package/src/lib/modules/{organisation-unit/models → engine/program-rule/utils}/index.js +1 -3
  48. package/src/lib/modules/engine/program-rule/utils/index.js.map +1 -0
  49. package/src/lib/modules/engine/program-rule/utils/run-d2-expression.util.d.ts +4 -0
  50. package/src/lib/modules/engine/program-rule/utils/run-d2-expression.util.js +88 -0
  51. package/src/lib/modules/engine/program-rule/utils/run-d2-expression.util.js.map +1 -0
  52. package/src/lib/modules/engine/program-rule/utils/trim-quotes.util.d.ts +1 -0
  53. package/src/lib/modules/engine/program-rule/utils/trim-quotes.util.js +18 -0
  54. package/src/lib/modules/engine/program-rule/utils/trim-quotes.util.js.map +1 -0
  55. package/src/lib/modules/engine/program-rule/utils/value-converter.util.d.ts +3 -0
  56. package/src/lib/modules/engine/program-rule/utils/value-converter.util.js +10 -0
  57. package/src/lib/modules/engine/program-rule/utils/value-converter.util.js.map +1 -0
  58. package/src/lib/modules/engine/program-rule/utils/z-score-wfa.util.d.ts +1 -0
  59. package/src/lib/modules/engine/program-rule/utils/z-score-wfa.util.js +182 -0
  60. package/src/lib/modules/engine/program-rule/utils/z-score-wfa.util.js.map +1 -0
  61. package/src/lib/modules/index.d.ts +4 -1
  62. package/src/lib/modules/index.js +4 -1
  63. package/src/lib/modules/index.js.map +1 -1
  64. package/src/lib/modules/program/models/program-rule-action.model.d.ts +4 -2
  65. package/src/lib/modules/program/models/program-rule-action.model.js.map +1 -1
  66. package/src/lib/modules/program/models/program-rule-variable.model.d.ts +2 -2
  67. package/src/lib/modules/program/models/program-rule.model.d.ts +1 -1
  68. package/src/lib/modules/program/models/program-rule.model.js +6 -2
  69. package/src/lib/modules/program/models/program-rule.model.js.map +1 -1
  70. package/src/lib/modules/program/models/program-section.model.d.ts +1 -1
  71. package/src/lib/modules/program/models/program-section.model.js +1 -1
  72. package/src/lib/modules/program/models/program-section.model.js.map +1 -1
  73. package/src/lib/modules/program/models/program.model.d.ts +3 -0
  74. package/src/lib/modules/program/models/program.model.js +6 -0
  75. package/src/lib/modules/program/models/program.model.js.map +1 -1
  76. package/src/lib/modules/program/program.module.d.ts +2 -2
  77. package/src/lib/modules/program/program.module.js +2 -2
  78. package/src/lib/modules/program/program.module.js.map +1 -1
  79. package/src/lib/modules/tracker/decorators/attribute-field.decorator.d.ts +1 -0
  80. package/src/lib/modules/tracker/decorators/attribute-field.decorator.js +28 -0
  81. package/src/lib/modules/tracker/decorators/attribute-field.decorator.js.map +1 -0
  82. package/src/lib/modules/tracker/decorators/data-element-field.decorator.d.ts +4 -0
  83. package/src/lib/modules/tracker/decorators/data-element-field.decorator.js +53 -0
  84. package/src/lib/modules/tracker/decorators/data-element-field.decorator.js.map +1 -0
  85. package/src/lib/modules/tracker/decorators/enrollment-date-field.decorator.d.ts +1 -0
  86. package/src/lib/modules/tracker/decorators/enrollment-date-field.decorator.js +22 -0
  87. package/src/lib/modules/tracker/decorators/enrollment-date-field.decorator.js.map +1 -0
  88. package/src/lib/modules/tracker/decorators/event-date-field.decorator.d.ts +1 -0
  89. package/src/lib/modules/tracker/decorators/event-date-field.decorator.js +21 -0
  90. package/src/lib/modules/tracker/decorators/event-date-field.decorator.js.map +1 -0
  91. package/src/lib/modules/tracker/decorators/event-field.decorator.d.ts +2 -0
  92. package/src/lib/modules/tracker/decorators/event-field.decorator.js +54 -0
  93. package/src/lib/modules/tracker/decorators/event-field.decorator.js.map +1 -0
  94. package/src/lib/modules/tracker/decorators/event-id-field.decorator.d.ts +1 -0
  95. package/src/lib/modules/tracker/decorators/event-id-field.decorator.js +21 -0
  96. package/src/lib/modules/tracker/decorators/event-id-field.decorator.js.map +1 -0
  97. package/src/lib/modules/tracker/decorators/event.decorator.d.ts +3 -0
  98. package/src/lib/modules/tracker/decorators/event.decorator.js +13 -0
  99. package/src/lib/modules/tracker/decorators/event.decorator.js.map +1 -0
  100. package/src/lib/modules/tracker/decorators/index.d.ts +11 -0
  101. package/src/lib/modules/tracker/decorators/index.js +15 -0
  102. package/src/lib/modules/tracker/decorators/index.js.map +1 -0
  103. package/src/lib/modules/tracker/decorators/org-unit-field.decorator.d.ts +3 -0
  104. package/src/lib/modules/tracker/decorators/org-unit-field.decorator.js +28 -0
  105. package/src/lib/modules/tracker/decorators/org-unit-field.decorator.js.map +1 -0
  106. package/src/lib/modules/tracker/decorators/relationship-field.decorator.d.ts +2 -0
  107. package/src/lib/modules/tracker/decorators/relationship-field.decorator.js +55 -0
  108. package/src/lib/modules/tracker/decorators/relationship-field.decorator.js.map +1 -0
  109. package/src/lib/modules/tracker/decorators/tracked-entity-id-field.decorator.d.ts +1 -0
  110. package/src/lib/modules/tracker/decorators/tracked-entity-id-field.decorator.js +22 -0
  111. package/src/lib/modules/tracker/decorators/tracked-entity-id-field.decorator.js.map +1 -0
  112. package/src/lib/modules/tracker/decorators/tracked-entity.decorator.d.ts +4 -0
  113. package/src/lib/modules/tracker/decorators/tracked-entity.decorator.js +14 -0
  114. package/src/lib/modules/tracker/decorators/tracked-entity.decorator.js.map +1 -0
  115. package/src/lib/modules/tracker/index.d.ts +6 -0
  116. package/src/lib/modules/tracker/index.js +10 -0
  117. package/src/lib/modules/tracker/index.js.map +1 -0
  118. package/src/lib/modules/tracker/interfaces/index.d.ts +2 -0
  119. package/src/lib/modules/tracker/interfaces/index.js +9 -0
  120. package/src/lib/modules/tracker/interfaces/index.js.map +1 -0
  121. package/src/lib/modules/tracker/interfaces/tracker-filter-condition.interface.d.ts +10 -0
  122. package/src/lib/modules/tracker/interfaces/tracker-filter-condition.interface.js +18 -0
  123. package/src/lib/modules/tracker/interfaces/tracker-filter-condition.interface.js.map +1 -0
  124. package/src/lib/modules/tracker/interfaces/tracker-query-filter.interface.d.ts +6 -0
  125. package/src/lib/modules/tracker/interfaces/tracker-query-filter.interface.js +6 -0
  126. package/src/lib/modules/tracker/interfaces/tracker-query-filter.interface.js.map +1 -0
  127. package/src/lib/modules/tracker/models/attribute.model.d.ts +16 -0
  128. package/src/lib/modules/tracker/models/attribute.model.js +3 -0
  129. package/src/lib/modules/tracker/models/attribute.model.js.map +1 -0
  130. package/src/lib/modules/tracker/models/base.model.d.ts +3 -0
  131. package/src/lib/modules/tracker/models/base.model.js +14 -0
  132. package/src/lib/modules/tracker/models/base.model.js.map +1 -0
  133. package/src/lib/modules/tracker/models/d2-event-response.model.d.ts +10 -0
  134. package/src/lib/modules/tracker/models/d2-event-response.model.js +38 -0
  135. package/src/lib/modules/tracker/models/d2-event-response.model.js.map +1 -0
  136. package/src/lib/modules/tracker/models/d2-tracker-response.model.d.ts +10 -0
  137. package/src/lib/modules/tracker/models/d2-tracker-response.model.js +38 -0
  138. package/src/lib/modules/tracker/models/d2-tracker-response.model.js.map +1 -0
  139. package/src/lib/modules/tracker/models/data-value.model.d.ts +47 -0
  140. package/src/lib/modules/tracker/models/data-value.model.js +35 -0
  141. package/src/lib/modules/tracker/models/data-value.model.js.map +1 -0
  142. package/src/lib/modules/tracker/models/enrollment.model.d.ts +73 -0
  143. package/src/lib/modules/tracker/models/enrollment.model.js +113 -0
  144. package/src/lib/modules/tracker/models/enrollment.model.js.map +1 -0
  145. package/src/lib/modules/tracker/models/event.model.d.ts +95 -0
  146. package/src/lib/modules/tracker/models/event.model.js +99 -0
  147. package/src/lib/modules/tracker/models/event.model.js.map +1 -0
  148. package/src/lib/modules/tracker/models/index.d.ts +14 -0
  149. package/src/lib/modules/tracker/models/index.js +18 -0
  150. package/src/lib/modules/tracker/models/index.js.map +1 -0
  151. package/src/lib/modules/tracker/models/tracked-entity-instance.model.d.ts +125 -0
  152. package/src/lib/modules/tracker/models/tracked-entity-instance.model.js +215 -0
  153. package/src/lib/modules/tracker/models/tracked-entity-instance.model.js.map +1 -0
  154. package/src/lib/modules/tracker/models/tracker-import-stats.model.d.ts +11 -0
  155. package/src/lib/modules/tracker/models/tracker-import-stats.model.js +28 -0
  156. package/src/lib/modules/tracker/models/tracker-import-stats.model.js.map +1 -0
  157. package/src/lib/modules/tracker/models/tracker-import-summary.model.d.ts +10 -0
  158. package/src/lib/modules/tracker/models/tracker-import-summary.model.js +21 -0
  159. package/src/lib/modules/tracker/models/tracker-import-summary.model.js.map +1 -0
  160. package/src/lib/modules/tracker/models/tracker-import-validation-report.model.d.ts +12 -0
  161. package/src/lib/modules/tracker/models/tracker-import-validation-report.model.js +39 -0
  162. package/src/lib/modules/tracker/models/tracker-import-validation-report.model.js.map +1 -0
  163. package/src/lib/modules/tracker/models/tracker-query-filter.model.d.ts +13 -0
  164. package/src/lib/modules/tracker/models/tracker-query-filter.model.js +39 -0
  165. package/src/lib/modules/tracker/models/tracker-query-filter.model.js.map +1 -0
  166. package/src/lib/modules/tracker/models/tracker-relationship.model.d.ts +28 -0
  167. package/src/lib/modules/tracker/models/tracker-relationship.model.js +58 -0
  168. package/src/lib/modules/tracker/models/tracker-relationship.model.js.map +1 -0
  169. package/src/lib/modules/tracker/models/tracker-url-generator.model.d.ts +20 -0
  170. package/src/lib/modules/tracker/models/tracker-url-generator.model.js +98 -0
  171. package/src/lib/modules/tracker/models/tracker-url-generator.model.js.map +1 -0
  172. package/src/lib/modules/tracker/queries/base-event.query.d.ts +22 -0
  173. package/src/lib/modules/tracker/queries/base-event.query.js +104 -0
  174. package/src/lib/modules/tracker/queries/base-event.query.js.map +1 -0
  175. package/src/lib/modules/tracker/queries/base-tracker.query.d.ts +32 -0
  176. package/src/lib/modules/tracker/queries/base-tracker.query.js +231 -0
  177. package/src/lib/modules/tracker/queries/base-tracker.query.js.map +1 -0
  178. package/src/lib/modules/tracker/queries/index.d.ts +2 -0
  179. package/src/lib/modules/tracker/queries/index.js +6 -0
  180. package/src/lib/modules/tracker/queries/index.js.map +1 -0
  181. package/src/lib/modules/tracker/tracker.module.d.ts +8 -0
  182. package/src/lib/modules/tracker/tracker.module.js +14 -0
  183. package/src/lib/modules/tracker/tracker.module.js.map +1 -0
  184. package/src/lib/modules/tracker/utils/attribute.util.d.ts +9 -0
  185. package/src/lib/modules/tracker/utils/attribute.util.js +49 -0
  186. package/src/lib/modules/tracker/utils/attribute.util.js.map +1 -0
  187. package/src/lib/modules/tracker/utils/enrollment.util.d.ts +17 -0
  188. package/src/lib/modules/tracker/utils/enrollment.util.js +57 -0
  189. package/src/lib/modules/tracker/utils/enrollment.util.js.map +1 -0
  190. package/src/lib/modules/tracker/utils/event.util.d.ts +16 -0
  191. package/src/lib/modules/tracker/utils/event.util.js +45 -0
  192. package/src/lib/modules/tracker/utils/event.util.js.map +1 -0
  193. package/src/lib/modules/tracker/utils/index.d.ts +5 -0
  194. package/src/lib/modules/tracker/utils/index.js +9 -0
  195. package/src/lib/modules/tracker/utils/index.js.map +1 -0
  196. package/src/lib/modules/tracker/utils/program-rule.util.d.ts +4 -0
  197. package/src/lib/modules/tracker/utils/program-rule.util.js +21 -0
  198. package/src/lib/modules/tracker/utils/program-rule.util.js.map +1 -0
  199. package/src/lib/modules/tracker/utils/tracked-entity-instance.util.d.ts +14 -0
  200. package/src/lib/modules/tracker/utils/tracked-entity-instance.util.js +58 -0
  201. package/src/lib/modules/tracker/utils/tracked-entity-instance.util.js.map +1 -0
  202. package/src/lib/modules/tracker/utils/tracker-relationship.util.d.ts +4 -0
  203. package/src/lib/modules/tracker/utils/tracker-relationship.util.js +11 -0
  204. package/src/lib/modules/tracker/utils/tracker-relationship.util.js.map +1 -0
  205. package/src/lib/modules/{organisation-unit → user}/index.d.ts +1 -1
  206. package/src/lib/modules/user/index.js +7 -0
  207. package/src/lib/modules/user/index.js.map +1 -0
  208. package/src/lib/modules/user/models/current-user.model.d.ts +4 -0
  209. package/src/lib/modules/user/models/current-user.model.js +8 -0
  210. package/src/lib/modules/user/models/current-user.model.js.map +1 -0
  211. package/src/lib/modules/user/models/index.d.ts +2 -0
  212. package/src/lib/modules/user/models/index.js +9 -0
  213. package/src/lib/modules/user/models/index.js.map +1 -0
  214. package/src/lib/modules/user/models/user.model.d.ts +13 -0
  215. package/src/lib/modules/user/models/user.model.js +18 -0
  216. package/src/lib/modules/user/models/user.model.js.map +1 -0
  217. package/src/lib/modules/user/queries/index.d.ts +1 -0
  218. package/src/lib/modules/user/queries/index.js +8 -0
  219. package/src/lib/modules/user/queries/index.js.map +1 -0
  220. package/src/lib/modules/user/queries/user.query.d.ts +5 -0
  221. package/src/lib/modules/{organisation-unit/queries/organisation-unit.query.js → user/queries/user.query.js} +5 -5
  222. package/src/lib/modules/user/queries/user.query.js.map +1 -0
  223. package/src/lib/modules/user/user.module.d.ts +9 -0
  224. package/src/lib/modules/user/user.module.js +38 -0
  225. package/src/lib/modules/user/user.module.js.map +1 -0
  226. package/src/lib/shared/index.d.ts +1 -1
  227. package/src/lib/shared/index.js +1 -1
  228. package/src/lib/shared/index.js.map +1 -1
  229. package/src/lib/shared/models/base.model.d.ts +0 -1
  230. package/src/lib/shared/models/base.model.js +0 -4
  231. package/src/lib/shared/models/base.model.js.map +1 -1
  232. package/src/lib/shared/models/d2-http-request-config.model.d.ts +13 -0
  233. package/src/lib/shared/models/d2-http-request-config.model.js +3 -0
  234. package/src/lib/shared/models/d2-http-request-config.model.js.map +1 -0
  235. package/src/lib/shared/models/d2-response.model.js +5 -3
  236. package/src/lib/shared/models/d2-response.model.js.map +1 -1
  237. package/src/lib/shared/models/d2-web-config.model.d.ts +1 -1
  238. package/src/lib/shared/models/http-client.model.d.ts +3 -1
  239. package/src/lib/shared/models/http-client.model.js +22 -4
  240. package/src/lib/shared/models/http-client.model.js.map +1 -1
  241. package/src/lib/shared/models/http-response.model.d.ts +1 -0
  242. package/src/lib/shared/models/http-response.model.js +3 -0
  243. package/src/lib/shared/models/http-response.model.js.map +1 -1
  244. package/src/lib/shared/models/index.d.ts +3 -0
  245. package/src/lib/shared/models/index.js +3 -0
  246. package/src/lib/shared/models/index.js.map +1 -1
  247. package/src/lib/shared/queries/base-query.d.ts +15 -5
  248. package/src/lib/shared/queries/base-query.js +32 -26
  249. package/src/lib/shared/queries/base-query.js.map +1 -1
  250. package/src/lib/shared/utils/dhis-url-generator.util.js +1 -1
  251. package/src/lib/shared/utils/dhis-url-generator.util.js.map +1 -1
  252. package/src/lib/shared/utils/generate-uid.util.d.ts +2 -0
  253. package/src/lib/shared/utils/generate-uid.util.js +31 -0
  254. package/src/lib/shared/utils/generate-uid.util.js.map +1 -0
  255. package/src/lib/shared/utils/index.d.ts +1 -0
  256. package/src/lib/shared/utils/index.js +1 -0
  257. package/src/lib/shared/utils/index.js.map +1 -1
  258. package/src/lib/modules/organisation-unit/index.js.map +0 -1
  259. package/src/lib/modules/organisation-unit/models/index.d.ts +0 -3
  260. package/src/lib/modules/organisation-unit/models/index.js.map +0 -1
  261. package/src/lib/modules/organisation-unit/models/organisation-unit-group-set.model.d.ts +0 -44
  262. package/src/lib/modules/organisation-unit/models/organisation-unit-group-set.model.js +0 -55
  263. package/src/lib/modules/organisation-unit/models/organisation-unit-group-set.model.js.map +0 -1
  264. package/src/lib/modules/organisation-unit/models/organisation-unit-group.model.d.ts +0 -39
  265. package/src/lib/modules/organisation-unit/models/organisation-unit-group.model.js +0 -50
  266. package/src/lib/modules/organisation-unit/models/organisation-unit-group.model.js.map +0 -1
  267. package/src/lib/modules/organisation-unit/models/organisation-unit.model.d.ts +0 -56
  268. package/src/lib/modules/organisation-unit/models/organisation-unit.model.js +0 -68
  269. package/src/lib/modules/organisation-unit/models/organisation-unit.model.js.map +0 -1
  270. package/src/lib/modules/organisation-unit/organisation-unit.module.d.ts +0 -9
  271. package/src/lib/modules/organisation-unit/organisation-unit.module.js +0 -20
  272. package/src/lib/modules/organisation-unit/organisation-unit.module.js.map +0 -1
  273. package/src/lib/modules/organisation-unit/queries/index.d.ts +0 -3
  274. package/src/lib/modules/organisation-unit/queries/index.js +0 -10
  275. package/src/lib/modules/organisation-unit/queries/index.js.map +0 -1
  276. package/src/lib/modules/organisation-unit/queries/organisation-unit-group-set.query.d.ts +0 -5
  277. package/src/lib/modules/organisation-unit/queries/organisation-unit-group-set.query.js +0 -15
  278. package/src/lib/modules/organisation-unit/queries/organisation-unit-group-set.query.js.map +0 -1
  279. package/src/lib/modules/organisation-unit/queries/organisation-unit-group.query.d.ts +0 -5
  280. package/src/lib/modules/organisation-unit/queries/organisation-unit-group.query.js +0 -15
  281. package/src/lib/modules/organisation-unit/queries/organisation-unit-group.query.js.map +0 -1
  282. package/src/lib/modules/organisation-unit/queries/organisation-unit.query.d.ts +0 -5
  283. package/src/lib/modules/organisation-unit/queries/organisation-unit.query.js.map +0 -1
  284. package/src/lib/shared/decorators/d2-property.decorator.d.ts +0 -2
  285. package/src/lib/shared/decorators/d2-property.decorator.js +0 -14
  286. package/src/lib/shared/decorators/d2-property.decorator.js.map +0 -1
  287. package/src/lib/shared/decorators/index.d.ts +0 -1
  288. package/src/lib/shared/decorators/index.js.map +0 -1
@@ -0,0 +1,361 @@
1
+ "use strict";
2
+ // @flow
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.d2FunctionsEval = exports.d2FuctionsVariables = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const date_utils_1 = tslib_1.__importDefault(require("./date.utils"));
7
+ const z_score_wfa_util_1 = tslib_1.__importDefault(require("./z-score-wfa.util"));
8
+ const trim_quotes_util_1 = tslib_1.__importDefault(require("./trim-quotes.util"));
9
+ const value_converter_util_1 = require("./value-converter.util");
10
+ exports.d2FuctionsVariables = [
11
+ { name: 'd2:daysBetween', parameters: 2 },
12
+ { name: 'd2:weeksBetween', parameters: 2 },
13
+ { name: 'd2:monthsBetween', parameters: 2 },
14
+ { name: 'd2:yearsBetween', parameters: 2 },
15
+ { name: 'd2:floor', parameters: 1 },
16
+ { name: 'd2:modulus', parameters: 2 },
17
+ { name: 'd2:concatenate' },
18
+ { name: 'd2:addDays', parameters: 2 },
19
+ { name: 'd2:zing', parameters: 1 },
20
+ { name: 'd2:oizp', parameters: 1 },
21
+ { name: 'd2:count', parameters: 1 },
22
+ { name: 'd2:countIfZeroPos', parameters: 1 },
23
+ { name: 'd2:countIfValue', parameters: 2 },
24
+ { name: 'd2:ceil', parameters: 1 },
25
+ { name: 'd2:round', parameters: 1 },
26
+ { name: 'd2:hasValue', parameters: 1 },
27
+ { name: 'd2:lastEventDate', parameters: 1 },
28
+ { name: 'd2:validatePattern', parameters: 2 },
29
+ { name: 'd2:addControlDigits', parameters: 1 },
30
+ { name: 'd2:checkControlDigits', parameters: 1 },
31
+ { name: 'd2:left', parameters: 2 },
32
+ { name: 'd2:right', parameters: 2 },
33
+ { name: 'd2:substring', parameters: 3 },
34
+ { name: 'd2:split', parameters: 3 },
35
+ { name: 'd2:zScoreWFA', parameters: 3 },
36
+ { name: 'd2:length', parameters: 1 },
37
+ ];
38
+ exports.d2FunctionsEval = {
39
+ 'd2:hasValue': (expression, parameters, variableHash, regexFunct) => {
40
+ const [value] = parameters || [];
41
+ const valueFound = !!value ||
42
+ Number(value) === 0 ||
43
+ value_converter_util_1.ValueConverter.toBoolean(value) === false;
44
+ //Replace the end evaluation of the dhis function:
45
+ const newExpression = expression.replace(regexFunct, valueFound);
46
+ const expressionUpdated = true;
47
+ return { expression: newExpression, expressionUpdated };
48
+ },
49
+ 'd2:daysBetween': (expression, parameters, variableHash, regexFunct) => {
50
+ const [date1, date2] = parameters;
51
+ const daysBetween = date_utils_1.default.daysBetween(date1, date2);
52
+ //Replace the end evaluation of the dhis function:
53
+ const newExpression = expression.replace(regexFunct, daysBetween);
54
+ const expressionUpdated = true;
55
+ return { expression: newExpression, expressionUpdated };
56
+ },
57
+ 'd2:weeksBetween': (expression, parameters, variableHash, regexFunct) => {
58
+ const [date1, date2] = parameters;
59
+ const weeksBetween = date_utils_1.default.weeksBetween(date1, date2);
60
+ //Replace the end evaluation of the dhis function:
61
+ const newExpression = expression.replace(regexFunct, weeksBetween);
62
+ const expressionUpdated = true;
63
+ return { expression: newExpression, expressionUpdated };
64
+ },
65
+ 'd2:monthsBetween': (expression, parameters, variableHash, regexFunct) => {
66
+ const [date1, date2] = parameters;
67
+ const monthsBetween = date_utils_1.default.monthsBetween(date1, date2);
68
+ //Replace the end evaluation of the dhis function:
69
+ const newExpression = expression.replace(regexFunct, monthsBetween);
70
+ const expressionUpdated = true;
71
+ return { expression: newExpression, expressionUpdated };
72
+ },
73
+ 'd2:yearsBetween': (expression, parameters, variableHash, regexFunct) => {
74
+ const [date1, date2] = parameters;
75
+ const yearsBetween = date_utils_1.default.yearsBetween(date1, date2);
76
+ //Replace the end evaluation of the dhis function:
77
+ const newExpression = expression.replace(regexFunct, yearsBetween);
78
+ const expressionUpdated = true;
79
+ return { expression: newExpression, expressionUpdated };
80
+ },
81
+ 'd2:floor': (expression, parameters, variableHash, regexFunct) => {
82
+ const [date1, ...rest] = parameters;
83
+ const floored = Math.floor(date1);
84
+ //Replace the end evaluation of the dhis function:
85
+ const newExpression = expression.replace(regexFunct, floored);
86
+ const expressionUpdated = true;
87
+ return { expression: newExpression, expressionUpdated };
88
+ },
89
+ 'd2:modulus': (expression, parameters, variableHash, regexFunct) => {
90
+ const [dividend, divisor] = parameters;
91
+ const rest = Number(dividend) % Number(divisor);
92
+ //Replace the end evaluation of the dhis function:
93
+ const newExpression = expression.replace(regexFunct, rest);
94
+ const expressionUpdated = true;
95
+ return { expression: newExpression, expressionUpdated };
96
+ },
97
+ 'd2:concatenate': (expression, parameters, variableHash, regexFunct) => {
98
+ let returnString = "'";
99
+ for (let i = 0; i < parameters.length; i++) {
100
+ returnString += parameters[i];
101
+ }
102
+ returnString += "'";
103
+ //Replace the end evaluation of the dhis function:
104
+ const newExpression = expression.replace(regexFunct, returnString);
105
+ const expressionUpdated = true;
106
+ return { expression: newExpression, expressionUpdated };
107
+ },
108
+ 'd2:addDays': (expression, parameters, variableHash, regexFunct) => {
109
+ const [date, daysToAdd] = parameters;
110
+ const newDate = date_utils_1.default.addDays(date, daysToAdd);
111
+ //Replace the end evaluation of the dhis function:
112
+ const newExpression = expression.replace(regexFunct, newDate);
113
+ const expressionUpdated = true;
114
+ return { expression: newExpression, expressionUpdated };
115
+ },
116
+ 'd2:zing': (expression, parameters, variableHash, regexFunct) => {
117
+ const numBer = parameters[0] < 0 ? 0 : parameters[0];
118
+ //Replace the end evaluation of the dhis function:
119
+ const newExpression = expression.replace(regexFunct, numBer);
120
+ const expressionUpdated = true;
121
+ return { expression: newExpression, expressionUpdated };
122
+ },
123
+ 'd2:oizp': (expression, parameters, variableHash, regexFunct) => {
124
+ const numBer = parameters[0] < 0 ? 0 : 1;
125
+ //Replace the end evaluation of the dhis function:
126
+ const newExpression = expression.replace(regexFunct, numBer);
127
+ const expressionUpdated = true;
128
+ return { expression: newExpression, expressionUpdated };
129
+ },
130
+ 'd2:count': (expression, parameters, variableHash, regexFunct) => {
131
+ const [variableName, ..._] = parameters;
132
+ const variableObject = variableHash[variableName];
133
+ const count = variableObject && variableObject.hasValue && variableObject.allValues
134
+ ? variableObject.allValues.length
135
+ : 0;
136
+ if (!variableObject) {
137
+ // log.warn('could not find variable to count: ' + variableName);
138
+ }
139
+ //Replace the end evaluation of the dhis function:
140
+ const newExpression = expression.replace(regexFunct, count);
141
+ const expressionUpdated = true;
142
+ return { expression: newExpression, expressionUpdated };
143
+ },
144
+ 'd2:countIfZeroPos': (expression, parameters, variableHash, regexFunct) => {
145
+ const variableName = (0, trim_quotes_util_1.default)(parameters[0]);
146
+ const variableObject = variableHash[variableName];
147
+ let count = 0;
148
+ if (variableObject) {
149
+ if (variableObject.hasValue) {
150
+ if (variableObject.allValues && variableObject.allValues.length > 0) {
151
+ for (let i = 0; i < variableObject.allValues.length; i++) {
152
+ if (variableObject.allValues[i] >= 0) {
153
+ count++;
154
+ }
155
+ }
156
+ }
157
+ else {
158
+ //The variable has a value, but no list of alternates. This means we only compare the elements real value
159
+ if (variableObject.variableValue >= 0) {
160
+ count = 1;
161
+ }
162
+ }
163
+ }
164
+ }
165
+ else {
166
+ // log.warn('could not find variable to countifzeropos: ' + variableName);
167
+ }
168
+ //Replace the end evaluation of the dhis function:
169
+ const newExpression = expression.replace(regexFunct, count);
170
+ const expressionUpdated = true;
171
+ return { expression: newExpression, expressionUpdated };
172
+ },
173
+ 'd2:countIfValue': (expression, parameters, variableHash, regexFunct) => {
174
+ const variableName = (0, trim_quotes_util_1.default)(parameters[0]);
175
+ const variableObject = variableHash[variableName];
176
+ const valueToCompare = parameters[1];
177
+ let count = 0;
178
+ if (variableObject) {
179
+ if (variableObject.hasValue) {
180
+ if (variableObject.allValues && variableObject.allValues.length > 0) {
181
+ for (let i = 0; i < variableObject.allValues.length; i++) {
182
+ if (valueToCompare === variableObject.allValues[i]) {
183
+ count++;
184
+ }
185
+ }
186
+ }
187
+ else {
188
+ //The variable has a value, but no list of alternates. This means we only compare the elements real value
189
+ if (variableObject.variableValue >= 0) {
190
+ count = 1;
191
+ }
192
+ }
193
+ }
194
+ }
195
+ else {
196
+ // log.warn('could not find variable to countifzeropos: ' + variableName);
197
+ }
198
+ //Replace the end evaluation of the dhis function:
199
+ const newExpression = expression.replace(regexFunct, count);
200
+ const expressionUpdated = true;
201
+ return { expression: newExpression, expressionUpdated };
202
+ },
203
+ 'd2:ceil': (expression, parameters, variableHash, regexFunct) => {
204
+ //Replace the end evaluation of the dhis function:
205
+ const newExpression = expression.replace(regexFunct, Math.ceil(parameters[0]));
206
+ const expressionUpdated = true;
207
+ return { expression: newExpression, expressionUpdated };
208
+ },
209
+ 'd2:round': (expression, parameters, variableHash, regexFunct) => {
210
+ //Replace the end evaluation of the dhis function:
211
+ const newExpression = expression.replace(regexFunct, Math.round(parameters[0]));
212
+ const expressionUpdated = true;
213
+ return { expression: newExpression, expressionUpdated };
214
+ },
215
+ 'd2:lastEventDate': (expression, parameters, variableHash, regexFunct) => {
216
+ const variableName = parameters[0];
217
+ const variableObject = variableHash[variableName];
218
+ let valueFound = "''";
219
+ if (variableObject) {
220
+ if (variableObject.variableEventDate) {
221
+ // TODO: Find best way to process date variables
222
+ valueFound = variableObject.variableEventDate;
223
+ }
224
+ else {
225
+ // log.warn('no last event date found for variable: ' + variableName);
226
+ }
227
+ }
228
+ else {
229
+ // log.warn(
230
+ // 'could not find variable to check last event date: ' + variableName
231
+ // );
232
+ }
233
+ //Replace the end evaluation of the dhis function:
234
+ const newExpression = expression.replace(regexFunct, valueFound);
235
+ const expressionUpdated = true;
236
+ return { expression: newExpression, expressionUpdated };
237
+ },
238
+ 'd2:validatePattern': (expression, parameters, variableHash, regexFunct) => {
239
+ const inputToValidate = parameters[0].toString();
240
+ const pattern = parameters[1];
241
+ const regEx = new RegExp(pattern, 'g');
242
+ const match = inputToValidate.match(regEx);
243
+ const matchFound = match !== null && inputToValidate === match[0] ? true : false;
244
+ //Replace the end evaluation of the dhis function:
245
+ const newExpression = expression.replace(regexFunct, matchFound);
246
+ const expressionUpdated = true;
247
+ return { expression: newExpression, expressionUpdated };
248
+ },
249
+ 'd2:addControlDigits': (expression, parameters, variableHash, regexFunct) => {
250
+ const baseNumber = parameters[0];
251
+ let newExpression;
252
+ const baseDigits = baseNumber.split('');
253
+ const error = false;
254
+ let firstDigit = 0;
255
+ let secondDigit = 0;
256
+ const baseNumberLength = baseDigits && baseDigits.length;
257
+ if (baseDigits && baseDigits.length < 10) {
258
+ let firstSum = 0;
259
+ const baseNumberLength = baseDigits.length;
260
+ //weights support up to 9 base digits:
261
+ const firstWeights = [3, 7, 6, 1, 8, 9, 4, 5, 2];
262
+ for (let i = 0; i < baseNumberLength && !error; i++) {
263
+ firstSum += parseInt(baseDigits[i]) * firstWeights[i];
264
+ }
265
+ firstDigit = firstSum % 11;
266
+ //Push the first digit to the array before continuing, as the second digit is a result of the
267
+ //base digits and the first control digit.
268
+ baseDigits.push(firstDigit);
269
+ //Weights support up to 9 base digits plus first control digit:
270
+ const secondWeights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
271
+ let secondSum = 0;
272
+ for (let i = 0; i < baseNumberLength + 1 && !error; i++) {
273
+ secondSum += parseInt(baseDigits[i]) * secondWeights[i];
274
+ }
275
+ secondDigit = secondSum % 11;
276
+ if (firstDigit === 10) {
277
+ // log.warn('First control digit became 10, replacing with 0');
278
+ firstDigit = 0;
279
+ }
280
+ if (secondDigit === 10) {
281
+ // log.warn('Second control digit became 10, replacing with 0');
282
+ secondDigit = 0;
283
+ }
284
+ }
285
+ else {
286
+ // log.warn(
287
+ // 'Base nuber not well formed(' +
288
+ // baseNumberLength +
289
+ // ' digits): ' +
290
+ // baseNumber
291
+ // );
292
+ }
293
+ if (!error) {
294
+ //Replace the end evaluation of the dhis function:
295
+ newExpression = expression.replace(regexFunct, baseNumber + firstDigit + secondDigit);
296
+ }
297
+ else {
298
+ //Replace the end evaluation of the dhis function:
299
+ newExpression = expression.replace(regexFunct, baseNumber);
300
+ }
301
+ const expressionUpdated = true;
302
+ return { expression: newExpression, expressionUpdated };
303
+ },
304
+ 'd2:checkControlDigits': (expression, parameters, variableHash, regexFunct) => {
305
+ // log.warn('checkControlDigits not implemented yet');
306
+ //Replace the end evaluation of the dhis function:
307
+ const newExpression = expression.replace(regexFunct, parameters[0]);
308
+ const expressionUpdated = true;
309
+ return { expression: newExpression, expressionUpdated };
310
+ },
311
+ 'd2:left': (expression, parameters, variableHash, regexFunct) => {
312
+ const string = String(parameters[0]);
313
+ const numChars = string.length < parameters[1] ? string.length : parameters[1];
314
+ const returnString = string.substring(0, numChars);
315
+ const newExpression = expression.replace(regexFunct, returnString);
316
+ const expressionUpdated = true;
317
+ return { expression: newExpression, expressionUpdated };
318
+ },
319
+ 'd2:right': (expression, parameters, variableHash, regexFunct) => {
320
+ const string = String(parameters[0]);
321
+ const numChars = string.length < parameters[1] ? string.length : parameters[1];
322
+ const returnString = string.substring(string.length - numChars, string.length);
323
+ const newExpression = expression.replace(regexFunct, returnString);
324
+ const expressionUpdated = true;
325
+ return { expression: newExpression, expressionUpdated };
326
+ },
327
+ 'd2:substring': (expression, parameters, variableHash, regexFunct) => {
328
+ const string = String(parameters[0]);
329
+ const startChar = string.length < parameters[1] - 1 ? -1 : parameters[1];
330
+ const endChar = string.length < parameters[2] ? -1 : parameters[2];
331
+ let newExpression;
332
+ const expressionUpdated = true;
333
+ if (startChar < 0 || endChar < 0) {
334
+ expression = expression.replace(regexFunct, "''");
335
+ }
336
+ else {
337
+ const returnString = string.substring(startChar, endChar);
338
+ expression = expression.replace(regexFunct, returnString);
339
+ }
340
+ return { expression: newExpression, expressionUpdated };
341
+ },
342
+ 'd2:split': (expression, parameters, variableHash, regexFunct) => {
343
+ //Replace the end evaluation of the dhis function:
344
+ const newExpression = expression.replace(regexFunct, String(parameters[0]).length);
345
+ const expressionUpdated = true;
346
+ return { expression: newExpression, expressionUpdated };
347
+ },
348
+ 'd2:zScoreWFA': (expression, parameters, variableHash, regexFunct) => {
349
+ //Replace the end evaluation of the dhis function:
350
+ const newExpression = expression.replace(regexFunct, (0, z_score_wfa_util_1.default)(parseFloat(parameters[0]), parseFloat(parameters[1]), parameters[2]));
351
+ const expressionUpdated = true;
352
+ return { expression: newExpression, expressionUpdated };
353
+ },
354
+ 'd2:length': (expression, parameters, variableHash, regexFunct) => {
355
+ //Replace the end evaluation of the dhis function:
356
+ const newExpression = expression.replace(regexFunct, String(parameters[0]).length);
357
+ const expressionUpdated = true;
358
+ return { expression: newExpression, expressionUpdated };
359
+ },
360
+ };
361
+ //# sourceMappingURL=d2-functions.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"d2-functions.util.js","sourceRoot":"","sources":["../../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/engine/program-rule/utils/d2-functions.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare const numberIsFinite: (number: unknown) => boolean;
2
+ export declare function isNumber(param: any): boolean;
3
+ /**
4
+ * Check if the value is a String
5
+ *
6
+ * @name isString
7
+ * @param param Value to be checked
8
+ * @returns {boolean} Returns true when the `param` is a String
9
+ */
10
+ export declare const isString: (value?: any) => value is string;
11
+ /**
12
+ * Check if `param` is defined.
13
+ *
14
+ * @param {*} param The value to check
15
+ * @returns {boolean} Returns `false` when `param` is `undefined` otherwise true.
16
+ */
17
+ export declare function isDefined(param: any): boolean;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isString = exports.numberIsFinite = void 0;
4
+ exports.isNumber = isNumber;
5
+ exports.isDefined = isDefined;
6
+ const tslib_1 = require("tslib");
7
+ // Copyright 2023 UDSM DHIS2 Lab. All rights reserved.
8
+ // Use of this source code is governed by a BSD-style
9
+ // license that can be found in the LICENSE file.
10
+ const _ = tslib_1.__importStar(require("lodash"));
11
+ exports.numberIsFinite = Number.isFinite ||
12
+ function (param) {
13
+ return typeof param === 'number';
14
+ };
15
+ function isNumber(param) {
16
+ return typeof param === 'number' && (0, exports.numberIsFinite)(param);
17
+ }
18
+ /**
19
+ * Check if the value is a String
20
+ *
21
+ * @name isString
22
+ * @param param Value to be checked
23
+ * @returns {boolean} Returns true when the `param` is a String
24
+ */
25
+ exports.isString = _.isString;
26
+ /**
27
+ * Check if `param` is defined.
28
+ *
29
+ * @param {*} param The value to check
30
+ * @returns {boolean} Returns `false` when `param` is `undefined` otherwise true.
31
+ */
32
+ function isDefined(param) {
33
+ return typeof param !== 'undefined';
34
+ }
35
+ //# sourceMappingURL=d2.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"d2.util.js","sourceRoot":"","sources":["../../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/engine/program-rule/utils/d2.util.ts"],"names":[],"mappings":";;;AAWA,4BAEC;AAiBD,8BAEC;;AAhCD,sDAAsD;AACtD,qDAAqD;AACrD,iDAAiD;AACjD,kDAA4B;AAEf,QAAA,cAAc,GACzB,MAAM,CAAC,QAAQ;IACf,UAAU,KAAK;QACb,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACnC,CAAC,CAAC;AAEJ,SAAgB,QAAQ,CAAC,KAAU;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACU,QAAA,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;AAEnC;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,KAAU;IAClC,OAAO,OAAO,KAAK,KAAK,WAAW,CAAC;AACtC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const dateUtils: {
2
+ getToday: () => string;
3
+ daysBetween: (firstRulesDate: string, secondRulesDate: string) => number;
4
+ weeksBetween: (firstRulesDate: string, secondRulesDate: string) => number;
5
+ monthsBetween: (firstRulesDate: string, secondRulesDate: string) => number;
6
+ yearsBetween: (firstRulesDate: string, secondRulesDate: string) => number;
7
+ addDays: (rulesDate: string, daysToAdd: string) => string;
8
+ };
9
+ export default dateUtils;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ // @flow
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.dateUtils = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const moment_1 = tslib_1.__importDefault(require("moment"));
7
+ const trim_quotes_util_1 = tslib_1.__importDefault(require("./trim-quotes.util"));
8
+ const momentFormat = 'YYYY-MM-DD';
9
+ const between = (unit, firstRulesDate, secondRulesDate) => {
10
+ const firsRulesDateTrimmed = (0, trim_quotes_util_1.default)(firstRulesDate);
11
+ const secondRulesDateTrimmed = (0, trim_quotes_util_1.default)(secondRulesDate);
12
+ const firstDate = (0, moment_1.default)(firsRulesDateTrimmed, momentFormat);
13
+ const secondDate = (0, moment_1.default)(secondRulesDateTrimmed, momentFormat);
14
+ return secondDate.diff(firstDate, unit);
15
+ };
16
+ exports.dateUtils = {
17
+ getToday: () => {
18
+ const todayMoment = (0, moment_1.default)();
19
+ return todayMoment.format(momentFormat);
20
+ },
21
+ daysBetween: (firstRulesDate, secondRulesDate) => between('days', firstRulesDate, secondRulesDate),
22
+ weeksBetween: (firstRulesDate, secondRulesDate) => between('weeks', firstRulesDate, secondRulesDate),
23
+ monthsBetween: (firstRulesDate, secondRulesDate) => between('months', firstRulesDate, secondRulesDate),
24
+ yearsBetween: (firstRulesDate, secondRulesDate) => between('years', firstRulesDate, secondRulesDate),
25
+ addDays: (rulesDate, daysToAdd) => {
26
+ const rulesDateTrimmed = (0, trim_quotes_util_1.default)(rulesDate);
27
+ const daysToAddTrimmed = (0, trim_quotes_util_1.default)(daysToAdd);
28
+ const dateMoment = (0, moment_1.default)(rulesDateTrimmed, momentFormat);
29
+ const newDateMoment = dateMoment.add(daysToAddTrimmed, 'days');
30
+ const newRulesDate = newDateMoment.format(momentFormat);
31
+ return `'${newRulesDate}'`;
32
+ },
33
+ };
34
+ exports.default = exports.dateUtils;
35
+ //# sourceMappingURL=date.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.utils.js","sourceRoot":"","sources":["../../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/engine/program-rule/utils/date.utils.ts"],"names":[],"mappings":";AAAA,QAAQ;;;;AAER,4DAA4B;AAC5B,kFAA4C;AAE5C,MAAM,YAAY,GAAG,YAAY,CAAC;AAElC,MAAM,OAAO,GAAG,CACd,IAAS,EACT,cAAsB,EACtB,eAAuB,EACvB,EAAE;IACF,MAAM,oBAAoB,GAAG,IAAA,0BAAU,EAAC,cAAc,CAAC,CAAC;IACxD,MAAM,sBAAsB,GAAG,IAAA,0BAAU,EAAC,eAAe,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAA,gBAAM,EAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAA,gBAAM,EAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;IAChE,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEW,QAAA,SAAS,GAAG;IACvB,QAAQ,EAAE,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,IAAA,gBAAM,GAAE,CAAC;QAC7B,OAAO,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IACD,WAAW,EAAE,CAAC,cAAsB,EAAE,eAAuB,EAAE,EAAE,CAC/D,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,eAAe,CAAC;IAClD,YAAY,EAAE,CAAC,cAAsB,EAAE,eAAuB,EAAE,EAAE,CAChE,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC;IACnD,aAAa,EAAE,CAAC,cAAsB,EAAE,eAAuB,EAAE,EAAE,CACjE,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,eAAe,CAAC;IACpD,YAAY,EAAE,CAAC,cAAsB,EAAE,eAAuB,EAAE,EAAE,CAChE,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC;IACnD,OAAO,EAAE,CAAC,SAAiB,EAAE,SAAiB,EAAE,EAAE;QAChD,MAAM,gBAAgB,GAAG,IAAA,0BAAU,EAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,gBAAgB,GAAG,IAAA,0BAAU,EAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAA,gBAAM,EAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACxD,OAAO,IAAI,YAAY,GAAG,CAAC;IAC7B,CAAC;CACF,CAAC;AAEF,kBAAe,iBAAS,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './run-d2-expression.util';
@@ -4,7 +4,5 @@ const tslib_1 = require("tslib");
4
4
  // Copyright 2024 UDSM DHIS2 Lab. All rights reserved.
5
5
  // Use of this source code is governed by a BSD-style
6
6
  // license that can be found in the LICENSE file.
7
- tslib_1.__exportStar(require("./organisation-unit.model"), exports);
8
- tslib_1.__exportStar(require("./organisation-unit-group.model"), exports);
9
- tslib_1.__exportStar(require("./organisation-unit-group-set.model"), exports);
7
+ tslib_1.__exportStar(require("./run-d2-expression.util"), exports);
10
8
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/engine/program-rule/utils/index.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,qDAAqD;AACrD,iDAAiD;AACjD,mEAAyC"}
@@ -0,0 +1,4 @@
1
+ export declare const dhisD2Functions: (expression: string, variableHash: {
2
+ [x: string]: any;
3
+ }) => string;
4
+ export declare const runRuleExpression: (expression: string, beforereplacement: string, identifier: string, variablesHash: any) => any;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runRuleExpression = exports.dhisD2Functions = void 0;
4
+ // Copyright 2023 UDSM DHIS2 Lab. All rights reserved.
5
+ // Use of this source code is governed by a BSD-style
6
+ // license that can be found in the LICENSE file.
7
+ // @flow
8
+ const d2_functions_util_1 = require("./d2-functions.util");
9
+ const d2_util_1 = require("./d2.util");
10
+ const dhisD2Functions = (expression, variableHash) => {
11
+ let evalExpression = expression;
12
+ if (d2_util_1.isDefined && evalExpression.includes('d2:')) {
13
+ let continueLooping = true;
14
+ //Safety harness on 10 loops, in case of unanticipated syntax causing unintencontinued looping
15
+ for (let i = 0; i < 1 && continueLooping; i++) {
16
+ let expressionUpdated = false;
17
+ let brokenExecution = false;
18
+ d2_functions_util_1.d2FuctionsVariables.forEach((d2FnVar) => {
19
+ //Select the function call, with any number of parameters inside single quotations, or number parameters witout quotations
20
+ const d2FnRegex = new RegExp(d2FnVar.name +
21
+ "\\( *(([\\d/\\*\\+\\-%. ]+)|( *'[^']*'))*( *, *(([\\d/\\*\\+\\-%. ]+)|'[^']*'))* *\\)", 'g');
22
+ const fnRegexCallArr = evalExpression.match(d2FnRegex);
23
+ if (fnRegexCallArr && fnRegexCallArr.length > 0) {
24
+ fnRegexCallArr.forEach((fnRegexCall) => {
25
+ // Remove the function name and paranthesis and remove whitespaces:
26
+ const fnParameters = fnRegexCall
27
+ .replace(/(^[^\(]+\()|\)$/g, '')
28
+ .trim();
29
+ // Split into single parameters:
30
+ const parameters = fnParameters.match(/(('[^']+')|([^,]+))/g);
31
+ // Check if it has parameters and match the required parameters
32
+ if ((0, d2_util_1.isDefined)(d2FnVar.parameters)) {
33
+ //But we are only checking parameters where the dhisFunction actually has a defined set of parameters(concatenate, for example, does not have a fixed number);
34
+ const numOfParameters = parameters ? parameters.length : 0;
35
+ if (numOfParameters !== d2FnVar.parameters) {
36
+ // log.warn(d2FnVar.name + ' was called with the incorrect number of parameters');
37
+ //Mark this function call as broken:
38
+ brokenExecution = true;
39
+ }
40
+ }
41
+ //In case the function call is nested, the parameter itself contains an expression, run the expression.
42
+ if (!brokenExecution &&
43
+ (0, d2_util_1.isDefined)(parameters) &&
44
+ parameters !== null) {
45
+ for (let i = 0; i < parameters.length; i++) {
46
+ parameters[i] = (0, exports.runRuleExpression)(parameters[i], d2FnVar.name, `parameter:${i}`, variableHash);
47
+ }
48
+ }
49
+ //Special block for d2:weeksBetween(*,*) - add such a block for all other dhis functions.
50
+ if (brokenExecution) {
51
+ //Function call is not possible to evaluate, remove the call:
52
+ evalExpression = evalExpression.replace(fnRegexCall, 'false');
53
+ expressionUpdated = true;
54
+ }
55
+ const results = d2_functions_util_1.d2FunctionsEval[d2FnVar.name](evalExpression, parameters, variableHash, fnRegexCall);
56
+ evalExpression = results.expression;
57
+ expressionUpdated = results.expressionUpdated;
58
+ });
59
+ }
60
+ });
61
+ //We only want to continue looping until we made a successful replacement,
62
+ //and there is still occurrences of "d2:" in the code. In cases where d2: occur outside
63
+ //the expected d2: function calls, one unneccesary iteration will be done and the
64
+ //successfulExecution will be false coming back here, ending the loop. The last iteration
65
+ //should be zero to marginal performancewise.
66
+ if (expressionUpdated && evalExpression.includes('d2:')) {
67
+ continueLooping = true;
68
+ }
69
+ else {
70
+ continueLooping = false;
71
+ }
72
+ }
73
+ }
74
+ return evalExpression;
75
+ };
76
+ exports.dhisD2Functions = dhisD2Functions;
77
+ const runRuleExpression = (expression, beforereplacement, identifier, variablesHash) => {
78
+ const dhisfunctionsevaluated = (0, exports.dhisD2Functions)(expression, variablesHash);
79
+ try {
80
+ const canEvalRule = eval(dhisfunctionsevaluated);
81
+ return canEvalRule;
82
+ }
83
+ catch (e) {
84
+ return false;
85
+ }
86
+ };
87
+ exports.runRuleExpression = runRuleExpression;
88
+ //# sourceMappingURL=run-d2-expression.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-d2-expression.util.js","sourceRoot":"","sources":["../../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/engine/program-rule/utils/run-d2-expression.util.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,qDAAqD;AACrD,iDAAiD;AACjD,QAAQ;AACR,2DAA2E;AAC3E,uCAAsC;AAE/B,MAAM,eAAe,GAAG,CAC7B,UAAkB,EAClB,YAAkC,EAC1B,EAAE;IACV,IAAI,cAAc,GAAG,UAAU,CAAC;IAChC,IAAI,mBAAS,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,8FAA8F;QAC9F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,IAAI,eAAe,GAAG,KAAK,CAAC;YAC5B,uCAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtC,0HAA0H;gBAC1H,MAAM,SAAS,GAAG,IAAI,MAAM,CAC1B,OAAO,CAAC,IAAI;oBACV,uFAAuF,EACzF,GAAG,CACJ,CAAC;gBACF,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAEvD,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChD,cAAc,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;wBACrC,mEAAmE;wBACnE,MAAM,YAAY,GAAG,WAAW;6BAC7B,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;6BAC/B,IAAI,EAAE,CAAC;wBAEV,gCAAgC;wBAChC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;wBAE9D,+DAA+D;wBAC/D,IAAI,IAAA,mBAAS,EAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;4BAClC,8JAA8J;4BAC9J,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC3D,IAAI,eAAe,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC;gCAC3C,kFAAkF;gCAElF,oCAAoC;gCACpC,eAAe,GAAG,IAAI,CAAC;4BACzB,CAAC;wBACH,CAAC;wBAED,uGAAuG;wBACvG,IACE,CAAC,eAAe;4BAChB,IAAA,mBAAS,EAAC,UAAU,CAAC;4BACrB,UAAU,KAAK,IAAI,EACnB,CAAC;4BACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC3C,UAAU,CAAC,CAAC,CAAC,GAAG,IAAA,yBAAiB,EAC/B,UAAU,CAAC,CAAC,CAAC,EACb,OAAO,CAAC,IAAI,EACZ,aAAa,CAAC,EAAE,EAChB,YAAY,CACb,CAAC;4BACJ,CAAC;wBACH,CAAC;wBAED,yFAAyF;wBACzF,IAAI,eAAe,EAAE,CAAC;4BACpB,6DAA6D;4BAC7D,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;4BAC9D,iBAAiB,GAAG,IAAI,CAAC;wBAC3B,CAAC;wBACD,MAAM,OAAO,GAAG,mCAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAC3C,cAAc,EACd,UAAU,EACV,YAAY,EACZ,WAAW,CACZ,CAAC;wBAEF,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;wBACpC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;oBAChD,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;YACH,0EAA0E;YAC1E,uFAAuF;YACvF,iFAAiF;YACjF,yFAAyF;YACzF,6CAA6C;YAC7C,IAAI,iBAAiB,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,eAAe,GAAG,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AA1FW,QAAA,eAAe,mBA0F1B;AAEK,MAAM,iBAAiB,GAAG,CAC/B,UAAkB,EAClB,iBAAyB,EACzB,UAAkB,EAClB,aAAkB,EAClB,EAAE;IACF,MAAM,sBAAsB,GAAW,IAAA,uBAAe,EACpD,UAAU,EACV,aAAa,CACd,CAAC;IACF,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAEjD,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAjBW,QAAA,iBAAiB,qBAiB5B"}
@@ -0,0 +1 @@
1
+ export default function trimQuotes(input: string): string;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ // @flow
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.default = trimQuotes;
5
+ function trimQuotes(input) {
6
+ let trimmingComplete = false;
7
+ let beingTrimmed = input;
8
+ while (!trimmingComplete) {
9
+ const beforeTrimming = beingTrimmed.trim();
10
+ beingTrimmed = beingTrimmed.replace(/^'/, '').replace(/'$/, '');
11
+ beingTrimmed = beingTrimmed.replace(/^"/, '').replace(/"$/, '');
12
+ if (beforeTrimming.length === beingTrimmed.length) {
13
+ trimmingComplete = true;
14
+ }
15
+ }
16
+ return beingTrimmed;
17
+ }
18
+ //# sourceMappingURL=trim-quotes.util.js.map