@aehrc/smart-forms-renderer 1.0.0-alpha.99 → 1.1.0

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 (930) hide show
  1. package/README.md +4 -1
  2. package/lib/api/callback.js +6 -15
  3. package/lib/api/callback.js.map +1 -1
  4. package/lib/api/smartClient.js +6 -21
  5. package/lib/api/smartClient.js.map +1 -1
  6. package/lib/components/Checkbox.styles.js +21 -19
  7. package/lib/components/Checkbox.styles.js.map +1 -1
  8. package/lib/components/ExpressionUpdateFadingGlow.styles.d.ts +2 -2
  9. package/lib/components/ExpressionUpdateFadingGlow.styles.js +12 -9
  10. package/lib/components/ExpressionUpdateFadingGlow.styles.js.map +1 -1
  11. package/lib/components/FormComponents/AttachmentItem/AttachmentField.d.ts +2 -2
  12. package/lib/components/FormComponents/AttachmentItem/AttachmentField.js +3 -3
  13. package/lib/components/FormComponents/AttachmentItem/AttachmentField.js.map +1 -1
  14. package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.d.ts +2 -2
  15. package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.js +1 -1
  16. package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.js.map +1 -1
  17. package/lib/components/FormComponents/AttachmentItem/AttachmentFileCollector.d.ts +2 -2
  18. package/lib/components/FormComponents/AttachmentItem/AttachmentFileCollector.js +1 -2
  19. package/lib/components/FormComponents/AttachmentItem/AttachmentFileCollector.js.map +1 -1
  20. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.d.ts +2 -2
  21. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.js +4 -5
  22. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.js.map +1 -1
  23. package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js +27 -37
  24. package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js.map +1 -1
  25. package/lib/components/FormComponents/AttachmentItem/AttachmentUrlField.d.ts +2 -2
  26. package/lib/components/FormComponents/AttachmentItem/AttachmentUrlField.js +3 -3
  27. package/lib/components/FormComponents/AttachmentItem/AttachmentUrlField.js.map +1 -1
  28. package/lib/components/FormComponents/BooleanItem/BooleanField.js +6 -7
  29. package/lib/components/FormComponents/BooleanItem/BooleanField.js.map +1 -1
  30. package/lib/components/FormComponents/BooleanItem/BooleanItem.js +33 -24
  31. package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
  32. package/lib/components/FormComponents/ChoiceItems/CheckboxOptionList.js +1 -2
  33. package/lib/components/FormComponents/ChoiceItems/CheckboxOptionList.js.map +1 -1
  34. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.d.ts +2 -2
  35. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js +12 -7
  36. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js.map +1 -1
  37. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.d.ts +2 -7
  38. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +17 -31
  39. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
  40. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.js.map +1 -1
  41. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.d.ts +2 -7
  42. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +29 -17
  43. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
  44. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.js +17 -1
  45. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.js.map +1 -1
  46. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.d.ts +2 -8
  47. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +12 -16
  48. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  49. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.d.ts +2 -7
  50. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js +30 -15
  51. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js.map +1 -1
  52. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js.map +1 -1
  53. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.d.ts +2 -7
  54. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +32 -29
  55. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
  56. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.d.ts +1 -1
  57. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js +2 -2
  58. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js.map +1 -1
  59. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js +17 -1
  60. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js.map +1 -1
  61. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.d.ts +2 -7
  62. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +15 -27
  63. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
  64. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.js +9 -6
  65. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.js.map +1 -1
  66. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.d.ts +2 -2
  67. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +28 -8
  68. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -1
  69. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.d.ts +2 -7
  70. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +14 -28
  71. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
  72. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.d.ts +2 -2
  73. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js +4 -20
  74. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js.map +1 -1
  75. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.d.ts +2 -2
  76. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +19 -14
  77. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js.map +1 -1
  78. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.d.ts +2 -7
  79. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +16 -32
  80. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
  81. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.d.ts +2 -3
  82. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.js +9 -10
  83. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.js.map +1 -1
  84. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js +17 -38
  85. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js.map +1 -1
  86. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/DatePicker.js +1 -1
  87. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/DatePicker.js.map +1 -1
  88. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/DatePickerButton.js +3 -3
  89. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/DatePickerButton.js.map +1 -1
  90. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js +19 -56
  91. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js.map +1 -1
  92. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.d.ts +2 -3
  93. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.js +25 -9
  94. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.js.map +1 -1
  95. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/DateTimeField.d.ts +2 -5
  96. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/DateTimeField.js +19 -3
  97. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/DateTimeField.js.map +1 -1
  98. package/lib/components/FormComponents/DecimalItem/DecimalField.d.ts +2 -3
  99. package/lib/components/FormComponents/DecimalItem/DecimalField.js +6 -6
  100. package/lib/components/FormComponents/DecimalItem/DecimalField.js.map +1 -1
  101. package/lib/components/FormComponents/DecimalItem/DecimalItem.js +22 -45
  102. package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
  103. package/lib/components/FormComponents/DisplayItem/DisplayItem.js +1 -1
  104. package/lib/components/FormComponents/DisplayItem/DisplayItem.js.map +1 -1
  105. package/lib/components/FormComponents/GridGroup/GridGroup.d.ts +2 -2
  106. package/lib/components/FormComponents/GridGroup/GridGroup.js +29 -20
  107. package/lib/components/FormComponents/GridGroup/GridGroup.js.map +1 -1
  108. package/lib/components/FormComponents/GridGroup/GridRow.d.ts +6 -2
  109. package/lib/components/FormComponents/GridGroup/GridRow.js +7 -9
  110. package/lib/components/FormComponents/GridGroup/GridRow.js.map +1 -1
  111. package/lib/components/FormComponents/GridGroup/GridTable.d.ts +6 -2
  112. package/lib/components/FormComponents/GridGroup/GridTable.js +7 -4
  113. package/lib/components/FormComponents/GridGroup/GridTable.js.map +1 -1
  114. package/lib/components/FormComponents/GroupItem/GroupHeading.js +4 -4
  115. package/lib/components/FormComponents/GroupItem/GroupHeading.js.map +1 -1
  116. package/lib/components/FormComponents/GroupItem/GroupItem.d.ts +2 -2
  117. package/lib/components/FormComponents/GroupItem/GroupItem.js +8 -8
  118. package/lib/components/FormComponents/GroupItem/GroupItem.js.map +1 -1
  119. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.d.ts +2 -2
  120. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +11 -11
  121. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
  122. package/lib/components/FormComponents/GroupItem/GroupItemView.d.ts +2 -2
  123. package/lib/components/FormComponents/GroupItem/GroupItemView.js +8 -10
  124. package/lib/components/FormComponents/GroupItem/GroupItemView.js.map +1 -1
  125. package/lib/components/FormComponents/GroupItem/PageButtonWrapper.js +2 -2
  126. package/lib/components/FormComponents/GroupItem/PageButtonWrapper.js.map +1 -1
  127. package/lib/components/FormComponents/GroupItem/TabButtonsWrapper.js +2 -2
  128. package/lib/components/FormComponents/GroupItem/TabButtonsWrapper.js.map +1 -1
  129. package/lib/components/FormComponents/IntegerItem/IntegerField.d.ts +2 -3
  130. package/lib/components/FormComponents/IntegerItem/IntegerField.js +6 -6
  131. package/lib/components/FormComponents/IntegerItem/IntegerField.js.map +1 -1
  132. package/lib/components/FormComponents/IntegerItem/IntegerItem.js +20 -40
  133. package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
  134. package/lib/components/FormComponents/ItemParts/CheckboxFormGroup.d.ts +1 -1
  135. package/lib/components/FormComponents/ItemParts/CheckboxFormGroup.js +10 -11
  136. package/lib/components/FormComponents/ItemParts/CheckboxFormGroup.js.map +1 -1
  137. package/lib/components/FormComponents/ItemParts/CheckboxSingle.js +10 -7
  138. package/lib/components/FormComponents/ItemParts/CheckboxSingle.js.map +1 -1
  139. package/lib/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.js +9 -7
  140. package/lib/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.js.map +1 -1
  141. package/lib/components/FormComponents/ItemParts/ClearButtonAdornment.js +1 -2
  142. package/lib/components/FormComponents/ItemParts/ClearButtonAdornment.js.map +1 -1
  143. package/lib/components/FormComponents/ItemParts/ClearInputButton.d.ts +1 -1
  144. package/lib/components/FormComponents/ItemParts/ClearInputButton.js +9 -7
  145. package/lib/components/FormComponents/ItemParts/ClearInputButton.js.map +1 -1
  146. package/lib/components/FormComponents/ItemParts/DisplayUnitText.js +2 -2
  147. package/lib/components/FormComponents/ItemParts/DisplayUnitText.js.map +1 -1
  148. package/lib/components/FormComponents/ItemParts/ExpressionUpdateFadingIcon.js +6 -2
  149. package/lib/components/FormComponents/ItemParts/ExpressionUpdateFadingIcon.js.map +1 -1
  150. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js +3 -3
  151. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js.map +1 -1
  152. package/lib/components/FormComponents/ItemParts/ItemLabel.js +10 -9
  153. package/lib/components/FormComponents/ItemParts/ItemLabel.js.map +1 -1
  154. package/lib/components/FormComponents/ItemParts/ItemRepopulateButton.js +30 -48
  155. package/lib/components/FormComponents/ItemParts/ItemRepopulateButton.js.map +1 -1
  156. package/lib/components/FormComponents/ItemParts/ItemTextSwitcher.js +6 -5
  157. package/lib/components/FormComponents/ItemParts/ItemTextSwitcher.js.map +1 -1
  158. package/lib/components/FormComponents/ItemParts/OpenLabelField.js +4 -4
  159. package/lib/components/FormComponents/ItemParts/OpenLabelField.js.map +1 -1
  160. package/lib/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.js +1 -1
  161. package/lib/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.js.map +1 -1
  162. package/lib/components/FormComponents/ItemParts/RadioFormGroup.d.ts +1 -1
  163. package/lib/components/FormComponents/ItemParts/RadioFormGroup.js +12 -13
  164. package/lib/components/FormComponents/ItemParts/RadioFormGroup.js.map +1 -1
  165. package/lib/components/FormComponents/ItemParts/RadioOptionList.js +1 -2
  166. package/lib/components/FormComponents/ItemParts/RadioOptionList.js.map +1 -1
  167. package/lib/components/FormComponents/ItemParts/RequiredAsterisk.js +4 -15
  168. package/lib/components/FormComponents/ItemParts/RequiredAsterisk.js.map +1 -1
  169. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.d.ts +2 -2
  170. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js +21 -16
  171. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js.map +1 -1
  172. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.d.ts +2 -7
  173. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +41 -21
  174. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
  175. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.js +1 -1
  176. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.js.map +1 -1
  177. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.d.ts +2 -7
  178. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +18 -21
  179. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
  180. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetFields.js +18 -2
  181. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetFields.js.map +1 -1
  182. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.d.ts +2 -7
  183. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js +18 -21
  184. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  185. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.d.ts +2 -7
  186. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js +28 -13
  187. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js.map +1 -1
  188. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js.map +1 -1
  189. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.d.ts +2 -7
  190. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +26 -20
  191. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
  192. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.js +18 -2
  193. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.js.map +1 -1
  194. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.d.ts +2 -7
  195. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js +26 -17
  196. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js.map +1 -1
  197. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.d.ts +2 -2
  198. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js +10 -6
  199. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js.map +1 -1
  200. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.d.ts +2 -7
  201. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +25 -16
  202. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -1
  203. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.d.ts +2 -2
  204. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js +10 -6
  205. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js.map +1 -1
  206. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.d.ts +2 -7
  207. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +21 -15
  208. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -1
  209. package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.d.ts +2 -2
  210. package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.js +5 -5
  211. package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.js.map +1 -1
  212. package/lib/components/FormComponents/QuantityItem/QuantityField.d.ts +2 -3
  213. package/lib/components/FormComponents/QuantityItem/QuantityField.js +6 -6
  214. package/lib/components/FormComponents/QuantityItem/QuantityField.js.map +1 -1
  215. package/lib/components/FormComponents/QuantityItem/QuantityItem.js +31 -89
  216. package/lib/components/FormComponents/QuantityItem/QuantityItem.js.map +1 -1
  217. package/lib/components/FormComponents/QuantityItem/QuantityUnitField.d.ts +2 -2
  218. package/lib/components/FormComponents/QuantityItem/QuantityUnitField.js +4 -4
  219. package/lib/components/FormComponents/QuantityItem/QuantityUnitField.js.map +1 -1
  220. package/lib/components/FormComponents/RepeatGroup/AddItemButton.js +1 -2
  221. package/lib/components/FormComponents/RepeatGroup/AddItemButton.js.map +1 -1
  222. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.d.ts +2 -2
  223. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +4 -6
  224. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -1
  225. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.d.ts +2 -2
  226. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js +2 -2
  227. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js.map +1 -1
  228. package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.d.ts +3 -4
  229. package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js +3 -4
  230. package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js.map +1 -1
  231. package/lib/components/FormComponents/RepeatItem/AddItemButton.js +1 -1
  232. package/lib/components/FormComponents/RepeatItem/AddItemButton.js.map +1 -1
  233. package/lib/components/FormComponents/RepeatItem/RepeatField.d.ts +2 -2
  234. package/lib/components/FormComponents/RepeatItem/RepeatField.js +2 -3
  235. package/lib/components/FormComponents/RepeatItem/RepeatField.js.map +1 -1
  236. package/lib/components/FormComponents/RepeatItem/RepeatItem.d.ts +2 -2
  237. package/lib/components/FormComponents/RepeatItem/RepeatItem.js +17 -13
  238. package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
  239. package/lib/components/FormComponents/SingleItem/SingleItem.d.ts +2 -2
  240. package/lib/components/FormComponents/SingleItem/SingleItem.js +9 -9
  241. package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
  242. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.d.ts +2 -2
  243. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js +52 -31
  244. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -1
  245. package/lib/components/FormComponents/SingleItem/SingleItemView.d.ts +3 -4
  246. package/lib/components/FormComponents/SingleItem/SingleItemView.js +4 -5
  247. package/lib/components/FormComponents/SingleItem/SingleItemView.js.map +1 -1
  248. package/lib/components/FormComponents/SingleItem/SingleNestedItems.d.ts +2 -2
  249. package/lib/components/FormComponents/SingleItem/SingleNestedItems.js +8 -9
  250. package/lib/components/FormComponents/SingleItem/SingleNestedItems.js.map +1 -1
  251. package/lib/components/FormComponents/SliderItem/Slider.styles.js +23 -21
  252. package/lib/components/FormComponents/SliderItem/Slider.styles.js.map +1 -1
  253. package/lib/components/FormComponents/SliderItem/SliderField.d.ts +2 -2
  254. package/lib/components/FormComponents/SliderItem/SliderField.js +4 -4
  255. package/lib/components/FormComponents/SliderItem/SliderField.js.map +1 -1
  256. package/lib/components/FormComponents/SliderItem/SliderItem.js +10 -8
  257. package/lib/components/FormComponents/SliderItem/SliderItem.js.map +1 -1
  258. package/lib/components/FormComponents/StringItem/StringField.d.ts +2 -3
  259. package/lib/components/FormComponents/StringItem/StringField.js +22 -6
  260. package/lib/components/FormComponents/StringItem/StringField.js.map +1 -1
  261. package/lib/components/FormComponents/StringItem/StringItem.d.ts +2 -7
  262. package/lib/components/FormComponents/StringItem/StringItem.js +19 -55
  263. package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
  264. package/lib/components/FormComponents/Tables/GroupTable.d.ts +2 -2
  265. package/lib/components/FormComponents/Tables/GroupTable.js +33 -37
  266. package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -1
  267. package/lib/components/FormComponents/Tables/GroupTableBody.d.ts +7 -4
  268. package/lib/components/FormComponents/Tables/GroupTableBody.js +4 -5
  269. package/lib/components/FormComponents/Tables/GroupTableBody.js.map +1 -1
  270. package/lib/components/FormComponents/Tables/GroupTableRow.d.ts +7 -4
  271. package/lib/components/FormComponents/Tables/GroupTableRow.js +3 -3
  272. package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -1
  273. package/lib/components/FormComponents/Tables/GroupTableRowCells.d.ts +6 -2
  274. package/lib/components/FormComponents/Tables/GroupTableRowCells.js +5 -6
  275. package/lib/components/FormComponents/Tables/GroupTableRowCells.js.map +1 -1
  276. package/lib/components/FormComponents/Tables/GroupTableView.d.ts +7 -4
  277. package/lib/components/FormComponents/Tables/GroupTableView.js +8 -9
  278. package/lib/components/FormComponents/Tables/GroupTableView.js.map +1 -1
  279. package/lib/components/FormComponents/Tables/SelectRowButton.js +3 -4
  280. package/lib/components/FormComponents/Tables/SelectRowButton.js.map +1 -1
  281. package/lib/components/FormComponents/Tables/Table.styles.d.ts +2 -2
  282. package/lib/components/FormComponents/Tables/Table.styles.js +25 -20
  283. package/lib/components/FormComponents/Tables/Table.styles.js.map +1 -1
  284. package/lib/components/FormComponents/TextItem/TextField.d.ts +0 -1
  285. package/lib/components/FormComponents/TextItem/TextField.js +4 -4
  286. package/lib/components/FormComponents/TextItem/TextField.js.map +1 -1
  287. package/lib/components/FormComponents/TextItem/TextItem.js +14 -34
  288. package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
  289. package/lib/components/FormComponents/Textfield.styles.js +1 -1
  290. package/lib/components/FormComponents/Textfield.styles.js.map +1 -1
  291. package/lib/components/FormComponents/TimeItem/TimeField.d.ts +2 -2
  292. package/lib/components/FormComponents/TimeItem/TimeField.js +3 -2
  293. package/lib/components/FormComponents/TimeItem/TimeField.js.map +1 -1
  294. package/lib/components/FormComponents/TimeItem/TimeItem.js +8 -6
  295. package/lib/components/FormComponents/TimeItem/TimeItem.js.map +1 -1
  296. package/lib/components/FormComponents/UrlItem/UrlField.d.ts +2 -3
  297. package/lib/components/FormComponents/UrlItem/UrlField.js +5 -5
  298. package/lib/components/FormComponents/UrlItem/UrlField.js.map +1 -1
  299. package/lib/components/FormComponents/UrlItem/UrlItem.js +8 -17
  300. package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -1
  301. package/lib/components/Radio.styles.js +21 -19
  302. package/lib/components/Radio.styles.js.map +1 -1
  303. package/lib/components/Renderer/BaseRenderer.js +11 -15
  304. package/lib/components/Renderer/BaseRenderer.js.map +1 -1
  305. package/lib/components/Renderer/FormBodyCollapsible.d.ts +2 -2
  306. package/lib/components/Renderer/FormBodyCollapsible.js +5 -6
  307. package/lib/components/Renderer/FormBodyCollapsible.js.map +1 -1
  308. package/lib/components/Renderer/FormBodyPageContainer.d.ts +2 -2
  309. package/lib/components/Renderer/FormBodyPageContainer.js +7 -9
  310. package/lib/components/Renderer/FormBodyPageContainer.js.map +1 -1
  311. package/lib/components/Renderer/FormBodyPaginated.d.ts +2 -2
  312. package/lib/components/Renderer/FormBodyPaginated.js +11 -16
  313. package/lib/components/Renderer/FormBodyPaginated.js.map +1 -1
  314. package/lib/components/Renderer/FormBodySingleCollapsible.js +1 -2
  315. package/lib/components/Renderer/FormBodySingleCollapsible.js.map +1 -1
  316. package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.d.ts +2 -2
  317. package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.js +2 -2
  318. package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.js.map +1 -1
  319. package/lib/components/Renderer/FormBodyTabbed.d.ts +2 -2
  320. package/lib/components/Renderer/FormBodyTabbed.js +13 -15
  321. package/lib/components/Renderer/FormBodyTabbed.js.map +1 -1
  322. package/lib/components/Renderer/FormTopLevelItem.d.ts +2 -2
  323. package/lib/components/Renderer/FormTopLevelItem.js +12 -12
  324. package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
  325. package/lib/components/Renderer/SmartFormsRenderer.d.ts +4 -2
  326. package/lib/components/Renderer/SmartFormsRenderer.js +4 -2
  327. package/lib/components/Renderer/SmartFormsRenderer.js.map +1 -1
  328. package/lib/components/Tabs/FormBodySingleTab.d.ts +1 -0
  329. package/lib/components/Tabs/FormBodySingleTab.js +5 -2
  330. package/lib/components/Tabs/FormBodySingleTab.js.map +1 -1
  331. package/lib/components/Tabs/FormBodyTabList.js +2 -3
  332. package/lib/components/Tabs/FormBodyTabList.js.map +1 -1
  333. package/lib/hooks/index.d.ts +0 -2
  334. package/lib/hooks/index.js +1 -3
  335. package/lib/hooks/index.js.map +1 -1
  336. package/lib/hooks/useAnswerOptionsToggleExpressions.js +6 -8
  337. package/lib/hooks/useAnswerOptionsToggleExpressions.js.map +1 -1
  338. package/lib/hooks/useAttachmentUrlValidation.js +1 -1
  339. package/lib/hooks/useAttachmentUrlValidation.js.map +1 -1
  340. package/lib/hooks/useBuildForm.d.ts +13 -15
  341. package/lib/hooks/useBuildForm.js +26 -22
  342. package/lib/hooks/useBuildForm.js.map +1 -1
  343. package/lib/hooks/useCalculatedExpressionUpdated.d.ts +7 -0
  344. package/lib/hooks/useCalculatedExpressionUpdated.js +31 -0
  345. package/lib/hooks/useCalculatedExpressionUpdated.js.map +1 -0
  346. package/lib/hooks/useCodingCalculatedExpression.d.ts +0 -13
  347. package/lib/hooks/useCodingCalculatedExpression.js +1 -74
  348. package/lib/hooks/useCodingCalculatedExpression.js.map +1 -1
  349. package/lib/hooks/useDateCalculatedExpression.d.ts +0 -12
  350. package/lib/hooks/useDateCalculatedExpression.js +1 -58
  351. package/lib/hooks/useDateCalculatedExpression.js.map +1 -1
  352. package/lib/hooks/useDateTimeCalculatedExpression.d.ts +0 -12
  353. package/lib/hooks/useDateTimeCalculatedExpression.js +1 -58
  354. package/lib/hooks/useDateTimeCalculatedExpression.js.map +1 -1
  355. package/lib/hooks/useDisplayCqfAndCalculatedExpression.d.ts +13 -1
  356. package/lib/hooks/useDisplayCqfAndCalculatedExpression.js +14 -4
  357. package/lib/hooks/useDisplayCqfAndCalculatedExpression.js.map +1 -1
  358. package/lib/hooks/useDynamicValueSetEffect.js +6 -16
  359. package/lib/hooks/useDynamicValueSetEffect.js.map +1 -1
  360. package/lib/hooks/useHidden.js +2 -2
  361. package/lib/hooks/useHidden.js.map +1 -1
  362. package/lib/hooks/useInitialiseForm.d.ts +3 -2
  363. package/lib/hooks/useInitialiseForm.js +10 -3
  364. package/lib/hooks/useInitialiseForm.js.map +1 -1
  365. package/lib/hooks/useInitialiseRepeatAnswers.js +5 -5
  366. package/lib/hooks/useInitialiseRepeatAnswers.js.map +1 -1
  367. package/lib/hooks/useParseXhtml.js +2 -2
  368. package/lib/hooks/useParseXhtml.js.map +1 -1
  369. package/lib/hooks/useReadOnly.js +2 -2
  370. package/lib/hooks/useReadOnly.js.map +1 -1
  371. package/lib/hooks/useRenderingExtensions.js +11 -14
  372. package/lib/hooks/useRenderingExtensions.js.map +1 -1
  373. package/lib/hooks/useResizeColumns.d.ts +8 -0
  374. package/lib/hooks/useResizeColumns.js +46 -0
  375. package/lib/hooks/useResizeColumns.js.map +1 -0
  376. package/lib/hooks/useSliderExtensions.js +5 -6
  377. package/lib/hooks/useSliderExtensions.js.map +1 -1
  378. package/lib/hooks/useTerminologyServerQuery.js +2 -3
  379. package/lib/hooks/useTerminologyServerQuery.js.map +1 -1
  380. package/lib/hooks/useValidationFeedback.js +2 -3
  381. package/lib/hooks/useValidationFeedback.js.map +1 -1
  382. package/lib/hooks/useValueSetCodings.js +6 -39
  383. package/lib/hooks/useValueSetCodings.js.map +1 -1
  384. package/lib/index.d.ts +5 -7
  385. package/lib/index.js +3 -4
  386. package/lib/index.js.map +1 -1
  387. package/lib/interfaces/calculatedExpression.interface.d.ts +1 -1
  388. package/lib/interfaces/overrideComponent.interface.d.ts +3 -4
  389. package/lib/interfaces/renderProps.interface.d.ts +6 -31
  390. package/lib/interfaces/valueSet.interface.d.ts +2 -2
  391. package/lib/stores/formUpdateQueueStore.d.ts +6 -13
  392. package/lib/stores/formUpdateQueueStore.js +9 -24
  393. package/lib/stores/formUpdateQueueStore.js.map +1 -1
  394. package/lib/stores/index.d.ts +3 -3
  395. package/lib/stores/index.js +2 -2
  396. package/lib/stores/index.js.map +1 -1
  397. package/lib/stores/questionnaireResponseStore.d.ts +6 -9
  398. package/lib/stores/questionnaireResponseStore.js +22 -28
  399. package/lib/stores/questionnaireResponseStore.js.map +1 -1
  400. package/lib/stores/questionnaireStore.d.ts +39 -35
  401. package/lib/stores/questionnaireStore.js +136 -146
  402. package/lib/stores/questionnaireStore.js.map +1 -1
  403. package/lib/stores/{rendererStylingStore.d.ts → rendererConfigStore.d.ts} +8 -8
  404. package/lib/stores/rendererConfigStore.js +65 -0
  405. package/lib/stores/rendererConfigStore.js.map +1 -0
  406. package/lib/stores/smartConfigStore.d.ts +3 -3
  407. package/lib/stores/smartConfigStore.js +3 -3
  408. package/lib/stores/terminologyServerStore.d.ts +2 -2
  409. package/lib/stores/terminologyServerStore.js +2 -2
  410. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.d.ts +1 -1
  411. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js +2 -2
  412. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js.map +1 -1
  413. package/lib/stories/testUtils.d.ts +23 -0
  414. package/lib/stories/testUtils.js +249 -0
  415. package/lib/stories/testUtils.js.map +1 -0
  416. package/lib/theme/rendererThemeOptions.js +1 -1
  417. package/lib/theme/rendererThemeOptions.js.map +1 -1
  418. package/lib/utils/answerOptionsToggleExpressions.d.ts +1 -1
  419. package/lib/utils/answerOptionsToggleExpressions.js +94 -111
  420. package/lib/utils/answerOptionsToggleExpressions.js.map +1 -1
  421. package/lib/utils/calculatedExpression.d.ts +39 -3
  422. package/lib/utils/calculatedExpression.js +426 -191
  423. package/lib/utils/calculatedExpression.js.map +1 -1
  424. package/lib/utils/choice.js +14 -11
  425. package/lib/utils/choice.js.map +1 -1
  426. package/lib/utils/columnWidth.d.ts +28 -0
  427. package/lib/utils/columnWidth.js +103 -0
  428. package/lib/utils/columnWidth.js.map +1 -0
  429. package/lib/utils/computedUpdates.js +14 -12
  430. package/lib/utils/computedUpdates.js.map +1 -1
  431. package/lib/utils/enableWhen.js +6 -8
  432. package/lib/utils/enableWhen.js.map +1 -1
  433. package/lib/utils/enableWhenExpression.d.ts +1 -1
  434. package/lib/utils/enableWhenExpression.js +143 -163
  435. package/lib/utils/enableWhenExpression.js.map +1 -1
  436. package/lib/utils/extensions.d.ts +9 -0
  437. package/lib/utils/extensions.js +77 -74
  438. package/lib/utils/extensions.js.map +1 -1
  439. package/lib/utils/extractObservation.js +37 -28
  440. package/lib/utils/extractObservation.js.map +1 -1
  441. package/lib/utils/fhirpath.d.ts +27 -21
  442. package/lib/utils/fhirpath.js +191 -171
  443. package/lib/utils/fhirpath.js.map +1 -1
  444. package/lib/utils/fileUtils.js +21 -32
  445. package/lib/utils/fileUtils.js.map +1 -1
  446. package/lib/utils/genericRecursive.js +4 -6
  447. package/lib/utils/genericRecursive.js.map +1 -1
  448. package/lib/utils/getExpressionsFromItem.js +59 -66
  449. package/lib/utils/getExpressionsFromItem.js.map +1 -1
  450. package/lib/utils/index.d.ts +2 -1
  451. package/lib/utils/index.js +1 -1
  452. package/lib/utils/index.js.map +1 -1
  453. package/lib/utils/initialise.js +88 -101
  454. package/lib/utils/initialise.js.map +1 -1
  455. package/lib/utils/inputSanitization.js +6 -6
  456. package/lib/utils/inputSanitization.js.map +1 -1
  457. package/lib/utils/itemPath.d.ts +2 -2
  458. package/lib/utils/manageForm.d.ts +87 -9
  459. package/lib/utils/manageForm.js +79 -54
  460. package/lib/utils/manageForm.js.map +1 -1
  461. package/lib/utils/misc.js +9 -9
  462. package/lib/utils/misc.js.map +1 -1
  463. package/lib/utils/openChoice.js +25 -23
  464. package/lib/utils/openChoice.js.map +1 -1
  465. package/lib/utils/page.js +3 -4
  466. package/lib/utils/page.js.map +1 -1
  467. package/lib/utils/parameterisedValueSets.d.ts +1 -1
  468. package/lib/utils/parameterisedValueSets.js +110 -124
  469. package/lib/utils/parameterisedValueSets.js.map +1 -1
  470. package/lib/utils/populateContexts.js +4 -5
  471. package/lib/utils/populateContexts.js.map +1 -1
  472. package/lib/utils/qItem.js +9 -21
  473. package/lib/utils/qItem.js.map +1 -1
  474. package/lib/utils/qrItem.js +2 -3
  475. package/lib/utils/qrItem.js.map +1 -1
  476. package/lib/utils/quantity.js +8 -9
  477. package/lib/utils/quantity.js.map +1 -1
  478. package/lib/utils/questionnaireStoreUtils/addDisplayToCodings.js +93 -111
  479. package/lib/utils/questionnaireStoreUtils/addDisplayToCodings.js.map +1 -1
  480. package/lib/utils/questionnaireStoreUtils/createQuestionnaireModel.js +48 -64
  481. package/lib/utils/questionnaireStoreUtils/createQuestionnaireModel.js.map +1 -1
  482. package/lib/utils/questionnaireStoreUtils/extractContainedValueSets.js +3 -5
  483. package/lib/utils/questionnaireStoreUtils/extractContainedValueSets.js.map +1 -1
  484. package/lib/utils/questionnaireStoreUtils/extractLaunchContext.js +1 -2
  485. package/lib/utils/questionnaireStoreUtils/extractLaunchContext.js.map +1 -1
  486. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js +200 -212
  487. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js.map +1 -1
  488. package/lib/utils/questionnaireStoreUtils/extractTabs.js +1 -1
  489. package/lib/utils/questionnaireStoreUtils/extractTabs.js.map +1 -1
  490. package/lib/utils/questionnaireStoreUtils/extractTargetConstraint.js +8 -9
  491. package/lib/utils/questionnaireStoreUtils/extractTargetConstraint.js.map +1 -1
  492. package/lib/utils/questionnaireStoreUtils/extractVariables.js +4 -10
  493. package/lib/utils/questionnaireStoreUtils/extractVariables.js.map +1 -1
  494. package/lib/utils/questionnaireStoreUtils/resolveValueSets.js +28 -37
  495. package/lib/utils/questionnaireStoreUtils/resolveValueSets.js.map +1 -1
  496. package/lib/utils/readValues.js +7 -7
  497. package/lib/utils/readValues.js.map +1 -1
  498. package/lib/utils/removeEmptyAnswers.js +11 -9
  499. package/lib/utils/removeEmptyAnswers.js.map +1 -1
  500. package/lib/utils/removeRepeatId.js +17 -22
  501. package/lib/utils/removeRepeatId.js.map +1 -1
  502. package/lib/utils/repopulateIntoResponse.js +7 -5
  503. package/lib/utils/repopulateIntoResponse.js.map +1 -1
  504. package/lib/utils/repopulateItems.js +6 -11
  505. package/lib/utils/repopulateItems.js.map +1 -1
  506. package/lib/utils/slider.js +3 -6
  507. package/lib/utils/slider.js.map +1 -1
  508. package/lib/utils/tabs.js +3 -5
  509. package/lib/utils/tabs.js.map +1 -1
  510. package/lib/utils/targetConstraint.d.ts +1 -1
  511. package/lib/utils/targetConstraint.js +85 -102
  512. package/lib/utils/targetConstraint.js.map +1 -1
  513. package/lib/utils/ucumQuantityConversion.d.ts +44 -0
  514. package/lib/utils/ucumQuantityConversion.js +132 -0
  515. package/lib/utils/ucumQuantityConversion.js.map +1 -0
  516. package/lib/utils/validate.js +35 -35
  517. package/lib/utils/validate.js.map +1 -1
  518. package/lib/utils/valueSet.d.ts +10 -1
  519. package/lib/utils/valueSet.js +67 -55
  520. package/lib/utils/valueSet.js.map +1 -1
  521. package/package.json +21 -21
  522. package/src/components/ExpressionUpdateFadingGlow.styles.ts +3 -3
  523. package/src/components/FormComponents/AttachmentItem/AttachmentField.tsx +5 -5
  524. package/src/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.tsx +3 -2
  525. package/src/components/FormComponents/AttachmentItem/AttachmentFileCollector.tsx +2 -2
  526. package/src/components/FormComponents/AttachmentItem/AttachmentFileDropBox.tsx +5 -5
  527. package/src/components/FormComponents/AttachmentItem/AttachmentUrlField.tsx +5 -5
  528. package/src/components/FormComponents/BooleanItem/BooleanField.tsx +4 -4
  529. package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +7 -26
  530. package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.tsx +6 -6
  531. package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +15 -35
  532. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.tsx +0 -1
  533. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +12 -36
  534. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.tsx +3 -4
  535. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +14 -38
  536. package/src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx +19 -43
  537. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.tsx +0 -1
  538. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +14 -59
  539. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.tsx +4 -4
  540. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx +2 -3
  541. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +14 -52
  542. package/src/components/FormComponents/ChoiceItems/ChoiceRadioSingle.tsx +2 -2
  543. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +8 -8
  544. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +12 -59
  545. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.tsx +8 -7
  546. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +12 -11
  547. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +11 -55
  548. package/src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.tsx +6 -11
  549. package/src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.tsx +11 -44
  550. package/src/components/FormComponents/DateTimeItems/CustomDateItem/DatePickerButton.tsx +2 -2
  551. package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.tsx +19 -75
  552. package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.tsx +11 -15
  553. package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/DateTimeField.tsx +6 -14
  554. package/src/components/FormComponents/DecimalItem/DecimalField.tsx +7 -10
  555. package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +20 -65
  556. package/src/components/FormComponents/DisplayItem/DisplayItem.tsx +1 -0
  557. package/src/components/FormComponents/GridGroup/GridGroup.tsx +45 -29
  558. package/src/components/FormComponents/GridGroup/GridRow.tsx +13 -15
  559. package/src/components/FormComponents/GridGroup/GridTable.tsx +6 -7
  560. package/src/components/FormComponents/GroupItem/GroupHeading.tsx +2 -2
  561. package/src/components/FormComponents/GroupItem/GroupItem.tsx +4 -9
  562. package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +1 -14
  563. package/src/components/FormComponents/GroupItem/GroupItemView.tsx +1 -7
  564. package/src/components/FormComponents/GroupItem/PageButtonWrapper.tsx +2 -2
  565. package/src/components/FormComponents/GroupItem/TabButtonsWrapper.tsx +2 -2
  566. package/src/components/FormComponents/IntegerItem/IntegerField.tsx +7 -10
  567. package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +18 -57
  568. package/src/components/FormComponents/ItemParts/CheckboxFormGroup.tsx +8 -8
  569. package/src/components/FormComponents/ItemParts/CheckboxSingle.tsx +2 -2
  570. package/src/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.tsx +2 -2
  571. package/src/components/FormComponents/ItemParts/ClearInputButton.tsx +17 -16
  572. package/src/components/FormComponents/ItemParts/DisplayUnitText.tsx +2 -2
  573. package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +2 -2
  574. package/src/components/FormComponents/ItemParts/ItemLabel.tsx +3 -6
  575. package/src/components/FormComponents/ItemParts/ItemRepopulateButton.tsx +1 -8
  576. package/src/components/FormComponents/ItemParts/ItemTextSwitcher.tsx +9 -4
  577. package/src/components/FormComponents/ItemParts/OpenLabelField.tsx +3 -3
  578. package/src/components/FormComponents/ItemParts/RadioFormGroup.tsx +9 -9
  579. package/src/components/FormComponents/ItemParts/RequiredAsterisk.tsx +3 -3
  580. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx +5 -5
  581. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +40 -44
  582. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.tsx +1 -2
  583. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +19 -41
  584. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetFields.tsx +4 -5
  585. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.tsx +24 -42
  586. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx +22 -46
  587. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.tsx +0 -1
  588. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +22 -37
  589. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.tsx +3 -4
  590. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.tsx +27 -36
  591. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.tsx +5 -5
  592. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +10 -37
  593. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx +5 -5
  594. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +11 -34
  595. package/src/components/FormComponents/QuantityItem/QuantityComparatorField.tsx +6 -6
  596. package/src/components/FormComponents/QuantityItem/QuantityField.tsx +7 -10
  597. package/src/components/FormComponents/QuantityItem/QuantityItem.tsx +15 -105
  598. package/src/components/FormComponents/QuantityItem/QuantityUnitField.tsx +11 -6
  599. package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +8 -21
  600. package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.tsx +0 -4
  601. package/src/components/FormComponents/RepeatGroup/RepeatGroupView.tsx +5 -19
  602. package/src/components/FormComponents/RepeatItem/RepeatField.tsx +0 -4
  603. package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +9 -27
  604. package/src/components/FormComponents/SingleItem/SingleItem.tsx +7 -12
  605. package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +57 -36
  606. package/src/components/FormComponents/SingleItem/SingleItemView.tsx +3 -15
  607. package/src/components/FormComponents/SingleItem/SingleNestedItems.tsx +5 -10
  608. package/src/components/FormComponents/SliderItem/SliderField.tsx +5 -5
  609. package/src/components/FormComponents/SliderItem/SliderItem.tsx +1 -0
  610. package/src/components/FormComponents/StringItem/StringField.tsx +7 -10
  611. package/src/components/FormComponents/StringItem/StringItem.tsx +19 -79
  612. package/src/components/FormComponents/Tables/GroupTable.tsx +69 -45
  613. package/src/components/FormComponents/Tables/GroupTableBody.tsx +7 -16
  614. package/src/components/FormComponents/Tables/GroupTableRow.tsx +7 -17
  615. package/src/components/FormComponents/Tables/GroupTableRowCells.tsx +5 -12
  616. package/src/components/FormComponents/Tables/GroupTableView.tsx +9 -13
  617. package/src/components/FormComponents/Tables/SelectRowButton.tsx +2 -2
  618. package/src/components/FormComponents/Tables/Table.styles.tsx +13 -8
  619. package/src/components/FormComponents/TextItem/TextField.tsx +3 -6
  620. package/src/components/FormComponents/TextItem/TextItem.tsx +11 -50
  621. package/src/components/FormComponents/Textfield.styles.ts +1 -1
  622. package/src/components/FormComponents/TimeItem/TimeField.tsx +5 -4
  623. package/src/components/FormComponents/TimeItem/TimeItem.tsx +6 -2
  624. package/src/components/FormComponents/UrlItem/UrlField.tsx +6 -9
  625. package/src/components/FormComponents/UrlItem/UrlItem.tsx +4 -19
  626. package/src/components/Renderer/BaseRenderer.tsx +18 -26
  627. package/src/components/Renderer/FormBodyCollapsible.tsx +3 -8
  628. package/src/components/Renderer/FormBodyPageContainer.tsx +3 -8
  629. package/src/components/Renderer/FormBodyPaginated.tsx +3 -12
  630. package/src/components/Renderer/FormBodySingleCollapsibleWrapper.tsx +2 -13
  631. package/src/components/Renderer/FormBodyTabbed.tsx +5 -10
  632. package/src/components/Renderer/FormTopLevelItem.tsx +3 -14
  633. package/src/components/Renderer/SmartFormsRenderer.tsx +4 -2
  634. package/src/components/Tabs/FormBodySingleTab.tsx +9 -2
  635. package/src/components/Tabs/FormBodyTabList.tsx +1 -0
  636. package/src/hooks/index.ts +1 -6
  637. package/src/hooks/useBuildForm.ts +31 -39
  638. package/src/hooks/useCalculatedExpressionUpdated.ts +39 -0
  639. package/src/hooks/useCodingCalculatedExpression.ts +0 -110
  640. package/src/hooks/useDateCalculatedExpression.ts +0 -90
  641. package/src/hooks/useDateTimeCalculatedExpression.ts +0 -90
  642. package/src/hooks/useDisplayCqfAndCalculatedExpression.ts +18 -2
  643. package/src/hooks/useHidden.ts +2 -2
  644. package/src/hooks/useInitialiseForm.ts +6 -5
  645. package/src/hooks/useReadOnly.ts +2 -2
  646. package/src/hooks/useResizeColumns.ts +53 -0
  647. package/src/hooks/useValueSetCodings.ts +5 -27
  648. package/src/index.ts +6 -12
  649. package/src/interfaces/calculatedExpression.interface.ts +1 -1
  650. package/src/interfaces/overrideComponent.interface.ts +3 -4
  651. package/src/interfaces/renderProps.interface.ts +8 -34
  652. package/src/interfaces/valueSet.interface.ts +2 -2
  653. package/src/stores/formUpdateQueueStore.ts +13 -29
  654. package/src/stores/index.ts +3 -3
  655. package/src/stores/questionnaireResponseStore.ts +28 -37
  656. package/src/stores/questionnaireStore.ts +230 -206
  657. package/src/stores/{rendererStylingStore.ts → rendererConfigStore.ts} +8 -8
  658. package/src/stores/smartConfigStore.ts +3 -3
  659. package/src/stores/terminologyServerStore.ts +2 -2
  660. package/src/theme/rendererThemeOptions.ts +1 -1
  661. package/src/utils/answerOptionsToggleExpressions.ts +12 -9
  662. package/src/utils/calculatedExpression.ts +466 -97
  663. package/src/utils/columnWidth.test.ts +75 -0
  664. package/src/utils/columnWidth.ts +110 -0
  665. package/src/utils/enableWhenExpression.ts +10 -6
  666. package/src/utils/extensions.ts +30 -0
  667. package/src/utils/extractObservation.ts +2 -1
  668. package/src/utils/fhirpath.ts +140 -115
  669. package/src/utils/getExpressionsFromItem.ts +33 -2
  670. package/src/utils/index.ts +2 -0
  671. package/src/utils/inputSanitization.ts +6 -6
  672. package/src/utils/manageForm.ts +148 -24
  673. package/src/utils/misc.ts +0 -2
  674. package/src/utils/parameterisedValueSets.ts +20 -9
  675. package/src/utils/questionnaireStoreUtils/createQuestionnaireModel.ts +0 -6
  676. package/src/utils/targetConstraint.ts +12 -9
  677. package/src/utils/ucumQuantityConversion.ts +195 -0
  678. package/src/utils/validate.ts +8 -3
  679. package/src/utils/valueSet.ts +44 -1
  680. package/src/vite-env.d.ts +2 -1
  681. package/tsconfig.json +2 -2
  682. package/vite.config.ts +5 -1
  683. package/lib/api/callbacks.d.ts +0 -8
  684. package/lib/api/callbacks.js +0 -52
  685. package/lib/api/callbacks.js.map +0 -1
  686. package/lib/api/xFhirQuerySync.d.ts +0 -1
  687. package/lib/api/xFhirQuerySync.js +0 -61
  688. package/lib/api/xFhirQuerySync.js.map +0 -1
  689. package/lib/components/ExpressionUpdateFadingGlow.d.ts +0 -0
  690. package/lib/components/ExpressionUpdateFadingGlow.js +0 -2
  691. package/lib/components/ExpressionUpdateFadingGlow.js.map +0 -1
  692. package/lib/components/FormComponents/ItemParts/ExpressionUpdateFadingGlow.d.ts +0 -0
  693. package/lib/components/FormComponents/ItemParts/ExpressionUpdateFadingGlow.js +0 -2
  694. package/lib/components/FormComponents/ItemParts/ExpressionUpdateFadingGlow.js.map +0 -1
  695. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.d.ts +0 -7
  696. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +0 -26
  697. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +0 -1
  698. package/lib/components/FormComponents/ItemParts/FadingGlowExpressionUpdate.d.ts +0 -0
  699. package/lib/components/FormComponents/ItemParts/FadingGlowExpressionUpdate.js +0 -2
  700. package/lib/components/FormComponents/ItemParts/FadingGlowExpressionUpdate.js.map +0 -1
  701. package/lib/components/FormComponents/ItemParts/GranularRepopulateButton.d.ts +0 -8
  702. package/lib/components/FormComponents/ItemParts/GranularRepopulateButton.js +0 -130
  703. package/lib/components/FormComponents/ItemParts/GranularRepopulateButton.js.map +0 -1
  704. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButton.d.ts +0 -8
  705. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButton.js +0 -126
  706. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButton.js.map +0 -1
  707. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButtonStates.d.ts +0 -8
  708. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButtonStates.js +0 -118
  709. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButtonStates.js.map +0 -1
  710. package/lib/components/FormComponents/ItemParts/ItemLabelText.d.ts +0 -8
  711. package/lib/components/FormComponents/ItemParts/ItemLabelText.js +0 -63
  712. package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +0 -1
  713. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.d.ts +0 -8
  714. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +0 -53
  715. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +0 -1
  716. package/lib/components/FormComponents/ItemParts/SrOnlyCheckboxLabel.d.ts +0 -0
  717. package/lib/components/FormComponents/ItemParts/SrOnlyCheckboxLabel.js +0 -2
  718. package/lib/components/FormComponents/ItemParts/SrOnlyCheckboxLabel.js.map +0 -1
  719. package/lib/components/FormComponents/ItemParts/TempCalculatedExpressionSyncButton.d.ts +0 -7
  720. package/lib/components/FormComponents/ItemParts/TempCalculatedExpressionSyncButton.js +0 -95
  721. package/lib/components/FormComponents/ItemParts/TempCalculatedExpressionSyncButton.js.map +0 -1
  722. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.d.ts +0 -10
  723. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +0 -30
  724. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +0 -1
  725. package/lib/components/FormComponents/Tables/GroupTableRowCell.d.ts +0 -9
  726. package/lib/components/FormComponents/Tables/GroupTableRowCell.js +0 -15
  727. package/lib/components/FormComponents/Tables/GroupTableRowCell.js.map +0 -1
  728. package/lib/components/Iconify/Iconify.d.ts +0 -10
  729. package/lib/components/Iconify/Iconify.js +0 -26
  730. package/lib/components/Iconify/Iconify.js.map +0 -1
  731. package/lib/components/Renderer/FormBodyPage.d.ts +0 -9
  732. package/lib/components/Renderer/FormBodyPage.js +0 -43
  733. package/lib/components/Renderer/FormBodyPage.js.map +0 -1
  734. package/lib/components/Renderer/FormTitle.d.ts +0 -7
  735. package/lib/components/Renderer/FormTitle.js +0 -30
  736. package/lib/components/Renderer/FormTitle.js.map +0 -1
  737. package/lib/components/Renderer/FormTopLevelPage.d.ts +0 -9
  738. package/lib/components/Renderer/FormTopLevelPage.js +0 -29
  739. package/lib/components/Renderer/FormTopLevelPage.js.map +0 -1
  740. package/lib/hooks/useBooleanCalculatedExpression.d.ts +0 -12
  741. package/lib/hooks/useBooleanCalculatedExpression.js +0 -53
  742. package/lib/hooks/useBooleanCalculatedExpression.js.map +0 -1
  743. package/lib/hooks/useCalculatedExpressionAnimating.d.ts +0 -1
  744. package/lib/hooks/useCalculatedExpressionAnimating.js +0 -18
  745. package/lib/hooks/useCalculatedExpressionAnimating.js.map +0 -1
  746. package/lib/hooks/useCalculatedExpressionAnimation.d.ts +0 -1
  747. package/lib/hooks/useCalculatedExpressionAnimation.js +0 -18
  748. package/lib/hooks/useCalculatedExpressionAnimation.js.map +0 -1
  749. package/lib/hooks/useCqfAnswerValueSet.d.ts +0 -4
  750. package/lib/hooks/useCqfAnswerValueSet.js +0 -86
  751. package/lib/hooks/useCqfAnswerValueSet.js.map +0 -1
  752. package/lib/hooks/useCqfAnswerValueSetEffect.d.ts +0 -3
  753. package/lib/hooks/useCqfAnswerValueSetEffect.js +0 -111
  754. package/lib/hooks/useCqfAnswerValueSetEffect.js.map +0 -1
  755. package/lib/hooks/useDecimalCalculatedExpression.d.ts +0 -13
  756. package/lib/hooks/useDecimalCalculatedExpression.js +0 -64
  757. package/lib/hooks/useDecimalCalculatedExpression.js.map +0 -1
  758. package/lib/hooks/useIntegerCalculatedExpression.d.ts +0 -12
  759. package/lib/hooks/useIntegerCalculatedExpression.js +0 -61
  760. package/lib/hooks/useIntegerCalculatedExpression.js.map +0 -1
  761. package/lib/hooks/useQuantityCalculatedExpression.d.ts +0 -14
  762. package/lib/hooks/useQuantityCalculatedExpression.js +0 -115
  763. package/lib/hooks/useQuantityCalculatedExpression.js.map +0 -1
  764. package/lib/hooks/useShowDateTimeFeedback.d.ts +0 -13
  765. package/lib/hooks/useShowDateTimeFeedback.js +0 -40
  766. package/lib/hooks/useShowDateTimeFeedback.js.map +0 -1
  767. package/lib/hooks/useShowFeedback.d.ts +0 -11
  768. package/lib/hooks/useShowFeedback.js +0 -33
  769. package/lib/hooks/useShowFeedback.js.map +0 -1
  770. package/lib/hooks/useStringCalculatedExpression.d.ts +0 -12
  771. package/lib/hooks/useStringCalculatedExpression.js +0 -63
  772. package/lib/hooks/useStringCalculatedExpression.js.map +0 -1
  773. package/lib/hooks/useTempCalculatedExpressionsSyncButton.d.ts +0 -1
  774. package/lib/hooks/useTempCalculatedExpressionsSyncButton.js +0 -24
  775. package/lib/hooks/useTempCalculatedExpressionsSyncButton.js.map +0 -1
  776. package/lib/interfaces/fhirPathContext.interface.d.ts +0 -0
  777. package/lib/interfaces/fhirPathContext.interface.js +0 -2
  778. package/lib/interfaces/fhirPathContext.interface.js.map +0 -1
  779. package/lib/interfaces/itemDetails.interface.d.ts +0 -2
  780. package/lib/interfaces/itemDetails.interface.js +0 -2
  781. package/lib/interfaces/itemDetails.interface.js.map +0 -1
  782. package/lib/interfaces/itemMetadata.d.ts +0 -0
  783. package/lib/interfaces/itemMetadata.interface.d.ts +0 -6
  784. package/lib/interfaces/itemMetadata.interface.js +0 -2
  785. package/lib/interfaces/itemMetadata.interface.js.map +0 -1
  786. package/lib/interfaces/itemMetadata.js +0 -2
  787. package/lib/interfaces/itemMetadata.js.map +0 -1
  788. package/lib/interfaces/itemPath.d.ts +0 -31
  789. package/lib/interfaces/itemPath.js +0 -2
  790. package/lib/interfaces/itemPath.js.map +0 -1
  791. package/lib/stores/callbackStore.d.ts +0 -0
  792. package/lib/stores/callbackStore.js +0 -2
  793. package/lib/stores/callbackStore.js.map +0 -1
  794. package/lib/stores/extractOperationStore.d.ts +0 -26
  795. package/lib/stores/extractOperationStore.js +0 -20
  796. package/lib/stores/extractOperationStore.js.map +0 -1
  797. package/lib/stores/rendererStylingStore.js +0 -68
  798. package/lib/stores/rendererStylingStore.js.map +0 -1
  799. package/lib/stories/storybookWrappers/populateCallbackForStorybook.d.ts +0 -8
  800. package/lib/stories/storybookWrappers/populateCallbackForStorybook.js +0 -52
  801. package/lib/stories/storybookWrappers/populateCallbackForStorybook.js.map +0 -1
  802. package/lib/templates/bloodPressureTemplate.d.ts +0 -23
  803. package/lib/templates/bloodPressureTemplate.js +0 -80
  804. package/lib/templates/bloodPressureTemplate.js.map +0 -1
  805. package/lib/theme/RendererDynamicThemeProvider.d.ts +0 -24
  806. package/lib/theme/RendererDynamicThemeProvider.js +0 -65
  807. package/lib/theme/RendererDynamicThemeProvider.js.map +0 -1
  808. package/lib/theme/RendererThemeToggle.d.ts +0 -6
  809. package/lib/theme/RendererThemeToggle.js +0 -45
  810. package/lib/theme/RendererThemeToggle.js.map +0 -1
  811. package/lib/theme/Theme.d.ts +0 -44
  812. package/lib/theme/Theme.js +0 -43
  813. package/lib/theme/Theme.js.map +0 -1
  814. package/lib/theme/customGlobalStyles.d.ts +0 -1
  815. package/lib/theme/customGlobalStyles.js +0 -45
  816. package/lib/theme/customGlobalStyles.js.map +0 -1
  817. package/lib/theme/overrides/Accordion.d.ts +0 -14
  818. package/lib/theme/overrides/Accordion.js +0 -32
  819. package/lib/theme/overrides/Accordion.js.map +0 -1
  820. package/lib/theme/overrides/Autocomplete.d.ts +0 -10
  821. package/lib/theme/overrides/Autocomplete.js +0 -28
  822. package/lib/theme/overrides/Autocomplete.js.map +0 -1
  823. package/lib/theme/overrides/Button.d.ts +0 -33
  824. package/lib/theme/overrides/Button.js +0 -52
  825. package/lib/theme/overrides/Button.js.map +0 -1
  826. package/lib/theme/overrides/Card.d.ts +0 -35
  827. package/lib/theme/overrides/Card.js +0 -49
  828. package/lib/theme/overrides/Card.js.map +0 -1
  829. package/lib/theme/overrides/Input.d.ts +0 -64
  830. package/lib/theme/overrides/Input.js +0 -81
  831. package/lib/theme/overrides/Input.js.map +0 -1
  832. package/lib/theme/overrides/Overrides.d.ts +0 -3
  833. package/lib/theme/overrides/Overrides.js +0 -29
  834. package/lib/theme/overrides/Overrides.js.map +0 -1
  835. package/lib/theme/overrides/Paper.d.ts +0 -12
  836. package/lib/theme/overrides/Paper.js +0 -31
  837. package/lib/theme/overrides/Paper.js.map +0 -1
  838. package/lib/theme/overrides/SpeedDial.d.ts +0 -16
  839. package/lib/theme/overrides/SpeedDial.js +0 -34
  840. package/lib/theme/overrides/SpeedDial.js.map +0 -1
  841. package/lib/theme/overrides/Table.d.ts +0 -12
  842. package/lib/theme/overrides/Table.js +0 -30
  843. package/lib/theme/overrides/Table.js.map +0 -1
  844. package/lib/theme/overrides/rendererThemeComponentOverride.d.ts +0 -2
  845. package/lib/theme/overrides/rendererThemeComponentOverride.js +0 -28
  846. package/lib/theme/overrides/rendererThemeComponentOverride.js.map +0 -1
  847. package/lib/theme/overrides/rendererThemeComponentsOverride.d.ts +0 -2
  848. package/lib/theme/overrides/rendererThemeComponentsOverride.js +0 -28
  849. package/lib/theme/overrides/rendererThemeComponentsOverride.js.map +0 -1
  850. package/lib/theme/overrides/rendererThemeComponentsOverrides.d.ts +0 -2
  851. package/lib/theme/overrides/rendererThemeComponentsOverrides.js +0 -28
  852. package/lib/theme/overrides/rendererThemeComponentsOverrides.js.map +0 -1
  853. package/lib/theme/palette.d.ts +0 -27
  854. package/lib/theme/palette.js +0 -63
  855. package/lib/theme/palette.js.map +0 -1
  856. package/lib/theme/shadows.d.ts +0 -2
  857. package/lib/theme/shadows.js +0 -52
  858. package/lib/theme/shadows.js.map +0 -1
  859. package/lib/theme/themeOptions.d.ts +0 -2
  860. package/lib/theme/themeOptions.js +0 -85
  861. package/lib/theme/themeOptions.js.map +0 -1
  862. package/lib/theme/useRendererTheme.d.ts +0 -5
  863. package/lib/theme/useRendererTheme.js +0 -30
  864. package/lib/theme/useRendererTheme.js.map +0 -1
  865. package/lib/utils/FhirPathEvaluateParams.d.ts +0 -20
  866. package/lib/utils/FhirPathEvaluateParams.js +0 -35
  867. package/lib/utils/FhirPathEvaluateParams.js.map +0 -1
  868. package/lib/utils/dayjsExtend.d.ts +0 -1
  869. package/lib/utils/dayjsExtend.js +0 -22
  870. package/lib/utils/dayjsExtend.js.map +0 -1
  871. package/lib/utils/dayjsSetup.d.ts +0 -2
  872. package/lib/utils/dayjsSetup.js +0 -23
  873. package/lib/utils/dayjsSetup.js.map +0 -1
  874. package/lib/utils/extractTemplate.d.ts +0 -0
  875. package/lib/utils/extractTemplate.js +0 -1107
  876. package/lib/utils/extractTemplate.js.map +0 -1
  877. package/lib/utils/fhirathEvaluate.d.ts +0 -20
  878. package/lib/utils/fhirathEvaluate.js +0 -35
  879. package/lib/utils/fhirathEvaluate.js.map +0 -1
  880. package/lib/utils/fhirpathEvaluate.d.ts +0 -30
  881. package/lib/utils/fhirpathEvaluate.js +0 -68
  882. package/lib/utils/fhirpathEvaluate.js.map +0 -1
  883. package/lib/utils/find_item_no_text.d.ts +0 -1
  884. package/lib/utils/find_item_no_text.js +0 -65
  885. package/lib/utils/find_item_no_text.js.map +0 -1
  886. package/lib/utils/generateId.d.ts +0 -3
  887. package/lib/utils/generateId.js +0 -28
  888. package/lib/utils/generateId.js.map +0 -1
  889. package/lib/utils/granularRepopulateSync.d.ts +0 -1
  890. package/lib/utils/granularRepopulateSync.js +0 -70
  891. package/lib/utils/granularRepopulateSync.js.map +0 -1
  892. package/lib/utils/itemControl.d.ts +0 -103
  893. package/lib/utils/itemControl.js +0 -350
  894. package/lib/utils/itemControl.js.map +0 -1
  895. package/lib/utils/itemText.d.ts +0 -2
  896. package/lib/utils/itemText.js +0 -12
  897. package/lib/utils/itemText.js.map +0 -1
  898. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.d.ts +0 -2
  899. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js +0 -43
  900. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js.map +0 -1
  901. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.d.ts +0 -3
  902. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +0 -114
  903. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +0 -1
  904. package/lib/utils/questionnaireStoreUtils/itemDetails.d.ts +0 -5
  905. package/lib/utils/questionnaireStoreUtils/itemDetails.js +0 -2
  906. package/lib/utils/questionnaireStoreUtils/itemDetails.js.map +0 -1
  907. package/lib/utils/readItem.d.ts +0 -28
  908. package/lib/utils/readItem.js +0 -67
  909. package/lib/utils/readItem.js.map +0 -1
  910. package/lib/utils/syncInitialExpression.d.ts +0 -23
  911. package/lib/utils/syncInitialExpression.js +0 -407
  912. package/lib/utils/syncInitialExpression.js.map +0 -1
  913. package/lib/utils/templateMatching.d.ts +0 -15
  914. package/lib/utils/templateMatching.js +0 -56
  915. package/lib/utils/templateMatching.js.map +0 -1
  916. package/lib/utils/updateCodingsDynamic.d.ts +0 -1
  917. package/lib/utils/updateCodingsDynamic.js +0 -54
  918. package/lib/utils/updateCodingsDynamic.js.map +0 -1
  919. package/lib/utils/validateQuestionnaire.d.ts +0 -66
  920. package/lib/utils/validateQuestionnaire.js +0 -559
  921. package/lib/utils/validateQuestionnaire.js.map +0 -1
  922. package/src/hooks/useBooleanCalculatedExpression.ts +0 -83
  923. package/src/hooks/useDecimalCalculatedExpression.ts +0 -103
  924. package/src/hooks/useIntegerCalculatedExpression.ts +0 -93
  925. package/src/hooks/useQuantityCalculatedExpression.ts +0 -196
  926. package/src/hooks/useShowFeedback.ts +0 -36
  927. package/src/hooks/useStringCalculatedExpression.ts +0 -95
  928. package/src/interfaces/itemPath.interface.ts +0 -33
  929. package/src/utils/itemPath.ts +0 -79
  930. package/src/utils/questionnaireStoreUtils/addAdditionalVariables.ts +0 -52
