@aehrc/smart-forms-renderer 1.0.0-alpha.98 → 1.0.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 (928) hide show
  1. package/README.md +5 -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 -28
  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 -14
  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 -13
  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 -18
  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 -18
  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 -18
  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 -17
  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 -13
  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 -12
  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 +54 -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 -15
  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 +2 -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 -141
  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 +53 -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 +19 -19
  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 +5 -5
  531. package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +15 -31
  532. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.tsx +0 -1
  533. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +12 -32
  534. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.tsx +3 -4
  535. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +14 -34
  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 +21 -76
  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 +0 -13
  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 -40
  582. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.tsx +1 -2
  583. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +19 -37
  584. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetFields.tsx +4 -5
  585. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.tsx +24 -38
  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 -33
  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 -33
  593. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx +5 -5
  594. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +11 -30
  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 +56 -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 -11
  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 +2 -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 -199
  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/parameterisedValueSets.ts +20 -9
  674. package/src/utils/targetConstraint.ts +12 -9
  675. package/src/utils/ucumQuantityConversion.ts +195 -0
  676. package/src/utils/validate.ts +8 -3
  677. package/src/utils/valueSet.ts +44 -1
  678. package/src/vite-env.d.ts +2 -1
  679. package/tsconfig.json +2 -2
  680. package/vite.config.ts +5 -1
  681. package/lib/api/callbacks.d.ts +0 -8
  682. package/lib/api/callbacks.js +0 -52
  683. package/lib/api/callbacks.js.map +0 -1
  684. package/lib/api/xFhirQuerySync.d.ts +0 -1
  685. package/lib/api/xFhirQuerySync.js +0 -61
  686. package/lib/api/xFhirQuerySync.js.map +0 -1
  687. package/lib/components/ExpressionUpdateFadingGlow.d.ts +0 -0
  688. package/lib/components/ExpressionUpdateFadingGlow.js +0 -2
  689. package/lib/components/ExpressionUpdateFadingGlow.js.map +0 -1
  690. package/lib/components/FormComponents/ItemParts/ExpressionUpdateFadingGlow.d.ts +0 -0
  691. package/lib/components/FormComponents/ItemParts/ExpressionUpdateFadingGlow.js +0 -2
  692. package/lib/components/FormComponents/ItemParts/ExpressionUpdateFadingGlow.js.map +0 -1
  693. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.d.ts +0 -7
  694. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +0 -26
  695. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +0 -1
  696. package/lib/components/FormComponents/ItemParts/FadingGlowExpressionUpdate.d.ts +0 -0
  697. package/lib/components/FormComponents/ItemParts/FadingGlowExpressionUpdate.js +0 -2
  698. package/lib/components/FormComponents/ItemParts/FadingGlowExpressionUpdate.js.map +0 -1
  699. package/lib/components/FormComponents/ItemParts/GranularRepopulateButton.d.ts +0 -8
  700. package/lib/components/FormComponents/ItemParts/GranularRepopulateButton.js +0 -130
  701. package/lib/components/FormComponents/ItemParts/GranularRepopulateButton.js.map +0 -1
  702. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButton.d.ts +0 -8
  703. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButton.js +0 -126
  704. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButton.js.map +0 -1
  705. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButtonStates.d.ts +0 -8
  706. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButtonStates.js +0 -118
  707. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButtonStates.js.map +0 -1
  708. package/lib/components/FormComponents/ItemParts/ItemLabelText.d.ts +0 -8
  709. package/lib/components/FormComponents/ItemParts/ItemLabelText.js +0 -63
  710. package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +0 -1
  711. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.d.ts +0 -8
  712. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +0 -53
  713. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +0 -1
  714. package/lib/components/FormComponents/ItemParts/SrOnlyCheckboxLabel.d.ts +0 -0
  715. package/lib/components/FormComponents/ItemParts/SrOnlyCheckboxLabel.js +0 -2
  716. package/lib/components/FormComponents/ItemParts/SrOnlyCheckboxLabel.js.map +0 -1
  717. package/lib/components/FormComponents/ItemParts/TempCalculatedExpressionSyncButton.d.ts +0 -7
  718. package/lib/components/FormComponents/ItemParts/TempCalculatedExpressionSyncButton.js +0 -95
  719. package/lib/components/FormComponents/ItemParts/TempCalculatedExpressionSyncButton.js.map +0 -1
  720. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.d.ts +0 -10
  721. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +0 -30
  722. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +0 -1
  723. package/lib/components/FormComponents/Tables/GroupTableRowCell.d.ts +0 -9
  724. package/lib/components/FormComponents/Tables/GroupTableRowCell.js +0 -15
  725. package/lib/components/FormComponents/Tables/GroupTableRowCell.js.map +0 -1
  726. package/lib/components/Iconify/Iconify.d.ts +0 -10
  727. package/lib/components/Iconify/Iconify.js +0 -26
  728. package/lib/components/Iconify/Iconify.js.map +0 -1
  729. package/lib/components/Renderer/FormBodyPage.d.ts +0 -9
  730. package/lib/components/Renderer/FormBodyPage.js +0 -43
  731. package/lib/components/Renderer/FormBodyPage.js.map +0 -1
  732. package/lib/components/Renderer/FormTitle.d.ts +0 -7
  733. package/lib/components/Renderer/FormTitle.js +0 -30
  734. package/lib/components/Renderer/FormTitle.js.map +0 -1
  735. package/lib/components/Renderer/FormTopLevelPage.d.ts +0 -9
  736. package/lib/components/Renderer/FormTopLevelPage.js +0 -29
  737. package/lib/components/Renderer/FormTopLevelPage.js.map +0 -1
  738. package/lib/hooks/useBooleanCalculatedExpression.d.ts +0 -12
  739. package/lib/hooks/useBooleanCalculatedExpression.js +0 -53
  740. package/lib/hooks/useBooleanCalculatedExpression.js.map +0 -1
  741. package/lib/hooks/useCalculatedExpressionAnimating.d.ts +0 -1
  742. package/lib/hooks/useCalculatedExpressionAnimating.js +0 -18
  743. package/lib/hooks/useCalculatedExpressionAnimating.js.map +0 -1
  744. package/lib/hooks/useCalculatedExpressionAnimation.d.ts +0 -1
  745. package/lib/hooks/useCalculatedExpressionAnimation.js +0 -18
  746. package/lib/hooks/useCalculatedExpressionAnimation.js.map +0 -1
  747. package/lib/hooks/useCqfAnswerValueSet.d.ts +0 -4
  748. package/lib/hooks/useCqfAnswerValueSet.js +0 -86
  749. package/lib/hooks/useCqfAnswerValueSet.js.map +0 -1
  750. package/lib/hooks/useCqfAnswerValueSetEffect.d.ts +0 -3
  751. package/lib/hooks/useCqfAnswerValueSetEffect.js +0 -111
  752. package/lib/hooks/useCqfAnswerValueSetEffect.js.map +0 -1
  753. package/lib/hooks/useDecimalCalculatedExpression.d.ts +0 -13
  754. package/lib/hooks/useDecimalCalculatedExpression.js +0 -64
  755. package/lib/hooks/useDecimalCalculatedExpression.js.map +0 -1
  756. package/lib/hooks/useIntegerCalculatedExpression.d.ts +0 -12
  757. package/lib/hooks/useIntegerCalculatedExpression.js +0 -61
  758. package/lib/hooks/useIntegerCalculatedExpression.js.map +0 -1
  759. package/lib/hooks/useQuantityCalculatedExpression.d.ts +0 -14
  760. package/lib/hooks/useQuantityCalculatedExpression.js +0 -115
  761. package/lib/hooks/useQuantityCalculatedExpression.js.map +0 -1
  762. package/lib/hooks/useShowDateTimeFeedback.d.ts +0 -13
  763. package/lib/hooks/useShowDateTimeFeedback.js +0 -40
  764. package/lib/hooks/useShowDateTimeFeedback.js.map +0 -1
  765. package/lib/hooks/useShowFeedback.d.ts +0 -11
  766. package/lib/hooks/useShowFeedback.js +0 -33
  767. package/lib/hooks/useShowFeedback.js.map +0 -1
  768. package/lib/hooks/useStringCalculatedExpression.d.ts +0 -12
  769. package/lib/hooks/useStringCalculatedExpression.js +0 -63
  770. package/lib/hooks/useStringCalculatedExpression.js.map +0 -1
  771. package/lib/hooks/useTempCalculatedExpressionsSyncButton.d.ts +0 -1
  772. package/lib/hooks/useTempCalculatedExpressionsSyncButton.js +0 -24
  773. package/lib/hooks/useTempCalculatedExpressionsSyncButton.js.map +0 -1
  774. package/lib/interfaces/fhirPathContext.interface.d.ts +0 -0
  775. package/lib/interfaces/fhirPathContext.interface.js +0 -2
  776. package/lib/interfaces/fhirPathContext.interface.js.map +0 -1
  777. package/lib/interfaces/itemDetails.interface.d.ts +0 -2
  778. package/lib/interfaces/itemDetails.interface.js +0 -2
  779. package/lib/interfaces/itemDetails.interface.js.map +0 -1
  780. package/lib/interfaces/itemMetadata.d.ts +0 -0
  781. package/lib/interfaces/itemMetadata.interface.d.ts +0 -6
  782. package/lib/interfaces/itemMetadata.interface.js +0 -2
  783. package/lib/interfaces/itemMetadata.interface.js.map +0 -1
  784. package/lib/interfaces/itemMetadata.js +0 -2
  785. package/lib/interfaces/itemMetadata.js.map +0 -1
  786. package/lib/interfaces/itemPath.d.ts +0 -31
  787. package/lib/interfaces/itemPath.js +0 -2
  788. package/lib/interfaces/itemPath.js.map +0 -1
  789. package/lib/stores/callbackStore.d.ts +0 -0
  790. package/lib/stores/callbackStore.js +0 -2
  791. package/lib/stores/callbackStore.js.map +0 -1
  792. package/lib/stores/extractOperationStore.d.ts +0 -26
  793. package/lib/stores/extractOperationStore.js +0 -20
  794. package/lib/stores/extractOperationStore.js.map +0 -1
  795. package/lib/stores/rendererStylingStore.js +0 -68
  796. package/lib/stores/rendererStylingStore.js.map +0 -1
  797. package/lib/stories/storybookWrappers/populateCallbackForStorybook.d.ts +0 -8
  798. package/lib/stories/storybookWrappers/populateCallbackForStorybook.js +0 -52
  799. package/lib/stories/storybookWrappers/populateCallbackForStorybook.js.map +0 -1
  800. package/lib/templates/bloodPressureTemplate.d.ts +0 -23
  801. package/lib/templates/bloodPressureTemplate.js +0 -80
  802. package/lib/templates/bloodPressureTemplate.js.map +0 -1
  803. package/lib/theme/RendererDynamicThemeProvider.d.ts +0 -24
  804. package/lib/theme/RendererDynamicThemeProvider.js +0 -65
  805. package/lib/theme/RendererDynamicThemeProvider.js.map +0 -1
  806. package/lib/theme/RendererThemeToggle.d.ts +0 -6
  807. package/lib/theme/RendererThemeToggle.js +0 -45
  808. package/lib/theme/RendererThemeToggle.js.map +0 -1
  809. package/lib/theme/Theme.d.ts +0 -44
  810. package/lib/theme/Theme.js +0 -43
  811. package/lib/theme/Theme.js.map +0 -1
  812. package/lib/theme/customGlobalStyles.d.ts +0 -1
  813. package/lib/theme/customGlobalStyles.js +0 -45
  814. package/lib/theme/customGlobalStyles.js.map +0 -1
  815. package/lib/theme/overrides/Accordion.d.ts +0 -14
  816. package/lib/theme/overrides/Accordion.js +0 -32
  817. package/lib/theme/overrides/Accordion.js.map +0 -1
  818. package/lib/theme/overrides/Autocomplete.d.ts +0 -10
  819. package/lib/theme/overrides/Autocomplete.js +0 -28
  820. package/lib/theme/overrides/Autocomplete.js.map +0 -1
  821. package/lib/theme/overrides/Button.d.ts +0 -33
  822. package/lib/theme/overrides/Button.js +0 -52
  823. package/lib/theme/overrides/Button.js.map +0 -1
  824. package/lib/theme/overrides/Card.d.ts +0 -35
  825. package/lib/theme/overrides/Card.js +0 -49
  826. package/lib/theme/overrides/Card.js.map +0 -1
  827. package/lib/theme/overrides/Input.d.ts +0 -64
  828. package/lib/theme/overrides/Input.js +0 -81
  829. package/lib/theme/overrides/Input.js.map +0 -1
  830. package/lib/theme/overrides/Overrides.d.ts +0 -3
  831. package/lib/theme/overrides/Overrides.js +0 -29
  832. package/lib/theme/overrides/Overrides.js.map +0 -1
  833. package/lib/theme/overrides/Paper.d.ts +0 -12
  834. package/lib/theme/overrides/Paper.js +0 -31
  835. package/lib/theme/overrides/Paper.js.map +0 -1
  836. package/lib/theme/overrides/SpeedDial.d.ts +0 -16
  837. package/lib/theme/overrides/SpeedDial.js +0 -34
  838. package/lib/theme/overrides/SpeedDial.js.map +0 -1
  839. package/lib/theme/overrides/Table.d.ts +0 -12
  840. package/lib/theme/overrides/Table.js +0 -30
  841. package/lib/theme/overrides/Table.js.map +0 -1
  842. package/lib/theme/overrides/rendererThemeComponentOverride.d.ts +0 -2
  843. package/lib/theme/overrides/rendererThemeComponentOverride.js +0 -28
  844. package/lib/theme/overrides/rendererThemeComponentOverride.js.map +0 -1
  845. package/lib/theme/overrides/rendererThemeComponentsOverride.d.ts +0 -2
  846. package/lib/theme/overrides/rendererThemeComponentsOverride.js +0 -28
  847. package/lib/theme/overrides/rendererThemeComponentsOverride.js.map +0 -1
  848. package/lib/theme/overrides/rendererThemeComponentsOverrides.d.ts +0 -2
  849. package/lib/theme/overrides/rendererThemeComponentsOverrides.js +0 -28
  850. package/lib/theme/overrides/rendererThemeComponentsOverrides.js.map +0 -1
  851. package/lib/theme/palette.d.ts +0 -27
  852. package/lib/theme/palette.js +0 -63
  853. package/lib/theme/palette.js.map +0 -1
  854. package/lib/theme/shadows.d.ts +0 -2
  855. package/lib/theme/shadows.js +0 -52
  856. package/lib/theme/shadows.js.map +0 -1
  857. package/lib/theme/themeOptions.d.ts +0 -2
  858. package/lib/theme/themeOptions.js +0 -85
  859. package/lib/theme/themeOptions.js.map +0 -1
  860. package/lib/theme/useRendererTheme.d.ts +0 -5
  861. package/lib/theme/useRendererTheme.js +0 -30
  862. package/lib/theme/useRendererTheme.js.map +0 -1
  863. package/lib/utils/FhirPathEvaluateParams.d.ts +0 -20
  864. package/lib/utils/FhirPathEvaluateParams.js +0 -35
  865. package/lib/utils/FhirPathEvaluateParams.js.map +0 -1
  866. package/lib/utils/dayjsExtend.d.ts +0 -1
  867. package/lib/utils/dayjsExtend.js +0 -22
  868. package/lib/utils/dayjsExtend.js.map +0 -1
  869. package/lib/utils/dayjsSetup.d.ts +0 -2
  870. package/lib/utils/dayjsSetup.js +0 -23
  871. package/lib/utils/dayjsSetup.js.map +0 -1
  872. package/lib/utils/extractTemplate.d.ts +0 -0
  873. package/lib/utils/extractTemplate.js +0 -1107
  874. package/lib/utils/extractTemplate.js.map +0 -1
  875. package/lib/utils/fhirathEvaluate.d.ts +0 -20
  876. package/lib/utils/fhirathEvaluate.js +0 -35
  877. package/lib/utils/fhirathEvaluate.js.map +0 -1
  878. package/lib/utils/fhirpathEvaluate.d.ts +0 -30
  879. package/lib/utils/fhirpathEvaluate.js +0 -68
  880. package/lib/utils/fhirpathEvaluate.js.map +0 -1
  881. package/lib/utils/find_item_no_text.d.ts +0 -1
  882. package/lib/utils/find_item_no_text.js +0 -65
  883. package/lib/utils/find_item_no_text.js.map +0 -1
  884. package/lib/utils/generateId.d.ts +0 -3
  885. package/lib/utils/generateId.js +0 -28
  886. package/lib/utils/generateId.js.map +0 -1
  887. package/lib/utils/granularRepopulateSync.d.ts +0 -1
  888. package/lib/utils/granularRepopulateSync.js +0 -70
  889. package/lib/utils/granularRepopulateSync.js.map +0 -1
  890. package/lib/utils/itemControl.d.ts +0 -103
  891. package/lib/utils/itemControl.js +0 -350
  892. package/lib/utils/itemControl.js.map +0 -1
  893. package/lib/utils/itemText.d.ts +0 -2
  894. package/lib/utils/itemText.js +0 -12
  895. package/lib/utils/itemText.js.map +0 -1
  896. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.d.ts +0 -2
  897. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js +0 -43
  898. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js.map +0 -1
  899. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.d.ts +0 -3
  900. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +0 -114
  901. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +0 -1
  902. package/lib/utils/questionnaireStoreUtils/itemDetails.d.ts +0 -5
  903. package/lib/utils/questionnaireStoreUtils/itemDetails.js +0 -2
  904. package/lib/utils/questionnaireStoreUtils/itemDetails.js.map +0 -1
  905. package/lib/utils/readItem.d.ts +0 -28
  906. package/lib/utils/readItem.js +0 -67
  907. package/lib/utils/readItem.js.map +0 -1
  908. package/lib/utils/syncInitialExpression.d.ts +0 -23
  909. package/lib/utils/syncInitialExpression.js +0 -407
  910. package/lib/utils/syncInitialExpression.js.map +0 -1
  911. package/lib/utils/templateMatching.d.ts +0 -15
  912. package/lib/utils/templateMatching.js +0 -56
  913. package/lib/utils/templateMatching.js.map +0 -1
  914. package/lib/utils/updateCodingsDynamic.d.ts +0 -1
  915. package/lib/utils/updateCodingsDynamic.js +0 -54
  916. package/lib/utils/updateCodingsDynamic.js.map +0 -1
  917. package/lib/utils/validateQuestionnaire.d.ts +0 -66
  918. package/lib/utils/validateQuestionnaire.js +0 -559
  919. package/lib/utils/validateQuestionnaire.js.map +0 -1
  920. package/src/hooks/useBooleanCalculatedExpression.ts +0 -83
  921. package/src/hooks/useDecimalCalculatedExpression.ts +0 -103
  922. package/src/hooks/useIntegerCalculatedExpression.ts +0 -93
  923. package/src/hooks/useQuantityCalculatedExpression.ts +0 -196
  924. package/src/hooks/useShowFeedback.ts +0 -36
  925. package/src/hooks/useStringCalculatedExpression.ts +0 -95
  926. package/src/interfaces/itemPath.interface.ts +0 -33
  927. package/src/utils/itemPath.ts +0 -79
  928. package/src/utils/questionnaireStoreUtils/addAdditionalVariables.ts +0 -52
