@ovok/native 1.10.2 → 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 (570) hide show
  1. package/README.md +5 -5
  2. package/lib/commonjs/modules/auth/default-translation.js +22 -0
  3. package/lib/commonjs/modules/auth/default-translation.js.map +1 -1
  4. package/lib/commonjs/modules/auth/hooks/use-session.js +3 -0
  5. package/lib/commonjs/modules/auth/hooks/use-session.js.map +1 -1
  6. package/lib/commonjs/modules/auth/profile/components/profile-form-provider.js +3 -6
  7. package/lib/commonjs/modules/auth/profile/components/profile-form-provider.js.map +1 -1
  8. package/lib/commonjs/modules/auth/register/components/form/register-form-provider.js +1 -0
  9. package/lib/commonjs/modules/auth/register/components/form/register-form-provider.js.map +1 -1
  10. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-form-provider.js +4 -3
  11. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-form-provider.js.map +1 -1
  12. package/lib/commonjs/modules/auth/session/logout-session.js +5 -2
  13. package/lib/commonjs/modules/auth/session/logout-session.js.map +1 -1
  14. package/lib/commonjs/modules/auth/session/session-store-refresh.js +125 -0
  15. package/lib/commonjs/modules/auth/session/session-store-refresh.js.map +1 -0
  16. package/lib/commonjs/modules/auth/session/session-store-request-state.js +73 -0
  17. package/lib/commonjs/modules/auth/session/session-store-request-state.js.map +1 -0
  18. package/lib/commonjs/modules/auth/session/session-store-types.js +17 -0
  19. package/lib/commonjs/modules/auth/session/session-store-types.js.map +1 -0
  20. package/lib/commonjs/modules/auth/session/session-store.js +56 -123
  21. package/lib/commonjs/modules/auth/session/session-store.js.map +1 -1
  22. package/lib/commonjs/modules/auth/utils/sign-in-error.js +10 -4
  23. package/lib/commonjs/modules/auth/utils/sign-in-error.js.map +1 -1
  24. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +5 -0
  25. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  26. package/lib/commonjs/modules/bt-management/hooks/declined-device-storage.js +36 -1
  27. package/lib/commonjs/modules/bt-management/hooks/declined-device-storage.js.map +1 -1
  28. package/lib/commonjs/modules/bt-management/hooks/nearby-device-offer-state.js +25 -0
  29. package/lib/commonjs/modules/bt-management/hooks/nearby-device-offer-state.js.map +1 -0
  30. package/lib/commonjs/modules/bt-management/hooks/nearby-device-offer-types.js +6 -0
  31. package/lib/commonjs/modules/bt-management/hooks/nearby-device-offer-types.js.map +1 -0
  32. package/lib/commonjs/modules/bt-management/hooks/use-nearby-device-offer.js +22 -36
  33. package/lib/commonjs/modules/bt-management/hooks/use-nearby-device-offer.js.map +1 -1
  34. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js +11 -0
  35. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  36. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
  37. package/lib/commonjs/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
  38. package/lib/commonjs/modules/data-sync/services/apple-health-sync-service.js.map +1 -1
  39. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js +74 -34
  40. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  41. package/lib/commonjs/modules/data-sync/utils/convert-records-to-observation.js +19 -16
  42. package/lib/commonjs/modules/data-sync/utils/convert-records-to-observation.js.map +1 -1
  43. package/lib/commonjs/modules/data-sync/utils/convert-samples-to-observation.js +17 -4
  44. package/lib/commonjs/modules/data-sync/utils/convert-samples-to-observation.js.map +1 -1
  45. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  46. package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  47. package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js +219 -16
  48. package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js.map +1 -1
  49. package/lib/commonjs/modules/data-sync/utils/health-record-timing.js +52 -0
  50. package/lib/commonjs/modules/data-sync/utils/health-record-timing.js.map +1 -0
  51. package/lib/commonjs/modules/data-sync/utils/health-units.js +1 -0
  52. package/lib/commonjs/modules/data-sync/utils/health-units.js.map +1 -1
  53. package/lib/commonjs/modules/data-sync/utils/healthkit-data-types.js.map +1 -1
  54. package/lib/commonjs/modules/data-sync/utils/normalize-core-health-observation.js +74 -0
  55. package/lib/commonjs/modules/data-sync/utils/normalize-core-health-observation.js.map +1 -0
  56. package/lib/commonjs/modules/picker-sheet/components/value-wheel-picker.js +41 -0
  57. package/lib/commonjs/modules/picker-sheet/components/value-wheel-picker.js.map +1 -0
  58. package/lib/commonjs/modules/picker-sheet/components/wheel-picker.js +56 -15
  59. package/lib/commonjs/modules/picker-sheet/components/wheel-picker.js.map +1 -1
  60. package/lib/commonjs/modules/picker-sheet/index.js +11 -0
  61. package/lib/commonjs/modules/picker-sheet/index.js.map +1 -1
  62. package/lib/commonjs/modules/questionnaire-response-form/README.md +59 -20
  63. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-item.js +8 -0
  64. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-item.js.map +1 -1
  65. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.js +8 -0
  66. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.js.map +1 -1
  67. package/lib/commonjs/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.js +8 -3
  68. package/lib/commonjs/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.js.map +1 -1
  69. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.js +9 -3
  70. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.js.map +1 -1
  71. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js +18 -8
  72. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js.map +1 -1
  73. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.js +41 -2
  74. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.js.map +1 -1
  75. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js +43 -5
  76. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js.map +1 -1
  77. package/lib/commonjs/modules/questionnaire-response-form/components/header/questionnaire-header-title.js +3 -1
  78. package/lib/commonjs/modules/questionnaire-response-form/components/header/questionnaire-header-title.js.map +1 -1
  79. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js +37 -11
  80. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
  81. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form.js +1 -0
  82. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form.js.map +1 -1
  83. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js +9 -3
  84. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js.map +1 -1
  85. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-initial-selected-values.js +5 -3
  86. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-initial-selected-values.js.map +1 -1
  87. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-navigation-handlers.js +15 -4
  88. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-navigation-handlers.js.map +1 -1
  89. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.js +14 -7
  90. package/lib/commonjs/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.js.map +1 -1
  91. package/lib/commonjs/modules/questionnaire-response-form/index.js +20 -0
  92. package/lib/commonjs/modules/questionnaire-response-form/index.js.map +1 -1
  93. package/lib/commonjs/modules/questionnaire-response-form/types/questionnaire-form-values.js +4 -0
  94. package/lib/commonjs/modules/questionnaire-response-form/types/questionnaire-item-render-props.js +6 -0
  95. package/lib/commonjs/modules/questionnaire-response-form/types/questionnaire-item-render-props.js.map +1 -0
  96. package/lib/commonjs/modules/questionnaire-response-form/types/response-values.js +4 -0
  97. package/lib/commonjs/modules/questionnaire-response-form/utils/condition-utils.js +37 -6
  98. package/lib/commonjs/modules/questionnaire-response-form/utils/condition-utils.js.map +1 -1
  99. package/lib/commonjs/modules/questionnaire-response-form/utils/conditions/fhir-condition.js +148 -0
  100. package/lib/commonjs/modules/questionnaire-response-form/utils/conditions/fhir-condition.js.map +1 -0
  101. package/lib/commonjs/modules/questionnaire-response-form/utils/create-answer-from-value.js +127 -0
  102. package/lib/commonjs/modules/questionnaire-response-form/utils/create-answer-from-value.js.map +1 -0
  103. package/lib/commonjs/modules/questionnaire-response-form/utils/fields/get-option-text.js +4 -3
  104. package/lib/commonjs/modules/questionnaire-response-form/utils/fields/get-option-text.js.map +1 -1
  105. package/lib/commonjs/modules/questionnaire-response-form/utils/form-utils.js +71 -64
  106. package/lib/commonjs/modules/questionnaire-response-form/utils/form-utils.js.map +1 -1
  107. package/lib/commonjs/modules/questionnaire-response-form/utils/form-validation.js +23 -5
  108. package/lib/commonjs/modules/questionnaire-response-form/utils/form-validation.js.map +1 -1
  109. package/lib/commonjs/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.js +10 -0
  110. package/lib/commonjs/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.js.map +1 -0
  111. package/lib/commonjs/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.js +83 -0
  112. package/lib/commonjs/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.js.map +1 -0
  113. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-date-utils.js +54 -0
  114. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-date-utils.js.map +1 -0
  115. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-item-constraints.js +75 -0
  116. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-item-constraints.js.map +1 -0
  117. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.js +63 -0
  118. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.js.map +1 -0
  119. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.js +49 -18
  120. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.js.map +1 -1
  121. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-picker-options.js +117 -0
  122. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-picker-options.js.map +1 -0
  123. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.js +109 -0
  124. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.js.map +1 -0
  125. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js +2 -2
  126. package/lib/commonjs/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js.map +1 -1
  127. package/lib/commonjs/modules/questionnaire-response-form/utils/translate-fhir-text.js +36 -0
  128. package/lib/commonjs/modules/questionnaire-response-form/utils/translate-fhir-text.js.map +1 -0
  129. package/lib/commonjs/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.js +49 -0
  130. package/lib/commonjs/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.js.map +1 -0
  131. package/lib/commonjs/modules/ui/components/bluetooth-state-notice.js +31 -15
  132. package/lib/commonjs/modules/ui/components/bluetooth-state-notice.js.map +1 -1
  133. package/lib/commonjs/modules/ui/components/prerequisite-gate.js +73 -0
  134. package/lib/commonjs/modules/ui/components/prerequisite-gate.js.map +1 -0
  135. package/lib/commonjs/modules/ui/default-translation.js +50 -0
  136. package/lib/commonjs/modules/ui/default-translation.js.map +1 -0
  137. package/lib/commonjs/modules/ui/index.js +11 -0
  138. package/lib/commonjs/modules/ui/index.js.map +1 -1
  139. package/lib/commonjs/polyfills/index.js +9 -7
  140. package/lib/commonjs/polyfills/index.js.map +1 -1
  141. package/lib/module/modules/auth/default-translation.js +22 -0
  142. package/lib/module/modules/auth/default-translation.js.map +1 -1
  143. package/lib/module/modules/auth/hooks/use-session.js +3 -0
  144. package/lib/module/modules/auth/hooks/use-session.js.map +1 -1
  145. package/lib/module/modules/auth/profile/components/profile-form-provider.js +3 -6
  146. package/lib/module/modules/auth/profile/components/profile-form-provider.js.map +1 -1
  147. package/lib/module/modules/auth/register/components/form/register-form-provider.js +1 -0
  148. package/lib/module/modules/auth/register/components/form/register-form-provider.js.map +1 -1
  149. package/lib/module/modules/auth/reset-password/components/form/reset-password-form-provider.js +3 -3
  150. package/lib/module/modules/auth/reset-password/components/form/reset-password-form-provider.js.map +1 -1
  151. package/lib/module/modules/auth/session/logout-session.js +5 -2
  152. package/lib/module/modules/auth/session/logout-session.js.map +1 -1
  153. package/lib/module/modules/auth/session/session-store-refresh.js +121 -0
  154. package/lib/module/modules/auth/session/session-store-refresh.js.map +1 -0
  155. package/lib/module/modules/auth/session/session-store-request-state.js +69 -0
  156. package/lib/module/modules/auth/session/session-store-request-state.js.map +1 -0
  157. package/lib/module/modules/auth/session/session-store-types.js +13 -0
  158. package/lib/module/modules/auth/session/session-store-types.js.map +1 -0
  159. package/lib/module/modules/auth/session/session-store.js +56 -123
  160. package/lib/module/modules/auth/session/session-store.js.map +1 -1
  161. package/lib/module/modules/auth/utils/sign-in-error.js +9 -4
  162. package/lib/module/modules/auth/utils/sign-in-error.js.map +1 -1
  163. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +5 -0
  164. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  165. package/lib/module/modules/bt-management/hooks/declined-device-storage.js +33 -1
  166. package/lib/module/modules/bt-management/hooks/declined-device-storage.js.map +1 -1
  167. package/lib/module/modules/bt-management/hooks/nearby-device-offer-state.js +20 -0
  168. package/lib/module/modules/bt-management/hooks/nearby-device-offer-state.js.map +1 -0
  169. package/lib/module/modules/bt-management/hooks/nearby-device-offer-types.js +4 -0
  170. package/lib/module/modules/bt-management/hooks/nearby-device-offer-types.js.map +1 -0
  171. package/lib/module/modules/bt-management/hooks/use-nearby-device-offer.js +21 -35
  172. package/lib/module/modules/bt-management/hooks/use-nearby-device-offer.js.map +1 -1
  173. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js +11 -0
  174. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  175. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
  176. package/lib/module/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
  177. package/lib/module/modules/data-sync/services/apple-health-sync-service.js.map +1 -1
  178. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js +74 -34
  179. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  180. package/lib/module/modules/data-sync/utils/convert-records-to-observation.js +19 -16
  181. package/lib/module/modules/data-sync/utils/convert-records-to-observation.js.map +1 -1
  182. package/lib/module/modules/data-sync/utils/convert-samples-to-observation.js +17 -4
  183. package/lib/module/modules/data-sync/utils/convert-samples-to-observation.js.map +1 -1
  184. package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  185. package/lib/module/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  186. package/lib/module/modules/data-sync/utils/health-data-catalog.js +219 -16
  187. package/lib/module/modules/data-sync/utils/health-data-catalog.js.map +1 -1
  188. package/lib/module/modules/data-sync/utils/health-record-timing.js +47 -0
  189. package/lib/module/modules/data-sync/utils/health-record-timing.js.map +1 -0
  190. package/lib/module/modules/data-sync/utils/health-units.js +1 -0
  191. package/lib/module/modules/data-sync/utils/health-units.js.map +1 -1
  192. package/lib/module/modules/data-sync/utils/healthkit-data-types.js.map +1 -1
  193. package/lib/module/modules/data-sync/utils/normalize-core-health-observation.js +69 -0
  194. package/lib/module/modules/data-sync/utils/normalize-core-health-observation.js.map +1 -0
  195. package/lib/module/modules/picker-sheet/components/value-wheel-picker.js +36 -0
  196. package/lib/module/modules/picker-sheet/components/value-wheel-picker.js.map +1 -0
  197. package/lib/module/modules/picker-sheet/components/wheel-picker.js +56 -15
  198. package/lib/module/modules/picker-sheet/components/wheel-picker.js.map +1 -1
  199. package/lib/module/modules/picker-sheet/index.js +1 -0
  200. package/lib/module/modules/picker-sheet/index.js.map +1 -1
  201. package/lib/module/modules/questionnaire-response-form/README.md +59 -20
  202. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-item.js +8 -0
  203. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-item.js.map +1 -1
  204. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.js +8 -0
  205. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.js.map +1 -1
  206. package/lib/module/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.js +8 -3
  207. package/lib/module/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.js.map +1 -1
  208. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.js +9 -3
  209. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.js.map +1 -1
  210. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js +18 -8
  211. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js.map +1 -1
  212. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.js +42 -3
  213. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.js.map +1 -1
  214. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js +41 -3
  215. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-text-field.js.map +1 -1
  216. package/lib/module/modules/questionnaire-response-form/components/header/questionnaire-header-title.js +3 -1
  217. package/lib/module/modules/questionnaire-response-form/components/header/questionnaire-header-title.js.map +1 -1
  218. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js +37 -11
  219. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
  220. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form.js +1 -0
  221. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form.js.map +1 -1
  222. package/lib/module/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js +9 -3
  223. package/lib/module/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js.map +1 -1
  224. package/lib/module/modules/questionnaire-response-form/hooks/use-initial-selected-values.js +5 -3
  225. package/lib/module/modules/questionnaire-response-form/hooks/use-initial-selected-values.js.map +1 -1
  226. package/lib/module/modules/questionnaire-response-form/hooks/use-navigation-handlers.js +15 -4
  227. package/lib/module/modules/questionnaire-response-form/hooks/use-navigation-handlers.js.map +1 -1
  228. package/lib/module/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.js +14 -7
  229. package/lib/module/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.js.map +1 -1
  230. package/lib/module/modules/questionnaire-response-form/index.js +2 -0
  231. package/lib/module/modules/questionnaire-response-form/index.js.map +1 -1
  232. package/lib/module/modules/questionnaire-response-form/types/questionnaire-form-values.js +2 -0
  233. package/lib/module/modules/questionnaire-response-form/types/questionnaire-item-render-props.js +4 -0
  234. package/lib/module/modules/questionnaire-response-form/types/questionnaire-item-render-props.js.map +1 -0
  235. package/lib/module/modules/questionnaire-response-form/types/response-values.js +2 -0
  236. package/lib/module/modules/questionnaire-response-form/utils/condition-utils.js +37 -6
  237. package/lib/module/modules/questionnaire-response-form/utils/condition-utils.js.map +1 -1
  238. package/lib/module/modules/questionnaire-response-form/utils/conditions/fhir-condition.js +140 -0
  239. package/lib/module/modules/questionnaire-response-form/utils/conditions/fhir-condition.js.map +1 -0
  240. package/lib/module/modules/questionnaire-response-form/utils/create-answer-from-value.js +122 -0
  241. package/lib/module/modules/questionnaire-response-form/utils/create-answer-from-value.js.map +1 -0
  242. package/lib/module/modules/questionnaire-response-form/utils/fields/get-option-text.js +4 -3
  243. package/lib/module/modules/questionnaire-response-form/utils/fields/get-option-text.js.map +1 -1
  244. package/lib/module/modules/questionnaire-response-form/utils/form-utils.js +71 -64
  245. package/lib/module/modules/questionnaire-response-form/utils/form-utils.js.map +1 -1
  246. package/lib/module/modules/questionnaire-response-form/utils/form-validation.js +23 -5
  247. package/lib/module/modules/questionnaire-response-form/utils/form-validation.js.map +1 -1
  248. package/lib/module/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.js +5 -0
  249. package/lib/module/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.js.map +1 -0
  250. package/lib/module/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.js +77 -0
  251. package/lib/module/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.js.map +1 -0
  252. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-date-utils.js +49 -0
  253. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-date-utils.js.map +1 -0
  254. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-item-constraints.js +71 -0
  255. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-item-constraints.js.map +1 -0
  256. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.js +57 -0
  257. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.js.map +1 -0
  258. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.js +49 -18
  259. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.js.map +1 -1
  260. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-picker-options.js +112 -0
  261. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-picker-options.js.map +1 -0
  262. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.js +105 -0
  263. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.js.map +1 -0
  264. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js +2 -2
  265. package/lib/module/modules/questionnaire-response-form/utils/questionnaire-submit-utils.js.map +1 -1
  266. package/lib/module/modules/questionnaire-response-form/utils/translate-fhir-text.js +31 -0
  267. package/lib/module/modules/questionnaire-response-form/utils/translate-fhir-text.js.map +1 -0
  268. package/lib/module/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.js +44 -0
  269. package/lib/module/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.js.map +1 -0
  270. package/lib/module/modules/ui/components/bluetooth-state-notice.js +31 -15
  271. package/lib/module/modules/ui/components/bluetooth-state-notice.js.map +1 -1
  272. package/lib/module/modules/ui/components/prerequisite-gate.js +67 -0
  273. package/lib/module/modules/ui/components/prerequisite-gate.js.map +1 -0
  274. package/lib/module/modules/ui/default-translation.js +45 -0
  275. package/lib/module/modules/ui/default-translation.js.map +1 -0
  276. package/lib/module/modules/ui/index.js +1 -0
  277. package/lib/module/modules/ui/index.js.map +1 -1
  278. package/lib/module/polyfills/index.js +11 -1
  279. package/lib/module/polyfills/index.js.map +1 -1
  280. package/lib/typescript/commonjs/src/modules/auth/default-translation.d.ts +22 -0
  281. package/lib/typescript/commonjs/src/modules/auth/default-translation.d.ts.map +1 -1
  282. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts +4 -1
  283. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts.map +1 -1
  284. package/lib/typescript/commonjs/src/modules/auth/profile/components/profile-form-provider.d.ts.map +1 -1
  285. package/lib/typescript/commonjs/src/modules/auth/register/components/form/register-form-provider.d.ts.map +1 -1
  286. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts.map +1 -1
  287. package/lib/typescript/commonjs/src/modules/auth/session/logout-session.d.ts.map +1 -1
  288. package/lib/typescript/commonjs/src/modules/auth/session/session-store-refresh.d.ts +8 -0
  289. package/lib/typescript/commonjs/src/modules/auth/session/session-store-refresh.d.ts.map +1 -0
  290. package/lib/typescript/commonjs/src/modules/auth/session/session-store-request-state.d.ts +23 -0
  291. package/lib/typescript/commonjs/src/modules/auth/session/session-store-request-state.d.ts.map +1 -0
  292. package/lib/typescript/commonjs/src/modules/auth/session/session-store-types.d.ts +33 -0
  293. package/lib/typescript/commonjs/src/modules/auth/session/session-store-types.d.ts.map +1 -0
  294. package/lib/typescript/commonjs/src/modules/auth/session/session-store.d.ts +1 -18
  295. package/lib/typescript/commonjs/src/modules/auth/session/session-store.d.ts.map +1 -1
  296. package/lib/typescript/commonjs/src/modules/auth/utils/sign-in-error.d.ts +4 -2
  297. package/lib/typescript/commonjs/src/modules/auth/utils/sign-in-error.d.ts.map +1 -1
  298. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  299. package/lib/typescript/commonjs/src/modules/bt-management/hooks/declined-device-storage.d.ts +10 -1
  300. package/lib/typescript/commonjs/src/modules/bt-management/hooks/declined-device-storage.d.ts.map +1 -1
  301. package/lib/typescript/commonjs/src/modules/bt-management/hooks/nearby-device-offer-state.d.ts +6 -0
  302. package/lib/typescript/commonjs/src/modules/bt-management/hooks/nearby-device-offer-state.d.ts.map +1 -0
  303. package/lib/typescript/commonjs/src/modules/bt-management/hooks/nearby-device-offer-types.d.ts +15 -0
  304. package/lib/typescript/commonjs/src/modules/bt-management/hooks/nearby-device-offer-types.d.ts.map +1 -0
  305. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-nearby-device-offer.d.ts +6 -14
  306. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-nearby-device-offer.d.ts.map +1 -1
  307. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  308. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts +7 -0
  309. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
  311. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts +2 -3
  312. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
  313. package/lib/typescript/commonjs/src/modules/data-sync/services/apple-health-sync-service.d.ts +4 -5
  314. package/lib/typescript/commonjs/src/modules/data-sync/services/apple-health-sync-service.d.ts.map +1 -1
  315. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts +4 -2
  316. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts.map +1 -1
  317. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -1
  318. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  319. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts +2 -1
  320. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -1
  321. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts +3 -2
  322. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  323. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-records-to-observation.d.ts.map +1 -1
  324. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-samples-to-observation.d.ts.map +1 -1
  325. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +5 -4
  326. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-samples-count.d.ts +2 -2
  328. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  329. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts +5 -1
  330. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -1
  331. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-record-timing.d.ts +10 -0
  332. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-record-timing.d.ts.map +1 -0
  333. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
  334. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts +6 -5
  335. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -1
  336. package/lib/typescript/commonjs/src/modules/data-sync/utils/normalize-core-health-observation.d.ts +13 -0
  337. package/lib/typescript/commonjs/src/modules/data-sync/utils/normalize-core-health-observation.d.ts.map +1 -0
  338. package/lib/typescript/commonjs/src/modules/picker-sheet/components/value-wheel-picker.d.ts +21 -0
  339. package/lib/typescript/commonjs/src/modules/picker-sheet/components/value-wheel-picker.d.ts.map +1 -0
  340. package/lib/typescript/commonjs/src/modules/picker-sheet/components/wheel-picker.d.ts +7 -3
  341. package/lib/typescript/commonjs/src/modules/picker-sheet/components/wheel-picker.d.ts.map +1 -1
  342. package/lib/typescript/commonjs/src/modules/picker-sheet/index.d.ts +1 -0
  343. package/lib/typescript/commonjs/src/modules/picker-sheet/index.d.ts.map +1 -1
  344. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/content/questionnaire-content-item.d.ts.map +1 -1
  345. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.d.ts.map +1 -1
  346. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.d.ts.map +1 -1
  347. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.d.ts.map +1 -1
  348. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-date-field.d.ts +3 -1
  349. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-date-field.d.ts.map +1 -1
  350. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.d.ts +9 -3
  351. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.d.ts.map +1 -1
  352. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-text-field.d.ts +5 -1
  353. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/fields/questionnaire-text-field.d.ts.map +1 -1
  354. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/header/questionnaire-header-title.d.ts.map +1 -1
  355. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts +1 -1
  356. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
  357. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-form.d.ts.map +1 -1
  358. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-navigation-provider.d.ts.map +1 -1
  359. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-initial-selected-values.d.ts.map +1 -1
  360. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts +6 -1
  361. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts.map +1 -1
  362. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.d.ts +2 -1
  363. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.d.ts.map +1 -1
  364. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/index.d.ts +4 -1
  365. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/index.d.ts.map +1 -1
  366. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/extended-questionnaire-item.d.ts +7 -1
  367. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/extended-questionnaire-item.d.ts.map +1 -1
  368. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts +6 -0
  369. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts.map +1 -1
  370. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-props.d.ts +3 -1
  371. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-props.d.ts.map +1 -1
  372. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-provider-props.d.ts +11 -0
  373. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-provider-props.d.ts.map +1 -1
  374. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-values.d.ts +5 -2
  375. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-values.d.ts.map +1 -1
  376. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-item-render-props.d.ts +15 -0
  377. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-item-render-props.d.ts.map +1 -0
  378. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts +5 -0
  379. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts.map +1 -1
  380. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/response-values.d.ts +2 -1
  381. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/response-values.d.ts.map +1 -1
  382. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/condition-utils.d.ts.map +1 -1
  383. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/conditions/fhir-condition.d.ts +9 -0
  384. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/conditions/fhir-condition.d.ts.map +1 -0
  385. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/create-answer-from-value.d.ts +7 -0
  386. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/create-answer-from-value.d.ts.map +1 -0
  387. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/fields/get-option-text.d.ts +1 -1
  388. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/fields/get-option-text.d.ts.map +1 -1
  389. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/form-utils.d.ts +4 -1
  390. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/form-utils.d.ts.map +1 -1
  391. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/form-validation.d.ts +4 -1
  392. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/form-validation.d.ts.map +1 -1
  393. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.d.ts +3 -0
  394. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.d.ts.map +1 -0
  395. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.d.ts +8 -0
  396. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.d.ts.map +1 -0
  397. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-date-utils.d.ts +5 -0
  398. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-date-utils.d.ts.map +1 -0
  399. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-item-constraints.d.ts +22 -0
  400. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-item-constraints.d.ts.map +1 -0
  401. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.d.ts +10 -0
  402. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.d.ts.map +1 -0
  403. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.d.ts +2 -1
  404. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.d.ts.map +1 -1
  405. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-picker-options.d.ts +15 -0
  406. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-picker-options.d.ts.map +1 -0
  407. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.d.ts +5 -0
  408. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.d.ts.map +1 -0
  409. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts +3 -1
  410. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts.map +1 -1
  411. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/translate-fhir-text.d.ts +4 -0
  412. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/translate-fhir-text.d.ts.map +1 -0
  413. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.d.ts +6 -0
  414. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.d.ts.map +1 -0
  415. package/lib/typescript/commonjs/src/modules/ui/components/bluetooth-state-notice.d.ts +8 -5
  416. package/lib/typescript/commonjs/src/modules/ui/components/bluetooth-state-notice.d.ts.map +1 -1
  417. package/lib/typescript/commonjs/src/modules/ui/components/prerequisite-gate.d.ts +19 -0
  418. package/lib/typescript/commonjs/src/modules/ui/components/prerequisite-gate.d.ts.map +1 -0
  419. package/lib/typescript/commonjs/src/modules/ui/default-translation.d.ts +30 -0
  420. package/lib/typescript/commonjs/src/modules/ui/default-translation.d.ts.map +1 -0
  421. package/lib/typescript/commonjs/src/modules/ui/index.d.ts +1 -0
  422. package/lib/typescript/commonjs/src/modules/ui/index.d.ts.map +1 -1
  423. package/lib/typescript/commonjs/src/polyfills/index.d.ts +7 -1
  424. package/lib/typescript/commonjs/src/polyfills/index.d.ts.map +1 -1
  425. package/lib/typescript/module/src/modules/auth/default-translation.d.ts +22 -0
  426. package/lib/typescript/module/src/modules/auth/default-translation.d.ts.map +1 -1
  427. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts +4 -1
  428. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts.map +1 -1
  429. package/lib/typescript/module/src/modules/auth/profile/components/profile-form-provider.d.ts.map +1 -1
  430. package/lib/typescript/module/src/modules/auth/register/components/form/register-form-provider.d.ts.map +1 -1
  431. package/lib/typescript/module/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts.map +1 -1
  432. package/lib/typescript/module/src/modules/auth/session/logout-session.d.ts.map +1 -1
  433. package/lib/typescript/module/src/modules/auth/session/session-store-refresh.d.ts +8 -0
  434. package/lib/typescript/module/src/modules/auth/session/session-store-refresh.d.ts.map +1 -0
  435. package/lib/typescript/module/src/modules/auth/session/session-store-request-state.d.ts +23 -0
  436. package/lib/typescript/module/src/modules/auth/session/session-store-request-state.d.ts.map +1 -0
  437. package/lib/typescript/module/src/modules/auth/session/session-store-types.d.ts +33 -0
  438. package/lib/typescript/module/src/modules/auth/session/session-store-types.d.ts.map +1 -0
  439. package/lib/typescript/module/src/modules/auth/session/session-store.d.ts +1 -18
  440. package/lib/typescript/module/src/modules/auth/session/session-store.d.ts.map +1 -1
  441. package/lib/typescript/module/src/modules/auth/utils/sign-in-error.d.ts +4 -2
  442. package/lib/typescript/module/src/modules/auth/utils/sign-in-error.d.ts.map +1 -1
  443. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  444. package/lib/typescript/module/src/modules/bt-management/hooks/declined-device-storage.d.ts +10 -1
  445. package/lib/typescript/module/src/modules/bt-management/hooks/declined-device-storage.d.ts.map +1 -1
  446. package/lib/typescript/module/src/modules/bt-management/hooks/nearby-device-offer-state.d.ts +6 -0
  447. package/lib/typescript/module/src/modules/bt-management/hooks/nearby-device-offer-state.d.ts.map +1 -0
  448. package/lib/typescript/module/src/modules/bt-management/hooks/nearby-device-offer-types.d.ts +15 -0
  449. package/lib/typescript/module/src/modules/bt-management/hooks/nearby-device-offer-types.d.ts.map +1 -0
  450. package/lib/typescript/module/src/modules/bt-management/hooks/use-nearby-device-offer.d.ts +6 -14
  451. package/lib/typescript/module/src/modules/bt-management/hooks/use-nearby-device-offer.d.ts.map +1 -1
  452. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  453. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts +7 -0
  454. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  455. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
  456. package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts +2 -3
  457. package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
  458. package/lib/typescript/module/src/modules/data-sync/services/apple-health-sync-service.d.ts +4 -5
  459. package/lib/typescript/module/src/modules/data-sync/services/apple-health-sync-service.d.ts.map +1 -1
  460. package/lib/typescript/module/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts +4 -2
  461. package/lib/typescript/module/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts.map +1 -1
  462. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -1
  463. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  464. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts +2 -1
  465. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -1
  466. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts +3 -2
  467. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  468. package/lib/typescript/module/src/modules/data-sync/utils/convert-records-to-observation.d.ts.map +1 -1
  469. package/lib/typescript/module/src/modules/data-sync/utils/convert-samples-to-observation.d.ts.map +1 -1
  470. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +5 -4
  471. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  472. package/lib/typescript/module/src/modules/data-sync/utils/get-total-samples-count.d.ts +2 -2
  473. package/lib/typescript/module/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  474. package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts +5 -1
  475. package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -1
  476. package/lib/typescript/module/src/modules/data-sync/utils/health-record-timing.d.ts +10 -0
  477. package/lib/typescript/module/src/modules/data-sync/utils/health-record-timing.d.ts.map +1 -0
  478. package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
  479. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts +6 -5
  480. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -1
  481. package/lib/typescript/module/src/modules/data-sync/utils/normalize-core-health-observation.d.ts +13 -0
  482. package/lib/typescript/module/src/modules/data-sync/utils/normalize-core-health-observation.d.ts.map +1 -0
  483. package/lib/typescript/module/src/modules/picker-sheet/components/value-wheel-picker.d.ts +21 -0
  484. package/lib/typescript/module/src/modules/picker-sheet/components/value-wheel-picker.d.ts.map +1 -0
  485. package/lib/typescript/module/src/modules/picker-sheet/components/wheel-picker.d.ts +7 -3
  486. package/lib/typescript/module/src/modules/picker-sheet/components/wheel-picker.d.ts.map +1 -1
  487. package/lib/typescript/module/src/modules/picker-sheet/index.d.ts +1 -0
  488. package/lib/typescript/module/src/modules/picker-sheet/index.d.ts.map +1 -1
  489. package/lib/typescript/module/src/modules/questionnaire-response-form/components/content/questionnaire-content-item.d.ts.map +1 -1
  490. package/lib/typescript/module/src/modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.d.ts.map +1 -1
  491. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.d.ts.map +1 -1
  492. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-choice-field.d.ts.map +1 -1
  493. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-date-field.d.ts +3 -1
  494. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-date-field.d.ts.map +1 -1
  495. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.d.ts +9 -3
  496. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.d.ts.map +1 -1
  497. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-text-field.d.ts +5 -1
  498. package/lib/typescript/module/src/modules/questionnaire-response-form/components/fields/questionnaire-text-field.d.ts.map +1 -1
  499. package/lib/typescript/module/src/modules/questionnaire-response-form/components/header/questionnaire-header-title.d.ts.map +1 -1
  500. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts +1 -1
  501. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
  502. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-form.d.ts.map +1 -1
  503. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-navigation-provider.d.ts.map +1 -1
  504. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-initial-selected-values.d.ts.map +1 -1
  505. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts +6 -1
  506. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts.map +1 -1
  507. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.d.ts +2 -1
  508. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation-state.d.ts.map +1 -1
  509. package/lib/typescript/module/src/modules/questionnaire-response-form/index.d.ts +4 -1
  510. package/lib/typescript/module/src/modules/questionnaire-response-form/index.d.ts.map +1 -1
  511. package/lib/typescript/module/src/modules/questionnaire-response-form/types/extended-questionnaire-item.d.ts +7 -1
  512. package/lib/typescript/module/src/modules/questionnaire-response-form/types/extended-questionnaire-item.d.ts.map +1 -1
  513. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts +6 -0
  514. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts.map +1 -1
  515. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-props.d.ts +3 -1
  516. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-props.d.ts.map +1 -1
  517. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-provider-props.d.ts +11 -0
  518. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-provider-props.d.ts.map +1 -1
  519. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-values.d.ts +5 -2
  520. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-values.d.ts.map +1 -1
  521. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-item-render-props.d.ts +15 -0
  522. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-item-render-props.d.ts.map +1 -0
  523. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts +5 -0
  524. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts.map +1 -1
  525. package/lib/typescript/module/src/modules/questionnaire-response-form/types/response-values.d.ts +2 -1
  526. package/lib/typescript/module/src/modules/questionnaire-response-form/types/response-values.d.ts.map +1 -1
  527. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/condition-utils.d.ts.map +1 -1
  528. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/conditions/fhir-condition.d.ts +9 -0
  529. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/conditions/fhir-condition.d.ts.map +1 -0
  530. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/create-answer-from-value.d.ts +7 -0
  531. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/create-answer-from-value.d.ts.map +1 -0
  532. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/fields/get-option-text.d.ts +1 -1
  533. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/fields/get-option-text.d.ts.map +1 -1
  534. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/form-utils.d.ts +4 -1
  535. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/form-utils.d.ts.map +1 -1
  536. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/form-validation.d.ts +4 -1
  537. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/form-validation.d.ts.map +1 -1
  538. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.d.ts +3 -0
  539. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/is-answerable-questionnaire-item.d.ts.map +1 -0
  540. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.d.ts +8 -0
  541. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/is-valid-questionnaire-answer.d.ts.map +1 -0
  542. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-date-utils.d.ts +5 -0
  543. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-date-utils.d.ts.map +1 -0
  544. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-item-constraints.d.ts +22 -0
  545. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-item-constraints.d.ts.map +1 -0
  546. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.d.ts +10 -0
  547. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-item-value-constraint-validators.d.ts.map +1 -0
  548. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.d.ts +2 -1
  549. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-navigation-utils.d.ts.map +1 -1
  550. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-picker-options.d.ts +15 -0
  551. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-picker-options.d.ts.map +1 -0
  552. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.d.ts +5 -0
  553. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-string-constraint-validator.d.ts.map +1 -0
  554. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts +3 -1
  555. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/questionnaire-submit-utils.d.ts.map +1 -1
  556. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/translate-fhir-text.d.ts +4 -0
  557. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/translate-fhir-text.d.ts.map +1 -0
  558. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.d.ts +6 -0
  559. package/lib/typescript/module/src/modules/questionnaire-response-form/utils/validate-questionnaire-item-value.d.ts.map +1 -0
  560. package/lib/typescript/module/src/modules/ui/components/bluetooth-state-notice.d.ts +8 -5
  561. package/lib/typescript/module/src/modules/ui/components/bluetooth-state-notice.d.ts.map +1 -1
  562. package/lib/typescript/module/src/modules/ui/components/prerequisite-gate.d.ts +19 -0
  563. package/lib/typescript/module/src/modules/ui/components/prerequisite-gate.d.ts.map +1 -0
  564. package/lib/typescript/module/src/modules/ui/default-translation.d.ts +30 -0
  565. package/lib/typescript/module/src/modules/ui/default-translation.d.ts.map +1 -0
  566. package/lib/typescript/module/src/modules/ui/index.d.ts +1 -0
  567. package/lib/typescript/module/src/modules/ui/index.d.ts.map +1 -1
  568. package/lib/typescript/module/src/polyfills/index.d.ts +7 -1
  569. package/lib/typescript/module/src/polyfills/index.d.ts.map +1 -1
  570. package/package.json +5 -8