@@ -15,7 +15,6 @@
15
15
  * limitations under the License.
16
16
  */
17
17
 
18
- import { createStore } from 'zustand/vanilla';
19
18
  import type {
20
19
  Coding,
21
20
  Questionnaire,
@@ -23,39 +22,39 @@ import type {
23
22
  QuestionnaireResponse,
24
23
  QuestionnaireResponseItemAnswer
25
24
  } from 'fhir/r4';
26
- import type { Variables } from '../interfaces/variables.interface';
27
- import type { LaunchContext } from '../interfaces/populate.interface';
25
+ import type { ComponentType } from 'react';
26
+ import { createStore } from 'zustand/vanilla';
27
+ import type { QItemOverrideComponentProps, SdcUiOverrideComponentProps } from '../interfaces';
28
+ import type { AnswerExpression } from '../interfaces/answerExpression.interface';
29
+ import type { AnswerOptionsToggleExpression } from '../interfaces/answerOptionsToggleExpression.interface';
28
30
  import type { CalculatedExpression } from '../interfaces/calculatedExpression.interface';
29
31
  import type { EnableWhenExpressions, EnableWhenItems } from '../interfaces/enableWhen.interface';
30
- import type { AnswerExpression } from '../interfaces/answerExpression.interface';
31
- import type { Tabs } from '../interfaces/tab.interface';
32
+ import type { InitialExpression } from '../interfaces/initialExpression.interface';
32
33
  import type { Pages } from '../interfaces/page.interface';
34
+ import type { LaunchContext } from '../interfaces/populate.interface';
35
+ import type { Tabs } from '../interfaces/tab.interface';
36
+ import type { TargetConstraint } from '../interfaces/targetConstraint.interface';
37
+ import type { ProcessedValueSet } from '../interfaces/valueSet.interface';
38
+ import type { Variables } from '../interfaces/variables.interface';
39
+ import { processCalculatedExpressions } from '../utils/calculatedExpression';
40
+ import { applyComputedUpdates } from '../utils/computedUpdates';
33
41
  import {
34
42
  mutateRepeatEnableWhenItemInstances,
35
43
  updateEnableWhenItemAnswer
36
44
  } from '../utils/enableWhen';
37
- import { evaluateUpdatedExpressions } from '../utils/fhirpath';
38
- import {
39
- evaluateInitialCalculatedExpressions,
40
- initialiseCalculatedExpressionValues
41
- } from '../utils/calculatedExpression';
42
- import { createQuestionnaireModel } from '../utils/questionnaireStoreUtils/createQuestionnaireModel';
43
- import { initialiseFormFromResponse } from '../utils/initialise';
44
45
  import { emptyQuestionnaire, emptyResponse } from '../utils/emptyResource';
45
- import { terminologyServerStore } from './terminologyServerStore';
46
- import { createSelectors } from './selector';
47
46
  import { mutateRepeatEnableWhenExpressionInstances } from '../utils/enableWhenExpression';
48
- import { questionnaireResponseStore } from './questionnaireResponseStore';
47
+ import { evaluateOtherExpressions } from '../utils/fhirpath';
48
+ import { initialiseFormFromResponse } from '../utils/initialise';
49
49
  import { createQuestionnaireResponseItemMap } from '../utils/questionnaireResponseStoreUtils/updatableResponseItems';
50
50
  import { insertCompleteAnswerOptionsIntoQuestionnaire } from '../utils/questionnaireStoreUtils/insertAnswerOptions';
51
- import type { InitialExpression } from '../interfaces/initialExpression.interface';
52
- import type { QItemOverrideComponentProps, SdcUiOverrideComponentProps } from '../interfaces';
53
- import type { ComponentType } from 'react';
54
- import type { TargetConstraint } from '../interfaces/targetConstraint.interface';
55
51
  import { readTargetConstraintLocationLinkIds } from '../utils/targetConstraint';
56
- import type { ProcessedValueSet } from '../interfaces/valueSet.interface';
57
- import type { AnswerOptionsToggleExpression } from '../interfaces/answerOptionsToggleExpression.interface';
58
- import { applyComputedUpdates } from '../utils/computedUpdates';
52
+ import { questionnaireResponseStore } from './questionnaireResponseStore';
53
+ import { createSelectors } from './selector';
54
+ import { terminologyServerStore } from './terminologyServerStore';
55
+ import { createQuestionnaireModel } from '../utils/questionnaireStoreUtils/createQuestionnaireModel';
56
+ import { getFirstVisibleTab } from '../utils/tabs';
57
+ import { getFirstVisiblePage } from '../utils/page';
59
58
 
60
59
  /**
61
60
  * QuestionnaireStore properties and methods
@@ -71,6 +70,9 @@ import { applyComputedUpdates } from '../utils/computedUpdates';
71
70
  * @property currentPageIndex - Index of the current page
72
71
  * @property variables - Questionnaire variables object containing FHIRPath and x-fhir-query variables
73
72
  * @property launchContexts - Key-value pair of launch contexts `Record<launch context name, launch context properties>`
73
+ * @property initialExpressions - Key-value pair of initial expressions `Record<linkId, InitialExpression>`
74
+ * @property answerExpressions - Key-value pair of answer expressions `Record<linkId, answer expression properties>`
75
+ * @property calculatedExpressions - Key-value pair of calculated expressions `Record<linkId, array of calculated expression properties>`
74
76
  * @property targetConstraints - Key-value pair of target constraints `Record<target constraint key, target constraint properties>`
75
77
  * @property targetConstraintLinkIds - Key-value pair of linkIds against target constraint key(s) `Record<linkId, target constraint keys>`
76
78
  * @property answerOptionsToggleExpressions - Key-value pair of answer options toggle expressions `Record<linkId, array of answer options toggle expressions>`
@@ -78,13 +80,11 @@ import { applyComputedUpdates } from '../utils/computedUpdates';
78
80
  * @property enableWhenLinkedQuestions - Key-value pair of linked questions to enableWhen items `Record<linkId, linkIds of linked questions>`
79
81
  * @property enableWhenIsActivated - Flag to turn enableWhen checks on/off
80
82
  * @property enableWhenExpressions - EnableWhenExpressions object containing enableWhen expressions
81
- * @property calculatedExpressions - Key-value pair of calculated expressions `Record<linkId, array of calculated expression properties>`
82
- * @property answerExpressions - Key-value pair of answer expressions `Record<linkId, answer expression properties>`
83
83
  * @property processedValueSets - Key-value pair of (pre-)processed value set codings `Record<valueSetUrl, ProcessedValueSet>`
84
84
  * @property cachedValueSetCodings - Key-value pair of cached value set codings `Record<valueSetUrl, codings>`
85
85
  * @property fhirPathContext - Key-value pair of evaluated FHIRPath values `Record<variable name, evaluated value(s)>`
86
86
  * @property fhirPathTerminologyCache - Key-value pair of cached FHIRPath Terminology results `Record<cacheKey, cached terminology result>`
87
- * @property populatedContext - Key-value pair of one-off pre-populated FHIRPath values `Record<variable/launchContext/sourceQueries batch name, evaluated value(s)>`
87
+ * @property additionalContext - Key-value pair of additional/pre-populated FHIRPath values `Record<variable/launchContext/sourceQueries batch name, evaluated value(s)>`
88
88
  * @property qItemOverrideComponents - Key-value pair of React component overrides for Questionnaire Items via linkId `Record<linkId, React component>`
89
89
  * @property sdcUiOverrideComponents - Key-value pair of React component overrides for SDC UI Controls https://hl7.org/fhir/extensions/ValueSet-questionnaire-item-control.html `Record<SDC UI code, React component>`
90
90
  * @property focusedLinkId - LinkId of the currently focused item
@@ -95,14 +95,15 @@ import { applyComputedUpdates } from '../utils/computedUpdates';
95
95
  * @property switchPage - Used to switch the current page index
96
96
  * @property markTabAsComplete - Used to mark a tab index as complete
97
97
  * @property markPageAsComplete - Used to mark a page index as complete
98
+ * @property resetToFirstVisibleTab - Used to reset the current tab to the first visible tab
99
+ * @property resetToFirstVisiblePage - Used to reset the current page to the first visible page
98
100
  * @property updateEnableWhenItem - Used to update linked enableWhen items by updating a question with a new answer
99
101
  * @property mutateRepeatEnableWhenItems - Used to add or remove instances of repeating enableWhen items
100
102
  * @property toggleEnableWhenActivation - Used to toggle enableWhen checks on/off
101
- * @property updateExpressions - Used to update all SDC expressions based on the updated questionnaire response
103
+ * @property updateExpressions - Used to update all SDC expressions based on the updated questionnaire response, initialUpdate flag is to ensure formChangesHistory is not updated during the first update after form build
102
104
  * @property addCodingToCache - Used to add a coding to the cached value set codings
103
- * @property updatePopulatedProperties - Used to update all SDC expressions based on a pre-populated questionnaire response
104
105
  * @property onFocusLinkId - Used to set the focused linkId
105
- * @property setPopulatedContext - Used to set the populated contexts (launchContext, sourceQueries, x-fhir-query vars) for debugging purposes, and optionally add to the FHIRPath context
106
+ * @property setAdditionalContext - Optionally used to set additional context information for FHIRPath eval. Useful to pass pre-populated context into the renderer. If you are rebuilding the form on pre-populate, you don't need to use this. pass `additionalContext` directly into buildForm().
106
107
  * @property setFormAsReadOnly - Used to set the form as read-only
107
108
  *
108
109
  * @author Sean Fong
@@ -117,21 +118,21 @@ export interface QuestionnaireStoreType {
117
118
  currentPageIndex: number;
118
119
  variables: Variables;
119
120
  launchContexts: Record<string, LaunchContext>;
121
+ initialExpressions: Record<string, InitialExpression>;
122
+ answerExpressions: Record<string, AnswerExpression>;
123
+ calculatedExpressions: Record<string, CalculatedExpression[]>;
120
124
  targetConstraints: Record<string, TargetConstraint>;
121
125
  targetConstraintLinkIds: Record<string, string[]>;
122
- answerOptionsToggleExpressions: Record<string, AnswerOptionsToggleExpression[]>;
123
126
  enableWhenItems: EnableWhenItems;
124
127
  enableWhenLinkedQuestions: Record<string, string[]>;
125
128
  enableWhenIsActivated: boolean;
126
129
  enableWhenExpressions: EnableWhenExpressions;
127
- calculatedExpressions: Record<string, CalculatedExpression[]>;
128
- initialExpressions: Record<string, InitialExpression>;
129
- answerExpressions: Record<string, AnswerExpression>;
130
+ answerOptionsToggleExpressions: Record<string, AnswerOptionsToggleExpression[]>;
130
131
  processedValueSets: Record<string, ProcessedValueSet>;
131
132
  cachedValueSetCodings: Record<string, Coding[]>;
132
133
  fhirPathContext: Record<string, any>;
133
134
  fhirPathTerminologyCache: Record<string, any>;
134
- populatedContext: Record<string, any>;
135
+ additionalContext: Record<string, any>;
135
136
  qItemOverrideComponents: Record<string, ComponentType<QItemOverrideComponentProps>>;
136
137
  sdcUiOverrideComponents: Record<string, ComponentType<SdcUiOverrideComponentProps>>;
137
138
  focusedLinkId: string;
@@ -139,7 +140,7 @@ export interface QuestionnaireStoreType {
139
140
  buildSourceQuestionnaire: (
140
141
  questionnaire: Questionnaire,
141
142
  questionnaireResponse?: QuestionnaireResponse,
142
- additionalVariables?: Record<string, any>,
143
+ additionalContext?: Record<string, any>,
143
144
  terminologyServerUrl?: string,
144
145
  readOnly?: boolean,
145
146
  qItemOverrideComponents?: Record<string, ComponentType<QItemOverrideComponentProps>>,
@@ -150,6 +151,8 @@ export interface QuestionnaireStoreType {
150
151
  switchPage: (newPageIndex: number) => void;
151
152
  markTabAsComplete: (tabLinkId: string) => void;
152
153
  markPageAsComplete: (pageLinkId: string) => void;
154
+ resetToFirstVisibleTab: () => void;
155
+ resetToFirstVisiblePage: () => void;
153
156
  updateEnableWhenItem: (
154
157
  linkId: string,
155
158
  newAnswer: QuestionnaireResponseItemAnswer[] | undefined,
@@ -161,26 +164,20 @@ export interface QuestionnaireStoreType {
161
164
  actionType: 'add' | 'remove'
162
165
  ) => void;
163
166
  toggleEnableWhenActivation: (isActivated: boolean) => void;
164
- updateExpressions: (updatedResponse: QuestionnaireResponse) => Promise<void>;
167
+ updateExpressions: (
168
+ updatedResponse: QuestionnaireResponse,
169
+ isInitialUpdate: boolean
170
+ ) => Promise<void>;
165
171
  addCodingToCache: (valueSetUrl: string, codings: Coding[]) => void;
166
- updatePopulatedProperties: (
167
- populatedResponse: QuestionnaireResponse,
168
- populatedContext?: Record<string, any>,
169
- persistTabIndex?: boolean
170
- ) => Promise<QuestionnaireResponse>;
171
172
  onFocusLinkId: (linkId: string) => void;
172
- // TODO - to be deprecated, use `additionalVariables` in buildSourceQuestionnaire(), also directly set in updatedPopulatedProperties
173
- setPopulatedContext: (
174
- newPopulatedContext: Record<string, any>,
175
- addToFhirPathContext?: boolean
176
- ) => void;
173
+ setAdditionalContext: (additionalContext: Record<string, any>) => void;
177
174
  setFormAsReadOnly: (readOnly: boolean) => void;
178
175
  }
179
176
 
180
177
  /**
181
178
  * Questionnaire state management store which contains all properties and methods to manage the state of the questionnaire.
182
179
  * This is the vanilla version of the store which can be used in non-React environments.
183
- * @see QuestionnaireStoreType for available properties and methods.
180
+ * @see {@link QuestionnaireStoreType} for available properties and methods.
184
181
  *
185
182
  * @author Sean Fong
186
183
  */
@@ -208,7 +205,7 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
208
205
  cachedValueSetCodings: {},
209
206
  fhirPathContext: {},
210
207
  fhirPathTerminologyCache: {},
211
- populatedContext: {},
208
+ additionalContext: {},
212
209
  qItemOverrideComponents: {},
213
210
  sdcUiOverrideComponents: {},
214
211
  focusedLinkId: '',
@@ -216,7 +213,7 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
216
213
  buildSourceQuestionnaire: async (
217
214
  questionnaire,
218
215
  questionnaireResponse = structuredClone(emptyResponse),
219
- additionalVariables = {},
216
+ additionalContext = {},
220
217
  terminologyServerUrl = terminologyServerStore.getState().url,
221
218
  readOnly = false,
222
219
  qItemOverrideComponents = {},
@@ -230,20 +227,6 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
230
227
  questionnaireModel.answerOptions
231
228
  );
232
229
 
233
- // If existing fhirPathContext is empty, use the one from the questionnaire model
234
- // Mostly existing fhirPathContext will be empty, but in some cases it may not be e.g. after pre-population
235
- let fhirPathContext = get().fhirPathContext ?? questionnaireModel.fhirPathContext;
236
-
237
- // TODO reminder to have documentation when upgrading to 1.0.0 - 05/06/2025
238
- // TODO This is something new - the definition of additionalVariables is now <"name", "value">, which allows it to be injected into the renderer's fhirPathContext.
239
- // TODO as an example, populatedContext from a pre-pop module can now be inserted into the renderer for further use.
240
- fhirPathContext = {
241
- ...fhirPathContext,
242
- ...additionalVariables
243
- };
244
- const fhirPathTerminologyCache =
245
- get().fhirPathTerminologyCache ?? questionnaireModel.fhirPathTerminologyCache;
246
-
247
230
  // Initialise form with questionnaire response and properties in questionnaire model
248
231
  const {
249
232
  initialTargetConstraints,
@@ -269,8 +252,8 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
269
252
  processedValueSets: questionnaireModel.processedValueSets,
270
253
  tabs: questionnaireModel.tabs,
271
254
  pages: questionnaireModel.pages,
272
- fhirPathContext: fhirPathContext,
273
- fhirPathTerminologyCache: fhirPathTerminologyCache,
255
+ fhirPathContext: questionnaireModel.fhirPathContext,
256
+ fhirPathTerminologyCache: questionnaireModel.fhirPathTerminologyCache,
274
257
  terminologyServerUrl: terminologyServerUrl
275
258
  });
