@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';
@@ -28,20 +29,22 @@ import { FullWidthFormComponentBox } from '../../Box.styles';
28
29
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
29
30
  import BooleanField from './BooleanField';
30
31
  import Box from '@mui/material/Box';
32
+ import useReadOnly from '../../../hooks/useReadOnly';
31
33
 
32
34
  interface BooleanItemProps
33
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
35
+ extends PropsWithQrItemChangeHandler,
34
36
  PropsWithIsRepeatedAttribute,
35
- PropsWithIsTabledAttribute {
37
+ PropsWithIsTabledAttribute,
38
+ PropsWithParentIsReadOnlyAttribute {
36
39
  qItem: QuestionnaireItem;
37
- qrItem: QuestionnaireResponseItem;
40
+ qrItem: QuestionnaireResponseItem | null;
38
41
  }
39
42
 
40
43
  function BooleanItem(props: BooleanItemProps) {
41
- const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
44
+ const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
42
45
 
43
- // Get additional rendering extensions
44
- const { displayInstructions, readOnly } = useRenderingExtensions(qItem);
46
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
47
+ const { displayInstructions } = useRenderingExtensions(qItem);
45
48
 
46
49
  // Init input value
47
50
  let checked = false;
@@ -72,7 +75,7 @@ function BooleanItem(props: BooleanItemProps) {
72
75
  }
73
76
  return (
74
77
  <FullWidthFormComponentBox data-test="q-item-boolean-box">
75
- <ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions}>
78
+ <ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions} readOnly={readOnly}>
76
79
  <BooleanField checked={checked} readOnly={readOnly} onCheckedChange={handleCheckedChange} />
77
80
  </ItemFieldGrid>
78
81
  </FullWidthFormComponentBox>
@@ -38,22 +38,25 @@ import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
38
38
  import type {
39
39
  PropsWithIsRepeatedAttribute,
40
40
  PropsWithIsTabledAttribute,
41
+ PropsWithParentIsReadOnlyAttribute,
41
42
  PropsWithQrItemChangeHandler
42
43
  } from '../../../interfaces/renderProps.interface';
43
44
  import { AUTOCOMPLETE_DEBOUNCE_DURATION } from '../../../utils/debounce';
44
45
  import DisplayInstructions from '../DisplayItem/DisplayInstructions';
45
46
  import LabelWrapper from '../ItemParts/ItemLabelWrapper';
47
+ import useReadOnly from '../../../hooks/useReadOnly';
46
48
 
47
49
  interface ChoiceAutocompleteItemProps
48
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
50
+ extends PropsWithQrItemChangeHandler,
49
51
  PropsWithIsRepeatedAttribute,
50
- PropsWithIsTabledAttribute {
52
+ PropsWithIsTabledAttribute,
53
+ PropsWithParentIsReadOnlyAttribute {
51
54
  qItem: QuestionnaireItem;
52
- qrItem: QuestionnaireResponseItem;
55
+ qrItem: QuestionnaireResponseItem | null;
53
56
  }
54
57
 
55
58
  function ChoiceAutocompleteItem(props: ChoiceAutocompleteItemProps) {
56
- const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
59
+ const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
57
60
  const qrChoice = qrItem ?? createEmptyQrItem(qItem);
58
61
 
59
62
  // Init input value
@@ -62,8 +65,8 @@ function ChoiceAutocompleteItem(props: ChoiceAutocompleteItemProps) {
62
65
  valueCoding = qrChoice.answer[0].valueCoding;
63
66
  }
64
67
 
65
- // Get additional rendering extensions
66
- const { displayUnit, displayPrompt, displayInstructions, readOnly, entryFormat } =
68
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
69
+ const { displayUnit, displayPrompt, displayInstructions, entryFormat } =
67
70
  useRenderingExtensions(qItem);
68
71
 
69
72
  const maxList = 10;
@@ -166,11 +169,11 @@ function ChoiceAutocompleteItem(props: ChoiceAutocompleteItemProps) {
166
169
  <FullWidthFormComponentBox>
167
170
  <Grid container columnSpacing={6}>
168
171
  <Grid item xs={5}>
169
- <LabelWrapper qItem={qItem} />
172
+ <LabelWrapper qItem={qItem} readOnly={readOnly} />
170
173
  </Grid>
171
174
  <Grid item xs={7}>
172
175
  {choiceAutocomplete}
173
- <DisplayInstructions displayInstructions={displayInstructions} />
176
+ <DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
174
177
  </Grid>
175
178
  </Grid>
176
179
  </FullWidthFormComponentBox>
@@ -25,31 +25,42 @@ import { FullWidthFormComponentBox } from '../../Box.styles';
25
25
  import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
26
26
  import type {
27
27
  PropsWithIsRepeatedAttribute,
28
+ PropsWithParentIsReadOnlyAttribute,
28
29
  PropsWithQrItemChangeHandler,
29
- PropsWithTextShownAttribute
30
+ PropsWithShowMinimalViewAttribute
30
31
  } from '../../../interfaces/renderProps.interface';
31
32
  import DisplayInstructions from '../DisplayItem/DisplayInstructions';
32
33
  import LabelWrapper from '../ItemParts/ItemLabelWrapper';
33
34
  import ChoiceCheckboxAnswerValueSetFields from './ChoiceCheckboxAnswerOptionFields';
35
+ import useReadOnly from '../../../hooks/useReadOnly';
34
36
 
35
37
  interface ChoiceCheckboxAnswerOptionItemProps
36
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
38
+ extends PropsWithQrItemChangeHandler,
37
39
  PropsWithIsRepeatedAttribute,
38
- PropsWithTextShownAttribute {
40
+ PropsWithShowMinimalViewAttribute,
41
+ PropsWithParentIsReadOnlyAttribute {
39
42
  qItem: QuestionnaireItem;
40
- qrItem: QuestionnaireResponseItem;
43
+ qrItem: QuestionnaireResponseItem | null;
41
44
  orientation: ChoiceItemOrientation;
42
45
  }
43
46
 
44
47
  function ChoiceCheckboxAnswerOptionItem(props: ChoiceCheckboxAnswerOptionItemProps) {
45
- const { qItem, qrItem, isRepeated, onQrItemChange, orientation, textShown = true } = props;
48
+ const {
49
+ qItem,
50
+ qrItem,
51
+ orientation,
52
+ isRepeated,
53
+ showMinimalView = false,
54
+ parentIsReadOnly,
55
+ onQrItemChange
56
+ } = props;
46
57
 
47
58
  // Init input value
48
59
  const qrChoiceCheckbox = qrItem ?? createEmptyQrItem(qItem);
49
60
  const answers = qrChoiceCheckbox.answer ? qrChoiceCheckbox.answer : [];
50
61
 
51
- // Get additional rendering extensions
52
- const { displayInstructions, readOnly } = useRenderingExtensions(qItem);
62
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
63
+ const { displayInstructions } = useRenderingExtensions(qItem);
53
64
 
54
65
  // Event handlers
55
66
  function handleCheckedChange(changedValue: string) {
@@ -69,39 +80,39 @@ function ChoiceCheckboxAnswerOptionItem(props: ChoiceCheckboxAnswerOptionItemPro
69
80
  }
70
81
  }
71
82
 
72
- if (textShown) {
83
+ if (showMinimalView) {
73
84
  return (
74
- <FullWidthFormComponentBox data-test="q-item-choice-checkbox-answer-option-box">
75
- <Grid container columnSpacing={6}>
76
- <Grid item xs={5}>
77
- <LabelWrapper qItem={qItem} />
78
- </Grid>
79
- <Grid item xs={7}>
80
- <ChoiceCheckboxAnswerValueSetFields
81
- qItem={qItem}
82
- answers={answers}
83
- orientation={orientation}
84
- readOnly={readOnly}
85
- onCheckedChange={handleCheckedChange}
86
- />
87
- <DisplayInstructions displayInstructions={displayInstructions} />
88
- </Grid>
89
- </Grid>
90
- </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
+ </>
91
95
  );
92
96
  }
93
97
 
94
98
  return (
95
- <>
96
- <ChoiceCheckboxAnswerValueSetFields
97
- qItem={qItem}
98
- answers={answers}
99
- orientation={orientation}
100
- readOnly={readOnly}
101
- onCheckedChange={handleCheckedChange}
102
- />
103
- <DisplayInstructions displayInstructions={displayInstructions} />
104
- </>
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>
105
116
  );
106
117
  }
107
118
 
@@ -26,32 +26,43 @@ import { FullWidthFormComponentBox } from '../../Box.styles';
26
26
  import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
27
27
  import type {
28
28
  PropsWithIsRepeatedAttribute,
29
+ PropsWithParentIsReadOnlyAttribute,
29
30
  PropsWithQrItemChangeHandler,
30
- PropsWithTextShownAttribute
31
+ PropsWithShowMinimalViewAttribute
31
32
  } from '../../../interfaces/renderProps.interface';
32
33
  import DisplayInstructions from '../DisplayItem/DisplayInstructions';
33
34
  import LabelWrapper from '../ItemParts/ItemLabelWrapper';
34
35
  import ChoiceCheckboxAnswerValueSetFields from './ChoiceCheckboxAnswerValueSetFields';
36
+ import useReadOnly from '../../../hooks/useReadOnly';
35
37
 
36
38
  interface ChoiceCheckboxAnswerValueSetItemProps
37
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
39
+ extends PropsWithQrItemChangeHandler,
38
40
  PropsWithIsRepeatedAttribute,
39
- PropsWithTextShownAttribute {
41
+ PropsWithShowMinimalViewAttribute,
42
+ PropsWithParentIsReadOnlyAttribute {
40
43
  qItem: QuestionnaireItem;
41
- qrItem: QuestionnaireResponseItem;
44
+ qrItem: QuestionnaireResponseItem | null;
42
45
  orientation: ChoiceItemOrientation;
43
46
  showText?: boolean;
44
47
  }
45
48
 
46
49
  function ChoiceCheckboxAnswerValueSetItem(props: ChoiceCheckboxAnswerValueSetItemProps) {
47
- const { qItem, qrItem, orientation, isRepeated, textShown = true, onQrItemChange } = props;
50
+ const {
51
+ qItem,
52
+ qrItem,
53
+ orientation,
54
+ isRepeated,
55
+ showMinimalView = false,
56
+ parentIsReadOnly,
57
+ onQrItemChange
58
+ } = props;
48
59
 
49
60
  // Init input value
50
61
  const qrChoiceCheckbox = qrItem ?? createEmptyQrItem(qItem);
51
62
  const answers = qrChoiceCheckbox.answer ? qrChoiceCheckbox.answer : [];
52
63
 
53
- // Get additional rendering extensions
54
- const { displayInstructions, readOnly } = useRenderingExtensions(qItem);
64
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
65
+ const { displayInstructions } = useRenderingExtensions(qItem);
55
66
 
56
67
  // Get codings/options from valueSet
57
68
  const { codings, serverError } = useValueSetCodings(qItem);
@@ -73,41 +84,41 @@ function ChoiceCheckboxAnswerValueSetItem(props: ChoiceCheckboxAnswerValueSetIte
73
84
  }
74
85
  }
75
86
 
76
- if (textShown) {
87
+ if (showMinimalView) {
77
88
  return (
78
- <FullWidthFormComponentBox data-test="q-item-choice-checkbox-answer-value-set-box">
79
- <Grid container columnSpacing={6}>
80
- <Grid item xs={5}>
81
- <LabelWrapper qItem={qItem} />
82
- </Grid>
83
- <Grid item xs={7}>
84
- <ChoiceCheckboxAnswerValueSetFields
85
- codings={codings}
86
- answers={answers}
87
- orientation={orientation}
88
- readOnly={readOnly}
89
- serverError={serverError}
90
- onCheckedChange={handleCheckedChange}
91
- />
92
- <DisplayInstructions displayInstructions={displayInstructions} />
93
- </Grid>
94
- </Grid>
95
- </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
+ </>
96
100
  );
97
101
  }
98
102
 
99
103
  return (
100
- <>
101
- <ChoiceCheckboxAnswerValueSetFields
102
- codings={codings}
103
- answers={answers}
104
- orientation={orientation}
105
- readOnly={readOnly}
106
- serverError={serverError}
107
- onCheckedChange={handleCheckedChange}
108
- />
109
- <DisplayInstructions displayInstructions={displayInstructions} />
110
- </>
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>
111
122
  );
112
123
  }
113
124
 
@@ -29,21 +29,24 @@ 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
36
 
36
37
  interface ChoiceItemSwitcherProps
37
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
38
+ extends PropsWithQrItemChangeHandler,
38
39
  PropsWithIsRepeatedAttribute,
39
40
  PropsWithIsTabledAttribute,
40
- PropsWithTextShownAttribute {
41
+ PropsWithShowMinimalViewAttribute,
42
+ PropsWithParentIsReadOnlyAttribute {
41
43
  qItem: QuestionnaireItem;
42
- qrItem: QuestionnaireResponseItem;
44
+ qrItem: QuestionnaireResponseItem | null;
43
45
  }
44
46
 
45
47
  function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
46
- const { qItem, qrItem, isRepeated, isTabled, textShown, onQrItemChange } = props;
48
+ const { qItem, qrItem, isRepeated, isTabled, showMinimalView, parentIsReadOnly, onQrItemChange } =
49
+ props;
47
50
 
48
51
  const orientation = getChoiceOrientation(qItem);
49
52
  const choiceControlType = getChoiceControlType(qItem);
@@ -55,9 +58,10 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
55
58
  <ChoiceRadioAnswerOptionItem
56
59
  qItem={qItem}
57
60
  qrItem={qrItem}
61
+ orientation={orientation}
58
62
  isRepeated={isRepeated}
63
+ parentIsReadOnly={parentIsReadOnly}
59
64
  onQrItemChange={onQrItemChange}
60
- orientation={orientation}
61
65
  />
62
66
  );
63
67
  } else {
@@ -65,9 +69,10 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
65
69
  <ChoiceRadioAnswerValueSetItem
66
70
  qItem={qItem}
67
71
  qrItem={qrItem}
72
+ orientation={orientation}
68
73
  isRepeated={isRepeated}
74
+ parentIsReadOnly={parentIsReadOnly}
69
75
  onQrItemChange={onQrItemChange}
70
- orientation={orientation}
71
76
  />
72
77
  );
73
78
  }
@@ -77,10 +82,11 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
77
82
  <ChoiceCheckboxAnswerOptionItem
78
83
  qItem={qItem}
79
84
  qrItem={qrItem}
85
+ orientation={orientation}
80
86
  isRepeated={qItem.repeats ?? false}
87
+ showMinimalView={showMinimalView}
88
+ parentIsReadOnly={parentIsReadOnly}
81
89
  onQrItemChange={onQrItemChange}
82
- orientation={orientation}
83
- textShown={textShown}
84
90
  />
85
91
  );
86
92
  } else {
@@ -89,9 +95,10 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
89
95
  qItem={qItem}
90
96
  qrItem={qrItem}
91
97
  isRepeated={qItem.repeats ?? false}
92
- onQrItemChange={onQrItemChange}
93
98
  orientation={orientation}
94
- textShown={textShown}
99
+ showMinimalView={showMinimalView}
100
+ parentIsReadOnly={parentIsReadOnly}
101
+ onQrItemChange={onQrItemChange}
95
102
  />
96
103
  );
97
104
  }
@@ -102,6 +109,7 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
102
109
  qrItem={qrItem}
103
110
  isRepeated={isRepeated}
104
111
  isTabled={isTabled}
112
+ parentIsReadOnly={parentIsReadOnly}
105
113
  onQrItemChange={onQrItemChange}
106
114
  />
107
115
  );
@@ -113,6 +121,7 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
113
121
  qrItem={qrItem}
114
122
  isRepeated={isRepeated}
115
123
  isTabled={isTabled}
124
+ parentIsReadOnly={parentIsReadOnly}
116
125
  onQrItemChange={onQrItemChange}
117
126
  />
118
127
  );
