@aehrc/smart-forms-renderer 0.44.3 → 1.0.0-alpha.10

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 (490) hide show
  1. package/.storybook/main.ts +6 -1
  2. package/lib/components/FormComponents/AttachmentItem/AttachmentField.js +3 -1
  3. package/lib/components/FormComponents/AttachmentItem/AttachmentField.js.map +1 -1
  4. package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.js +2 -5
  5. package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.js.map +1 -1
  6. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.js +3 -1
  7. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.js.map +1 -1
  8. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.styles.d.ts +1 -0
  9. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.styles.js +3 -4
  10. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.styles.js.map +1 -1
  11. package/lib/components/FormComponents/AttachmentItem/AttachmentItem.d.ts +2 -2
  12. package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js.map +1 -1
  13. package/lib/components/FormComponents/AttachmentItem/AttachmentUrlField.js +3 -1
  14. package/lib/components/FormComponents/AttachmentItem/AttachmentUrlField.js.map +1 -1
  15. package/lib/components/FormComponents/BooleanItem/BooleanField.js +27 -17
  16. package/lib/components/FormComponents/BooleanItem/BooleanField.js.map +1 -1
  17. package/lib/components/FormComponents/BooleanItem/BooleanItem.d.ts +2 -2
  18. package/lib/components/FormComponents/BooleanItem/BooleanItem.js +2 -2
  19. package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
  20. package/lib/components/FormComponents/BooleanItem/index.d.ts +1 -0
  21. package/lib/components/FormComponents/BooleanItem/index.js +18 -0
  22. package/lib/components/FormComponents/BooleanItem/index.js.map +1 -0
  23. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.d.ts +2 -2
  24. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js +8 -6
  25. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js.map +1 -1
  26. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.d.ts +2 -2
  27. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +4 -4
  28. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
  29. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.d.ts +2 -2
  30. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +4 -5
  31. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
  32. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.d.ts +2 -2
  33. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +4 -5
  34. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  35. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.d.ts +2 -2
  36. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js +8 -8
  37. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js.map +1 -1
  38. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js +7 -13
  39. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js.map +1 -1
  40. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.d.ts +2 -2
  41. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +2 -2
  42. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
  43. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js +2 -2
  44. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js.map +1 -1
  45. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js +7 -13
  46. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js.map +1 -1
  47. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.d.ts +2 -2
  48. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +2 -2
  49. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
  50. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.d.ts +1 -0
  51. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.js +3 -3
  52. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.js.map +1 -1
  53. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.d.ts +2 -2
  54. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +8 -6
  55. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -1
  56. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.d.ts +2 -2
  57. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +2 -2
  58. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
  59. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.d.ts +2 -2
  60. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js +4 -4
  61. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js.map +1 -1
  62. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.d.ts +2 -2
  63. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +7 -6
  64. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js.map +1 -1
  65. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.d.ts +2 -2
  66. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +4 -4
  67. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
  68. package/lib/components/FormComponents/ChoiceItems/index.d.ts +1 -0
  69. package/lib/components/FormComponents/ChoiceItems/index.js +18 -0
  70. package/lib/components/FormComponents/ChoiceItems/index.js.map +1 -0
  71. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.js +3 -1
  72. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.js.map +1 -1
  73. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.d.ts +2 -2
  74. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js +4 -5
  75. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js.map +1 -1
  76. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.d.ts +2 -2
  77. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js +4 -5
  78. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js.map +1 -1
  79. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.js +3 -2
  80. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.js.map +1 -1
  81. package/lib/components/FormComponents/DecimalItem/DecimalField.js +5 -2
  82. package/lib/components/FormComponents/DecimalItem/DecimalField.js.map +1 -1
  83. package/lib/components/FormComponents/DecimalItem/DecimalItem.d.ts +2 -2
  84. package/lib/components/FormComponents/DecimalItem/DecimalItem.js +4 -5
  85. package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
  86. package/lib/components/FormComponents/DisplayItem/DisplayItem.d.ts +2 -1
  87. package/lib/components/FormComponents/DisplayItem/DisplayItem.js +13 -2
  88. package/lib/components/FormComponents/DisplayItem/DisplayItem.js.map +1 -1
  89. package/lib/components/FormComponents/GroupItem/GroupAccordion.styles.d.ts +1 -1
  90. package/lib/components/FormComponents/GroupItem/GroupHeading.js +10 -2
  91. package/lib/components/FormComponents/GroupItem/GroupHeading.js.map +1 -1
  92. package/lib/components/FormComponents/GroupItem/GroupItem.d.ts +1 -0
  93. package/lib/components/FormComponents/GroupItem/GroupItem.js +2 -2
  94. package/lib/components/FormComponents/GroupItem/GroupItem.js.map +1 -1
  95. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +10 -0
  96. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
  97. package/lib/components/FormComponents/GroupItem/GroupItemView.d.ts +1 -0
  98. package/lib/components/FormComponents/GroupItem/GroupItemView.js +12 -2
  99. package/lib/components/FormComponents/GroupItem/GroupItemView.js.map +1 -1
  100. package/lib/components/FormComponents/GroupItem/PageButtonWrapper.js +7 -0
  101. package/lib/components/FormComponents/GroupItem/PageButtonWrapper.js.map +1 -1
  102. package/lib/components/FormComponents/GroupItem/index.d.ts +1 -0
  103. package/lib/components/FormComponents/GroupItem/index.js +18 -0
  104. package/lib/components/FormComponents/GroupItem/index.js.map +1 -0
  105. package/lib/components/FormComponents/IntegerItem/IntegerField.js +5 -2
  106. package/lib/components/FormComponents/IntegerItem/IntegerField.js.map +1 -1
  107. package/lib/components/FormComponents/IntegerItem/IntegerItem.d.ts +2 -2
  108. package/lib/components/FormComponents/IntegerItem/IntegerItem.js +4 -5
  109. package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
  110. package/lib/components/FormComponents/ItemParts/CheckboxSingle.js +2 -2
  111. package/lib/components/FormComponents/ItemParts/CheckboxSingle.js.map +1 -1
  112. package/lib/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.js +4 -2
  113. package/lib/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.js.map +1 -1
  114. package/lib/components/FormComponents/ItemParts/ClearInputButton.d.ts +8 -0
  115. package/lib/components/FormComponents/ItemParts/ClearInputButton.js +33 -0
  116. package/lib/components/FormComponents/ItemParts/ClearInputButton.js.map +1 -0
  117. package/lib/components/FormComponents/ItemParts/ContextDisplayItem.js +1 -1
  118. package/lib/components/FormComponents/ItemParts/ContextDisplayItem.js.map +1 -1
  119. package/lib/components/FormComponents/ItemParts/FlyoverItem.d.ts +2 -1
  120. package/lib/components/FormComponents/ItemParts/FlyoverItem.js +2 -2
  121. package/lib/components/FormComponents/ItemParts/FlyoverItem.js.map +1 -1
  122. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.d.ts +2 -1
  123. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js +9 -8
  124. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js.map +1 -1
  125. package/lib/components/FormComponents/ItemParts/ItemLabelText.d.ts +1 -1
  126. package/lib/components/FormComponents/ItemParts/ItemLabelText.js +31 -13
  127. package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -1
  128. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +7 -21
  129. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -1
  130. package/lib/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.js +4 -2
  131. package/lib/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.js.map +1 -1
  132. package/lib/components/FormComponents/ItemParts/RadioOptionList.d.ts +1 -0
  133. package/lib/components/FormComponents/ItemParts/RadioOptionList.js +4 -4
  134. package/lib/components/FormComponents/ItemParts/RadioOptionList.js.map +1 -1
  135. package/lib/components/FormComponents/ItemParts/RequiredAsterisk.d.ts +7 -0
  136. package/lib/components/FormComponents/ItemParts/RequiredAsterisk.js +35 -0
  137. package/lib/components/FormComponents/ItemParts/RequiredAsterisk.js.map +1 -0
  138. package/lib/components/FormComponents/ItemParts/index.d.ts +1 -0
  139. package/lib/components/FormComponents/ItemParts/index.js +1 -0
  140. package/lib/components/FormComponents/ItemParts/index.js.map +1 -1
  141. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.d.ts +2 -2
  142. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js +8 -6
  143. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js.map +1 -1
  144. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.d.ts +2 -2
  145. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +4 -4
  146. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
  147. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.d.ts +2 -2
  148. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +4 -5
  149. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
  150. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.d.ts +2 -2
  151. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js +4 -5
  152. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  153. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.d.ts +2 -2
  154. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js +8 -8
  155. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js.map +1 -1
  156. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js +4 -2
  157. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js.map +1 -1
  158. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.d.ts +2 -2
  159. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +2 -2
  160. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
  161. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.js +4 -2
  162. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.js.map +1 -1
  163. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.d.ts +2 -2
  164. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js +2 -2
  165. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js.map +1 -1
  166. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.d.ts +2 -2
  167. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js +8 -6
  168. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js.map +1 -1
  169. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.d.ts +2 -2
  170. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +4 -4
  171. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -1
  172. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.d.ts +2 -2
  173. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js +7 -6
  174. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js.map +1 -1
  175. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.d.ts +2 -2
  176. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +4 -4
  177. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -1
  178. package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.d.ts +1 -1
  179. package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.js +5 -0
  180. package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.js.map +1 -1
  181. package/lib/components/FormComponents/QuantityItem/QuantityField.js +5 -2
  182. package/lib/components/FormComponents/QuantityItem/QuantityField.js.map +1 -1
  183. package/lib/components/FormComponents/QuantityItem/QuantityItem.d.ts +2 -2
  184. package/lib/components/FormComponents/QuantityItem/QuantityItem.js +15 -11
  185. package/lib/components/FormComponents/QuantityItem/QuantityItem.js.map +1 -1
  186. package/lib/components/FormComponents/QuantityItem/QuantityUnitField.js +4 -2
  187. package/lib/components/FormComponents/QuantityItem/QuantityUnitField.js.map +1 -1
  188. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js +1 -1
  189. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js.map +1 -1
  190. package/lib/components/FormComponents/RepeatItem/RepeatItem.js +3 -3
  191. package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
  192. package/lib/components/FormComponents/SingleItem/NestedSingleItemAccordion.styles.d.ts +1 -1
  193. package/lib/components/FormComponents/SingleItem/SingleItem.js +1 -1
  194. package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
  195. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.d.ts +2 -2
  196. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js +26 -18
  197. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -1
  198. package/lib/components/FormComponents/SingleItem/SingleItemView.js +5 -4
  199. package/lib/components/FormComponents/SingleItem/SingleItemView.js.map +1 -1
  200. package/lib/components/FormComponents/SingleItem/SingleNestedItems.js +1 -0
  201. package/lib/components/FormComponents/SingleItem/SingleNestedItems.js.map +1 -1
  202. package/lib/components/FormComponents/SliderItem/SliderField.js +3 -2
  203. package/lib/components/FormComponents/SliderItem/SliderField.js.map +1 -1
  204. package/lib/components/FormComponents/SliderItem/SliderItem.d.ts +2 -2
  205. package/lib/components/FormComponents/SliderItem/SliderItem.js +3 -3
  206. package/lib/components/FormComponents/SliderItem/SliderItem.js.map +1 -1
  207. package/lib/components/FormComponents/StringItem/StringField.js +5 -2
  208. package/lib/components/FormComponents/StringItem/StringField.js.map +1 -1
  209. package/lib/components/FormComponents/StringItem/StringItem.d.ts +2 -2
  210. package/lib/components/FormComponents/StringItem/StringItem.js +4 -5
  211. package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
  212. package/lib/components/FormComponents/TextItem/TextField.js +3 -2
  213. package/lib/components/FormComponents/TextItem/TextField.js.map +1 -1
  214. package/lib/components/FormComponents/TextItem/TextItem.d.ts +2 -2
  215. package/lib/components/FormComponents/TextItem/TextItem.js +4 -5
  216. package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
  217. package/lib/components/FormComponents/Textfield.styles.d.ts +1 -1
  218. package/lib/components/FormComponents/Textfield.styles.js +5 -6
  219. package/lib/components/FormComponents/Textfield.styles.js.map +1 -1
  220. package/lib/components/FormComponents/TimeItem/TimeField.js +3 -2
  221. package/lib/components/FormComponents/TimeItem/TimeField.js.map +1 -1
  222. package/lib/components/FormComponents/TimeItem/TimeItem.d.ts +2 -2
  223. package/lib/components/FormComponents/TimeItem/TimeItem.js +4 -5
  224. package/lib/components/FormComponents/TimeItem/TimeItem.js.map +1 -1
  225. package/lib/components/FormComponents/UrlItem/UrlField.js +7 -1
  226. package/lib/components/FormComponents/UrlItem/UrlField.js.map +1 -1
  227. package/lib/components/FormComponents/UrlItem/UrlItem.d.ts +2 -2
  228. package/lib/components/FormComponents/UrlItem/UrlItem.js +4 -5
  229. package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -1
  230. package/lib/components/FormComponents/index.d.ts +6 -0
  231. package/lib/components/FormComponents/index.js +7 -0
  232. package/lib/components/FormComponents/index.js.map +1 -1
  233. package/lib/components/Renderer/BaseRenderer.js +5 -5
  234. package/lib/components/Renderer/BaseRenderer.js.map +1 -1
  235. package/lib/components/Renderer/FormTopLevelItem.js +0 -7
  236. package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
  237. package/lib/components/index.d.ts +2 -1
  238. package/lib/components/index.js +3 -1
  239. package/lib/components/index.js.map +1 -1
  240. package/lib/hooks/index.d.ts +7 -0
  241. package/lib/hooks/index.js +8 -0
  242. package/lib/hooks/index.js.map +1 -1
  243. package/lib/hooks/useBuildForm.d.ts +8 -1
  244. package/lib/hooks/useBuildForm.js +23 -3
  245. package/lib/hooks/useBuildForm.js.map +1 -1
  246. package/lib/hooks/useCodingCalculatedExpression.d.ts +2 -1
  247. package/lib/hooks/useCodingCalculatedExpression.js +1 -1
  248. package/lib/hooks/useCodingCalculatedExpression.js.map +1 -1
  249. package/lib/hooks/useHidden.js +8 -0
  250. package/lib/hooks/useHidden.js.map +1 -1
  251. package/lib/hooks/useParseXhtml.d.ts +3 -0
  252. package/lib/hooks/useParseXhtml.js +60 -0
  253. package/lib/hooks/useParseXhtml.js.map +1 -0
  254. package/lib/hooks/useReadOnly.d.ts +1 -1
  255. package/lib/hooks/useReadOnly.js +22 -1
  256. package/lib/hooks/useReadOnly.js.map +1 -1
  257. package/lib/hooks/useRenderingExtensions.d.ts +3 -2
  258. package/lib/hooks/useValidationFeedback.js +5 -3
  259. package/lib/hooks/useValidationFeedback.js.map +1 -1
  260. package/lib/hooks/useValueSetCodings.js +7 -1
  261. package/lib/hooks/useValueSetCodings.js.map +1 -1
  262. package/lib/hooks/useXhtmlParse.d.ts +4 -0
  263. package/lib/hooks/useXhtmlParse.js +63 -0
  264. package/lib/hooks/useXhtmlParse.js.map +1 -0
  265. package/lib/index.d.ts +6 -6
  266. package/lib/index.js +4 -4
  267. package/lib/index.js.map +1 -1
  268. package/lib/interfaces/index.d.ts +2 -0
  269. package/lib/interfaces/overrideComponent.interface.d.ts +12 -3
  270. package/lib/interfaces/qItemOverrideComponent.interface.d.ts +7 -6
  271. package/lib/interfaces/renderProps.interface.d.ts +4 -0
  272. package/lib/stores/index.d.ts +2 -0
  273. package/lib/stores/index.js +1 -0
  274. package/lib/stores/index.js.map +1 -1
  275. package/lib/stores/questionnaireStore.d.ts +17 -9
  276. package/lib/stores/questionnaireStore.js +47 -22
  277. package/lib/stores/questionnaireStore.js.map +1 -1
  278. package/lib/stores/rendererStylingStore.d.ts +35 -3
  279. package/lib/stores/rendererStylingStore.js +20 -4
  280. package/lib/stores/rendererStylingStore.js.map +1 -1
  281. package/lib/utils/calculatedExpression.d.ts +5 -4
  282. package/lib/utils/calculatedExpression.js +76 -55
  283. package/lib/utils/calculatedExpression.js.map +1 -1
  284. package/lib/utils/enableWhenExpression.d.ts +10 -8
  285. package/lib/utils/enableWhenExpression.js +153 -118
  286. package/lib/utils/enableWhenExpression.js.map +1 -1
  287. package/lib/utils/fhirpath.d.ts +7 -5
  288. package/lib/utils/fhirpath.js +105 -72
  289. package/lib/utils/fhirpath.js.map +1 -1
  290. package/lib/utils/getExpressionsFromItem.d.ts +2 -1
  291. package/lib/utils/getExpressionsFromItem.js +1 -1
  292. package/lib/utils/getExpressionsFromItem.js.map +1 -1
  293. package/lib/utils/index.d.ts +6 -2
  294. package/lib/utils/index.js +6 -2
  295. package/lib/utils/index.js.map +1 -1
  296. package/lib/utils/initialise.d.ts +3 -2
  297. package/lib/utils/initialise.js +49 -36
  298. package/lib/utils/initialise.js.map +1 -1
  299. package/lib/utils/itemControl.d.ts +4 -1
  300. package/lib/utils/itemControl.js +27 -0
  301. package/lib/utils/itemControl.js.map +1 -1
  302. package/lib/utils/manageForm.d.ts +5 -1
  303. package/lib/utils/manageForm.js +4 -2
  304. package/lib/utils/manageForm.js.map +1 -1
  305. package/lib/utils/misc.d.ts +0 -1
  306. package/lib/utils/misc.js +1 -1
  307. package/lib/utils/misc.js.map +1 -1
  308. package/lib/utils/openChoice.js +2 -10
  309. package/lib/utils/openChoice.js.map +1 -1
  310. package/lib/utils/page.d.ts +3 -3
  311. package/lib/utils/page.js +2 -5
  312. package/lib/utils/page.js.map +1 -1
  313. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +1 -1
  314. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -1
  315. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.d.ts +1 -1
  316. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js +166 -150
  317. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js.map +1 -1
  318. package/lib/utils/questionnaireStoreUtils/extractPages.js +5 -11
  319. package/lib/utils/questionnaireStoreUtils/extractPages.js.map +1 -1
  320. package/lib/utils/repopulateItems.js +0 -8
  321. package/lib/utils/repopulateItems.js.map +1 -1
  322. package/lib/utils/validateQuestionnaire.js +8 -4
  323. package/lib/utils/validateQuestionnaire.js.map +1 -1
  324. package/package.json +3 -3
  325. package/src/components/FormComponents/AttachmentItem/AttachmentField.tsx +4 -0
  326. package/src/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.tsx +17 -15
  327. package/src/components/FormComponents/AttachmentItem/AttachmentFileDropBox.styles.ts +12 -10
  328. package/src/components/FormComponents/AttachmentItem/AttachmentFileDropBox.tsx +4 -0
  329. package/src/components/FormComponents/AttachmentItem/AttachmentItem.tsx +3 -1
  330. package/src/components/FormComponents/AttachmentItem/AttachmentUrlField.tsx +4 -0
  331. package/src/components/FormComponents/BooleanItem/BooleanField.tsx +87 -30
  332. package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +20 -11
  333. package/src/components/FormComponents/BooleanItem/index.ts +18 -0
  334. package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.tsx +16 -7
  335. package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +34 -16
  336. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +19 -11
  337. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +20 -12
  338. package/src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx +19 -2
  339. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.tsx +10 -20
  340. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +13 -2
  341. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.tsx +17 -11
  342. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx +11 -20
  343. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +21 -13
  344. package/src/components/FormComponents/ChoiceItems/ChoiceRadioSingle.tsx +5 -4
  345. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +28 -8
  346. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +13 -2
  347. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.tsx +24 -13
  348. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +18 -7
  349. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +32 -14
  350. package/src/components/FormComponents/ChoiceItems/index.ts +18 -0
  351. package/src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.tsx +4 -0
  352. package/src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.tsx +36 -21
  353. package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.tsx +40 -25
  354. package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.tsx +4 -19
  355. package/src/components/FormComponents/DecimalItem/DecimalField.tsx +8 -1
  356. package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +33 -18
  357. package/src/components/FormComponents/DecimalItem/index.ts +18 -0
  358. package/src/components/FormComponents/DisplayItem/DisplayItem.tsx +18 -3
  359. package/src/components/FormComponents/GroupItem/GroupHeading.tsx +27 -6
  360. package/src/components/FormComponents/GroupItem/GroupItem.tsx +3 -0
  361. package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +26 -0
  362. package/src/components/FormComponents/GroupItem/GroupItemView.tsx +34 -1
  363. package/src/components/FormComponents/GroupItem/PageButtonWrapper.tsx +8 -0
  364. package/src/components/FormComponents/GroupItem/index.ts +18 -0
  365. package/src/components/FormComponents/IntegerItem/IntegerField.tsx +8 -1
  366. package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +33 -18
  367. package/src/components/FormComponents/ItemParts/CheckboxSingle.tsx +2 -3
  368. package/src/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.tsx +4 -1
  369. package/src/components/FormComponents/ItemParts/ClearInputButton.tsx +52 -0
  370. package/src/components/FormComponents/ItemParts/ContextDisplayItem.tsx +1 -1
  371. package/src/components/FormComponents/ItemParts/FlyoverItem.tsx +62 -0
  372. package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +23 -9
  373. package/src/components/FormComponents/ItemParts/ItemLabelText.tsx +64 -13
  374. package/src/components/FormComponents/ItemParts/ItemLabelWrapper.tsx +15 -36
  375. package/src/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.tsx +11 -1
  376. package/src/components/FormComponents/ItemParts/RadioOptionList.tsx +5 -1
  377. package/src/components/FormComponents/ItemParts/RequiredAsterisk.tsx +36 -0
  378. package/src/components/FormComponents/ItemParts/index.ts +19 -0
  379. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx +16 -7
  380. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +35 -17
  381. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +25 -17
  382. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.tsx +26 -18
  383. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx +19 -2
  384. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.tsx +5 -1
  385. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +22 -14
  386. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.tsx +5 -1
  387. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.tsx +23 -15
  388. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.tsx +16 -8
  389. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +30 -12
  390. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx +24 -9
  391. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +31 -13
  392. package/src/components/FormComponents/QuantityItem/QuantityComparatorField.tsx +6 -0
  393. package/src/components/FormComponents/QuantityItem/QuantityField.tsx +8 -1
  394. package/src/components/FormComponents/QuantityItem/QuantityItem.tsx +56 -35
  395. package/src/components/FormComponents/QuantityItem/QuantityUnitField.tsx +8 -3
  396. package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.tsx +1 -1
  397. package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +34 -28
  398. package/src/components/FormComponents/SingleItem/SingleItem.tsx +1 -1
  399. package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +50 -4
  400. package/src/components/FormComponents/SingleItem/SingleItemView.tsx +14 -11
  401. package/src/components/FormComponents/SingleItem/SingleNestedItems.tsx +1 -0
  402. package/src/components/FormComponents/SliderItem/SliderField.tsx +4 -2
  403. package/src/components/FormComponents/SliderItem/SliderItem.tsx +26 -18
  404. package/src/components/FormComponents/StringItem/StringField.tsx +8 -1
  405. package/src/components/FormComponents/StringItem/StringItem.tsx +33 -18
  406. package/src/components/FormComponents/StringItem/index.ts +18 -0
  407. package/src/components/FormComponents/TextItem/TextField.tsx +5 -2
  408. package/src/components/FormComponents/TextItem/TextItem.tsx +25 -17
  409. package/src/components/FormComponents/Textfield.styles.ts +5 -7
  410. package/src/components/FormComponents/TimeItem/TimeField.tsx +4 -2
  411. package/src/components/FormComponents/TimeItem/TimeItem.tsx +29 -14
  412. package/src/components/FormComponents/UrlItem/UrlField.tsx +14 -1
  413. package/src/components/FormComponents/UrlItem/UrlItem.tsx +32 -17
  414. package/src/components/FormComponents/index.ts +8 -0
  415. package/src/components/Renderer/BaseRenderer.tsx +5 -5
  416. package/src/components/Renderer/FormBodyPaginated.tsx +127 -0
  417. package/src/components/Renderer/FormTopLevelItem.tsx +0 -17
  418. package/src/components/index.ts +11 -1
  419. package/src/hooks/index.ts +12 -0
  420. package/src/hooks/useBuildForm.ts +33 -3
  421. package/src/hooks/useCodingCalculatedExpression.ts +1 -1
  422. package/src/hooks/useHidden.ts +12 -0
  423. package/src/hooks/useParseXhtml.tsx +73 -0
  424. package/src/hooks/useReadOnly.ts +32 -1
  425. package/src/hooks/useRenderingExtensions.ts +2 -2
  426. package/src/hooks/useValidationFeedback.ts +11 -3
  427. package/src/hooks/useValueSetCodings.ts +10 -6
  428. package/src/index.ts +49 -6
  429. package/src/interfaces/index.ts +5 -0
  430. package/src/interfaces/overrideComponent.interface.ts +39 -0
  431. package/src/interfaces/renderProps.interface.ts +5 -0
  432. package/src/stores/index.ts +3 -0
  433. package/src/stores/questionnaireStore.ts +73 -31
  434. package/src/stores/rendererStylingStore.ts +120 -0
  435. package/src/stories/assets/questionnaires/QQuantity.ts +45 -6
  436. package/src/stories/itemTypes/Attachment.stories.tsx +1 -1
  437. package/src/stories/itemTypes/Boolean.stories.tsx +1 -1
  438. package/src/stories/itemTypes/Choice.stories.tsx +1 -1
  439. package/src/stories/itemTypes/Date.stories.tsx +1 -1
  440. package/src/stories/itemTypes/DateTime.stories.tsx +1 -1
  441. package/src/stories/itemTypes/Decimal.stories.tsx +1 -1
  442. package/src/stories/itemTypes/Display.stories.tsx +1 -1
  443. package/src/stories/itemTypes/Group.stories.tsx +1 -1
  444. package/src/stories/itemTypes/Integer.stories.tsx +1 -1
  445. package/src/stories/itemTypes/OpenChoice.stories.tsx +1 -1
  446. package/src/stories/itemTypes/Quantity.stories.tsx +1 -1
  447. package/src/stories/itemTypes/Reference.stories.tsx +1 -1
  448. package/src/stories/itemTypes/String.stories.tsx +1 -1
  449. package/src/stories/itemTypes/Text.stories.tsx +1 -1
  450. package/src/stories/itemTypes/Time.stories.tsx +1 -1
  451. package/src/stories/itemTypes/Url.stories.tsx +1 -1
  452. package/src/stories/sdc/AdvancedAdditionalDisplayContent.stories.tsx +1 -1
  453. package/src/stories/sdc/AdvancedControlAppearance.stories.tsx +1 -1
  454. package/src/stories/sdc/AdvancedOther.stories.tsx +1 -1
  455. package/src/stories/sdc/AdvancedTextAppearance.stories.tsx +1 -1
  456. package/src/stories/sdc/BehaviorCalculations.stories.tsx +1 -1
  457. package/src/stories/sdc/BehaviorChoiceRestriction.stories.tsx +1 -1
  458. package/src/stories/sdc/BehaviorOther.stories.tsx +1 -1
  459. package/src/stories/sdc/BehaviorValueConstraints.stories.tsx +1 -1
  460. package/src/stories/sdc/FormPopulation.stories.tsx +1 -1
  461. package/src/stories/sdc/ItemControlDisplay.stories.tsx +1 -1
  462. package/src/stories/sdc/ItemControlGroup.stories.tsx +1 -1
  463. package/src/stories/sdc/ItemControlQuestion.stories.tsx +1 -1
  464. package/src/stories/sdc/OtherExtensions.stories.tsx +1 -1
  465. package/src/stories/testing/AuCoreTester.stories.tsx +1 -1
  466. package/src/stories/testing/BuildFormButtonTesterWrapper.stories.tsx +1 -1
  467. package/src/stories/testing/GroupTableTester.stories.tsx +1 -1
  468. package/src/stories/testing/IdRemoverDebuggerWrapper.stories.tsx +1 -1
  469. package/src/stories/testing/Mbs715Tester.stories.tsx +1 -1
  470. package/src/stories/testing/PrePopButtonTesterWrapper.stories.tsx +1 -1
  471. package/src/stories/testing/ValidateFormTesterWrapper.stories.tsx +1 -1
  472. package/src/utils/calculatedExpression.ts +29 -15
  473. package/src/utils/enableWhenExpression.ts +91 -48
  474. package/src/utils/fhirpath.ts +64 -27
  475. package/src/utils/getExpressionsFromItem.ts +1 -1
  476. package/src/utils/index.ts +8 -2
  477. package/src/utils/initialise.ts +11 -7
  478. package/src/utils/itemControl.ts +38 -1
  479. package/src/utils/manageForm.ts +16 -2
  480. package/src/utils/misc.ts +1 -1
  481. package/src/utils/openChoice.ts +2 -13
  482. package/src/utils/page.ts +4 -11
  483. package/src/utils/questionnaireStoreUtils/createQuestionaireModel.ts +1 -1
  484. package/src/utils/questionnaireStoreUtils/extractOtherExtensions.ts +20 -18
  485. package/src/utils/questionnaireStoreUtils/extractPages.ts +5 -12
  486. package/src/utils/repopulateItems.ts +0 -11
  487. package/src/utils/validateQuestionnaire.ts +6 -1
  488. package/vite.config.ts +2 -2
  489. package/src/components/Renderer/FormBodyPage.tsx +0 -93
  490. package/src/components/Renderer/FormTopLevelPage.tsx +0 -70