276
259
 
@@ -280,6 +263,8 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
280
263
  initialTargetConstraints
281
264
  );
282
265
 
266
+ const finalFhirPathContext = { ...updatedFhirPathContext, ...additionalContext };
267
+
283
268
  set({
284
269
  sourceQuestionnaire: questionnaire,
285
270
  itemMap: questionnaireModel.itemMap,
@@ -301,8 +286,9 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
301
286
  answerExpressions: questionnaireModel.answerExpressions,
302
287
  processedValueSets: initialProcessedValueSets,
303
288
  cachedValueSetCodings: questionnaireModel.cachedValueSetCodings,
304
- fhirPathContext: updatedFhirPathContext,
289
+ fhirPathContext: finalFhirPathContext,
305
290
  fhirPathTerminologyCache: updatedFhirPathTerminologyCache,
291
+ additionalContext: additionalContext,
306
292
  qItemOverrideComponents: qItemOverrideComponents,
307
293
  sdcUiOverrideComponents: sdcUiOverrideComponents,
308
294
  readOnly: readOnly
@@ -354,6 +340,27 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
354
340
  }
355
341
  }));
356
342
  },
343
+ resetToFirstVisibleTab: () => {
344
+ const tabs = get().tabs;
345
+ const enableWhenItems = get().enableWhenItems;
346
+ const enableWhenExpressions = get().enableWhenExpressions;
347
+ const firstVisibleTab =
348
+ Object.keys(tabs).length > 0
349
+ ? getFirstVisibleTab(tabs, enableWhenItems, enableWhenExpressions)
350
+ : 0;
351
+
352
+ set(() => ({ currentTabIndex: firstVisibleTab }));
353
+ },
354
+ resetToFirstVisiblePage: () => {
355
+ const pages = get().pages;
356
+ const enableWhenItems = get().enableWhenItems;
357
+ const enableWhenExpressions = get().enableWhenExpressions;
358
+ const firstVisiblePage =
359
+ Object.keys(pages).length > 0
360
+ ? getFirstVisiblePage(pages, enableWhenItems, enableWhenExpressions)
361
+ : 0;
362
+ set(() => ({ currentPageIndex: firstVisiblePage }));
363
+ },
357
364
  updateEnableWhenItem: (
358
365
  linkId: string,
359
366
  newAnswer: QuestionnaireResponseItemAnswer[] | undefined,
@@ -418,73 +425,176 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
418
425
  },