@@ -123,6 +132,7 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
123
132
  qrItem={qrItem}
124
133
  isRepeated={isRepeated}
125
134
  isTabled={isTabled}
135
+ parentIsReadOnly={parentIsReadOnly}
126
136
  onQrItemChange={onQrItemChange}
127
137
  />
128
138
  );
@@ -25,29 +25,32 @@ import { FullWidthFormComponentBox } from '../../Box.styles';
25
25
  import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
26
26
  import type {
27
27
  PropsWithIsRepeatedAttribute,
28
+ PropsWithParentIsReadOnlyAttribute,
28
29
  PropsWithQrItemChangeHandler
29
30
  } from '../../../interfaces/renderProps.interface';
30
31
  import DisplayInstructions from '../DisplayItem/DisplayInstructions';
31
32
  import LabelWrapper from '../ItemParts/ItemLabelWrapper';
32
33
  import ChoiceRadioAnswerOptionFields from './ChoiceRadioAnswerOptionFields';
34
+ import useReadOnly from '../../../hooks/useReadOnly';
33
35
 
34
36
  interface ChoiceRadioAnswerOptionItemProps
35
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
36
- PropsWithIsRepeatedAttribute {
37
+ extends PropsWithQrItemChangeHandler,
38
+ PropsWithIsRepeatedAttribute,
39
+ PropsWithParentIsReadOnlyAttribute {
37
40
  qItem: QuestionnaireItem;
38
- qrItem: QuestionnaireResponseItem;
41
+ qrItem: QuestionnaireResponseItem | null;
39
42
  orientation: ChoiceItemOrientation;
40
43
  }
41
44
 
42
45
  function ChoiceRadioAnswerOptionItem(props: ChoiceRadioAnswerOptionItemProps) {
43
- const { qItem, qrItem, isRepeated, onQrItemChange, orientation } = props;
46
+ const { qItem, qrItem, orientation, isRepeated, parentIsReadOnly, onQrItemChange } = props;
44
47
 
45
48
  // Init input value
46
49
  const qrChoiceRadio = qrItem ?? createEmptyQrItem(qItem);
47
50
  const valueRadio = getQrChoiceValue(qrChoiceRadio);
48
51
 
49
- // Get additional rendering extensions
50
- const { displayInstructions, readOnly } = useRenderingExtensions(qItem);
52
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
53
+ const { displayInstructions } = useRenderingExtensions(qItem);
51
54
 
52
55
  // Event handlers
53
56
  function handleChange(newValue: string) {
@@ -59,8 +62,6 @@ function ChoiceRadioAnswerOptionItem(props: ChoiceRadioAnswerOptionItemProps) {
59
62
  }
60
63
  }
61
64
 
62
- // TODO need to put in showText? in repopulate
63
-
64
65
  if (isRepeated) {
65
66
  return (
66
67
  <ChoiceRadioAnswerOptionFields
@@ -77,7 +78,7 @@ function ChoiceRadioAnswerOptionItem(props: ChoiceRadioAnswerOptionItemProps) {
77
78
  <FullWidthFormComponentBox data-test="q-item-choice-radio-answer-option-box">
78
79
  <Grid container columnSpacing={6}>
79
80
  <Grid item xs={5}>
80
- <LabelWrapper qItem={qItem} />
81
+ <LabelWrapper qItem={qItem} readOnly={readOnly} />
81
82
  </Grid>
82
83
  <Grid item xs={7}>
83
84
  <ChoiceRadioAnswerOptionFields
@@ -87,7 +88,7 @@ function ChoiceRadioAnswerOptionItem(props: ChoiceRadioAnswerOptionItemProps) {
87
88
  readOnly={readOnly}
88
89
  onCheckedChange={handleChange}
89
90
  />
90
- <DisplayInstructions displayInstructions={displayInstructions} />
91
+ <DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
91
92
  </Grid>
92
93
  </Grid>
93
94
  </FullWidthFormComponentBox>
@@ -26,22 +26,28 @@ import useValueSetCodings from '../../../hooks/useValueSetCodings';
26
26
  import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
27
27
  import type {
28
28
  PropsWithIsRepeatedAttribute,
29
+ PropsWithParentIsReadOnlyAttribute,
29
30
  PropsWithQrItemChangeHandler
30
31
  } from '../../../interfaces/renderProps.interface';
31
32
  import DisplayInstructions from '../DisplayItem/DisplayInstructions';
32
33
  import LabelWrapper from '../ItemParts/ItemLabelWrapper';
33
34
  import ChoiceRadioAnswerValueSetFields from './ChoiceRadioAnswerValueSetFields';
35
+ import useReadOnly from '../../../hooks/useReadOnly';
34
36
 
35
37
  interface ChoiceRadioAnswerValueSetItemProps
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
  orientation: ChoiceItemOrientation;
41
44
  }
42
45
 
43
46
  function ChoiceRadioAnswerValueSetItem(props: ChoiceRadioAnswerValueSetItemProps) {
44
- const { qItem, qrItem, isRepeated, onQrItemChange, orientation } = props;
47
+ const { qItem, qrItem, orientation, isRepeated, parentIsReadOnly, onQrItemChange } = props;
48
+
49
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
50
+ const { displayInstructions } = useRenderingExtensions(qItem);
45
51
 
46
52
  // Init input value
47
53
  const qrChoiceRadio = qrItem ?? createEmptyQrItem(qItem);
@@ -51,9 +57,6 @@ function ChoiceRadioAnswerValueSetItem(props: ChoiceRadioAnswerValueSetItemProps
51
57
  valueRadio = qrChoiceRadio.answer[0].valueCoding?.code ?? null;
52
58
  }
53
59
 
54
- // Get additional rendering extensions
55
- const { displayInstructions, readOnly } = useRenderingExtensions(qItem);
56
-
57
60
  // Get codings/options from valueSet
58
61
  const { codings, serverError } = useValueSetCodings(qItem);
59
62
 
@@ -87,7 +90,7 @@ function ChoiceRadioAnswerValueSetItem(props: ChoiceRadioAnswerValueSetItemProps
87
90
  <FullWidthFormComponentBox data-test="q-item-choice-radio-answer-value-set-box">
88
91
  <Grid container columnSpacing={6}>
89
92
  <Grid item xs={5}>
90
- <LabelWrapper qItem={qItem} />
93
+ <LabelWrapper qItem={qItem} readOnly={readOnly} />
91
94
  </Grid>
92
95
  <Grid item xs={7}>
93
96
  <ChoiceRadioAnswerValueSetFields
@@ -99,7 +102,7 @@ function ChoiceRadioAnswerValueSetItem(props: ChoiceRadioAnswerValueSetItemProps
99
102
  serverError={serverError}
100
103
  onCheckedChange={handleChange}
101
104
  />
102
- <DisplayInstructions displayInstructions={displayInstructions} />
105
+ <DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
103
106
  </Grid>
104
107
  </Grid>
105
108
  </FullWidthFormComponentBox>
@@ -26,13 +26,14 @@ import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps
26
26
  interface ChoiceSelectAnswerOptionFieldsProps extends PropsWithIsTabledAttribute {
27
27
  qItem: QuestionnaireItem;
28
28
  valueSelect: string;
29
+ readOnly: boolean;
29
30
  onSelectChange: (newValue: string) => void;
30
31
  }
31
32
 
32
33
  function ChoiceSelectAnswerOptionFields(props: ChoiceSelectAnswerOptionFieldsProps) {
33
- const { qItem, valueSelect, isTabled, onSelectChange } = props;
34
+ const { qItem, valueSelect, readOnly, isTabled, onSelectChange } = props;
34
35
 
35
- const { displayUnit, displayPrompt, readOnly, entryFormat } = useRenderingExtensions(qItem);
36
+ const { displayUnit, displayPrompt, entryFormat } = useRenderingExtensions(qItem);
36
37
 
37
38
  return (
38
39
  <Select
@@ -26,22 +26,28 @@ import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
26
26
  import type {
27
27
  PropsWithIsRepeatedAttribute,
28
28
  PropsWithIsTabledAttribute,
29
+ PropsWithParentIsReadOnlyAttribute,
29
30
  PropsWithQrItemChangeHandler
30
31
  } from '../../../interfaces/renderProps.interface';
31
32
  import DisplayInstructions from '../DisplayItem/DisplayInstructions';
32
33
  import LabelWrapper from '../ItemParts/ItemLabelWrapper';
33
34
  import ChoiceSelectAnswerOptionFields from './ChoiceSelectAnswerOptionFields';
35
+ import useReadOnly from '../../../hooks/useReadOnly';
34
36
 
35
37
  interface ChoiceSelectAnswerOptionItemProps
36
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
38
+ extends PropsWithQrItemChangeHandler,
37
39
  PropsWithIsRepeatedAttribute,
38
- PropsWithIsTabledAttribute {
40
+ PropsWithIsTabledAttribute,
41
+ PropsWithParentIsReadOnlyAttribute {
39
42
  qItem: QuestionnaireItem;
40
- qrItem: QuestionnaireResponseItem;
43
+ qrItem: QuestionnaireResponseItem | null;
41
44
  }
42
45
 
43
46
  function ChoiceSelectAnswerOptionItem(props: ChoiceSelectAnswerOptionItemProps) {
44
- const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
47
+ const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
48
+
49
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
50
+ const { displayInstructions } = useRenderingExtensions(qItem);
45
51
 
46
52
  // Init input value
47
53
  const qrChoiceSelect = qrItem ?? createEmptyQrItem(qItem);
@@ -50,9 +56,6 @@ function ChoiceSelectAnswerOptionItem(props: ChoiceSelectAnswerOptionItemProps)
50
56
  valueSelect = '';
51
57
  }
52
58
 
53
- // Get additional rendering extensions
54
- const { displayInstructions } = useRenderingExtensions(qItem);
55
-
56
59
  // Event handlers
57
60
  function handleChange(newValue: string) {
58
61
  if (qItem.answerOption) {
@@ -70,8 +73,9 @@ function ChoiceSelectAnswerOptionItem(props: ChoiceSelectAnswerOptionItemProps)
70
73
  <ChoiceSelectAnswerOptionFields
71
74
  qItem={qItem}
72
75
  valueSelect={valueSelect}
73
- onSelectChange={handleChange}
76
+ readOnly={readOnly}
74
77
  isTabled={isTabled}
78
+ onSelectChange={handleChange}
75
79
  />
76
80
  );
77
81
  }
@@ -80,16 +84,17 @@ function ChoiceSelectAnswerOptionItem(props: ChoiceSelectAnswerOptionItemProps)
80
84
  <FullWidthFormComponentBox data-test="q-item-choice-select-answer-option-box">
81
85
  <Grid container columnSpacing={6}>
82
86
  <Grid item xs={5}>
83
- <LabelWrapper qItem={qItem} />
87
+ <LabelWrapper qItem={qItem} readOnly={readOnly} />
84
88
  </Grid>
85
89
  <Grid item xs={7}>
86
90
  <ChoiceSelectAnswerOptionFields
87
91
  qItem={qItem}
88
92
  valueSelect={valueSelect}
89
- onSelectChange={handleChange}
93
+ readOnly={readOnly}
90
94
  isTabled={isTabled}
95
+ onSelectChange={handleChange}
91
96
  />
92
- <DisplayInstructions displayInstructions={displayInstructions} />
97
+ <DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
93
98
  </Grid>
94
99
  </Grid>
95
100
  </FullWidthFormComponentBox>