@aehrc/smart-forms-renderer 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. package/lib/components/Alert.styles.d.ts +2 -7
  2. package/lib/components/Box.styles.d.ts +6 -21
  3. package/lib/components/FormComponents/BooleanItem/BooleanItem.d.ts +3 -3
  4. package/lib/components/FormComponents/BooleanItem/BooleanItem.js +5 -4
  5. package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
  6. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.d.ts +3 -3
  7. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +6 -5
  8. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
  9. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.d.ts +3 -3
  10. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +15 -14
  11. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
  12. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.d.ts +3 -3
  13. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +15 -14
  14. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  15. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.d.ts +3 -3
  16. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js +8 -8
  17. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js.map +1 -1
  18. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.d.ts +3 -3
  19. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +6 -6
  20. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
  21. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.d.ts +3 -3
  22. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +6 -5
  23. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
  24. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.d.ts +1 -0
  25. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +2 -2
  26. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -1
  27. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.d.ts +3 -3
  28. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +8 -7
  29. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
  30. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.d.ts +1 -0
  31. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +2 -2
  32. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js.map +1 -1
  33. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.d.ts +3 -3
  34. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +8 -7
  35. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
  36. package/lib/components/FormComponents/CustomDateItem/CustomDateField2.d.ts +18 -0
  37. package/lib/components/FormComponents/CustomDateItem/CustomDateField2.js +31 -0
  38. package/lib/components/FormComponents/CustomDateItem/CustomDateField2.js.map +1 -0
  39. package/lib/components/FormComponents/CustomDateItem/CustomDateItem.d.ts +9 -0
  40. package/lib/components/FormComponents/CustomDateItem/CustomDateItem.js +68 -0
  41. package/lib/components/FormComponents/CustomDateItem/CustomDateItem.js.map +1 -0
  42. package/lib/components/FormComponents/CustomDateItem/CustomDateTimeField.d.ts +9 -0
  43. package/lib/components/FormComponents/CustomDateItem/CustomDateTimeField.js +75 -0
  44. package/lib/components/FormComponents/CustomDateItem/CustomDateTimeField.js.map +1 -0
  45. package/lib/components/FormComponents/CustomDateItem/CustomDateTimePickerText2.d.ts +9 -0
  46. package/lib/components/FormComponents/CustomDateItem/CustomDateTimePickerText2.js +75 -0
  47. package/lib/components/FormComponents/CustomDateItem/CustomDateTimePickerText2.js.map +1 -0
  48. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.d.ts +18 -0
  49. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.js +33 -0
  50. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.js.map +1 -0
  51. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.d.ts +11 -0
  52. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.js +55 -0
  53. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.js.map +1 -0
  54. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.d.ts +9 -0
  55. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.js +13 -0
  56. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.js.map +1 -0
  57. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.d.ts +5 -0
  58. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.js +20 -0
  59. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.js.map +1 -0
  60. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/hooks/useParseDates.d.ts +5 -0
  61. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/hooks/useParseDates.js +27 -0
  62. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/hooks/useParseDates.js.map +1 -0
  63. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/index.d.ts +1 -0
  64. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/index.js +18 -0
  65. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/index.js.map +1 -0
  66. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.d.ts +1 -0
  67. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.js +18 -0
  68. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.js.map +1 -0
  69. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.d.ts +9 -0
  70. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.js +121 -0
  71. package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.js.map +1 -0
  72. package/lib/components/FormComponents/CustomDateItem/customDateTimePickerText.d.ts +9 -0
  73. package/lib/components/FormComponents/CustomDateItem/customDateTimePickerText.js +71 -0
  74. package/lib/components/FormComponents/CustomDateItem/customDateTimePickerText.js.map +1 -0
  75. package/lib/components/FormComponents/CustomDateItem/index.d.ts +1 -0
  76. package/lib/components/FormComponents/CustomDateItem/index.js +18 -0
  77. package/lib/components/FormComponents/CustomDateItem/index.js.map +1 -0
  78. package/lib/components/FormComponents/DateItem/DateItem.d.ts +3 -3
  79. package/lib/components/FormComponents/DateItem/DateItem.js +5 -4
  80. package/lib/components/FormComponents/DateItem/DateItem.js.map +1 -1
  81. package/lib/components/FormComponents/DateItem/DatePicker.d.ts +2 -0
  82. package/lib/components/FormComponents/DateItem/DatePicker.js +42 -0
  83. package/lib/components/FormComponents/DateItem/DatePicker.js.map +1 -0
  84. package/lib/components/FormComponents/DateItem/DatePickerField.d.ts +8 -0
  85. package/lib/components/FormComponents/DateItem/DatePickerField.js +24 -0
  86. package/lib/components/FormComponents/DateItem/DatePickerField.js.map +1 -0
  87. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.d.ts +3 -3
  88. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js +5 -4
  89. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js.map +1 -1
  90. package/lib/components/FormComponents/DecimalItem/DecimalItem.d.ts +3 -3
  91. package/lib/components/FormComponents/DecimalItem/DecimalItem.js +7 -7
  92. package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
  93. package/lib/components/FormComponents/DisplayItem/DisplayBox.d.ts +0 -0
  94. package/lib/components/FormComponents/DisplayItem/DisplayBox.js +2 -0
  95. package/lib/components/FormComponents/DisplayItem/DisplayBox.js.map +1 -0
  96. package/lib/components/FormComponents/DisplayItem/DisplayBox.styles.d.ts +4 -0
  97. package/lib/components/FormComponents/DisplayItem/DisplayBox.styles.js +35 -0
  98. package/lib/components/FormComponents/DisplayItem/DisplayBox.styles.js.map +1 -0
  99. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.d.ts +3 -1
  100. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js +2 -2
  101. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js.map +1 -1
  102. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.d.ts +2 -7
  103. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js +0 -1
  104. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js.map +1 -1
  105. package/lib/components/FormComponents/DisplayItem/DisplayItem.js +2 -2
  106. package/lib/components/FormComponents/DisplayItem/DisplayItem.js.map +1 -1
  107. package/lib/components/FormComponents/GridGroup/GridGroup.d.ts +3 -3
  108. package/lib/components/FormComponents/GridGroup/GridGroup.js +16 -9
  109. package/lib/components/FormComponents/GridGroup/GridGroup.js.map +1 -1
  110. package/lib/components/FormComponents/GridGroup/GridRow.d.ts +3 -3
  111. package/lib/components/FormComponents/GridGroup/GridRow.js +4 -4
  112. package/lib/components/FormComponents/GridGroup/GridRow.js.map +1 -1
  113. package/lib/components/FormComponents/GridGroup/GridTable.d.ts +3 -2
  114. package/lib/components/FormComponents/GridGroup/GridTable.js +9 -4
  115. package/lib/components/FormComponents/GridGroup/GridTable.js.map +1 -1
  116. package/lib/components/FormComponents/GridGroup/index.d.ts +1 -0
  117. package/lib/components/FormComponents/GridGroup/index.js +18 -0
  118. package/lib/components/FormComponents/GridGroup/index.js.map +1 -0
  119. package/lib/components/FormComponents/GroupItem/GroupHeading.d.ts +1 -0
  120. package/lib/components/FormComponents/GroupItem/GroupHeading.js +6 -5
  121. package/lib/components/FormComponents/GroupItem/GroupHeading.js.map +1 -1
  122. package/lib/components/FormComponents/GroupItem/GroupItem.d.ts +3 -4
  123. package/lib/components/FormComponents/GroupItem/GroupItem.js +7 -5
  124. package/lib/components/FormComponents/GroupItem/GroupItem.js.map +1 -1
  125. package/lib/components/FormComponents/GroupItem/GroupItem.styles.d.ts +2 -6
  126. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.d.ts +3 -3
  127. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +11 -12
  128. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
  129. package/lib/components/FormComponents/IntegerItem/IntegerItem.d.ts +3 -3
  130. package/lib/components/FormComponents/IntegerItem/IntegerItem.js +7 -7
  131. package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
  132. package/lib/components/FormComponents/IntegerItem/SliderItem.d.ts +9 -0
  133. package/lib/components/FormComponents/IntegerItem/SliderItem.js +75 -0
  134. package/lib/components/FormComponents/IntegerItem/SliderItem.js.map +1 -0
  135. package/lib/components/FormComponents/Item.styles.d.ts +0 -4
  136. package/lib/components/FormComponents/Item.styles.js +0 -4
  137. package/lib/components/FormComponents/Item.styles.js.map +1 -1
  138. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +2 -2
  139. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +1 -1
  140. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.d.ts +3 -2
  141. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js +3 -3
  142. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js.map +1 -1
  143. package/lib/components/FormComponents/ItemParts/ItemLabelText.d.ts +1 -0
  144. package/lib/components/FormComponents/ItemParts/ItemLabelText.js +4 -6
  145. package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -1
  146. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.d.ts +1 -0
  147. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +2 -2
  148. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -1
  149. package/lib/components/FormComponents/Lists.styles.d.ts +2 -9
  150. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.d.ts +3 -2
  151. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js +2 -3
  152. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js.map +1 -1
  153. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.d.ts +3 -3
  154. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +8 -7
  155. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
  156. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.d.ts +3 -3
  157. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +16 -15
  158. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
  159. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.d.ts +3 -3
  160. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js +6 -6
  161. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js.map +1 -1
  162. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.d.ts +3 -3
  163. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +7 -6
  164. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
  165. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.d.ts +3 -2
  166. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js +2 -2
  167. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js.map +1 -1
  168. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.d.ts +3 -3
  169. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +7 -6
  170. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -1
  171. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.d.ts +3 -2
  172. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js +2 -2
  173. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js.map +1 -1
  174. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.d.ts +3 -3
  175. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +8 -7
  176. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -1
  177. package/lib/components/FormComponents/RepeatGroup/AddItemButton.d.ts +1 -0
  178. package/lib/components/FormComponents/RepeatGroup/AddItemButton.js +2 -2
  179. package/lib/components/FormComponents/RepeatGroup/AddItemButton.js.map +1 -1
  180. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.d.ts +1 -0
  181. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +2 -2
  182. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +1 -1
  183. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.d.ts +2 -2
  184. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +20 -7
  185. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -1
  186. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.d.ts +2 -2
  187. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js +5 -3
  188. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js.map +1 -1
  189. package/lib/components/FormComponents/RepeatItem/AddItemButton.d.ts +1 -0
  190. package/lib/components/FormComponents/RepeatItem/AddItemButton.js +2 -2
  191. package/lib/components/FormComponents/RepeatItem/AddItemButton.js.map +1 -1
  192. package/lib/components/FormComponents/RepeatItem/DeleteItemButton.d.ts +1 -0
  193. package/lib/components/FormComponents/RepeatItem/DeleteItemButton.js +2 -2
  194. package/lib/components/FormComponents/RepeatItem/DeleteItemButton.js.map +1 -1
  195. package/lib/components/FormComponents/RepeatItem/RepeatField.d.ts +3 -3
  196. package/lib/components/FormComponents/RepeatItem/RepeatField.js +5 -3
  197. package/lib/components/FormComponents/RepeatItem/RepeatField.js.map +1 -1
  198. package/lib/components/FormComponents/RepeatItem/RepeatItem.d.ts +4 -3
  199. package/lib/components/FormComponents/RepeatItem/RepeatItem.js +15 -5
  200. package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
  201. package/lib/components/FormComponents/RepeatItem/RepeatItem.styles.d.ts +4 -18
  202. package/lib/components/FormComponents/RepeatItem/index.d.ts +1 -0
  203. package/lib/components/FormComponents/RepeatItem/index.js +18 -0
  204. package/lib/components/FormComponents/RepeatItem/index.js.map +1 -0
  205. package/lib/components/FormComponents/SingleItem/SingleItem.d.ts +3 -3
  206. package/lib/components/FormComponents/SingleItem/SingleItem.js +4 -2
  207. package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
  208. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.d.ts +3 -3
  209. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js +20 -15
  210. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -1
  211. package/lib/components/FormComponents/SliderItem/DisplayBox.styles.d.ts +4 -0
  212. package/lib/components/FormComponents/SliderItem/DisplayBox.styles.js +35 -0
  213. package/lib/components/FormComponents/SliderItem/DisplayBox.styles.js.map +1 -0
  214. package/lib/components/FormComponents/SliderItem/Slider.styles.d.ts +6 -0
  215. package/lib/components/FormComponents/SliderItem/Slider.styles.js +33 -0
  216. package/lib/components/FormComponents/SliderItem/Slider.styles.js.map +1 -0
  217. package/lib/components/FormComponents/SliderItem/SliderDisplayValue.d.ts +8 -0
  218. package/lib/components/FormComponents/SliderItem/SliderDisplayValue.js +28 -0
  219. package/lib/components/FormComponents/SliderItem/SliderDisplayValue.js.map +1 -0
  220. package/lib/components/FormComponents/SliderItem/SliderField.d.ts +16 -0
  221. package/lib/components/FormComponents/SliderItem/SliderField.js +41 -0
  222. package/lib/components/FormComponents/SliderItem/SliderField.js.map +1 -0
  223. package/lib/components/FormComponents/SliderItem/SliderItem.d.ts +9 -0
  224. package/lib/components/FormComponents/SliderItem/SliderItem.js +56 -0
  225. package/lib/components/FormComponents/SliderItem/SliderItem.js.map +1 -0
  226. package/lib/components/FormComponents/SliderItem/SliderLabels.d.ts +7 -0
  227. package/lib/components/FormComponents/SliderItem/SliderLabels.js +32 -0
  228. package/lib/components/FormComponents/SliderItem/SliderLabels.js.map +1 -0
  229. package/lib/components/FormComponents/StringItem/StringItem.d.ts +3 -3
  230. package/lib/components/FormComponents/StringItem/StringItem.js +5 -4
  231. package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
  232. package/lib/components/FormComponents/Tables/AddRowButton.d.ts +1 -0
  233. package/lib/components/FormComponents/Tables/AddRowButton.js +2 -2
  234. package/lib/components/FormComponents/Tables/AddRowButton.js.map +1 -1
  235. package/lib/components/FormComponents/Tables/DeleteRowButton.d.ts +1 -0
  236. package/lib/components/FormComponents/Tables/DeleteRowButton.js +2 -2
  237. package/lib/components/FormComponents/Tables/DeleteRowButton.js.map +1 -1
  238. package/lib/components/FormComponents/Tables/GroupTable.d.ts +4 -3
  239. package/lib/components/FormComponents/Tables/GroupTable.js +25 -6
  240. package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -1
  241. package/lib/components/FormComponents/Tables/GroupTableRow.d.ts +3 -3
  242. package/lib/components/FormComponents/Tables/GroupTableRow.js +4 -4
  243. package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -1
  244. package/lib/components/FormComponents/Tables/QItemGroupTable.js +5 -7
  245. package/lib/components/FormComponents/Tables/QItemGroupTable.js.map +1 -1
  246. package/lib/components/FormComponents/Tables/QItemGroupTableRow.js +2 -2
  247. package/lib/components/FormComponents/Tables/QItemGroupTableRow.js.map +1 -1
  248. package/lib/components/FormComponents/TextItem/TextItem.d.ts +3 -3
  249. package/lib/components/FormComponents/TextItem/TextItem.js +5 -4
  250. package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
  251. package/lib/components/FormComponents/TimeItem/TimeItem.d.ts +3 -3
  252. package/lib/components/FormComponents/TimeItem/TimeItem.js +5 -4
  253. package/lib/components/FormComponents/TimeItem/TimeItem.js.map +1 -1
  254. package/lib/components/FormComponents/UrlItem/UrlItem.d.ts +3 -3
  255. package/lib/components/FormComponents/UrlItem/UrlItem.js +5 -4
  256. package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -1
  257. package/lib/components/FormComponents/index.d.ts +3 -0
  258. package/lib/components/FormComponents/index.js +3 -0
  259. package/lib/components/FormComponents/index.js.map +1 -1
  260. package/lib/components/Lists.styles.d.ts +2 -9
  261. package/lib/components/Renderer/BaseRenderer.js +3 -5
  262. package/lib/components/Renderer/BaseRenderer.js.map +1 -1
  263. package/lib/components/Renderer/FormBodyCollapsible.d.ts +2 -2
  264. package/lib/components/Renderer/FormBodyCollapsible.js +6 -5
  265. package/lib/components/Renderer/FormBodyCollapsible.js.map +1 -1
  266. package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.d.ts +2 -2
  267. package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.js.map +1 -1
  268. package/lib/components/Renderer/FormBodyTabbed.d.ts +2 -2
  269. package/lib/components/Renderer/FormBodyTabbed.js +6 -5
  270. package/lib/components/Renderer/FormBodyTabbed.js.map +1 -1
  271. package/lib/components/Renderer/FormTopLevelItem.d.ts +2 -2
  272. package/lib/components/Renderer/FormTopLevelItem.js +9 -5
  273. package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
  274. package/lib/components/Tabs/FormBodySingleTab.js +1 -1
  275. package/lib/components/Tabs/FormBodySingleTab.js.map +1 -1
  276. package/lib/components/Tabs/ShowCompletedTabsSection.js +1 -1
  277. package/lib/components/Tabs/ShowCompletedTabsSection.js.map +1 -1
  278. package/lib/hooks/useDateSeparatorValidation.d.ts +2 -0
  279. package/lib/hooks/useDateSeparatorValidation.js +25 -0
  280. package/lib/hooks/useDateSeparatorValidation.js.map +1 -0
  281. package/lib/hooks/useDateValidation.d.ts +2 -0
  282. package/lib/hooks/useDateValidation.js +61 -0
  283. package/lib/hooks/useDateValidation.js.map +1 -0
  284. package/lib/hooks/useDecimalCalculatedExpression.d.ts +0 -1
  285. package/lib/hooks/useDecimalCalculatedExpression.js +3 -3
  286. package/lib/hooks/useDecimalCalculatedExpression.js.map +1 -1
  287. package/lib/hooks/useInitialiseRepeatAnswers.d.ts +1 -1
  288. package/lib/hooks/useInitialiseRepeatAnswers.js.map +1 -1
  289. package/lib/hooks/useIntegerCalculatedExpression.d.ts +0 -1
  290. package/lib/hooks/useIntegerCalculatedExpression.js +3 -3
  291. package/lib/hooks/useIntegerCalculatedExpression.js.map +1 -1
  292. package/lib/hooks/useMinimalStringCalculatedExpression.d.ts +11 -0
  293. package/lib/hooks/useMinimalStringCalculatedExpression.js +37 -0
  294. package/lib/hooks/useMinimalStringCalculatedExpression.js.map +1 -0
  295. package/lib/hooks/useReadOnly.d.ts +3 -0
  296. package/lib/hooks/useReadOnly.js +26 -0
  297. package/lib/hooks/useReadOnly.js.map +1 -0
  298. package/lib/hooks/useSliderExtensions.d.ts +10 -0
  299. package/lib/hooks/useSliderExtensions.js +37 -0
  300. package/lib/hooks/useSliderExtensions.js.map +1 -0
  301. package/lib/hooks/useTerminologyServerQuery.js +0 -1
  302. package/lib/hooks/useTerminologyServerQuery.js.map +1 -1
  303. package/lib/index.d.ts +3 -3
  304. package/lib/index.js +15 -6
  305. package/lib/index.js.map +1 -1
  306. package/lib/interfaces/calculatedExpression.interface.d.ts +1 -1
  307. package/lib/interfaces/index.d.ts +2 -0
  308. package/lib/interfaces/index.js +18 -0
  309. package/lib/interfaces/index.js.map +1 -0
  310. package/lib/interfaces/questionnaireStore.interface.d.ts +1 -0
  311. package/lib/interfaces/renderProps.interface.d.ts +7 -3
  312. package/lib/stores/useQuestionnaireStore.d.ts +1 -0
  313. package/lib/stores/useQuestionnaireStore.js +28 -12
  314. package/lib/stores/useQuestionnaireStore.js.map +1 -1
  315. package/lib/test.d.ts +4 -0
  316. package/lib/test.js +18 -0
  317. package/lib/test.js.map +1 -0
  318. package/lib/theme/customGlobalStyles.js +0 -4
  319. package/lib/theme/customGlobalStyles.js.map +1 -1
  320. package/lib/theme/overrides/Typography.d.ts +13 -0
  321. package/lib/theme/overrides/Typography.js +31 -0
  322. package/lib/theme/overrides/Typography.js.map +1 -0
  323. package/lib/theme/typography.d.ts +0 -2
  324. package/lib/theme/typography.js +3 -5
  325. package/lib/theme/typography.js.map +1 -1
  326. package/lib/utils/calculatedExpression.d.ts +17 -1
  327. package/lib/utils/calculatedExpression.js +71 -20
  328. package/lib/utils/calculatedExpression.js.map +1 -1
  329. package/lib/utils/dayjsExtend.d.ts +1 -0
  330. package/lib/utils/dayjsExtend.js +22 -0
  331. package/lib/utils/dayjsExtend.js.map +1 -0
  332. package/lib/utils/enableWhenExpression.d.ts +5 -1
  333. package/lib/utils/enableWhenExpression.js +26 -21
  334. package/lib/utils/enableWhenExpression.js.map +1 -1
  335. package/lib/utils/fhirpath.d.ts +3 -1
  336. package/lib/utils/fhirpath.js +25 -15
  337. package/lib/utils/fhirpath.js.map +1 -1
  338. package/lib/utils/index.d.ts +1 -0
  339. package/lib/utils/index.js +1 -0
  340. package/lib/utils/index.js.map +1 -1
  341. package/lib/utils/initialiseForm.d.ts +2 -0
  342. package/lib/utils/initialiseForm.js +13 -5
  343. package/lib/utils/initialiseForm.js.map +1 -1
  344. package/lib/utils/itemControl.d.ts +12 -0
  345. package/lib/utils/itemControl.js +30 -0
  346. package/lib/utils/itemControl.js.map +1 -1
  347. package/lib/utils/launchContext.d.ts +0 -0
  348. package/lib/utils/launchContext.js +2 -0
  349. package/lib/utils/launchContext.js.map +1 -0
  350. package/lib/utils/mapItem.d.ts +1 -1
  351. package/lib/utils/qrItem.d.ts +1 -7
  352. package/lib/utils/qrItem.js +1 -12
  353. package/lib/utils/qrItem.js.map +1 -1
  354. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +4 -2
  355. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -1
  356. package/lib/utils/removeHidden.js +2 -1
  357. package/lib/utils/removeHidden.js.map +1 -1
  358. package/lib/utils/repopulateIntoResponse.js +90 -29
  359. package/lib/utils/repopulateIntoResponse.js.map +1 -1
  360. package/lib/utils/repopulateItems.d.ts +14 -1
  361. package/lib/utils/repopulateItems.js +251 -70
  362. package/lib/utils/repopulateItems.js.map +1 -1
  363. package/lib/utils/repopulateRepeatGroup.js +9 -1
  364. package/lib/utils/repopulateRepeatGroup.js.map +1 -1
  365. package/lib/utils/slider.d.ts +28 -0
  366. package/lib/utils/slider.js +89 -0
  367. package/lib/utils/slider.js.map +1 -0
  368. package/package.json +20 -18
  369. package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +10 -7
  370. package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +11 -8
  371. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +46 -35
  372. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +48 -37
  373. package/src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx +21 -11
  374. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +11 -10
  375. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +12 -9
  376. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +3 -2
  377. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +16 -11
  378. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +3 -2
  379. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +14 -9
  380. package/src/components/FormComponents/CustomDateItem/CustomDateItem.tsx +140 -0
  381. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.tsx +96 -0
  382. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.tsx +81 -0
  383. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.tsx +33 -0
  384. package/src/components/FormComponents/{Typography.styles.ts → CustomDateItem/customDateTimePicker/MuiDatePicker.ts} +4 -7
  385. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/index.ts +18 -0
  386. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.ts +18 -0
  387. package/src/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.ts +154 -0
  388. package/src/components/FormComponents/CustomDateItem/index.ts +18 -0
  389. package/src/components/FormComponents/DateItem/DateItem.tsx +10 -8
  390. package/src/components/FormComponents/DateTimeItem/DateTimeItem.tsx +10 -8
  391. package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +11 -10
  392. package/src/components/FormComponents/DisplayItem/DisplayInstructions.styles.ts +0 -1
  393. package/src/components/FormComponents/DisplayItem/DisplayInstructions.tsx +8 -3
  394. package/src/components/FormComponents/DisplayItem/DisplayItem.tsx +2 -2
  395. package/src/components/FormComponents/GridGroup/GridGroup.tsx +49 -15
  396. package/src/components/FormComponents/GridGroup/GridRow.tsx +12 -7
  397. package/src/components/FormComponents/GridGroup/GridTable.tsx +32 -8
  398. package/src/components/FormComponents/GridGroup/index.ts +18 -0
  399. package/src/components/FormComponents/GroupItem/GroupHeading.tsx +12 -6
  400. package/src/components/FormComponents/GroupItem/GroupItem.tsx +13 -8
  401. package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +33 -11
  402. package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +11 -10
  403. package/src/components/FormComponents/Item.styles.ts +0 -5
  404. package/src/components/FormComponents/ItemParts/FadingCheckIcon.tsx +2 -2
  405. package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +6 -5
  406. package/src/components/FormComponents/ItemParts/ItemLabelText.tsx +10 -5
  407. package/src/components/FormComponents/ItemParts/ItemLabelWrapper.tsx +3 -2
  408. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx +10 -4
  409. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +15 -9
  410. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +58 -47
  411. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx +15 -6
  412. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +13 -10
  413. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.tsx +10 -4
  414. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +12 -7
  415. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx +10 -4
  416. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +14 -9
  417. package/src/components/FormComponents/RepeatGroup/AddItemButton.tsx +3 -2
  418. package/src/components/FormComponents/RepeatGroup/DeleteItemButton.tsx +3 -2
  419. package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +61 -10
  420. package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.tsx +23 -7
  421. package/src/components/FormComponents/RepeatItem/AddItemButton.tsx +3 -2
  422. package/src/components/FormComponents/RepeatItem/DeleteItemButton.tsx +3 -2
  423. package/src/components/FormComponents/RepeatItem/RepeatField.tsx +33 -9
  424. package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +44 -7
  425. package/src/components/FormComponents/RepeatItem/index.ts +18 -0
  426. package/src/components/FormComponents/SingleItem/SingleItem.tsx +12 -6
  427. package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +41 -11
  428. package/src/components/FormComponents/SliderItem/Slider.styles.ts +34 -0
  429. package/src/components/FormComponents/SliderItem/SliderDisplayValue.tsx +43 -0
  430. package/src/components/FormComponents/SliderItem/SliderField.tsx +88 -0
  431. package/src/components/FormComponents/SliderItem/SliderItem.tsx +115 -0
  432. package/src/components/FormComponents/SliderItem/SliderLabels.tsx +53 -0
  433. package/src/components/FormComponents/StringItem/StringItem.tsx +9 -7
  434. package/src/components/FormComponents/Tables/AddRowButton.tsx +3 -2
  435. package/src/components/FormComponents/Tables/DeleteRowButton.tsx +3 -2
  436. package/src/components/FormComponents/Tables/GroupTable.tsx +70 -7
  437. package/src/components/FormComponents/Tables/GroupTableRow.tsx +12 -7
  438. package/src/components/FormComponents/TextItem/TextItem.tsx +9 -7
  439. package/src/components/FormComponents/TimeItem/TimeItem.tsx +10 -8
  440. package/src/components/FormComponents/UrlItem/UrlItem.tsx +9 -7
  441. package/src/components/FormComponents/index.ts +3 -0
  442. package/src/components/Renderer/BaseRenderer.tsx +5 -12
  443. package/src/components/Renderer/FormBodyCollapsible.tsx +9 -7
  444. package/src/components/Renderer/FormBodySingleCollapsibleWrapper.tsx +2 -3
  445. package/src/components/Renderer/FormBodyTabbed.tsx +9 -7
  446. package/src/components/Renderer/FormTopLevelItem.tsx +21 -13
  447. package/src/components/Tabs/FormBodySingleTab.tsx +1 -1
  448. package/src/components/Tabs/ShowCompletedTabsSection.tsx +1 -1
  449. package/src/hooks/useDateValidation.tsx +79 -0
  450. package/src/hooks/useDecimalCalculatedExpression.ts +3 -4
  451. package/src/hooks/useInitialiseRepeatAnswers.ts +1 -1
  452. package/src/hooks/useIntegerCalculatedExpression.ts +3 -4
  453. package/src/hooks/useReadOnly.ts +30 -0
  454. package/src/hooks/useSliderExtensions.ts +50 -0
  455. package/src/hooks/useTerminologyServerQuery.ts +0 -2
  456. package/src/index.ts +12 -9
  457. package/src/interfaces/calculatedExpression.interface.ts +1 -1
  458. package/src/interfaces/questionnaireStore.interface.ts +1 -0
  459. package/src/interfaces/renderProps.interface.ts +8 -3
  460. package/src/stores/useQuestionnaireStore.ts +39 -16
  461. package/src/theme/customGlobalStyles.tsx +0 -4
  462. package/src/theme/typography.ts +3 -5
  463. package/src/utils/calculatedExpression.ts +104 -35
  464. package/src/utils/dayjsExtend.ts +23 -0
  465. package/src/utils/enableWhenExpression.ts +49 -34
  466. package/src/utils/fhirpath.ts +50 -31
  467. package/src/utils/index.ts +1 -0
  468. package/src/utils/initialiseForm.ts +15 -5
  469. package/src/utils/itemControl.ts +32 -0
  470. package/src/utils/mapItem.ts +1 -1
  471. package/src/utils/qrItem.ts +1 -16
  472. package/src/utils/questionnaireStoreUtils/createQuestionaireModel.ts +4 -2
  473. package/src/utils/removeHidden.ts +2 -1
  474. package/src/utils/repopulateIntoResponse.ts +134 -43
  475. package/src/utils/repopulateItems.ts +379 -101
  476. package/src/utils/slider.ts +112 -0
  477. package/src/utils/repopulateRepeatGroup.ts +0 -68
