@aehrc/smart-forms-renderer 0.8.0 → 0.9.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 (477) hide show
  1. package/lib/components/Alert.styles.d.ts +2 -7
  2. package/lib/components/Box.styles.d.ts +6 -21
  3. package/lib/components/FormComponents/BooleanItem/BooleanItem.d.ts +3 -3
  4. package/lib/components/FormComponents/BooleanItem/BooleanItem.js +5 -4
  5. package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
  6. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.d.ts +3 -3
  7. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +6 -5
  8. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
  9. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.d.ts +3 -3
  10. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +15 -14
  11. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
  12. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.d.ts +3 -3
  13. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +15 -14
  14. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  15. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.d.ts +3 -3
  16. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js +8 -8
  17. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js.map +1 -1
  18. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.d.ts +3 -3
  19. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +6 -6
  20. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
  21. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.d.ts +3 -3
  22. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +6 -5
  23. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
  24. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.d.ts +1 -0
  25. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +2 -2
  26. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -1
  27. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.d.ts +3 -3
  28. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +8 -7
  29. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
  30. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.d.ts +1 -0
  31. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +2 -2
  32. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js.map +1 -1
  33. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.d.ts +3 -3
  34. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +8 -7
  35. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
  36. package/lib/components/FormComponents/CustomDateItem/CustomDateField2.d.ts +18 -0
  37. package/lib/components/FormComponents/CustomDateItem/CustomDateField2.js +31 -0
  38. package/lib/components/FormComponents/CustomDateItem/CustomDateField2.js.map +1 -0
  39. package/lib/components/FormComponents/CustomDateItem/CustomDateItem.d.ts +9 -0
  40. package/lib/components/FormComponents/CustomDateItem/CustomDateItem.js +68 -0
  41. package/lib/components/FormComponents/CustomDateItem/CustomDateItem.js.map +1 -0
  42. package/lib/components/FormComponents/CustomDateItem/CustomDateTimeField.d.ts +9 -0
  43. package/lib/components/FormComponents/CustomDateItem/CustomDateTimeField.js +75 -0
  44. package/lib/components/FormComponents/CustomDateItem/CustomDateTimeField.js.map +1 -0
  45. package/lib/components/FormComponents/CustomDateItem/CustomDateTimePickerText2.d.ts +9 -0
  46. package/lib/components/FormComponents/CustomDateItem/CustomDateTimePickerText2.js +75 -0
  47. package/lib/components/FormComponents/CustomDateItem/CustomDateTimePickerText2.js.map +1 -0
  48. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.d.ts +18 -0
  49. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.js +33 -0
  50. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.js.map +1 -0
  51. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.d.ts +11 -0
  52. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.js +55 -0
  53. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.js.map +1 -0
  54. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.d.ts +9 -0
  55. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.js +13 -0
  56. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.js.map +1 -0
  57. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.d.ts +5 -0
  58. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.js +20 -0
  59. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.js.map +1 -0
  60. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/hooks/useParseDates.d.ts +5 -0
  61. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/hooks/useParseDates.js +27 -0
  62. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/hooks/useParseDates.js.map +1 -0
  63. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/index.d.ts +1 -0
  64. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/index.js +18 -0
  65. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/index.js.map +1 -0
  66. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.d.ts +1 -0
  67. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.js +18 -0
  68. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.js.map +1 -0
  69. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.d.ts +9 -0
  70. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.js +121 -0
  71. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.js.map +1 -0
  72. package/lib/components/FormComponents/CustomDateItem/customDateTimePickerText.d.ts +9 -0
  73. package/lib/components/FormComponents/CustomDateItem/customDateTimePickerText.js +71 -0
  74. package/lib/components/FormComponents/CustomDateItem/customDateTimePickerText.js.map +1 -0
  75. package/lib/components/FormComponents/CustomDateItem/index.d.ts +1 -0
  76. package/lib/components/FormComponents/CustomDateItem/index.js +18 -0
  77. package/lib/components/FormComponents/CustomDateItem/index.js.map +1 -0
  78. package/lib/components/FormComponents/DateItem/DateItem.d.ts +3 -3
  79. package/lib/components/FormComponents/DateItem/DateItem.js +5 -4
  80. package/lib/components/FormComponents/DateItem/DateItem.js.map +1 -1
  81. package/lib/components/FormComponents/DateItem/DatePicker.d.ts +2 -0
  82. package/lib/components/FormComponents/DateItem/DatePicker.js +42 -0
  83. package/lib/components/FormComponents/DateItem/DatePicker.js.map +1 -0
  84. package/lib/components/FormComponents/DateItem/DatePickerField.d.ts +8 -0
  85. package/lib/components/FormComponents/DateItem/DatePickerField.js +24 -0
  86. package/lib/components/FormComponents/DateItem/DatePickerField.js.map +1 -0
  87. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.d.ts +3 -3
  88. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js +5 -4
  89. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js.map +1 -1
  90. package/lib/components/FormComponents/DecimalItem/DecimalItem.d.ts +3 -3
  91. package/lib/components/FormComponents/DecimalItem/DecimalItem.js +7 -7
  92. package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
  93. package/lib/components/FormComponents/DisplayItem/DisplayBox.d.ts +0 -0
  94. package/lib/components/FormComponents/DisplayItem/DisplayBox.js +2 -0
  95. package/lib/components/FormComponents/DisplayItem/DisplayBox.js.map +1 -0
  96. package/lib/components/FormComponents/DisplayItem/DisplayBox.styles.d.ts +4 -0
  97. package/lib/components/FormComponents/DisplayItem/DisplayBox.styles.js +35 -0
  98. package/lib/components/FormComponents/DisplayItem/DisplayBox.styles.js.map +1 -0
  99. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.d.ts +3 -1
  100. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js +2 -2
  101. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js.map +1 -1
  102. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.d.ts +2 -7
  103. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js +0 -1
  104. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js.map +1 -1
  105. package/lib/components/FormComponents/DisplayItem/DisplayItem.js +2 -2
  106. package/lib/components/FormComponents/DisplayItem/DisplayItem.js.map +1 -1
  107. package/lib/components/FormComponents/GridGroup/GridGroup.d.ts +3 -3
  108. package/lib/components/FormComponents/GridGroup/GridGroup.js +16 -9
  109. package/lib/components/FormComponents/GridGroup/GridGroup.js.map +1 -1
  110. package/lib/components/FormComponents/GridGroup/GridRow.d.ts +3 -3
  111. package/lib/components/FormComponents/GridGroup/GridRow.js +4 -4
  112. package/lib/components/FormComponents/GridGroup/GridRow.js.map +1 -1
  113. package/lib/components/FormComponents/GridGroup/GridTable.d.ts +3 -2
  114. package/lib/components/FormComponents/GridGroup/GridTable.js +9 -4
  115. package/lib/components/FormComponents/GridGroup/GridTable.js.map +1 -1
  116. package/lib/components/FormComponents/GridGroup/index.d.ts +1 -0
  117. package/lib/components/FormComponents/GridGroup/index.js +18 -0
  118. package/lib/components/FormComponents/GridGroup/index.js.map +1 -0
  119. package/lib/components/FormComponents/GroupItem/GroupHeading.d.ts +1 -0
  120. package/lib/components/FormComponents/GroupItem/GroupHeading.js +6 -5
  121. package/lib/components/FormComponents/GroupItem/GroupHeading.js.map +1 -1
  122. package/lib/components/FormComponents/GroupItem/GroupItem.d.ts +3 -4
  123. package/lib/components/FormComponents/GroupItem/GroupItem.js +7 -5
  124. package/lib/components/FormComponents/GroupItem/GroupItem.js.map +1 -1
  125. package/lib/components/FormComponents/GroupItem/GroupItem.styles.d.ts +2 -6
  126. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.d.ts +3 -3
  127. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +11 -12
  128. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
  129. package/lib/components/FormComponents/IntegerItem/IntegerItem.d.ts +3 -3
  130. package/lib/components/FormComponents/IntegerItem/IntegerItem.js +7 -7
  131. package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
  132. package/lib/components/FormComponents/IntegerItem/SliderItem.d.ts +9 -0
  133. package/lib/components/FormComponents/IntegerItem/SliderItem.js +75 -0
  134. package/lib/components/FormComponents/IntegerItem/SliderItem.js.map +1 -0
  135. package/lib/components/FormComponents/Item.styles.d.ts +0 -4
  136. package/lib/components/FormComponents/Item.styles.js +0 -4
  137. package/lib/components/FormComponents/Item.styles.js.map +1 -1
  138. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +2 -2
  139. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +1 -1
  140. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.d.ts +3 -2
  141. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js +3 -3
  142. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js.map +1 -1
  143. package/lib/components/FormComponents/ItemParts/ItemLabelText.d.ts +1 -0
  144. package/lib/components/FormComponents/ItemParts/ItemLabelText.js +4 -6
  145. package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -1
  146. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.d.ts +1 -0
  147. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +2 -2
  148. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -1
  149. package/lib/components/FormComponents/Lists.styles.d.ts +2 -9
  150. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.d.ts +3 -2
  151. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js +2 -3
  152. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js.map +1 -1
  153. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.d.ts +3 -3
  154. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +8 -7
  155. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
  156. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.d.ts +3 -3
  157. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +16 -15
  158. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
  159. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.d.ts +3 -3
  160. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js +6 -6
  161. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js.map +1 -1
  162. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.d.ts +3 -3
  163. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +7 -6
  164. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
  165. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.d.ts +3 -2
  166. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js +2 -2
  167. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js.map +1 -1
  168. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.d.ts +3 -3
  169. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +7 -6
  170. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -1
  171. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.d.ts +3 -2
  172. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js +2 -2
  173. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js.map +1 -1
  174. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.d.ts +3 -3
  175. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +8 -7
  176. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -1
  177. package/lib/components/FormComponents/RepeatGroup/AddItemButton.d.ts +1 -0
  178. package/lib/components/FormComponents/RepeatGroup/AddItemButton.js +2 -2
  179. package/lib/components/FormComponents/RepeatGroup/AddItemButton.js.map +1 -1
  180. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.d.ts +1 -0
  181. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +2 -2
  182. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +1 -1
  183. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.d.ts +2 -2
  184. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +20 -7
  185. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -1
  186. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.d.ts +2 -2
  187. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js +5 -3
  188. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js.map +1 -1
  189. package/lib/components/FormComponents/RepeatItem/AddItemButton.d.ts +1 -0
  190. package/lib/components/FormComponents/RepeatItem/AddItemButton.js +2 -2
  191. package/lib/components/FormComponents/RepeatItem/AddItemButton.js.map +1 -1
  192. package/lib/components/FormComponents/RepeatItem/DeleteItemButton.d.ts +1 -0
  193. package/lib/components/FormComponents/RepeatItem/DeleteItemButton.js +2 -2
  194. package/lib/components/FormComponents/RepeatItem/DeleteItemButton.js.map +1 -1
  195. package/lib/components/FormComponents/RepeatItem/RepeatField.d.ts +3 -3
  196. package/lib/components/FormComponents/RepeatItem/RepeatField.js +5 -3
  197. package/lib/components/FormComponents/RepeatItem/RepeatField.js.map +1 -1
  198. package/lib/components/FormComponents/RepeatItem/RepeatItem.d.ts +4 -3
  199. package/lib/components/FormComponents/RepeatItem/RepeatItem.js +15 -5
  200. package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
  201. package/lib/components/FormComponents/RepeatItem/RepeatItem.styles.d.ts +4 -18
  202. package/lib/components/FormComponents/RepeatItem/index.d.ts +1 -0
  203. package/lib/components/FormComponents/RepeatItem/index.js +18 -0
  204. package/lib/components/FormComponents/RepeatItem/index.js.map +1 -0
  205. package/lib/components/FormComponents/SingleItem/SingleItem.d.ts +3 -3
  206. package/lib/components/FormComponents/SingleItem/SingleItem.js +4 -2
  207. package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
  208. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.d.ts +3 -3
  209. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js +20 -15
  210. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -1
  211. package/lib/components/FormComponents/SliderItem/DisplayBox.styles.d.ts +4 -0
  212. package/lib/components/FormComponents/SliderItem/DisplayBox.styles.js +35 -0
  213. package/lib/components/FormComponents/SliderItem/DisplayBox.styles.js.map +1 -0
  214. package/lib/components/FormComponents/SliderItem/Slider.styles.d.ts +6 -0
  215. package/lib/components/FormComponents/SliderItem/Slider.styles.js +33 -0
  216. package/lib/components/FormComponents/SliderItem/Slider.styles.js.map +1 -0
  217. package/lib/components/FormComponents/SliderItem/SliderDisplayValue.d.ts +8 -0
  218. package/lib/components/FormComponents/SliderItem/SliderDisplayValue.js +28 -0
  219. package/lib/components/FormComponents/SliderItem/SliderDisplayValue.js.map +1 -0
  220. package/lib/components/FormComponents/SliderItem/SliderField.d.ts +16 -0
  221. package/lib/components/FormComponents/SliderItem/SliderField.js +41 -0
  222. package/lib/components/FormComponents/SliderItem/SliderField.js.map +1 -0
  223. package/lib/components/FormComponents/SliderItem/SliderItem.d.ts +9 -0
  224. package/lib/components/FormComponents/SliderItem/SliderItem.js +56 -0
  225. package/lib/components/FormComponents/SliderItem/SliderItem.js.map +1 -0
  226. package/lib/components/FormComponents/SliderItem/SliderLabels.d.ts +7 -0
  227. package/lib/components/FormComponents/SliderItem/SliderLabels.js +32 -0
  228. package/lib/components/FormComponents/SliderItem/SliderLabels.js.map +1 -0
  229. package/lib/components/FormComponents/StringItem/StringItem.d.ts +3 -3
  230. package/lib/components/FormComponents/StringItem/StringItem.js +5 -4
  231. package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
  232. package/lib/components/FormComponents/Tables/AddRowButton.d.ts +1 -0
  233. package/lib/components/FormComponents/Tables/AddRowButton.js +2 -2
  234. package/lib/components/FormComponents/Tables/AddRowButton.js.map +1 -1
  235. package/lib/components/FormComponents/Tables/DeleteRowButton.d.ts +1 -0
  236. package/lib/components/FormComponents/Tables/DeleteRowButton.js +2 -2
  237. package/lib/components/FormComponents/Tables/DeleteRowButton.js.map +1 -1
  238. package/lib/components/FormComponents/Tables/GroupTable.d.ts +4 -3
  239. package/lib/components/FormComponents/Tables/GroupTable.js +25 -6
  240. package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -1
  241. package/lib/components/FormComponents/Tables/GroupTableRow.d.ts +3 -3
  242. package/lib/components/FormComponents/Tables/GroupTableRow.js +4 -4
  243. package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -1
  244. package/lib/components/FormComponents/Tables/QItemGroupTable.js +5 -7
  245. package/lib/components/FormComponents/Tables/QItemGroupTable.js.map +1 -1
  246. package/lib/components/FormComponents/Tables/QItemGroupTableRow.js +2 -2
  247. package/lib/components/FormComponents/Tables/QItemGroupTableRow.js.map +1 -1
  248. package/lib/components/FormComponents/TextItem/TextItem.d.ts +3 -3
  249. package/lib/components/FormComponents/TextItem/TextItem.js +5 -4
  250. package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
  251. package/lib/components/FormComponents/TimeItem/TimeItem.d.ts +3 -3
  252. package/lib/components/FormComponents/TimeItem/TimeItem.js +5 -4
  253. package/lib/components/FormComponents/TimeItem/TimeItem.js.map +1 -1
  254. package/lib/components/FormComponents/UrlItem/UrlItem.d.ts +3 -3
  255. package/lib/components/FormComponents/UrlItem/UrlItem.js +5 -4
  256. package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -1
  257. package/lib/components/FormComponents/index.d.ts +3 -0
  258. package/lib/components/FormComponents/index.js +3 -0
  259. package/lib/components/FormComponents/index.js.map +1 -1
  260. package/lib/components/Lists.styles.d.ts +2 -9
  261. package/lib/components/Renderer/BaseRenderer.js +3 -5
  262. package/lib/components/Renderer/BaseRenderer.js.map +1 -1
  263. package/lib/components/Renderer/FormBodyCollapsible.d.ts +2 -2
  264. package/lib/components/Renderer/FormBodyCollapsible.js +6 -5
  265. package/lib/components/Renderer/FormBodyCollapsible.js.map +1 -1
  266. package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.d.ts +2 -2
  267. package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.js.map +1 -1
  268. package/lib/components/Renderer/FormBodyTabbed.d.ts +2 -2
  269. package/lib/components/Renderer/FormBodyTabbed.js +6 -5
  270. package/lib/components/Renderer/FormBodyTabbed.js.map +1 -1
  271. package/lib/components/Renderer/FormTopLevelItem.d.ts +2 -2
  272. package/lib/components/Renderer/FormTopLevelItem.js +9 -5
  273. package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
  274. package/lib/components/Tabs/FormBodySingleTab.js +1 -1
  275. package/lib/components/Tabs/FormBodySingleTab.js.map +1 -1
  276. package/lib/components/Tabs/ShowCompletedTabsSection.js +1 -1
  277. package/lib/components/Tabs/ShowCompletedTabsSection.js.map +1 -1
  278. package/lib/hooks/useDateSeparatorValidation.d.ts +2 -0
  279. package/lib/hooks/useDateSeparatorValidation.js +25 -0
  280. package/lib/hooks/useDateSeparatorValidation.js.map +1 -0
  281. package/lib/hooks/useDateValidation.d.ts +2 -0
  282. package/lib/hooks/useDateValidation.js +61 -0
  283. package/lib/hooks/useDateValidation.js.map +1 -0
  284. package/lib/hooks/useDecimalCalculatedExpression.d.ts +0 -1
  285. package/lib/hooks/useDecimalCalculatedExpression.js +3 -3
  286. package/lib/hooks/useDecimalCalculatedExpression.js.map +1 -1
  287. package/lib/hooks/useInitialiseRepeatAnswers.d.ts +1 -1
  288. package/lib/hooks/useInitialiseRepeatAnswers.js.map +1 -1
  289. package/lib/hooks/useIntegerCalculatedExpression.d.ts +0 -1
  290. package/lib/hooks/useIntegerCalculatedExpression.js +3 -3
  291. package/lib/hooks/useIntegerCalculatedExpression.js.map +1 -1
  292. package/lib/hooks/useMinimalStringCalculatedExpression.d.ts +11 -0
  293. package/lib/hooks/useMinimalStringCalculatedExpression.js +37 -0
  294. package/lib/hooks/useMinimalStringCalculatedExpression.js.map +1 -0
  295. package/lib/hooks/useReadOnly.d.ts +3 -0
  296. package/lib/hooks/useReadOnly.js +26 -0
  297. package/lib/hooks/useReadOnly.js.map +1 -0
  298. package/lib/hooks/useSliderExtensions.d.ts +10 -0
  299. package/lib/hooks/useSliderExtensions.js +37 -0
  300. package/lib/hooks/useSliderExtensions.js.map +1 -0
  301. package/lib/hooks/useTerminologyServerQuery.js +0 -1
  302. package/lib/hooks/useTerminologyServerQuery.js.map +1 -1
  303. package/lib/index.d.ts +3 -3
  304. package/lib/index.js +15 -6
  305. package/lib/index.js.map +1 -1
  306. package/lib/interfaces/calculatedExpression.interface.d.ts +1 -1
  307. package/lib/interfaces/index.d.ts +2 -0
  308. package/lib/interfaces/index.js +18 -0
  309. package/lib/interfaces/index.js.map +1 -0
  310. package/lib/interfaces/questionnaireStore.interface.d.ts +1 -0
  311. package/lib/interfaces/renderProps.interface.d.ts +7 -3
  312. package/lib/stores/useQuestionnaireStore.d.ts +1 -0
  313. package/lib/stores/useQuestionnaireStore.js +28 -12
  314. package/lib/stores/useQuestionnaireStore.js.map +1 -1
  315. package/lib/test.d.ts +4 -0
  316. package/lib/test.js +18 -0
  317. package/lib/test.js.map +1 -0
  318. package/lib/theme/customGlobalStyles.js +0 -4
  319. package/lib/theme/customGlobalStyles.js.map +1 -1
  320. package/lib/theme/overrides/Typography.d.ts +13 -0
  321. package/lib/theme/overrides/Typography.js +31 -0
  322. package/lib/theme/overrides/Typography.js.map +1 -0
  323. package/lib/theme/typography.d.ts +0 -2
  324. package/lib/theme/typography.js +3 -5
  325. package/lib/theme/typography.js.map +1 -1
  326. package/lib/utils/calculatedExpression.d.ts +17 -1
  327. package/lib/utils/calculatedExpression.js +71 -20
  328. package/lib/utils/calculatedExpression.js.map +1 -1
  329. package/lib/utils/dayjsExtend.d.ts +1 -0
  330. package/lib/utils/dayjsExtend.js +22 -0
  331. package/lib/utils/dayjsExtend.js.map +1 -0
  332. package/lib/utils/enableWhenExpression.d.ts +5 -1
  333. package/lib/utils/enableWhenExpression.js +26 -21
  334. package/lib/utils/enableWhenExpression.js.map +1 -1
  335. package/lib/utils/fhirpath.d.ts +3 -1
  336. package/lib/utils/fhirpath.js +25 -15
  337. package/lib/utils/fhirpath.js.map +1 -1
  338. package/lib/utils/index.d.ts +1 -0
  339. package/lib/utils/index.js +1 -0
  340. package/lib/utils/index.js.map +1 -1
  341. package/lib/utils/initialiseForm.d.ts +2 -0
  342. package/lib/utils/initialiseForm.js +13 -5
  343. package/lib/utils/initialiseForm.js.map +1 -1
  344. package/lib/utils/itemControl.d.ts +12 -0
  345. package/lib/utils/itemControl.js +30 -0
  346. package/lib/utils/itemControl.js.map +1 -1
  347. package/lib/utils/launchContext.d.ts +0 -0
  348. package/lib/utils/launchContext.js +2 -0
  349. package/lib/utils/launchContext.js.map +1 -0
  350. package/lib/utils/mapItem.d.ts +1 -1
  351. package/lib/utils/qrItem.d.ts +1 -7
  352. package/lib/utils/qrItem.js +1 -12
  353. package/lib/utils/qrItem.js.map +1 -1
  354. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +4 -2
  355. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -1
  356. package/lib/utils/removeHidden.js +2 -1
  357. package/lib/utils/removeHidden.js.map +1 -1
  358. package/lib/utils/repopulateIntoResponse.js +90 -29
  359. package/lib/utils/repopulateIntoResponse.js.map +1 -1
  360. package/lib/utils/repopulateItems.d.ts +14 -1
  361. package/lib/utils/repopulateItems.js +251 -70
  362. package/lib/utils/repopulateItems.js.map +1 -1
  363. package/lib/utils/repopulateRepeatGroup.js +9 -1
  364. package/lib/utils/repopulateRepeatGroup.js.map +1 -1
  365. package/lib/utils/slider.d.ts +28 -0
  366. package/lib/utils/slider.js +89 -0
  367. package/lib/utils/slider.js.map +1 -0
  368. package/package.json +20 -18
  369. package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +10 -7
  370. package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +11 -8
  371. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +46 -35
  372. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +48 -37
  373. package/src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx +21 -11
  374. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +11 -10
  375. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +12 -9
  376. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +3 -2
  377. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +16 -11
  378. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +3 -2
  379. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +14 -9
  380. package/src/components/FormComponents/CustomDateItem/CustomDateItem.tsx +140 -0
  381. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.tsx +96 -0
  382. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.tsx +81 -0
  383. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.tsx +33 -0
  384. package/src/components/FormComponents/{Typography.styles.ts → CustomDateItem/customDateTimePicker/MuiDatePicker.ts} +4 -7
  385. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/index.ts +18 -0
  386. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.ts +18 -0
  387. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.ts +154 -0
  388. package/src/components/FormComponents/CustomDateItem/index.ts +18 -0
  389. package/src/components/FormComponents/DateItem/DateItem.tsx +10 -8
  390. package/src/components/FormComponents/DateTimeItem/DateTimeItem.tsx +10 -8
  391. package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +11 -10
  392. package/src/components/FormComponents/DisplayItem/DisplayInstructions.styles.ts +0 -1
  393. package/src/components/FormComponents/DisplayItem/DisplayInstructions.tsx +8 -3
  394. package/src/components/FormComponents/DisplayItem/DisplayItem.tsx +2 -2
  395. package/src/components/FormComponents/GridGroup/GridGroup.tsx +49 -15
  396. package/src/components/FormComponents/GridGroup/GridRow.tsx +12 -7
  397. package/src/components/FormComponents/GridGroup/GridTable.tsx +32 -8
  398. package/src/components/FormComponents/GridGroup/index.ts +18 -0
  399. package/src/components/FormComponents/GroupItem/GroupHeading.tsx +12 -6
  400. package/src/components/FormComponents/GroupItem/GroupItem.tsx +13 -8
  401. package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +33 -11
  402. package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +11 -10
  403. package/src/components/FormComponents/Item.styles.ts +0 -5
  404. package/src/components/FormComponents/ItemParts/FadingCheckIcon.tsx +2 -2
  405. package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +6 -5
  406. package/src/components/FormComponents/ItemParts/ItemLabelText.tsx +10 -5
  407. package/src/components/FormComponents/ItemParts/ItemLabelWrapper.tsx +3 -2
  408. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx +10 -4
  409. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +15 -9
  410. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +58 -47
  411. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx +15 -6
  412. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +13 -10
  413. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.tsx +10 -4
  414. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +12 -7
  415. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx +10 -4
  416. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +14 -9
  417. package/src/components/FormComponents/RepeatGroup/AddItemButton.tsx +3 -2
  418. package/src/components/FormComponents/RepeatGroup/DeleteItemButton.tsx +3 -2
  419. package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +61 -10
  420. package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.tsx +23 -7
  421. package/src/components/FormComponents/RepeatItem/AddItemButton.tsx +3 -2
  422. package/src/components/FormComponents/RepeatItem/DeleteItemButton.tsx +3 -2
  423. package/src/components/FormComponents/RepeatItem/RepeatField.tsx +33 -9
  424. package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +44 -7
  425. package/src/components/FormComponents/RepeatItem/index.ts +18 -0
  426. package/src/components/FormComponents/SingleItem/SingleItem.tsx +12 -6
  427. package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +41 -11
  428. package/src/components/FormComponents/SliderItem/Slider.styles.ts +34 -0
  429. package/src/components/FormComponents/SliderItem/SliderDisplayValue.tsx +43 -0
  430. package/src/components/FormComponents/SliderItem/SliderField.tsx +88 -0
  431. package/src/components/FormComponents/SliderItem/SliderItem.tsx +115 -0
  432. package/src/components/FormComponents/SliderItem/SliderLabels.tsx +53 -0
  433. package/src/components/FormComponents/StringItem/StringItem.tsx +9 -7
  434. package/src/components/FormComponents/Tables/AddRowButton.tsx +3 -2
  435. package/src/components/FormComponents/Tables/DeleteRowButton.tsx +3 -2
  436. package/src/components/FormComponents/Tables/GroupTable.tsx +70 -7
  437. package/src/components/FormComponents/Tables/GroupTableRow.tsx +12 -7
  438. package/src/components/FormComponents/TextItem/TextItem.tsx +9 -7
  439. package/src/components/FormComponents/TimeItem/TimeItem.tsx +10 -8
  440. package/src/components/FormComponents/UrlItem/UrlItem.tsx +9 -7
  441. package/src/components/FormComponents/index.ts +3 -0
  442. package/src/components/Renderer/BaseRenderer.tsx +5 -12
  443. package/src/components/Renderer/FormBodyCollapsible.tsx +9 -7
  444. package/src/components/Renderer/FormBodySingleCollapsibleWrapper.tsx +2 -3
  445. package/src/components/Renderer/FormBodyTabbed.tsx +9 -7
  446. package/src/components/Renderer/FormTopLevelItem.tsx +21 -13
  447. package/src/components/Tabs/FormBodySingleTab.tsx +1 -1
  448. package/src/components/Tabs/ShowCompletedTabsSection.tsx +1 -1
  449. package/src/hooks/useDateValidation.tsx +79 -0
  450. package/src/hooks/useDecimalCalculatedExpression.ts +3 -4
  451. package/src/hooks/useInitialiseRepeatAnswers.ts +1 -1
  452. package/src/hooks/useIntegerCalculatedExpression.ts +3 -4
  453. package/src/hooks/useReadOnly.ts +30 -0
  454. package/src/hooks/useSliderExtensions.ts +50 -0
  455. package/src/hooks/useTerminologyServerQuery.ts +0 -2
  456. package/src/index.ts +12 -9
  457. package/src/interfaces/calculatedExpression.interface.ts +1 -1
  458. package/src/interfaces/questionnaireStore.interface.ts +1 -0
  459. package/src/interfaces/renderProps.interface.ts +8 -3
  460. package/src/stores/useQuestionnaireStore.ts +39 -16
  461. package/src/theme/customGlobalStyles.tsx +0 -4
  462. package/src/theme/typography.ts +3 -5
  463. package/src/utils/calculatedExpression.ts +104 -35
  464. package/src/utils/dayjsExtend.ts +23 -0
  465. package/src/utils/enableWhenExpression.ts +49 -34
  466. package/src/utils/fhirpath.ts +50 -31
  467. package/src/utils/index.ts +1 -0
  468. package/src/utils/initialiseForm.ts +15 -5
  469. package/src/utils/itemControl.ts +32 -0
  470. package/src/utils/mapItem.ts +1 -1
  471. package/src/utils/qrItem.ts +1 -16
  472. package/src/utils/questionnaireStoreUtils/createQuestionaireModel.ts +4 -2
  473. package/src/utils/removeHidden.ts +2 -1
  474. package/src/utils/repopulateIntoResponse.ts +134 -43
  475. package/src/utils/repopulateItems.ts +379 -101
  476. package/src/utils/slider.ts +112 -0
  477. package/src/utils/repopulateRepeatGroup.ts +0 -68