@@ -1,17 +1,17 @@
1
1
  import type { Coding, Questionnaire, QuestionnaireItem, QuestionnaireResponse, QuestionnaireResponseItemAnswer } from 'fhir/r4';
2
- import type { Variables } from '../interfaces/variables.interface';
3
- import type { LaunchContext } from '../interfaces/populate.interface';
2
+ import type { ComponentType } from 'react';
3
+ import type { QItemOverrideComponentProps, SdcUiOverrideComponentProps } from '../interfaces';
4
+ import type { AnswerExpression } from '../interfaces/answerExpression.interface';
5
+ import type { AnswerOptionsToggleExpression } from '../interfaces/answerOptionsToggleExpression.interface';
4
6
  import type { CalculatedExpression } from '../interfaces/calculatedExpression.interface';
5
7
  import type { EnableWhenExpressions, EnableWhenItems } from '../interfaces/enableWhen.interface';
6
- import type { AnswerExpression } from '../interfaces/answerExpression.interface';
7
- import type { Tabs } from '../interfaces/tab.interface';
8
- import type { Pages } from '../interfaces/page.interface';
9
8
  import type { InitialExpression } from '../interfaces/initialExpression.interface';
10
- import type { QItemOverrideComponentProps, SdcUiOverrideComponentProps } from '../interfaces';
11
- import type { ComponentType } from 'react';
9
+ import type { Pages } from '../interfaces/page.interface';
10
+ import type { LaunchContext } from '../interfaces/populate.interface';
11
+ import type { Tabs } from '../interfaces/tab.interface';
12
12
  import type { TargetConstraint } from '../interfaces/targetConstraint.interface';