@@ -20,10 +20,10 @@ import type {
20
20
  PropsWithIsRepeatedAttribute,
21
21
  PropsWithIsTabledAttribute,
22
22
  PropsWithParentIsReadOnlyAttribute,
23
- PropsWithQrItemChangeHandler
23
+ PropsWithQrItemChangeHandler,
24
+ PropsWithRenderingExtensionsAttribute
24
25
  } from '../../../interfaces/renderProps.interface';
25
26
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
26
- import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
27
27
  import useValidationFeedback from '../../../hooks/useValidationFeedback';
28
28
  import debounce from 'lodash.debounce';
29
29
  import { createEmptyQrItem } from '../../../utils/qrItem';
@@ -34,22 +34,32 @@ import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
34
34
  import useStringCalculatedExpression from '../../../hooks/useStringCalculatedExpression';
35
35
  import useReadOnly from '../../../hooks/useReadOnly';
36
36
  import { useQuestionnaireStore } from '../../../stores';
37
+ import { ItemLabelWrapper } from '../ItemParts';
37
38
 
38
39
  interface StringItemProps
39
40
  extends PropsWithQrItemChangeHandler,
40
41
  PropsWithIsRepeatedAttribute,
41
42
  PropsWithIsTabledAttribute,
43
+ PropsWithRenderingExtensionsAttribute,
42
44
  PropsWithParentIsReadOnlyAttribute {
43
45
  qItem: QuestionnaireItem;
44
46
  qrItem: QuestionnaireResponseItem | null;
45
47
  }