@@ -16,7 +16,11 @@
16
16
  */
17
17
 
18
18
  import React, { useState } from 'react';
19
- import type { PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
19
+ import type {
20
+ PropsWithParentIsReadOnlyAttribute,
21
+ PropsWithQrItemChangeHandler
22
+ } from '../../../interfaces/renderProps.interface';
23
+ import type { PropsWithShowMinimalViewAttribute } from '../../../interfaces/renderProps.interface';
20
24
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
21
25
  import { nanoid } from 'nanoid';
22
26
  import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
@@ -28,16 +32,20 @@ import RepeatField from './RepeatField';
28
32
  import Collapse from '@mui/material/Collapse';
29
33
  import useInitialiseRepeatAnswers from '../../../hooks/useInitialiseRepeatAnswers';
30
34
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
35
+ import useReadOnly from '../../../hooks/useReadOnly';
31
36
 
32
- interface RepeatItemProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem> {
37
+ interface RepeatItemProps
38
+ extends PropsWithQrItemChangeHandler,
39
+ PropsWithShowMinimalViewAttribute,
40
+ PropsWithParentIsReadOnlyAttribute {
33
41
  qItem: QuestionnaireItem;
34
- qrItem: QuestionnaireResponseItem;
42
+ qrItem: QuestionnaireResponseItem | null;
35
43
  }
36
44
 
37
45
  function RepeatItem(props: RepeatItemProps) {
38
- const { qItem, qrItem, onQrItemChange } = props;
46
+ const { qItem, qrItem, showMinimalView, parentIsReadOnly, onQrItemChange } = props;
39
47
 
40
- // Get additional rendering extensions
48
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
41
49
  const { displayInstructions } = useRenderingExtensions(qItem);
42
50
 
43
51
  const initialRepeatAnswers = useInitialiseRepeatAnswers(qItem, qrItem);
@@ -82,9 +90,36 @@ function RepeatItem(props: RepeatItemProps) {
82
90
  ]);
83
91
  }
84
92
 
93
+ if (showMinimalView) {
94
+ return (
95
+ <>
96
+ {repeatAnswers.map(({ nanoId, answer }, index) => {
97
+ const repeatAnswerQrItem = createEmptyQrItem(qItem);
98
+ if (answer) {
99
+ repeatAnswerQrItem.answer = [answer];
100
+ }
101
+
102
+ return (
103
+ <RepeatField
104
+ key={nanoId}
105
+ qItem={qItem}
106
+ qrItem={repeatAnswerQrItem}
107
+ answer={answer}
108
+ numOfRepeatAnswers={repeatAnswers.length}
109
+ parentIsReadOnly={parentIsReadOnly}
110
+ showMinimalView={showMinimalView}
111
+ onDeleteAnswer={() => handleDeleteItem(index)}
112
+ onQrItemChange={(newQrItem) => handleAnswerChange(newQrItem, index)}
113
+ />
114
+ );
115
+ })}
116
+ </>
117
+ );
118
+ }
119
+
85
120
  return (
86
121
  <FullWidthFormComponentBox data-test="q-item-repeat-box">
87
- <ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions}>
122
+ <ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions} readOnly={readOnly}>
88
123
  <TransitionGroup>