13
13
  import type { ProcessedValueSet } from '../interfaces/valueSet.interface';
14
- import type { AnswerOptionsToggleExpression } from '../interfaces/answerOptionsToggleExpression.interface';
14
+ import type { Variables } from '../interfaces/variables.interface';
15
15
  /**
16
16
  * QuestionnaireStore properties and methods
17
17
  * Properties can be accessed for fine-grain details.
@@ -26,6 +26,9 @@ import type { AnswerOptionsToggleExpression } from '../interfaces/answerOptionsT
26
26
  * @property currentPageIndex - Index of the current page
27
27
  * @property variables - Questionnaire variables object containing FHIRPath and x-fhir-query variables
28
28
  * @property launchContexts - Key-value pair of launch contexts `Record<launch context name, launch context properties>`
29
+ * @property initialExpressions - Key-value pair of initial expressions `Record<linkId, InitialExpression>`
30
+ * @property answerExpressions - Key-value pair of answer expressions `Record<linkId, answer expression properties>`
31
+ * @property calculatedExpressions - Key-value pair of calculated expressions `Record<linkId, array of calculated expression properties>`
29
32
  * @property targetConstraints - Key-value pair of target constraints `Record<target constraint key, target constraint properties>`
30
33
  * @property targetConstraintLinkIds - Key-value pair of linkIds against target constraint key(s) `Record<linkId, target constraint keys>`
31
34
  * @property answerOptionsToggleExpressions - Key-value pair of answer options toggle expressions `Record<linkId, array of answer options toggle expressions>`
@@ -33,13 +36,11 @@ import type { AnswerOptionsToggleExpression } from '../interfaces/answerOptionsT
33
36
  * @property enableWhenLinkedQuestions - Key-value pair of linked questions to enableWhen items `Record<linkId, linkIds of linked questions>`
34
37
  * @property enableWhenIsActivated - Flag to turn enableWhen checks on/off
35
38
  * @property enableWhenExpressions - EnableWhenExpressions object containing enableWhen expressions
36
- * @property calculatedExpressions - Key-value pair of calculated expressions `Record<linkId, array of calculated expression properties>`
37
- * @property answerExpressions - Key-value pair of answer expressions `Record<linkId, answer expression properties>`
38
39
  * @property processedValueSets - Key-value pair of (pre-)processed value set codings `Record<valueSetUrl, ProcessedValueSet>`
39
40
  * @property cachedValueSetCodings - Key-value pair of cached value set codings `Record<valueSetUrl, codings>`
40
41
  * @property fhirPathContext - Key-value pair of evaluated FHIRPath values `Record<variable name, evaluated value(s)>`
41
42
  * @property fhirPathTerminologyCache - Key-value pair of cached FHIRPath Terminology results `Record<cacheKey, cached terminology result>`
42
- * @property populatedContext - Key-value pair of one-off pre-populated FHIRPath values `Record<variable/launchContext/sourceQueries batch name, evaluated value(s)>`
43
+ * @property additionalContext - Key-value pair of additional/pre-populated FHIRPath values `Record<variable/launchContext/sourceQueries batch name, evaluated value(s)>`
43
44
  * @property qItemOverrideComponents - Key-value pair of React component overrides for Questionnaire Items via linkId `Record<linkId, React component>`
44
45
  * @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>`
45
46
  * @property focusedLinkId - LinkId of the currently focused item
@@ -50,14 +51,15 @@ import type { AnswerOptionsToggleExpression } from '../interfaces/answerOptionsT
50
51
  * @property switchPage - Used to switch the current page index
51
52
  * @property markTabAsComplete - Used to mark a tab index as complete
52
53
  * @property markPageAsComplete - Used to mark a page index as complete
54
+ * @property resetToFirstVisibleTab - Used to reset the current tab to the first visible tab
55
+ * @property resetToFirstVisiblePage - Used to reset the current page to the first visible page
53
56
  * @property updateEnableWhenItem - Used to update linked enableWhen items by updating a question with a new answer
54
57
  * @property mutateRepeatEnableWhenItems - Used to add or remove instances of repeating enableWhen items
55
58
  * @property toggleEnableWhenActivation - Used to toggle enableWhen checks on/off
56
- * @property updateExpressions - Used to update all SDC expressions based on the updated questionnaire response
59
+ * @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
57
60
  * @property addCodingToCache - Used to add a coding to the cached value set codings
58
- * @property updatePopulatedProperties - Used to update all SDC expressions based on a pre-populated questionnaire response
59
61
  * @property onFocusLinkId - Used to set the focused linkId
60
- * @property setPopulatedContext - Used to set the populated contexts (launchContext, sourceQueries, x-fhir-query vars) for debugging purposes, and optionally add to the FHIRPath context
62
+ * @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().
61
63
  * @property setFormAsReadOnly - Used to set the form as read-only
62
64
  *
63
65
  * @author Sean Fong
@@ -72,45 +74,46 @@ export interface QuestionnaireStoreType {
72
74
  currentPageIndex: number;
73
75
  variables: Variables;
74
76
  launchContexts: Record<string, LaunchContext>;
77
+ initialExpressions: Record<string, InitialExpression>;
78
+ answerExpressions: Record<string, AnswerExpression>;
79
+ calculatedExpressions: Record<string, CalculatedExpression[]>;
75
80
  targetConstraints: Record<string, TargetConstraint>;
76
81
  targetConstraintLinkIds: Record<string, string[]>;
77
- answerOptionsToggleExpressions: Record<string, AnswerOptionsToggleExpression[]>;
78
82
  enableWhenItems: EnableWhenItems;
79
83
  enableWhenLinkedQuestions: Record<string, string[]>;
80
84
  enableWhenIsActivated: boolean;
81
85
  enableWhenExpressions: EnableWhenExpressions;
82
- calculatedExpressions: Record<string, CalculatedExpression[]>;
83
- initialExpressions: Record<string, InitialExpression>;
84
- answerExpressions: Record<string, AnswerExpression>;
86
+ answerOptionsToggleExpressions: Record<string, AnswerOptionsToggleExpression[]>;
85
87
  processedValueSets: Record<string, ProcessedValueSet>;
86
88
  cachedValueSetCodings: Record<string, Coding[]>;
87
89
  fhirPathContext: Record<string, any>;
88
90
  fhirPathTerminologyCache: Record<string, any>;
89
- populatedContext: Record<string, any>;
91
+ additionalContext: Record<string, any>;
90
92
  qItemOverrideComponents: Record<string, ComponentType<QItemOverrideComponentProps>>;
91
93
  sdcUiOverrideComponents: Record<string, ComponentType<SdcUiOverrideComponentProps>>;
92
94
  focusedLinkId: string;
93
95
  readOnly: boolean;
94
- buildSourceQuestionnaire: (questionnaire: Questionnaire, questionnaireResponse?: QuestionnaireResponse, additionalVariables?: Record<string, any>, terminologyServerUrl?: string, readOnly?: boolean, qItemOverrideComponents?: Record<string, ComponentType<QItemOverrideComponentProps>>, sdcUiOverrideComponents?: Record<string, ComponentType<SdcUiOverrideComponentProps>>) => Promise<void>;
96
+ buildSourceQuestionnaire: (questionnaire: Questionnaire, questionnaireResponse?: QuestionnaireResponse, additionalContext?: Record<string, any>, terminologyServerUrl?: string, readOnly?: boolean, qItemOverrideComponents?: Record<string, ComponentType<QItemOverrideComponentProps>>, sdcUiOverrideComponents?: Record<string, ComponentType<SdcUiOverrideComponentProps>>) => Promise<void>;
95
97
  destroySourceQuestionnaire: () => void;
96
98
  switchTab: (newTabIndex: number) => void;
97
99
  switchPage: (newPageIndex: number) => void;
98
100
  markTabAsComplete: (tabLinkId: string) => void;
99
101
  markPageAsComplete: (pageLinkId: string) => void;
102
+ resetToFirstVisibleTab: () => void;
103
+ resetToFirstVisiblePage: () => void;
100
104
  updateEnableWhenItem: (linkId: string, newAnswer: QuestionnaireResponseItemAnswer[] | undefined, parentRepeatGroupIndex: number | null) => void;
101
105
  mutateRepeatEnableWhenItems: (parentRepeatGroupLinkId: string, parentRepeatGroupIndex: number, actionType: 'add' | 'remove') => void;
102
106
  toggleEnableWhenActivation: (isActivated: boolean) => void;
103
- updateExpressions: (updatedResponse: QuestionnaireResponse) => Promise<void>;
107
+ updateExpressions: (updatedResponse: QuestionnaireResponse, isInitialUpdate: boolean) => Promise<void>;
104
108
  addCodingToCache: (valueSetUrl: string, codings: Coding[]) => void;
105
- updatePopulatedProperties: (populatedResponse: QuestionnaireResponse, populatedContext?: Record<string, any>, persistTabIndex?: boolean) => Promise<QuestionnaireResponse>;
106
109
  onFocusLinkId: (linkId: string) => void;
107
- setPopulatedContext: (newPopulatedContext: Record<string, any>, addToFhirPathContext?: boolean) => void;
110
+ setAdditionalContext: (additionalContext: Record<string, any>) => void;
108
111
  setFormAsReadOnly: (readOnly: boolean) => void;
109
112
  }
110
113
  /**
111
114
  * Questionnaire state management store which contains all properties and methods to manage the state of the questionnaire.
112
115
  * This is the vanilla version of the store which can be used in non-React environments.
113
- * @see QuestionnaireStoreType for available properties and methods.
116
+ * @see {@link QuestionnaireStoreType} for available properties and methods.
114
117
  *
115
118
  * @author Sean Fong
116
119
  */