@@ -64,16 +64,19 @@ const MyComponent = () => {
64
64
 
65
65
  ## Props
66
66
 
67
- | Prop | Type | Description |
68
- | ------------- | ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
69
- | questionnaire | Questionnaire | The FHIR Questionnaire resource to render |
70
- | onSubmit | (values: QuestionnaireFormValues, formikHelpers?: FormikHelpers<QuestionnaireFormValues>) => Promise<void> | Optional callback for form submission |
71
- | onSuccess | (response: QuestionnaireResponse) => void | Optional callback when form is submitted successfully |
72
- | onError | (error: Error) => void | Optional callback when form submission fails |
73
- | initialValues | Partial<QuestionnaireFormValues> | Optional initial values for the form |
74
- | children | ReactNode | Child components for custom layout |
75
- | style | ViewStyle | Optional styles for the container |
76
- | testID | string | Test ID for testing |
67
+ | Prop | Type | Description |
68
+ | ------------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
69
+ | questionnaire | Questionnaire | The FHIR Questionnaire resource to render |
70
+ | onSubmit | (values: QuestionnaireFormValues, formikHelpers?: FormikHelpers<QuestionnaireFormValues>) => Promise<void> | Optional callback for form submission |
71
+ | onSuccess | (response: QuestionnaireResponse) => void | Optional callback when form is submitted successfully |
72
+ | onError | (error: Error) => void | Optional callback when form submission fails |
73
+ | initialValues | Partial<QuestionnaireFormValues> | Optional initial values for the form |
74
+ | renderItem | QuestionnaireItemRenderer | Optional host control for any non-group FHIR item |
75
+ | resolveQuestionnaireConstraint | QuestionnaireConstraintResolver | Resolves SDC calculated min/max values with the host's expression context |
76
+ | resolveQuestionnaireUnitOptions | QuestionnaireUnitOptionsResolver | Supplies a cached expansion for an SDC `unitValueSet` canonical |
77
+ | children | ReactNode | Child components for custom layout |
78
+ | style | ViewStyle | Optional styles for the container |
79
+ | testID | string | Test ID for testing |
77
80
 
78
81
  Choose either the host-owned `onSubmit(values, formikHelpers?)` mode or the SDK-managed
79
82
  `onSuccess(response)` mode. `onError(error)` is optional in the SDK-managed mode. The
@@ -81,6 +84,33 @@ SDK-managed path requires the active `@ovok/core` client/profile context, create
81
84
  completed `QuestionnaireResponse`, adds the patient subject and a stable identifier,
82
85
  and persists it with `createResourceIfNoneExist`.
83
86
 
87
+ Custom `renderItem` controls receive a `constraints` object with `minValue`,
88
+ `maxValue`, `minQuantity`, `maxQuantity`, `step`, `minLength`, `maxLength`,
89
+ `unitOptions`, `unitValueSet`, and `unitOpen`. This lets an app use its own
90
+ controls and terminology cache without coupling the SDK to an expression or
91
+ terminology service. Implement `resolveQuestionnaireConstraint` for calculated
92
+ SDC bounds and `resolveQuestionnaireUnitOptions` for cached ValueSet expansions;
93
+ both callbacks are synchronous. If a calculated bound or unit ValueSet is not
94
+ resolved, a non-empty answer using it is not accepted as valid. Quantity bounds
95
+ are compared only when the answer and bound use the same UCUM code; convert
96
+ units in the host control before returning the answer when conversions are
97
+ needed.
98
+
99
+ Static date/dateTime bounds are passed to the date picker, numeric bounds and
100
+ steps are checked on navigation and submission, and simple-type length limits
101
+ are checked before submission. Bounded integer items and decimal items with an
102
+ explicit step use a touch wheel when the generated range contains at most 1,000
103
+ values; unconstrained, invalid, or larger ranges retain text entry. A displayed
104
+ wheel default is not saved until the person changes the selection. The typed
105
+ `ValueWheelPicker<T>` in `@ovok/native/picker-sheet` can render `unitOptions`;
106
+ use its `value` prop for the committed selection and `defaultIndex` only for a
107
+ display-only initial position.
108
+
109
+ Host-rendered quantity and duration controls can combine `minQuantity`,
110
+ `maxQuantity`, `unitOptions`, and the host-resolved `unitValueSet` in one or
111
+ more typed wheels. This keeps UCUM conversion and terminology lookup in the
112
+ host app while reusing the same generic picker in different forms and styles.
113
+
84
114
  ## Extended Properties
85
115
 
86
116
  In addition to standard FHIR QuestionnaireItem properties, the component supports these additional UI properties:
@@ -168,6 +198,15 @@ The form supports various field types through specialized components:
168
198
  - **QuestionnaireDateField**: Date picker
169
199
  - **QuestionnaireItemRenderer**: Dynamic field type renderer
170
200
 
201
+ The optional `renderItem` callback can provide host-designed controls for item
202
+ types without a built-in control, including `url`, `open-choice`, `quantity`,
203
+ `attachment`, and `reference`. Its `onChange` accepts either a primitive value
204
+ for built-in types or a typed FHIR answer value such as
205
+ `{ valueQuantity: { value: 2, unit: "mg" } }`. This preserves the corresponding
206
+ FHIR `value[x]` field in SDK-created responses and makes required custom items
207
+ participate in validation. Without a custom renderer, unsupported items show a
208
+ fallback and do not prevent continuing through the form.
209
+
171
210
  ## Context and Hooks
172
211
 
173
212
  The form provides a context and hooks for advanced customization:
@@ -253,16 +292,16 @@ const MyComponent = () => {
253
292
 
254
293
  #### QuestionnaireForm Props
255
294
 
256
- | Prop | Type | Description |
257
- | ------------- | ----------------------------------------- | ----------------------------------- |
258
- | questionnaire | Questionnaire | The questionnaire object to render |
259
- | onSubmit | (values: QuestionnaireFormValues, formikHelpers?) => Promise<void> | Host-owned submit callback |
260
- | onSuccess | (response: QuestionnaireResponse) => void | Called after SDK-managed persistence |
261
- | onError | (error: Error) => void | Called when SDK-managed persistence fails |
262
- | initialValues | Partial<QuestionnaireFormValues> | Initial values for the form |
263
- | paged | boolean | Whether to show one item at a time; defaults to true |
264
- | style | StyleProp<ViewStyle> | Style for the container |
265
- | testID | string | Test ID for the component |
295
+ | Prop | Type | Description |
296
+ | ------------- | ------------------------------------------------------------------ | ---------------------------------------------------- |
297
+ | questionnaire | Questionnaire | The questionnaire object to render |
298
+ | onSubmit | (values: QuestionnaireFormValues, formikHelpers?) => Promise<void> | Host-owned submit callback |
299
+ | onSuccess | (response: QuestionnaireResponse) => void | Called after SDK-managed persistence |
300
+ | onError | (error: Error) => void | Called when SDK-managed persistence fails |
301
+ | initialValues | Partial<QuestionnaireFormValues> | Initial values for the form |
302
+ | paged | boolean | Whether to show one item at a time; defaults to true |
303
+ | style | StyleProp<ViewStyle> | Style for the container |
304
+ | testID | string | Test ID for the component |
266
305
 
267
306
  #### QuestionnaireForm.Header Props
268
307
 
@@ -3,6 +3,7 @@
3
3
  import * as React from "react";
4
4
  import { View } from "react-native";
5
5
  import { useQuestionnaireForm } from "../../hooks/use-questionnaire-form.js";
6
+ import { getQuestionnaireItemConstraints } from "../../utils/questionnaire-item-constraints.js";
6
7
  import { QuestionnaireItemRenderer } from "../fields/questionnaire-item-renderer.js";
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  export const QuestionnaireContentItem = /*#__PURE__*/React.memo(({
@@ -12,6 +13,10 @@ export const QuestionnaireContentItem = /*#__PURE__*/React.memo(({
12
13
  }) => {
13
14
  const {
14
15
  currentItem,
16
+ locale,
17
+ renderItem,
18
+ resolveQuestionnaireConstraint,
19
+ resolveQuestionnaireUnitOptions,
15
20
  values,
16
21
  setFieldValue
17
22
  } = useQuestionnaireForm();
@@ -34,6 +39,9 @@ export const QuestionnaireContentItem = /*#__PURE__*/React.memo(({
34
39
  item: currentItem,
35
40
  value: value,
36
41
  onChange: onChange,
42
+ locale: locale,
43
+ renderItem: renderItem,
44
+ constraints: getQuestionnaireItemConstraints(currentItem, values, resolveQuestionnaireConstraint, resolveQuestionnaireUnitOptions),
37
45
  testID: testID ? `${testID}-${itemId}` : `item-${itemId}`
38
46
  })
39
47
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","useQuestionnaireForm","QuestionnaireItemRenderer","jsx","_jsx","QuestionnaireContentItem","memo","style","testID","props","currentItem","values","setFieldValue","onChange","useCallback","val","linkId","itemId","value","children","item"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/content/questionnaire-content-item.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,IAAI,QAAmB,cAAc;AAE9C,SAASC,oBAAoB,QAAQ,uCAAoC;AACzE,SAASC,yBAAyB,QAAQ,0CAAuC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAElF,OAAO,MAAMC,wBAAwB,gBAAGN,KAAK,CAACO,IAAI,CAChD,CAAC;EAAEC,KAAK;EAAEC,MAAM;EAAE,GAAGC;AAAiB,CAAC,KAAK;EAC1C,MAAM;IAAEC,WAAW;IAAEC,MAAM;IAAEC;EAAc,CAAC,GAAGX,oBAAoB,CAAC,CAAC;EAErE,MAAMY,QAAQ,GAAGd,KAAK,CAACe,WAAW,CAC/BC,GAAqB,IAAK;IACzB,IAAI,CAACL,WAAW,EAAEM,MAAM,EAAE;MACxB;IACF;IAEAJ,aAAa,CAACF,WAAW,CAACM,MAAM,EAAED,GAAG,CAAC;EACxC,CAAC,EACD,CAACL,WAAW,EAAEM,MAAM,EAAEJ,aAAa,CACrC,CAAC;EAED,IAAI,CAACF,WAAW,EAAE;IAChB,OAAO,IAAI;EACb;EAEA,MAAMO,MAAM,GAAGP,WAAW,CAACM,MAAM,IAAI,EAAE;EACvC,MAAME,KAAK,GAAGP,MAAM,CAACM,MAAM,CAAC;EAE5B,oBACEb,IAAA,CAACJ,IAAI;IAAA,GAAKS,KAAK;IAAEF,KAAK,EAAEA,KAAM;IAACC,MAAM,EAAEA,MAAO;IAAAW,QAAA,eAC5Cf,IAAA,CAACF,yBAAyB;MACxBkB,IAAI,EAAEV,WAAY;MAClBQ,KAAK,EAAEA,KAAM;MACbL,QAAQ,EAAEA,QAAS;MACnBL,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,IAAIS,MAAM,EAAE,GAAG,QAAQA,MAAM;IAAG,CAC3D;EAAC,CACE,CAAC;AAEX,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","View","useQuestionnaireForm","getQuestionnaireItemConstraints","QuestionnaireItemRenderer","jsx","_jsx","QuestionnaireContentItem","memo","style","testID","props","currentItem","locale","renderItem","resolveQuestionnaireConstraint","resolveQuestionnaireUnitOptions","values","setFieldValue","onChange","useCallback","val","linkId","itemId","value","children","item","constraints"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/content/questionnaire-content-item.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,IAAI,QAAmB,cAAc;AAE9C,SAASC,oBAAoB,QAAQ,uCAAoC;AAEzE,SAASC,+BAA+B,QAAQ,+CAA4C;AAC5F,SAASC,yBAAyB,QAAQ,0CAAuC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAElF,OAAO,MAAMC,wBAAwB,gBAAGP,KAAK,CAACQ,IAAI,CAChD,CAAC;EAAEC,KAAK;EAAEC,MAAM;EAAE,GAAGC;AAAiB,CAAC,KAAK;EAC1C,MAAM;IACJC,WAAW;IACXC,MAAM;IACNC,UAAU;IACVC,8BAA8B;IAC9BC,+BAA+B;IAC/BC,MAAM;IACNC;EACF,CAAC,GAAGhB,oBAAoB,CAAC,CAAC;EAE1B,MAAMiB,QAAQ,GAAGnB,KAAK,CAACoB,WAAW,CAC/BC,GAA2B,IAAK;IAC/B,IAAI,CAACT,WAAW,EAAEU,MAAM,EAAE;MACxB;IACF;IAEAJ,aAAa,CAACN,WAAW,CAACU,MAAM,EAAED,GAAG,CAAC;EACxC,CAAC,EACD,CAACT,WAAW,EAAEU,MAAM,EAAEJ,aAAa,CACrC,CAAC;EAED,IAAI,CAACN,WAAW,EAAE;IAChB,OAAO,IAAI;EACb;EAEA,MAAMW,MAAM,GAAGX,WAAW,CAACU,MAAM,IAAI,EAAE;EACvC,MAAME,KAAK,GAAGP,MAAM,CAACM,MAAM,CAAC;EAE5B,oBACEjB,IAAA,CAACL,IAAI;IAAA,GAAKU,KAAK;IAAEF,KAAK,EAAEA,KAAM;IAACC,MAAM,EAAEA,MAAO;IAAAe,QAAA,eAC5CnB,IAAA,CAACF,yBAAyB;MACxBsB,IAAI,EAAEd,WAAY;MAClBY,KAAK,EAAEA,KAAM;MACbL,QAAQ,EAAEA,QAAS;MACnBN,MAAM,EAAEA,MAAO;MACfC,UAAU,EAAEA,UAAW;MACvBa,WAAW,EAAExB,+BAA+B,CAC1CS,WAAW,EACXK,MAAM,EACNF,8BAA8B,EAC9BC,+BACF,CAAE;MACFN,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,IAAIa,MAAM,EAAE,GAAG,QAAQA,MAAM;IAAG,CAC3D;EAAC,CACE,CAAC;AAEX,CACF,CAAC","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  import * as React from "react";
4
4
  import { View } from "react-native";
5
5
  import { useQuestionnaireForm } from "../../hooks/use-questionnaire-form.js";
6
+ import { getQuestionnaireItemConstraints } from "../../utils/questionnaire-item-constraints.js";
6
7
  import { QuestionnaireItemRenderer } from "../fields/questionnaire-item-renderer.js";
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  const QuestionnaireContentSpecificItemComponent = /*#__PURE__*/React.memo(({
@@ -12,6 +13,10 @@ const QuestionnaireContentSpecificItemComponent = /*#__PURE__*/React.memo(({
12
13
  ...props
13
14
  }) => {
14
15
  const {
16
+ locale,
17
+ renderItem,
18
+ resolveQuestionnaireConstraint,
19
+ resolveQuestionnaireUnitOptions,
15
20
  values,
16
21
  setFieldValue
17
22
  } = useQuestionnaireForm();
@@ -34,6 +39,9 @@ const QuestionnaireContentSpecificItemComponent = /*#__PURE__*/React.memo(({
34
39
  item: item,
35
40
  value: value,
36
41
  onChange: onChange,
42
+ locale: locale,
43
+ renderItem: renderItem,
44
+ constraints: getQuestionnaireItemConstraints(item, values, resolveQuestionnaireConstraint, resolveQuestionnaireUnitOptions),
37
45
  testID: testID ? `${testID}-${itemId}` : `item-${itemId}`
38
46
  })
39
47
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","useQuestionnaireForm","QuestionnaireItemRenderer","jsx","_jsx","QuestionnaireContentSpecificItemComponent","memo","style","testID","item","props","values","setFieldValue","onChange","useCallback","val","linkId","itemId","value","children","QuestionnaireContentSpecificItem"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,IAAI,QAAmB,cAAc;AAE9C,SAASC,oBAAoB,QAAQ,uCAAoC;AAEzE,SAASC,yBAAyB,QAAQ,0CAAuC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAElF,MAAMC,yCAAyC,gBAAGN,KAAK,CAACO,IAAI,CAC1D,CAAC;EACCC,KAAK;EACLC,MAAM;EACNC,IAAI;EACJ,GAAGC;AAC4C,CAAC,KAAK;EACrD,MAAM;IAAEC,MAAM;IAAEC;EAAc,CAAC,GAAGX,oBAAoB,CAAC,CAAC;EAExD,MAAMY,QAAQ,GAAGd,KAAK,CAACe,WAAW,CAC/BC,GAAqB,IAAK;IACzB,IAAI,CAACN,IAAI,EAAEO,MAAM,EAAE;MACjB;IACF;IAEAJ,aAAa,CAACH,IAAI,CAACO,MAAM,EAAED,GAAG,CAAC;EACjC,CAAC,EACD,CAACN,IAAI,EAAEO,MAAM,EAAEJ,aAAa,CAC9B,CAAC;EAED,IAAI,CAACH,IAAI,EAAE;IACT,OAAO,IAAI;EACb;EAEA,MAAMQ,MAAM,GAAGR,IAAI,CAACO,MAAM,IAAI,EAAE;EAChC,MAAME,KAAK,GAAGP,MAAM,CAACM,MAAM,CAAC;EAE5B,oBACEb,IAAA,CAACJ,IAAI;IAAA,GAAKU,KAAK;IAAEH,KAAK,EAAEA,KAAM;IAACC,MAAM,EAAEA,MAAO;IAAAW,QAAA,eAC5Cf,IAAA,CAACF,yBAAyB;MACxBO,IAAI,EAAEA,IAAK;MACXS,KAAK,EAAEA,KAAM;MACbL,QAAQ,EAAEA,QAAS;MACnBL,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,IAAIS,MAAM,EAAE,GAAG,QAAQA,MAAM;IAAG,CAC3D;EAAC,CACE,CAAC;AAEX,CACF,CAAC;AAED,OAAO,MAAMG,gCAAgC,GAC3Cf,yCAAyC","ignoreList":[]}
1
+ {"version":3,"names":["React","View","useQuestionnaireForm","getQuestionnaireItemConstraints","QuestionnaireItemRenderer","jsx","_jsx","QuestionnaireContentSpecificItemComponent","memo","style","testID","item","props","locale","renderItem","resolveQuestionnaireConstraint","resolveQuestionnaireUnitOptions","values","setFieldValue","onChange","useCallback","val","linkId","itemId","value","children","constraints","QuestionnaireContentSpecificItem"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/content/questionnaire-content-specific-item.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,IAAI,QAAmB,cAAc;AAE9C,SAASC,oBAAoB,QAAQ,uCAAoC;AAGzE,SAASC,+BAA+B,QAAQ,+CAA4C;AAC5F,SAASC,yBAAyB,QAAQ,0CAAuC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAElF,MAAMC,yCAAyC,gBAAGP,KAAK,CAACQ,IAAI,CAC1D,CAAC;EACCC,KAAK;EACLC,MAAM;EACNC,IAAI;EACJ,GAAGC;AAC4C,CAAC,KAAK;EACrD,MAAM;IACJC,MAAM;IACNC,UAAU;IACVC,8BAA8B;IAC9BC,+BAA+B;IAC/BC,MAAM;IACNC;EACF,CAAC,GAAGhB,oBAAoB,CAAC,CAAC;EAE1B,MAAMiB,QAAQ,GAAGnB,KAAK,CAACoB,WAAW,CAC/BC,GAA2B,IAAK;IAC/B,IAAI,CAACV,IAAI,EAAEW,MAAM,EAAE;MACjB;IACF;IAEAJ,aAAa,CAACP,IAAI,CAACW,MAAM,EAAED,GAAG,CAAC;EACjC,CAAC,EACD,CAACV,IAAI,EAAEW,MAAM,EAAEJ,aAAa,CAC9B,CAAC;EAED,IAAI,CAACP,IAAI,EAAE;IACT,OAAO,IAAI;EACb;EAEA,MAAMY,MAAM,GAAGZ,IAAI,CAACW,MAAM,IAAI,EAAE;EAChC,MAAME,KAAK,GAAGP,MAAM,CAACM,MAAM,CAAC;EAE5B,oBACEjB,IAAA,CAACL,IAAI;IAAA,GAAKW,KAAK;IAAEH,KAAK,EAAEA,KAAM;IAACC,MAAM,EAAEA,MAAO;IAAAe,QAAA,eAC5CnB,IAAA,CAACF,yBAAyB;MACxBO,IAAI,EAAEA,IAAK;MACXa,KAAK,EAAEA,KAAM;MACbL,QAAQ,EAAEA,QAAS;MACnBN,MAAM,EAAEA,MAAO;MACfC,UAAU,EAAEA,UAAW;MACvBY,WAAW,EAAEvB,+BAA+B,CAC1CQ,IAAI,EACJM,MAAM,EACNF,8BAA8B,EAC9BC,+BACF,CAAE;MACFN,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,IAAIa,MAAM,EAAE,GAAG,QAAQA,MAAM;IAAG,CAC3D;EAAC,CACE,CAAC;AAEX,CACF,CAAC;AAED,OAAO,MAAMI,gCAAgC,GAC3CpB,yCAAyC","ignoreList":[]}
@@ -5,6 +5,7 @@ import { StyleSheet, View } from "react-native";
5
5
  import { Text } from "react-native-paper";
6
6
  import { useAppTheme } from "../../../../theme/index.js";
7
7
  import { useQuestionnaireForm } from "../../../hooks/index.js";
8
+ import { translateFhirText } from "../../../utils/translate-fhir-text.js";
8
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
10
  export const QuestionnaireFieldWrapper = /*#__PURE__*/React.memo(({
10
11
  item,
@@ -14,8 +15,12 @@ export const QuestionnaireFieldWrapper = /*#__PURE__*/React.memo(({
14
15
  }) => {
15
16
  const theme = useAppTheme();
16
17
  const {
18
+ locale,
17
19
  paged
18
20
  } = useQuestionnaireForm();
21
+ const prefix = translateFhirText(item.prefix, item._prefix, locale);
22
+ const questionText = translateFhirText(item.text, item._text, locale);
23
+ const helperText = translateFhirText(item.helperText, item._helperText, locale);
19
24
  return /*#__PURE__*/_jsxs(View, {
20
25
  testID: testID,
21
26
  style: [styles.container, {
@@ -26,18 +31,18 @@ export const QuestionnaireFieldWrapper = /*#__PURE__*/React.memo(({
26
31
  style: [styles.title, {
27
32
  color: theme.colors.onSurface
28
33
  }],
29
- children: [item.text, item.required && /*#__PURE__*/_jsx(Text, {
34
+ children: [prefix ? `${prefix} ` : "", questionText, item.required && /*#__PURE__*/_jsx(Text, {
30
35
  style: {
31
36
  color: theme.colors.error
32
37
  },
33
38
  children: " *"
34
39
  })]
35
- }), children, item.helperText && /*#__PURE__*/_jsx(Text, {
40
+ }), children, helperText && /*#__PURE__*/_jsx(Text, {
36
41
  variant: "bodySmall",
37
42
  style: [{
38
43
  color: theme.colors.onSurfaceVariant
39
44
  }],
40
- children: item.helperText
45
+ children: helperText
41
46
  })]
42
47
  });
43
48
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","View","Text","useAppTheme","useQuestionnaireForm","jsx","_jsx","jsxs","_jsxs","QuestionnaireFieldWrapper","memo","item","children","testID","style","theme","paged","styles","container","gap","spacing","variant","title","color","colors","onSurface","text","required","error","helperText","onSurfaceVariant","create","width","fontWeight"],"sourceRoot":"../../../../../../../src","sources":["modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,EAAEC,IAAI,QAAmB,cAAc;AAC1D,SAASC,IAAI,QAAQ,oBAAoB;AAEzC,SAASC,WAAW,QAAQ,4BAAmB;AAC/C,SAASC,oBAAoB,QAAQ,yBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAUtD,OAAO,MAAMC,yBAAyB,gBAAGV,KAAK,CAACW,IAAI,CACjD,CAAC;EAAEC,IAAI;EAAEC,QAAQ;EAAEC,MAAM;EAAEC;AAAsC,CAAC,KAAK;EACrE,MAAMC,KAAK,GAAGZ,WAAW,CAAC,CAAC;EAC3B,MAAM;IAAEa;EAAM,CAAC,GAAGZ,oBAAoB,CAAC,CAAC;EAExC,oBACEI,KAAA,CAACP,IAAI;IACHY,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAE,CACLG,MAAM,CAACC,SAAS,EAChB;MAAEC,GAAG,EAAEH,KAAK,GAAGD,KAAK,CAACK,OAAO,CAAC,CAAC,CAAC,GAAGL,KAAK,CAACK,OAAO,CAAC,CAAC;IAAE,CAAC,EACpDN,KAAK,CACL;IAAAF,QAAA,gBAEFJ,KAAA,CAACN,IAAI;MACHmB,OAAO,EAAEL,KAAK,GAAG,YAAY,GAAG,aAAc;MAC9CF,KAAK,EAAE,CAACG,MAAM,CAACK,KAAK,EAAE;QAAEC,KAAK,EAAER,KAAK,CAACS,MAAM,CAACC;MAAU,CAAC,CAAE;MAAAb,QAAA,GAExDD,IAAI,CAACe,IAAI,EACTf,IAAI,CAACgB,QAAQ,iBACZrB,IAAA,CAACJ,IAAI;QAACY,KAAK,EAAE;UAAES,KAAK,EAAER,KAAK,CAACS,MAAM,CAACI;QAAM,CAAE;QAAAhB,QAAA,EAAC;MAAE,CAAM,CACrD;IAAA,CACG,CAAC,EAENA,QAAQ,EAERD,IAAI,CAACkB,UAAU,iBACdvB,IAAA,CAACJ,IAAI;MACHmB,OAAO,EAAC,WAAW;MACnBP,KAAK,EAAE,CAAC;QAAES,KAAK,EAAER,KAAK,CAACS,MAAM,CAACM;MAAiB,CAAC,CAAE;MAAAlB,QAAA,EAEjDD,IAAI,CAACkB;IAAU,CACZ,CACP;EAAA,CACG,CAAC;AAEX,CACF,CAAC;AAED,MAAMZ,MAAM,GAAGjB,UAAU,CAAC+B,MAAM,CAAC;EAC/Bb,SAAS,EAAE;IACTc,KAAK,EAAE;EACT,CAAC;EACDV,KAAK,EAAE;IACLW,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","StyleSheet","View","Text","useAppTheme","useQuestionnaireForm","translateFhirText","jsx","_jsx","jsxs","_jsxs","QuestionnaireFieldWrapper","memo","item","children","testID","style","theme","locale","paged","prefix","_prefix","questionText","text","_text","helperText","_helperText","styles","container","gap","spacing","variant","title","color","colors","onSurface","required","error","onSurfaceVariant","create","width","fontWeight"],"sourceRoot":"../../../../../../../src","sources":["modules/questionnaire-response-form/components/fields/common/questionnaire-field-wrapper.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,EAAEC,IAAI,QAAmB,cAAc;AAC1D,SAASC,IAAI,QAAQ,oBAAoB;AAEzC,SAASC,WAAW,QAAQ,4BAAmB;AAC/C,SAASC,oBAAoB,QAAQ,yBAAgB;AAErD,SAASC,iBAAiB,QAAQ,uCAAoC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AASvE,OAAO,MAAMC,yBAAyB,gBAAGX,KAAK,CAACY,IAAI,CACjD,CAAC;EAAEC,IAAI;EAAEC,QAAQ;EAAEC,MAAM;EAAEC;AAAsC,CAAC,KAAK;EACrE,MAAMC,KAAK,GAAGb,WAAW,CAAC,CAAC;EAC3B,MAAM;IAAEc,MAAM;IAAEC;EAAM,CAAC,GAAGd,oBAAoB,CAAC,CAAC;EAChD,MAAMe,MAAM,GAAGd,iBAAiB,CAACO,IAAI,CAACO,MAAM,EAAEP,IAAI,CAACQ,OAAO,EAAEH,MAAM,CAAC;EACnE,MAAMI,YAAY,GAAGhB,iBAAiB,CAACO,IAAI,CAACU,IAAI,EAAEV,IAAI,CAACW,KAAK,EAAEN,MAAM,CAAC;EAErE,MAAMO,UAAU,GAAGnB,iBAAiB,CAClCO,IAAI,CAACY,UAAU,EACfZ,IAAI,CAACa,WAAW,EAChBR,MACF,CAAC;EAED,oBACER,KAAA,CAACR,IAAI;IACHa,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAE,CACLW,MAAM,CAACC,SAAS,EAChB;MAAEC,GAAG,EAAEV,KAAK,GAAGF,KAAK,CAACa,OAAO,CAAC,CAAC,CAAC,GAAGb,KAAK,CAACa,OAAO,CAAC,CAAC;IAAE,CAAC,EACpDd,KAAK,CACL;IAAAF,QAAA,gBAEFJ,KAAA,CAACP,IAAI;MACH4B,OAAO,EAAEZ,KAAK,GAAG,YAAY,GAAG,aAAc;MAC9CH,KAAK,EAAE,CAACW,MAAM,CAACK,KAAK,EAAE;QAAEC,KAAK,EAAEhB,KAAK,CAACiB,MAAM,CAACC;MAAU,CAAC,CAAE;MAAArB,QAAA,GAExDM,MAAM,GAAG,GAAGA,MAAM,GAAG,GAAG,EAAE,EAC1BE,YAAY,EACZT,IAAI,CAACuB,QAAQ,iBACZ5B,IAAA,CAACL,IAAI;QAACa,KAAK,EAAE;UAAEiB,KAAK,EAAEhB,KAAK,CAACiB,MAAM,CAACG;QAAM,CAAE;QAAAvB,QAAA,EAAC;MAAE,CAAM,CACrD;IAAA,CACG,CAAC,EAENA,QAAQ,EAERW,UAAU,iBACTjB,IAAA,CAACL,IAAI;MACH4B,OAAO,EAAC,WAAW;MACnBf,KAAK,EAAE,CAAC;QAAEiB,KAAK,EAAEhB,KAAK,CAACiB,MAAM,CAACI;MAAiB,CAAC,CAAE;MAAAxB,QAAA,EAEnDW;IAAU,CACL,CACP;EAAA,CACG,CAAC;AAEX,CACF,CAAC;AAED,MAAME,MAAM,GAAG1B,UAAU,CAACsC,MAAM,CAAC;EAC/BX,SAAS,EAAE;IACTY,KAAK,EAAE;EACT,CAAC;EACDR,KAAK,EAAE;IACLS,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from "react";
4
+ import { useQuestionnaireForm } from "../../hooks/use-questionnaire-form.js";
4
5
  import { getOptionText } from "../../utils/fields/get-option-text.js";
5
6
  import { getOptionValue } from "../../utils/fields/get-option-value.js";
6
7
  import { QuestionnaireFieldWrapper, QuestionnaireOptionButton, QuestionnaireOptionsContainer } from "./common/index.js";
@@ -10,10 +11,11 @@ const MemoizedOptionButton = /*#__PURE__*/React.memo(({
10
11
  index,
11
12
  value,
12
13
  onChange,
14
+ locale,
13
15
  testID
14
16
  }) => {
15
17
  const optionValue = React.useMemo(() => getOptionValue(option), [option]);
16
- const optionText = React.useMemo(() => getOptionText(option), [option]);
18
+ const optionText = React.useMemo(() => getOptionText(option, locale), [option, locale]);
17
19
  const isSelected = React.useMemo(() => value === optionValue, [value, optionValue]);
18
20
  return /*#__PURE__*/_jsx(QuestionnaireOptionButton, {
19
21
  value: optionValue,
@@ -29,10 +31,13 @@ export const QuestionnaireChoiceField = /*#__PURE__*/React.memo(({
29
31
  onChange,
30
32
  testID
31
33
  }) => {
32
- if (!item.answerOption || item.answerOption.length === 0) {
34
+ const {
35
+ locale
36
+ } = useQuestionnaireForm();
37
+ const options = React.useMemo(() => item.answerOption || [], [item.answerOption]);
38
+ if (options.length === 0) {
33
39
  return null;
34
40
  }
35
- const options = React.useMemo(() => item.answerOption || [], [item.answerOption]);
36
41
  return /*#__PURE__*/_jsx(QuestionnaireFieldWrapper, {
37
42
  testID: testID,
38
43
  item: item,
@@ -44,6 +49,7 @@ export const QuestionnaireChoiceField = /*#__PURE__*/React.memo(({
44
49
  return /*#__PURE__*/_jsx(MemoizedOptionButton, {
45
50
  option: option,
46
51
  index: index,
52
+ locale: locale,
47
53
  onChange: onChange,
48
54
  testID: testID,
49
55
  value: value || ""
@@ -1 +1 @@
1
- {"version":3,"names":["React","getOptionText","getOptionValue","QuestionnaireFieldWrapper","QuestionnaireOptionButton","QuestionnaireOptionsContainer","jsx","_jsx","MemoizedOptionButton","memo","option","index","value","onChange","testID","optionValue","useMemo","optionText","isSelected","label","onPress","QuestionnaireChoiceField","item","answerOption","length","options","children","onValueChange","map"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/fields/questionnaire-choice-field.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAM9B,SAASC,aAAa,QAAQ,uCAAoC;AAClE,SAASC,cAAc,QAAQ,wCAAqC;AAEpE,SACEC,yBAAyB,EACzBC,yBAAyB,EACzBC,6BAA6B,QACxB,mBAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAiBlB,MAAMC,oBAAoB,gBAAGR,KAAK,CAACS,IAAI,CACrC,CAAC;EACCC,MAAM;EACNC,KAAK;EACLC,KAAK;EACLC,QAAQ;EACRC;AAC8B,CAAC,KAAK;EACpC,MAAMC,WAAW,GAAGf,KAAK,CAACgB,OAAO,CAAC,MAAMd,cAAc,CAACQ,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEzE,MAAMO,UAAU,GAAGjB,KAAK,CAACgB,OAAO,CAAC,MAAMf,aAAa,CAACS,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEvE,MAAMQ,UAAU,GAAGlB,KAAK,CAACgB,OAAO,CAC9B,MAAMJ,KAAK,KAAKG,WAAW,EAC3B,CAACH,KAAK,EAAEG,WAAW,CACrB,CAAC;EAED,oBACER,IAAA,CAACH,yBAAyB;IAExBQ,KAAK,EAAEG,WAAY;IACnBI,KAAK,EAAEF,UAAW;IAClBC,UAAU,EAAEA,UAAW;IACvBE,OAAO,EAAEA,CAAA,KAAMP,QAAQ,CAACE,WAAW,CAAE;IACrCD,MAAM,EAAE,GAAGA,MAAM,WAAWH,KAAK;EAAG,GAL/BA,KAMN,CAAC;AAEN,CACF,CAAC;AAED,OAAO,MAAMU,wBAAwB,gBAAGrB,KAAK,CAACS,IAAI,CAChD,CAAC;EAAEa,IAAI;EAAEV,KAAK;EAAEC,QAAQ;EAAEC;AAAsC,CAAC,KAAK;EACpE,IAAI,CAACQ,IAAI,CAACC,YAAY,IAAID,IAAI,CAACC,YAAY,CAACC,MAAM,KAAK,CAAC,EAAE;IACxD,OAAO,IAAI;EACb;EAEA,MAAMC,OAAO,GAAGzB,KAAK,CAACgB,OAAO,CAC3B,MAAMM,IAAI,CAACC,YAAY,IAAI,EAAE,EAC7B,CAACD,IAAI,CAACC,YAAY,CACpB,CAAC;EAED,oBACEhB,IAAA,CAACJ,yBAAyB;IAACW,MAAM,EAAEA,MAAO;IAACQ,IAAI,EAAEA,IAAK;IAAAI,QAAA,eACpDnB,IAAA,CAACF,6BAA6B;MAC5BO,KAAK,EAAEA,KAAK,IAAI,EAAG;MACnBe,aAAa,EAAEd,QAAS;MACxBC,MAAM,EAAE,GAAGA,MAAM,UAAW;MAAAY,QAAA,EAE3BD,OAAO,CAACG,GAAG,CAAC,CAAClB,MAAM,EAAEC,KAAK,KAAK;QAC9B,oBACEJ,IAAA,CAACC,oBAAoB;UAEnBE,MAAM,EAAEA,MAAO;UACfC,KAAK,EAAEA,KAAM;UACbE,QAAQ,EAAEA,QAAS;UACnBC,MAAM,EAAEA,MAAO;UACfF,KAAK,EAAEA,KAAK,IAAI;QAAG,GALdD,KAMN,CAAC;MAEN,CAAC;IAAC,CAC2B;EAAC,CACP,CAAC;AAEhC,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useQuestionnaireForm","getOptionText","getOptionValue","QuestionnaireFieldWrapper","QuestionnaireOptionButton","QuestionnaireOptionsContainer","jsx","_jsx","MemoizedOptionButton","memo","option","index","value","onChange","locale","testID","optionValue","useMemo","optionText","isSelected","label","onPress","QuestionnaireChoiceField","item","options","answerOption","length","children","onValueChange","map"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/fields/questionnaire-choice-field.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,oBAAoB,QAAQ,uCAAoC;AAKzE,SAASC,aAAa,QAAQ,uCAAoC;AAClE,SAASC,cAAc,QAAQ,wCAAqC;AAEpE,SACEC,yBAAyB,EACzBC,yBAAyB,EACzBC,6BAA6B,QACxB,mBAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAkBlB,MAAMC,oBAAoB,gBAAGT,KAAK,CAACU,IAAI,CACrC,CAAC;EACCC,MAAM;EACNC,KAAK;EACLC,KAAK;EACLC,QAAQ;EACRC,MAAM;EACNC;AAC8B,CAAC,KAAK;EACpC,MAAMC,WAAW,GAAGjB,KAAK,CAACkB,OAAO,CAAC,MAAMf,cAAc,CAACQ,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEzE,MAAMQ,UAAU,GAAGnB,KAAK,CAACkB,OAAO,CAC9B,MAAMhB,aAAa,CAACS,MAAM,EAAEI,MAAM,CAAC,EACnC,CAACJ,MAAM,EAAEI,MAAM,CACjB,CAAC;EAED,MAAMK,UAAU,GAAGpB,KAAK,CAACkB,OAAO,CAC9B,MAAML,KAAK,KAAKI,WAAW,EAC3B,CAACJ,KAAK,EAAEI,WAAW,CACrB,CAAC;EAED,oBACET,IAAA,CAACH,yBAAyB;IAExBQ,KAAK,EAAEI,WAAY;IACnBI,KAAK,EAAEF,UAAW;IAClBC,UAAU,EAAEA,UAAW;IACvBE,OAAO,EAAEA,CAAA,KAAMR,QAAQ,CAACG,WAAW,CAAE;IACrCD,MAAM,EAAE,GAAGA,MAAM,WAAWJ,KAAK;EAAG,GAL/BA,KAMN,CAAC;AAEN,CACF,CAAC;AAED,OAAO,MAAMW,wBAAwB,gBAAGvB,KAAK,CAACU,IAAI,CAChD,CAAC;EAAEc,IAAI;EAAEX,KAAK;EAAEC,QAAQ;EAAEE;AAAsC,CAAC,KAAK;EACpE,MAAM;IAAED;EAAO,CAAC,GAAGd,oBAAoB,CAAC,CAAC;EAEzC,MAAMwB,OAAO,GAAGzB,KAAK,CAACkB,OAAO,CAC3B,MAAMM,IAAI,CAACE,YAAY,IAAI,EAAE,EAC7B,CAACF,IAAI,CAACE,YAAY,CACpB,CAAC;EAED,IAAID,OAAO,CAACE,MAAM,KAAK,CAAC,EAAE;IACxB,OAAO,IAAI;EACb;EAEA,oBACEnB,IAAA,CAACJ,yBAAyB;IAACY,MAAM,EAAEA,MAAO;IAACQ,IAAI,EAAEA,IAAK;IAAAI,QAAA,eACpDpB,IAAA,CAACF,6BAA6B;MAC5BO,KAAK,EAAEA,KAAK,IAAI,EAAG;MACnBgB,aAAa,EAAEf,QAAS;MACxBE,MAAM,EAAE,GAAGA,MAAM,UAAW;MAAAY,QAAA,EAE3BH,OAAO,CAACK,GAAG,CAAC,CAACnB,MAAM,EAAEC,KAAK,KAAK;QAC9B,oBACEJ,IAAA,CAACC,oBAAoB;UAEnBE,MAAM,EAAEA,MAAO;UACfC,KAAK,EAAEA,KAAM;UACbG,MAAM,EAAEA,MAAO;UACfD,QAAQ,EAAEA,QAAS;UACnBE,MAAM,EAAEA,MAAO;UACfH,KAAK,EAAEA,KAAK,IAAI;QAAG,GANdD,KAON,CAAC;MAEN,CAAC;IAAC,CAC2B;EAAC,CACP,CAAC;AAEhC,CACF,CAAC","ignoreList":[]}
@@ -7,12 +7,14 @@ import DateTimePickerModal from "react-native-modal-datetime-picker";
7
7
  import { Text } from "react-native-paper";
8
8
  import { useAppTheme } from "../../../theme/index.js";
9
9
  import { useQuestionnaireForm } from "../../hooks/index.js";
10
+ import { isQuestionnaireDateOutsideBounds, parseQuestionnaireDate } from "../../utils/questionnaire-date-utils.js";
10
11
  import { QuestionnaireFieldWrapper } from "./common/index.js";
11
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
13
  export const QuestionnaireDateField = /*#__PURE__*/React.memo(({
13
14
  item,
14
15
  value,
15
16
  onChange,
17
+ constraints,
16
18
  testID
17
19
  }) => {
18
20
  const theme = useAppTheme();
@@ -20,6 +22,9 @@ export const QuestionnaireDateField = /*#__PURE__*/React.memo(({
20
22
  const {
21
23
  paged
22
24
  } = useQuestionnaireForm();
25
+ const minimumDate = parseQuestionnaireDate(constraints?.minValue, item.type, "minimum");
26
+ const maximumDate = parseQuestionnaireDate(constraints?.maxValue, item.type, "maximum");
27
+ const initialPickerDate = parseQuestionnaireDate(value, item.type, "minimum");
23
28
  const showPicker = React.useCallback(() => setPickerVisible(true), []);
24
29
  const hidePicker = React.useCallback(() => setPickerVisible(false), []);
25
30
  const handleConfirm = React.useCallback(selectedDate => {
@@ -38,22 +43,22 @@ export const QuestionnaireDateField = /*#__PURE__*/React.memo(({
38
43
  }
39
44
  },
40
45
  time: () => {
41
- const timeString = selectedDate.toLocaleTimeString([], {
42
- hour: "2-digit",
43
- minute: "2-digit"
44
- });
46
+ const timeString = [selectedDate.getHours(), selectedDate.getMinutes(), selectedDate.getSeconds()].map(part => String(part).padStart(2, "0")).join(":");
45
47
  if (timeString) {
46
48
  onChange(timeString);
47
49
  }
48
50
  }
49
51
  };
52
+ if (isQuestionnaireDateOutsideBounds(selectedDate, item.type, minimumDate, maximumDate)) {
53
+ return;
54
+ }
50
55
  actionMap[item.type]();
51
- }, [hidePicker, onChange, item.type]);
56
+ }, [hidePicker, maximumDate, minimumDate, onChange, item.type]);
52
57
  const formattedDate = React.useMemo(() => {
53
58
  if (!value) {
54
59
  return "Select a date";
55
60
  }
56
- const dateObj = new Date(value);
61
+ const dateObj = parseQuestionnaireDate(value, item.type, "minimum") ?? new Date(value);
57
62
  const actionMap = {
58
63
  dateTime: () => {
59
64
  const dateFormatted = dateObj.toLocaleDateString();
@@ -67,7 +72,10 @@ export const QuestionnaireDateField = /*#__PURE__*/React.memo(({
67
72
  return dateObj.toLocaleDateString();
68
73
  },
69
74
  time: () => {
70
- return value;
75
+ return dateObj.toLocaleTimeString([], {
76
+ hour: "2-digit",
77
+ minute: "2-digit"
78
+ });
71
79
  }
72
80
  };
73
81
  return actionMap[item.type]();
@@ -95,7 +103,9 @@ export const QuestionnaireDateField = /*#__PURE__*/React.memo(({
95
103
  mode: item.type.toLowerCase(),
96
104
  onConfirm: handleConfirm,
97
105
  onCancel: hidePicker,
98
- date: value ? new Date(value) : new Date(),
106
+ date: initialPickerDate ?? new Date(),
107
+ minimumDate: minimumDate,
108
+ maximumDate: maximumDate,
99
109
  testID: `${testID}-picker`,
100
110
  display: "inline"
101
111
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","StyleSheet","TouchableOpacity","DateTimePickerModal","Text","useAppTheme","useQuestionnaireForm","QuestionnaireFieldWrapper","jsx","_jsx","jsxs","_jsxs","QuestionnaireDateField","memo","item","value","onChange","testID","theme","isPickerVisible","setPickerVisible","paged","showPicker","useCallback","hidePicker","handleConfirm","selectedDate","actionMap","dateTime","dateTimeString","toISOString","date","dateString","getFullYear","String","getMonth","padStart","getDate","time","timeString","toLocaleTimeString","hour","minute","type","formattedDate","useMemo","dateObj","Date","dateFormatted","toLocaleDateString","timeFormatted","children","onPress","style","styles","datePickerContainer","borderColor","colors","outline","backgroundColor","surface","borderRadius","padding","spacing","variant","color","onSurface","isVisible","mode","toLowerCase","onConfirm","onCancel","display","create","borderWidth","alignItems"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/fields/questionnaire-date-field.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","StyleSheet","TouchableOpacity","DateTimePickerModal","Text","useAppTheme","useQuestionnaireForm","isQuestionnaireDateOutsideBounds","parseQuestionnaireDate","QuestionnaireFieldWrapper","jsx","_jsx","jsxs","_jsxs","QuestionnaireDateField","memo","item","value","onChange","constraints","testID","theme","isPickerVisible","setPickerVisible","paged","minimumDate","minValue","type","maximumDate","maxValue","initialPickerDate","showPicker","useCallback","hidePicker","handleConfirm","selectedDate","actionMap","dateTime","dateTimeString","toISOString","date","dateString","getFullYear","String","getMonth","padStart","getDate","time","timeString","getHours","getMinutes","getSeconds","map","part","join","formattedDate","useMemo","dateObj","Date","dateFormatted","toLocaleDateString","timeFormatted","toLocaleTimeString","hour","minute","children","onPress","style","styles","datePickerContainer","borderColor","colors","outline","backgroundColor","surface","borderRadius","padding","spacing","variant","color","onSurface","isVisible","mode","toLowerCase","onConfirm","onCancel","display","create","borderWidth","alignItems"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/fields/questionnaire-date-field.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,23 +1,52 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from "react";
4
+ import { useTranslation } from "react-i18next";
5
+ import { Text } from "react-native-paper";
4
6
  import { getKeyboardType } from "../../utils/fields/get-keyboard-type.js";
7
+ import { getQuestionnaireItemConstraints } from "../../utils/questionnaire-item-constraints.js";
8
+ import { getQuestionnaireNumericPickerOptions } from "../../utils/questionnaire-picker-options.js";
9
+ import { translateFhirText } from "../../utils/translate-fhir-text.js";
5
10
  import { QuestionnaireBooleanField } from "./questionnaire-boolean-field.js";
6
11
  import { QuestionnaireChoiceField } from "./questionnaire-choice-field.js";
7
12
  import { QuestionnaireDateField } from "./questionnaire-date-field.js";
8
13
  import { QuestionnaireTextField } from "./questionnaire-text-field.js";
9
- import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
15
  export const QuestionnaireItemRenderer = /*#__PURE__*/React.memo(({
11
16
  item,
12
17
  value,
13
18
  onChange,
19
+ locale,
20
+ renderItem,
21
+ constraints,
14
22
  testID
15
23
  }) => {
16
24
  const extendedItem = item;
25
+ const {
26
+ t
27
+ } = useTranslation();
28
+ const resolvedConstraints = constraints ?? getQuestionnaireItemConstraints(extendedItem);
17
29
  const keyboardType = React.useMemo(() => getKeyboardType(item.type), [item.type]);
18
30
  const handleChange = React.useCallback(val => {
19
31
  onChange(val);
20
32
  }, [onChange]);
33
+ if (renderItem && item.type !== "group") {
34
+ return renderItem({
35
+ item: extendedItem,
36
+ value,
37
+ constraints: resolvedConstraints,
38
+ onChange,
39
+ locale,
40
+ testID
41
+ });
42
+ }
43
+ if (item.type === "display") {
44
+ return /*#__PURE__*/_jsx(Text, {
45
+ accessibilityRole: "text",
46
+ testID: testID,
47
+ children: translateFhirText(item.text, extendedItem._text, locale)
48
+ });
49
+ }
21
50
  switch (item.type) {
22
51
  case "boolean":
23
52
  return /*#__PURE__*/_jsx(QuestionnaireBooleanField, {
@@ -39,6 +68,7 @@ export const QuestionnaireItemRenderer = /*#__PURE__*/React.memo(({
39
68
  return /*#__PURE__*/_jsx(QuestionnaireDateField, {
40
69
  testID: testID,
41
70
  item: extendedItem,
71
+ constraints: resolvedConstraints,
42
72
  value: value,
43
73
  onChange: handleChange
44
74
  });
@@ -49,12 +79,21 @@ export const QuestionnaireItemRenderer = /*#__PURE__*/React.memo(({
49
79
  return /*#__PURE__*/_jsx(QuestionnaireTextField, {
50
80
  testID: testID,
51
81
  item: extendedItem,
82
+ constraints: resolvedConstraints,
52
83
  value: value,
53
84
  onChange: handleChange,
54
- keyboardType: keyboardType
85
+ keyboardType: keyboardType,
86
+ numericOptions: getQuestionnaireNumericPickerOptions(extendedItem, resolvedConstraints, locale)
55
87
  });
56
88
  default:
57
- return null;
89
+ return /*#__PURE__*/_jsxs(Text, {
90
+ accessibilityRole: "alert",
91
+ testID: testID,
92
+ children: [translateFhirText(item.text, extendedItem._text, locale), "\n", t("questionnaire-form.item.unsupported", {
93
+ type: item.type,
94
+ defaultValue: `This question type (${item.type}) is not supported. You can continue without answering it.`
95
+ })]
96
+ });
58
97
  }
59
98
  });
60
99
  //# sourceMappingURL=questionnaire-item-renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","getKeyboardType","QuestionnaireBooleanField","QuestionnaireChoiceField","QuestionnaireDateField","QuestionnaireTextField","jsx","_jsx","QuestionnaireItemRenderer","memo","item","value","onChange","testID","extendedItem","keyboardType","useMemo","type","handleChange","useCallback","val"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B,SAASC,eAAe,QAAQ,yCAAsC;AAEtE,SAASC,yBAAyB,QAAQ,kCAA+B;AACzE,SAASC,wBAAwB,QAAQ,iCAA8B;AACvE,SAASC,sBAAsB,QAAQ,+BAA4B;AACnE,SAASC,sBAAsB,QAAQ,+BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASpE,OAAO,MAAMC,yBAAyB,gBAAGR,KAAK,CAACS,IAAI,CACjD,CAAC;EAAEC,IAAI;EAAEC,KAAK;EAAEC,QAAQ;EAAEC;AAAuC,CAAC,KAAK;EACrE,MAAMC,YAAY,GAAGJ,IAAiC;EAEtD,MAAMK,YAAY,GAAGf,KAAK,CAACgB,OAAO,CAChC,MAAMf,eAAe,CAACS,IAAI,CAACO,IAAI,CAAC,EAChC,CAACP,IAAI,CAACO,IAAI,CACZ,CAAC;EAED,MAAMC,YAAY,GAAGlB,KAAK,CAACmB,WAAW,CACnCC,GAAqB,IAAK;IACzBR,QAAQ,CAACQ,GAAG,CAAC;EACf,CAAC,EACD,CAACR,QAAQ,CACX,CAAC;EAED,QAAQF,IAAI,CAACO,IAAI;IACf,KAAK,SAAS;MACZ,oBACEV,IAAA,CAACL,yBAAyB;QACxBW,MAAM,EAAEA,MAAO;QACfH,IAAI,EAAEI,YAAa;QACnBH,KAAK,EAAEA,KAAwB;QAC/BC,QAAQ,EAAEM;MAAa,CACxB,CAAC;IAEN,KAAK,QAAQ;MACX,oBACEX,IAAA,CAACJ,wBAAwB;QACvBU,MAAM,EAAEA,MAAO;QACfH,IAAI,EAAEI,YAAa;QACnBH,KAAK,EAAEA,KAAgB;QACvBC,QAAQ,EAAEM;MAAa,CACxB,CAAC;IAEN,KAAK,MAAM;IACX,KAAK,MAAM;IACX,KAAK,UAAU;MACb,oBACEX,IAAA,CAACH,sBAAsB;QACrBS,MAAM,EAAEA,MAAO;QACfH,IAAI,EACFI,YACD;QACDH,KAAK,EAAEA,KAAgB;QACvBC,QAAQ,EAAEM;MAAa,CACxB,CAAC;IAEN,KAAK,SAAS;IACd,KAAK,SAAS;IACd,KAAK,QAAQ;IACb,KAAK,MAAM;MACT,oBACEX,IAAA,CAACF,sBAAsB;QACrBQ,MAAM,EAAEA,MAAO;QACfH,IAAI,EAAEI,YAAa;QACnBH,KAAK,EAAEA,KAAgB;QACvBC,QAAQ,EAAEM,YAAa;QACvBH,YAAY,EAAEA;MAAa,CAC5B,CAAC;IAEN;MACE,OAAO,IAAI;EACf;AACF,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useTranslation","Text","getKeyboardType","getQuestionnaireItemConstraints","getQuestionnaireNumericPickerOptions","translateFhirText","QuestionnaireBooleanField","QuestionnaireChoiceField","QuestionnaireDateField","QuestionnaireTextField","jsx","_jsx","jsxs","_jsxs","QuestionnaireItemRenderer","memo","item","value","onChange","locale","renderItem","constraints","testID","extendedItem","t","resolvedConstraints","keyboardType","useMemo","type","handleChange","useCallback","val","accessibilityRole","children","text","_text","numericOptions","defaultValue"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/fields/questionnaire-item-renderer.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from "react";
4
+ import { useTranslation } from "react-i18next";
4
5
  import { StyleSheet, TextInput } from "react-native";
6
+ import { ValueWheelPicker } from "../../../picker-sheet/components/value-wheel-picker.js";
5
7
  import { useAppTheme } from "../../../theme/index.js";
8
+ import { useQuestionnaireForm } from "../../hooks/index.js";
9
+ import { translateFhirText } from "../../utils/translate-fhir-text.js";
6
10
  import { QuestionnaireFieldWrapper } from "./common/index.js";
7
11
  import { jsx as _jsx } from "react/jsx-runtime";
8
12
  export const QuestionnaireTextField = ({
@@ -10,9 +14,29 @@ export const QuestionnaireTextField = ({
10
14
  value,
11
15
  onChange,
12
16
  testID,
13
- keyboardType = "default"
17
+ keyboardType = "default",
18
+ constraints,
19
+ numericOptions
14
20
  }) => {
15
21
  const theme = useAppTheme();
22
+ const {
23
+ t
24
+ } = useTranslation();
25
+ const {
26
+ locale
27
+ } = useQuestionnaireForm();
28
+ const accessibilityHint = [constraints?.minValue !== undefined ? t("questionnaire-form.constraints.minimum", {
29
+ value: constraints.minValue,
30
+ defaultValue: `Minimum ${constraints.minValue}`
31
+ }) : undefined, constraints?.maxValue !== undefined ? t("questionnaire-form.constraints.maximum", {
32
+ value: constraints.maxValue,
33
+ defaultValue: `Maximum ${constraints.maxValue}`
34
+ }) : undefined, constraints?.step !== undefined ? t("questionnaire-form.constraints.step", {
35
+ value: constraints.step,
36
+ defaultValue: `Step ${constraints.step}`
37
+ }) : undefined].filter(Boolean).join(". ");
38
+ const placeholder = translateFhirText(item.placeholder, item._placeholder, locale);
39
+ const handleNumericChange = React.useCallback(numericValue => onChange(String(numericValue)), [onChange]);
16
40
  const handleChangeText = React.useCallback(text => {
17
41
  if (item.type === "decimal") {
18
42
  if (text === "" || /^-?\d*\.?\d*$/.test(text)) {
@@ -29,11 +53,25 @@ export const QuestionnaireTextField = ({
29
53
  return /*#__PURE__*/_jsx(QuestionnaireFieldWrapper, {
30
54
  testID: testID,
31
55
  item: item,
32
- children: /*#__PURE__*/_jsx(TextInput, {
56
+ children: numericOptions && numericOptions.length > 1 ? /*#__PURE__*/_jsx(ValueWheelPicker, {
57
+ options: numericOptions,
58
+ value: value === undefined || value === "" ? undefined : Number(value),
59
+ onChange: handleNumericChange,
60
+ accessibilityLabel: translateFhirText(item.text, item._text, locale),
61
+ accessibilityHint: accessibilityHint || undefined,
62
+ accessibilityIncrementLabel: t("questionnaire-form.picker.increase", {
63
+ defaultValue: "Increase value"
64
+ }),
65
+ accessibilityDecrementLabel: t("questionnaire-form.picker.decrease", {
66
+ defaultValue: "Decrease value"
67
+ })
68
+ }) : /*#__PURE__*/_jsx(TextInput, {
33
69
  value: value || "",
34
70
  onChangeText: handleChangeText,
35
- placeholder: item.placeholder,
71
+ placeholder: placeholder,
36
72
  keyboardType: keyboardType,
73
+ maxLength: constraints?.maxLength,
74
+ accessibilityHint: accessibilityHint || undefined,
37
75
  style: [styles.input, {
38
76
  borderColor: theme.colors.outline,
39
77
  backgroundColor: theme.colors.surface,