@aehrc/smart-forms-renderer 0.8.1 → 0.9.1

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 (355) hide show
  1. package/README.md +4 -2
  2. package/lib/components/FormComponents/BooleanItem/BooleanItem.d.ts +2 -2
  3. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.d.ts +2 -2
  4. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.d.ts +3 -3
  5. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +12 -12
  6. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
  7. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.d.ts +3 -3
  8. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +12 -12
  9. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  10. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.d.ts +3 -4
  11. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js +3 -3
  12. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js.map +1 -1
  13. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.d.ts +2 -2
  14. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.d.ts +2 -2
  15. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.d.ts +2 -2
  16. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.d.ts +2 -2
  17. package/lib/components/FormComponents/CustomDateItem/CustomDateField2.d.ts +18 -0
  18. package/lib/components/FormComponents/CustomDateItem/CustomDateField2.js +31 -0
  19. package/lib/components/FormComponents/CustomDateItem/CustomDateField2.js.map +1 -0
  20. package/lib/components/FormComponents/CustomDateItem/CustomDateItem.d.ts +9 -0
  21. package/lib/components/FormComponents/CustomDateItem/CustomDateItem.js +68 -0
  22. package/lib/components/FormComponents/CustomDateItem/CustomDateItem.js.map +1 -0
  23. package/lib/components/FormComponents/CustomDateItem/CustomDateTimeField.d.ts +9 -0
  24. package/lib/components/FormComponents/CustomDateItem/CustomDateTimeField.js +75 -0
  25. package/lib/components/FormComponents/CustomDateItem/CustomDateTimeField.js.map +1 -0
  26. package/lib/components/FormComponents/CustomDateItem/CustomDateTimePickerText2.d.ts +9 -0
  27. package/lib/components/FormComponents/CustomDateItem/CustomDateTimePickerText2.js +75 -0
  28. package/lib/components/FormComponents/CustomDateItem/CustomDateTimePickerText2.js.map +1 -0
  29. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.d.ts +18 -0
  30. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.js +33 -0
  31. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.js.map +1 -0
  32. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.d.ts +11 -0
  33. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.js +55 -0
  34. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.js.map +1 -0
  35. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.d.ts +9 -0
  36. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.js +13 -0
  37. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.js.map +1 -0
  38. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.d.ts +5 -0
  39. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.js +20 -0
  40. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.js.map +1 -0
  41. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/hooks/useParseDates.d.ts +5 -0
  42. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/hooks/useParseDates.js +27 -0
  43. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/hooks/useParseDates.js.map +1 -0
  44. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/index.d.ts +1 -0
  45. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/index.js +18 -0
  46. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/index.js.map +1 -0
  47. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.d.ts +1 -0
  48. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.js +18 -0
  49. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.js.map +1 -0
  50. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.d.ts +9 -0
  51. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.js +121 -0
  52. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.js.map +1 -0
  53. package/lib/components/FormComponents/CustomDateItem/customDateTimePickerText.d.ts +9 -0
  54. package/lib/components/FormComponents/CustomDateItem/customDateTimePickerText.js +71 -0
  55. package/lib/components/FormComponents/CustomDateItem/customDateTimePickerText.js.map +1 -0
  56. package/lib/components/FormComponents/CustomDateItem/index.d.ts +1 -0
  57. package/lib/components/FormComponents/CustomDateItem/index.js +18 -0
  58. package/lib/components/FormComponents/CustomDateItem/index.js.map +1 -0
  59. package/lib/components/FormComponents/DateItem/DateItem.d.ts +3 -4
  60. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.d.ts +2 -2
  61. package/lib/components/FormComponents/DecimalItem/DecimalItem.d.ts +2 -2
  62. package/lib/components/FormComponents/DecimalItem/DecimalItem.js +2 -3
  63. package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
  64. package/lib/components/FormComponents/DisplayItem/DisplayBox.d.ts +0 -0
  65. package/lib/components/FormComponents/DisplayItem/DisplayBox.js +2 -0
  66. package/lib/components/FormComponents/DisplayItem/DisplayBox.js.map +1 -0
  67. package/lib/components/FormComponents/DisplayItem/DisplayBox.styles.d.ts +4 -0
  68. package/lib/components/FormComponents/DisplayItem/DisplayBox.styles.js +35 -0
  69. package/lib/components/FormComponents/DisplayItem/DisplayBox.styles.js.map +1 -0
  70. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.d.ts +2 -1
  71. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js.map +1 -1
  72. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js +0 -1
  73. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js.map +1 -1
  74. package/lib/components/FormComponents/GridGroup/GridGroup.d.ts +3 -3
  75. package/lib/components/FormComponents/GridGroup/GridGroup.js +13 -8
  76. package/lib/components/FormComponents/GridGroup/GridGroup.js.map +1 -1
  77. package/lib/components/FormComponents/GridGroup/GridRow.d.ts +3 -4
  78. package/lib/components/FormComponents/GridGroup/GridRow.js +3 -3
  79. package/lib/components/FormComponents/GridGroup/GridRow.js.map +1 -1
  80. package/lib/components/FormComponents/GridGroup/GridTable.d.ts +3 -3
  81. package/lib/components/FormComponents/GridGroup/GridTable.js +9 -4
  82. package/lib/components/FormComponents/GridGroup/GridTable.js.map +1 -1
  83. package/lib/components/FormComponents/GridGroup/index.d.ts +1 -0
  84. package/lib/components/FormComponents/GridGroup/index.js +18 -0
  85. package/lib/components/FormComponents/GridGroup/index.js.map +1 -0
  86. package/lib/components/FormComponents/GroupItem/GroupItem.d.ts +2 -2
  87. package/lib/components/FormComponents/GroupItem/GroupItem.js +2 -2
  88. package/lib/components/FormComponents/GroupItem/GroupItem.js.map +1 -1
  89. package/lib/components/FormComponents/GroupItem/GroupItem.styles.d.ts +1 -1
  90. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.d.ts +2 -2
  91. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +5 -6
  92. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
  93. package/lib/components/FormComponents/IntegerItem/IntegerItem.d.ts +2 -2
  94. package/lib/components/FormComponents/IntegerItem/IntegerItem.js +2 -3
  95. package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
  96. package/lib/components/FormComponents/IntegerItem/SliderItem.d.ts +9 -0
  97. package/lib/components/FormComponents/IntegerItem/SliderItem.js +75 -0
  98. package/lib/components/FormComponents/IntegerItem/SliderItem.js.map +1 -0
  99. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +2 -2
  100. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +1 -1
  101. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.d.ts +2 -2
  102. package/lib/components/FormComponents/Lists.styles.d.ts +1 -1
  103. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.d.ts +2 -2
  104. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.d.ts +3 -3
  105. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +12 -12
  106. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
  107. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.d.ts +3 -3
  108. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js +2 -2
  109. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js.map +1 -1
  110. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.d.ts +2 -2
  111. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.d.ts +2 -2
  112. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.d.ts +2 -2
  113. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.d.ts +2 -2
  114. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +15 -4
  115. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -1
  116. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.d.ts +2 -2
  117. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js +2 -2
  118. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js.map +1 -1
  119. package/lib/components/FormComponents/RepeatItem/RepeatField.d.ts +3 -3
  120. package/lib/components/FormComponents/RepeatItem/RepeatField.js +3 -3
  121. package/lib/components/FormComponents/RepeatItem/RepeatField.js.map +1 -1
  122. package/lib/components/FormComponents/RepeatItem/RepeatItem.d.ts +3 -2
  123. package/lib/components/FormComponents/RepeatItem/RepeatItem.js +11 -2
  124. package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
  125. package/lib/components/FormComponents/RepeatItem/index.d.ts +1 -0
  126. package/lib/components/FormComponents/RepeatItem/index.js +18 -0
  127. package/lib/components/FormComponents/RepeatItem/index.js.map +1 -0
  128. package/lib/components/FormComponents/SingleItem/SingleItem.d.ts +3 -3
  129. package/lib/components/FormComponents/SingleItem/SingleItem.js +2 -2
  130. package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
  131. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.d.ts +3 -3
  132. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js +12 -7
  133. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -1
  134. package/lib/components/FormComponents/SliderItem/DisplayBox.styles.d.ts +4 -0
  135. package/lib/components/FormComponents/SliderItem/DisplayBox.styles.js +35 -0
  136. package/lib/components/FormComponents/SliderItem/DisplayBox.styles.js.map +1 -0
  137. package/lib/components/FormComponents/SliderItem/Slider.styles.d.ts +6 -0
  138. package/lib/components/FormComponents/SliderItem/Slider.styles.js +33 -0
  139. package/lib/components/FormComponents/SliderItem/Slider.styles.js.map +1 -0
  140. package/lib/components/FormComponents/SliderItem/SliderDisplayValue.d.ts +8 -0
  141. package/lib/components/FormComponents/SliderItem/SliderDisplayValue.js +28 -0
  142. package/lib/components/FormComponents/SliderItem/SliderDisplayValue.js.map +1 -0
  143. package/lib/components/FormComponents/SliderItem/SliderField.d.ts +16 -0
  144. package/lib/components/FormComponents/SliderItem/SliderField.js +41 -0
  145. package/lib/components/FormComponents/SliderItem/SliderField.js.map +1 -0
  146. package/lib/components/FormComponents/SliderItem/SliderItem.d.ts +9 -0
  147. package/lib/components/FormComponents/SliderItem/SliderItem.js +56 -0
  148. package/lib/components/FormComponents/SliderItem/SliderItem.js.map +1 -0
  149. package/lib/components/FormComponents/SliderItem/SliderLabels.d.ts +7 -0
  150. package/lib/components/FormComponents/SliderItem/SliderLabels.js +32 -0
  151. package/lib/components/FormComponents/SliderItem/SliderLabels.js.map +1 -0
  152. package/lib/components/FormComponents/StringItem/StringItem.d.ts +2 -2
  153. package/lib/components/FormComponents/Tables/GroupTable.d.ts +3 -2
  154. package/lib/components/FormComponents/Tables/GroupTable.js +18 -1
  155. package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -1
  156. package/lib/components/FormComponents/Tables/GroupTableRow.d.ts +3 -4
  157. package/lib/components/FormComponents/Tables/GroupTableRow.js +3 -3
  158. package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -1
  159. package/lib/components/FormComponents/TextItem/TextItem.d.ts +2 -2
  160. package/lib/components/FormComponents/TimeItem/TimeItem.d.ts +2 -2
  161. package/lib/components/FormComponents/UrlItem/UrlItem.d.ts +2 -2
  162. package/lib/components/FormComponents/index.d.ts +3 -0
  163. package/lib/components/FormComponents/index.js +3 -0
  164. package/lib/components/FormComponents/index.js.map +1 -1
  165. package/lib/components/Lists.styles.d.ts +1 -1
  166. package/lib/components/Renderer/BaseRenderer.js +3 -5
  167. package/lib/components/Renderer/BaseRenderer.js.map +1 -1
  168. package/lib/components/Renderer/FormBodyCollapsible.d.ts +2 -2
  169. package/lib/components/Renderer/FormBodyCollapsible.js +6 -5
  170. package/lib/components/Renderer/FormBodyCollapsible.js.map +1 -1
  171. package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.d.ts +2 -2
  172. package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.js.map +1 -1
  173. package/lib/components/Renderer/FormBodyTabbed.d.ts +2 -2
  174. package/lib/components/Renderer/FormBodyTabbed.js +6 -5
  175. package/lib/components/Renderer/FormBodyTabbed.js.map +1 -1
  176. package/lib/components/Renderer/FormTopLevelItem.d.ts +2 -2
  177. package/lib/components/Renderer/FormTopLevelItem.js +3 -1
  178. package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
  179. package/lib/components/Renderer/SmartFormsRenderer.js +1 -1
  180. package/lib/components/Renderer/SmartFormsRenderer.js.map +1 -1
  181. package/lib/hooks/useDateSeparatorValidation.d.ts +2 -0
  182. package/lib/hooks/useDateSeparatorValidation.js +25 -0
  183. package/lib/hooks/useDateSeparatorValidation.js.map +1 -0
  184. package/lib/hooks/useDateValidation.d.ts +2 -0
  185. package/lib/hooks/useDateValidation.js +61 -0
  186. package/lib/hooks/useDateValidation.js.map +1 -0
  187. package/lib/hooks/useDecimalCalculatedExpression.d.ts +0 -1
  188. package/lib/hooks/useDecimalCalculatedExpression.js +3 -3
  189. package/lib/hooks/useDecimalCalculatedExpression.js.map +1 -1
  190. package/lib/hooks/useInitialiseRepeatAnswers.d.ts +1 -1
  191. package/lib/hooks/useInitialiseRepeatAnswers.js.map +1 -1
  192. package/lib/hooks/useIntegerCalculatedExpression.d.ts +0 -1
  193. package/lib/hooks/useIntegerCalculatedExpression.js +3 -3
  194. package/lib/hooks/useIntegerCalculatedExpression.js.map +1 -1
  195. package/lib/hooks/useSliderExtensions.d.ts +10 -0
  196. package/lib/hooks/useSliderExtensions.js +37 -0
  197. package/lib/hooks/useSliderExtensions.js.map +1 -0
  198. package/lib/hooks/useTerminologyServerQuery.js +0 -1
  199. package/lib/hooks/useTerminologyServerQuery.js.map +1 -1
  200. package/lib/index.d.ts +3 -3
  201. package/lib/index.js +15 -6
  202. package/lib/index.js.map +1 -1
  203. package/lib/interfaces/index.d.ts +2 -0
  204. package/lib/interfaces/index.js +18 -0
  205. package/lib/interfaces/index.js.map +1 -0
  206. package/lib/interfaces/questionnaireStore.interface.d.ts +1 -0
  207. package/lib/interfaces/renderProps.interface.d.ts +4 -3
  208. package/lib/stores/useQuestionnaireStore.d.ts +1 -0
  209. package/lib/stores/useQuestionnaireStore.js +28 -12
  210. package/lib/stores/useQuestionnaireStore.js.map +1 -1
  211. package/lib/test.d.ts +4 -0
  212. package/lib/test.js +18 -0
  213. package/lib/test.js.map +1 -0
  214. package/lib/theme/customGlobalStyles.js +2 -5
  215. package/lib/theme/customGlobalStyles.js.map +1 -1
  216. package/lib/theme/typography.js +9 -9
  217. package/lib/theme/typography.js.map +1 -1
  218. package/lib/utils/calculatedExpression.d.ts +5 -1
  219. package/lib/utils/calculatedExpression.js +21 -16
  220. package/lib/utils/calculatedExpression.js.map +1 -1
  221. package/lib/utils/dayjsExtend.d.ts +1 -0
  222. package/lib/utils/dayjsExtend.js +22 -0
  223. package/lib/utils/dayjsExtend.js.map +1 -0
  224. package/lib/utils/enableWhenExpression.d.ts +5 -1
  225. package/lib/utils/enableWhenExpression.js +26 -21
  226. package/lib/utils/enableWhenExpression.js.map +1 -1
  227. package/lib/utils/fhirpath.d.ts +3 -1
  228. package/lib/utils/fhirpath.js +25 -15
  229. package/lib/utils/fhirpath.js.map +1 -1
  230. package/lib/utils/index.d.ts +1 -0
  231. package/lib/utils/index.js +1 -0
  232. package/lib/utils/index.js.map +1 -1
  233. package/lib/utils/initialiseForm.d.ts +2 -0
  234. package/lib/utils/initialiseForm.js +13 -5
  235. package/lib/utils/initialiseForm.js.map +1 -1
  236. package/lib/utils/itemControl.d.ts +12 -0
  237. package/lib/utils/itemControl.js +30 -0
  238. package/lib/utils/itemControl.js.map +1 -1
  239. package/lib/utils/launchContext.d.ts +0 -0
  240. package/lib/utils/launchContext.js +2 -0
  241. package/lib/utils/launchContext.js.map +1 -0
  242. package/lib/utils/mapItem.d.ts +1 -1
  243. package/lib/utils/populateContexts.d.ts +2 -12
  244. package/lib/utils/populateContexts.js +0 -36
  245. package/lib/utils/populateContexts.js.map +1 -1
  246. package/lib/utils/qrItem.d.ts +1 -7
  247. package/lib/utils/qrItem.js +1 -12
  248. package/lib/utils/qrItem.js.map +1 -1
  249. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +4 -2
  250. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -1
  251. package/lib/utils/removeHidden.js +2 -1
  252. package/lib/utils/removeHidden.js.map +1 -1
  253. package/lib/utils/repopulateIntoResponse.js +90 -29
  254. package/lib/utils/repopulateIntoResponse.js.map +1 -1
  255. package/lib/utils/repopulateItems.d.ts +14 -1
  256. package/lib/utils/repopulateItems.js +251 -70
  257. package/lib/utils/repopulateItems.js.map +1 -1
  258. package/lib/utils/repopulateRepeatGroup.js +9 -1
  259. package/lib/utils/repopulateRepeatGroup.js.map +1 -1
  260. package/lib/utils/slider.d.ts +28 -0
  261. package/lib/utils/slider.js +89 -0
  262. package/lib/utils/slider.js.map +1 -0
  263. package/package.json +18 -15
  264. package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +2 -2
  265. package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +2 -2
  266. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +33 -33
  267. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +35 -35
  268. package/src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx +8 -8
  269. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +2 -2
  270. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +2 -2
  271. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +2 -2
  272. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +2 -2
  273. package/src/components/FormComponents/CustomDateItem/CustomDateItem.tsx +140 -0
  274. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.tsx +96 -0
  275. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.tsx +81 -0
  276. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.tsx +33 -0
  277. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.ts +22 -0
  278. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/index.ts +18 -0
  279. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.ts +18 -0
  280. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.ts +154 -0
  281. package/src/components/FormComponents/CustomDateItem/index.ts +18 -0
  282. package/src/components/FormComponents/DateItem/DateItem.tsx +3 -3
  283. package/src/components/FormComponents/DateTimeItem/DateTimeItem.tsx +2 -2
  284. package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +4 -5
  285. package/src/components/FormComponents/DisplayItem/DisplayInstructions.styles.ts +0 -1
  286. package/src/components/FormComponents/DisplayItem/DisplayInstructions.tsx +2 -1
  287. package/src/components/FormComponents/GridGroup/GridGroup.tsx +41 -15
  288. package/src/components/FormComponents/GridGroup/GridRow.tsx +10 -9
  289. package/src/components/FormComponents/GridGroup/GridTable.tsx +29 -9
  290. package/src/components/FormComponents/GridGroup/index.ts +18 -0
  291. package/src/components/FormComponents/GroupItem/GroupItem.tsx +5 -6
  292. package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +7 -8
  293. package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +4 -5
  294. package/src/components/FormComponents/ItemParts/FadingCheckIcon.tsx +2 -2
  295. package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +2 -2
  296. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +2 -2
  297. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +43 -43
  298. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx +6 -6
  299. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +2 -2
  300. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +2 -2
  301. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +2 -2
  302. package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +49 -6
  303. package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.tsx +13 -8
  304. package/src/components/FormComponents/RepeatItem/RepeatField.tsx +15 -9
  305. package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +33 -3
  306. package/src/components/FormComponents/RepeatItem/index.ts +18 -0
  307. package/src/components/FormComponents/SingleItem/SingleItem.tsx +6 -6
  308. package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +27 -11
  309. package/src/components/FormComponents/SliderItem/Slider.styles.ts +34 -0
  310. package/src/components/FormComponents/SliderItem/SliderDisplayValue.tsx +43 -0
  311. package/src/components/FormComponents/SliderItem/SliderField.tsx +88 -0
  312. package/src/components/FormComponents/SliderItem/SliderItem.tsx +115 -0
  313. package/src/components/FormComponents/SliderItem/SliderLabels.tsx +53 -0
  314. package/src/components/FormComponents/StringItem/StringItem.tsx +2 -2
  315. package/src/components/FormComponents/Tables/GroupTable.tsx +55 -3
  316. package/src/components/FormComponents/Tables/GroupTableRow.tsx +10 -9
  317. package/src/components/FormComponents/TextItem/TextItem.tsx +2 -2
  318. package/src/components/FormComponents/TimeItem/TimeItem.tsx +2 -2
  319. package/src/components/FormComponents/UrlItem/UrlItem.tsx +2 -2
  320. package/src/components/FormComponents/index.ts +3 -0
  321. package/src/components/Renderer/BaseRenderer.tsx +5 -12
  322. package/src/components/Renderer/FormBodyCollapsible.tsx +9 -7
  323. package/src/components/Renderer/FormBodySingleCollapsibleWrapper.tsx +2 -3
  324. package/src/components/Renderer/FormBodyTabbed.tsx +9 -7
  325. package/src/components/Renderer/FormTopLevelItem.tsx +14 -11
  326. package/src/components/Renderer/SmartFormsRenderer.tsx +2 -1
  327. package/src/hooks/useDateValidation.tsx +79 -0
  328. package/src/hooks/useDecimalCalculatedExpression.ts +3 -4
  329. package/src/hooks/useInitialiseRepeatAnswers.ts +1 -1
  330. package/src/hooks/useIntegerCalculatedExpression.ts +3 -4
  331. package/src/hooks/useSliderExtensions.ts +50 -0
  332. package/src/hooks/useTerminologyServerQuery.ts +0 -2
  333. package/src/index.ts +12 -9
  334. package/src/interfaces/questionnaireStore.interface.ts +1 -0
  335. package/src/interfaces/renderProps.interface.ts +4 -3
  336. package/src/stores/useQuestionnaireStore.ts +39 -16
  337. package/src/theme/customGlobalStyles.tsx +2 -5
  338. package/src/theme/typography.ts +9 -9
  339. package/src/utils/calculatedExpression.ts +41 -28
  340. package/src/utils/dayjsExtend.ts +23 -0
  341. package/src/utils/enableWhenExpression.ts +49 -34
  342. package/src/utils/fhirpath.ts +50 -31
  343. package/src/utils/index.ts +1 -0
  344. package/src/utils/initialiseForm.ts +15 -5
  345. package/src/utils/itemControl.ts +32 -0
  346. package/src/utils/mapItem.ts +1 -1
  347. package/src/utils/populateContexts.ts +2 -61
  348. package/src/utils/qrItem.ts +1 -16
  349. package/src/utils/questionnaireStoreUtils/createQuestionaireModel.ts +4 -2
  350. package/src/utils/removeHidden.ts +2 -1
  351. package/src/utils/repopulateIntoResponse.ts +134 -43
  352. package/src/utils/repopulateItems.ts +379 -101
  353. package/src/utils/slider.ts +112 -0
  354. package/src/utils/populateInputParams.ts +0 -242
  355. package/src/utils/repopulateRepeatGroup.ts +0 -68