@@ -118,8 +121,8 @@ export declare const questionnaireStore: import("zustand/vanilla").StoreApi<Ques
118
121
  /**
119
122
  * Questionnaire state management store which contains all properties and methods to manage the state of the questionnaire.
120
123
  * This is the React version of the store which can be used as React hooks in React functional components.
121
- * @see QuestionnaireStoreType for available properties and methods.
122
- * @see questionnaireStore for the vanilla store.
124
+ * @see {@link QuestionnaireStoreType} for available properties and methods.
125
+ * @see {@link questionnaireStore} for the vanilla store.
123
126
  *
124
127
  * @author Sean Fong
125
128
  */
@@ -134,39 +137,40 @@ export declare const useQuestionnaireStore: import("zustand/vanilla").StoreApi<Q
134
137
  currentPageIndex: () => number;
135
138
  variables: () => Variables;
136
139
  launchContexts: () => Record<string, LaunchContext>;
140
+ initialExpressions: () => Record<string, InitialExpression>;
141
+ answerExpressions: () => Record<string, AnswerExpression>;
142
+ calculatedExpressions: () => Record<string, CalculatedExpression[]>;
137
143
  targetConstraints: () => Record<string, TargetConstraint>;
138
144
  targetConstraintLinkIds: () => Record<string, string[]>;
