@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
@@ -24,6 +24,9 @@ import type { QuestionnaireItem } from 'fhir/r4';
24
24
  import { getContextDisplays } from '../../../utils/tabs';
25
25
  import ContextDisplayItem from '../ItemParts/ContextDisplayItem';
26
26
  import ItemLabelText from '../ItemParts/ItemLabelText';
27
+ import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
28
+ import { useRendererStylingStore } from '../../../stores';
29
+ import RequiredAsterisk from '../ItemParts/RequiredAsterisk';
27
30
 
28
31
  interface GroupHeadingProps extends PropsWithIsRepeatedAttribute {
29
32
  qItem: QuestionnaireItem;
@@ -35,6 +38,9 @@ interface GroupHeadingProps extends PropsWithIsRepeatedAttribute {
35
38
  const GroupHeading = memo(function GroupHeading(props: GroupHeadingProps) {
36
39
  const { qItem, readOnly, tabIsMarkedAsComplete, pageIsMarkedAsComplete, isRepeated } = props;
37
40
 
41
+ const requiredIndicatorPosition = useRendererStylingStore.use.requiredIndicatorPosition();
42
+
43
+ const { required } = useRenderingExtensions(qItem);
38
44
  const contextDisplayItems = getContextDisplays(qItem);
39
45
 
40
46
  if (isRepeated) {
@@ -47,13 +53,28 @@ const GroupHeading = memo(function GroupHeading(props: GroupHeadingProps) {
47
53
  return (
48
54
  <>
49
55
  <Box display="flex" alignItems="center" width="100%">
50
- <Typography
51
- variant="h6"
52
- fontSize={isTabHeading || isPageHeading ? 16 : 15}
53
- color={readOnly && (!isTabHeading || !isPageHeading) ? 'text.secondary' : 'text.primary'}>
54
- <ItemLabelText qItem={qItem} />
55
- </Typography>
56
+ <Box position="relative">
57
+ {required && requiredIndicatorPosition === 'start' ? (
58
+ <RequiredAsterisk
59
+ sx={{ position: 'absolute', top: 0, left: -8 }} // Adjust top and left values as needed
60
+ >
61
+ *
62
+ </RequiredAsterisk>
63
+ ) : null}
64
+ <Box display="flex" columnGap={0.75} justifyContent="space-between" alignItems="center">
65
+ <Typography
66
+ variant="h6"
67
+ fontSize={isTabHeading || isPageHeading ? 16 : 15}
68
+ color={
69
+ readOnly && (!isTabHeading || !isPageHeading) ? 'text.secondary' : 'text.primary'
70
+ }>
71
+ <ItemLabelText qItem={qItem} readOnly={readOnly} />
72
+ </Typography>
73
+ </Box>
74
+ </Box>
75
+
56
76
  <Box flexGrow={1} />
77
+
57
78
  <Box display="flex" columnGap={0.5} mx={1}>
58
79
  {contextDisplayItems.map((item) => {
59
80
  return <ContextDisplayItem key={item.linkId} displayItem={item} />;
@@ -39,6 +39,7 @@ interface GroupItemProps
39
39
  qItem: QuestionnaireItem;
40
40
  qrItem: QuestionnaireResponseItem | null;
41
41
  groupCardElevation: number;
42
+ disableCardView?: boolean;
42
43
  tabIsMarkedAsComplete?: boolean;
43
44
  tabs?: Tabs;
44
45
  currentTabIndex?: number;
@@ -53,6 +54,7 @@ function GroupItem(props: GroupItemProps) {
53
54
  qrItem,
54
55
  isRepeated,
55
56
  groupCardElevation,
57
+ disableCardView,
56
58
  tabIsMarkedAsComplete,
57
59
  tabs,
58
60
  currentTabIndex,
@@ -103,6 +105,7 @@ function GroupItem(props: GroupItemProps) {
103
105
  qrItemsByIndex={qrItemsByIndex}
104
106
  isRepeated={isRepeated}
105
107
  groupCardElevation={groupCardElevation}
108
+ disableCardView={disableCardView}
106
109
  tabIsMarkedAsComplete={tabIsMarkedAsComplete}
107
110
  tabs={tabs}
108
111
  currentTabIndex={currentTabIndex}
@@ -31,6 +31,7 @@ import SingleItem from '../SingleItem/SingleItem';
31
31
  import useHidden from '../../../hooks/useHidden';
32
32
  import GroupItem from './GroupItem';
33
33
  import GridGroup from '../GridGroup/GridGroup';
34
+ import { useQuestionnaireStore } from '../../../stores';
34
35
 
35
36
  interface GroupItemSwitcherProps
36
37
  extends PropsWithQrItemChangeHandler,
@@ -54,11 +55,36 @@ function GroupItemSwitcher(props: GroupItemSwitcherProps) {
54
55
  onQrRepeatGroupChange
55
56
  } = props;
56
57
 
58
+ const qItemOverrideComponents = useQuestionnaireStore.use.qItemOverrideComponents();
59
+ const QItemOverrideComponent = qItemOverrideComponents[qItem.linkId];
60
+
57
61
  const itemIsHidden = useHidden(qItem, parentRepeatGroupIndex);
58
62
  if (itemIsHidden) {
59
63
  return null;
60
64
  }
61
65
 
66
+ // If a qItem (type=group) override component is defined for this item, render it
67
+ // Don't get too strict with the "typeof" checks for now
68
+ if (
69
+ qItem.type === 'group' &&
70
+ QItemOverrideComponent &&
71
+ typeof QItemOverrideComponent === 'function'
72
+ ) {
73
+ return (
74
+ <QItemOverrideComponent
75
+ qItem={qItem}
76
+ qrItem={qrItemOrItems ?? null}
77
+ isRepeated={!!qItem.repeats}
78
+ groupCardElevation={groupCardElevation}
79
+ parentIsReadOnly={parentIsReadOnly}
80
+ parentIsRepeatGroup={parentIsRepeatGroup}
81
+ parentRepeatGroupIndex={parentRepeatGroupIndex}
82
+ onQrItemChange={onQrItemChange}
83
+ onQrRepeatGroupChange={onQrRepeatGroupChange}
84
+ />
85
+ );
86
+ }
87
+
62
88
  // If there are multiple answers
63
89
  const hasMultipleAnswers = Array.isArray(qrItemOrItems);
64
90
  if (hasMultipleAnswers) {
@@ -50,6 +50,7 @@ interface GroupItemViewProps
50
50
  childQItems: QuestionnaireItem[];
51
51
  qrItemsByIndex: (QuestionnaireResponseItem | QuestionnaireResponseItem[] | undefined)[];
52
52
  groupCardElevation: number;
53
+ disableCardView?: boolean;
53
54
  tabIsMarkedAsComplete?: boolean;
54
55
  tabs?: Tabs;
55
56
  currentTabIndex?: number;
@@ -65,6 +66,7 @@ function GroupItemView(props: GroupItemViewProps) {
65
66
  qrItemsByIndex,
66
67
  isRepeated,
67
68
  groupCardElevation,
69
+ disableCardView,
68
70
  tabIsMarkedAsComplete,
69
71
  tabs,
70
72
  currentTabIndex,
@@ -78,7 +80,7 @@ function GroupItemView(props: GroupItemViewProps) {
78
80
  onQrRepeatGroupChange
79
81
  } = props;
80
82
 
81
- const readOnly = useReadOnly(qItem, parentIsReadOnly);
83
+ const readOnly = useReadOnly(qItem, parentIsReadOnly, parentRepeatGroupIndex);
82
84
 
83
85
  // Render collapsible group item
84
86
  // If group item is a repeating instance, do not render group item as collapsible
@@ -133,6 +135,37 @@ function GroupItemView(props: GroupItemViewProps) {
133
135
  );
134
136
  }
135
137
 
138
+ // Disable card view - currently only available via disablePageCardView API
139
+ if (disableCardView) {
140
+ return (
141
+ <QGroupContainerBox
142
+ cardElevation={groupCardElevation}
143
+ isRepeated={isRepeated}
144
+ data-test="q-item-group-box">
145
+ {childQItems.map((qItem: QuestionnaireItem, i) => {
146
+ const qrItemOrItems = qrItemsByIndex[i];
147
+
148
+ return (
149
+ <GroupItemSwitcher
150
+ key={qItem.linkId}
151
+ qItem={qItem}
152
+ qrItemOrItems={qrItemOrItems}
153
+ groupCardElevation={groupCardElevation}
154
+ parentIsReadOnly={readOnly}
155
+ parentIsRepeatGroup={parentIsRepeatGroup}
156
+ parentRepeatGroupIndex={parentRepeatGroupIndex}
157
+ onQrItemChange={onQrItemChange}
158
+ onQrRepeatGroupChange={onQrRepeatGroupChange}
159
+ />
160
+ );
161
+ })}
162
+ {/* Next tab button at the end of each tab group */}
163
+ <TabButtonsWrapper currentTabIndex={currentTabIndex} tabs={tabs} />
164
+ <PageButtonsWrapper currentPageIndex={currentPageIndex} pages={pages} />
165
+ </QGroupContainerBox>
166
+ );
167
+ }
168
+
136
169
  return (
137
170
  <QGroupContainerBox
138
171
  cardElevation={groupCardElevation}
@@ -6,6 +6,7 @@ import { useQuestionnaireStore } from '../../../stores';
6
6
  import NextPageButton from './NextPageButton';
7
7
  import PreviousPageButton from './PreviousPageButton';
8
8
  import useNextAndPreviousVisiblePages from '../../../hooks/useNextAndPreviousVisiblePages';
9
+ import { useRendererStylingStore } from '../../../stores/rendererStylingStore';
9
10
 
10
11
  interface PageButtonsWrapperProps {
11
12
  currentPageIndex?: number;
@@ -16,6 +17,7 @@ const PageButtonsWrapper = memo(function PageButtonsWrapper(props: PageButtonsWr
16
17
  const { currentPageIndex, pages } = props;
17
18
 
18
19
  const switchPage = useQuestionnaireStore.use.switchPage();
20
+ const disablePageButtons = useRendererStylingStore.use.disablePageButtons();
19
21
 
20
22
  const { previousPageIndex, nextPageIndex, numOfVisiblePages } = useNextAndPreviousVisiblePages(
21
23
  currentPageIndex,
@@ -47,10 +49,16 @@ const PageButtonsWrapper = memo(function PageButtonsWrapper(props: PageButtonsWr
47
49
  window.scrollTo(0, 0);
48
50
  }
49
51
 
52
+ // No pages defined, do not render page buttons
50
53
  if (pagesNotDefined) {
51
54
  return null;
52
55
  }
53
56
 
57
+ // Disable page buttons - currently only available via disableTabButtons API
58
+ if (disablePageButtons) {
59
+ return null;
60
+ }
61
+
54
62
  const previousPageButtonHidden = previousPageIndex === null;
55
63
  const nextPageButtonHidden = nextPageIndex === null;
56
64
 
@@ -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 GroupItem } from './GroupItem';
@@ -20,6 +20,8 @@ import InputAdornment from '@mui/material/InputAdornment';
20
20
  import { StandardTextField } from '../Textfield.styles';
21
21
  import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
22
22
  import FadingCheckIcon from '../ItemParts/FadingCheckIcon';
23
+ import { useRendererStylingStore } from '../../../stores';
24
+ import Typography from '@mui/material/Typography';
23
25
 
24
26
  interface IntegerFieldProps extends PropsWithIsTabledAttribute {
25
27
  linkId: string;
@@ -47,6 +49,8 @@ function IntegerField(props: IntegerFieldProps) {
47
49
  onInputChange
48
50
  } = props;
49
51
 
52
+ const textFieldWidth = useRendererStylingStore.use.textFieldWidth();
53
+
50
54
  return (
51
55
  <StandardTextField
52
56
  id={linkId}
@@ -58,6 +62,7 @@ function IntegerField(props: IntegerFieldProps) {
58
62
  label={displayPrompt}
59
63
  placeholder={entryFormat === '' ? '0' : entryFormat}
60
64
  fullWidth
65
+ textFieldWidth={textFieldWidth}
61
66
  isTabled={isTabled}
62
67
  size="small"
63
68
  inputProps={{ inputMode: 'numeric', pattern: '[0-9]*' }}
@@ -65,7 +70,9 @@ function IntegerField(props: IntegerFieldProps) {
65
70
  endAdornment: (
66
71
  <InputAdornment position={'end'}>
67
72
  <FadingCheckIcon fadeIn={calcExpUpdated} disabled={readOnly} />
68
- {displayUnit}
73
+ <Typography color={readOnly ? 'text.disabled' : 'text.secondary'}>
74
+ {displayUnit}
75
+ </Typography>
69
76
  </InputAdornment>
70
77
  )
71
78
  }}
@@ -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';
@@ -35,23 +35,33 @@ import { parseIntegerString } from '../../../utils/parseInputs';
35
35
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
36
36
  import useReadOnly from '../../../hooks/useReadOnly';
37
37
  import { useQuestionnaireStore } from '../../../stores';
38
+ import { ItemLabelWrapper } from '../ItemParts';
38
39
 
39
40
  interface IntegerItemProps
40
41
  extends PropsWithQrItemChangeHandler,
41
42
  PropsWithIsRepeatedAttribute,
42
43
  PropsWithIsTabledAttribute,
44
+ PropsWithRenderingExtensionsAttribute,
43
45
  PropsWithParentIsReadOnlyAttribute {
44
46
  qItem: QuestionnaireItem;
45
47
  qrItem: QuestionnaireResponseItem | null;
46
48
  }
47
49
 
48
50
  function IntegerItem(props: IntegerItemProps) {
49
- const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
51
+ const {
52
+ qItem,
53
+ qrItem,
54
+ isRepeated,
55
+ isTabled,
56
+ renderingExtensions,
57
+ parentIsReadOnly,
58
+ onQrItemChange
59
+ } = props;
50
60
 
51
61
  const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
52
62
 
53
63
  const readOnly = useReadOnly(qItem, parentIsReadOnly);
54
- const { displayUnit, displayPrompt, entryFormat } = useRenderingExtensions(qItem);
64
+ const { displayUnit, displayPrompt, entryFormat } = renderingExtensions;
55
65
 
56
66
  // Init input value
57
67
  const answerKey = qrItem?.answer?.[0].id;
@@ -136,20 +146,25 @@ function IntegerItem(props: IntegerItemProps) {
136
146
  data-test="q-item-integer-box"
137
147
  data-linkid={qItem.linkId}
138
148
  onClick={() => onFocusLinkId(qItem.linkId)}>
139
- <ItemFieldGrid qItem={qItem} readOnly={readOnly}>
140
- <IntegerField
141
- linkId={qItem.linkId}
142
- input={input}
143
- feedback={feedback}
144
- displayPrompt={displayPrompt}
145
- displayUnit={displayUnit}
146
- entryFormat={entryFormat}
147
- readOnly={readOnly}
148
- calcExpUpdated={calcExpUpdated}
149
- isTabled={isTabled}
150
- onInputChange={handleInputChange}
151
- />
152
- </ItemFieldGrid>
149
+ <ItemFieldGrid
150
+ qItem={qItem}
151
+ readOnly={readOnly}
152
+ labelChildren={<ItemLabelWrapper qItem={qItem} readOnly={readOnly} />}
153
+ fieldChildren={
154
+ <IntegerField
155
+ linkId={qItem.linkId}
156
+ input={input}
157
+ feedback={feedback}
158
+ displayPrompt={displayPrompt}
159
+ displayUnit={displayUnit}
160
+ entryFormat={entryFormat}
161
+ readOnly={readOnly}
162
+ calcExpUpdated={calcExpUpdated}
163
+ isTabled={isTabled}
164
+ onInputChange={handleInputChange}
165
+ />
166
+ }
167
+ />
153
168
  </FullWidthFormComponentBox>
154
169
  );
155
170
  }
@@ -17,7 +17,7 @@
17
17
 
18
18
  import React from 'react';
19
19
  import Checkbox from '@mui/material/Checkbox';
20
- import { StyledFormControlLabel } from '../../Box.styles';
20
+ import FormControlLabel from '@mui/material/FormControlLabel';
21
21
 
22
22
  interface Props {
23
23
  value: string;
@@ -31,13 +31,12 @@ function CheckboxSingle(props: Props) {
31
31
  const { value, label, readOnly, isChecked, onCheckedChange } = props;
32
32
 
33
33
  return (
34
- <StyledFormControlLabel
34
+ <FormControlLabel
35
35
  disabled={readOnly}
36
36
  control={
37
37
  <Checkbox size="small" checked={isChecked} onChange={() => onCheckedChange(value)} />
38
38
  }
39
39
  label={label}
40
- sx={{ mr: 3 }}
41
40
  />
42
41
  );
43
42
  }
@@ -21,6 +21,7 @@ import Box from '@mui/material/Box';
21
21
  import Checkbox from '@mui/material/Checkbox';
22
22
  import FormControlLabel from '@mui/material/FormControlLabel';
23
23
  import { StandardTextField } from '../Textfield.styles';
24
+ import { useRendererStylingStore } from '../../../stores';
24
25
 
25
26
  interface Props {
26
27
  value: string | null;
@@ -33,6 +34,8 @@ interface Props {
33
34
  function CheckboxSingleWithOpenLabel(props: Props) {
34
35
  const { value, label, isChecked, onCheckedChange, onInputChange } = props;
35
36
 
37
+ const textFieldWidth = useRendererStylingStore.use.textFieldWidth();
38
+
36
39
  function handleCheckedChange(event: ChangeEvent<HTMLInputElement>) {
37
40
  onCheckedChange(event.target.checked);
38
41
  }
@@ -46,13 +49,13 @@ function CheckboxSingleWithOpenLabel(props: Props) {
46
49
  <FormControlLabel
47
50
  control={<Checkbox size="small" checked={isChecked} onChange={handleCheckedChange} />}
48
51
  label={label + ':'}
49
- sx={{ mr: 3 }}
50
52
  />
51
53
  <StandardTextField
52
54
  disabled={!isChecked}
53
55
  value={value}
54
56
  onChange={handleInputChange}
55
57
  fullWidth
58
+ textFieldWidth={textFieldWidth}
56
59
  isTabled={false}
57
60
  size="small"
58
61
  data-test="q-item-checkbox-open-label-field"
@@ -0,0 +1,52 @@
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
+ import React from 'react';
19
+ import Tooltip from '@mui/material/Tooltip';
20
+ import Button from '@mui/material/Button';
21
+ import { grey } from '@mui/material/colors';
22
+ import Fade from '@mui/material/Fade';
23
+
24
+ interface ClearInputButtonProps {
25
+ buttonShown: boolean;
26
+ readOnly: boolean;
27
+ onClear: () => void;
28
+ }
29
+
30
+ function ClearInputButton(props: ClearInputButtonProps) {
31
+ const { buttonShown, readOnly, onClear } = props;
32
+
33
+ return (
34
+ <Fade in={buttonShown} timeout={100}>
35
+ <Tooltip title="Set question as unanswered">
36
+ <span>
37
+ <Button
38
+ sx={{
39
+ color: grey['500'],
40
+ '&:hover': { backgroundColor: grey['200'] }
41
+ }}
42
+ disabled={readOnly}
43
+ onClick={onClear}>
44
+ Clear
45
+ </Button>
46
+ </span>
47
+ </Tooltip>
48
+ </Fade>
49
+ );
50
+ }
51
+
52
+ export default ClearInputButton;
@@ -32,7 +32,7 @@ const ContextDisplayItem = memo(function GroupHeadingIcon(props: GroupHeadingIco
32
32
  return null;
33
33
  }
34
34
 
35
- return <ItemLabelText qItem={displayItem} />;
35
+ return <ItemLabelText qItem={displayItem} readOnly={false} />;
36
36
  });
37
37
 
38
38
  export default ContextDisplayItem;
@@ -0,0 +1,62 @@
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
+ import React from 'react';
19
+ import Tooltip from '@mui/material/Tooltip';
20
+ import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
21
+ import { useQuestionnaireStore } from '../../../stores';
22
+
23
+ interface FlyoverItemProps {
24
+ displayFlyover: string | JSX.Element | JSX.Element[];
25
+ readOnly: boolean;
26
+ }
27
+
28
+ function FlyoverItem(props: FlyoverItemProps) {
29
+ const { displayFlyover, readOnly } = props;
30
+
31
+ const sdcUiOverrideComponents = useQuestionnaireStore.use.sdcUiOverrideComponents();
32
+ const FlyoverOverrideComponent = sdcUiOverrideComponents['flyover'];
33
+
34
+ // If a flyover override component is defined for this item, render it
35
+ if (FlyoverOverrideComponent && typeof FlyoverOverrideComponent === 'function') {
36
+ return <FlyoverOverrideComponent displayText={displayFlyover} readOnly={readOnly} />;
37
+ }
38
+
39
+ return (
40
+ <Tooltip
41
+ title={displayFlyover}
42
+ placement="top"
43
+ slotProps={{
44
+ popper: {
45
+ modifiers: [
46
+ {
47
+ name: 'offset',
48
+ options: {
49
+ offset: [0, -8]
50
+ }
51
+ }
52
+ ]
53
+ }
54
+ }}>
55
+ <span>
56
+ <InfoOutlinedIcon sx={{ color: 'text.secondary' }} fontSize="small" />
57
+ </span>
58
+ </Tooltip>
59
+ );
60
+ }
61
+
62
+ export default FlyoverItem;
@@ -17,36 +17,50 @@
17
17
 
18
18
  import type { ReactNode } from 'react';
19
19
  import React from 'react';
20
- import Grid from '@mui/material/Grid';
20
+ import Grid from '@mui/material/Unstable_Grid2';
21
21
  import type { QuestionnaireItem } from 'fhir/r4';
22
- import DisplayInstructions from '../DisplayItem/DisplayInstructions';
23
- import LabelWrapper from './ItemLabelWrapper';
24
22
  import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
25
23
  import Box from '@mui/material/Box';
24
+ import { useRendererStylingStore } from '../../../stores';
25
+ import DisplayInstructions from '../DisplayItem/DisplayInstructions';
26
26
 
27
27
  interface ItemFieldGridProps {
28
- children: ReactNode;
29
28
  qItem: QuestionnaireItem;
30
29
  readOnly: boolean;
30
+ labelChildren?: ReactNode;
31
+ fieldChildren?: ReactNode;
31
32
  }
32
33
 
33
34
  function ItemFieldGrid(props: ItemFieldGridProps) {
34
- const { children, qItem, readOnly } = props;
35
+ const { qItem, readOnly, labelChildren, fieldChildren } = props;
36
+
37
+ const itemLabelGridBreakpoints = useRendererStylingStore.use.itemLabelGridBreakpoints();
38
+ const itemFieldGridBreakpoints = useRendererStylingStore.use.itemFieldGridBreakpoints();
35
39
 
36
40
  const { displayInstructions } = useRenderingExtensions(qItem);
37
41
 
38
42
  return (
39
43
  <Grid container columnSpacing={4}>
40
- <Grid item md={4} xs={12}>
41
- <LabelWrapper qItem={qItem} readOnly={readOnly} />
44
+ <Grid
45
+ xs={itemLabelGridBreakpoints.xs}
46
+ sm={itemLabelGridBreakpoints.sm}
47
+ md={itemLabelGridBreakpoints.md}
48
+ lg={itemLabelGridBreakpoints.lg}
49
+ xl={itemLabelGridBreakpoints.xl}>
50
+ {labelChildren}
42
51
  </Grid>
43
52
  <Box
44
53
  sx={{
45
54
  my: { xs: 1.5, md: 0 } // Adds padding for `xs` breakpoint and removes it for `md` and up
46
55
  }}
47
56
  />
48
- <Grid item md={8} xs={12}>
49
- {children}
57
+ <Grid
58
+ xs={itemFieldGridBreakpoints.xs}
59
+ sm={itemFieldGridBreakpoints.sm}
60
+ md={itemFieldGridBreakpoints.md}
61
+ lg={itemFieldGridBreakpoints.lg}
62
+ xl={itemFieldGridBreakpoints.xl}>
63
+ {fieldChildren}
50
64
  <DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
51
65
  </Grid>
52
66
  </Grid>