419
426
  toggleEnableWhenActivation: (isActivated: boolean) =>
420
427
  set(() => ({ enableWhenIsActivated: isActivated })),
421
- updateExpressions: async (updatedResponse: QuestionnaireResponse) => {
422
- const sourceQuestionnaire = get().sourceQuestionnaire;
428
+ updateExpressions: async (updatedResponse: QuestionnaireResponse, isInitialUpdate: boolean) => {
429
+ /* Expression evaluation and application workflow
430
+ 1. Evaluate calculatedExpressions to update answers in the QuestionnaireResponse.
431
+ - This must happen first, as these answers may affect subsequent expressions.
432
+ - Call updateResponse() once before proceeding to the next steps.
433
+
434
+ 2. Evaluate other expressions using the QR with updated calculated answers.
435
+ - Target constraints
436
+ - Enable when expressions
437
+ - Answer options toggle expressions
438
+ - Dynamic valueSets (e.g. parameterised valueSets)
439
+
440
+ 3. Apply computed updates from answerOptionsToggleExpressions and updated Dynamic ValueSets into the QuestionnaireResponse.
441
+
442
+ 4. Re-run calculatedExpressions as a final step to ensure all calculations are up-to-date, incorporating any toggled options or dynamic value set changes.
443
+ 5. Update store state based on the expressions that changed
444
+ */
445
+
446
+ const {
447
+ sourceQuestionnaire,
448
+ itemMap,
449
+ itemPreferredTerminologyServers,
450
+ variables,
451
+ targetConstraints,
452
+ answerOptionsToggleExpressions,
453
+ enableWhenExpressions,
454
+ processedValueSets,
455
+ calculatedExpressions,
456
+ fhirPathContext,
457
+ fhirPathTerminologyCache
458
+ } = get();
423
459
  const updateResponse = questionnaireResponseStore.getState().updateResponse;
424
460
  const validateResponse = questionnaireResponseStore.getState().validateResponse;
461
+ const defaultTerminologyServerUrl = terminologyServerStore.getState().url;
462
+
463
+ // Helper function to extract common state update logic
464
+ function updateStoreState(
465
+ updatedResponse: QuestionnaireResponse,
466
+ calculatedExpressions: Record<string, CalculatedExpression[]>,
467
+ fhirPathContext: Record<string, unknown>,
468
+ fhirPathTerminologyCache: Record<string, unknown>,
469
+ otherExpressions?: {
470
+ targetConstraints?: Record<string, TargetConstraint>;
471
+ enableWhenExpressions?: EnableWhenExpressions;
472
+ answerOptionsToggleExpressions?: Record<string, AnswerOptionsToggleExpression[]>;
473
+ processedValueSets?: Record<string, ProcessedValueSet>;
474
+ }
475
+ ) {
476
+ // Update QuestionnaireStore state
477
+ set(() => ({
478
+ calculatedExpressions,
479
+ fhirPathContext,
480
+ fhirPathTerminologyCache,
481
+ ...(otherExpressions?.targetConstraints && {
482
+ targetConstraints: otherExpressions.targetConstraints
483
+ }),
484
+ ...(otherExpressions?.enableWhenExpressions && {
485
+ enableWhenExpressions: otherExpressions.enableWhenExpressions
486
+ }),
487
+ ...(otherExpressions?.answerOptionsToggleExpressions && {
488
+ answerOptionsToggleExpressions: otherExpressions.answerOptionsToggleExpressions
489
+ }),
490
+ ...(otherExpressions?.processedValueSets && {
491
+ processedValueSets: otherExpressions.processedValueSets
492
+ })
493
+ }));
494
+
495
+ // Final validation
496
+ validateResponse(sourceQuestionnaire, updatedResponse);
497
+ }
498
+
499
+ // Step 1: Process calculated expressions first
500
+ let {
501
+ updatedResponse: lastUpdatedResponse,
502
+ updatedCalculatedExpressions: updatedCalculatedExpressions
503
+ } = await processCalculatedExpressions(
504
+ sourceQuestionnaire,
505
+ updatedResponse,
506
+ itemMap,
507
+ calculatedExpressions,
508
+ variables,
509
+ fhirPathContext,
510
+ fhirPathTerminologyCache,
511
+ itemPreferredTerminologyServers,
512
+ defaultTerminologyServerUrl
513
+ );
514
+
515
+ // Perform an immediate QR update first, then process other expressions asynchronously
516
+ updateResponse(lastUpdatedResponse, isInitialUpdate);
517
+
518
+ // Step 2: Evaluate other expressions
425
519
  const updatedResponseItemMap = createQuestionnaireResponseItemMap(
426
520
  sourceQuestionnaire,
427
- updatedResponse
521
+ lastUpdatedResponse
428
522
  );
429
523
  const {
430
- isUpdated,
431
- updatedTargetConstraints,
432
- updatedAnswerOptionsToggleExpressions,
433
- updatedEnableWhenExpressions,
434
- updatedCalculatedExpressions,
435
- updatedProcessedValueSets,
436
524
  updatedFhirPathContext,
437
- fhirPathTerminologyCache,
525
+ updatedFhirPathTerminologyCache,
526
+ targetConstraintsUpdate,
527
+ enableWhenExpressionsUpdate,
528
+ answerOptionsToggleExpressionsUpdate,
529
+ processedValueSetsUpdate,
438
530
  computedQRItemUpdates
439
- } = await evaluateUpdatedExpressions({
440
- updatedResponse,
531
+ } = await evaluateOtherExpressions(
532
+ lastUpdatedResponse,
441
533
  updatedResponseItemMap,
442
- targetConstraints: get().targetConstraints,
443
- answerOptionsToggleExpressions: get().answerOptionsToggleExpressions,
444
- enableWhenExpressions: get().enableWhenExpressions,
445
- calculatedExpressions: get().calculatedExpressions,
446
- processedValueSets: get().processedValueSets,
447
- variables: get().variables,
448
- existingFhirPathContext: get().fhirPathContext,
449
- fhirPathTerminologyCache: get().fhirPathTerminologyCache,
450
- terminologyServerUrl: terminologyServerStore.getState().url
451
- });
452
-
453
- /**
454
- * Applies computed updates to the QR before updating the store.
455
- * Before this, we were updating the store before applying the computed updates. This may cause downstream useEffects to use a stale QR.
456
- * By applying the computed updates first, we ensure that the QR is up-to-date when downstream useEffects are fired.
457
- */
534
+ variables,
535
+ fhirPathContext,
536
+ fhirPathTerminologyCache,
537
+ targetConstraints,
538
+ enableWhenExpressions,
539
+ answerOptionsToggleExpressions,
540
+ processedValueSets,
541
+ defaultTerminologyServerUrl
542
+ );
458
543
 
459
- let lastUpdatedResponse = structuredClone(updatedResponse);
544
+ /* Step 3 & 4: Handle computed updates and re-run calculations if needed */
460
545
  if (Object.keys(computedQRItemUpdates).length > 0) {
461
546
  lastUpdatedResponse = applyComputedUpdates(
462
- get().sourceQuestionnaire,
463
- updatedResponse,
547
+ sourceQuestionnaire,
548
+ lastUpdatedResponse,
464
549
  computedQRItemUpdates
465
550
  );
466
- updateResponse(lastUpdatedResponse, 'async');
467
- }
468
551
 
469
- if (isUpdated) {
470
- set(() => ({
471
- targetConstraints: updatedTargetConstraints,
472
- answerOptionsToggleExpressions: updatedAnswerOptionsToggleExpressions,
473
- enableWhenExpressions: updatedEnableWhenExpressions,
474
- calculatedExpressions: updatedCalculatedExpressions,
475
- processedValueSets: updatedProcessedValueSets,
476
- fhirPathContext: updatedFhirPathContext,
477
- fhirPathTerminologyCache: fhirPathTerminologyCache
478
- }));
552
+ // Re-run calculated expressions with the updated response
553
+ const finalCalculatedResult = await processCalculatedExpressions(
554
+ sourceQuestionnaire,
555
+ lastUpdatedResponse,
556
+ itemMap,
557
+ updatedCalculatedExpressions,
558
+ variables,
559
+ updatedFhirPathContext,
560
+ updatedFhirPathTerminologyCache,
561
+ itemPreferredTerminologyServers,
562
+ defaultTerminologyServerUrl
563
+ );
479
564
 
480
- // Besides setting QuestionnaireStore state, we also need to update `invalidItems` and `responseIsValid` in QuestionnaireResponseStore
481
- validateResponse(sourceQuestionnaire, lastUpdatedResponse); // Validate the updated response asynchronously
565
+ lastUpdatedResponse = finalCalculatedResult.updatedResponse;
566
+ updatedCalculatedExpressions = finalCalculatedResult.updatedCalculatedExpressions;
567
+ updateResponse(lastUpdatedResponse, isInitialUpdate);
482
568
  }
483
569
 
484
- set(() => ({
485
- fhirPathContext: updatedFhirPathContext,
486
- fhirPathTerminologyCache: fhirPathTerminologyCache
487
- }));
570
+ /* Step 5: Update store state based on the expressions that changed */
571
+ const otherExpressionsToUpdate: Partial<{
572
+ targetConstraints: Record<string, TargetConstraint>;
573
+ enableWhenExpressions: EnableWhenExpressions;
574
+ answerOptionsToggleExpressions: Record<string, AnswerOptionsToggleExpression[]>;
575
+ processedValueSets: Record<string, ProcessedValueSet>;
576
+ }> = {};
577
+ if (targetConstraintsUpdate.isUpdated) {
578
+ otherExpressionsToUpdate.targetConstraints = targetConstraintsUpdate.value;
579
+ }
580
+ if (enableWhenExpressionsUpdate.isUpdated) {
581
+ otherExpressionsToUpdate.enableWhenExpressions = enableWhenExpressionsUpdate.value;
582
+ }
583
+ if (answerOptionsToggleExpressionsUpdate.isUpdated) {
584
+ otherExpressionsToUpdate.answerOptionsToggleExpressions =
585
+ answerOptionsToggleExpressionsUpdate.value;
586
+ }
587
+ if (processedValueSetsUpdate.isUpdated) {
588
+ otherExpressionsToUpdate.processedValueSets = processedValueSetsUpdate.value;
589
+ }
590
+
591
+ updateStoreState(
592
+ lastUpdatedResponse,
593
+ updatedCalculatedExpressions,
594
+ updatedFhirPathContext,
595
+ updatedFhirPathTerminologyCache,
596
+ Object.keys(otherExpressionsToUpdate).length > 0 ? otherExpressionsToUpdate : undefined
597
+ );
488
598
  },
