@ovok/native 1.10.3 → 1.10.4

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 (485) hide show
  1. package/lib/commonjs/modules/auth/default-translation.js +17 -0
  2. package/lib/commonjs/modules/auth/default-translation.js.map +1 -1
  3. package/lib/commonjs/modules/auth/hooks/use-session.js +3 -0
  4. package/lib/commonjs/modules/auth/hooks/use-session.js.map +1 -1
  5. package/lib/commonjs/modules/auth/register/components/form/register-form-provider.js +1 -0
  6. package/lib/commonjs/modules/auth/register/components/form/register-form-provider.js.map +1 -1
  7. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-form-provider.js +1 -0
  8. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-form-provider.js.map +1 -1
  9. package/lib/commonjs/modules/auth/session/session-store-refresh.js +125 -0
  10. package/lib/commonjs/modules/auth/session/session-store-refresh.js.map +1 -0
  11. package/lib/commonjs/modules/auth/session/session-store-request-state.js +73 -0
  12. package/lib/commonjs/modules/auth/session/session-store-request-state.js.map +1 -0
  13. package/lib/commonjs/modules/auth/session/session-store-types.js.map +1 -1
  14. package/lib/commonjs/modules/auth/session/session-store.js +36 -115
  15. package/lib/commonjs/modules/auth/session/session-store.js.map +1 -1
  16. package/lib/commonjs/modules/auth/utils/sign-in-error.js +4 -2
  17. package/lib/commonjs/modules/auth/utils/sign-in-error.js.map +1 -1
  18. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
  19. package/lib/commonjs/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
  20. package/lib/commonjs/modules/data-sync/services/apple-health-sync-service.js.map +1 -1
  21. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js +47 -21
  22. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  23. package/lib/commonjs/modules/data-sync/utils/convert-records-to-observation.js +19 -16
  24. package/lib/commonjs/modules/data-sync/utils/convert-records-to-observation.js.map +1 -1
  25. package/lib/commonjs/modules/data-sync/utils/convert-samples-to-observation.js +17 -4
  26. package/lib/commonjs/modules/data-sync/utils/convert-samples-to-observation.js.map +1 -1
  27. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  28. package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  29. package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js +168 -5
  30. package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js.map +1 -1
  31. package/lib/commonjs/modules/data-sync/utils/health-record-timing.js +52 -0
  32. package/lib/commonjs/modules/data-sync/utils/health-record-timing.js.map +1 -0
  33. package/lib/commonjs/modules/data-sync/utils/healthkit-data-types.js.map +1 -1
  34. package/lib/commonjs/modules/data-sync/utils/normalize-core-health-observation.js +74 -0
  35. package/lib/commonjs/modules/data-sync/utils/normalize-core-health-observation.js.map +1 -0
  36. package/lib/commonjs/modules/picker-sheet/components/value-wheel-picker.js +41 -0
  37. package/lib/commonjs/modules/picker-sheet/components/value-wheel-picker.js.map +1 -0
  38. package/lib/commonjs/modules/picker-sheet/components/wheel-picker.js +56 -15
  39. package/lib/commonjs/modules/picker-sheet/components/wheel-picker.js.map +1 -1
  40. package/lib/commonjs/modules/picker-sheet/index.js +11 -0
  41. package/lib/commonjs/modules/picker-sheet/index.js.map +1 -1
  42. package/lib/commonjs/modules/questionnaire-response-form/README.md +59 -20
  43. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-item.js +8 -0
  44. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-item.js.map +1 -1
  45. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.js +8 -0
  46. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.js.map +1 -1
  47. package/lib/commonjs/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.js +8 -3
  48. package/lib/commonjs/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.js.map +1 -1
  49. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.js +9 -3
  50. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.js.map +1 -1
  51. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js +18 -8
  52. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js.map +1 -1
  53. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.js +41 -2
  54. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.js.map +1 -1
  55. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js +43 -5
  56. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js.map +1 -1
  57. package/lib/commonjs/modules/questionnaire-response-form/components/header/questionnaire-header-title.js +3 -1
  58. package/lib/commonjs/modules/questionnaire-response-form/components/header/questionnaire-header-title.js.map +1 -1
  59. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js +37 -11
  60. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
  61. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form.js +1 -0
  62. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form.js.map +1 -1
  63. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js +9 -3
  64. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js.map +1 -1
  65. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-initial-selected-values.js +5 -3
  66. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-initial-selected-values.js.map +1 -1
  67. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-navigation-handlers.js +15 -4
  68. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-navigation-handlers.js.map +1 -1
  69. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.js +14 -7
  70. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.js.map +1 -1
  71. package/lib/commonjs/modules/questionnaire-response-form/index.js +20 -0
  72. package/lib/commonjs/modules/questionnaire-response-form/index.js.map +1 -1
  73. package/lib/commonjs/modules/questionnaire-response-form/types/questionnaire-form-values.js +4 -0
  74. package/lib/commonjs/modules/questionnaire-response-form/types/questionnaire-item-render-props.js +6 -0
  75. package/lib/commonjs/modules/questionnaire-response-form/types/questionnaire-item-render-props.js.map +1 -0
  76. package/lib/commonjs/modules/questionnaire-response-form/types/response-values.js +4 -0
  77. package/lib/commonjs/modules/questionnaire-response-form/utils/condition-utils.js +37 -6
  78. package/lib/commonjs/modules/questionnaire-response-form/utils/condition-utils.js.map +1 -1
  79. package/lib/commonjs/modules/questionnaire-response-form/utils/conditions/fhir-condition.js +148 -0
  80. package/lib/commonjs/modules/questionnaire-response-form/utils/conditions/fhir-condition.js.map +1 -0
  81. package/lib/commonjs/modules/questionnaire-response-form/utils/create-answer-from-value.js +127 -0
  82. package/lib/commonjs/modules/questionnaire-response-form/utils/create-answer-from-value.js.map +1 -0
  83. package/lib/commonjs/modules/questionnaire-response-form/utils/fields/get-option-text.js +4 -3
  84. package/lib/commonjs/modules/questionnaire-response-form/utils/fields/get-option-text.js.map +1 -1
  85. package/lib/commonjs/modules/questionnaire-response-form/utils/form-utils.js +71 -64
  86. package/lib/commonjs/modules/questionnaire-response-form/utils/form-utils.js.map +1 -1
  87. package/lib/commonjs/modules/questionnaire-response-form/utils/form-validation.js +23 -5
  88. package/lib/commonjs/modules/questionnaire-response-form/utils/form-validation.js.map +1 -1
  89. package/lib/commonjs/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.js +10 -0
  90. package/lib/commonjs/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.js.map +1 -0
  91. package/lib/commonjs/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.js +83 -0
  92. package/lib/commonjs/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.js.map +1 -0
  93. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-date-utils.js +54 -0
  94. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-date-utils.js.map +1 -0
  95. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-item-constraints.js +75 -0
  96. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-item-constraints.js.map +1 -0
  97. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.js +63 -0
  98. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.js.map +1 -0
  99. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.js +49 -18
  100. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.js.map +1 -1
  101. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-picker-options.js +117 -0
  102. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-picker-options.js.map +1 -0
  103. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.js +109 -0
  104. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.js.map +1 -0
  105. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js +2 -2
  106. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js.map +1 -1
  107. package/lib/commonjs/modules/questionnaire-response-form/utils/translate-fhir-text.js +36 -0
  108. package/lib/commonjs/modules/questionnaire-response-form/utils/translate-fhir-text.js.map +1 -0
  109. package/lib/commonjs/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.js +49 -0
  110. package/lib/commonjs/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.js.map +1 -0
  111. package/lib/commonjs/modules/ui/components/prerequisite-gate.js +73 -0
  112. package/lib/commonjs/modules/ui/components/prerequisite-gate.js.map +1 -0
  113. package/lib/commonjs/modules/ui/index.js +11 -0
  114. package/lib/commonjs/modules/ui/index.js.map +1 -1
  115. package/lib/commonjs/polyfills/index.js +9 -7
  116. package/lib/commonjs/polyfills/index.js.map +1 -1
  117. package/lib/module/modules/auth/default-translation.js +17 -0
  118. package/lib/module/modules/auth/default-translation.js.map +1 -1
  119. package/lib/module/modules/auth/hooks/use-session.js +3 -0
  120. package/lib/module/modules/auth/hooks/use-session.js.map +1 -1
  121. package/lib/module/modules/auth/register/components/form/register-form-provider.js +1 -0
  122. package/lib/module/modules/auth/register/components/form/register-form-provider.js.map +1 -1
  123. package/lib/module/modules/auth/reset-password/components/form/reset-password-form-provider.js +1 -0
  124. package/lib/module/modules/auth/reset-password/components/form/reset-password-form-provider.js.map +1 -1
  125. package/lib/module/modules/auth/session/session-store-refresh.js +121 -0
  126. package/lib/module/modules/auth/session/session-store-refresh.js.map +1 -0
  127. package/lib/module/modules/auth/session/session-store-request-state.js +69 -0
  128. package/lib/module/modules/auth/session/session-store-request-state.js.map +1 -0
  129. package/lib/module/modules/auth/session/session-store-types.js.map +1 -1
  130. package/lib/module/modules/auth/session/session-store.js +36 -115
  131. package/lib/module/modules/auth/session/session-store.js.map +1 -1
  132. package/lib/module/modules/auth/utils/sign-in-error.js +4 -2
  133. package/lib/module/modules/auth/utils/sign-in-error.js.map +1 -1
  134. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
  135. package/lib/module/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
  136. package/lib/module/modules/data-sync/services/apple-health-sync-service.js.map +1 -1
  137. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js +47 -21
  138. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  139. package/lib/module/modules/data-sync/utils/convert-records-to-observation.js +19 -16
  140. package/lib/module/modules/data-sync/utils/convert-records-to-observation.js.map +1 -1
  141. package/lib/module/modules/data-sync/utils/convert-samples-to-observation.js +17 -4
  142. package/lib/module/modules/data-sync/utils/convert-samples-to-observation.js.map +1 -1
  143. package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  144. package/lib/module/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  145. package/lib/module/modules/data-sync/utils/health-data-catalog.js +168 -5
  146. package/lib/module/modules/data-sync/utils/health-data-catalog.js.map +1 -1
  147. package/lib/module/modules/data-sync/utils/health-record-timing.js +47 -0
  148. package/lib/module/modules/data-sync/utils/health-record-timing.js.map +1 -0
  149. package/lib/module/modules/data-sync/utils/healthkit-data-types.js.map +1 -1
  150. package/lib/module/modules/data-sync/utils/normalize-core-health-observation.js +69 -0
  151. package/lib/module/modules/data-sync/utils/normalize-core-health-observation.js.map +1 -0
  152. package/lib/module/modules/picker-sheet/components/value-wheel-picker.js +36 -0
  153. package/lib/module/modules/picker-sheet/components/value-wheel-picker.js.map +1 -0
  154. package/lib/module/modules/picker-sheet/components/wheel-picker.js +56 -15
  155. package/lib/module/modules/picker-sheet/components/wheel-picker.js.map +1 -1
  156. package/lib/module/modules/picker-sheet/index.js +1 -0
  157. package/lib/module/modules/picker-sheet/index.js.map +1 -1
  158. package/lib/module/modules/questionnaire-response-form/README.md +59 -20
  159. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-item.js +8 -0
  160. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-item.js.map +1 -1
  161. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.js +8 -0
  162. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.js.map +1 -1
  163. package/lib/module/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.js +8 -3
  164. package/lib/module/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.js.map +1 -1
  165. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.js +9 -3
  166. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.js.map +1 -1
  167. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js +18 -8
  168. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js.map +1 -1
  169. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.js +42 -3
  170. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.js.map +1 -1
  171. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js +41 -3
  172. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js.map +1 -1
  173. package/lib/module/modules/questionnaire-response-form/components/header/questionnaire-header-title.js +3 -1
  174. package/lib/module/modules/questionnaire-response-form/components/header/questionnaire-header-title.js.map +1 -1
  175. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js +37 -11
  176. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
  177. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form.js +1 -0
  178. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form.js.map +1 -1
  179. package/lib/module/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js +9 -3
  180. package/lib/module/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js.map +1 -1
  181. package/lib/module/modules/questionnaire-response-form/hooks/use-initial-selected-values.js +5 -3
  182. package/lib/module/modules/questionnaire-response-form/hooks/use-initial-selected-values.js.map +1 -1
  183. package/lib/module/modules/questionnaire-response-form/hooks/use-navigation-handlers.js +15 -4
  184. package/lib/module/modules/questionnaire-response-form/hooks/use-navigation-handlers.js.map +1 -1
  185. package/lib/module/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.js +14 -7
  186. package/lib/module/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.js.map +1 -1
  187. package/lib/module/modules/questionnaire-response-form/index.js +2 -0
  188. package/lib/module/modules/questionnaire-response-form/index.js.map +1 -1
  189. package/lib/module/modules/questionnaire-response-form/types/questionnaire-form-values.js +2 -0
  190. package/lib/module/modules/questionnaire-response-form/types/questionnaire-item-render-props.js +4 -0
  191. package/lib/module/modules/questionnaire-response-form/types/questionnaire-item-render-props.js.map +1 -0
  192. package/lib/module/modules/questionnaire-response-form/types/response-values.js +2 -0
  193. package/lib/module/modules/questionnaire-response-form/utils/condition-utils.js +37 -6
  194. package/lib/module/modules/questionnaire-response-form/utils/condition-utils.js.map +1 -1
  195. package/lib/module/modules/questionnaire-response-form/utils/conditions/fhir-condition.js +140 -0
  196. package/lib/module/modules/questionnaire-response-form/utils/conditions/fhir-condition.js.map +1 -0
  197. package/lib/module/modules/questionnaire-response-form/utils/create-answer-from-value.js +122 -0
  198. package/lib/module/modules/questionnaire-response-form/utils/create-answer-from-value.js.map +1 -0
  199. package/lib/module/modules/questionnaire-response-form/utils/fields/get-option-text.js +4 -3
  200. package/lib/module/modules/questionnaire-response-form/utils/fields/get-option-text.js.map +1 -1
  201. package/lib/module/modules/questionnaire-response-form/utils/form-utils.js +71 -64
  202. package/lib/module/modules/questionnaire-response-form/utils/form-utils.js.map +1 -1
  203. package/lib/module/modules/questionnaire-response-form/utils/form-validation.js +23 -5
  204. package/lib/module/modules/questionnaire-response-form/utils/form-validation.js.map +1 -1
  205. package/lib/module/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.js +5 -0
  206. package/lib/module/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.js.map +1 -0
  207. package/lib/module/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.js +77 -0
  208. package/lib/module/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.js.map +1 -0
  209. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-date-utils.js +49 -0
  210. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-date-utils.js.map +1 -0
  211. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-item-constraints.js +71 -0
  212. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-item-constraints.js.map +1 -0
  213. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.js +57 -0
  214. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.js.map +1 -0
  215. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.js +49 -18
  216. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.js.map +1 -1
  217. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-picker-options.js +112 -0
  218. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-picker-options.js.map +1 -0
  219. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.js +105 -0
  220. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.js.map +1 -0
  221. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js +2 -2
  222. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js.map +1 -1
  223. package/lib/module/modules/questionnaire-response-form/utils/translate-fhir-text.js +31 -0
  224. package/lib/module/modules/questionnaire-response-form/utils/translate-fhir-text.js.map +1 -0
  225. package/lib/module/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.js +44 -0
  226. package/lib/module/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.js.map +1 -0
  227. package/lib/module/modules/ui/components/prerequisite-gate.js +67 -0
  228. package/lib/module/modules/ui/components/prerequisite-gate.js.map +1 -0
  229. package/lib/module/modules/ui/index.js +1 -0
  230. package/lib/module/modules/ui/index.js.map +1 -1
  231. package/lib/module/polyfills/index.js +11 -1
  232. package/lib/module/polyfills/index.js.map +1 -1
  233. package/lib/typescript/commonjs/src/modules/auth/default-translation.d.ts +17 -0
  234. package/lib/typescript/commonjs/src/modules/auth/default-translation.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts +4 -1
  236. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts.map +1 -1
  237. package/lib/typescript/commonjs/src/modules/auth/register/components/form/register-form-provider.d.ts.map +1 -1
  238. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts.map +1 -1
  239. package/lib/typescript/commonjs/src/modules/auth/session/session-store-refresh.d.ts +8 -0
  240. package/lib/typescript/commonjs/src/modules/auth/session/session-store-refresh.d.ts.map +1 -0
  241. package/lib/typescript/commonjs/src/modules/auth/session/session-store-request-state.d.ts +23 -0
  242. package/lib/typescript/commonjs/src/modules/auth/session/session-store-request-state.d.ts.map +1 -0
  243. package/lib/typescript/commonjs/src/modules/auth/session/session-store-types.d.ts +8 -2
  244. package/lib/typescript/commonjs/src/modules/auth/session/session-store-types.d.ts.map +1 -1
  245. package/lib/typescript/commonjs/src/modules/auth/session/session-store.d.ts +1 -1
  246. package/lib/typescript/commonjs/src/modules/auth/session/session-store.d.ts.map +1 -1
  247. package/lib/typescript/commonjs/src/modules/auth/utils/sign-in-error.d.ts +2 -1
  248. package/lib/typescript/commonjs/src/modules/auth/utils/sign-in-error.d.ts.map +1 -1
  249. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
  250. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts +2 -3
  251. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
  252. package/lib/typescript/commonjs/src/modules/data-sync/services/apple-health-sync-service.d.ts +4 -5
  253. package/lib/typescript/commonjs/src/modules/data-sync/services/apple-health-sync-service.d.ts.map +1 -1
  254. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts +4 -2
  255. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts.map +1 -1
  256. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -1
  257. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  258. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts +2 -1
  259. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -1
  260. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts +3 -2
  261. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-records-to-observation.d.ts.map +1 -1
  263. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-samples-to-observation.d.ts.map +1 -1
  264. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +5 -4
  265. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  266. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-samples-count.d.ts +2 -2
  267. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  268. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts +3 -1
  269. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -1
  270. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-record-timing.d.ts +10 -0
  271. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-record-timing.d.ts.map +1 -0
  272. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts +6 -5
  273. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -1
  274. package/lib/typescript/commonjs/src/modules/data-sync/utils/normalize-core-health-observation.d.ts +13 -0
  275. package/lib/typescript/commonjs/src/modules/data-sync/utils/normalize-core-health-observation.d.ts.map +1 -0
  276. package/lib/typescript/commonjs/src/modules/picker-sheet/components/value-wheel-picker.d.ts +21 -0
  277. package/lib/typescript/commonjs/src/modules/picker-sheet/components/value-wheel-picker.d.ts.map +1 -0
  278. package/lib/typescript/commonjs/src/modules/picker-sheet/components/wheel-picker.d.ts +7 -3
  279. package/lib/typescript/commonjs/src/modules/picker-sheet/components/wheel-picker.d.ts.map +1 -1
  280. package/lib/typescript/commonjs/src/modules/picker-sheet/index.d.ts +1 -0
  281. package/lib/typescript/commonjs/src/modules/picker-sheet/index.d.ts.map +1 -1
  282. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/content/questionnaire-content-item.d.ts.map +1 -1
  283. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.d.ts.map +1 -1
  284. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.d.ts.map +1 -1
  285. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.d.ts.map +1 -1
  286. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-date-field.d.ts +3 -1
  287. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-date-field.d.ts.map +1 -1
  288. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.d.ts +9 -3
  289. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.d.ts.map +1 -1
  290. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-text-field.d.ts +5 -1
  291. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-text-field.d.ts.map +1 -1
  292. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/header/questionnaire-header-title.d.ts.map +1 -1
  293. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts +1 -1
  294. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
  295. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-form.d.ts.map +1 -1
  296. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-navigation-provider.d.ts.map +1 -1
  297. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-initial-selected-values.d.ts.map +1 -1
  298. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts +6 -1
  299. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts.map +1 -1
  300. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.d.ts +2 -1
  301. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.d.ts.map +1 -1
  302. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/index.d.ts +4 -1
  303. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/index.d.ts.map +1 -1
  304. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/extended-questionnaire-item.d.ts +7 -1
  305. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/extended-questionnaire-item.d.ts.map +1 -1
  306. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts +6 -0
  307. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts.map +1 -1
  308. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-props.d.ts +3 -1
  309. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-props.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-provider-props.d.ts +11 -0
  311. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-provider-props.d.ts.map +1 -1
  312. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-values.d.ts +5 -2
  313. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-values.d.ts.map +1 -1
  314. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-item-render-props.d.ts +15 -0
  315. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-item-render-props.d.ts.map +1 -0
  316. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts +5 -0
  317. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts.map +1 -1
  318. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/response-values.d.ts +2 -1
  319. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/response-values.d.ts.map +1 -1
  320. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/condition-utils.d.ts.map +1 -1
  321. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/conditions/fhir-condition.d.ts +9 -0
  322. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/conditions/fhir-condition.d.ts.map +1 -0
  323. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/create-answer-from-value.d.ts +7 -0
  324. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/create-answer-from-value.d.ts.map +1 -0
  325. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/fields/get-option-text.d.ts +1 -1
  326. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/fields/get-option-text.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/form-utils.d.ts +4 -1
  328. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/form-utils.d.ts.map +1 -1
  329. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/form-validation.d.ts +4 -1
  330. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/form-validation.d.ts.map +1 -1
  331. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.d.ts +3 -0
  332. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.d.ts.map +1 -0
  333. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.d.ts +8 -0
  334. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.d.ts.map +1 -0
  335. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-date-utils.d.ts +5 -0
  336. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-date-utils.d.ts.map +1 -0
  337. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-item-constraints.d.ts +22 -0
  338. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-item-constraints.d.ts.map +1 -0
  339. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.d.ts +10 -0
  340. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.d.ts.map +1 -0
  341. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.d.ts +2 -1
  342. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.d.ts.map +1 -1
  343. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-picker-options.d.ts +15 -0
  344. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-picker-options.d.ts.map +1 -0
  345. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.d.ts +5 -0
  346. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.d.ts.map +1 -0
  347. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts +3 -1
  348. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts.map +1 -1
  349. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/translate-fhir-text.d.ts +4 -0
  350. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/translate-fhir-text.d.ts.map +1 -0
  351. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.d.ts +6 -0
  352. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.d.ts.map +1 -0
  353. package/lib/typescript/commonjs/src/modules/ui/components/prerequisite-gate.d.ts +19 -0
  354. package/lib/typescript/commonjs/src/modules/ui/components/prerequisite-gate.d.ts.map +1 -0
  355. package/lib/typescript/commonjs/src/modules/ui/index.d.ts +1 -0
  356. package/lib/typescript/commonjs/src/modules/ui/index.d.ts.map +1 -1
  357. package/lib/typescript/commonjs/src/polyfills/index.d.ts +7 -1
  358. package/lib/typescript/commonjs/src/polyfills/index.d.ts.map +1 -1
  359. package/lib/typescript/module/src/modules/auth/default-translation.d.ts +17 -0
  360. package/lib/typescript/module/src/modules/auth/default-translation.d.ts.map +1 -1
  361. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts +4 -1
  362. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts.map +1 -1
  363. package/lib/typescript/module/src/modules/auth/register/components/form/register-form-provider.d.ts.map +1 -1
  364. package/lib/typescript/module/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts.map +1 -1
  365. package/lib/typescript/module/src/modules/auth/session/session-store-refresh.d.ts +8 -0
  366. package/lib/typescript/module/src/modules/auth/session/session-store-refresh.d.ts.map +1 -0
  367. package/lib/typescript/module/src/modules/auth/session/session-store-request-state.d.ts +23 -0
  368. package/lib/typescript/module/src/modules/auth/session/session-store-request-state.d.ts.map +1 -0
  369. package/lib/typescript/module/src/modules/auth/session/session-store-types.d.ts +8 -2
  370. package/lib/typescript/module/src/modules/auth/session/session-store-types.d.ts.map +1 -1
  371. package/lib/typescript/module/src/modules/auth/session/session-store.d.ts +1 -1
  372. package/lib/typescript/module/src/modules/auth/session/session-store.d.ts.map +1 -1
  373. package/lib/typescript/module/src/modules/auth/utils/sign-in-error.d.ts +2 -1
  374. package/lib/typescript/module/src/modules/auth/utils/sign-in-error.d.ts.map +1 -1
  375. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
  376. package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts +2 -3
  377. package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
  378. package/lib/typescript/module/src/modules/data-sync/services/apple-health-sync-service.d.ts +4 -5
  379. package/lib/typescript/module/src/modules/data-sync/services/apple-health-sync-service.d.ts.map +1 -1
  380. package/lib/typescript/module/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts +4 -2
  381. package/lib/typescript/module/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts.map +1 -1
  382. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -1
  383. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  384. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts +2 -1
  385. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -1
  386. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts +3 -2
  387. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  388. package/lib/typescript/module/src/modules/data-sync/utils/convert-records-to-observation.d.ts.map +1 -1
  389. package/lib/typescript/module/src/modules/data-sync/utils/convert-samples-to-observation.d.ts.map +1 -1
  390. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +5 -4
  391. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  392. package/lib/typescript/module/src/modules/data-sync/utils/get-total-samples-count.d.ts +2 -2
  393. package/lib/typescript/module/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  394. package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts +3 -1
  395. package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -1
  396. package/lib/typescript/module/src/modules/data-sync/utils/health-record-timing.d.ts +10 -0
  397. package/lib/typescript/module/src/modules/data-sync/utils/health-record-timing.d.ts.map +1 -0
  398. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts +6 -5
  399. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -1
  400. package/lib/typescript/module/src/modules/data-sync/utils/normalize-core-health-observation.d.ts +13 -0
  401. package/lib/typescript/module/src/modules/data-sync/utils/normalize-core-health-observation.d.ts.map +1 -0
  402. package/lib/typescript/module/src/modules/picker-sheet/components/value-wheel-picker.d.ts +21 -0
  403. package/lib/typescript/module/src/modules/picker-sheet/components/value-wheel-picker.d.ts.map +1 -0
  404. package/lib/typescript/module/src/modules/picker-sheet/components/wheel-picker.d.ts +7 -3
  405. package/lib/typescript/module/src/modules/picker-sheet/components/wheel-picker.d.ts.map +1 -1
  406. package/lib/typescript/module/src/modules/picker-sheet/index.d.ts +1 -0
  407. package/lib/typescript/module/src/modules/picker-sheet/index.d.ts.map +1 -1
  408. package/lib/typescript/module/src/modules/questionnaire-response-form/components/content/questionnaire-content-item.d.ts.map +1 -1
  409. package/lib/typescript/module/src/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.d.ts.map +1 -1
  410. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.d.ts.map +1 -1
  411. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.d.ts.map +1 -1
  412. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-date-field.d.ts +3 -1
  413. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-date-field.d.ts.map +1 -1
  414. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.d.ts +9 -3
  415. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.d.ts.map +1 -1
  416. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-text-field.d.ts +5 -1
  417. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-text-field.d.ts.map +1 -1
  418. package/lib/typescript/module/src/modules/questionnaire-response-form/components/header/questionnaire-header-title.d.ts.map +1 -1
  419. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts +1 -1
  420. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
  421. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-form.d.ts.map +1 -1
  422. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-navigation-provider.d.ts.map +1 -1
  423. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-initial-selected-values.d.ts.map +1 -1
  424. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts +6 -1
  425. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts.map +1 -1
  426. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.d.ts +2 -1
  427. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.d.ts.map +1 -1
  428. package/lib/typescript/module/src/modules/questionnaire-response-form/index.d.ts +4 -1
  429. package/lib/typescript/module/src/modules/questionnaire-response-form/index.d.ts.map +1 -1
  430. package/lib/typescript/module/src/modules/questionnaire-response-form/types/extended-questionnaire-item.d.ts +7 -1
  431. package/lib/typescript/module/src/modules/questionnaire-response-form/types/extended-questionnaire-item.d.ts.map +1 -1
  432. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts +6 -0
  433. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts.map +1 -1
  434. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-props.d.ts +3 -1
  435. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-props.d.ts.map +1 -1
  436. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-provider-props.d.ts +11 -0
  437. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-provider-props.d.ts.map +1 -1
  438. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-values.d.ts +5 -2
  439. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-values.d.ts.map +1 -1
  440. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-item-render-props.d.ts +15 -0
  441. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-item-render-props.d.ts.map +1 -0
  442. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts +5 -0
  443. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts.map +1 -1
  444. package/lib/typescript/module/src/modules/questionnaire-response-form/types/response-values.d.ts +2 -1
  445. package/lib/typescript/module/src/modules/questionnaire-response-form/types/response-values.d.ts.map +1 -1
  446. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/condition-utils.d.ts.map +1 -1
  447. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/conditions/fhir-condition.d.ts +9 -0
  448. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/conditions/fhir-condition.d.ts.map +1 -0
  449. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/create-answer-from-value.d.ts +7 -0
  450. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/create-answer-from-value.d.ts.map +1 -0
  451. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/fields/get-option-text.d.ts +1 -1
  452. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/fields/get-option-text.d.ts.map +1 -1
  453. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/form-utils.d.ts +4 -1
  454. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/form-utils.d.ts.map +1 -1
  455. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/form-validation.d.ts +4 -1
  456. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/form-validation.d.ts.map +1 -1
  457. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.d.ts +3 -0
  458. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.d.ts.map +1 -0
  459. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.d.ts +8 -0
  460. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.d.ts.map +1 -0
  461. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-date-utils.d.ts +5 -0
  462. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-date-utils.d.ts.map +1 -0
  463. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-item-constraints.d.ts +22 -0
  464. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-item-constraints.d.ts.map +1 -0
  465. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.d.ts +10 -0
  466. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.d.ts.map +1 -0
  467. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.d.ts +2 -1
  468. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.d.ts.map +1 -1
  469. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-picker-options.d.ts +15 -0
  470. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-picker-options.d.ts.map +1 -0
  471. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.d.ts +5 -0
  472. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.d.ts.map +1 -0
  473. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts +3 -1
  474. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts.map +1 -1
  475. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/translate-fhir-text.d.ts +4 -0
  476. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/translate-fhir-text.d.ts.map +1 -0
  477. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.d.ts +6 -0
  478. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.d.ts.map +1 -0
  479. package/lib/typescript/module/src/modules/ui/components/prerequisite-gate.d.ts +19 -0
  480. package/lib/typescript/module/src/modules/ui/components/prerequisite-gate.d.ts.map +1 -0
  481. package/lib/typescript/module/src/modules/ui/index.d.ts +1 -0
  482. package/lib/typescript/module/src/modules/ui/index.d.ts.map +1 -1
  483. package/lib/typescript/module/src/polyfills/index.d.ts +7 -1
  484. package/lib/typescript/module/src/polyfills/index.d.ts.map +1 -1
  485. package/package.json +3 -3