46
48
  function StringItem(props: StringItemProps) {
47
- const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
49
+ const {
50
+ qItem,
51
+ qrItem,
52
+ isRepeated,
53
+ isTabled,
54
+ renderingExtensions,
55
+ parentIsReadOnly,
56
+ onQrItemChange
57
+ } = props;
48
58
 
49
59
  const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
50
60
 
51
61
  const readOnly = useReadOnly(qItem, parentIsReadOnly);
52
- const { displayUnit, displayPrompt, entryFormat } = useRenderingExtensions(qItem);
62
+ const { displayUnit, displayPrompt, entryFormat } = renderingExtensions;
53
63
 
54
64
  // Init input value
55
65
  const answerKey = qrItem?.answer?.[0].id;
@@ -120,20 +130,25 @@ function StringItem(props: StringItemProps) {
120
130
  data-test="q-item-string-box"
121
131
  data-linkid={qItem.linkId}
122
132
  onClick={() => onFocusLinkId(qItem.linkId)}>
123
- <ItemFieldGrid qItem={qItem} readOnly={readOnly}>
124
- <StringField
125
- linkId={qItem.linkId}
126
- input={input}
127
- feedback={feedback}
128
- displayPrompt={displayPrompt}
129
- displayUnit={displayUnit}
130
- entryFormat={entryFormat}
131
- readOnly={readOnly}
132
- calcExpUpdated={calcExpUpdated}
133
- onInputChange={handleChange}
134
- isTabled={isTabled}
135
- />
136
- </ItemFieldGrid>
133
+ <ItemFieldGrid
134
+ qItem={qItem}
135
+ readOnly={readOnly}
136
+ labelChildren={<ItemLabelWrapper qItem={qItem} readOnly={readOnly} />}
137
+ fieldChildren={
138
+ <StringField
139
+ linkId={qItem.linkId}
140
+ input={input}
141
+ feedback={feedback}
142
+ displayPrompt={displayPrompt}
143
+ displayUnit={displayUnit}
144
+ entryFormat={entryFormat}
145
+ readOnly={readOnly}
146
+ calcExpUpdated={calcExpUpdated}
147
+ onInputChange={handleChange}
148
+ isTabled={isTabled}
149
+ />
150
+ }
151
+ />
137
152
  </FullWidthFormComponentBox>
138
153
  );
139
154
  }