139
- answerOptionsToggleExpressions: () => Record<string, AnswerOptionsToggleExpression[]>;
140
145
  enableWhenItems: () => EnableWhenItems;
141
146
  enableWhenLinkedQuestions: () => Record<string, string[]>;
142
147
  enableWhenIsActivated: () => boolean;
143
148
  enableWhenExpressions: () => EnableWhenExpressions;
144
- calculatedExpressions: () => Record<string, CalculatedExpression[]>;
145
- initialExpressions: () => Record<string, InitialExpression>;
146
- answerExpressions: () => Record<string, AnswerExpression>;
149
+ answerOptionsToggleExpressions: () => Record<string, AnswerOptionsToggleExpression[]>;
147
150
  processedValueSets: () => Record<string, ProcessedValueSet>;
148
151
  cachedValueSetCodings: () => Record<string, Coding[]>;
149
152
  fhirPathContext: () => Record<string, any>;
150
153
  fhirPathTerminologyCache: () => Record<string, any>;
151
- populatedContext: () => Record<string, any>;
154
+ additionalContext: () => Record<string, any>;
152
155
  qItemOverrideComponents: () => Record<string, ComponentType<QItemOverrideComponentProps>>;
153
156
  sdcUiOverrideComponents: () => Record<string, ComponentType<SdcUiOverrideComponentProps>>;
154
157
  focusedLinkId: () => string;
155
158
  readOnly: () => boolean;
156
- buildSourceQuestionnaire: () => (questionnaire: Questionnaire, questionnaireResponse?: QuestionnaireResponse, additionalVariables?: Record<string, any>, terminologyServerUrl?: string, readOnly?: boolean, qItemOverrideComponents?: Record<string, ComponentType<QItemOverrideComponentProps>>, sdcUiOverrideComponents?: Record<string, ComponentType<SdcUiOverrideComponentProps>>) => Promise<void>;
159
+ buildSourceQuestionnaire: () => (questionnaire: Questionnaire, questionnaireResponse?: QuestionnaireResponse, additionalContext?: Record<string, any>, terminologyServerUrl?: string, readOnly?: boolean, qItemOverrideComponents?: Record<string, ComponentType<QItemOverrideComponentProps>>, sdcUiOverrideComponents?: Record<string, ComponentType<SdcUiOverrideComponentProps>>) => Promise<void>;
157
160
  destroySourceQuestionnaire: () => () => void;
158
161
  switchTab: () => (newTabIndex: number) => void;
159
162
  switchPage: () => (newPageIndex: number) => void;
160
163
  markTabAsComplete: () => (tabLinkId: string) => void;
161
164
  markPageAsComplete: () => (pageLinkId: string) => void;
165
+ resetToFirstVisibleTab: () => () => void;
166
+ resetToFirstVisiblePage: () => () => void;
162
167
  updateEnableWhenItem: () => (linkId: string, newAnswer: QuestionnaireResponseItemAnswer[] | undefined, parentRepeatGroupIndex: number | null) => void;
163
168
  mutateRepeatEnableWhenItems: () => (parentRepeatGroupLinkId: string, parentRepeatGroupIndex: number, actionType: "add" | "remove") => void;
164
169
  toggleEnableWhenActivation: () => (isActivated: boolean) => void;
165
- updateExpressions: () => (updatedResponse: QuestionnaireResponse) => Promise<void>;
170
+ updateExpressions: () => (updatedResponse: QuestionnaireResponse, isInitialUpdate: boolean) => Promise<void>;
166
171
  addCodingToCache: () => (valueSetUrl: string, codings: Coding[]) => void;
167
- updatePopulatedProperties: () => (populatedResponse: QuestionnaireResponse, populatedContext?: Record<string, any>, persistTabIndex?: boolean) => Promise<QuestionnaireResponse>;
168
172
  onFocusLinkId: () => (linkId: string) => void;
169
- setPopulatedContext: () => (newPopulatedContext: Record<string, any>, addToFhirPathContext?: boolean) => void;
173
+ setAdditionalContext: () => (additionalContext: Record<string, any>) => void;
170
174
  setFormAsReadOnly: () => (readOnly: boolean) => void;
171
175
  };
172
176
  };
@@ -14,34 +14,27 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
- return new (P || (P = Promise))(function (resolve, reject) {
20
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
- step((generator = generator.apply(thisArg, _arguments || [])).next());
24
- });
25
- };
26
17
  import { createStore } from 'zustand/vanilla';
18
+ import { processCalculatedExpressions } from '../utils/calculatedExpression';
19
+ import { applyComputedUpdates } from '../utils/computedUpdates';
27
20
  import { mutateRepeatEnableWhenItemInstances, updateEnableWhenItemAnswer } from '../utils/enableWhen';
28
- import { evaluateUpdatedExpressions } from '../utils/fhirpath';
29
- import { evaluateInitialCalculatedExpressions, initialiseCalculatedExpressionValues } from '../utils/calculatedExpression';
30
- import { createQuestionnaireModel } from '../utils/questionnaireStoreUtils/createQuestionnaireModel';
31
- import { initialiseFormFromResponse } from '../utils/initialise';
32
21
  import { emptyQuestionnaire, emptyResponse } from '../utils/emptyResource';
33
- import { terminologyServerStore } from './terminologyServerStore';
34
- import { createSelectors } from './selector';
35
22
  import { mutateRepeatEnableWhenExpressionInstances } from '../utils/enableWhenExpression';
36
- import { questionnaireResponseStore } from './questionnaireResponseStore';
23
+ import { evaluateOtherExpressions } from '../utils/fhirpath';
24
+ import { initialiseFormFromResponse } from '../utils/initialise';
37
25
  import { createQuestionnaireResponseItemMap } from '../utils/questionnaireResponseStoreUtils/updatableResponseItems';
38
26
  import { insertCompleteAnswerOptionsIntoQuestionnaire } from '../utils/questionnaireStoreUtils/insertAnswerOptions';
39
27
  import { readTargetConstraintLocationLinkIds } from '../utils/targetConstraint';
40
- import { applyComputedUpdates } from '../utils/computedUpdates';
28
+ import { questionnaireResponseStore } from './questionnaireResponseStore';
29
+ import { createSelectors } from './selector';
30
+ import { terminologyServerStore } from './terminologyServerStore';
31
+ import { createQuestionnaireModel } from '../utils/questionnaireStoreUtils/createQuestionnaireModel';
32
+ import { getFirstVisibleTab } from '../utils/tabs';
33
+ import { getFirstVisiblePage } from '../utils/page';
41
34
  /**
42
35
  * Questionnaire state management store which contains all properties and methods to manage the state of the questionnaire.
43
36
  * This is the vanilla version of the store which can be used in non-React environments.
44
- * @see QuestionnaireStoreType for available properties and methods.
37
+ * @see {@link QuestionnaireStoreType} for available properties and methods.
45
38
  *
46
39
  * @author Sean Fong
47
40
  */