@@ -18,9 +18,12 @@ export const QuestionnaireNavigationProvider = ({
18
18
  setCurrentItemIndex,
19
19
  setCurrentPageIndex,
20
20
  setErrorMessage,
21
- formik
21
+ formik,
22
+ renderItem,
23
+ resolveQuestionnaireConstraint,
24
+ resolveQuestionnaireUnitOptions
22
25
  }) => {
23
- const navigationState = useQuestionnaireNavigationState(currentItem, currentPageIndex, currentItemIndex, enabledItems, pages, values, allEnabledItems);
26
+ const navigationState = useQuestionnaireNavigationState(currentItem, currentPageIndex, currentItemIndex, enabledItems, pages, values, allEnabledItems, renderItem);
24
27
  const {
25
28
  handleNext,
26
29
  handlePrevious
@@ -34,7 +37,10 @@ export const QuestionnaireNavigationProvider = ({
34
37
  pages,
35
38
  setCurrentItemIndex,
36
39
  setCurrentPageIndex,
37
- setErrorMessage
40
+ setErrorMessage,
41
+ renderItem,
42
+ resolveQuestionnaireConstraint,
43
+ resolveQuestionnaireUnitOptions
38
44
  });
39
45
  const contextValue = React.useMemo(() => ({
40
46
  ...navigationState,
@@ -1 +1 @@
1
- {"version":3,"names":["React","QuestionnaireNavigationContext","useNavigationHandlers","useQuestionnaireNavigationState","jsx","_jsx","QuestionnaireNavigationProvider","children","currentItem","currentPage","enabledItems","allEnabledItems","pages","values","currentItemIndex","currentPageIndex","setCurrentItemIndex","setCurrentPageIndex","setErrorMessage","formik","navigationState","handleNext","handlePrevious","contextValue","useMemo","isSubmitting","Provider","value"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/components/questionnaire-navigation-provider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,8BAA8B,QAAQ,iDAA8C;AAC7F,SAASC,qBAAqB,QAAQ,qCAAkC;AACxE,SAASC,+BAA+B,QAAQ,gDAA6C;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG9F,OAAO,MAAMC,+BAEZ,GAAGA,CAAC;EACHC,QAAQ;EACRC,WAAW;EACXC,WAAW;EACXC,YAAY;EACZC,eAAe;EACfC,KAAK;EACLC,MAAM;EACNC,gBAAgB;EAChBC,gBAAgB;EAChBC,mBAAmB;EACnBC,mBAAmB;EACnBC,eAAe;EACfC;AACF,CAAC,KAAK;EACJ,MAAMC,eAAe,GAAGjB,+BAA+B,CACrDK,WAAW,EACXO,gBAAgB,EAChBD,gBAAgB,EAChBJ,YAAY,EACZE,KAAK,EACLC,MAAM,EACNF,eACF,CAAC;EAED,MAAM;IAAEU,UAAU;IAAEC;EAAe,CAAC,GAAGpB,qBAAqB,CAAC;IAC3DM,WAAW;IACXC,WAAW;IACXC,YAAY;IACZS,MAAM;IACNL,gBAAgB;IAChBC,gBAAgB;IAChBH,KAAK;IACLI,mBAAmB;IACnBC,mBAAmB;IACnBC;EACF,CAAC,CAAC;EAEF,MAAMK,YAAY,GAAGvB,KAAK,CAACwB,OAAO,CAChC,OAAO;IACL,GAAGJ,eAAe;IAClBK,YAAY,EAAEN,MAAM,CAACM,YAAY;IACjCJ,UAAU;IACVC;EACF,CAAC,CAAC,EACF,CAACF,eAAe,EAAED,MAAM,CAACM,YAAY,EAAEJ,UAAU,EAAEC,cAAc,CACnE,CAAC;EAED,oBACEjB,IAAA,CAACJ,8BAA8B,CAACyB,QAAQ;IAACC,KAAK,EAAEJ,YAAa;IAAAhB,QAAA,EAC1DA;EAAQ,CAC8B,CAAC;AAE9C,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","QuestionnaireNavigationContext","useNavigationHandlers","useQuestionnaireNavigationState","jsx","_jsx","QuestionnaireNavigationProvider","children","currentItem","currentPage","enabledItems","allEnabledItems","pages","values","currentItemIndex","currentPageIndex","setCurrentItemIndex","setCurrentPageIndex","setErrorMessage","formik","renderItem","resolveQuestionnaireConstraint","resolveQuestionnaireUnitOptions","navigationState","handleNext","handlePrevious","contextValue","useMemo","isSubmitting","Provider","value"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/components/questionnaire-navigation-provider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,8BAA8B,QAAQ,iDAA8C;AAC7F,SAASC,qBAAqB,QAAQ,qCAAkC;AACxE,SAASC,+BAA+B,QAAQ,gDAA6C;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG9F,OAAO,MAAMC,+BAEZ,GAAGA,CAAC;EACHC,QAAQ;EACRC,WAAW;EACXC,WAAW;EACXC,YAAY;EACZC,eAAe;EACfC,KAAK;EACLC,MAAM;EACNC,gBAAgB;EAChBC,gBAAgB;EAChBC,mBAAmB;EACnBC,mBAAmB;EACnBC,eAAe;EACfC,MAAM;EACNC,UAAU;EACVC,8BAA8B;EAC9BC;AACF,CAAC,KAAK;EACJ,MAAMC,eAAe,GAAGpB,+BAA+B,CACrDK,WAAW,EACXO,gBAAgB,EAChBD,gBAAgB,EAChBJ,YAAY,EACZE,KAAK,EACLC,MAAM,EACNF,eAAe,EACfS,UACF,CAAC;EAED,MAAM;IAAEI,UAAU;IAAEC;EAAe,CAAC,GAAGvB,qBAAqB,CAAC;IAC3DM,WAAW;IACXC,WAAW;IACXC,YAAY;IACZS,MAAM;IACNL,gBAAgB;IAChBC,gBAAgB;IAChBH,KAAK;IACLI,mBAAmB;IACnBC,mBAAmB;IACnBC,eAAe;IACfE,UAAU;IACVC,8BAA8B;IAC9BC;EACF,CAAC,CAAC;EAEF,MAAMI,YAAY,GAAG1B,KAAK,CAAC2B,OAAO,CAChC,OAAO;IACL,GAAGJ,eAAe;IAClBK,YAAY,EAAET,MAAM,CAACS,YAAY;IACjCJ,UAAU;IACVC;EACF,CAAC,CAAC,EACF,CAACF,eAAe,EAAEJ,MAAM,CAACS,YAAY,EAAEJ,UAAU,EAAEC,cAAc,CACnE,CAAC;EAED,oBACEpB,IAAA,CAACJ,8BAA8B,CAAC4B,QAAQ;IAACC,KAAK,EAAEJ,YAAa;IAAAnB,QAAA,EAC1DA;EAAQ,CAC8B,CAAC;AAE9C,CAAC","ignoreList":[]}
@@ -2,6 +2,7 @@
2
2
 
3
3
  import React from "react";
4
4
  import { ConditionUtils } from "../utils/condition-utils.js";
5
+ import { FormUtils } from "../utils/form-utils.js";
5
6
 
6
7
  /**
7
8
  * Hook to handle initializing conditional questions with default values
@@ -9,7 +10,7 @@ import { ConditionUtils } from "../utils/condition-utils.js";
9
10
  export const useInitialSelectedValues = (pages, values, setFieldValue) => {
10
11
  const initializedItemsRef = React.useRef({});
11
12
  const prevValuesRef = React.useRef({});
12
- const allItems = React.useMemo(() => pages.flatMap(page => page.item ? page.item : []), [pages]);
13
+ const allItems = React.useMemo(() => FormUtils.getAllQuestionnaireItems(pages), [pages]);
13
14
  const initializeItemValue = React.useCallback(item => {
14
15
  const linkId = item.linkId || "";
15
16
  if (values[linkId] !== undefined) {
@@ -44,17 +45,18 @@ export const useInitialSelectedValues = (pages, values, setFieldValue) => {
44
45
  prevValuesRef.current = {
45
46
  ...values
46
47
  };
48
+ const enabledLinkIds = new Set(pages.flatMap(page => ConditionUtils.getEnabledItemsForPage(page, values).map(item => item.linkId || "")));
47
49
  allItems.forEach(item => {
48
50
  const hasConditions = item.enableWhen && item.enableWhen.length > 0;
49
51
  const linkId = item.linkId || "";
50
52
  if (initializedItemsRef.current[linkId]) {
51
53
  return;
52
54
  }
53
- if (hasConditions && ConditionUtils.isItemEnabled(item, values)) {
55
+ if (hasConditions && enabledLinkIds.has(linkId)) {
54
56
  initializeItemValue(item);
55
57
  }
56
58
  });
57
- }, [allItems, values, initializeItemValue]);
59
+ }, [allItems, pages, values, initializeItemValue]);
58
60
  React.useEffect(() => {
59
61
  initializedItemsRef.current = {};
60
62
  prevValuesRef.current = {};
@@ -1 +1 @@
1
- {"version":3,"names":["React","ConditionUtils","useInitialSelectedValues","pages","values","setFieldValue","initializedItemsRef","useRef","prevValuesRef","allItems","useMemo","flatMap","page","item","initializeItemValue","useCallback","linkId","undefined","type","answerOption","initialSelectedOption","find","option","initialSelected","valueCoding","code","current","valueString","useEffect","Object","keys","length","valuesAreSame","JSON","stringify","forEach","hasConditions","enableWhen","isItemEnabled"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/hooks/use-initial-selected-values.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","ConditionUtils","FormUtils","useInitialSelectedValues","pages","values","setFieldValue","initializedItemsRef","useRef","prevValuesRef","allItems","useMemo","getAllQuestionnaireItems","initializeItemValue","useCallback","item","linkId","undefined","type","answerOption","initialSelectedOption","find","option","initialSelected","valueCoding","code","current","valueString","useEffect","Object","keys","length","valuesAreSame","JSON","stringify","enabledLinkIds","Set","flatMap","page","getEnabledItemsForPage","map","forEach","hasConditions","enableWhen","has"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/hooks/use-initial-selected-values.ts"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  import React from "react";
4
+ import { isQuestionnaireItemAnswered } from "../utils/create-answer-from-value.js";
5
+ import { isAnswerableQuestionnaireItem } from "../utils/is-answerable-questionnaire-item.js";
4
6
  import { QuestionnaireNavigationUtils } from "../utils/questionnaire-navigation-utils.js";
7
+ import { validateQuestionnaireItemValue } from "../utils/validate-questionnaire-item-value.js";
5
8
  /**
6
9
  * Provides navigation handlers for the questionnaire form
7
10
  */
@@ -13,20 +16,28 @@ export const useNavigationHandlers = ({
13
16
  currentItemIndex,
14
17
  currentPageIndex,
15
18
  pages,
19
+ renderItem,
20
+ resolveQuestionnaireConstraint,
21
+ resolveQuestionnaireUnitOptions,
16
22
  setCurrentItemIndex,
17
23
  setCurrentPageIndex,
18
24
  setErrorMessage
19
25
  }) => {
20
26
  const handleNext = React.useCallback(() => {
21
- if (currentItem && currentItem.required) {
27
+ if (currentItem && validateQuestionnaireItemValue(formik.values[currentItem.linkId || ""], currentItem, formik.values, resolveQuestionnaireConstraint, resolveQuestionnaireUnitOptions)) {
28
+ setErrorMessage("questionnaire-form.error.invalid-answer");
29
+ return;
30
+ }
31
+ if (currentItem?.required && (isAnswerableQuestionnaireItem(currentItem) || !!renderItem && currentItem.type !== "group" && currentItem.type !== "display")) {
22
32
  const linkId = currentItem.linkId || "";
23
- if (formik.values[linkId] === undefined || formik.values[linkId] === "") {
33
+ const value = formik.values[linkId];
34
+ if (!isQuestionnaireItemAnswered(value, currentItem)) {
24
35
  setErrorMessage("This question is required");
25
36
  return;
26
37
  }
27
38
  }
28
39
  setErrorMessage(null);
29
- const result = QuestionnaireNavigationUtils.handleNext(currentPage, enabledItems, currentItem, currentItemIndex, currentPageIndex, pages, formik.values);
40
+ const result = QuestionnaireNavigationUtils.handleNext(currentPage, enabledItems, currentItem, currentItemIndex, currentPageIndex, pages, formik.values, renderItem);
30
41
  if (result.hasError) {
31
42
  setErrorMessage(result.errorMessage || "This question is required");
32
43
  return;
@@ -38,7 +49,7 @@ export const useNavigationHandlers = ({
38
49
  setCurrentPageIndex(result.newPageIndex);
39
50
  setCurrentItemIndex(0);
40
51
  }
41
- }, [currentItem, currentPage, enabledItems, formik.values, currentItemIndex, currentPageIndex, pages, setCurrentItemIndex, setCurrentPageIndex, setErrorMessage]);
52
+ }, [currentItem, currentPage, enabledItems, formik.values, currentItemIndex, currentPageIndex, pages, renderItem, resolveQuestionnaireConstraint, resolveQuestionnaireUnitOptions, setCurrentItemIndex, setCurrentPageIndex, setErrorMessage]);
42
53
  const handlePrevious = React.useCallback(() => {
43
54
  setErrorMessage(null);
44
55
  const result = QuestionnaireNavigationUtils.handlePrevious(currentItemIndex, currentPageIndex, pages, formik.values);
@@ -1 +1 @@
1
- {"version":3,"names":["React","QuestionnaireNavigationUtils","useNavigationHandlers","currentItem","currentPage","enabledItems","formik","currentItemIndex","currentPageIndex","pages","setCurrentItemIndex","setCurrentPageIndex","setErrorMessage","handleNext","useCallback","required","linkId","values","undefined","result","hasError","errorMessage","newItemIndex","newPageIndex","handlePrevious","lastItemIndex"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/hooks/use-navigation-handlers.ts"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAKzB,SAASC,4BAA4B,QAAQ,4CAAyC;AAetF;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAGA,CAAC;EACpCC,WAAW;EACXC,WAAW;EACXC,YAAY;EACZC,MAAM;EACNC,gBAAgB;EAChBC,gBAAgB;EAChBC,KAAK;EACLC,mBAAmB;EACnBC,mBAAmB;EACnBC;AAC0B,CAAC,KAAK;EAChC,MAAMC,UAAU,GAAGb,KAAK,CAACc,WAAW,CAAC,MAAM;IACzC,IAAIX,WAAW,IAAIA,WAAW,CAACY,QAAQ,EAAE;MACvC,MAAMC,MAAM,GAAGb,WAAW,CAACa,MAAM,IAAI,EAAE;MAEvC,IAAIV,MAAM,CAACW,MAAM,CAACD,MAAM,CAAC,KAAKE,SAAS,IAAIZ,MAAM,CAACW,MAAM,CAACD,MAAM,CAAC,KAAK,EAAE,EAAE;QACvEJ,eAAe,CAAC,2BAA2B,CAAC;QAE5C;MACF;IACF;IAEAA,eAAe,CAAC,IAAI,CAAC;IAErB,MAAMO,MAAM,GAAGlB,4BAA4B,CAACY,UAAU,CACpDT,WAAW,EACXC,YAAY,EACZF,WAAW,EACXI,gBAAgB,EAChBC,gBAAgB,EAChBC,KAAK,EACLH,MAAM,CAACW,MACT,CAAC;IAED,IAAIE,MAAM,CAACC,QAAQ,EAAE;MACnBR,eAAe,CAACO,MAAM,CAACE,YAAY,IAAI,2BAA2B,CAAC;MAEnE;IACF;IAEA,IAAIF,MAAM,CAACG,YAAY,KAAKJ,SAAS,EAAE;MACrCR,mBAAmB,CAACS,MAAM,CAACG,YAAY,CAAC;IAC1C;IACA,IAAIH,MAAM,CAACI,YAAY,KAAKL,SAAS,EAAE;MACrCP,mBAAmB,CAACQ,MAAM,CAACI,YAAY,CAAC;MACxCb,mBAAmB,CAAC,CAAC,CAAC;IACxB;EACF,CAAC,EAAE,CACDP,WAAW,EACXC,WAAW,EACXC,YAAY,EACZC,MAAM,CAACW,MAAM,EACbV,gBAAgB,EAChBC,gBAAgB,EAChBC,KAAK,EACLC,mBAAmB,EACnBC,mBAAmB,EACnBC,eAAe,CAChB,CAAC;EAEF,MAAMY,cAAc,GAAGxB,KAAK,CAACc,WAAW,CAAC,MAAM;IAC7CF,eAAe,CAAC,IAAI,CAAC;IACrB,MAAMO,MAAM,GAAGlB,4BAA4B,CAACuB,cAAc,CACxDjB,gBAAgB,EAChBC,gBAAgB,EAChBC,KAAK,EACLH,MAAM,CAACW,MACT,CAAC;IAED,IAAIE,MAAM,CAACG,YAAY,KAAKJ,SAAS,EAAE;MACrCR,mBAAmB,CAACS,MAAM,CAACG,YAAY,CAAC;IAC1C;IACA,IAAIH,MAAM,CAACI,YAAY,KAAKL,SAAS,EAAE;MACrCP,mBAAmB,CAACQ,MAAM,CAACI,YAAY,CAAC;MACxCb,mBAAmB,CAACS,MAAM,CAACM,aAAa,IAAI,CAAC,CAAC;IAChD;EACF,CAAC,EAAE,CACDlB,gBAAgB,EAChBC,gBAAgB,EAChBC,KAAK,EACLH,MAAM,CAACW,MAAM,EACbP,mBAAmB,EACnBC,mBAAmB,EACnBC,eAAe,CAChB,CAAC;EAEF,OAAO;IACLC,UAAU;IACVW;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","isQuestionnaireItemAnswered","isAnswerableQuestionnaireItem","QuestionnaireNavigationUtils","validateQuestionnaireItemValue","useNavigationHandlers","currentItem","currentPage","enabledItems","formik","currentItemIndex","currentPageIndex","pages","renderItem","resolveQuestionnaireConstraint","resolveQuestionnaireUnitOptions","setCurrentItemIndex","setCurrentPageIndex","setErrorMessage","handleNext","useCallback","values","linkId","required","type","value","result","hasError","errorMessage","newItemIndex","undefined","newPageIndex","handlePrevious","lastItemIndex"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/hooks/use-navigation-handlers.ts"],"mappings":"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","ignoreList":[]}
@@ -2,13 +2,20 @@
2
2
 
3
3
  import React from "react";
4
4
  import { ConditionUtils } from "../utils/condition-utils.js";
5
- export const useQuestionnaireNavigationState = (currentItem, currentPageIndex, currentItemIndex, enabledItems, pages, values, allEnabledItems) => {
5
+ import { isQuestionnaireItemAnswered } from "../utils/create-answer-from-value.js";
6
+ import { isAnswerableQuestionnaireItem } from "../utils/is-answerable-questionnaire-item.js";
7
+ export const useQuestionnaireNavigationState = (currentItem, currentPageIndex, currentItemIndex, enabledItems, pages, values, allEnabledItems, renderItem) => {
6
8
  return React.useMemo(() => {
7
- const isLastItem = !currentItem || currentPageIndex === pages.length - 1 && currentItemIndex === enabledItems.length - 1;
8
- const currentItemNumber = pages.slice(0, currentPageIndex).reduce((count, page) => count + ConditionUtils.getEnabledItemsForPage(page, values).length, 0) + currentItemIndex + 1;
9
- const showPrevious = currentPageIndex > 0 || currentItemIndex > 0;
10
- const isCurrentItemRequired = currentItem?.required || false;
11
- const isCurrentItemAnswered = values[currentItem?.linkId || ""] !== undefined && (values[currentItem?.linkId || ""] !== "" || currentItem?.type === "boolean");
9
+ const previousItemCount = pages.slice(0, currentPageIndex).reduce((count, page) => count + ConditionUtils.getEnabledItemsForPage(page, values).length, 0);
10
+ const hasLaterEnabledPage = pages.slice(currentPageIndex + 1).some(page => ConditionUtils.getEnabledItemsForPage(page, values).length > 0);
11
+ const hasPreviousEnabledPage = pages.slice(0, currentPageIndex).some(page => ConditionUtils.getEnabledItemsForPage(page, values).length > 0);
12
+ const hasLaterItemOnCurrentPage = enabledItems.length > 0 && currentItemIndex < enabledItems.length - 1;
13
+ const isLastItem = !hasLaterItemOnCurrentPage && !hasLaterEnabledPage;
14
+ const currentItemNumber = previousItemCount + (currentItem ? currentItemIndex + 1 : 0);
15
+ const showPrevious = enabledItems.length > 0 && currentItemIndex > 0 || hasPreviousEnabledPage;
16
+ const isCurrentItemRequired = Boolean(currentItem?.required && (isAnswerableQuestionnaireItem(currentItem) || !!renderItem && currentItem.type !== "group" && currentItem.type !== "display"));
17
+ const currentValue = values[currentItem?.linkId || ""];
18
+ const isCurrentItemAnswered = currentItem ? isQuestionnaireItemAnswered(currentValue, currentItem) : false;
12
19
  return {
13
20
  isLastItem,
14
21
  isCurrentItemRequired,
@@ -17,6 +24,6 @@ export const useQuestionnaireNavigationState = (currentItem, currentPageIndex, c
17
24
  totalItems: allEnabledItems.length,
18
25
  showPrevious
19
26
  };
20
- }, [currentItem, currentPageIndex, currentItemIndex, enabledItems.length, pages, values, allEnabledItems.length]);
27
+ }, [currentItem, currentPageIndex, currentItemIndex, enabledItems.length, pages, values, allEnabledItems.length, renderItem]);
21
28
  };
22
29
  //# sourceMappingURL=use-questionnaire-navigation-state.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","ConditionUtils","useQuestionnaireNavigationState","currentItem","currentPageIndex","currentItemIndex","enabledItems","pages","values","allEnabledItems","useMemo","isLastItem","length","currentItemNumber","slice","reduce","count","page","getEnabledItemsForPage","showPrevious","isCurrentItemRequired","required","isCurrentItemAnswered","linkId","undefined","type","totalItems"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.ts"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAKzB,SAASC,cAAc,QAAQ,6BAA0B;AAWzD,OAAO,MAAMC,+BAA+B,GAAGA,CAC7CC,WAAkD,EAClDC,gBAAwB,EACxBC,gBAAwB,EACxBC,YAAyC,EACzCC,KAAkC,EAClCC,MAA+B,EAC/BC,eAA4C,KACxB;EACpB,OAAOT,KAAK,CAACU,OAAO,CAAC,MAAM;IACzB,MAAMC,UAAU,GACd,CAACR,WAAW,IACXC,gBAAgB,KAAKG,KAAK,CAACK,MAAM,GAAG,CAAC,IACpCP,gBAAgB,KAAKC,YAAY,CAACM,MAAM,GAAG,CAAE;IAEjD,MAAMC,iBAAiB,GACrBN,KAAK,CACFO,KAAK,CAAC,CAAC,EAAEV,gBAAgB,CAAC,CAC1BW,MAAM,CACL,CAACC,KAAK,EAAEC,IAAI,KACVD,KAAK,GACLf,cAAc,CAACiB,sBAAsB,CACnCD,IAAI,EACJT,MACF,CAAC,CAACI,MAAM,EACV,CACF,CAAC,GACHP,gBAAgB,GAChB,CAAC;IAEH,MAAMc,YAAY,GAAGf,gBAAgB,GAAG,CAAC,IAAIC,gBAAgB,GAAG,CAAC;IAEjE,MAAMe,qBAAqB,GAAGjB,WAAW,EAAEkB,QAAQ,IAAI,KAAK;IAE5D,MAAMC,qBAAqB,GACzBd,MAAM,CAACL,WAAW,EAAEoB,MAAM,IAAI,EAAE,CAAC,KAAKC,SAAS,KAC9ChB,MAAM,CAACL,WAAW,EAAEoB,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE,IACvCpB,WAAW,EAAEsB,IAAI,KAAK,SAAS,CAAC;IAEpC,OAAO;MACLd,UAAU;MACVS,qBAAqB;MACrBE,qBAAqB;MACrBT,iBAAiB;MACjBa,UAAU,EAAEjB,eAAe,CAACG,MAAM;MAClCO;IACF,CAAC;EACH,CAAC,EAAE,CACDhB,WAAW,EACXC,gBAAgB,EAChBC,gBAAgB,EAChBC,YAAY,CAACM,MAAM,EACnBL,KAAK,EACLC,MAAM,EACNC,eAAe,CAACG,MAAM,CACvB,CAAC;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","ConditionUtils","isQuestionnaireItemAnswered","isAnswerableQuestionnaireItem","useQuestionnaireNavigationState","currentItem","currentPageIndex","currentItemIndex","enabledItems","pages","values","allEnabledItems","renderItem","useMemo","previousItemCount","slice","reduce","count","page","getEnabledItemsForPage","length","hasLaterEnabledPage","some","hasPreviousEnabledPage","hasLaterItemOnCurrentPage","isLastItem","currentItemNumber","showPrevious","isCurrentItemRequired","Boolean","required","type","currentValue","linkId","isCurrentItemAnswered","totalItems"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.ts"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAMzB,SAASC,cAAc,QAAQ,6BAA0B;AACzD,SAASC,2BAA2B,QAAQ,sCAAmC;AAC/E,SAASC,6BAA6B,QAAQ,8CAA2C;AAWzF,OAAO,MAAMC,+BAA+B,GAAGA,CAC7CC,WAAkD,EAClDC,gBAAwB,EACxBC,gBAAwB,EACxBC,YAAyC,EACzCC,KAAkC,EAClCC,MAA+B,EAC/BC,eAA4C,EAC5CC,UAAsC,KAClB;EACpB,OAAOZ,KAAK,CAACa,OAAO,CAAC,MAAM;IACzB,MAAMC,iBAAiB,GAAGL,KAAK,CAC5BM,KAAK,CAAC,CAAC,EAAET,gBAAgB,CAAC,CAC1BU,MAAM,CACL,CAACC,KAAK,EAAEC,IAAI,KACVD,KAAK,GACLhB,cAAc,CAACkB,sBAAsB,CAACD,IAAI,EAAER,MAAwB,CAAC,CAClEU,MAAM,EACX,CACF,CAAC;IAEH,MAAMC,mBAAmB,GAAGZ,KAAK,CAC9BM,KAAK,CAACT,gBAAgB,GAAG,CAAC,CAAC,CAC3BgB,IAAI,CACFJ,IAAI,IACHjB,cAAc,CAACkB,sBAAsB,CAACD,IAAI,EAAER,MAAwB,CAAC,CAClEU,MAAM,GAAG,CAChB,CAAC;IAEH,MAAMG,sBAAsB,GAAGd,KAAK,CACjCM,KAAK,CAAC,CAAC,EAAET,gBAAgB,CAAC,CAC1BgB,IAAI,CACFJ,IAAI,IACHjB,cAAc,CAACkB,sBAAsB,CAACD,IAAI,EAAER,MAAwB,CAAC,CAClEU,MAAM,GAAG,CAChB,CAAC;IAEH,MAAMI,yBAAyB,GAC7BhB,YAAY,CAACY,MAAM,GAAG,CAAC,IAAIb,gBAAgB,GAAGC,YAAY,CAACY,MAAM,GAAG,CAAC;IAEvE,MAAMK,UAAU,GAAG,CAACD,yBAAyB,IAAI,CAACH,mBAAmB;IAErE,MAAMK,iBAAiB,GACrBZ,iBAAiB,IAAIT,WAAW,GAAGE,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9D,MAAMoB,YAAY,GACfnB,YAAY,CAACY,MAAM,GAAG,CAAC,IAAIb,gBAAgB,GAAG,CAAC,IAChDgB,sBAAsB;IAExB,MAAMK,qBAAqB,GAAGC,OAAO,CACnCxB,WAAW,EAAEyB,QAAQ,KAClB3B,6BAA6B,CAACE,WAAW,CAAC,IACxC,CAAC,CAACO,UAAU,IACXP,WAAW,CAAC0B,IAAI,KAAK,OAAO,IAC5B1B,WAAW,CAAC0B,IAAI,KAAK,SAAU,CACvC,CAAC;IAED,MAAMC,YAAY,GAAGtB,MAAM,CAACL,WAAW,EAAE4B,MAAM,IAAI,EAAE,CAAC;IAEtD,MAAMC,qBAAqB,GAAG7B,WAAW,GACrCH,2BAA2B,CAAC8B,YAAY,EAAE3B,WAAW,CAAC,GACtD,KAAK;IAET,OAAO;MACLoB,UAAU;MACVG,qBAAqB;MACrBM,qBAAqB;MACrBR,iBAAiB;MACjBS,UAAU,EAAExB,eAAe,CAACS,MAAM;MAClCO;IACF,CAAC;EACH,CAAC,EAAE,CACDtB,WAAW,EACXC,gBAAgB,EAChBC,gBAAgB,EAChBC,YAAY,CAACY,MAAM,EACnBX,KAAK,EACLC,MAAM,EACNC,eAAe,CAACS,MAAM,EACtBR,UAAU,CACX,CAAC;AACJ,CAAC","ignoreList":[]}
@@ -10,5 +10,7 @@ export { useNavigationHandlers } from "./hooks/use-navigation-handlers.js";
10
10
  export { useInitialSelectedValues } from "./hooks/use-initial-selected-values.js";
11
11
  export { QuestionnaireFormContext } from "./contexts/questionnaire-form-context.js";
12
12
  export { QuestionnaireNavigationContext } from "./contexts/questionnaire-navigation-context.js";
13
+ export { getQuestionnaireAnswerPickerOptions, getQuestionnaireNumericPickerOptions } from "./utils/questionnaire-picker-options.js";
14
+ export { getQuestionnaireItemConstraints } from "./utils/questionnaire-item-constraints.js";
13
15
  export { QuestionnaireSubmitUtils } from "./utils/questionnaire-submit-utils.js";
14
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["QuestionnaireForm","QuestionnaireFormProvider","QuestionnaireNavigationProvider","useQuestionnaireForm","useQuestionnaireNavigation","useQuestionnaireNavigationState","useNavigationHandlers","useInitialSelectedValues","QuestionnaireFormContext","QuestionnaireNavigationContext","QuestionnaireSubmitUtils"],"sourceRoot":"../../../../src","sources":["modules/questionnaire-response-form/index.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,oCAAiC;AACnE,SAASC,yBAAyB,QAAQ,6CAA0C;AACpF,SAASC,+BAA+B,QAAQ,mDAAgD;AAEhG,SAASC,oBAAoB,QAAQ,mCAAgC;AACrE,SAASC,0BAA0B,QAAQ,yCAAsC;AACjF,SAASC,+BAA+B,QAAQ,+CAA4C;AAC5F,SAASC,qBAAqB,QAAQ,oCAAiC;AACvE,SAASC,wBAAwB,QAAQ,wCAAqC;AAE9E,SAASC,wBAAwB,QAAQ,0CAAuC;AAChF,SAASC,8BAA8B,QAAQ,gDAA6C;AAY5F,SAASC,wBAAwB,QAAQ,uCAAoC","ignoreList":[]}
1
+ {"version":3,"names":["QuestionnaireForm","QuestionnaireFormProvider","QuestionnaireNavigationProvider","useQuestionnaireForm","useQuestionnaireNavigation","useQuestionnaireNavigationState","useNavigationHandlers","useInitialSelectedValues","QuestionnaireFormContext","QuestionnaireNavigationContext","getQuestionnaireAnswerPickerOptions","getQuestionnaireNumericPickerOptions","getQuestionnaireItemConstraints","QuestionnaireSubmitUtils"],"sourceRoot":"../../../../src","sources":["modules/questionnaire-response-form/index.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,oCAAiC;AACnE,SAASC,yBAAyB,QAAQ,6CAA0C;AACpF,SAASC,+BAA+B,QAAQ,mDAAgD;AAEhG,SAASC,oBAAoB,QAAQ,mCAAgC;AACrE,SAASC,0BAA0B,QAAQ,yCAAsC;AACjF,SAASC,+BAA+B,QAAQ,+CAA4C;AAC5F,SAASC,qBAAqB,QAAQ,oCAAiC;AACvE,SAASC,wBAAwB,QAAQ,wCAAqC;AAE9E,SAASC,wBAAwB,QAAQ,0CAAuC;AAChF,SAASC,8BAA8B,QAAQ,gDAA6C;AAkB5F,SACEC,mCAAmC,EACnCC,oCAAoC,QAG/B,yCAAsC;AAC7C,SACEC,+BAA+B,QAI1B,2CAAwC;AAE/C,SAASC,wBAAwB,QAAQ,uCAAoC","ignoreList":[]}
@@ -1,2 +1,4 @@
1
1
  "use strict";
2
+
3
+ export {};
2
4
  //# sourceMappingURL=questionnaire-form-values.js.map
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=questionnaire-item-render-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/types/questionnaire-item-render-props.ts"],"mappings":"","ignoreList":[]}
@@ -1,2 +1,4 @@
1
1
  "use strict";
2
+
3
+ export {};
2
4
  //# sourceMappingURL=response-values.js.map
@@ -1,23 +1,44 @@
1
1
  "use strict";
2
2
 
3
3
  import { checkBooleanCondition, checkStringCondition, checkDecimalCondition, checkDateCondition } from "./conditions/index.js";
4
+ import { checkCodingCondition, checkQuantityCondition, checkReferenceCondition, checkTimeCondition, getComparableResponse } from "./conditions/fhir-condition.js";
4
5
  const isConditionSatisfied = (condition, responses) => {
5
6
  const questionId = condition.question;
6
7
  const response = responses[questionId];
8
+ if (condition.operator === "exists") {
9
+ const answerExists = response !== undefined && response !== null && response !== "";
10
+ return answerExists === condition.answerBoolean;
11
+ }
7
12
  if (response === undefined || response === null) {
8
13
  return false;
9
14
  }
15
+ const comparableResponse = getComparableResponse(response);
10
16
  if (condition.answerBoolean !== undefined) {
11
- return checkBooleanCondition(condition, response);
17
+ return checkBooleanCondition(condition, comparableResponse);
12
18
  }
13
19
  if (condition.answerString !== undefined) {
14
- return checkStringCondition(condition, response);
20
+ return checkStringCondition(condition, comparableResponse);
15
21
  }
16
- if (condition.answerDecimal !== undefined) {
17
- return checkDecimalCondition(condition, response);
22
+ if (condition.answerDecimal !== undefined || condition.answerInteger !== undefined) {
23
+ return checkDecimalCondition({
24
+ ...condition,
25
+ answerDecimal: condition.answerDecimal ?? condition.answerInteger
26
+ }, comparableResponse);
18
27
  }
19
28
  if (condition.answerDate !== undefined || condition.answerDateTime !== undefined) {
20
- return checkDateCondition(condition, response);
29
+ return checkDateCondition(condition, comparableResponse);
30
+ }
31
+ if (condition.answerTime !== undefined) {
32
+ return checkTimeCondition(condition, comparableResponse);
33
+ }
34
+ if (condition.answerCoding !== undefined) {
35
+ return checkCodingCondition(condition, comparableResponse);
36
+ }
37
+ if (condition.answerQuantity !== undefined) {
38
+ return checkQuantityCondition(condition, comparableResponse);
39
+ }
40
+ if (condition.answerReference !== undefined) {
41
+ return checkReferenceCondition(condition, comparableResponse);
21
42
  }
22
43
  return false;
23
44
  };
@@ -37,7 +58,17 @@ const getEnabledItemsForPage = (page, responses) => {
37
58
  if (!page.item) {
38
59
  return [];
39
60
  }
40
- return page.item.filter(item => isItemEnabled(item, responses));
61
+ if (!page._isSyntheticPage && !isItemEnabled(page, responses)) {
62
+ return [];
63
+ }
64
+ const getEnabledDescendants = items => items.flatMap(item => {
65
+ if (!isItemEnabled(item, responses)) {
66
+ return [];
67
+ }
68
+ const descendants = getEnabledDescendants(item.item ?? []);
69
+ return item.type === "group" ? descendants : [item, ...descendants];
70
+ });
71
+ return getEnabledDescendants(page.item);
41
72
  };
42
73
  export const ConditionUtils = {
43
74
  isConditionSatisfied,
@@ -1 +1 @@
1
- {"version":3,"names":["checkBooleanCondition","checkStringCondition","checkDecimalCondition","checkDateCondition","isConditionSatisfied","condition","responses","questionId","question","response","undefined","answerBoolean","answerString","answerDecimal","answerDate","answerDateTime","isItemEnabled","item","enableWhen","length","enableBehavior","every","some","getEnabledItemsForPage","page","filter","ConditionUtils"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/utils/condition-utils.ts"],"mappings":";;AAQA,SACEA,qBAAqB,EACrBC,oBAAoB,EACpBC,qBAAqB,EACrBC,kBAAkB,QACb,uBAAc;AAErB,MAAMC,oBAAoB,GAAGA,CAC3BC,SAAsC,EACtCC,SAAyB,KACb;EACZ,MAAMC,UAAU,GAAGF,SAAS,CAACG,QAAQ;EACrC,MAAMC,QAAQ,GAAGH,SAAS,CAACC,UAAU,CAAC;EAEtC,IAAIE,QAAQ,KAAKC,SAAS,IAAID,QAAQ,KAAK,IAAI,EAAE;IAC/C,OAAO,KAAK;EACd;EAEA,IAAIJ,SAAS,CAACM,aAAa,KAAKD,SAAS,EAAE;IACzC,OAAOV,qBAAqB,CAACK,SAAS,EAAEI,QAAQ,CAAC;EACnD;EAEA,IAAIJ,SAAS,CAACO,YAAY,KAAKF,SAAS,EAAE;IACxC,OAAOT,oBAAoB,CAACI,SAAS,EAAEI,QAAQ,CAAC;EAClD;EAEA,IAAIJ,SAAS,CAACQ,aAAa,KAAKH,SAAS,EAAE;IACzC,OAAOR,qBAAqB,CAACG,SAAS,EAAEI,QAAQ,CAAC;EACnD;EAEA,IACEJ,SAAS,CAACS,UAAU,KAAKJ,SAAS,IAClCL,SAAS,CAACU,cAAc,KAAKL,SAAS,EACtC;IACA,OAAOP,kBAAkB,CAACE,SAAS,EAAEI,QAAQ,CAAC;EAChD;EAEA,OAAO,KAAK;AACd,CAAC;AAED,MAAMO,aAAa,GAAGA,CACpBC,IAAuB,EACvBX,SAAyB,KACb;EACZ,IAAI,CAACW,IAAI,CAACC,UAAU,IAAID,IAAI,CAACC,UAAU,CAACC,MAAM,KAAK,CAAC,EAAE;IACpD,OAAO,IAAI;EACb;EAEA,MAAMC,cAAc,GAAGH,IAAI,CAACG,cAAc,IAAI,KAAK;EAEnD,IAAIA,cAAc,KAAK,KAAK,EAAE;IAC5B,OAAOH,IAAI,CAACC,UAAU,CAACG,KAAK,CAAEhB,SAAS,IACrCD,oBAAoB,CAACC,SAAS,EAAEC,SAAS,CAC3C,CAAC;EACH,CAAC,MAAM,IAAIc,cAAc,KAAK,KAAK,EAAE;IACnC,OAAOH,IAAI,CAACC,UAAU,CAACI,IAAI,CAAEjB,SAAS,IACpCD,oBAAoB,CAACC,SAAS,EAAEC,SAAS,CAC3C,CAAC;EACH;EAEA,OAAO,IAAI;AACb,CAAC;AAED,MAAMiB,sBAAsB,GAAGA,CAC7BC,IAA+B,EAC/BlB,SAAyB,KACO;EAChC,IAAI,CAACkB,IAAI,CAACP,IAAI,EAAE;IACd,OAAO,EAAE;EACX;EAEA,OAAOO,IAAI,CAACP,IAAI,CAACQ,MAAM,CAAER,IAAI,IAC3BD,aAAa,CAACC,IAAI,EAAEX,SAAS,CAC/B,CAAC;AACH,CAAC;AAED,OAAO,MAAMoB,cAAc,GAAG;EAC5BtB,oBAAoB;EACpBY,aAAa;EACbO;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["checkBooleanCondition","checkStringCondition","checkDecimalCondition","checkDateCondition","checkCodingCondition","checkQuantityCondition","checkReferenceCondition","checkTimeCondition","getComparableResponse","isConditionSatisfied","condition","responses","questionId","question","response","operator","answerExists","undefined","answerBoolean","comparableResponse","answerString","answerDecimal","answerInteger","answerDate","answerDateTime","answerTime","answerCoding","answerQuantity","answerReference","isItemEnabled","item","enableWhen","length","enableBehavior","every","some","getEnabledItemsForPage","page","_isSyntheticPage","getEnabledDescendants","items","flatMap","descendants","type","ConditionUtils"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/utils/condition-utils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ const getComparableResponse = value => {
4
+ if (!value || typeof value !== "object") {
5
+ return value;
6
+ }
7
+ if ("valueBoolean" in value) {
8
+ return value.valueBoolean;
9
+ }
10
+ if ("valueString" in value) {
11
+ return value.valueString;
12
+ }
13
+ if ("valueDecimal" in value) {
14
+ return value.valueDecimal;
15
+ }
16
+ if ("valueInteger" in value) {
17
+ return value.valueInteger;
18
+ }
19
+ if ("valueDate" in value) {
20
+ return value.valueDate;
21
+ }
22
+ if ("valueDateTime" in value) {
23
+ return value.valueDateTime;
24
+ }
25
+ if ("valueTime" in value) {
26
+ return value.valueTime;
27
+ }
28
+ if ("valueUri" in value) {
29
+ return value.valueUri;
30
+ }
31
+ if ("valueQuantity" in value) {
32
+ return value.valueQuantity;
33
+ }
34
+ if ("valueReference" in value) {
35
+ return value.valueReference;
36
+ }
37
+ return value;
38
+ };
39
+ const checkTimeCondition = (condition, response) => {
40
+ const actualSeconds = parseTime(response);
41
+ const expectedSeconds = parseTime(condition.answerTime);
42
+ if (actualSeconds === undefined || expectedSeconds === undefined) {
43
+ return false;
44
+ }
45
+ switch (condition.operator) {
46
+ case "=":
47
+ return actualSeconds === expectedSeconds;
48
+ case "!=":
49
+ return actualSeconds !== expectedSeconds;
50
+ case "<":
51
+ return actualSeconds < expectedSeconds;
52
+ case "<=":
53
+ return actualSeconds <= expectedSeconds;
54
+ case ">":
55
+ return actualSeconds > expectedSeconds;
56
+ case ">=":
57
+ return actualSeconds >= expectedSeconds;
58
+ default:
59
+ return false;
60
+ }
61
+ };
62
+ const parseTime = value => {
63
+ if (typeof value !== "string") {
64
+ return undefined;
65
+ }
66
+ const match = /^(\d{2}):(\d{2})(?::(\d{2})(\.\d+)?)?$/.exec(value);
67
+ if (!match) {
68
+ return undefined;
69
+ }
70
+ const [, hours, minutes, seconds = "0", fraction = ""] = match;
71
+ const parsedHours = Number(hours);
72
+ const parsedMinutes = Number(minutes);
73
+ const parsedSeconds = Number(seconds);
74
+ if (parsedHours > 23 || parsedMinutes > 59 || parsedSeconds > 59) {
75
+ return undefined;
76
+ }
77
+ return parsedHours * 3600 + parsedMinutes * 60 + parsedSeconds + (fraction ? Number(fraction) : 0);
78
+ };
79
+ const checkCodingCondition = (condition, response) => {
80
+ const actual = getCoding(response);
81
+ const expected = condition.answerCoding;
82
+ const matches = actual !== undefined && expected !== undefined && actual.code === expected.code && (actual.system === undefined || expected.system === undefined || actual.system === expected.system);
83
+ return condition.operator === "!=" ? !matches : matches;
84
+ };
85
+ const getCoding = value => {
86
+ if (!value || typeof value !== "object") {
87
+ return typeof value === "string" ? {
88
+ code: value
89
+ } : undefined;
90
+ }
91
+ if ("valueCoding" in value) {
92
+ return value.valueCoding;
93
+ }
94
+ if ("code" in value) {
95
+ return value;
96
+ }
97
+ return undefined;
98
+ };
99
+ const checkQuantityCondition = (condition, response) => {
100
+ const actual = getQuantity(response);
101
+ const expected = condition.answerQuantity;
102
+ if (!actual || !expected || actual.value === undefined || expected.value === undefined || actual.code !== expected.code || actual.system !== expected.system || actual.unit !== expected.unit) {
103
+ return false;
104
+ }
105
+ switch (condition.operator) {
106
+ case "=":
107
+ return actual.value === expected.value;
108
+ case "!=":
109
+ return actual.value !== expected.value;
110
+ case "<":
111
+ return actual.value < expected.value;
112
+ case "<=":
113
+ return actual.value <= expected.value;
114
+ case ">":
115
+ return actual.value > expected.value;
116
+ case ">=":
117
+ return actual.value >= expected.value;
118
+ default:
119
+ return false;
120
+ }
121
+ };
122
+ const getQuantity = value => {
123
+ if (!value || typeof value !== "object" || !("value" in value)) {
124
+ return undefined;
125
+ }
126
+ return value;
127
+ };
128
+ const checkReferenceCondition = (condition, response) => {
129
+ const actual = getReference(response);
130
+ const matches = actual !== undefined && actual === condition.answerReference?.reference;
131
+ return condition.operator === "!=" ? !matches : matches;
132
+ };
133
+ const getReference = value => {
134
+ if (!value || typeof value !== "object" || !("reference" in value)) {
135
+ return undefined;
136
+ }
137
+ return typeof value.reference === "string" ? value.reference : undefined;
138
+ };
139
+ export { checkCodingCondition, checkQuantityCondition, checkReferenceCondition, checkTimeCondition, getComparableResponse };
140
+ //# sourceMappingURL=fhir-condition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getComparableResponse","value","valueBoolean","valueString","valueDecimal","valueInteger","valueDate","valueDateTime","valueTime","valueUri","valueQuantity","valueReference","checkTimeCondition","condition","response","actualSeconds","parseTime","expectedSeconds","answerTime","undefined","operator","match","exec","hours","minutes","seconds","fraction","parsedHours","Number","parsedMinutes","parsedSeconds","checkCodingCondition","actual","getCoding","expected","answerCoding","matches","code","system","valueCoding","checkQuantityCondition","getQuantity","answerQuantity","unit","checkReferenceCondition","getReference","answerReference","reference"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/utils/conditions/fhir-condition.ts"],"mappings":";;AAIA,MAAMA,qBAAqB,GAAIC,KAA6B,IAAc;EACxE,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACvC,OAAOA,KAAK;EACd;EAEA,IAAI,cAAc,IAAIA,KAAK,EAAE;IAC3B,OAAOA,KAAK,CAACC,YAAY;EAC3B;EACA,IAAI,aAAa,IAAID,KAAK,EAAE;IAC1B,OAAOA,KAAK,CAACE,WAAW;EAC1B;EACA,IAAI,cAAc,IAAIF,KAAK,EAAE;IAC3B,OAAOA,KAAK,CAACG,YAAY;EAC3B;EACA,IAAI,cAAc,IAAIH,KAAK,EAAE;IAC3B,OAAOA,KAAK,CAACI,YAAY;EAC3B;EACA,IAAI,WAAW,IAAIJ,KAAK,EAAE;IACxB,OAAOA,KAAK,CAACK,SAAS;EACxB;EACA,IAAI,eAAe,IAAIL,KAAK,EAAE;IAC5B,OAAOA,KAAK,CAACM,aAAa;EAC5B;EACA,IAAI,WAAW,IAAIN,KAAK,EAAE;IACxB,OAAOA,KAAK,CAACO,SAAS;EACxB;EACA,IAAI,UAAU,IAAIP,KAAK,EAAE;IACvB,OAAOA,KAAK,CAACQ,QAAQ;EACvB;EACA,IAAI,eAAe,IAAIR,KAAK,EAAE;IAC5B,OAAOA,KAAK,CAACS,aAAa;EAC5B;EACA,IAAI,gBAAgB,IAAIT,KAAK,EAAE;IAC7B,OAAOA,KAAK,CAACU,cAAc;EAC7B;EAEA,OAAOV,KAAK;AACd,CAAC;AAED,MAAMW,kBAAkB,GAAGA,CACzBC,SAAsC,EACtCC,QAAiB,KACL;EACZ,MAAMC,aAAa,GAAGC,SAAS,CAACF,QAAQ,CAAC;EACzC,MAAMG,eAAe,GAAGD,SAAS,CAACH,SAAS,CAACK,UAAU,CAAC;EAEvD,IAAIH,aAAa,KAAKI,SAAS,IAAIF,eAAe,KAAKE,SAAS,EAAE;IAChE,OAAO,KAAK;EACd;EAEA,QAAQN,SAAS,CAACO,QAAQ;IACxB,KAAK,GAAG;MACN,OAAOL,aAAa,KAAKE,eAAe;IAC1C,KAAK,IAAI;MACP,OAAOF,aAAa,KAAKE,eAAe;IAC1C,KAAK,GAAG;MACN,OAAOF,aAAa,GAAGE,eAAe;IACxC,KAAK,IAAI;MACP,OAAOF,aAAa,IAAIE,eAAe;IACzC,KAAK,GAAG;MACN,OAAOF,aAAa,GAAGE,eAAe;IACxC,KAAK,IAAI;MACP,OAAOF,aAAa,IAAIE,eAAe;IACzC;MACE,OAAO,KAAK;EAChB;AACF,CAAC;AAED,MAAMD,SAAS,GAAIf,KAAc,IAAyB;EACxD,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOkB,SAAS;EAClB;EAEA,MAAME,KAAK,GAAG,wCAAwC,CAACC,IAAI,CAACrB,KAAK,CAAC;EAElE,IAAI,CAACoB,KAAK,EAAE;IACV,OAAOF,SAAS;EAClB;EAEA,MAAM,GAAGI,KAAK,EAAEC,OAAO,EAAEC,OAAO,GAAG,GAAG,EAAEC,QAAQ,GAAG,EAAE,CAAC,GAAGL,KAAK;EAC9D,MAAMM,WAAW,GAAGC,MAAM,CAACL,KAAK,CAAC;EACjC,MAAMM,aAAa,GAAGD,MAAM,CAACJ,OAAO,CAAC;EACrC,MAAMM,aAAa,GAAGF,MAAM,CAACH,OAAO,CAAC;EAErC,IAAIE,WAAW,GAAG,EAAE,IAAIE,aAAa,GAAG,EAAE,IAAIC,aAAa,GAAG,EAAE,EAAE;IAChE,OAAOX,SAAS;EAClB;EAEA,OACEQ,WAAW,GAAG,IAAI,GAClBE,aAAa,GAAG,EAAE,GAClBC,aAAa,IACZJ,QAAQ,GAAGE,MAAM,CAACF,QAAQ,CAAC,GAAG,CAAC,CAAC;AAErC,CAAC;AAED,MAAMK,oBAAoB,GAAGA,CAC3BlB,SAAsC,EACtCC,QAAiB,KACL;EACZ,MAAMkB,MAAM,GAAGC,SAAS,CAACnB,QAAQ,CAAC;EAClC,MAAMoB,QAAQ,GAAGrB,SAAS,CAACsB,YAAY;EAEvC,MAAMC,OAAO,GACXJ,MAAM,KAAKb,SAAS,IACpBe,QAAQ,KAAKf,SAAS,IACtBa,MAAM,CAACK,IAAI,KAAKH,QAAQ,CAACG,IAAI,KAC5BL,MAAM,CAACM,MAAM,KAAKnB,SAAS,IAC1Be,QAAQ,CAACI,MAAM,KAAKnB,SAAS,IAC7Ba,MAAM,CAACM,MAAM,KAAKJ,QAAQ,CAACI,MAAM,CAAC;EAEtC,OAAOzB,SAAS,CAACO,QAAQ,KAAK,IAAI,GAAG,CAACgB,OAAO,GAAGA,OAAO;AACzD,CAAC;AAED,MAAMH,SAAS,GACbhC,KAAc,IACqC;EACnD,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACvC,OAAO,OAAOA,KAAK,KAAK,QAAQ,GAAG;MAAEoC,IAAI,EAAEpC;IAAM,CAAC,GAAGkB,SAAS;EAChE;EAEA,IAAI,aAAa,IAAIlB,KAAK,EAAE;IAC1B,OAAOA,KAAK,CAACsC,WAAW;EAC1B;EAEA,IAAI,MAAM,IAAItC,KAAK,EAAE;IACnB,OAAOA,KAAK;EACd;EAEA,OAAOkB,SAAS;AAClB,CAAC;AAED,MAAMqB,sBAAsB,GAAGA,CAC7B3B,SAAsC,EACtCC,QAAiB,KACL;EACZ,MAAMkB,MAAM,GAAGS,WAAW,CAAC3B,QAAQ,CAAC;EACpC,MAAMoB,QAAQ,GAAGrB,SAAS,CAAC6B,cAAc;EAEzC,IACE,CAACV,MAAM,IACP,CAACE,QAAQ,IACTF,MAAM,CAAC/B,KAAK,KAAKkB,SAAS,IAC1Be,QAAQ,CAACjC,KAAK,KAAKkB,SAAS,IAC5Ba,MAAM,CAACK,IAAI,KAAKH,QAAQ,CAACG,IAAI,IAC7BL,MAAM,CAACM,MAAM,KAAKJ,QAAQ,CAACI,MAAM,IACjCN,MAAM,CAACW,IAAI,KAAKT,QAAQ,CAACS,IAAI,EAC7B;IACA,OAAO,KAAK;EACd;EAEA,QAAQ9B,SAAS,CAACO,QAAQ;IACxB,KAAK,GAAG;MACN,OAAOY,MAAM,CAAC/B,KAAK,KAAKiC,QAAQ,CAACjC,KAAK;IACxC,KAAK,IAAI;MACP,OAAO+B,MAAM,CAAC/B,KAAK,KAAKiC,QAAQ,CAACjC,KAAK;IACxC,KAAK,GAAG;MACN,OAAO+B,MAAM,CAAC/B,KAAK,GAAGiC,QAAQ,CAACjC,KAAK;IACtC,KAAK,IAAI;MACP,OAAO+B,MAAM,CAAC/B,KAAK,IAAIiC,QAAQ,CAACjC,KAAK;IACvC,KAAK,GAAG;MACN,OAAO+B,MAAM,CAAC/B,KAAK,GAAGiC,QAAQ,CAACjC,KAAK;IACtC,KAAK,IAAI;MACP,OAAO+B,MAAM,CAAC/B,KAAK,IAAIiC,QAAQ,CAACjC,KAAK;IACvC;MACE,OAAO,KAAK;EAChB;AACF,CAAC;AAED,MAAMwC,WAAW,GACfxC,KAAc,IACgD;EAC9D,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,EAAE,OAAO,IAAIA,KAAK,CAAC,EAAE;IAC9D,OAAOkB,SAAS;EAClB;EAEA,OAAOlB,KAAK;AACd,CAAC;AAED,MAAM2C,uBAAuB,GAAGA,CAC9B/B,SAAsC,EACtCC,QAAiB,KACL;EACZ,MAAMkB,MAAM,GAAGa,YAAY,CAAC/B,QAAQ,CAAC;EAErC,MAAMsB,OAAO,GACXJ,MAAM,KAAKb,SAAS,IAAIa,MAAM,KAAKnB,SAAS,CAACiC,eAAe,EAAEC,SAAS;EAEzE,OAAOlC,SAAS,CAACO,QAAQ,KAAK,IAAI,GAAG,CAACgB,OAAO,GAAGA,OAAO;AACzD,CAAC;AAED,MAAMS,YAAY,GAAI5C,KAAc,IAAyB;EAC3D,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,EAAE,WAAW,IAAIA,KAAK,CAAC,EAAE;IAClE,OAAOkB,SAAS;EAClB;EAEA,OAAO,OAAOlB,KAAK,CAAC8C,SAAS,KAAK,QAAQ,GAAG9C,KAAK,CAAC8C,SAAS,GAAG5B,SAAS;AAC1E,CAAC;AAED,SACEY,oBAAoB,EACpBS,sBAAsB,EACtBI,uBAAuB,EACvBhC,kBAAkB,EAClBZ,qBAAqB","ignoreList":[]}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ import { createTypedAnswer, getAnswerValueKey, validateAnswerForItem } from "./is-valid-questionnaire-answer.js";
4
+ const createNumericAnswer = (value, type) => {
5
+ if (typeof value !== "string" && typeof value !== "number") {
6
+ return undefined;
7
+ }
8
+ const number = typeof value === "number" ? value : Number(value.trim());
9
+ if (!Number.isFinite(number) || type === "integer" && !Number.isInteger(number)) {
10
+ return undefined;
11
+ }
12
+ return number;
13
+ };
14
+ const createChoiceAnswer = (value, item) => {
15
+ if (typeof value === "object" && value !== null) {
16
+ if ("code" in value && item.type === "choice") {
17
+ return {
18
+ valueCoding: value
19
+ };
20
+ }
21
+ if ("reference" in value && item.type === "choice") {
22
+ return {
23
+ valueReference: value
24
+ };
25
+ }
26
+ return undefined;
27
+ }
28
+ if (typeof value !== "string" && typeof value !== "number") {
29
+ return undefined;
30
+ }
31
+ const option = item.answerOption?.find(candidate => candidate.valueCoding?.code === value || candidate.valueReference?.reference === value || candidate.valueInteger === value || candidate.valueDate === value || candidate.valueTime === value || candidate.valueString === value);
32
+ if (option?.valueCoding) {
33
+ return {
34
+ valueCoding: option.valueCoding
35
+ };
36
+ }
37
+ if (option?.valueReference) {
38
+ return {
39
+ valueReference: option.valueReference
40
+ };
41
+ }
42
+ if (option?.valueInteger !== undefined) {
43
+ return {
44
+ valueInteger: option.valueInteger
45
+ };
46
+ }
47
+ if (option?.valueDate !== undefined) {
48
+ return {
49
+ valueDate: option.valueDate
50
+ };
51
+ }
52
+ if (option?.valueTime !== undefined) {
53
+ return {
54
+ valueTime: option.valueTime
55
+ };
56
+ }
57
+ if (option?.valueString !== undefined) {
58
+ return {
59
+ valueString: option.valueString
60
+ };
61
+ }
62
+ if (item.type === "open-choice" && typeof value === "string") {
63
+ return {
64
+ valueString: value
65
+ };
66
+ }
67
+ return typeof value === "string" ? {
68
+ valueCoding: {
69
+ code: value
70
+ }
71
+ } : undefined;
72
+ };
73
+ const createAnswerFromValue = (value, item) => {
74
+ if (value === undefined || value === null || value === "") {
75
+ return undefined;
76
+ }
77
+ if (typeof value === "object") {
78
+ const key = getAnswerValueKey(value);
79
+ if (key) {
80
+ return validateAnswerForItem(value, item.type);
81
+ }
82
+ }
83
+ switch (item.type) {
84
+ case "boolean":
85
+ return createTypedAnswer(item.type, "valueBoolean", value);
86
+ case "date":
87
+ return createTypedAnswer(item.type, "valueDate", value);
88
+ case "dateTime":
89
+ return createTypedAnswer(item.type, "valueDateTime", value);
90
+ case "time":
91
+ return createTypedAnswer(item.type, "valueTime", value);
92
+ case "choice":
93
+ case "open-choice":
94
+ return validateAnswerForItem(createChoiceAnswer(value, item), item.type);
95
+ case "decimal":
96
+ {
97
+ const number = createNumericAnswer(value, "decimal");
98
+ return number === undefined ? undefined : createTypedAnswer(item.type, "valueDecimal", number);
99
+ }
100
+ case "integer":
101
+ {
102
+ const number = createNumericAnswer(value, "integer");
103
+ return number === undefined ? undefined : createTypedAnswer(item.type, "valueInteger", number);
104
+ }
105
+ case "string":
106
+ case "text":
107
+ return createTypedAnswer(item.type, "valueString", value);
108
+ case "url":
109
+ return createTypedAnswer(item.type, "valueUri", value);
110
+ case "attachment":
111
+ return createTypedAnswer(item.type, "valueAttachment", value);
112
+ case "reference":
113
+ return createTypedAnswer(item.type, "valueReference", value);
114
+ case "quantity":
115
+ return createTypedAnswer(item.type, "valueQuantity", value);
116
+ default:
117
+ return undefined;
118
+ }
119
+ };
120
+ const isQuestionnaireItemAnswered = (value, item) => createAnswerFromValue(value, item) !== undefined;
121
+ export { createAnswerFromValue, isQuestionnaireItemAnswered };
122
+ //# sourceMappingURL=create-answer-from-value.js.map