@@ -0,0 +1,18 @@
1
+ /*
2
+ * Copyright 2024 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 StringField } from './StringField';
@@ -19,6 +19,7 @@ import React from 'react';
19
19
  import InputAdornment from '@mui/material/InputAdornment';
20
20
  import MuiTextField from './MuiTextField';
21
21
  import FadingCheckIcon from '../ItemParts/FadingCheckIcon';
22
+ import Typography from '@mui/material/Typography';
22
23
 
23
24
  interface TextFieldProps {
24
25
  linkId: string;
@@ -60,9 +61,11 @@ function TextField(props: TextFieldProps) {
60
61
  minRows={3}
61
62
  InputProps={{
62
63
  endAdornment: (
63
- <InputAdornment position={'end'}>
64
+ <InputAdornment position="end">
64
65
  <FadingCheckIcon fadeIn={calcExpUpdated} disabled={readOnly} />
65
- {displayUnit}
66
+ <Typography color={readOnly ? 'text.disabled' : 'text.secondary'}>
67
+ {displayUnit}
68
+ </Typography>
66
69
  </InputAdornment>
67
70
  )
68
71
  }}
@@ -19,10 +19,10 @@ import React, { useCallback, useState } from 'react';
19
19
  import type {
20
20
  PropsWithIsRepeatedAttribute,
21
21
  PropsWithParentIsReadOnlyAttribute,
22
- PropsWithQrItemChangeHandler
22
+ PropsWithQrItemChangeHandler,
23
+ PropsWithRenderingExtensionsAttribute
23
24
  } from '../../../interfaces/renderProps.interface';
24
25
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
25
- import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
26
26
  import useValidationFeedback from '../../../hooks/useValidationFeedback';
27
27
  import debounce from 'lodash.debounce';
28
28
  import { createEmptyQrItem } from '../../../utils/qrItem';
@@ -33,22 +33,25 @@ import useStringCalculatedExpression from '../../../hooks/useStringCalculatedExp
33
33
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
34
34
  import useReadOnly from '../../../hooks/useReadOnly';
35
35
  import { useQuestionnaireStore } from '../../../stores';
36
+ import { ItemLabelWrapper } from '../ItemParts';
36
37
 
37
38
  interface TextItemProps
38
39
  extends PropsWithQrItemChangeHandler,
39
40
  PropsWithIsRepeatedAttribute,
41
+ PropsWithRenderingExtensionsAttribute,
40
42
  PropsWithParentIsReadOnlyAttribute {
41
43
  qItem: QuestionnaireItem;
42
44
  qrItem: QuestionnaireResponseItem | null;
43
45
  }
44
46
 
45
47
  function TextItem(props: TextItemProps) {
46
- const { qItem, qrItem, isRepeated, parentIsReadOnly, onQrItemChange } = props;
48
+ const { qItem, qrItem, isRepeated, renderingExtensions, parentIsReadOnly, onQrItemChange } =
49
+ props;
47
50
 
48
51
  const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
49
52
 
50
53
  const readOnly = useReadOnly(qItem, parentIsReadOnly);
51
- const { displayUnit, displayPrompt, entryFormat } = useRenderingExtensions(qItem);
54
+ const { displayUnit, displayPrompt, entryFormat } = renderingExtensions;
52
55
 
53
56
  // Init input value
54
57
  const answerKey = qrItem?.answer?.[0].id;
@@ -118,19 +121,24 @@ function TextItem(props: TextItemProps) {
118
121
  data-test="q-item-text-box"
119
122
  data-linkid={qItem.linkId}
120
123
  onClick={() => onFocusLinkId(qItem.linkId)}>
121
- <ItemFieldGrid qItem={qItem} readOnly={readOnly}>
122
- <TextField
123
- linkId={qItem.linkId}
124
- input={input}
125
- feedback={feedback}
126
- displayPrompt={displayPrompt}
127
- displayUnit={displayUnit}
128
- entryFormat={entryFormat}
129
- readOnly={readOnly}
130
- calcExpUpdated={calcExpUpdated}
131
- onInputChange={handleInputChange}
132
- />
133
- </ItemFieldGrid>
124
+ <ItemFieldGrid
125
+ qItem={qItem}
126
+ readOnly={readOnly}
127
+ labelChildren={<ItemLabelWrapper qItem={qItem} readOnly={readOnly} />}
128
+ fieldChildren={
129
+ <TextField
130
+ linkId={qItem.linkId}
131
+ input={input}
132
+ feedback={feedback}
133
+ displayPrompt={displayPrompt}
134
+ displayUnit={displayUnit}
135
+ entryFormat={entryFormat}
136
+ readOnly={readOnly}
137
+ calcExpUpdated={calcExpUpdated}
138
+ onInputChange={handleInputChange}
139
+ />
140
+ }
141
+ />
134
142
  </FullWidthFormComponentBox>
135
143
  );
136
144
  }
@@ -18,14 +18,12 @@
18
18
  import { styled } from '@mui/material/styles';
19
19
  import TextField from '@mui/material/TextField';
20
20
 
21
- export const TEXT_FIELD_WIDTH = 320;
22
-
23
21
  // Always use this accompanied by the TextField prop fullWidth
24
22
  export const StandardTextField = styled(TextField, {
25
- shouldForwardProp: (prop) => prop !== 'isTabled'
26
- })<{ isTabled: boolean }>(({ isTabled }) => ({
27
- // Set 280 as the standard width for a field
28
- // Set a theoretical infinite maxWidth if field is within a table to fill the table row
29
- maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000,
23
+ shouldForwardProp: (prop) => prop !== 'isTabled' && prop !== 'textFieldWidth'
24
+ })<{ isTabled: boolean; textFieldWidth: number }>(({ isTabled, textFieldWidth }) => ({
25
+ // Set textFieldWidth (defaults to 320 in rendererStylingStore) as the standard width for a field
26
+ // Set a theoretical infinite maxWidth (3000) if field is within a table to fill the table row
27
+ maxWidth: !isTabled ? textFieldWidth : 3000,
30
28
  minWidth: 160
31
29
  }));
@@ -20,7 +20,7 @@ import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps
20
20
  import type { Dayjs } from 'dayjs';
21
21
  import { LocalizationProvider, TimePicker as MuiTimePicker } from '@mui/x-date-pickers';
22
22
  import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
23
- import { TEXT_FIELD_WIDTH } from '../Textfield.styles';
23
+ import { useRendererStylingStore } from '../../../stores';
24
24
 
25
25
  interface TimeFieldProps extends PropsWithIsTabledAttribute {
26
26
  value: Dayjs | null;
@@ -33,6 +33,8 @@ interface TimeFieldProps extends PropsWithIsTabledAttribute {
33
33
  function TimeField(props: TimeFieldProps) {
34
34
  const { value, displayPrompt, entryFormat, readOnly, isTabled, onTimeChange } = props;
35
35
 
36
+ const textFieldWidth = useRendererStylingStore.use.textFieldWidth();
37
+
36
38
  return (
37
39
  <LocalizationProvider dateAdapter={AdapterDayjs}>
38
40
  <MuiTimePicker
@@ -40,7 +42,7 @@ function TimeField(props: TimeFieldProps) {
40
42
  value={value}
41
43
  disabled={readOnly}
42
44
  label={displayPrompt}
43
- sx={{ maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000, minWidth: 160 }}
45
+ sx={{ maxWidth: !isTabled ? textFieldWidth : 3000, minWidth: 160 }}
44
46
  slotProps={{
45
47
  textField: {
46
48
  fullWidth: true
@@ -20,10 +20,10 @@ import type {
20
20
  PropsWithIsRepeatedAttribute,
21
21
  PropsWithIsTabledAttribute,
22
22
  PropsWithParentIsReadOnlyAttribute,
23
- PropsWithQrItemChangeHandler
23
+ PropsWithQrItemChangeHandler,
24
+ PropsWithRenderingExtensionsAttribute
24
25
  } from '../../../interfaces/renderProps.interface';
25
26
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
26
- import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
27
27
  import { createEmptyQrItem } from '../../../utils/qrItem';
28
28
  import { FullWidthFormComponentBox } from '../../Box.styles';
29
29
  import TimeField from './TimeField';
@@ -32,23 +32,33 @@ import dayjs from 'dayjs';
32
32
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
33
33
  import useReadOnly from '../../../hooks/useReadOnly';
34
34
  import { useQuestionnaireStore } from '../../../stores';
35
+ import { ItemLabelWrapper } from '../ItemParts';
35
36
 
36
37
  interface TimeItemProps
37
38
  extends PropsWithQrItemChangeHandler,
38
39
  PropsWithIsRepeatedAttribute,
39
40
  PropsWithIsTabledAttribute,
41
+ PropsWithRenderingExtensionsAttribute,
40
42
  PropsWithParentIsReadOnlyAttribute {
41
43
  qItem: QuestionnaireItem;
42
44
  qrItem: QuestionnaireResponseItem | null;
43
45
  }
44
46
 
45
47
  function TimeItem(props: TimeItemProps) {
46
- const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
48
+ const {
49
+ qItem,
50
+ qrItem,
51
+ isRepeated,
52
+ isTabled,
53
+ renderingExtensions,
54
+ parentIsReadOnly,
55
+ onQrItemChange
56
+ } = props;
47
57
 
48
58
  const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
49
59
 
50
60
  const readOnly = useReadOnly(qItem, parentIsReadOnly);
51
- const { displayPrompt, entryFormat } = useRenderingExtensions(qItem);
61
+ const { displayPrompt, entryFormat } = renderingExtensions;
52
62
 
53
63
  // Init input value
54
64
  const answerKey = qrItem?.answer?.[0].id;
@@ -86,16 +96,21 @@ function TimeItem(props: TimeItemProps) {
86
96
  data-test="q-item-time-box"
87
97
  data-linkid={qItem.linkId}
88
98
  onClick={() => onFocusLinkId(qItem.linkId)}>
89
- <ItemFieldGrid qItem={qItem} readOnly={readOnly}>
90
- <TimeField
91
- value={timeDayJs}
92
- displayPrompt={displayPrompt}
93
- entryFormat={entryFormat}
94
- readOnly={readOnly}
95
- onTimeChange={handleTimeChange}
96
- isTabled={isTabled}
97
- />
98
- </ItemFieldGrid>
99
+ <ItemFieldGrid
100
+ qItem={qItem}
101
+ readOnly={readOnly}
102
+ labelChildren={<ItemLabelWrapper qItem={qItem} readOnly={readOnly} />}
103
+ fieldChildren={
104
+ <TimeField
105
+ value={timeDayJs}
106
+ displayPrompt={displayPrompt}
107
+ entryFormat={entryFormat}
108
+ readOnly={readOnly}
109
+ onTimeChange={handleTimeChange}
110
+ isTabled={isTabled}
111
+ />
112
+ }
113
+ />
99
114
  </FullWidthFormComponentBox>
100
115
  );
101
116
  }
@@ -19,6 +19,8 @@ import React from 'react';
19
19
  import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
20
20
  import InputAdornment from '@mui/material/InputAdornment';
21
21
  import { StandardTextField } from '../Textfield.styles';
22
+ import { useRendererStylingStore } from '../../../stores';
23
+ import Typography from '@mui/material/Typography';
22
24
 
23
25
  interface UrlFieldProps extends PropsWithIsTabledAttribute {
24
26
  linkId: string;
@@ -44,9 +46,12 @@ function UrlField(props: UrlFieldProps) {
44
46
  onInputChange
45
47
  } = props;
46
48
 
49
+ const textFieldWidth = useRendererStylingStore.use.textFieldWidth();
50
+
47
51
  return (
48
52
  <StandardTextField
49
53
  fullWidth
54
+ textFieldWidth={textFieldWidth}
50
55
  isTabled={isTabled}
51
56
  id={linkId}
52
57
  value={input}
@@ -56,7 +61,15 @@ function UrlField(props: UrlFieldProps) {
56
61
  placeholder={entryFormat}
57
62
  disabled={readOnly}
58
63
  size="small"
59
- InputProps={{ endAdornment: <InputAdornment position={'end'}>{displayUnit}</InputAdornment> }}
64
+ InputProps={{
65
+ endAdornment: (
66
+ <InputAdornment position="end">
67
+ <Typography color={readOnly ? 'text.disabled' : 'text.secondary'}>
68
+ {displayUnit}
69
+ </Typography>
70
+ </InputAdornment>
71
+ )
72
+ }}
60
73
  helperText={feedback}
61
74
  data-test="q-item-url-field"
62
75
  />
@@ -20,10 +20,10 @@ import type {
20
20
  PropsWithIsRepeatedAttribute,
21
21
  PropsWithIsTabledAttribute,
22
22
  PropsWithParentIsReadOnlyAttribute,
23
- PropsWithQrItemChangeHandler
23
+ PropsWithQrItemChangeHandler,
24
+ PropsWithRenderingExtensionsAttribute
24
25
  } from '../../../interfaces/renderProps.interface';
25
26
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
26
- import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
27
27
  import useValidationFeedback from '../../../hooks/useValidationFeedback';
28
28
  import debounce from 'lodash.debounce';
29
29
  import { createEmptyQrItem } from '../../../utils/qrItem';
@@ -33,22 +33,32 @@ import UrlField from './UrlField';
33
33
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
34
34
  import useReadOnly from '../../../hooks/useReadOnly';
35
35
  import { useQuestionnaireStore } from '../../../stores';
36
+ import { ItemLabelWrapper } from '../ItemParts';
36
37
 
37
38
  interface UrlItemProps
38
39
  extends PropsWithQrItemChangeHandler,
39
40
  PropsWithIsRepeatedAttribute,
40
41
  PropsWithIsTabledAttribute,
42
+ PropsWithRenderingExtensionsAttribute,
41
43
  PropsWithParentIsReadOnlyAttribute {
42
44
  qItem: QuestionnaireItem;
43
45
  qrItem: QuestionnaireResponseItem | null;
44
46
  }
45
47
  function UrlItem(props: UrlItemProps) {
46
- const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
48
+ const {
49
+ qItem,
50
+ qrItem,
51
+ renderingExtensions,
52
+ isRepeated,
53
+ isTabled,
54
+ parentIsReadOnly,
55
+ onQrItemChange
56
+ } = props;
47
57
 
48
58
  const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
49
59
 
50
60
  const readOnly = useReadOnly(qItem, parentIsReadOnly);
51
- const { displayUnit, displayPrompt, entryFormat } = useRenderingExtensions(qItem);
61
+ const { displayUnit, displayPrompt, entryFormat } = renderingExtensions;
52
62
 
53
63
  // Init input value
54
64
  const answerKey = qrItem?.answer?.[0].id;
@@ -101,19 +111,24 @@ function UrlItem(props: UrlItemProps) {
101
111
  data-test="q-item-url-box"
102
112
  data-linkid={qItem.linkId}
103
113
  onClick={() => onFocusLinkId(qItem.linkId)}>
104
- <ItemFieldGrid qItem={qItem} readOnly={readOnly}>
105
- <UrlField
106
- linkId={qItem.linkId}
107
- input={input}
108
- feedback={feedback}
109
- displayPrompt={displayPrompt}
110
- displayUnit={displayUnit}
111
- entryFormat={entryFormat}
112
- readOnly={readOnly}
113
- onInputChange={handleChange}
114
- isTabled={isTabled}
115
- />
116
- </ItemFieldGrid>
114
+ <ItemFieldGrid
115
+ qItem={qItem}
116
+ readOnly={readOnly}
117
+ labelChildren={<ItemLabelWrapper qItem={qItem} readOnly={readOnly} />}
118
+ fieldChildren={
119
+ <UrlField
120
+ linkId={qItem.linkId}
121
+ input={input}
122
+ feedback={feedback}
123
+ displayPrompt={displayPrompt}
124
+ displayUnit={displayUnit}
125
+ entryFormat={entryFormat}
126
+ readOnly={readOnly}
127
+ onInputChange={handleChange}
128
+ isTabled={isTabled}
129
+ />
130
+ }
131
+ />
117
132
  </FullWidthFormComponentBox>
118
133
  );
119
134
  }
@@ -16,8 +16,16 @@
16
16
  */