@@ -69,26 +62,22 @@ export const questionnaireStore = createStore()((set, get) => ({
69
62
  cachedValueSetCodings: {},
70
63
  fhirPathContext: {},
71
64
  fhirPathTerminologyCache: {},
72
- populatedContext: {},
65
+ additionalContext: {},
73
66
  qItemOverrideComponents: {},
74
67
  sdcUiOverrideComponents: {},
75
68
  focusedLinkId: '',
76
69
  readOnly: false,
77
- buildSourceQuestionnaire: (questionnaire_1, ...args_1) => __awaiter(void 0, [questionnaire_1, ...args_1], void 0, function* (questionnaire, questionnaireResponse = structuredClone(emptyResponse), additionalVariables = {}, terminologyServerUrl = terminologyServerStore.getState().url, readOnly = false, qItemOverrideComponents = {}, sdcUiOverrideComponents = {}) {
78
- var _a, _b;
79
- const questionnaireModel = yield createQuestionnaireModel(questionnaire, terminologyServerUrl);
70
+ buildSourceQuestionnaire: async (questionnaire, questionnaireResponse = structuredClone(emptyResponse), additionalContext = {}, terminologyServerUrl = terminologyServerStore.getState().url, readOnly = false, qItemOverrideComponents = {}, sdcUiOverrideComponents = {}) => {
71
+ const questionnaireModel = await createQuestionnaireModel(questionnaire, terminologyServerUrl);
80
72
  // Insert answerOptions with displays into questionnaire
81
73
  questionnaire = insertCompleteAnswerOptionsIntoQuestionnaire(questionnaire, questionnaireModel.answerOptions);
82
74
  // If existing fhirPathContext is empty, use the one from the questionnaire model
83
75
  // Mostly existing fhirPathContext will be empty, but in some cases it may not be e.g. after pre-population
84
- let fhirPathContext = (_a = get().fhirPathContext) !== null && _a !== void 0 ? _a : questionnaireModel.fhirPathContext;
85
76
  // TODO reminder to have documentation when upgrading to 1.0.0 - 05/06/2025
86
77
  // TODO This is something new - the definition of additionalVariables is now <"name", "value">, which allows it to be injected into the renderer's fhirPathContext.
87
78
  // TODO as an example, populatedContext from a pre-pop module can now be inserted into the renderer for further use.
88
- fhirPathContext = Object.assign(Object.assign({}, fhirPathContext), additionalVariables);
89
- const fhirPathTerminologyCache = (_b = get().fhirPathTerminologyCache) !== null && _b !== void 0 ? _b : questionnaireModel.fhirPathTerminologyCache;
90
79
  // Initialise form with questionnaire response and properties in questionnaire model
91
- const { initialTargetConstraints, initialEnableWhenItems, initialEnableWhenLinkedQuestions, initialEnableWhenExpressions, initialCalculatedExpressions, initialProcessedValueSets, initialAnswerOptionsToggleExpressions, firstVisibleTab, firstVisiblePage, updatedFhirPathContext, fhirPathTerminologyCache: updatedFhirPathTerminologyCache } = yield initialiseFormFromResponse({
80
+ const { initialTargetConstraints, initialEnableWhenItems, initialEnableWhenLinkedQuestions, initialEnableWhenExpressions, initialCalculatedExpressions, initialProcessedValueSets, initialAnswerOptionsToggleExpressions, firstVisibleTab, firstVisiblePage, updatedFhirPathContext, fhirPathTerminologyCache: updatedFhirPathTerminologyCache } = await initialiseFormFromResponse({
92
81
  sourceQuestionnaire: questionnaire,
93
82
  questionnaireResponse,
94
83
  targetConstraints: questionnaireModel.targetConstraints,
@@ -100,12 +89,13 @@ export const questionnaireStore = createStore()((set, get) => ({
100
89
  processedValueSets: questionnaireModel.processedValueSets,
101
90
  tabs: questionnaireModel.tabs,
102
91
  pages: questionnaireModel.pages,
103
- fhirPathContext: fhirPathContext,
104
- fhirPathTerminologyCache: fhirPathTerminologyCache,
92
+ fhirPathContext: questionnaireModel.fhirPathContext,
93
+ fhirPathTerminologyCache: questionnaireModel.fhirPathTerminologyCache,
105
94
  terminologyServerUrl: terminologyServerUrl
106
95
  });
107
96
  // Read target constraint locations
108
97
  const targetConstraintLinkIds = readTargetConstraintLocationLinkIds(questionnaire, initialTargetConstraints);
98
+ const finalFhirPathContext = { ...updatedFhirPathContext, ...additionalContext };
109
99
  set({
110
100
  sourceQuestionnaire: questionnaire,
111
101
  itemMap: questionnaireModel.itemMap,
@@ -127,13 +117,14 @@ export const questionnaireStore = createStore()((set, get) => ({
127
117
  answerExpressions: questionnaireModel.answerExpressions,
128
118
  processedValueSets: initialProcessedValueSets,
129
119
  cachedValueSetCodings: questionnaireModel.cachedValueSetCodings,
130
- fhirPathContext: updatedFhirPathContext,
120
+ fhirPathContext: finalFhirPathContext,
131
121
  fhirPathTerminologyCache: updatedFhirPathTerminologyCache,
122
+ additionalContext: additionalContext,
132
123
  qItemOverrideComponents: qItemOverrideComponents,
133
124
  sdcUiOverrideComponents: sdcUiOverrideComponents,
134
125
  readOnly: readOnly
135
126
  });
136
- }),
127
+ },
137
128
  destroySourceQuestionnaire: () => set({
138
129
  sourceQuestionnaire: structuredClone(emptyQuestionnaire),
139
130
  itemMap: {},
@@ -164,15 +155,39 @@ export const questionnaireStore = createStore()((set, get) => ({
164
155
  markTabAsComplete: (tabLinkId) => {
165
156
  const tabs = get().tabs;
166
157
  set(() => ({
167
- tabs: Object.assign(Object.assign({}, tabs), { [tabLinkId]: Object.assign(Object.assign({}, tabs[tabLinkId]), { isComplete: !tabs[tabLinkId].isComplete }) })
158
+ tabs: {
159
+ ...tabs,
160
+ [tabLinkId]: { ...tabs[tabLinkId], isComplete: !tabs[tabLinkId].isComplete }
161
+ }
168
162
  }));
169
163
  },
170
164
  markPageAsComplete: (pageLinkId) => {
171
165
  const pages = get().pages;
172
166
  set(() => ({
173
- pages: Object.assign(Object.assign({}, pages), { [pageLinkId]: Object.assign(Object.assign({}, pages[pageLinkId]), { isComplete: !pages[pageLinkId].isComplete }) })
167
+ pages: {
168
+ ...pages,
169
+ [pageLinkId]: { ...pages[pageLinkId], isComplete: !pages[pageLinkId].isComplete }
170
+ }
174
171
  }));
175
172
  },
173
+ resetToFirstVisibleTab: () => {
174
+ const tabs = get().tabs;
175
+ const enableWhenItems = get().enableWhenItems;
176
+ const enableWhenExpressions = get().enableWhenExpressions;
177
+ const firstVisibleTab = Object.keys(tabs).length > 0
178
+ ? getFirstVisibleTab(tabs, enableWhenItems, enableWhenExpressions)
179
+ : 0;
180
+ set(() => ({ currentTabIndex: firstVisibleTab }));
181
+ },
182
+ resetToFirstVisiblePage: () => {
183
+ const pages = get().pages;
184
+ const enableWhenItems = get().enableWhenItems;
185
+ const enableWhenExpressions = get().enableWhenExpressions;
186
+ const firstVisiblePage = Object.keys(pages).length > 0
187
+ ? getFirstVisiblePage(pages, enableWhenItems, enableWhenExpressions)
188
+ : 0;
189
+ set(() => ({ currentPageIndex: firstVisiblePage }));
190
+ },
176
191
  updateEnableWhenItem: (linkId, newAnswer, parentRepeatGroupIndex) => {
177
192
  const enableWhenLinkedQuestions = get().enableWhenLinkedQuestions;
178
193
  const enableWhenItems = get().enableWhenItems;
@@ -180,16 +195,18 @@ export const questionnaireStore = createStore()((set, get) => ({
180
195
  return;
181
196
  }
182
197
  const itemLinkedQuestions = enableWhenLinkedQuestions[linkId];
183
- const updatedEnableWhenItems = updateEnableWhenItemAnswer(Object.assign({}, enableWhenItems), itemLinkedQuestions, linkId, newAnswer, parentRepeatGroupIndex);
198
+ const updatedEnableWhenItems = updateEnableWhenItemAnswer({ ...enableWhenItems }, itemLinkedQuestions, linkId, newAnswer, parentRepeatGroupIndex);
184
199
  set(() => ({
185
200
  enableWhenItems: updatedEnableWhenItems
186
201
  }));
187
202
  },
188
- mutateRepeatEnableWhenItems: (parentRepeatGroupLinkId, parentRepeatGroupIndex, actionType) => __awaiter(void 0, void 0, void 0, function* () {
203
+ mutateRepeatEnableWhenItems: async (parentRepeatGroupLinkId, parentRepeatGroupIndex, actionType) => {
189
204
  const enableWhenItems = get().enableWhenItems;
190
205
  const enableWhenExpressions = get().enableWhenExpressions;
191
- const updatedEnableWhenItems = mutateRepeatEnableWhenItemInstances(Object.assign({}, enableWhenItems), parentRepeatGroupLinkId, parentRepeatGroupIndex, actionType);
192
- const { updatedEnableWhenExpressions, isUpdated } = yield mutateRepeatEnableWhenExpressionInstances({
206
+ const updatedEnableWhenItems = mutateRepeatEnableWhenItemInstances({
207
+ ...enableWhenItems
208
+ }, parentRepeatGroupLinkId, parentRepeatGroupIndex, actionType);
209
+ const { updatedEnableWhenExpressions, isUpdated } = await mutateRepeatEnableWhenExpressionInstances({
193
210
  questionnaireResponse: questionnaireResponseStore.getState().updatableResponse,
194
211
  questionnaireResponseItemMap: questionnaireResponseStore.getState().updatableResponseItems,
195
212
  variables: get().variables,
@@ -207,121 +224,99 @@ export const questionnaireStore = createStore()((set, get) => ({
207
224
  enableWhenExpressions: updatedEnableWhenExpressions
208
225
  }));
209
226
  }
210
- }),
227
+ },
211
228
  toggleEnableWhenActivation: (isActivated) => set(() => ({ enableWhenIsActivated: isActivated })),
212
- updateExpressions: (updatedResponse) => __awaiter(void 0, void 0, void 0, function* () {
213
- const sourceQuestionnaire = get().sourceQuestionnaire;
229
+ updateExpressions: async (updatedResponse, isInitialUpdate) => {
230
+ /* Expression evaluation and application workflow
231
+ 1. Evaluate calculatedExpressions to update answers in the QuestionnaireResponse.
232
+ - This must happen first, as these answers may affect subsequent expressions.
233
+ - Call updateResponse() once before proceeding to the next steps.
234
+
235
+ 2. Evaluate other expressions using the QR with updated calculated answers.
236
+ - Target constraints
237
+ - Enable when expressions
238
+ - Answer options toggle expressions
239
+ - Dynamic valueSets (e.g. parameterised valueSets)
240
+
241
+ 3. Apply computed updates from answerOptionsToggleExpressions and updated Dynamic ValueSets into the QuestionnaireResponse.
242
+
243
+ 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.
244
+ 5. Update store state based on the expressions that changed
245
+ */
246
+ const { sourceQuestionnaire, itemMap, itemPreferredTerminologyServers, variables, targetConstraints, answerOptionsToggleExpressions, enableWhenExpressions, processedValueSets, calculatedExpressions, fhirPathContext, fhirPathTerminologyCache } = get();
214
247
  const updateResponse = questionnaireResponseStore.getState().updateResponse;
215
248
  const validateResponse = questionnaireResponseStore.getState().validateResponse;
216
- const updatedResponseItemMap = createQuestionnaireResponseItemMap(sourceQuestionnaire, updatedResponse);
217
- const { isUpdated, updatedTargetConstraints, updatedAnswerOptionsToggleExpressions, updatedEnableWhenExpressions, updatedCalculatedExpressions, updatedProcessedValueSets, updatedFhirPathContext, fhirPathTerminologyCache, computedQRItemUpdates } = yield evaluateUpdatedExpressions({
218
- updatedResponse,
219
- updatedResponseItemMap,
220
- targetConstraints: get().targetConstraints,
221
- answerOptionsToggleExpressions: get().answerOptionsToggleExpressions,
222
- enableWhenExpressions: get().enableWhenExpressions,
223
- calculatedExpressions: get().calculatedExpressions,
224
- processedValueSets: get().processedValueSets,
225
- variables: get().variables,
226
- existingFhirPathContext: get().fhirPathContext,
227
- fhirPathTerminologyCache: get().fhirPathTerminologyCache,
228
- terminologyServerUrl: terminologyServerStore.getState().url
229
- });
230
- /**
231
- * Applies computed updates to the QR before updating the store.
232
- * Before this, we were updating the store before applying the computed updates. This may cause downstream useEffects to use a stale QR.
233
- * By applying the computed updates first, we ensure that the QR is up-to-date when downstream useEffects are fired.
234
- */
235
- let lastUpdatedResponse = structuredClone(updatedResponse);
236
- if (Object.keys(computedQRItemUpdates).length > 0) {
237
- lastUpdatedResponse = applyComputedUpdates(get().sourceQuestionnaire, updatedResponse, computedQRItemUpdates);
238
- updateResponse(lastUpdatedResponse, 'async');
239
- }
240
- if (isUpdated) {
249
+ const defaultTerminologyServerUrl = terminologyServerStore.getState().url;
250
+ // Helper function to extract common state update logic
251
+ function updateStoreState(updatedResponse, calculatedExpressions, fhirPathContext, fhirPathTerminologyCache, otherExpressions) {
252
+ // Update QuestionnaireStore state
241
253
  set(() => ({
242
- targetConstraints: updatedTargetConstraints,
243
- answerOptionsToggleExpressions: updatedAnswerOptionsToggleExpressions,
244
- enableWhenExpressions: updatedEnableWhenExpressions,
245
- calculatedExpressions: updatedCalculatedExpressions,
246
- processedValueSets: updatedProcessedValueSets,
247
- fhirPathContext: updatedFhirPathContext,
248
- fhirPathTerminologyCache: fhirPathTerminologyCache
254
+ calculatedExpressions,
255
+ fhirPathContext,
256
+ fhirPathTerminologyCache,
257
+ ...(otherExpressions?.targetConstraints && {
258
+ targetConstraints: otherExpressions.targetConstraints
259
+ }),
260
+ ...(otherExpressions?.enableWhenExpressions && {
261
+ enableWhenExpressions: otherExpressions.enableWhenExpressions
262
+ }),
263
+ ...(otherExpressions?.answerOptionsToggleExpressions && {
264
+ answerOptionsToggleExpressions: otherExpressions.answerOptionsToggleExpressions
265
+ }),
266
+ ...(otherExpressions?.processedValueSets && {
267
+ processedValueSets: otherExpressions.processedValueSets
268
+ })
249
269
  }));
250
- // Besides setting QuestionnaireStore state, we also need to update `invalidItems` and `responseIsValid` in QuestionnaireResponseStore
251
- validateResponse(sourceQuestionnaire, lastUpdatedResponse); // Validate the updated response asynchronously
270
+ // Final validation
271
+ validateResponse(sourceQuestionnaire, updatedResponse);
252
272
  }
253
- set(() => ({
254
- fhirPathContext: updatedFhirPathContext,
255
- fhirPathTerminologyCache: fhirPathTerminologyCache
256
- }));
257
- }),
273
+ // Step 1: Process calculated expressions first
274
+ let { updatedResponse: lastUpdatedResponse, updatedCalculatedExpressions: updatedCalculatedExpressions } = await processCalculatedExpressions(sourceQuestionnaire, updatedResponse, itemMap, calculatedExpressions, variables, fhirPathContext, fhirPathTerminologyCache, itemPreferredTerminologyServers, defaultTerminologyServerUrl);
275
+ // Perform an immediate QR update first, then process other expressions asynchronously
276
+ updateResponse(lastUpdatedResponse, isInitialUpdate);
277
+ // Step 2: Evaluate other expressions
278
+ const updatedResponseItemMap = createQuestionnaireResponseItemMap(sourceQuestionnaire, lastUpdatedResponse);
279
+ const { updatedFhirPathContext, updatedFhirPathTerminologyCache, targetConstraintsUpdate, enableWhenExpressionsUpdate, answerOptionsToggleExpressionsUpdate, processedValueSetsUpdate, computedQRItemUpdates } = await evaluateOtherExpressions(lastUpdatedResponse, updatedResponseItemMap, variables, fhirPathContext, fhirPathTerminologyCache, targetConstraints, enableWhenExpressions, answerOptionsToggleExpressions, processedValueSets, defaultTerminologyServerUrl);
280
+ /* Step 3 & 4: Handle computed updates and re-run calculations if needed */
281
+ if (Object.keys(computedQRItemUpdates).length > 0) {
282
+ lastUpdatedResponse = applyComputedUpdates(sourceQuestionnaire, lastUpdatedResponse, computedQRItemUpdates);
283
+ // Re-run calculated expressions with the updated response
284
+ const finalCalculatedResult = await processCalculatedExpressions(sourceQuestionnaire, lastUpdatedResponse, itemMap, updatedCalculatedExpressions, variables, updatedFhirPathContext, updatedFhirPathTerminologyCache, itemPreferredTerminologyServers, defaultTerminologyServerUrl);
285
+ lastUpdatedResponse = finalCalculatedResult.updatedResponse;
286
+ updatedCalculatedExpressions = finalCalculatedResult.updatedCalculatedExpressions;
287
+ updateResponse(lastUpdatedResponse, isInitialUpdate);
288
+ }
289
+ /* Step 5: Update store state based on the expressions that changed */
290
+ const otherExpressionsToUpdate = {};
291
+ if (targetConstraintsUpdate.isUpdated) {
292
+ otherExpressionsToUpdate.targetConstraints = targetConstraintsUpdate.value;
293
+ }
294
+ if (enableWhenExpressionsUpdate.isUpdated) {
295
+ otherExpressionsToUpdate.enableWhenExpressions = enableWhenExpressionsUpdate.value;
296
+ }
297
+ if (answerOptionsToggleExpressionsUpdate.isUpdated) {
298
+ otherExpressionsToUpdate.answerOptionsToggleExpressions =
299
+ answerOptionsToggleExpressionsUpdate.value;
300
+ }
301
+ if (processedValueSetsUpdate.isUpdated) {
302
+ otherExpressionsToUpdate.processedValueSets = processedValueSetsUpdate.value;
303
+ }
304
+ updateStoreState(lastUpdatedResponse, updatedCalculatedExpressions, updatedFhirPathContext, updatedFhirPathTerminologyCache, Object.keys(otherExpressionsToUpdate).length > 0 ? otherExpressionsToUpdate : undefined);
305
+ },
258
306
  addCodingToCache: (valueSetUrl, codings) => set(() => ({
259
- cachedValueSetCodings: Object.assign(Object.assign({}, get().cachedValueSetCodings), { [valueSetUrl]: codings })
307
+ cachedValueSetCodings: {
308
+ ...get().cachedValueSetCodings,
309
+ [valueSetUrl]: codings
310
+ }
260
311
  })),
261
- updatePopulatedProperties: (populatedResponse, populatedContext, persistTabIndex, persistPageIndex) => __awaiter(void 0, void 0, void 0, function* () {
262
- const sourceQuestionnaire = get().sourceQuestionnaire;
263
- const fhirPathContext = Object.assign(Object.assign({}, get().fhirPathContext), (populatedContext !== null && populatedContext !== void 0 ? populatedContext : {}));
264
- const initialResponseItemMap = createQuestionnaireResponseItemMap(sourceQuestionnaire, populatedResponse);
265
- const evaluateInitialCalculatedExpressionsResult = yield evaluateInitialCalculatedExpressions({
266
- initialResponse: populatedResponse,
267
- initialResponseItemMap: initialResponseItemMap,
268
- calculatedExpressions: get().calculatedExpressions,
269
- variables: get().variables,
270
- existingFhirPathContext: fhirPathContext,
271
- fhirPathTerminologyCache: get().fhirPathTerminologyCache,
272
- terminologyServerUrl: terminologyServerStore.getState().url
273
- });
274
- const { initialCalculatedExpressions } = evaluateInitialCalculatedExpressionsResult;
275
- let updatedFhirPathContext = evaluateInitialCalculatedExpressionsResult.updatedFhirPathContext;
276
- let fhirPathTerminologyCache = evaluateInitialCalculatedExpressionsResult.fhirPathTerminologyCache;
277
- const updatedResponse = initialiseCalculatedExpressionValues(sourceQuestionnaire, populatedResponse, initialCalculatedExpressions);
278
- const { initialTargetConstraints, initialEnableWhenItems, initialEnableWhenLinkedQuestions, initialEnableWhenExpressions, initialAnswerOptionsToggleExpressions, firstVisibleTab, firstVisiblePage } = yield initialiseFormFromResponse({
279
- sourceQuestionnaire,
280
- questionnaireResponse: updatedResponse,
281
- targetConstraints: get().targetConstraints,
282
- enableWhenItems: get().enableWhenItems,
283
- enableWhenExpressions: get().enableWhenExpressions,
284
- calculatedExpressions: initialCalculatedExpressions,
285
- answerOptionsToggleExpressions: get().answerOptionsToggleExpressions,
286
- variables: get().variables,
287
- processedValueSets: get().processedValueSets,
288
- tabs: get().tabs,
289
- pages: get().pages,
290
- fhirPathContext: updatedFhirPathContext,
291
- fhirPathTerminologyCache: fhirPathTerminologyCache,
292
- terminologyServerUrl: terminologyServerStore.getState().url
293
- });
294
- updatedFhirPathContext = evaluateInitialCalculatedExpressionsResult.updatedFhirPathContext;
295
- fhirPathTerminologyCache = evaluateInitialCalculatedExpressionsResult.fhirPathTerminologyCache;
296
- set(() => ({
297
- targetConstraints: initialTargetConstraints,
298
- answerOptionsToggleExpressions: initialAnswerOptionsToggleExpressions,
299
- enableWhenItems: initialEnableWhenItems,
300
- enableWhenLinkedQuestions: initialEnableWhenLinkedQuestions,
301
- enableWhenExpressions: initialEnableWhenExpressions,
302
- calculatedExpressions: initialCalculatedExpressions,
303
- currentTabIndex: persistTabIndex ? get().currentTabIndex : firstVisibleTab,
304
- currentPageIndex: persistPageIndex ? get().currentPageIndex : firstVisiblePage,
305
- fhirPathContext: updatedFhirPathContext,
306
- fhirPathTerminologyCache: fhirPathTerminologyCache,
307
- populatedContext: populatedContext !== null && populatedContext !== void 0 ? populatedContext : get().populatedContext
308
- }));
309
- return updatedResponse;
310
- }),
311
312
  onFocusLinkId: (linkId) => set(() => ({
312
313
  focusedLinkId: linkId
313
314
  })),
314
- setPopulatedContext: (newPopulatedContext, addToFhirPathContext) => {
315
- if (addToFhirPathContext) {
316
- const newFhirPathContext = Object.assign(Object.assign({}, get().fhirPathContext), newPopulatedContext);
317
- set(() => ({
318
- populatedContext: newPopulatedContext,
319
- fhirPathContext: newFhirPathContext
320
- }));
321
- return;
322
- }
315
+ setAdditionalContext: (additionalContext) => {
316
+ const newFhirPathContext = { ...get().fhirPathContext, ...additionalContext };
323
317
  set(() => ({
324
- populatedContext: newPopulatedContext
318
+ additionalContext: additionalContext,
319
+ fhirPathContext: newFhirPathContext
325
320
  }));
326
321
  },
327
322
  setFormAsReadOnly: (readOnly) => set(() => ({
@@ -331,8 +326,8 @@ export const questionnaireStore = createStore()((set, get) => ({
331
326
  /**
332
327
  * Questionnaire state management store which contains all properties and methods to manage the state of the questionnaire.
333
328
  * This is the React version of the store which can be used as React hooks in React functional components.
334
- * @see QuestionnaireStoreType for available properties and methods.
335
- * @see questionnaireStore for the vanilla store.
329
+ * @see {@link QuestionnaireStoreType} for available properties and methods.
330
+ * @see {@link questionnaireStore} for the vanilla store.
336
331
  *
337
332
  * @author Sean Fong
338
333
  */