489
599
  addCodingToCache: (valueSetUrl: string, codings: Coding[]) =>
490
600
  set(() => ({
@@ -493,101 +603,15 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
493
603
  [valueSetUrl]: codings
494
604
  }
495
605
  })),
496
- updatePopulatedProperties: async (
497
- populatedResponse: QuestionnaireResponse,
498
- populatedContext?: Record<string, any>,
499
- persistTabIndex?: boolean,
500
- persistPageIndex?: boolean
501
- ) => {
502
- const sourceQuestionnaire = get().sourceQuestionnaire;
503
- const fhirPathContext = { ...get().fhirPathContext, ...(populatedContext ?? {}) };
504
- const initialResponseItemMap = createQuestionnaireResponseItemMap(
505
- sourceQuestionnaire,
506
- populatedResponse
507
- );
508
-
509
- const evaluateInitialCalculatedExpressionsResult = await evaluateInitialCalculatedExpressions({
510
- initialResponse: populatedResponse,
511
- initialResponseItemMap: initialResponseItemMap,
512
- calculatedExpressions: get().calculatedExpressions,
513
- variables: get().variables,
514
- existingFhirPathContext: fhirPathContext,
515
- fhirPathTerminologyCache: get().fhirPathTerminologyCache,
516
- terminologyServerUrl: terminologyServerStore.getState().url
517
- });
518
- const { initialCalculatedExpressions } = evaluateInitialCalculatedExpressionsResult;
519
- let updatedFhirPathContext = evaluateInitialCalculatedExpressionsResult.updatedFhirPathContext;
520
- let fhirPathTerminologyCache =
521
- evaluateInitialCalculatedExpressionsResult.fhirPathTerminologyCache;
522
-
523
- const updatedResponse = initialiseCalculatedExpressionValues(
524
- sourceQuestionnaire,
525
- populatedResponse,
526
- initialCalculatedExpressions
527
- );
528
-
529
- const {
530
- initialTargetConstraints,
531
- initialEnableWhenItems,
532
- initialEnableWhenLinkedQuestions,
533
- initialEnableWhenExpressions,
534
- initialAnswerOptionsToggleExpressions,
535
- firstVisibleTab,
536
- firstVisiblePage
537
- } = await initialiseFormFromResponse({
538
- sourceQuestionnaire,
539
- questionnaireResponse: updatedResponse,
540
- targetConstraints: get().targetConstraints,
541
- enableWhenItems: get().enableWhenItems,
542
- enableWhenExpressions: get().enableWhenExpressions,
543
- calculatedExpressions: initialCalculatedExpressions,
544
- answerOptionsToggleExpressions: get().answerOptionsToggleExpressions,
545
- variables: get().variables,
546
- processedValueSets: get().processedValueSets,
547
- tabs: get().tabs,
548
- pages: get().pages,
549
- fhirPathContext: updatedFhirPathContext,
550
- fhirPathTerminologyCache: fhirPathTerminologyCache,
551
- terminologyServerUrl: terminologyServerStore.getState().url
552
- });
553
- updatedFhirPathContext = evaluateInitialCalculatedExpressionsResult.updatedFhirPathContext;
554
- fhirPathTerminologyCache = evaluateInitialCalculatedExpressionsResult.fhirPathTerminologyCache;
555
-
556
- set(() => ({
557
- targetConstraints: initialTargetConstraints,
558
- answerOptionsToggleExpressions: initialAnswerOptionsToggleExpressions,
559
- enableWhenItems: initialEnableWhenItems,
560
- enableWhenLinkedQuestions: initialEnableWhenLinkedQuestions,
561
- enableWhenExpressions: initialEnableWhenExpressions,
562
- calculatedExpressions: initialCalculatedExpressions,
563
- currentTabIndex: persistTabIndex ? get().currentTabIndex : firstVisibleTab,
564
- currentPageIndex: persistPageIndex ? get().currentPageIndex : firstVisiblePage,
565
- fhirPathContext: updatedFhirPathContext,
566
- fhirPathTerminologyCache: fhirPathTerminologyCache,
567
- populatedContext: populatedContext ?? get().populatedContext
568
- }));
569
-
570
- return updatedResponse;
571
- },
572
606
  onFocusLinkId: (linkId: string) =>