17
17
 
18
18
  export { SingleItem } from './SingleItem';
19
+ export { GroupItem } from './GroupItem';
19
20
  export { RepeatItem } from './RepeatItem';
20
21
  export { RepeatGroup } from './RepeatGroup';
21
22
  export { GroupTable } from './Tables';
22
23
  export { GridGroup } from './GridGroup';
23
24
  export { parseFhirDateToDisplayDate } from './DateTimeItems';
25
+ export { ItemFieldGrid, ItemLabelWrapper } from './ItemParts';
26
+
27
+ // item type components
28
+ export { BooleanField } from './BooleanItem';
29
+ export { StringField } from './StringItem';
30
+ export { DecimalField } from './DecimalItem';
31
+ export { ChoiceRadioSingle } from './ChoiceItems';
@@ -22,9 +22,9 @@ import type { QuestionnaireResponse, QuestionnaireResponseItem } from 'fhir/r4';
22
22
  import { useQuestionnaireResponseStore, useQuestionnaireStore } from '../../stores';
23
23
  import { getQrItemsIndex, mapQItemsIndex } from '../../utils/mapItem';
24
24
  import { updateQrItemsInGroup } from '../../utils/qrItem';
25
- import { everyIsPages } from '../../utils/page';
25
+ import { isPage } from '../../utils/page';
26
26
  import type { QrRepeatGroup } from '../../interfaces/repeatGroup.interface';
