@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
@@ -17,17 +17,22 @@
17
17
 
18
18
  import React from 'react';
19
19
  import Autocomplete from '@mui/material/Autocomplete';
20
- import { StandardTextField, TEXT_FIELD_WIDTH } from '../Textfield.styles';
20
+ import { StandardTextField } from '../Textfield.styles';
21
21
  import { StyledAlert } from '../../Alert.styles';
22
22
  import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
23
23
  import Typography from '@mui/material/Typography';
24
24
  import type { Coding, QuestionnaireItem } from 'fhir/r4';
25
- import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
26
- import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
25
+ import type {
26
+ PropsWithIsTabledAttribute,
27
+ PropsWithRenderingExtensionsAttribute
28
+ } from '../../../interfaces/renderProps.interface';
27
29
  import type { TerminologyError } from '../../../hooks/useValueSetCodings';
28
30
  import FadingCheckIcon from '../ItemParts/FadingCheckIcon';
31
+ import { useRendererStylingStore } from '../../../stores';
29
32
 
30
- interface ChoiceSelectAnswerValueSetFieldsProps extends PropsWithIsTabledAttribute {
33
+ interface ChoiceSelectAnswerValueSetFieldsProps
34
+ extends PropsWithIsTabledAttribute,
35
+ PropsWithRenderingExtensionsAttribute {
31
36
  qItem: QuestionnaireItem;
32
37
  codings: Coding[];
33
38
  valueCoding: Coding | null;
@@ -46,10 +51,13 @@ function ChoiceSelectAnswerValueSetFields(props: ChoiceSelectAnswerValueSetField
46
51
  readOnly,
47
52
  calcExpUpdated,
48
53
  isTabled,
54
+ renderingExtensions,
49
55
  onSelectChange
50
56
  } = props;
51
57
 
52
- const { displayUnit, displayPrompt, entryFormat } = useRenderingExtensions(qItem);
58
+ const textFieldWidth = useRendererStylingStore.use.textFieldWidth();
59
+
60
+ const { displayUnit, displayPrompt, entryFormat } = renderingExtensions;
53
61
 
54
62
  if (codings.length > 0) {
55
63
  return (
@@ -61,11 +69,12 @@ function ChoiceSelectAnswerValueSetFields(props: ChoiceSelectAnswerValueSetField
61
69
  onChange={(_, newValue) => onSelectChange(newValue)}
62
70
  openOnFocus
63
71
  autoHighlight
64
- sx={{ maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000, minWidth: 160, flexGrow: 1 }}
72
+ sx={{ maxWidth: !isTabled ? textFieldWidth : 3000, minWidth: 160, flexGrow: 1 }}
65
73
  size="small"
66
74
  disabled={readOnly}
67
75
  renderInput={(params) => (
68
76
  <StandardTextField
77
+ textFieldWidth={textFieldWidth}
69
78
  isTabled={isTabled}
70
79
  label={displayPrompt}
71
80
  placeholder={entryFormat}
@@ -76,7 +85,9 @@ function ChoiceSelectAnswerValueSetFields(props: ChoiceSelectAnswerValueSetField
76
85
  <>
77
86
  {params.InputProps.endAdornment}
78
87
  <FadingCheckIcon fadeIn={calcExpUpdated} disabled={readOnly} />
79
- {displayUnit}
88
+ <Typography color={readOnly ? 'text.disabled' : 'text.secondary'}>
89
+ {displayUnit}
90
+ </Typography>
80
91
  </>
81
92
  )
82
93
  }}
@@ -25,7 +25,8 @@ import type {
25
25
  PropsWithIsRepeatedAttribute,
26
26
  PropsWithIsTabledAttribute,
27
27
  PropsWithParentIsReadOnlyAttribute,
28
- PropsWithQrItemChangeHandler
28
+ PropsWithQrItemChangeHandler,
29
+ PropsWithRenderingExtensionsAttribute
29
30
  } from '../../../interfaces/renderProps.interface';
30
31
  import ChoiceSelectAnswerValueSetFields from './ChoiceSelectAnswerValueSetFields';
31
32
  import useReadOnly from '../../../hooks/useReadOnly';
@@ -33,18 +34,28 @@ import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
33
34
  import { useQuestionnaireStore } from '../../../stores';
34
35
  import useCodingCalculatedExpression from '../../../hooks/useCodingCalculatedExpression';
35
36
  import { convertCodingsToAnswerOptions, findInAnswerOptions } from '../../../utils/choice';
37
+ import { ItemLabelWrapper } from '../ItemParts';
36
38
 
37
39
  interface ChoiceSelectAnswerValueSetItemProps
38
40
  extends PropsWithQrItemChangeHandler,
39
41
  PropsWithIsRepeatedAttribute,
40
42
  PropsWithIsTabledAttribute,
43
+ PropsWithRenderingExtensionsAttribute,
41
44
  PropsWithParentIsReadOnlyAttribute {
42
45
  qItem: QuestionnaireItem;
43
46
  qrItem: QuestionnaireResponseItem | null;
44
47
  }
45
48
 
46
49
  function ChoiceSelectAnswerValueSetItem(props: ChoiceSelectAnswerValueSetItemProps) {
47
- const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
50
+ const {
51
+ qItem,
52
+ qrItem,
53
+ isRepeated,
54
+ isTabled,
55
+ renderingExtensions,
56
+ parentIsReadOnly,
57
+ onQrItemChange
58
+ } = props;
48
59
 
49
60
  const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
50
61
 
@@ -126,6 +137,7 @@ function ChoiceSelectAnswerValueSetItem(props: ChoiceSelectAnswerValueSetItemPro
126
137
  readOnly={readOnly}
127
138
  calcExpUpdated={calcExpUpdated}
128
139
  isTabled={isTabled}
140
+ renderingExtensions={renderingExtensions}
129
141
  onSelectChange={handleChange}
130
142
  />
131
143
  );
@@ -135,18 +147,24 @@ function ChoiceSelectAnswerValueSetItem(props: ChoiceSelectAnswerValueSetItemPro
135
147
  <FullWidthFormComponentBox
136
148
  data-test="q-item-choice-select-answer-value-set-box"
137
149
  onClick={() => onFocusLinkId(qItem.linkId)}>
138
- <ItemFieldGrid qItem={qItem} readOnly={readOnly}>
139
- <ChoiceSelectAnswerValueSetFields
140
- qItem={qItem}
141
- codings={codings}
142
- valueCoding={valueCoding}
143
- terminologyError={terminologyError}
144
- readOnly={readOnly}
145
- calcExpUpdated={calcExpUpdated}
146
- isTabled={isTabled}
147
- onSelectChange={handleChange}
148
- />
149
- </ItemFieldGrid>
150
+ <ItemFieldGrid
151
+ qItem={qItem}
152
+ readOnly={readOnly}
153
+ labelChildren={<ItemLabelWrapper qItem={qItem} readOnly={readOnly} />}
154
+ fieldChildren={
155
+ <ChoiceSelectAnswerValueSetFields
156
+ qItem={qItem}
157
+ codings={codings}
158
+ valueCoding={valueCoding}
159
+ terminologyError={terminologyError}
160
+ readOnly={readOnly}
161
+ calcExpUpdated={calcExpUpdated}
162
+ isTabled={isTabled}
163
+ renderingExtensions={renderingExtensions}
164
+ onSelectChange={handleChange}
165
+ />
166
+ }
167
+ />
150
168
  </FullWidthFormComponentBox>
151
169
  );
152
170
  }
@@ -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 ChoiceRadioSingle } from './ChoiceRadioSingle';
@@ -22,6 +22,7 @@ import type { PropsWithIsTabledAttribute } from '../../../../interfaces/renderPr
22
22
  import { StandardTextField } from '../../Textfield.styles';
23
23
  import DatePicker from './DatePicker';
24
24
  import Tooltip from '@mui/material/Tooltip';
25
+ import { useRendererStylingStore } from '../../../../stores';
25
26
 
26
27
  interface CustomDateFieldProps extends PropsWithIsTabledAttribute {
27
28
  linkId: string;
@@ -53,6 +54,8 @@ function CustomDateField(props: CustomDateFieldProps) {
53
54
  onSelectDate
54
55
  } = props;
55
56
 
57
+ const textFieldWidth = useRendererStylingStore.use.textFieldWidth();
58
+
56
59
  const anchorRef: RefObject<HTMLDivElement> = useRef(null);
57
60
 
58
61
  return (
@@ -61,6 +64,7 @@ function CustomDateField(props: CustomDateFieldProps) {
61
64
  id={linkId + '-date'}
62
65
  ref={anchorRef}
63
66
  fullWidth
67
+ textFieldWidth={textFieldWidth}
64
68
  isTabled={isTabled}
65
69
  value={input}
66
70
  error={!!feedback}
@@ -20,11 +20,11 @@ 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
27
  import useReadOnly from '../../../../hooks/useReadOnly';
27
- import useRenderingExtensions from '../../../../hooks/useRenderingExtensions';
28
28
  import { FullWidthFormComponentBox } from '../../../Box.styles';
29
29
  import ItemFieldGrid from '../../ItemParts/ItemFieldGrid';
30
30
  import {
@@ -36,23 +36,33 @@ import { createEmptyQrItem } from '../../../../utils/qrItem';
36
36
  import useDateValidation from '../../../../hooks/useDateValidation';
37
37
  import CustomDateField from './CustomDateField';
38
38
  import { useQuestionnaireStore } from '../../../../stores';
39
+ import { ItemLabelWrapper } from '../../ItemParts';
39
40
 
40
41
  interface CustomDateItemProps
41
42
  extends PropsWithQrItemChangeHandler,
42
43
  PropsWithIsRepeatedAttribute,
43
44
  PropsWithIsTabledAttribute,
44
- PropsWithParentIsReadOnlyAttribute {
45
+ PropsWithParentIsReadOnlyAttribute,
46
+ PropsWithRenderingExtensionsAttribute {
45
47
  qItem: QuestionnaireItem;
46
48
  qrItem: QuestionnaireResponseItem | null;
47
49
  }
48
50
 
49
51
  function CustomDateItem(props: CustomDateItemProps) {
50
- const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
52
+ const {
53
+ qItem,
54
+ qrItem,
55
+ isRepeated,
56
+ isTabled,
57
+ renderingExtensions,
58
+ parentIsReadOnly,
59
+ onQrItemChange
60
+ } = props;
51
61
 
52
62
  const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
53
63
 
54
64
  const readOnly = useReadOnly(qItem, parentIsReadOnly);
55
- const { displayPrompt, entryFormat } = useRenderingExtensions(qItem);
65
+ const { displayPrompt, entryFormat } = renderingExtensions;
56
66
 
57
67
  // Init input value
58
68
  const answerKey = qrItem?.answer?.[0].id;
@@ -124,22 +134,27 @@ function CustomDateItem(props: CustomDateItemProps) {
124
134
  data-test="q-item-date-box"
125
135
  data-linkid={qItem.linkId}
126
136
  onClick={() => onFocusLinkId(qItem.linkId)}>
127
- <ItemFieldGrid qItem={qItem} readOnly={readOnly}>
128
- <CustomDateField
129
- linkId={qItem.linkId}
130
- valueDate={displayDate}
131
- input={input}
132
- feedback={errorFeedback ?? ''}
133
- isFocused={focused}
134
- displayPrompt={displayPrompt}
135
- entryFormat={entryFormat}
136
- readOnly={readOnly}
137
- isTabled={isTabled}
138
- setFocused={setFocused}
139
- onInputChange={handleInputChange}
140
- onSelectDate={handleSelectDate}
141
- />
142
- </ItemFieldGrid>
137
+ <ItemFieldGrid
138
+ qItem={qItem}
139
+ readOnly={readOnly}
140
+ labelChildren={<ItemLabelWrapper qItem={qItem} readOnly={readOnly} />}
141
+ fieldChildren={
142
+ <CustomDateField
143
+ linkId={qItem.linkId}
144
+ valueDate={displayDate}
145
+ input={input}
146
+ feedback={errorFeedback ?? ''}
147
+ isFocused={focused}
148
+ displayPrompt={displayPrompt}
149
+ entryFormat={entryFormat}
150
+ readOnly={readOnly}
151
+ isTabled={isTabled}
152
+ setFocused={setFocused}
153
+ onInputChange={handleInputChange}
154
+ onSelectDate={handleSelectDate}
155
+ />
156
+ }
157
+ />
143
158
  </FullWidthFormComponentBox>
144
159
  );
145
160
  }
@@ -20,11 +20,11 @@ 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
27
  import useReadOnly from '../../../../hooks/useReadOnly';
27
- import useRenderingExtensions from '../../../../hooks/useRenderingExtensions';
28
28
  import { FullWidthFormComponentBox } from '../../../Box.styles';
29
29
  import ItemFieldGrid from '../../ItemParts/ItemFieldGrid';
30
30
  import { createEmptyQrItem } from '../../../../utils/qrItem';
@@ -43,23 +43,33 @@ import {
43
43
  import useTimeValidation from '../../../../hooks/useTimeValidation';
44
44
  import useDateNonEmptyValidation from '../../../../hooks/useDateTimeNonEmpty';
45
45
  import DateTimeField from './DateTimeField';
46
+ import { ItemLabelWrapper } from '../../ItemParts';
46
47
 
47
48
  interface CustomDateTimeItemProps
48
49
  extends PropsWithQrItemChangeHandler,
49
50
  PropsWithIsRepeatedAttribute,
50
51
  PropsWithIsTabledAttribute,
52
+ PropsWithRenderingExtensionsAttribute,
51
53
  PropsWithParentIsReadOnlyAttribute {
52
54
  qItem: QuestionnaireItem;
53
55
  qrItem: QuestionnaireResponseItem | null;
54
56
  }
55
57
 
56
58
  function CustomDateTimeItem(props: CustomDateTimeItemProps) {
57
- const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
59
+ const {
60
+ qItem,
61
+ qrItem,
62
+ isRepeated,
63
+ isTabled,
64
+ renderingExtensions,
65
+ parentIsReadOnly,
66
+ onQrItemChange
67
+ } = props;
58
68
 
59
69
  const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
60
70
 
61
71
  const readOnly = useReadOnly(qItem, parentIsReadOnly);
62
- const { displayPrompt, entryFormat } = useRenderingExtensions(qItem);
72
+ const { displayPrompt, entryFormat } = renderingExtensions;
63
73
 
64
74
  // Init input value
65
75
  const answerKey = qrItem?.answer?.[0].id;
@@ -200,27 +210,32 @@ function CustomDateTimeItem(props: CustomDateTimeItemProps) {
200
210
  data-test="q-item-datetime-box"
201
211
  data-linkid={qItem.linkId}
202
212
  onClick={() => onFocusLinkId(qItem.linkId)}>
203
- <ItemFieldGrid qItem={qItem} readOnly={readOnly}>
204
- <DateTimeField
205
- linkId={qItem.linkId}
206
- displayDate={displayDate}
207
- dateInput={dateInput}
208
- timeInput={timeInput}
209
- periodInput={periodInput}
210
- is24HourNotation={is24HourNotation}
211
- dateFeedback={dateFeedback ?? ''}
212
- timeFeedback={timeFeedback ?? ''}
213
- dateFocused={dateFocused}
214
- displayPrompt={displayPrompt}
215
- entryFormat={entryFormat}
216
- readOnly={readOnly}
217
- isTabled={isTabled}
218
- onDateInputChange={handleDateInputChange}
219
- onSelectDate={handleSelectDate}
220
- setDateFocused={setDateFocused}
221
- onTimeInputChange={handleTimeInputChange}
222
- />
223
- </ItemFieldGrid>
213
+ <ItemFieldGrid
214
+ qItem={qItem}
215
+ readOnly={readOnly}
216
+ labelChildren={<ItemLabelWrapper qItem={qItem} readOnly={readOnly} />}
217
+ fieldChildren={
218
+ <DateTimeField
219
+ linkId={qItem.linkId}
220
+ displayDate={displayDate}
221
+ dateInput={dateInput}
222
+ timeInput={timeInput}
223
+ periodInput={periodInput}
224
+ is24HourNotation={is24HourNotation}
225
+ dateFeedback={dateFeedback ?? ''}
226
+ timeFeedback={timeFeedback ?? ''}
227
+ dateFocused={dateFocused}
228
+ displayPrompt={displayPrompt}
229
+ entryFormat={entryFormat}
230
+ readOnly={readOnly}
231
+ isTabled={isTabled}
232
+ onDateInputChange={handleDateInputChange}
233
+ onSelectDate={handleSelectDate}
234
+ setDateFocused={setDateFocused}
235
+ onTimeInputChange={handleTimeInputChange}
236
+ />
237
+ }
238
+ />
224
239
  </FullWidthFormComponentBox>
225
240
  );
226
241
  }
@@ -15,27 +15,9 @@
15
15
  * limitations under the License.
16
16
  */
17
17
 
18
- /*
19
- * Copyright 2024 Commonwealth Scientific and Industrial Research
20
- * Organisation (CSIRO) ABN 41 687 119 230.
21
- *
22
- * Licensed under the Apache License, Version 2.0 (the "License");
23
- * you may not use this file except in compliance with the License.
24
- * You may obtain a copy of the License at
25
- *
26
- * http://www.apache.org/licenses/LICENSE-2.0
27
- *
28
- * Unless required by applicable law or agreed to in writing, software
29
- * distributed under the License is distributed on an "AS IS" BASIS,
30
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31
- * See the License for the specific language governing permissions and
32
- * limitations under the License.
33
- */
34
-
35
18
  import type { ChangeEvent } from 'react';
36
19
  import React from 'react';
37
20
  import type { PropsWithIsTabledAttribute } from '../../../../interfaces/renderProps.interface';
38
- import { TEXT_FIELD_WIDTH } from '../../Textfield.styles';
39
21
  import Tooltip from '@mui/material/Tooltip';
40
22
  import Box from '@mui/material/Box';
41
23
  import Select from '@mui/material/Select';
@@ -43,6 +25,7 @@ import MenuItem from '@mui/material/MenuItem';
43
25
  import MuiTextField from '../../TextItem/MuiTextField';
44
26
  import { grey } from '@mui/material/colors';
45
27
  import Typography from '@mui/material/Typography';
28
+ import { useRendererStylingStore } from '../../../../stores';
46
29
 
47
30
  interface CustomTimeFieldProps extends PropsWithIsTabledAttribute {
48
31
  linkId: string;
@@ -70,6 +53,8 @@ function CustomTimeField(props: CustomTimeFieldProps) {
70
53
  onPeriodChange
71
54
  } = props;
72
55
 
56
+ const textFieldWidth = useRendererStylingStore.use.textFieldWidth();
57
+
73
58
  return (
74
59
  <Tooltip title={isTabled ? feedback : ''}>
75
60
  <>
@@ -77,7 +62,7 @@ function CustomTimeField(props: CustomTimeFieldProps) {
77
62
  display="flex"
78
63
  alignItems="center"
79
64
  columnGap={1}
80
- sx={{ maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000, minWidth: 160 }}>
65
+ sx={{ maxWidth: !isTabled ? textFieldWidth : 3000, minWidth: 160 }}>
81
66
  <MuiTextField
82
67
  id={linkId + '-time'}
83
68
  value={timeInput}
@@ -20,6 +20,8 @@ import InputAdornment from '@mui/material/InputAdornment';
20
20
  import FadingCheckIcon from '../ItemParts/FadingCheckIcon';
21
21
  import { StandardTextField } from '../Textfield.styles';
22
22
  import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
23
+ import { useRendererStylingStore } from '../../../stores';
24
+ import Typography from '@mui/material/Typography';
23
25
 
24
26
  interface DecimalFieldProps extends PropsWithIsTabledAttribute {
25
27
  linkId: string;
@@ -47,6 +49,8 @@ function DecimalField(props: DecimalFieldProps) {
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}
@@ -56,6 +60,7 @@ function DecimalField(props: DecimalFieldProps) {
56
60
  disabled={readOnly}
57
61
  label={displayPrompt}
58
62
  placeholder={entryFormat === '' ? '0.0' : entryFormat}
63
+ textFieldWidth={textFieldWidth}
59
64
  fullWidth
60
65
  isTabled={isTabled}
61
66
  size="small"
@@ -64,7 +69,9 @@ function DecimalField(props: DecimalFieldProps) {
64
69
  endAdornment: (
65
70
  <InputAdornment position={'end'}>
66
71
  <FadingCheckIcon fadeIn={calcExpUpdated} disabled={readOnly} />
67
- {displayUnit}
72
+ <Typography color={readOnly ? 'text.disabled' : 'text.secondary'}>
73
+ {displayUnit}
74
+ </Typography>
68
75
  </InputAdornment>
69
76
  )
70
77
  }}
@@ -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 { FullWidthFormComponentBox } from '../../Box.styles';
28
28
  import useValidationFeedback from '../../../hooks/useValidationFeedback';
29
29
  import debounce from 'lodash.debounce';
@@ -40,24 +40,34 @@ import useDecimalCalculatedExpression from '../../../hooks/useDecimalCalculatedE
40
40
  import useReadOnly from '../../../hooks/useReadOnly';
41
41
  import { useQuestionnaireStore } from '../../../stores';
42
42
  import Box from '@mui/material/Box';
43
+ import { ItemLabelWrapper } from '../ItemParts';
43
44
 
44
45
  interface DecimalItemProps
45
46
  extends PropsWithQrItemChangeHandler,
46
47
  PropsWithIsRepeatedAttribute,
47
48
  PropsWithIsTabledAttribute,
49
+ PropsWithRenderingExtensionsAttribute,
48
50
  PropsWithParentIsReadOnlyAttribute {
49
51
  qItem: QuestionnaireItem;
50
52
  qrItem: QuestionnaireResponseItem | null;
51
53
  }
52
54
 
53
55
  function DecimalItem(props: DecimalItemProps) {
54
- const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
56
+ const {
57
+ qItem,
58
+ qrItem,
59
+ isRepeated,
60
+ isTabled,
61
+ renderingExtensions,
62
+ parentIsReadOnly,
63
+ onQrItemChange
64
+ } = props;
55
65
 
56
66
  const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
57
67
 
58
68
  const readOnly = useReadOnly(qItem, parentIsReadOnly);
59
69
  const precision = getDecimalPrecision(qItem);
60
- const { displayUnit, displayPrompt, entryFormat } = useRenderingExtensions(qItem);
70
+ const { displayUnit, displayPrompt, entryFormat } = renderingExtensions;
61
71
 
62
72
  // Init input value
63
73
  const answerKey = qrItem?.answer?.[0].id;
@@ -157,20 +167,25 @@ function DecimalItem(props: DecimalItemProps) {
157
167
  data-test="q-item-decimal-box"
158
168
  data-linkid={qItem.linkId}
159
169
  onClick={() => onFocusLinkId(qItem.linkId)}>
160
- <ItemFieldGrid qItem={qItem} readOnly={readOnly}>
161
- <DecimalField
162
- linkId={qItem.linkId}
163
- input={input}
164
- feedback={feedback}
165
- displayPrompt={displayPrompt}
166
- displayUnit={displayUnit}
167
- entryFormat={entryFormat}
168
- readOnly={readOnly}
169
- calcExpUpdated={calcExpUpdated}
170
- isTabled={isTabled}
171
- onInputChange={handleInputChange}
172
- />
173
- </ItemFieldGrid>
170
+ <ItemFieldGrid
171
+ qItem={qItem}
172
+ readOnly={readOnly}
173
+ labelChildren={<ItemLabelWrapper qItem={qItem} readOnly={readOnly} />}
174
+ fieldChildren={
175
+ <DecimalField
176
+ linkId={qItem.linkId}
177
+ input={input}
178
+ feedback={feedback}
179
+ displayPrompt={displayPrompt}
180
+ displayUnit={displayUnit}
181
+ entryFormat={entryFormat}
182
+ readOnly={readOnly}
183
+ calcExpUpdated={calcExpUpdated}
184
+ isTabled={isTabled}
185
+ onInputChange={handleInputChange}
186
+ />
187
+ }
188
+ />
174
189
  </FullWidthFormComponentBox>
175
190
  );
176
191
  }
@@ -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 DecimalField } from './DecimalField';
@@ -21,13 +21,18 @@ import { FullWidthFormComponentBox } from '../../Box.styles';
21
21
  import { isSpecificItemControl } from '../../../utils';
22
22
  import LabelWrapper from '../ItemParts/ItemLabelWrapper';
23
23
  import { useQuestionnaireStore } from '../../../stores';
24
+ import useReadOnly from '../../../hooks/useReadOnly';
25
+ import type { PropsWithParentIsReadOnlyAttribute } from '../../../interfaces/renderProps.interface';
26
+ import Divider from '@mui/material/Divider';
24
27
 
25
- interface DisplayItemProps {
28
+ interface DisplayItemProps extends PropsWithParentIsReadOnlyAttribute {
26
29
  qItem: QuestionnaireItem;
27
30
  }
28
31
 
29
32
  const DisplayItem = memo(function DisplayItem(props: DisplayItemProps) {
30
- const { qItem } = props;
33
+ const { qItem, parentIsReadOnly } = props;
34
+
35
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
31
36
 
32
37
  const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
33
38
 
@@ -36,12 +41,22 @@ const DisplayItem = memo(function DisplayItem(props: DisplayItemProps) {
36
41
  return null;
37
42
  }
38
43
 
44
+ const isFlyover = isSpecificItemControl(qItem, 'flyover');
45
+ if (isFlyover) {
46
+ return null;
47
+ }
48
+
49
+ const isDivider = isSpecificItemControl(qItem, 'divider');
50
+ if (isDivider) {
51
+ return <Divider sx={{ mt: 1.5, mb: 1 }} />;
52
+ }
53
+
39
54
  return (
40
55
  <FullWidthFormComponentBox
41
56
  data-test="q-item-display-box"
42
57
  data-linkid={qItem.linkId}
43
58
  onClick={() => onFocusLinkId(qItem.linkId)}>
44
- <LabelWrapper qItem={qItem} readOnly={false} />
59
+ <LabelWrapper qItem={qItem} readOnly={readOnly} />
45
60
  </FullWidthFormComponentBox>
46
61
  );
47
62
  });