@@ -19,6 +19,7 @@ import React from 'react';
19
19
  import type {
20
20
  PropsWithIsRepeatedAttribute,
21
21
  PropsWithIsTabledAttribute,
22
+ PropsWithParentIsReadOnlyAttribute,
22
23
  PropsWithQrItemChangeHandler
23
24
  } from '../../../interfaces/renderProps.interface';
24
25
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
@@ -29,21 +30,22 @@ import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
29
30
  import DateField from './DateField';
30
31
  import type { Dayjs } from 'dayjs';
31
32
  import dayjs from 'dayjs';
33
+ import useReadOnly from '../../../hooks/useReadOnly';
32
34
 
33
35
  interface DateItemProps
34
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
36
+ extends PropsWithQrItemChangeHandler,
35
37
  PropsWithIsRepeatedAttribute,
36
- PropsWithIsTabledAttribute {
38
+ PropsWithIsTabledAttribute,
39
+ PropsWithParentIsReadOnlyAttribute {
37
40
  qItem: QuestionnaireItem;
38
- qrItem: QuestionnaireResponseItem;
41
+ qrItem: QuestionnaireResponseItem | null;
39
42
  }
40
43
 
41
44
  function DateItem(props: DateItemProps) {
42
- const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
45
+ const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
43
46
 
44
- // Get additional rendering extensions
45
- const { displayPrompt, displayInstructions, readOnly, entryFormat } =
46
- useRenderingExtensions(qItem);
47
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
48
+ const { displayPrompt, displayInstructions, entryFormat } = useRenderingExtensions(qItem);
47
49
 
48
50
  // Init input value
49
51
  let dateString: string | null = null;
@@ -83,7 +85,7 @@ function DateItem(props: DateItemProps) {
83
85
 
84
86
  return (
85
87
  <FullWidthFormComponentBox data-test="q-item-date-box">
86
- <ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions}>
88
+ <ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions} readOnly={readOnly}>
87
89
  <DateField
88
90
  value={dateDayJs}
89
91
  displayPrompt={displayPrompt}
@@ -19,6 +19,7 @@ import React from 'react';
19
19
  import type {
20
20
  PropsWithIsRepeatedAttribute,
21
21
  PropsWithIsTabledAttribute,
22
+ PropsWithParentIsReadOnlyAttribute,
22
23
  PropsWithQrItemChangeHandler
23
24
  } from '../../../interfaces/renderProps.interface';
24
25
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
@@ -29,21 +30,22 @@ import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
29
30
  import DateTimeField from './DateTimeField';
30
31
  import type { Dayjs } from 'dayjs';
31
32
  import dayjs from 'dayjs';
33
+ import useReadOnly from '../../../hooks/useReadOnly';
32
34
 
33
35
  interface DateTimeItemProps
34
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
36
+ extends PropsWithQrItemChangeHandler,
35
37
  PropsWithIsRepeatedAttribute,
36
- PropsWithIsTabledAttribute {
38
+ PropsWithIsTabledAttribute,
39
+ PropsWithParentIsReadOnlyAttribute {
37
40
  qItem: QuestionnaireItem;
38
- qrItem: QuestionnaireResponseItem;
41
+ qrItem: QuestionnaireResponseItem | null;
39
42
  }
40
43
 
41
44
  function DateTimeItem(props: DateTimeItemProps) {
42
- const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
45
+ const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
43
46
 
44
- // Get additional rendering extensions
45
- const { displayPrompt, displayInstructions, readOnly, entryFormat } =
46
- useRenderingExtensions(qItem);
47
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
48
+ const { displayPrompt, displayInstructions, entryFormat } = useRenderingExtensions(qItem);
47
49
 
48
50
  // Init input value
49
51
  let dateTimeString: string | null = null;
@@ -81,7 +83,7 @@ function DateTimeItem(props: DateTimeItemProps) {
81
83
 
82
84
  return (
83
85
  <FullWidthFormComponentBox data-test="q-item-date-time-box">
84
- <ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions}>
86
+ <ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions} readOnly={readOnly}>
85
87
  <DateTimeField
86
88
  value={dateTimeDayJs}
87
89
  displayPrompt={displayPrompt}
@@ -19,6 +19,7 @@ import React, { useCallback } from 'react';
19
19
  import type {
20
20
  PropsWithIsRepeatedAttribute,
21
21
  PropsWithIsTabledAttribute,
22
+ PropsWithParentIsReadOnlyAttribute,
22
23
  PropsWithQrItemChangeHandler
23
24
  } from '../../../interfaces/renderProps.interface';
24
25
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
@@ -27,7 +28,7 @@ import { FullWidthFormComponentBox } from '../../Box.styles';
27
28
  import useValidationError from '../../../hooks/useValidationError';
28
29
  import debounce from 'lodash.debounce';
29
30
  import { DEBOUNCE_DURATION } from '../../../utils/debounce';
30
- import { createEmptyQrItemWithUnit } from '../../../utils/qrItem';
31
+ import { createEmptyQrItem } from '../../../utils/qrItem';
31
32
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
32
33
  import DecimalField from './DecimalField';
33
34
  import {
@@ -37,25 +38,26 @@ import {
37
38
  import { getDecimalPrecision } from '../../../utils/itemControl';
38
39
  import useDecimalCalculatedExpression from '../../../hooks/useDecimalCalculatedExpression';
39
40
  import useStringInput from '../../../hooks/useStringInput';
41
+ import useReadOnly from '../../../hooks/useReadOnly';
40
42
 
41
43
  interface DecimalItemProps
42
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
44
+ extends PropsWithQrItemChangeHandler,
43
45
  PropsWithIsRepeatedAttribute,
44
- PropsWithIsTabledAttribute {
46
+ PropsWithIsTabledAttribute,
47
+ PropsWithParentIsReadOnlyAttribute {
45
48
  qItem: QuestionnaireItem;
46
- qrItem: QuestionnaireResponseItem;
49
+ qrItem: QuestionnaireResponseItem | null;
47
50
  }
48
51
 
49
52
  function DecimalItem(props: DecimalItemProps) {
50
- const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
53
+ const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
51
54
 
52
- // Get additional rendering extensions
55
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
53
56
  const precision = getDecimalPrecision(qItem);
54
57
  const {
55
58
  displayUnit,
56
59
  displayPrompt,
57
60
  displayInstructions,
58
- readOnly,
59
61
  entryFormat,
60
62
  regexValidation,
61
63
  maxLength
@@ -84,7 +86,6 @@ function DecimalItem(props: DecimalItemProps) {
84
86
  const { calcExpUpdated } = useDecimalCalculatedExpression({
85
87
  qItem: qItem,
86
88
  inputValue: input,
87
- displayUnit: displayUnit,
88
89
  precision: precision,
89
90
  setInputValue: (newInput) => {
90
91
  setInput(newInput);
@@ -104,7 +105,7 @@ function DecimalItem(props: DecimalItemProps) {
104
105
  const updateQrItemWithDebounce = useCallback(
105
106
  debounce((parsedNewInput: string) => {
106
107
  onQrItemChange({
107
- ...createEmptyQrItemWithUnit(qItem, displayUnit),
108
+ ...createEmptyQrItem(qItem),
108
109
  answer: precision
109
110
  ? [{ valueDecimal: parseDecimalStringToFloat(parsedNewInput, precision) }]
110
111
  : [{ valueDecimal: parseFloat(parsedNewInput) }]
@@ -132,7 +133,7 @@ function DecimalItem(props: DecimalItemProps) {
132
133
 
133
134
  return (
134
135
  <FullWidthFormComponentBox data-test="q-item-decimal-box">
135
- <ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions}>
136
+ <ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions} readOnly={readOnly}>
136
137
  <DecimalField
137
138
  linkId={qItem.linkId}
138
139
  input={input}
@@ -20,6 +20,5 @@ import { styled } from '@mui/material/styles';
20
20
 
21
21
  export const DisplayInstructionsWrapper = styled(Box)(({ theme }) => ({
22
22
  color: theme.palette.text.secondary,
23
- textTransform: 'capitalize',
24
23
  marginBottom: '8px'
25
24
  }));
@@ -15,20 +15,25 @@
15
15
  * limitations under the License.
16
16
  */
17
17
 
18
+ import type { ReactElement } from 'react';
18
19
  import React, { memo } from 'react';
19
20
  import Typography from '@mui/material/Typography';
20
21
  import { DisplayInstructionsWrapper } from './DisplayInstructions.styles';
21
22
 
22
23
  interface DisplayInstructionsProps {
23
- displayInstructions: string;
24
+ displayInstructions: string | ReactElement;
25
+ readOnly: boolean;
24
26
  }
25
27
 
26
28
  const DisplayInstructions = memo(function DisplayInstructions(props: DisplayInstructionsProps) {
27
- const { displayInstructions } = props;
29
+ const { displayInstructions, readOnly } = props;
28
30
 
29
31
  return displayInstructions ? (
30
32
  <DisplayInstructionsWrapper>
31
- <Typography variant="caption" fontSize={10.5}>
33
+ <Typography
34
+ variant="caption"
35
+ fontSize={10.5}
36
+ color={readOnly ? 'text.secondary' : 'text.primary'}>
32
37
  {displayInstructions}
33
38
  </Typography>
34
39
  </DisplayInstructionsWrapper>
@@ -18,7 +18,7 @@
18
18
  import React, { memo } from 'react';
19
19
  import type { QuestionnaireItem } from 'fhir/r4';
20
20
  import { FullWidthFormComponentBox } from '../../Box.styles';
21
- import { isSpecificItemControl } from '../../../utils/itemControl';
21
+ import { isSpecificItemControl } from '../../../utils';
22
22
  import LabelWrapper from '../ItemParts/ItemLabelWrapper';
23
23
 
24
24
  interface DisplayItemProps {
@@ -35,7 +35,7 @@ const DisplayItem = memo(function DisplayItem(props: DisplayItemProps) {
35
35
 
36
36
  return (
37
37
  <FullWidthFormComponentBox>
38
- <LabelWrapper qItem={qItem} />
38
+ <LabelWrapper qItem={qItem} readOnly={false} />
39
39
  </FullWidthFormComponentBox>
40
40
  );
41
41
  });
@@ -17,8 +17,12 @@
17
17
 
18
18
  import React, { useMemo } from 'react';
19
19
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
20
- import type { PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
21
- import { createQrGroup, updateQrItemsInGroup } from '../../../utils/qrItem';
20
+ import type {
21
+ PropsWithParentIsReadOnlyAttribute,
22
+ PropsWithQrItemChangeHandler,
23
+ PropsWithShowMinimalViewAttribute
24
+ } from '../../../interfaces/renderProps.interface';
25
+ import { createEmptyQrGroup, updateQrItemsInGroup } from '../../../utils/qrItem';
22
26
  import useHidden from '../../../hooks/useHidden';
23
27
  import { QGroupContainerBox } from '../../Box.styles';
24
28
  import Divider from '@mui/material/Divider';
@@ -28,18 +32,23 @@ import Typography from '@mui/material/Typography';
28
32
  import { mapQItemsIndex } from '../../../utils/mapItem';
29
33
  import GridTable from './GridTable';
30
34
  import LabelWrapper from '../ItemParts/ItemLabelWrapper';
35
+ import useReadOnly from '../../../hooks/useReadOnly';
31
36
 
32
- interface GridGroupProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem> {
37
+ interface GridGroupProps
38
+ extends PropsWithQrItemChangeHandler,
39
+ PropsWithShowMinimalViewAttribute,
40
+ PropsWithParentIsReadOnlyAttribute {
33
41
  qItem: QuestionnaireItem;
34
- qrItem: QuestionnaireResponseItem;
42
+ qrItem: QuestionnaireResponseItem | null;
35
43
  groupCardElevation: number;
36
44
  }
37
45
 
38
46
  function GridGroup(props: GridGroupProps) {
39
- const { qItem, qrItem, groupCardElevation, onQrItemChange } = props;
47
+ const { qItem, qrItem, groupCardElevation, showMinimalView, parentIsReadOnly, onQrItemChange } =
48
+ props;
40
49
 
41
50
  const qRowItems = qItem.item;
42
- const qrGroup = qrItem && qrItem.item ? qrItem : createQrGroup(qItem);
51
+ const qrGroup = qrItem && qrItem.item ? qrItem : createEmptyQrGroup(qItem);
43
52
  const qrRowItems = qrGroup.item;
44
53
 
45
54
  const qItemsIndexMap = useMemo(() => mapQItemsIndex(qItem), [qItem]);
@@ -49,6 +58,7 @@ function GridGroup(props: GridGroupProps) {
49
58
  [qRowItems]
50
59
  );
51
60
 
61
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
52
62
  const itemIsHidden = useHidden(qItem);
53
63
  if (itemIsHidden) {
54
64
  return null;
@@ -70,25 +80,49 @@ function GridGroup(props: GridGroupProps) {
70
80
  onQrItemChange(updatedQrGroup);
71
81
  }
72
82
 
73
- return (
74
- <>
75
- <QGroupContainerBox cardElevation={groupCardElevation} isRepeated={false} py={3}>
76
- <Typography fontSize={13} variant="h6">
77
- <LabelWrapper qItem={qItem} />
78
- </Typography>
79
- <Divider sx={{ my: 1 }} light />
80
-
83
+ if (showMinimalView) {
84
+ return (
85
+ <QGroupContainerBox cardElevation={groupCardElevation} isRepeated={false} py={1}>
81
86
  <TableContainer component={Paper} elevation={groupCardElevation}>
82
87
  <GridTable
83
88
  qItems={qRowItems}
84
89
  qrItems={qrRowItems}
85
90
  qItemsIndexMap={qItemsIndexMap}
86
91
  columnLabels={columnLabels}
92
+ showMinimalView={showMinimalView}
93
+ parentIsReadOnly={parentIsReadOnly}
87
94
  onQrItemChange={handleRowChange}
88
95
  />
89
96
  </TableContainer>
90
97
  </QGroupContainerBox>
91
- </>
98
+ );
99
+ }
100
+
101
+ return (
102
+ <QGroupContainerBox cardElevation={groupCardElevation} isRepeated={false} py={3}>
103
+ {qItem.text ? (
104
+ <>
105
+ <Typography
106
+ fontSize={13}
107
+ variant="h6"
108
+ color={readOnly ? 'text.secondary' : 'text.primary'}>
109
+ <LabelWrapper qItem={qItem} readOnly={readOnly} />
110
+ </Typography>
111
+ <Divider sx={{ my: 1 }} light />
112
+ </>
113
+ ) : null}
114
+
115
+ <TableContainer component={Paper} elevation={groupCardElevation}>
116
+ <GridTable
117
+ qItems={qRowItems}
118
+ qrItems={qrRowItems}
119
+ qItemsIndexMap={qItemsIndexMap}
120
+ columnLabels={columnLabels}
121
+ parentIsReadOnly={parentIsReadOnly}
122
+ onQrItemChange={handleRowChange}
123
+ />
124
+ </TableContainer>
125
+ </QGroupContainerBox>
92
126
  );
93
127
  }
94
128
 
@@ -17,26 +17,29 @@
17
17
 
18
18
  import React, { useMemo } from 'react';
19
19
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
20
- import type { PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
21
- import { createQrGroup, updateQrItemsInGroup } from '../../../utils/qrItem';
20
+ import type {
21
+ PropsWithParentIsReadOnlyAttribute,
22
+ PropsWithQrItemChangeHandler
23
+ } from '../../../interfaces/renderProps.interface';
24
+ import { createEmptyQrGroup, updateQrItemsInGroup } from '../../../utils/qrItem';
22
25
  import { GridAnswerTableCell, GridTextTableCell } from '../Tables/Table.styles';
23
26
  import SingleItem from '../SingleItem/SingleItem';
24
27
  import { getQrItemsIndex, mapQItemsIndex } from '../../../utils/mapItem';
25
28
  import Typography from '@mui/material/Typography';
26
29
  import useHidden from '../../../hooks/useHidden';
27
30
 
28
- interface GridRowProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem> {
31
+ interface GridRowProps extends PropsWithQrItemChangeHandler, PropsWithParentIsReadOnlyAttribute {
29
32
  qItem: QuestionnaireItem;
30
- qrItem: QuestionnaireResponseItem;
33
+ qrItem: QuestionnaireResponseItem | null;
31
34
  columnLabels: string[];
32
35
  numOfColumns: number;
33
36
  }
34
37
 
35
38
  function GridRow(props: GridRowProps) {
36
- const { qItem, qrItem, columnLabels, numOfColumns, onQrItemChange } = props;
39
+ const { qItem, qrItem, columnLabels, numOfColumns, parentIsReadOnly, onQrItemChange } = props;
37
40
 
38
41
  const rowQItems = qItem.item;
39
- const row = qrItem && qrItem.item ? qrItem : createQrGroup(qItem);
42
+ const row = qrItem && qrItem.item ? qrItem : createEmptyQrGroup(qItem);
40
43
  const rowQrItems = row.item;
41
44
 
42
45
  const qItemsIndexMap = useMemo(() => mapQItemsIndex(qItem), [qItem]);
@@ -79,9 +82,11 @@ function GridRow(props: GridRowProps) {
79
82
  <GridAnswerTableCell key={index} numOfColumns={numOfColumns}>
80
83
  <SingleItem
81
84
  qItem={cellQItem}
82
- qrItem={cellQrItem}
85
+ qrItem={cellQrItem ?? null}
83
86
  isRepeated={true}
84
87
  isTabled={true}
88
+ showMinimalView={true}
89
+ parentIsReadOnly={parentIsReadOnly}
85
90
  onQrItemChange={handleQrRowItemChange}
86
91
  />
87
92
  </GridAnswerTableCell>
@@ -25,9 +25,16 @@ import { HeaderTableCell } from '../Tables/Table.styles';
25
25
  import GridRow from './GridRow';
26
26
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
27
27
  import { getQrItemsIndex } from '../../../utils/mapItem';
28
- import type { PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
28
+ import type {
29
+ PropsWithParentIsReadOnlyAttribute,
30
+ PropsWithQrItemChangeHandler
31
+ } from '../../../interfaces/renderProps.interface';
32
+ import type { PropsWithShowMinimalViewAttribute } from '../../../interfaces/renderProps.interface';
29
33
 
30
- interface GridTableProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem> {
34
+ interface GridTableProps
35
+ extends PropsWithQrItemChangeHandler,
36
+ PropsWithShowMinimalViewAttribute,
37
+ PropsWithParentIsReadOnlyAttribute {
31
38
  qItems: QuestionnaireItem[];
32
39
  qrItems: QuestionnaireResponseItem[];
33
40
  qItemsIndexMap: Record<string, number>;
@@ -35,20 +42,31 @@ interface GridTableProps extends PropsWithQrItemChangeHandler<QuestionnaireRespo
35
42
  }
36
43
 
37
44
  function GridTable(props: GridTableProps) {
38
- const { qItems, qrItems, qItemsIndexMap, columnLabels, onQrItemChange } = props;
45
+ const {
46
+ qItems,
47
+ qrItems,
48
+ qItemsIndexMap,
49
+ columnLabels,
50
+ showMinimalView,
51
+ parentIsReadOnly,
52
+ onQrItemChange
53
+ } = props;
39
54
 
40
- const qrItemsByIndex: (QuestionnaireResponseItem | QuestionnaireResponseItem[])[] =
41
- getQrItemsIndex(qItems, qrItems, qItemsIndexMap);
55
+ const qrItemsByIndex = getQrItemsIndex(qItems, qrItems, qItemsIndexMap);
42
56
 
43
57
  const numOfColumns = columnLabels.length;
44
58
 
59
+ const minimalViewHeaderCellSx = showMinimalView ? { py: 2 } : null;
60
+
45
61
  return (
46
- <Table>
62
+ <Table size={showMinimalView ? 'small' : 'medium'}>
47
63
  <TableHead>
48
64
  <TableRow>
49
65
  <HeaderTableCell />
50
66
  {columnLabels.map((label) => (
51
- <HeaderTableCell key={label}>{label}</HeaderTableCell>
67
+ <HeaderTableCell key={label} size="medium" sx={{ ...minimalViewHeaderCellSx }}>
68
+ {label}
69
+ </HeaderTableCell>
52
70
  ))}
53
71
  <TableCell />
54
72
  </TableRow>
@@ -61,13 +79,19 @@ function GridTable(props: GridTableProps) {
61
79
  return null;
62
80
  }
63
81
 
82
+ // In minimal view, don't display items with no answers
83
+ if (showMinimalView && !qrItem) {
84
+ return null;
85
+ }
86
+
64
87
  return (
65
88
  <TableRow key={qItem.linkId}>
66
89
  <GridRow
67
90
  qItem={qItem}
68
- qrItem={qrItem}
91
+ qrItem={qrItem ?? null}
69
92
  columnLabels={columnLabels}
70
93
  numOfColumns={numOfColumns}
94
+ parentIsReadOnly={parentIsReadOnly}
71
95
  onQrItemChange={onQrItemChange}
72
96
  />
73
97
  </TableRow>
@@ -0,0 +1,18 @@
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
+ export { default as GridGroup } from './GridGroup';
@@ -18,20 +18,21 @@
18
18
  import React, { memo } from 'react';
19
19
  import Box from '@mui/material/Box';
20
20
  import Divider from '@mui/material/Divider';
21
- import { QGroupHeadingTypography } from '../Typography.styles';
21
+ import Typography from '@mui/material/Typography';
22
22
  import type { PropsWithIsRepeatedAttribute } from '../../../interfaces/renderProps.interface';
23
23
  import type { QuestionnaireItem } from 'fhir/r4';
24
24
  import { getContextDisplays } from '../../../utils/tabs';
25
25
  import ContextDisplayItem from '../ItemParts/ContextDisplayItem';
26
- import LabelText from '../ItemParts/ItemLabelText';
26
+ import ItemLabelText from '../ItemParts/ItemLabelText';
27
27
 
28
28
  interface GroupHeadingProps extends PropsWithIsRepeatedAttribute {
29
29
  qItem: QuestionnaireItem;
30
+ readOnly: boolean;
30
31
  tabIsMarkedAsComplete?: boolean;
31
32
  }
32
33
 
33
34
  const GroupHeading = memo(function GroupHeading(props: GroupHeadingProps) {
34
- const { qItem, tabIsMarkedAsComplete, isRepeated } = props;
35
+ const { qItem, readOnly, tabIsMarkedAsComplete, isRepeated } = props;
35
36
 
36
37
  const contextDisplayItems = getContextDisplays(qItem);
37
38
 
@@ -39,12 +40,17 @@ const GroupHeading = memo(function GroupHeading(props: GroupHeadingProps) {
39
40
  return null;
40
41
  }
41
42
 
43
+ const isTabHeading = tabIsMarkedAsComplete !== undefined;
44
+
42
45
  return (
43
46
  <>
44
47
  <Box display="flex" alignItems="center" justifyContent="space-between">
45
- <QGroupHeadingTypography variant="h6" isTabHeading={tabIsMarkedAsComplete !== undefined}>
46
- <LabelText qItem={qItem} />
47
- </QGroupHeadingTypography>
48
+ <Typography
49
+ variant="h6"
50
+ fontSize={isTabHeading ? 16 : 15}
51
+ color={readOnly && !isTabHeading ? 'text.secondary' : 'text.primary'}>
52
+ <ItemLabelText qItem={qItem} />
53
+ </Typography>
48
54
 
49
55
  <Box display="flex" columnGap={0.5}>
50
56
  {contextDisplayItems.map((item) => {
@@ -18,10 +18,11 @@
18
18
  import React, { useMemo } from 'react';
19
19
  import { getQrItemsIndex, mapQItemsIndex } from '../../../utils/mapItem';
20
20
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
21
- import { createQrGroup, updateQrItemsInGroup } from '../../../utils/qrItem';
21
+ import { createEmptyQrGroup, updateQrItemsInGroup } from '../../../utils/qrItem';
22
22
  import { QGroupContainerBox } from '../../Box.styles';
23
23
  import type {
24
24
  PropsWithIsRepeatedAttribute,
25
+ PropsWithParentIsReadOnlyAttribute,
25
26
  PropsWithQrItemChangeHandler
26
27
  } from '../../../interfaces/renderProps.interface';
27
28
  import type { QrRepeatGroup } from '../../../interfaces/repeatGroup.interface';
@@ -31,17 +32,18 @@ import GroupHeading from './GroupHeading';
31
32
  import { GroupCard } from './GroupItem.styles';
32
33
  import NextTabButtonWrapper from './NextTabButtonWrapper';
33
34
  import GroupItemSwitcher from './GroupItemSwitcher';
35
+ import useReadOnly from '../../../hooks/useReadOnly';
34
36
 
35
37
  interface GroupItemProps
36
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
37
- PropsWithIsRepeatedAttribute {
38
+ extends PropsWithQrItemChangeHandler,
39
+ PropsWithIsRepeatedAttribute,
40
+ PropsWithParentIsReadOnlyAttribute {
38
41
  qItem: QuestionnaireItem;
39
- qrItem: QuestionnaireResponseItem;
42
+ qrItem: QuestionnaireResponseItem | null;
40
43
  groupCardElevation: number;
41
44
  tabIsMarkedAsComplete?: boolean;
42
45
  tabs?: Tabs;
43
46
  currentTabIndex?: number;
44
- goToNextTab?: (nextTabIndex: number) => unknown;
45
47
  }
46
48
 
47
49
  function GroupItem(props: GroupItemProps) {
@@ -53,18 +55,20 @@ function GroupItem(props: GroupItemProps) {
53
55
  tabIsMarkedAsComplete,
54
56
  tabs,
55
57
  currentTabIndex,
58
+ parentIsReadOnly,
56
59
  onQrItemChange
57
60
  } = props;
58
61
 
59
62
  const qItemsIndexMap = useMemo(() => mapQItemsIndex(qItem), [qItem]);
60
63
 
64
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
61
65
  const itemIsHidden = useHidden(qItem);
62
66
  if (itemIsHidden) {
63
67
  return null;
64
68
  }
65
69
 
66
70
  const qItems = qItem.item;
67
- const qrGroup = qrItem && qrItem.item ? qrItem : createQrGroup(qItem);
71
+ const qrGroup = qrItem && qrItem.item ? qrItem : createEmptyQrGroup(qItem);
68
72
  const qrItems = qrGroup.item;
69
73
 
70
74
  // Event Handlers
@@ -85,8 +89,7 @@ function GroupItem(props: GroupItemProps) {
85
89
  }
86
90
 
87
91
  // If an item has multiple answers, it is a repeat group
88
- const qrItemsByIndex: (QuestionnaireResponseItem | QuestionnaireResponseItem[])[] =
89
- getQrItemsIndex(qItems, qrItems, qItemsIndexMap);
92
+ const qrItemsByIndex = getQrItemsIndex(qItems, qrItems, qItemsIndexMap);
90
93
 
91
94
  return (
92
95
  <QGroupContainerBox
@@ -96,6 +99,7 @@ function GroupItem(props: GroupItemProps) {
96
99
  <GroupCard elevation={groupCardElevation} isRepeated={isRepeated}>
97
100
  <GroupHeading
98
101
  qItem={qItem}
102
+ readOnly={readOnly}
99
103
  tabIsMarkedAsComplete={tabIsMarkedAsComplete}
100
104
  isRepeated={isRepeated}
101
105
  />
@@ -108,6 +112,7 @@ function GroupItem(props: GroupItemProps) {
108
112
  qItem={qItem}
109
113
  qrItemOrItems={qrItemOrItems}
110
114
  groupCardElevation={groupCardElevation}
115
+ parentIsReadOnly={readOnly}
111
116
  onQrItemChange={handleQrItemChange}
112
117
  onQrRepeatGroupChange={handleQrRepeatGroupChange}
113
118
  />