27
- import FormTopLevelPage from './FormTopLevelPage';
27
+ import FormBodyPaginated from './FormBodyPaginated';
28
28
  import { Container } from '@mui/material';
29
29
 
30
30
  /**
@@ -76,13 +76,13 @@ function BaseRenderer() {
76
76
  // If an item has multiple answers, it is a repeat group
77
77
  const topLevelQRItemsByIndex = getQrItemsIndex(topLevelQItems, topLevelQRItems, qItemsIndexMap);
78
78
 
79
- const everyItemIsPage = everyIsPages(topLevelQItems);
79
+ const formIsPaginated = topLevelQItems.some((i) => isPage(i));
80
80
 
81
- if (everyItemIsPage) {
81
+ if (formIsPaginated) {
82
82
  return (
83
83
  <Fade in={true} timeout={500}>
84
84
  <Container disableGutters maxWidth="xl" key={responseKey}>
85
- <FormTopLevelPage
85
+ <FormBodyPaginated
86
86
  topLevelQItems={topLevelQItems}
87
87
  topLevelQRItems={topLevelQRItemsByIndex}
88
88
  parentIsReadOnly={readOnly}
@@ -0,0 +1,127 @@
1
+ import React from 'react';
2
+ import Grid from '@mui/material/Grid';
3
+ import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
4
+ import TabContext from '@mui/lab/TabContext';
5
+ import TabPanel from '@mui/lab/TabPanel';
6
+ import GroupItem from '../FormComponents/GroupItem/GroupItem';
7
+ import type {
8
+ PropsWithParentIsReadOnlyAttribute,
9
+ PropsWithQrItemChangeHandler
10
+ } from '../../interfaces/renderProps.interface';
11
+ import { useQuestionnaireStore } from '../../stores';
12
+ import { useRendererStylingStore } from '../../stores/rendererStylingStore';
13
+ import { SingleItem } from '../FormComponents';
14
+ import PageButtonsWrapper from '../FormComponents/GroupItem/PageButtonWrapper';
15
+ import { QGroupContainerBox } from '../Box.styles';
16
+ import { GroupCard } from '../FormComponents/GroupItem/GroupItem.styles';
17
+
18
+ interface FormBodyPaginatedProps
19
+ extends PropsWithQrItemChangeHandler,
20
+ PropsWithParentIsReadOnlyAttribute {
21
+ topLevelQItems: QuestionnaireItem[];
22
+ topLevelQRItems: (QuestionnaireResponseItem | QuestionnaireResponseItem[] | undefined)[];
23
+ }
24
+
25
+ // TODO This implementation doesnt take into account repeat items and repeat groups
26
+ // TODO need to fix this before bringing it into release
27
+ // Every group item in here is rendered as a page
28
+ function FormBodyPaginated(props: FormBodyPaginatedProps) {
29
+ const { topLevelQItems, topLevelQRItems, parentIsReadOnly, onQrItemChange } = props;
30
+
31
+ const pages = useQuestionnaireStore.use.pages();
32
+ const currentPage = useQuestionnaireStore.use.currentPageIndex();
33
+ const disableCardView = useRendererStylingStore.use.disablePageCardView();
34
+
35
+ return (
36
+ <Grid container spacing={1.5}>
37
+ <TabContext value={currentPage.toString()}>
38
+ <Grid item xs={12} md={12} lg={12}>
39
+ {topLevelQItems.map((qItem, i) => {
40
+ const qrItem = topLevelQRItems[i];
41
+
42
+ const isNotRepeatGroup = !Array.isArray(qrItem);
43
+ const isPage = !!pages[qItem.linkId];
44
+
45
+ const itemIsGroup = qItem.type === 'group';
46
+
47
+ if (!isPage || !isNotRepeatGroup) {
48
+ // Something has gone horribly wrong
49
+ return null;
50
+ }
51
+
52
+ const isRepeated = qItem.repeats ?? false;
53
+ const pageIsMarkedAsComplete = pages[qItem.linkId].isComplete ?? false;
54
+
55
+ // Render this page as a group
56
+ if (itemIsGroup) {
57
+ return (
58
+ <TabPanel
59
+ key={qItem.linkId}
60
+ sx={{ p: 0 }}
61
+ value={i.toString()}
62
+ data-test="renderer-page-panel">
63
+ <GroupItem
64
+ qItem={qItem}
65
+ qrItem={qrItem ?? null}
66
+ isRepeated={isRepeated}
67
+ groupCardElevation={1}
68
+ disableCardView={disableCardView}
69
+ pageIsMarkedAsComplete={pageIsMarkedAsComplete}
70
+ pages={pages}
71
+ currentPageIndex={currentPage}
72
+ parentIsReadOnly={parentIsReadOnly}
73
+ onQrItemChange={onQrItemChange}
74
+ />
75
+ </TabPanel>
76
+ );
77
+ }
78
+
79
+ // Page consists of a non-group item
80
+ return (
81
+ <TabPanel
82
+ key={qItem.linkId}
83
+ sx={{ p: 0 }}
84
+ value={i.toString()}
85
+ data-test="renderer-page-panel">
86
+ <QGroupContainerBox
87
+ cardElevation={1}
88
+ isRepeated={isRepeated}
89
+ data-test="q-item-group-box">
90
+ {disableCardView ? (
91
+ <>
92
+ <SingleItem
93
+ qItem={qItem}
94
+ qrItem={qrItem ?? null}
95
+ isRepeated={isRepeated}
96
+ groupCardElevation={1}
97
+ parentIsReadOnly={parentIsReadOnly}
98
+ onQrItemChange={onQrItemChange}
99
+ isTabled={false}
100
+ />
101
+ <PageButtonsWrapper currentPageIndex={currentPage} pages={pages} />
102
+ </>
103
+ ) : (
104
+ <GroupCard elevation={1} isRepeated={isRepeated}>
105
+ <SingleItem
106
+ qItem={qItem}
107
+ qrItem={qrItem ?? null}
108
+ isRepeated={isRepeated}
109
+ groupCardElevation={1}
110
+ parentIsReadOnly={parentIsReadOnly}
111
+ onQrItemChange={onQrItemChange}
112
+ isTabled={false}
113
+ />
114
+ <PageButtonsWrapper currentPageIndex={currentPage} pages={pages} />
115
+ </GroupCard>
116
+ )}
117
+ </QGroupContainerBox>
118
+ </TabPanel>
119
+ );
120
+ })}
121
+ </Grid>
122
+ </TabContext>
123
+ </Grid>
124
+ );
125
+ }
126
+
127
+ export default FormBodyPaginated;