89
124
  {repeatAnswers.map(({ nanoId, answer }, index) => {
90
125
  const repeatAnswerQrItem = createEmptyQrItem(qItem);
@@ -99,6 +134,8 @@ function RepeatItem(props: RepeatItemProps) {
99
134
  qrItem={repeatAnswerQrItem}
100
135
  answer={answer}
101
136
  numOfRepeatAnswers={repeatAnswers.length}
137
+ parentIsReadOnly={parentIsReadOnly}
138
+ showMinimalView={showMinimalView}
102
139
  onDeleteAnswer={() => handleDeleteItem(index)}
103
140
  onQrItemChange={(newQrItem) => handleAnswerChange(newQrItem, index)}
104
141
  />
@@ -108,7 +145,7 @@ function RepeatItem(props: RepeatItemProps) {
108
145
  </TransitionGroup>
109
146
  </ItemFieldGrid>
110
147
 
111
- <AddItemButton repeatAnswers={repeatAnswers} onAddItem={handleAddItem} />
148
+ <AddItemButton repeatAnswers={repeatAnswers} readOnly={readOnly} onAddItem={handleAddItem} />
112
149
  </FullWidthFormComponentBox>
113
150
  );
114
151
  }
@@ -0,0 +1,18 @@
1
+ /*
2
+ * Copyright 2023 Commonwealth Scientific and Industrial Research
3
+ * Organisation (CSIRO) ABN 41 687 119 230.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ export { default as RepeatItem } from './RepeatItem';
@@ -20,24 +20,28 @@ import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
20
20
  import type {
21
21
  PropsWithIsRepeatedAttribute,
22
22
  PropsWithIsTabledAttribute,
23
+ PropsWithParentIsReadOnlyAttribute,
23
24
  PropsWithQrItemChangeHandler,
24
- PropsWithTextShownAttribute
25
+ PropsWithShowMinimalViewAttribute
25
26
  } from '../../../interfaces/renderProps.interface';
26
27
  import useQuestionnaireStore from '../../../stores/useQuestionnaireStore';
27
28
  import SingleItemSwitcher from './SingleItemSwitcher';
28
29
  import useHidden from '../../../hooks/useHidden';
30
+ import useReadOnly from '../../../hooks/useReadOnly';
29
31
 
30
32
  interface SingleItemProps
31
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
33
+ extends PropsWithQrItemChangeHandler,
32
34
  PropsWithIsRepeatedAttribute,
33
35
  PropsWithIsTabledAttribute,
34
- PropsWithTextShownAttribute {
36
+ PropsWithShowMinimalViewAttribute,
37
+ PropsWithParentIsReadOnlyAttribute {
35
38
  qItem: QuestionnaireItem;
36
- qrItem: QuestionnaireResponseItem;
39
+ qrItem: QuestionnaireResponseItem | null;
37
40
  }
38
41
 
39
42
  function SingleItem(props: SingleItemProps) {
40
- const { qItem, qrItem, isRepeated, isTabled, textShown, onQrItemChange } = props;
43
+ const { qItem, qrItem, isRepeated, isTabled, showMinimalView, parentIsReadOnly, onQrItemChange } =
44
+ props;
41
45
 
42
46
  const updateEnableWhenItem = useQuestionnaireStore((state) => state.updateEnableWhenItem);
43
47
 
@@ -51,6 +55,7 @@ function SingleItem(props: SingleItemProps) {
51
55
  [updateEnableWhenItem, onQrItemChange, qItem.linkId]
52
56
  );
53
57
 
58
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
54
59
  const itemIsHidden = useHidden(qItem);
55
60
  if (itemIsHidden) {
56
61
  return null;
@@ -62,7 +67,8 @@ function SingleItem(props: SingleItemProps) {
62
67
  qrItem={qrItem}
63
68
  isRepeated={isRepeated}
64
69
  isTabled={isTabled}
65
- textShown={textShown}
70
+ showMinimalView={showMinimalView}
71
+ parentIsReadOnly={readOnly}
66
72
  onQrItemChange={handleQrItemChange}
67
73
  />
68
74
  );
@@ -23,31 +23,36 @@ import Typography from '@mui/material/Typography';
23
23
  import type {
24
24
  PropsWithIsRepeatedAttribute,
25
25
  PropsWithIsTabledAttribute,
26
+ PropsWithParentIsReadOnlyAttribute,
26
27
  PropsWithQrItemChangeHandler,
27
- PropsWithTextShownAttribute
28
+ PropsWithShowMinimalViewAttribute
28
29
  } from '../../../interfaces/renderProps.interface';
29
30
  import StringItem from '../StringItem/StringItem';
30
31
  import BooleanItem from '../BooleanItem/BooleanItem';
31
32
  import TimeItem from '../TimeItem/TimeItem';
32
33
  import DateTimeItem from '../DateTimeItem/DateTimeItem';
33
- import DateItem from '../DateItem/DateItem';
34
34
  import TextItem from '../TextItem/TextItem';
35
35
  import DisplayItem from '../DisplayItem/DisplayItem';
36
- import IntegerItem from '../IntegerItem/IntegerItem';
37
36
  import DecimalItem from '../DecimalItem/DecimalItem';
38
37
  import UrlItem from '../UrlItem/UrlItem';
38
+ import CustomDateItem from '../CustomDateItem/CustomDateItem';
39
+ import { isSpecificItemControl } from '../../../utils';
40
+ import SliderItem from '../SliderItem/SliderItem';
41
+ import IntegerItem from '../IntegerItem/IntegerItem';
39
42
 
40
43
  interface SingleItemSwitcherProps
41
- extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
44
+ extends PropsWithQrItemChangeHandler,
42
45
  PropsWithIsRepeatedAttribute,
43
46
  PropsWithIsTabledAttribute,
44
- PropsWithTextShownAttribute {
47
+ PropsWithShowMinimalViewAttribute,
48
+ PropsWithParentIsReadOnlyAttribute {
45
49
  qItem: QuestionnaireItem;
46
- qrItem: QuestionnaireResponseItem;
50
+ qrItem: QuestionnaireResponseItem | null;
47
51
  }
48
52
 
49
53
  function SingleItemSwitcher(props: SingleItemSwitcherProps) {
50
- const { qItem, qrItem, isRepeated, isTabled, textShown, onQrItemChange } = props;
54
+ const { qItem, qrItem, isRepeated, isTabled, showMinimalView, parentIsReadOnly, onQrItemChange } =
55
+ props;
51
56
 
52
57
  switch (qItem.type) {
53
58
  case 'string':
@@ -57,6 +62,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
57
62
  qrItem={qrItem}
58
63
  isRepeated={isRepeated}
59
64
  isTabled={isTabled}
65
+ parentIsReadOnly={parentIsReadOnly}
60
66
  onQrItemChange={onQrItemChange}
61
67
  />
62
68
  );
@@ -67,6 +73,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
67
73
  qrItem={qrItem}
68
74
  isRepeated={isRepeated}
69
75
  isTabled={isTabled}
76
+ parentIsReadOnly={parentIsReadOnly}
70
77
  onQrItemChange={onQrItemChange}
71
78
  />
72
79
  );
@@ -77,16 +84,18 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
77
84
  qrItem={qrItem}
78
85
  isRepeated={isRepeated}
79
86
  isTabled={isTabled}
87
+ parentIsReadOnly={parentIsReadOnly}
80
88
  onQrItemChange={onQrItemChange}
81
89
  />
82
90
  );
83
91
  case 'date':
84
92
  return (
85
- <DateItem
93
+ <CustomDateItem
86
94
  qItem={qItem}
87
95
  qrItem={qrItem}
88
96
  isRepeated={isRepeated}
89
97
  isTabled={isTabled}
98
+ parentIsReadOnly={parentIsReadOnly}
90
99
  onQrItemChange={onQrItemChange}
91
100
  />
92
101
  );
@@ -97,6 +106,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
97
106
  qrItem={qrItem}
98
107
  isRepeated={isRepeated}
99
108
  isTabled={isTabled}
109
+ parentIsReadOnly={parentIsReadOnly}
100
110
  onQrItemChange={onQrItemChange}
101
111
  />
102
112
  );
@@ -106,18 +116,33 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
106
116
  qItem={qItem}
107
117
  qrItem={qrItem}
108
118
  isRepeated={isRepeated}
119
+ parentIsReadOnly={parentIsReadOnly}
109
120
  onQrItemChange={onQrItemChange}
110
121
  />
111
122
  );
112
123
  case 'display':
113
124
  return <DisplayItem qItem={qItem} />;
114
125
  case 'integer':
126
+ if (isSpecificItemControl(qItem, 'slider')) {
127
+ return (
128
+ <SliderItem
129
+ qItem={qItem}
130
+ qrItem={qrItem}
131
+ isRepeated={isRepeated}
132
+ isTabled={isTabled}
133
+ parentIsReadOnly={parentIsReadOnly}
134
+ onQrItemChange={onQrItemChange}
135
+ />
136
+ );
137
+ }
138
+
115
139
  return (
116
140
  <IntegerItem
117
141
  qItem={qItem}
118
142
  qrItem={qrItem}
119
143
  isRepeated={isRepeated}
120
144
  isTabled={isTabled}
145
+ parentIsReadOnly={parentIsReadOnly}
121
146
  onQrItemChange={onQrItemChange}
122
147
  />
123
148
  );
@@ -128,6 +153,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
128
153
  qrItem={qrItem}
129
154
  isRepeated={isRepeated}
130
155
  isTabled={isTabled}
156
+ parentIsReadOnly={parentIsReadOnly}
131
157
  onQrItemChange={onQrItemChange}
132
158
  />
133
159
  );
@@ -138,7 +164,8 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
138
164
  qrItem={qrItem}
139
165
  isRepeated={isRepeated}
140
166
  isTabled={isTabled}
141
- textShown={textShown}
167
+ showMinimalView={showMinimalView}
168
+ parentIsReadOnly={parentIsReadOnly}
142
169
  onQrItemChange={onQrItemChange}
143
170
  />
144
171
  );
@@ -149,7 +176,8 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
149
176
  qrItem={qrItem}
150
177
  isRepeated={isRepeated}
151
178
  isTabled={isTabled}
152
- textShown={textShown}
179
+ showMinimalView={showMinimalView}
180
+ parentIsReadOnly={parentIsReadOnly}
153
181
  onQrItemChange={onQrItemChange}
154
182
  />
155
183
  );
@@ -160,13 +188,15 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
160
188
  qrItem={qrItem}
161
189
  isRepeated={isRepeated}
162
190
  isTabled={isTabled}
191
+ parentIsReadOnly={parentIsReadOnly}
163
192
  onQrItemChange={onQrItemChange}
164
193
  />
165
194
  );
166
195
  default:
167
196
  return (
168
197
  <Typography>
169
- Item type not supported yet. Only R4 datatypes are supported at the moment.
198
+ Item type not supported yet, or something has went wrong. If your questionnnaire is not a
199
+ FHIR R4 resource, there might be issues rendering it.
170
200
  </Typography>
171
201
  );
172
202
  }
@@ -0,0 +1,34 @@
1
+ /*
2
+ * Copyright 2023 Commonwealth Scientific and Industrial Research
3
+ * Organisation (CSIRO) ABN 41 687 119 230.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ import { alpha, styled } from '@mui/material/styles';
19
+ import { Box } from '@mui/material';
20
+
21
+ export const SliderDisplayBox = styled(Box, {
22
+ shouldForwardProp: (prop) => prop !== 'hasLabels'
23
+ })<{ hasLabels: boolean }>(({ theme, hasLabels }) => ({
24
+ display: 'flex',
25
+ alignItems: 'center',
26
+ justifyContent: 'center',
27
+ margin: '0 auto',
28
+ marginBottom: hasLabels ? -20 : 0,
29
+ padding: theme.spacing(0.5),
30
+ borderRadius: Number(theme.shape.borderRadius) * 0.5,
31
+ border: `1px solid ${alpha(theme.palette.text.disabled, 0.5)}`,
32
+ minWidth: 28,
33
+ height: 18
34
+ }));
@@ -0,0 +1,43 @@
1
+ /*
2
+ * Copyright 2023 Commonwealth Scientific and Industrial Research
3
+ * Organisation (CSIRO) ABN 41 687 119 230.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ import React from 'react';
19
+ import { SliderDisplayBox } from './Slider.styles';
20
+ import Typography from '@mui/material/Typography';
21
+ import { pxToRem } from '../../../theme/typography';
22
+
23
+ interface SliderDisplayValueProps {
24
+ value: number;
25
+ hasLabels: boolean;
26
+ isInteracted: boolean;
27
+ }
28
+
29
+ function SliderDisplayValue(props: SliderDisplayValueProps) {
30
+ const { value, hasLabels, isInteracted } = props;
31
+
32
+ const valueToDisplay = isInteracted ? value : '-';
33
+
34
+ return (
35
+ <SliderDisplayBox hasLabels={hasLabels}>
36
+ <Typography textAlign="center" color="text.disabled" fontSize={pxToRem(9.5)}>
37
+ {valueToDisplay}
38
+ </Typography>
39
+ </SliderDisplayBox>
40
+ );
41
+ }
42
+
43
+ export default SliderDisplayValue;
@@ -0,0 +1,88 @@
1
+ /*
2
+ * Copyright 2023 Commonwealth Scientific and Industrial Research
3
+ * Organisation (CSIRO) ABN 41 687 119 230.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ import React from 'react';
19
+ import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
20
+ import Slider from '@mui/material/Slider';
21
+ import { getSliderMarks } from '../../../utils/slider';
22
+ import Stack from '@mui/material/Stack';
23
+ import SliderLabels from './SliderLabels';
24
+ import SliderDisplayValue from './SliderDisplayValue';
25
+
26
+ interface SliderFieldProps extends PropsWithIsTabledAttribute {
27
+ linkId: string;
28
+ value: number;
29
+ minValue: number;
30
+ minLabel: string;
31
+ maxValue: number;
32
+ maxLabel: string;
33
+ stepValue: number;
34
+ isInteracted: boolean;
35
+ readOnly: boolean;
36
+ onValueChange: (newValue: number) => void;
37
+ }
38
+
39
+ function SliderField(props: SliderFieldProps) {
40
+ const {
41
+ linkId,
42
+ value,
43
+ minValue,
44
+ maxValue,
45
+ stepValue,
46
+ minLabel,
47
+ maxLabel,
48
+ isInteracted,
49
+ readOnly,
50
+ isTabled,
51
+ onValueChange
52
+ } = props;
53
+
54
+ const sliderMarks = getSliderMarks(minValue, maxValue, minLabel, maxLabel, stepValue);
55
+
56
+ const sliderSx = {
57
+ maxWidth: !isTabled ? 280 : 3000,
58
+ minWidth: 160
59
+ };
60
+
61
+ const hasLabels = !!(minLabel || maxLabel);
62
+
63
+ return (
64
+ <Stack sx={{ ...sliderSx }}>
65
+ <SliderDisplayValue value={value} hasLabels={hasLabels} isInteracted={isInteracted} />
66
+ {hasLabels ? <SliderLabels minLabel={minLabel} maxLabel={maxLabel} /> : null}
67
+ <Slider
68
+ id={linkId}
69
+ value={value}
70
+ min={minValue}
71
+ max={maxValue}
72
+ step={stepValue}
73
+ marks={sliderMarks}
74
+ sx={{ ...sliderSx }}
75
+ onChange={(_, newValue) => {
76
+ if (typeof newValue === 'number') {
77
+ onValueChange(newValue);
78
+ }
79
+ }}
80
+ disabled={readOnly}
81
+ valueLabelDisplay="auto"
82
+ data-test="q-item-slider-field"
83
+ />
84
+ </Stack>
85
+ );
86
+ }
87
+
88
+ export default SliderField;
@@ -0,0 +1,115 @@
1
+ /*
2
+ * Copyright 2023 Commonwealth Scientific and Industrial Research
3
+ * Organisation (CSIRO) ABN 41 687 119 230.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ import React from 'react';
19
+ import type {
20
+ PropsWithIsRepeatedAttribute,
21
+ PropsWithIsTabledAttribute,
22
+ PropsWithParentIsReadOnlyAttribute,
23
+ PropsWithQrItemChangeHandler
24
+ } from '../../../interfaces/renderProps.interface';
25
+ import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
26
+ import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
27
+ import { createEmptyQrItem } from '../../../utils/qrItem';
28
+ import { FullWidthFormComponentBox } from '../../Box.styles';
29
+ import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
30
+ import useReadOnly from '../../../hooks/useReadOnly';
31
+ import SliderField from './SliderField';
32
+ import useSliderExtensions from '../../../hooks/useSliderExtensions';
33
+ import Box from '@mui/material/Box';
34
+
35
+ interface SliderItemProps
36
+ extends PropsWithQrItemChangeHandler,
37
+ PropsWithIsRepeatedAttribute,
38
+ PropsWithIsTabledAttribute,
39
+ PropsWithParentIsReadOnlyAttribute {
40
+ qItem: QuestionnaireItem;
41
+ qrItem: QuestionnaireResponseItem | null;
42
+ }
43
+
44
+ function SliderItem(props: SliderItemProps) {
45
+ const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
46
+
47
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
48
+ const { displayInstructions } = useRenderingExtensions(qItem);
49
+ const { minValue, maxValue, stepValue, minLabel, maxLabel } = useSliderExtensions(qItem);
50
+
51
+ const isInteracted = !!qrItem?.answer;
52
+
53
+ // Init input value
54
+ let valueInteger = 0;
55
+ if (qrItem?.answer) {
56
+ if (qrItem?.answer[0].valueInteger) {
57
+ valueInteger = qrItem.answer[0].valueInteger;
58
+ }
59
+ if (qrItem?.answer[0].valueDecimal) {
60
+ valueInteger = Math.round(qrItem.answer[0].valueDecimal);
61
+ }
62
+ }
63
+
64
+ // Event handlers
65
+ function handleValueChange(newValue: number) {
66
+ onQrItemChange({
67
+ ...createEmptyQrItem(qItem),
68
+ answer: [{ valueInteger: newValue }]
69
+ });
70
+ }
71
+
72
+ if (isRepeated) {
73
+ return (
74
+ <Box px={4}>
75
+ <SliderField
76
+ linkId={qItem.linkId}
77
+ value={valueInteger}
78
+ minValue={minValue}
79
+ maxValue={maxValue}
80
+ stepValue={stepValue}
81
+ minLabel={minLabel}
82
+ maxLabel={maxLabel}
83
+ isInteracted={isInteracted}
84
+ readOnly={readOnly}
85
+ isTabled={isTabled}
86
+ onValueChange={handleValueChange}
87
+ />
88
+ </Box>
89
+ );
90
+ }
91
+
92
+ return (
93
+ <FullWidthFormComponentBox data-test="q-item-slider-box">
94
+ <ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions} readOnly={readOnly}>
95
+ <Box px={4}>
96
+ <SliderField
97
+ linkId={qItem.linkId}
98
+ value={valueInteger}
99
+ minValue={minValue}
100
+ maxValue={maxValue}
101
+ stepValue={stepValue}
102
+ minLabel={minLabel}
103
+ maxLabel={maxLabel}
104
+ isInteracted={isInteracted}
105
+ readOnly={readOnly}
106
+ isTabled={isTabled}
107
+ onValueChange={handleValueChange}
108
+ />
109
+ </Box>
110
+ </ItemFieldGrid>
111
+ </FullWidthFormComponentBox>
112
+ );
113
+ }
114
+
115
+ export default SliderItem;
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Copyright 2023 Commonwealth Scientific and Industrial Research
3
+ * Organisation (CSIRO) ABN 41 687 119 230.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ import React from 'react';
19
+ import Typography from '@mui/material/Typography';
20
+ import { pxToRem } from '../../../theme/typography';
21
+ import Box from '@mui/material/Box';
22
+
23
+ interface SliderLabelsProps {
24
+ minLabel: string;
25
+ maxLabel: string;
26
+ }
27
+
28
+ function SliderLabels(props: SliderLabelsProps) {
29
+ const { minLabel, maxLabel } = props;
30
+
31
+ if (!minLabel && !maxLabel) {
32
+ return null;
33
+ }
34
+
35
+ return (
36
+ <Box display="flex" justifyContent="space-between" pb={0.5}>
37
+ {[minLabel, maxLabel].map((label, index) => (
38
+ <Typography
39
+ key={index}
40
+ textAlign="center"
41
+ fontSize={pxToRem(10)}
42
+ sx={{
43
+ transform: `translateX(${index === 0 ? '-50%' : '50%'})`,
44
+ wordWrap: 'break-word'
45
+ }}>
46
+ {label}
47
+ </Typography>
48
+ ))}
49
+ </Box>
50
+ );
51
+ }
52
+
53
+ export default SliderLabels;