573
607
  set(() => ({
574
608
  focusedLinkId: linkId
575
609
  })),
576
- setPopulatedContext: (
577
- newPopulatedContext: Record<string, any>,
578
- addToFhirPathContext?: boolean
579
- ) => {
580
- if (addToFhirPathContext) {
581
- const newFhirPathContext = { ...get().fhirPathContext, ...newPopulatedContext };
582
- set(() => ({
583
- populatedContext: newPopulatedContext,
584
- fhirPathContext: newFhirPathContext
585
- }));
586
- return;
587
- }
588
-
610
+ setAdditionalContext: (additionalContext: Record<string, any>) => {
611
+ const newFhirPathContext = { ...get().fhirPathContext, ...additionalContext };
589
612
  set(() => ({
590
- populatedContext: newPopulatedContext
613
+ additionalContext: additionalContext,
614
+ fhirPathContext: newFhirPathContext
591
615
  }));
592
616
  },
593
617
  setFormAsReadOnly: (readOnly: boolean) =>
@@ -599,8 +623,8 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
599
623
  /**
600
624
  * Questionnaire state management store which contains all properties and methods to manage the state of the questionnaire.
601
625
  * This is the React version of the store which can be used as React hooks in React functional components.
602
- * @see QuestionnaireStoreType for available properties and methods.
603
- * @see questionnaireStore for the vanilla store.
626
+ * @see {@link QuestionnaireStoreType} for available properties and methods.
627
+ * @see {@link questionnaireStore} for the vanilla store.
604
628
  *
605
629
  * @author Sean Fong
606
630
  */