@@ -30,8 +30,14 @@ export function getRepeatGroupToRepopulate(qItem, itemsToRepopulate) {
30
30
  return null;
31
31
  }
32
32
  const childLinkIds = qItem.item
33
- .filter((childItem) => !!itemsToRepopulate[childItem.linkId])
33
+ // .filter((childItem) => !!itemsToRepopulate[childItem.linkId])
34
34
  .map((childItem) => childItem.linkId);
35
+ console.log(childLinkIds);
36
+ const aggr = childLinkIds
37
+ .map((linkId) => itemsToRepopulate[linkId])
38
+ .map((itemToRepopulate) => itemToRepopulate.newQRItems);
39
+ console.log(aggr);
40
+ // TODO ok good progress but how do we know to map sprased answers
35
41
  const childQRItemsToRepopulate = childLinkIds
36
42
  .reduce((result, linkId) => {
37
43
  if (itemsToRepopulate[linkId]) {
@@ -40,6 +46,8 @@ export function getRepeatGroupToRepopulate(qItem, itemsToRepopulate) {
40
46
  return result;
41
47
  }, [])
42
48
  .map((itemToRepopulate) => itemToRepopulate.newQRItem);
49
+ // console.log(cloneDeep(childQRItemsToRepopulate));
50
+ console.log(childQRItemsToRepopulate);
43
51
  const repeatGroupToRepopulate = {
44
52
  heading: (_a = qItem.text) !== null && _a !== void 0 ? _a : null,
45
53
  qItem: qItem,
@@ -1 +1 @@
1
- {"version":3,"file":"repopulateRepeatGroup.js","sourceRoot":"","sources":["../../src/utils/repopulateRepeatGroup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,MAAM,UAAU,8BAA8B,CAC5C,KAAwB,EACxB,iBAAmD;IAEnD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QACf,OAAO,KAAK,CAAC;KACd;IAED,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;QAClC,IAAI,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC;SACb;KACF;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,KAAwB,EACxB,iBAAmD;;IAEnD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QACf,OAAO,IAAI,CAAC;KACb;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI;SAC5B,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SAC5D,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,wBAAwB,GAAG,YAAY;SAC1C,MAAM,CAAC,CAAC,MAA0B,EAAE,MAAM,EAAE,EAAE;QAC7C,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;SACxC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,EAAE,CAAC;SACL,GAAG,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAEzD,MAAM,uBAAuB,GAAqB;QAChD,OAAO,EAAE,MAAA,KAAK,CAAC,IAAI,mCAAI,IAAI;QAC3B,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE;YACT,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,wBAAwB;SAC/B;KACF,CAAC;IAEF,OAAO,uBAAuB,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"repopulateRepeatGroup.js","sourceRoot":"","sources":["../../src/utils/repopulateRepeatGroup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,MAAM,UAAU,8BAA8B,CAC5C,KAAwB,EACxB,iBAAmD;IAEnD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QACf,OAAO,KAAK,CAAC;KACd;IAED,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;QAClC,IAAI,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC;SACb;KACF;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,KAAwB,EACxB,iBAAmD;;IAEnD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QACf,OAAO,IAAI,CAAC;KACb;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI;QAC7B,gEAAgE;SAC/D,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAExC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE1B,MAAM,IAAI,GAAG,YAAY;SACtB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;SAC1C,GAAG,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAE1D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,kEAAkE;IAElE,MAAM,wBAAwB,GAAG,YAAY;SAC1C,MAAM,CAAC,CAAC,MAA0B,EAAE,MAAM,EAAE,EAAE;QAC7C,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;SACxC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,EAAE,CAAC;SACL,GAAG,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAEzD,oDAAoD;IACpD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEtC,MAAM,uBAAuB,GAAqB;QAChD,OAAO,EAAE,MAAA,KAAK,CAAC,IAAI,mCAAI,IAAI;QAC3B,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE;YACT,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,wBAAwB;SAC/B;KACF,CAAC;IAEF,OAAO,uBAAuB,CAAC;AACjC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { QuestionnaireItem } from 'fhir/r4';
2
+ /**
3
+ * Get Questionnaire slider step value if its extension is present (http://hl7.org/fhir/StructureDefinition/questionnaire-sliderStepValue)
4
+ *
5
+ * @author Sean Fong
6
+ */
7
+ export declare function getSliderStepValue(qItem: QuestionnaireItem): number | null;
8
+ /**
9
+ * Get minimum value if its extension is present (http://hl7.org/fhir/StructureDefinition/minValue)
10
+ * Only supports valueInteger and valueDecimal for now
11
+ *
12
+ * @author Sean Fong
13
+ */
14
+ export declare function getMinValue(qItem: QuestionnaireItem): number | null;
15
+ /**
16
+ * Get maximum value if its extension is present (http://hl7.org/fhir/StructureDefinition/maxValue)
17
+ * Only supports valueInteger and valueDecimal for now
18
+ *
19
+ * @author Sean Fong
20
+ */
21
+ export declare function getMaxValue(qItem: QuestionnaireItem): number | null;
22
+ export declare function getSliderMarks(minValue: number, maxValue: number, minLabel: string, maxLabel: string, stepValue: number): {
23
+ value: number;
24
+ label: number;
25
+ }[] | {
26
+ value: number;
27
+ label: string;
28
+ }[];
@@ -0,0 +1,89 @@
1
+ /*
2
+ * Copyright 2023 Commonwealth Scientific and Industrial Research
3
+ * Organisation (CSIRO) ABN 41 687 119 230.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ /**
18
+ * Get Questionnaire slider step value if its extension is present (http://hl7.org/fhir/StructureDefinition/questionnaire-sliderStepValue)
19
+ *
20
+ * @author Sean Fong
21
+ */
22
+ export function getSliderStepValue(qItem) {
23
+ var _a;
24
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/questionnaire-sliderStepValue');
25
+ if (itemControl) {
26
+ if (itemControl.valueInteger) {
27
+ return itemControl.valueInteger;
28
+ }
29
+ }
30
+ return null;
31
+ }
32
+ /**
33
+ * Get minimum value if its extension is present (http://hl7.org/fhir/StructureDefinition/minValue)
34
+ * Only supports valueInteger and valueDecimal for now
35
+ *
36
+ * @author Sean Fong
37
+ */
38
+ export function getMinValue(qItem) {
39
+ var _a;
40
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/minValue');
41
+ if (itemControl) {
42
+ if (itemControl.valueInteger) {
43
+ return itemControl.valueInteger;
44
+ }
45
+ if (itemControl.valueDecimal) {
46
+ return itemControl.valueDecimal;
47
+ }
48
+ }
49
+ return null;
50
+ }
51
+ /**
52
+ * Get maximum value if its extension is present (http://hl7.org/fhir/StructureDefinition/maxValue)
53
+ * Only supports valueInteger and valueDecimal for now
54
+ *
55
+ * @author Sean Fong
56
+ */
57
+ export function getMaxValue(qItem) {
58
+ var _a;
59
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/maxValue');
60
+ if (itemControl) {
61
+ if (itemControl.valueInteger) {
62
+ return itemControl.valueInteger;
63
+ }
64
+ if (itemControl.valueDecimal) {
65
+ return itemControl.valueDecimal;
66
+ }
67
+ }
68
+ return null;
69
+ }
70
+ export function getSliderMarks(minValue, maxValue, minLabel, maxLabel, stepValue) {
71
+ const numOfSteps = Math.ceil((maxValue - minValue) / stepValue);
72
+ if (numOfSteps > 20) {
73
+ return [
74
+ {
75
+ value: minValue,
76
+ label: minLabel !== '' ? minLabel : minValue.toString()
77
+ },
78
+ {
79
+ value: maxValue,
80
+ label: maxLabel !== '' ? maxLabel : maxValue.toString()
81
+ }
82
+ ];
83
+ }
84
+ return Array.from({ length: numOfSteps + 1 }, (_, i) => minValue + i * stepValue).map((value) => ({
85
+ value: value,
86
+ label: value
87
+ }));
88
+ }
89
+ //# sourceMappingURL=slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.js","sourceRoot":"","sources":["../../src/utils/slider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAwB;;IACzD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,uEAAuE,CAC5F,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,YAAY,EAAE;YAC5B,OAAO,WAAW,CAAC,YAAY,CAAC;SACjC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAwB;;IAClD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,kDAAkD,CAC/F,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,YAAY,EAAE;YAC5B,OAAO,WAAW,CAAC,YAAY,CAAC;SACjC;QAED,IAAI,WAAW,CAAC,YAAY,EAAE;YAC5B,OAAO,WAAW,CAAC,YAAY,CAAC;SACjC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAwB;;IAClD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,kDAAkD,CAC/F,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,YAAY,EAAE;YAC5B,OAAO,WAAW,CAAC,YAAY,CAAC;SACjC;QAED,IAAI,WAAW,CAAC,YAAY,EAAE;YAC5B,OAAO,WAAW,CAAC,YAAY,CAAC;SACjC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,QAAgB,EAChB,QAAgB,EAChB,QAAgB,EAChB,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAC;IAChE,IAAI,UAAU,GAAG,EAAE,EAAE;QACnB,OAAO;YACL;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;aACxD;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;aACxD;SACF,CAAC;KACH;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CACnF,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACV,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;KACb,CAAC,CACH,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aehrc/smart-forms-renderer",
3
- "version": "0.8.1",
3
+ "version": "0.9.1",
4
4
  "description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -23,19 +23,20 @@
23
23
  },
24
24
  "homepage": "https://github.com/aehrc/smart-forms#readme",
25
25
  "dependencies": {
26
- "deep-diff": "^1.0.2",
26
+ "@aehrc/sdc-assemble": "^1.0.2",
27
27
  "@iconify/react": "^4.1.1",
28
+ "@types/fhir": "^0.0.38",
28
29
  "dayjs": "^1.11.10",
30
+ "deep-diff": "^1.0.2",
29
31
  "fhirclient": "^2.5.2",
30
- "fhirpath": "^3.6.1",
31
- "html-react-parser": "^4.2.0",
32
+ "fhirpath": "^3.7.1",
33
+ "html-react-parser": "^5.0.3",
32
34
  "lodash.clonedeep": "^4.5.0",
33
35
  "lodash.debounce": "^4.0.8",
34
36
  "nanoid": "^5.0.1",
35
- "@types/fhir": "^0.0.37",
36
- "zustand": "^4.4.1",
37
37
  "react-markdown": "^8.0.7",
38
- "@aehrc/sdc-assemble": "^1.0.2"
38
+ "zustand": "^4.4.1",
39
+ "moment": "^2.29.4"
39
40
  },
40
41
  "peerDependencies": {
41
42
  "@emotion/react": ">=11.11.0",
@@ -49,25 +50,27 @@
49
50
  "react-dom": ">=18.0.0"
50
51
  },
51
52
  "devDependencies": {
52
- "@babel/core": "^7.23.0",
53
+ "@babel/core": "^7.23.3",
53
54
  "@storybook/addon-essentials": "^7.4.6",
54
- "@storybook/addon-interactions": "^7.4.3",
55
- "@storybook/addon-links": "^7.4.0",
55
+ "@storybook/addon-interactions": "^7.4.6",
56
+ "@storybook/addon-links": "^7.5.2",
56
57
  "@storybook/addon-onboarding": "^1.0.8",
57
58
  "@storybook/addon-styling": "^1.3.7",
58
- "@storybook/blocks": "^7.4.0",
59
+ "@storybook/blocks": "^7.5.2",
59
60
  "@storybook/react": "^7.4.3",
60
61
  "@storybook/react-vite": "^7.4.5",
61
62
  "@storybook/testing-library": "^0.2.1",
62
63
  "@testing-library/jest-dom": "^6.1.2",
63
64
  "@testing-library/react": "^14.0.0",
64
65
  "@testing-library/react-hooks": "^7.0.2",
65
- "@types/jest": "^29.5.5",
66
- "@types/deep-diff": "^1.0.3",
67
- "@types/react": "^18.2.18",
66
+ "@types/deep-diff": "^1.0.4",
67
+ "@types/jest": "^29.5.7",
68
+ "@types/lodash.debounce": "^4.0.7",
69
+ "@types/lodash.clonedeep": "^4.5.7",
70
+ "@types/react": "^18.2.37",
68
71
  "@types/react-dom": "^18.2.9",
69
72
  "jest": "^29.7.0",
70
- "jest-environment-jsdom": "^29.6.4",
73
+ "jest-environment-jsdom": "^29.7.0",
71
74
  "react": "^18.2.0",
72
75
  "react-dom": "^18.2.0",
73
76
  "storybook": "^7.4.5",
@@ -32,12 +32,12 @@ import Box from '@mui/material/Box';
32
32
  import useReadOnly from '../../../hooks/useReadOnly';
33
33
 
34
34
  interface BooleanItemProps
35
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
35
+ extends PropsWithQrItemChangeHandler,
36
36
  PropsWithIsRepeatedAttribute,
37
37
  PropsWithIsTabledAttribute,
38
38
  PropsWithParentIsReadOnlyAttribute {
39
39
  qItem: QuestionnaireItem;
40
- qrItem: QuestionnaireResponseItem;
40
+ qrItem: QuestionnaireResponseItem | null;
41
41
  }
42
42
 
43
43
  function BooleanItem(props: BooleanItemProps) {
@@ -47,12 +47,12 @@ import LabelWrapper from '../ItemParts/ItemLabelWrapper';
47
47
  import useReadOnly from '../../../hooks/useReadOnly';
48
48
 
49
49
  interface ChoiceAutocompleteItemProps
50
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
50
+ extends PropsWithQrItemChangeHandler,
51
51
  PropsWithIsRepeatedAttribute,
52
52
  PropsWithIsTabledAttribute,
53
53
  PropsWithParentIsReadOnlyAttribute {
54
54
  qItem: QuestionnaireItem;
55
- qrItem: QuestionnaireResponseItem;
55
+ qrItem: QuestionnaireResponseItem | null;
56
56
  }
57
57
 
58
58
  function ChoiceAutocompleteItem(props: ChoiceAutocompleteItemProps) {
@@ -27,7 +27,7 @@ import type {
27
27
  PropsWithIsRepeatedAttribute,
28
28
  PropsWithParentIsReadOnlyAttribute,
29
29
  PropsWithQrItemChangeHandler,
30
- PropsWithTextShownAttribute
30
+ PropsWithShowMinimalViewAttribute
31
31
  } from '../../../interfaces/renderProps.interface';
32
32
  import DisplayInstructions from '../DisplayItem/DisplayInstructions';
33
33
  import LabelWrapper from '../ItemParts/ItemLabelWrapper';
@@ -35,12 +35,12 @@ import ChoiceCheckboxAnswerValueSetFields from './ChoiceCheckboxAnswerOptionFiel
35
35
  import useReadOnly from '../../../hooks/useReadOnly';
36
36
 
37
37
  interface ChoiceCheckboxAnswerOptionItemProps
38
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
38
+ extends PropsWithQrItemChangeHandler,
39
39
  PropsWithIsRepeatedAttribute,
40
- PropsWithTextShownAttribute,
40
+ PropsWithShowMinimalViewAttribute,
41
41
  PropsWithParentIsReadOnlyAttribute {
42
42
  qItem: QuestionnaireItem;
43
- qrItem: QuestionnaireResponseItem;
43
+ qrItem: QuestionnaireResponseItem | null;
44
44
  orientation: ChoiceItemOrientation;
45
45
  }
46
46
 
@@ -50,7 +50,7 @@ function ChoiceCheckboxAnswerOptionItem(props: ChoiceCheckboxAnswerOptionItemPro
50
50
  qrItem,
51
51
  orientation,
52
52
  isRepeated,
53
- textShown = true,
53
+ showMinimalView = false,
54
54
  parentIsReadOnly,
55
55
  onQrItemChange
56
56
  } = props;
@@ -80,39 +80,39 @@ function ChoiceCheckboxAnswerOptionItem(props: ChoiceCheckboxAnswerOptionItemPro
80
80
  }
81
81
  }
82
82
 
83
- if (textShown) {
83
+ if (showMinimalView) {
84
84
  return (
85
- <FullWidthFormComponentBox data-test="q-item-choice-checkbox-answer-option-box">
86
- <Grid container columnSpacing={6}>
87
- <Grid item xs={5}>
88
- <LabelWrapper qItem={qItem} readOnly={readOnly} />
89
- </Grid>
90
- <Grid item xs={7}>
91
- <ChoiceCheckboxAnswerValueSetFields
92
- qItem={qItem}
93
- answers={answers}
94
- orientation={orientation}
95
- readOnly={readOnly}
96
- onCheckedChange={handleCheckedChange}
97
- />
98
- <DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
99
- </Grid>
100
- </Grid>
101
- </FullWidthFormComponentBox>
85
+ <>
86
+ <ChoiceCheckboxAnswerValueSetFields
87
+ qItem={qItem}
88
+ answers={answers}
89
+ orientation={orientation}
90
+ readOnly={readOnly}
91
+ onCheckedChange={handleCheckedChange}
92
+ />
93
+ <DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
94
+ </>
102
95
  );
103
96
  }
104
97
 
105
98
  return (
106
- <>
107
- <ChoiceCheckboxAnswerValueSetFields
108
- qItem={qItem}
109
- answers={answers}
110
- orientation={orientation}
111
- readOnly={readOnly}
112
- onCheckedChange={handleCheckedChange}
113
- />
114
- <DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
115
- </>
99
+ <FullWidthFormComponentBox data-test="q-item-choice-checkbox-answer-option-box">
100
+ <Grid container columnSpacing={6}>
101
+ <Grid item xs={5}>
102
+ <LabelWrapper qItem={qItem} readOnly={readOnly} />
103
+ </Grid>
104
+ <Grid item xs={7}>
105
+ <ChoiceCheckboxAnswerValueSetFields
106
+ qItem={qItem}
107
+ answers={answers}
108
+ orientation={orientation}
109
+ readOnly={readOnly}
110
+ onCheckedChange={handleCheckedChange}
111
+ />
112
+ <DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
113
+ </Grid>
114
+ </Grid>
115
+ </FullWidthFormComponentBox>
116
116
  );
117
117
  }
118
118
 
@@ -28,7 +28,7 @@ import type {
28
28
  PropsWithIsRepeatedAttribute,
29
29
  PropsWithParentIsReadOnlyAttribute,
30
30
  PropsWithQrItemChangeHandler,
31
- PropsWithTextShownAttribute
31
+ PropsWithShowMinimalViewAttribute
32
32
  } from '../../../interfaces/renderProps.interface';
33
33
  import DisplayInstructions from '../DisplayItem/DisplayInstructions';
34
34
  import LabelWrapper from '../ItemParts/ItemLabelWrapper';
@@ -36,12 +36,12 @@ import ChoiceCheckboxAnswerValueSetFields from './ChoiceCheckboxAnswerValueSetFi
36
36
  import useReadOnly from '../../../hooks/useReadOnly';
37
37
 
38
38
  interface ChoiceCheckboxAnswerValueSetItemProps
39
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
39
+ extends PropsWithQrItemChangeHandler,
40
40
  PropsWithIsRepeatedAttribute,
41
- PropsWithTextShownAttribute,
41
+ PropsWithShowMinimalViewAttribute,
42
42
  PropsWithParentIsReadOnlyAttribute {
43
43
  qItem: QuestionnaireItem;
44
- qrItem: QuestionnaireResponseItem;
44
+ qrItem: QuestionnaireResponseItem | null;
45
45
  orientation: ChoiceItemOrientation;
46
46
  showText?: boolean;
47
47
  }
@@ -52,7 +52,7 @@ function ChoiceCheckboxAnswerValueSetItem(props: ChoiceCheckboxAnswerValueSetIte
52
52
  qrItem,
53
53
  orientation,
54
54
  isRepeated,
55
- textShown = true,
55
+ showMinimalView = false,
56
56
  parentIsReadOnly,
57
57
  onQrItemChange
58
58
  } = props;
@@ -84,41 +84,41 @@ function ChoiceCheckboxAnswerValueSetItem(props: ChoiceCheckboxAnswerValueSetIte
84
84
  }
85
85
  }
86
86
 
87
- if (textShown) {
87
+ if (showMinimalView) {
88
88
  return (
89
- <FullWidthFormComponentBox data-test="q-item-choice-checkbox-answer-value-set-box">
90
- <Grid container columnSpacing={6}>
91
- <Grid item xs={5}>
92
- <LabelWrapper qItem={qItem} readOnly={readOnly} />
93
- </Grid>
94
- <Grid item xs={7}>
95
- <ChoiceCheckboxAnswerValueSetFields
96
- codings={codings}
97
- answers={answers}
98
- orientation={orientation}
99
- readOnly={readOnly}
100
- serverError={serverError}
101
- onCheckedChange={handleCheckedChange}
102
- />
103
- <DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
104
- </Grid>
105
- </Grid>
106
- </FullWidthFormComponentBox>
89
+ <>
90
+ <ChoiceCheckboxAnswerValueSetFields
91
+ codings={codings}
92
+ answers={answers}
93
+ orientation={orientation}
94
+ readOnly={readOnly}
95
+ serverError={serverError}
96
+ onCheckedChange={handleCheckedChange}
97
+ />
98
+ <DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
99
+ </>
107
100
  );
108
101
  }
109
102
 
110
103
  return (
111
- <>
112
- <ChoiceCheckboxAnswerValueSetFields
113
- codings={codings}
114
- answers={answers}
115
- orientation={orientation}
116
- readOnly={readOnly}
117
- serverError={serverError}
118
- onCheckedChange={handleCheckedChange}
119
- />
120
- <DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
121
- </>
104
+ <FullWidthFormComponentBox data-test="q-item-choice-checkbox-answer-value-set-box">
105
+ <Grid container columnSpacing={6}>
106
+ <Grid item xs={5}>
107
+ <LabelWrapper qItem={qItem} readOnly={readOnly} />
108
+ </Grid>
109
+ <Grid item xs={7}>
110
+ <ChoiceCheckboxAnswerValueSetFields
111
+ codings={codings}
112
+ answers={answers}
113
+ orientation={orientation}
114
+ readOnly={readOnly}
115
+ serverError={serverError}
116
+ onCheckedChange={handleCheckedChange}
117
+ />
118
+ <DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
119
+ </Grid>
120
+ </Grid>
121
+ </FullWidthFormComponentBox>
122
122
  );
123
123
  }
124
124
 
@@ -29,23 +29,23 @@ import ChoiceCheckboxAnswerValueSetItem from './ChoiceCheckboxAnswerValueSetItem
29
29
  import type {
30
30
  PropsWithIsRepeatedAttribute,
31
31
  PropsWithIsTabledAttribute,
32
+ PropsWithParentIsReadOnlyAttribute,
32
33
  PropsWithQrItemChangeHandler,
33
- PropsWithTextShownAttribute
34
+ PropsWithShowMinimalViewAttribute
34
35
  } from '../../../interfaces/renderProps.interface';
35
- import type { PropsWithParentIsReadOnlyAttribute } from '../../../interfaces/renderProps.interface';
36
36
 
37
37
  interface ChoiceItemSwitcherProps
38
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
38
+ extends PropsWithQrItemChangeHandler,
39
39
  PropsWithIsRepeatedAttribute,
40
40
  PropsWithIsTabledAttribute,
41
- PropsWithTextShownAttribute,
41
+ PropsWithShowMinimalViewAttribute,
42
42
  PropsWithParentIsReadOnlyAttribute {
43
43
  qItem: QuestionnaireItem;
44
- qrItem: QuestionnaireResponseItem;
44
+ qrItem: QuestionnaireResponseItem | null;
45
45
  }
46
46
 
47
47
  function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
48
- const { qItem, qrItem, isRepeated, isTabled, textShown, parentIsReadOnly, onQrItemChange } =
48
+ const { qItem, qrItem, isRepeated, isTabled, showMinimalView, parentIsReadOnly, onQrItemChange } =
49
49
  props;
50
50
 
51
51
  const orientation = getChoiceOrientation(qItem);
@@ -84,7 +84,7 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
84
84
  qrItem={qrItem}
85
85
  orientation={orientation}
86
86
  isRepeated={qItem.repeats ?? false}
87
- textShown={textShown}
87
+ showMinimalView={showMinimalView}
88
88
  parentIsReadOnly={parentIsReadOnly}
89
89
  onQrItemChange={onQrItemChange}
90
90
  />
@@ -96,7 +96,7 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
96
96
  qrItem={qrItem}
97
97
  isRepeated={qItem.repeats ?? false}
98
98
  orientation={orientation}
99
- textShown={textShown}
99
+ showMinimalView={showMinimalView}
100
100
  parentIsReadOnly={parentIsReadOnly}
101
101
  onQrItemChange={onQrItemChange}
102
102
  />
@@ -34,11 +34,11 @@ import ChoiceRadioAnswerOptionFields from './ChoiceRadioAnswerOptionFields';
34
34
  import useReadOnly from '../../../hooks/useReadOnly';
35
35
 
36
36
  interface ChoiceRadioAnswerOptionItemProps
37
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
37
+ extends PropsWithQrItemChangeHandler,
38
38
  PropsWithIsRepeatedAttribute,
39
39
  PropsWithParentIsReadOnlyAttribute {
40
40
  qItem: QuestionnaireItem;
41
- qrItem: QuestionnaireResponseItem;
41
+ qrItem: QuestionnaireResponseItem | null;
42
42
  orientation: ChoiceItemOrientation;
43
43
  }
44
44
 
@@ -35,11 +35,11 @@ import ChoiceRadioAnswerValueSetFields from './ChoiceRadioAnswerValueSetFields';
35
35
  import useReadOnly from '../../../hooks/useReadOnly';
36
36
 
37
37
  interface ChoiceRadioAnswerValueSetItemProps
38
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
38
+ extends PropsWithQrItemChangeHandler,
39
39
  PropsWithIsRepeatedAttribute,
40
40
  PropsWithParentIsReadOnlyAttribute {
41
41
  qItem: QuestionnaireItem;
42
- qrItem: QuestionnaireResponseItem;
42
+ qrItem: QuestionnaireResponseItem | null;
43
43
  orientation: ChoiceItemOrientation;
44
44
  }
45
45
 
@@ -35,12 +35,12 @@ import ChoiceSelectAnswerOptionFields from './ChoiceSelectAnswerOptionFields';
35
35
  import useReadOnly from '../../../hooks/useReadOnly';
36
36
 
37
37
  interface ChoiceSelectAnswerOptionItemProps
38
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
38
+ extends PropsWithQrItemChangeHandler,
39
39
  PropsWithIsRepeatedAttribute,
40
40
  PropsWithIsTabledAttribute,
41
41
  PropsWithParentIsReadOnlyAttribute {
42
42
  qItem: QuestionnaireItem;
43
- qrItem: QuestionnaireResponseItem;
43
+ qrItem: QuestionnaireResponseItem | null;
44
44
  }
45
45
 
46
46
  function ChoiceSelectAnswerOptionItem(props: ChoiceSelectAnswerOptionItemProps) {
@@ -35,12 +35,12 @@ import ChoiceSelectAnswerValueSetFields from './ChoiceSelectAnswerValueSetFields
35
35
  import useReadOnly from '../../../hooks/useReadOnly';
36
36
 
37
37
  interface ChoiceSelectAnswerValueSetItemProps
38
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
38
+ extends PropsWithQrItemChangeHandler,
39
39
  PropsWithIsRepeatedAttribute,
40
40
  PropsWithIsTabledAttribute,
41
41
  PropsWithParentIsReadOnlyAttribute {
42
42
  qItem: QuestionnaireItem;
43
- qrItem: QuestionnaireResponseItem;
43
+ qrItem: QuestionnaireResponseItem | null;
44
44
  }
45
45
 
46
46
  function ChoiceSelectAnswerValueSetItem(props: ChoiceSelectAnswerValueSetItemProps) {