@aehrc/smart-forms-renderer 0.2.0 → 0.4.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 (952) hide show
  1. package/.storybook/main.ts +28 -0
  2. package/.storybook/preview.ts +34 -0
  3. package/__mocks__/zustand.ts +60 -0
  4. package/jest.config.ts +16 -0
  5. package/lib/api/populate.js +63 -0
  6. package/lib/api/populate.js.map +1 -0
  7. package/{dist → lib}/components/Alert.styles.d.ts +5 -5
  8. package/lib/components/Alert.styles.js +40 -0
  9. package/lib/components/Alert.styles.js.map +1 -0
  10. package/lib/components/BackToTopButton/BackToTopButton.js +32 -0
  11. package/lib/components/BackToTopButton/BackToTopButton.js.map +1 -0
  12. package/{dist → lib}/components/Box.styles.d.ts +15 -15
  13. package/lib/components/Box.styles.js +30 -0
  14. package/lib/components/Box.styles.js.map +1 -0
  15. package/lib/components/FormComponents/BooleanItem/BooleanField.js +24 -0
  16. package/lib/components/FormComponents/BooleanItem/BooleanField.js.map +1 -0
  17. package/lib/components/FormComponents/BooleanItem/BooleanItem.js +49 -0
  18. package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -0
  19. package/lib/components/FormComponents/DateItem/DateField.js +31 -0
  20. package/lib/components/FormComponents/DateItem/DateField.js.map +1 -0
  21. package/lib/components/FormComponents/DateItem/DateItem.js +52 -0
  22. package/lib/components/FormComponents/DateItem/DateItem.js.map +1 -0
  23. package/lib/components/FormComponents/DateTimeItem/DateTimeField.js +33 -0
  24. package/lib/components/FormComponents/DateTimeItem/DateTimeField.js.map +1 -0
  25. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js +52 -0
  26. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js.map +1 -0
  27. package/lib/components/FormComponents/DecimalItem/DecimalField.js +30 -0
  28. package/lib/components/FormComponents/DecimalItem/DecimalField.js.map +1 -0
  29. package/lib/components/FormComponents/DecimalItem/DecimalItem.js +80 -0
  30. package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -0
  31. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js +26 -0
  32. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js.map +1 -0
  33. package/{dist → lib}/components/FormComponents/DisplayItem/DisplayInstructions.styles.d.ts +5 -5
  34. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js +23 -0
  35. package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js.map +1 -0
  36. package/lib/components/FormComponents/DisplayItem/DisplayItem.js +31 -0
  37. package/lib/components/FormComponents/DisplayItem/DisplayItem.js.map +1 -0
  38. package/{dist → lib}/components/FormComponents/GridGroup/GridGroup.d.ts +1 -1
  39. package/lib/components/FormComponents/GridGroup/GridGroup.js +58 -0
  40. package/lib/components/FormComponents/GridGroup/GridGroup.js.map +1 -0
  41. package/{dist → lib}/components/FormComponents/GridGroup/GridRow.d.ts +1 -1
  42. package/lib/components/FormComponents/GridGroup/GridRow.js +55 -0
  43. package/lib/components/FormComponents/GridGroup/GridRow.js.map +1 -0
  44. package/lib/components/FormComponents/GridGroup/GridTable.js +42 -0
  45. package/lib/components/FormComponents/GridGroup/GridTable.js.map +1 -0
  46. package/lib/components/FormComponents/GroupItem/GroupHeading.js +39 -0
  47. package/lib/components/FormComponents/GroupItem/GroupHeading.js.map +1 -0
  48. package/{dist → lib}/components/FormComponents/GroupItem/GroupItem.d.ts +1 -1
  49. package/lib/components/FormComponents/GroupItem/GroupItem.js +62 -0
  50. package/lib/components/FormComponents/GroupItem/GroupItem.js.map +1 -0
  51. package/{dist → lib}/components/FormComponents/GroupItem/GroupItem.styles.d.ts +5 -5
  52. package/lib/components/FormComponents/GroupItem/GroupItem.styles.js +27 -0
  53. package/lib/components/FormComponents/GroupItem/GroupItem.styles.js.map +1 -0
  54. package/{dist → lib}/components/FormComponents/GroupItem/GroupItemSwitcher.d.ts +1 -1
  55. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +73 -0
  56. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -0
  57. package/lib/components/FormComponents/GroupItem/NextTabButton.js +25 -0
  58. package/lib/components/FormComponents/GroupItem/NextTabButton.js.map +1 -0
  59. package/lib/components/FormComponents/GroupItem/NextTabButtonWrapper.js +55 -0
  60. package/lib/components/FormComponents/GroupItem/NextTabButtonWrapper.js.map +1 -0
  61. package/lib/components/FormComponents/IntegerItem/IntegerField.js +30 -0
  62. package/lib/components/FormComponents/IntegerItem/IntegerField.js.map +1 -0
  63. package/lib/components/FormComponents/IntegerItem/IntegerItem.js +73 -0
  64. package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -0
  65. package/lib/components/FormComponents/Item.styles.d.ts +6 -0
  66. package/lib/components/FormComponents/Item.styles.js +27 -0
  67. package/lib/components/FormComponents/Item.styles.js.map +1 -0
  68. package/lib/components/FormComponents/ItemParts/ContextDisplayItem.js +29 -0
  69. package/lib/components/FormComponents/ItemParts/ContextDisplayItem.js.map +1 -0
  70. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +26 -0
  71. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +1 -0
  72. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js +31 -0
  73. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js.map +1 -0
  74. package/lib/components/FormComponents/ItemParts/ItemLabelText.js +45 -0
  75. package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -0
  76. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +32 -0
  77. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -0
  78. package/lib/components/FormComponents/ItemParts/QItemCheckboxSingle.js +24 -0
  79. package/lib/components/FormComponents/ItemParts/QItemCheckboxSingle.js.map +1 -0
  80. package/lib/components/FormComponents/ItemParts/QItemCheckboxSingleWithOpenLabel.js +33 -0
  81. package/lib/components/FormComponents/ItemParts/QItemCheckboxSingleWithOpenLabel.js.map +1 -0
  82. package/lib/components/FormComponents/ItemParts/QItemRadioButtonWithOpenLabel.js +31 -0
  83. package/lib/components/FormComponents/ItemParts/QItemRadioButtonWithOpenLabel.js.map +1 -0
  84. package/{dist → lib}/components/FormComponents/Lists.styles.d.ts +6 -6
  85. package/lib/components/FormComponents/Lists.styles.js +38 -0
  86. package/lib/components/FormComponents/Lists.styles.js.map +1 -0
  87. package/{dist → lib}/components/FormComponents/QItemChoice/QItemChoice.d.ts +1 -1
  88. package/lib/components/FormComponents/QItemChoice/QItemChoice.js +61 -0
  89. package/lib/components/FormComponents/QItemChoice/QItemChoice.js.map +1 -0
  90. package/{dist → lib}/components/FormComponents/QItemChoice/QItemChoiceAutocomplete.d.ts +1 -1
  91. package/lib/components/FormComponents/QItemChoice/QItemChoiceAutocomplete.js +85 -0
  92. package/lib/components/FormComponents/QItemChoice/QItemChoiceAutocomplete.js.map +1 -0
  93. package/lib/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerOption.js +70 -0
  94. package/lib/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerOption.js.map +1 -0
  95. package/lib/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerValueSet.js +66 -0
  96. package/lib/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerValueSet.js.map +1 -0
  97. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerOption.js +70 -0
  98. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerOption.js.map +1 -0
  99. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerValueSet.js +70 -0
  100. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerValueSet.js.map +1 -0
  101. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioSingle.js +24 -0
  102. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioSingle.js.map +1 -0
  103. package/lib/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerOption.js +70 -0
  104. package/lib/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerOption.js.map +1 -0
  105. package/lib/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerValueSet.js +80 -0
  106. package/lib/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerValueSet.js.map +1 -0
  107. package/{dist → lib}/components/FormComponents/QItemOpenChoice/QItemOpenChoice.d.ts +1 -1
  108. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoice.js +49 -0
  109. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoice.js.map +1 -0
  110. package/{dist → lib}/components/FormComponents/QItemOpenChoice/QItemOpenChoiceAutocomplete.d.ts +1 -1
  111. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceAutocomplete.js +104 -0
  112. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceAutocomplete.js.map +1 -0
  113. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceCheckboxAnswerOption.js +105 -0
  114. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceCheckboxAnswerOption.js.map +1 -0
  115. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceRadioAnswerOption.js +116 -0
  116. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceRadioAnswerOption.js.map +1 -0
  117. package/{dist → lib}/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerOption.d.ts +1 -1
  118. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerOption.js +74 -0
  119. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerOption.js.map +1 -0
  120. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerValueSet.js +66 -0
  121. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerValueSet.js.map +1 -0
  122. package/lib/components/FormComponents/RepeatGroup/AddItemButton.js +27 -0
  123. package/lib/components/FormComponents/RepeatGroup/AddItemButton.js.map +1 -0
  124. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +30 -0
  125. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +1 -0
  126. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +81 -0
  127. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -0
  128. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js +30 -0
  129. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js.map +1 -0
  130. package/lib/components/FormComponents/RepeatItem/AddItemButton.js +27 -0
  131. package/lib/components/FormComponents/RepeatItem/AddItemButton.js.map +1 -0
  132. package/lib/components/FormComponents/RepeatItem/DeleteItemButton.js +30 -0
  133. package/lib/components/FormComponents/RepeatItem/DeleteItemButton.js.map +1 -0
  134. package/lib/components/FormComponents/RepeatItem/RepeatField.js +31 -0
  135. package/lib/components/FormComponents/RepeatItem/RepeatField.js.map +1 -0
  136. package/lib/components/FormComponents/RepeatItem/RepeatItem.js +69 -0
  137. package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -0
  138. package/lib/components/FormComponents/RepeatItem/RepeatItem.styles.d.ts +22 -0
  139. package/lib/components/FormComponents/RepeatItem/RepeatItem.styles.js +29 -0
  140. package/lib/components/FormComponents/RepeatItem/RepeatItem.styles.js.map +1 -0
  141. package/lib/components/FormComponents/SingleItem/SingleItem.js +32 -0
  142. package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -0
  143. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js +63 -0
  144. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -0
  145. package/lib/components/FormComponents/StringItem/StringField.js +30 -0
  146. package/lib/components/FormComponents/StringItem/StringField.js.map +1 -0
  147. package/lib/components/FormComponents/StringItem/StringItem.js +71 -0
  148. package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -0
  149. package/lib/components/FormComponents/Tables/DeleteRowButton.js +31 -0
  150. package/lib/components/FormComponents/Tables/DeleteRowButton.js.map +1 -0
  151. package/{dist → lib}/components/FormComponents/Tables/QItemGroupTable.d.ts +1 -1
  152. package/lib/components/FormComponents/Tables/QItemGroupTable.js +99 -0
  153. package/lib/components/FormComponents/Tables/QItemGroupTable.js.map +1 -0
  154. package/{dist → lib}/components/FormComponents/Tables/QItemGroupTableRow.d.ts +1 -1
  155. package/lib/components/FormComponents/Tables/QItemGroupTableRow.js +46 -0
  156. package/lib/components/FormComponents/Tables/QItemGroupTableRow.js.map +1 -0
  157. package/lib/components/FormComponents/Tables/Table.styles.js +46 -0
  158. package/lib/components/FormComponents/Tables/Table.styles.js.map +1 -0
  159. package/lib/components/FormComponents/TextItem/TextField.js +29 -0
  160. package/lib/components/FormComponents/TextItem/TextField.js.map +1 -0
  161. package/lib/components/FormComponents/TextItem/TextItem.js +71 -0
  162. package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -0
  163. package/{dist → lib}/components/FormComponents/Textfield.styles.d.ts +1 -1
  164. package/lib/components/FormComponents/Textfield.styles.js +27 -0
  165. package/lib/components/FormComponents/Textfield.styles.js.map +1 -0
  166. package/lib/components/FormComponents/TimeItem/TimeField.js +30 -0
  167. package/lib/components/FormComponents/TimeItem/TimeField.js.map +1 -0
  168. package/lib/components/FormComponents/TimeItem/TimeItem.js +52 -0
  169. package/lib/components/FormComponents/TimeItem/TimeItem.js.map +1 -0
  170. package/lib/components/FormComponents/Typography.styles.d.ts +6 -0
  171. package/lib/components/FormComponents/Typography.styles.js +23 -0
  172. package/lib/components/FormComponents/Typography.styles.js.map +1 -0
  173. package/lib/components/FormComponents/UrlItem/UrlField.js +25 -0
  174. package/lib/components/FormComponents/UrlItem/UrlField.js.map +1 -0
  175. package/lib/components/FormComponents/UrlItem/UrlItem.js +61 -0
  176. package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -0
  177. package/lib/components/FormRenderer/BaseRenderer.d.ts +3 -0
  178. package/lib/components/FormRenderer/BaseRenderer.js +54 -0
  179. package/lib/components/FormRenderer/BaseRenderer.js.map +1 -0
  180. package/lib/components/FormRenderer/FormBodyCollapsible.js +57 -0
  181. package/lib/components/FormRenderer/FormBodyCollapsible.js.map +1 -0
  182. package/lib/components/FormRenderer/FormBodySingleCollapsible.js +39 -0
  183. package/lib/components/FormRenderer/FormBodySingleCollapsible.js.map +1 -0
  184. package/{dist → lib}/components/FormRenderer/FormBodySingleCollapsibleWrapper.d.ts +1 -1
  185. package/lib/components/FormRenderer/FormBodySingleCollapsibleWrapper.js +31 -0
  186. package/lib/components/FormRenderer/FormBodySingleCollapsibleWrapper.js.map +1 -0
  187. package/lib/components/FormRenderer/FormBodyTabbed.js +60 -0
  188. package/lib/components/FormRenderer/FormBodyTabbed.js.map +1 -0
  189. package/lib/components/FormRenderer/FormRenderer.js +54 -0
  190. package/lib/components/FormRenderer/FormRenderer.js.map +1 -0
  191. package/lib/components/FormRenderer/FormTitle.js +30 -0
  192. package/lib/components/FormRenderer/FormTitle.js.map +1 -0
  193. package/lib/components/FormRenderer/FormTopLevelItem.js +45 -0
  194. package/lib/components/FormRenderer/FormTopLevelItem.js.map +1 -0
  195. package/lib/components/FormRenderer/SmartFormsRenderer.js +37 -0
  196. package/lib/components/FormRenderer/SmartFormsRenderer.js.map +1 -0
  197. package/{dist → lib}/components/FormRenderer/index.d.ts +1 -0
  198. package/lib/components/FormRenderer/index.js +19 -0
  199. package/lib/components/FormRenderer/index.js.map +1 -0
  200. package/lib/components/Iconify/Iconify.js +26 -0
  201. package/lib/components/Iconify/Iconify.js.map +1 -0
  202. package/{dist → lib}/components/Lists.styles.d.ts +6 -6
  203. package/lib/components/Lists.styles.js +38 -0
  204. package/lib/components/Lists.styles.js.map +1 -0
  205. package/lib/components/Tabs/CompleteTabButton.js +29 -0
  206. package/lib/components/Tabs/CompleteTabButton.js.map +1 -0
  207. package/lib/components/Tabs/FormBodySingleTab.js +39 -0
  208. package/lib/components/Tabs/FormBodySingleTab.js.map +1 -0
  209. package/lib/components/Tabs/FormBodyTabList.js +52 -0
  210. package/lib/components/Tabs/FormBodyTabList.js.map +1 -0
  211. package/lib/components/index.js +18 -0
  212. package/lib/components/index.js.map +1 -0
  213. package/lib/hooks/index.d.ts +1 -0
  214. package/lib/hooks/index.js +2 -0
  215. package/lib/hooks/index.js.map +1 -0
  216. package/lib/hooks/useBackToTop.js +26 -0
  217. package/lib/hooks/useBackToTop.js.map +1 -0
  218. package/lib/hooks/useDebounce.js +38 -0
  219. package/lib/hooks/useDebounce.js.map +1 -0
  220. package/lib/hooks/useDecimalCalculatedExpression.js +50 -0
  221. package/lib/hooks/useDecimalCalculatedExpression.js.map +1 -0
  222. package/lib/hooks/useHidden.js +35 -0
  223. package/lib/hooks/useHidden.js.map +1 -0
  224. package/lib/hooks/useInitialiseGroupTable.js +36 -0
  225. package/lib/hooks/useInitialiseGroupTable.js.map +1 -0
  226. package/lib/hooks/useInitialiseRenderer.js +49 -0
  227. package/lib/hooks/useInitialiseRenderer.js.map +1 -0
  228. package/lib/hooks/useInitialiseRepeatAnswers.js +36 -0
  229. package/lib/hooks/useInitialiseRepeatAnswers.js.map +1 -0
  230. package/lib/hooks/useInitialiseRepeatGroups.js +36 -0
  231. package/lib/hooks/useInitialiseRepeatGroups.js.map +1 -0
  232. package/lib/hooks/useIntegerCalculatedExpression.js +44 -0
  233. package/lib/hooks/useIntegerCalculatedExpression.js.map +1 -0
  234. package/lib/hooks/useQueryClient.js +29 -0
  235. package/lib/hooks/useQueryClient.js.map +1 -0
  236. package/lib/hooks/useRenderingExtensions.js +30 -0
  237. package/lib/hooks/useRenderingExtensions.js.map +1 -0
  238. package/lib/hooks/useResponsive.js +37 -0
  239. package/lib/hooks/useResponsive.js.map +1 -0
  240. package/lib/hooks/useStringCalculatedExpression.js +44 -0
  241. package/lib/hooks/useStringCalculatedExpression.js.map +1 -0
  242. package/lib/hooks/useTerminologyServerQuery.js +73 -0
  243. package/lib/hooks/useTerminologyServerQuery.js.map +1 -0
  244. package/lib/hooks/useValidationError.js +38 -0
  245. package/lib/hooks/useValidationError.js.map +1 -0
  246. package/{dist → lib}/hooks/useValueSetCodings.d.ts +1 -1
  247. package/lib/hooks/useValueSetCodings.js +125 -0
  248. package/lib/hooks/useValueSetCodings.js.map +1 -0
  249. package/lib/index.d.ts +89 -0
  250. package/lib/index.js +153 -0
  251. package/lib/index.js.map +1 -0
  252. package/lib/interfaces/answerExpression.interface.js +18 -0
  253. package/lib/interfaces/answerExpression.interface.js.map +1 -0
  254. package/lib/interfaces/calculatedExpression.interface.js +2 -0
  255. package/lib/interfaces/calculatedExpression.interface.js.map +1 -0
  256. package/lib/interfaces/choice.enum.js +41 -0
  257. package/lib/interfaces/choice.enum.js.map +1 -0
  258. package/lib/interfaces/enableWhen.interface.js +18 -0
  259. package/lib/interfaces/enableWhen.interface.js.map +1 -0
  260. package/lib/interfaces/groupTable.interface.js +18 -0
  261. package/lib/interfaces/groupTable.interface.js.map +1 -0
  262. package/lib/interfaces/populate.interface.js +18 -0
  263. package/lib/interfaces/populate.interface.js.map +1 -0
  264. package/lib/interfaces/questionnaireStore.interface.js +18 -0
  265. package/lib/interfaces/questionnaireStore.interface.js.map +1 -0
  266. package/lib/interfaces/regex.interface.js +18 -0
  267. package/lib/interfaces/regex.interface.js.map +1 -0
  268. package/{dist → lib}/interfaces/renderProps.interface.d.ts +1 -1
  269. package/lib/interfaces/renderProps.interface.js +18 -0
  270. package/lib/interfaces/renderProps.interface.js.map +1 -0
  271. package/lib/interfaces/repeatGroup.interface.js +18 -0
  272. package/lib/interfaces/repeatGroup.interface.js.map +1 -0
  273. package/lib/interfaces/repeatItem.interface.js +2 -0
  274. package/lib/interfaces/repeatItem.interface.js.map +1 -0
  275. package/lib/interfaces/tab.interface.js +2 -0
  276. package/lib/interfaces/tab.interface.js.map +1 -0
  277. package/lib/interfaces/valueSet.interface.js +18 -0
  278. package/lib/interfaces/valueSet.interface.js.map +1 -0
  279. package/lib/interfaces/variables.interface.js +18 -0
  280. package/lib/interfaces/variables.interface.js.map +1 -0
  281. package/lib/stores/useConfigStore.js +17 -0
  282. package/lib/stores/useConfigStore.js.map +1 -0
  283. package/lib/stores/useQuestionnaireResponseStore.js +39 -0
  284. package/lib/stores/useQuestionnaireResponseStore.js.map +1 -0
  285. package/lib/stores/useQuestionnaireStore.js +151 -0
  286. package/lib/stores/useQuestionnaireStore.js.map +1 -0
  287. package/lib/utils/calculatedExpression.js +180 -0
  288. package/lib/utils/calculatedExpression.js.map +1 -0
  289. package/lib/utils/choice.js +160 -0
  290. package/lib/utils/choice.js.map +1 -0
  291. package/lib/utils/debounce.js +19 -0
  292. package/lib/utils/debounce.js.map +1 -0
  293. package/lib/utils/emptyResource.js +25 -0
  294. package/lib/utils/emptyResource.js.map +1 -0
  295. package/lib/utils/enableWhen.js +228 -0
  296. package/lib/utils/enableWhen.js.map +1 -0
  297. package/lib/utils/enableWhenExpression.js +76 -0
  298. package/lib/utils/enableWhenExpression.js.map +1 -0
  299. package/lib/utils/fhirpath.js +98 -0
  300. package/lib/utils/fhirpath.js.map +1 -0
  301. package/lib/utils/initialiseForm.js +45 -0
  302. package/lib/utils/initialiseForm.js.map +1 -0
  303. package/lib/utils/itemControl.js +299 -0
  304. package/lib/utils/itemControl.js.map +1 -0
  305. package/lib/utils/mapItem.js +80 -0
  306. package/lib/utils/mapItem.js.map +1 -0
  307. package/lib/utils/openChoice.js +150 -0
  308. package/lib/utils/openChoice.js.map +1 -0
  309. package/lib/utils/parseInputs.js +49 -0
  310. package/lib/utils/parseInputs.js.map +1 -0
  311. package/lib/utils/populate.js +78 -0
  312. package/lib/utils/populate.js.map +1 -0
  313. package/lib/utils/populateCallback.js +40 -0
  314. package/lib/utils/populateCallback.js.map +1 -0
  315. package/lib/utils/populateContexts.js +76 -0
  316. package/lib/utils/populateContexts.js.map +1 -0
  317. package/lib/utils/populateInputParams.js +193 -0
  318. package/lib/utils/populateInputParams.js.map +1 -0
  319. package/lib/utils/qItem.js +73 -0
  320. package/lib/utils/qItem.js.map +1 -0
  321. package/lib/utils/qrItem.js +221 -0
  322. package/lib/utils/qrItem.js.map +1 -0
  323. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js +43 -0
  324. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js.map +1 -0
  325. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +79 -0
  326. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -0
  327. package/lib/utils/questionnaireStoreUtils/extractContainedValueSets.js +59 -0
  328. package/lib/utils/questionnaireStoreUtils/extractContainedValueSets.js.map +1 -0
  329. package/lib/utils/questionnaireStoreUtils/extractLaunchContext.js +18 -0
  330. package/lib/utils/questionnaireStoreUtils/extractLaunchContext.js.map +1 -0
  331. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js +174 -0
  332. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js.map +1 -0
  333. package/lib/utils/questionnaireStoreUtils/extractTabs.js +31 -0
  334. package/lib/utils/questionnaireStoreUtils/extractTabs.js.map +1 -0
  335. package/lib/utils/questionnaireStoreUtils/extractVariables.js +63 -0
  336. package/lib/utils/questionnaireStoreUtils/extractVariables.js.map +1 -0
  337. package/lib/utils/questionnaireStoreUtils/resolveValueSets.js +58 -0
  338. package/lib/utils/questionnaireStoreUtils/resolveValueSets.js.map +1 -0
  339. package/lib/utils/removeHidden.d.ts +16 -0
  340. package/lib/utils/removeHidden.js +104 -0
  341. package/lib/utils/removeHidden.js.map +1 -0
  342. package/lib/utils/tabs.js +190 -0
  343. package/lib/utils/tabs.js.map +1 -0
  344. package/lib/utils/valueSet.js +126 -0
  345. package/lib/utils/valueSet.js.map +1 -0
  346. package/package.json +19 -27
  347. package/src/api/populate.js +63 -0
  348. package/src/api/populate.js.map +1 -0
  349. package/src/api/populate.ts +70 -0
  350. package/src/components/Alert.styles.js +40 -0
  351. package/src/components/Alert.styles.js.map +1 -0
  352. package/src/components/Alert.styles.ts +45 -0
  353. package/src/components/BackToTopButton/BackToTopButton.js +32 -0
  354. package/src/components/BackToTopButton/BackToTopButton.js.map +1 -0
  355. package/src/components/BackToTopButton/BackToTopButton.tsx +47 -0
  356. package/src/components/Box.styles.js +30 -0
  357. package/src/components/Box.styles.js.map +1 -0
  358. package/src/components/Box.styles.ts +33 -0
  359. package/src/components/FormComponents/BooleanItem/BooleanField.js +24 -0
  360. package/src/components/FormComponents/BooleanItem/BooleanField.js.map +1 -0
  361. package/src/components/FormComponents/BooleanItem/BooleanField.tsx +44 -0
  362. package/src/components/FormComponents/BooleanItem/BooleanItem.js +49 -0
  363. package/src/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -0
  364. package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +82 -0
  365. package/src/components/FormComponents/DateItem/DateField.js +31 -0
  366. package/src/components/FormComponents/DateItem/DateField.js.map +1 -0
  367. package/src/components/FormComponents/DateItem/DateField.tsx +56 -0
  368. package/src/components/FormComponents/DateItem/DateItem.js +52 -0
  369. package/src/components/FormComponents/DateItem/DateItem.js.map +1 -0
  370. package/src/components/FormComponents/DateItem/DateItem.tsx +95 -0
  371. package/src/components/FormComponents/DateTimeItem/DateTimeField.js +33 -0
  372. package/src/components/FormComponents/DateTimeItem/DateTimeField.js.map +1 -0
  373. package/src/components/FormComponents/DateTimeItem/DateTimeField.tsx +58 -0
  374. package/src/components/FormComponents/DateTimeItem/DateTimeItem.js +52 -0
  375. package/src/components/FormComponents/DateTimeItem/DateTimeItem.js.map +1 -0
  376. package/src/components/FormComponents/DateTimeItem/DateTimeItem.tsx +94 -0
  377. package/src/components/FormComponents/DecimalItem/DecimalField.js +30 -0
  378. package/src/components/FormComponents/DecimalItem/DecimalField.js.map +1 -0
  379. package/src/components/FormComponents/DecimalItem/DecimalField.tsx +76 -0
  380. package/src/components/FormComponents/DecimalItem/DecimalItem.js +80 -0
  381. package/src/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -0
  382. package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +152 -0
  383. package/src/components/FormComponents/DisplayItem/DisplayInstructions.js +26 -0
  384. package/src/components/FormComponents/DisplayItem/DisplayInstructions.js.map +1 -0
  385. package/src/components/FormComponents/DisplayItem/DisplayInstructions.styles.js +23 -0
  386. package/src/components/FormComponents/DisplayItem/DisplayInstructions.styles.js.map +1 -0
  387. package/src/components/FormComponents/DisplayItem/DisplayInstructions.styles.ts +24 -0
  388. package/src/components/FormComponents/DisplayItem/DisplayInstructions.tsx +38 -0
  389. package/src/components/FormComponents/DisplayItem/DisplayItem.js +31 -0
  390. package/src/components/FormComponents/DisplayItem/DisplayItem.js.map +1 -0
  391. package/src/components/FormComponents/DisplayItem/DisplayItem.tsx +43 -0
  392. package/src/components/FormComponents/GridGroup/GridGroup.js +58 -0
  393. package/src/components/FormComponents/GridGroup/GridGroup.js.map +1 -0
  394. package/src/components/FormComponents/GridGroup/GridGroup.tsx +92 -0
  395. package/src/components/FormComponents/GridGroup/GridRow.js +55 -0
  396. package/src/components/FormComponents/GridGroup/GridRow.js.map +1 -0
  397. package/src/components/FormComponents/GridGroup/GridRow.tsx +88 -0
  398. package/src/components/FormComponents/GridGroup/GridTable.js +42 -0
  399. package/src/components/FormComponents/GridGroup/GridTable.js.map +1 -0
  400. package/src/components/FormComponents/GridGroup/GridTable.tsx +77 -0
  401. package/src/components/FormComponents/GroupItem/GroupHeading.js +39 -0
  402. package/src/components/FormComponents/GroupItem/GroupHeading.js.map +1 -0
  403. package/src/components/FormComponents/GroupItem/GroupHeading.tsx +59 -0
  404. package/src/components/FormComponents/GroupItem/GroupItem.js +62 -0
  405. package/src/components/FormComponents/GroupItem/GroupItem.js.map +1 -0
  406. package/src/components/FormComponents/GroupItem/GroupItem.styles.js +27 -0
  407. package/src/components/FormComponents/GroupItem/GroupItem.styles.js.map +1 -0
  408. package/src/components/FormComponents/GroupItem/GroupItem.styles.ts +28 -0
  409. package/src/components/FormComponents/GroupItem/GroupItem.tsx +124 -0
  410. package/src/components/FormComponents/GroupItem/GroupItemSwitcher.js +73 -0
  411. package/src/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -0
  412. package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +150 -0
  413. package/src/components/FormComponents/GroupItem/NextTabButton.js +25 -0
  414. package/src/components/FormComponents/GroupItem/NextTabButton.js.map +1 -0
  415. package/src/components/FormComponents/GroupItem/NextTabButton.tsx +43 -0
  416. package/src/components/FormComponents/GroupItem/NextTabButtonWrapper.js +55 -0
  417. package/src/components/FormComponents/GroupItem/NextTabButtonWrapper.js.map +1 -0
  418. package/src/components/FormComponents/GroupItem/NextTabButtonWrapper.tsx +76 -0
  419. package/src/components/FormComponents/IntegerItem/IntegerField.js +30 -0
  420. package/src/components/FormComponents/IntegerItem/IntegerField.js.map +1 -0
  421. package/src/components/FormComponents/IntegerItem/IntegerField.tsx +76 -0
  422. package/src/components/FormComponents/IntegerItem/IntegerItem.js +73 -0
  423. package/src/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -0
  424. package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +140 -0
  425. package/src/components/FormComponents/Item.styles.js +27 -0
  426. package/src/components/FormComponents/Item.styles.js.map +1 -0
  427. package/src/components/FormComponents/Item.styles.ts +30 -0
  428. package/src/components/FormComponents/ItemParts/ContextDisplayItem.js +29 -0
  429. package/src/components/FormComponents/ItemParts/ContextDisplayItem.js.map +1 -0
  430. package/src/components/FormComponents/ItemParts/ContextDisplayItem.tsx +38 -0
  431. package/src/components/FormComponents/ItemParts/FadingCheckIcon.js +26 -0
  432. package/src/components/FormComponents/ItemParts/FadingCheckIcon.js.map +1 -0
  433. package/src/components/FormComponents/ItemParts/FadingCheckIcon.tsx +36 -0
  434. package/src/components/FormComponents/ItemParts/ItemFieldGrid.js +31 -0
  435. package/src/components/FormComponents/ItemParts/ItemFieldGrid.js.map +1 -0
  436. package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +47 -0
  437. package/src/components/FormComponents/ItemParts/ItemLabelText.js +45 -0
  438. package/src/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -0
  439. package/src/components/FormComponents/ItemParts/ItemLabelText.tsx +58 -0
  440. package/src/components/FormComponents/ItemParts/ItemLabelWrapper.js +32 -0
  441. package/src/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -0
  442. package/src/components/FormComponents/ItemParts/ItemLabelWrapper.tsx +47 -0
  443. package/src/components/FormComponents/ItemParts/QItemCheckboxSingle.js +24 -0
  444. package/src/components/FormComponents/ItemParts/QItemCheckboxSingle.js.map +1 -0
  445. package/src/components/FormComponents/ItemParts/QItemCheckboxSingle.tsx +44 -0
  446. package/src/components/FormComponents/ItemParts/QItemCheckboxSingleWithOpenLabel.js +33 -0
  447. package/src/components/FormComponents/ItemParts/QItemCheckboxSingleWithOpenLabel.js.map +1 -0
  448. package/src/components/FormComponents/ItemParts/QItemCheckboxSingleWithOpenLabel.tsx +62 -0
  449. package/src/components/FormComponents/ItemParts/QItemRadioButtonWithOpenLabel.js +31 -0
  450. package/src/components/FormComponents/ItemParts/QItemRadioButtonWithOpenLabel.js.map +1 -0
  451. package/src/components/FormComponents/ItemParts/QItemRadioButtonWithOpenLabel.tsx +54 -0
  452. package/src/components/FormComponents/Lists.styles.js +38 -0
  453. package/src/components/FormComponents/Lists.styles.js.map +1 -0
  454. package/src/components/FormComponents/Lists.styles.ts +39 -0
  455. package/src/components/FormComponents/QItemChoice/QItemChoice.js +61 -0
  456. package/src/components/FormComponents/QItemChoice/QItemChoice.js.map +1 -0
  457. package/src/components/FormComponents/QItemChoice/QItemChoice.tsx +130 -0
  458. package/src/components/FormComponents/QItemChoice/QItemChoiceAutocomplete.js +85 -0
  459. package/src/components/FormComponents/QItemChoice/QItemChoiceAutocomplete.js.map +1 -0
  460. package/src/components/FormComponents/QItemChoice/QItemChoiceAutocomplete.tsx +178 -0
  461. package/src/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerOption.js +70 -0
  462. package/src/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerOption.js.map +1 -0
  463. package/src/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerOption.tsx +131 -0
  464. package/src/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerValueSet.js +66 -0
  465. package/src/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerValueSet.js.map +1 -0
  466. package/src/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerValueSet.tsx +126 -0
  467. package/src/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerOption.js +70 -0
  468. package/src/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerOption.js.map +1 -0
  469. package/src/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerOption.tsx +125 -0
  470. package/src/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerValueSet.js +70 -0
  471. package/src/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerValueSet.js.map +1 -0
  472. package/src/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerValueSet.tsx +129 -0
  473. package/src/components/FormComponents/QItemChoice/QItemChoiceRadioSingle.js +24 -0
  474. package/src/components/FormComponents/QItemChoice/QItemChoiceRadioSingle.js.map +1 -0
  475. package/src/components/FormComponents/QItemChoice/QItemChoiceRadioSingle.tsx +41 -0
  476. package/src/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerOption.js +70 -0
  477. package/src/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerOption.js.map +1 -0
  478. package/src/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerOption.tsx +130 -0
  479. package/src/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerValueSet.js +80 -0
  480. package/src/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerValueSet.js.map +1 -0
  481. package/src/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerValueSet.tsx +162 -0
  482. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoice.js +49 -0
  483. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoice.js.map +1 -0
  484. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoice.tsx +104 -0
  485. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceAutocomplete.js +104 -0
  486. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceAutocomplete.js.map +1 -0
  487. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceAutocomplete.tsx +207 -0
  488. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceCheckboxAnswerOption.js +105 -0
  489. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceCheckboxAnswerOption.js.map +1 -0
  490. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceCheckboxAnswerOption.tsx +194 -0
  491. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceRadioAnswerOption.js +116 -0
  492. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceRadioAnswerOption.js.map +1 -0
  493. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceRadioAnswerOption.tsx +190 -0
  494. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerOption.js +74 -0
  495. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerOption.js.map +1 -0
  496. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerOption.tsx +149 -0
  497. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerValueSet.js +66 -0
  498. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerValueSet.js.map +1 -0
  499. package/src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerValueSet.tsx +138 -0
  500. package/src/components/FormComponents/RepeatGroup/AddItemButton.js +27 -0
  501. package/src/components/FormComponents/RepeatGroup/AddItemButton.js.map +1 -0
  502. package/src/components/FormComponents/RepeatGroup/AddItemButton.tsx +47 -0
  503. package/src/components/FormComponents/RepeatGroup/DeleteItemButton.js +30 -0
  504. package/src/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +1 -0
  505. package/src/components/FormComponents/RepeatGroup/DeleteItemButton.tsx +46 -0
  506. package/src/components/FormComponents/RepeatGroup/RepeatGroup.js +81 -0
  507. package/src/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -0
  508. package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +125 -0
  509. package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.js +30 -0
  510. package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.js.map +1 -0
  511. package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.tsx +66 -0
  512. package/src/components/FormComponents/RepeatItem/AddItemButton.js +27 -0
  513. package/src/components/FormComponents/RepeatItem/AddItemButton.js.map +1 -0
  514. package/src/components/FormComponents/RepeatItem/AddItemButton.tsx +47 -0
  515. package/src/components/FormComponents/RepeatItem/DeleteItemButton.js +30 -0
  516. package/src/components/FormComponents/RepeatItem/DeleteItemButton.js.map +1 -0
  517. package/src/components/FormComponents/RepeatItem/DeleteItemButton.tsx +46 -0
  518. package/src/components/FormComponents/RepeatItem/RepeatField.js +31 -0
  519. package/src/components/FormComponents/RepeatItem/RepeatField.js.map +1 -0
  520. package/src/components/FormComponents/RepeatItem/RepeatField.tsx +61 -0
  521. package/src/components/FormComponents/RepeatItem/RepeatItem.js +69 -0
  522. package/src/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -0
  523. package/src/components/FormComponents/RepeatItem/RepeatItem.styles.js +29 -0
  524. package/src/components/FormComponents/RepeatItem/RepeatItem.styles.js.map +1 -0
  525. package/src/components/FormComponents/RepeatItem/RepeatItem.styles.tsx +32 -0
  526. package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +116 -0
  527. package/src/components/FormComponents/SingleItem/SingleItem.js +32 -0
  528. package/src/components/FormComponents/SingleItem/SingleItem.js.map +1 -0
  529. package/src/components/FormComponents/SingleItem/SingleItem.tsx +62 -0
  530. package/src/components/FormComponents/SingleItem/SingleItemSwitcher.js +63 -0
  531. package/src/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -0
  532. package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +171 -0
  533. package/src/components/FormComponents/StringItem/StringField.js +30 -0
  534. package/src/components/FormComponents/StringItem/StringField.js.map +1 -0
  535. package/src/components/FormComponents/StringItem/StringField.tsx +76 -0
  536. package/src/components/FormComponents/StringItem/StringItem.js +71 -0
  537. package/src/components/FormComponents/StringItem/StringItem.js.map +1 -0
  538. package/src/components/FormComponents/StringItem/StringItem.tsx +131 -0
  539. package/src/components/FormComponents/Tables/DeleteRowButton.js +31 -0
  540. package/src/components/FormComponents/Tables/DeleteRowButton.js.map +1 -0
  541. package/src/components/FormComponents/Tables/DeleteRowButton.tsx +47 -0
  542. package/src/components/FormComponents/Tables/QItemGroupTable.js +99 -0
  543. package/src/components/FormComponents/Tables/QItemGroupTable.js.map +1 -0
  544. package/src/components/FormComponents/Tables/QItemGroupTable.tsx +171 -0
  545. package/src/components/FormComponents/Tables/QItemGroupTableRow.js +46 -0
  546. package/src/components/FormComponents/Tables/QItemGroupTableRow.js.map +1 -0
  547. package/src/components/FormComponents/Tables/QItemGroupTableRow.tsx +77 -0
  548. package/src/components/FormComponents/Tables/Table.styles.js +46 -0
  549. package/src/components/FormComponents/Tables/Table.styles.js.map +1 -0
  550. package/src/components/FormComponents/Tables/Table.styles.tsx +51 -0
  551. package/src/components/FormComponents/TextItem/TextField.js +29 -0
  552. package/src/components/FormComponents/TextItem/TextField.js.map +1 -0
  553. package/src/components/FormComponents/TextItem/TextField.tsx +74 -0
  554. package/src/components/FormComponents/TextItem/TextItem.js +71 -0
  555. package/src/components/FormComponents/TextItem/TextItem.js.map +1 -0
  556. package/src/components/FormComponents/TextItem/TextItem.tsx +128 -0
  557. package/src/components/FormComponents/Textfield.styles.js +27 -0
  558. package/src/components/FormComponents/Textfield.styles.js.map +1 -0
  559. package/src/components/FormComponents/Textfield.styles.ts +28 -0
  560. package/src/components/FormComponents/TimeItem/TimeField.js +30 -0
  561. package/src/components/FormComponents/TimeItem/TimeField.js.map +1 -0
  562. package/src/components/FormComponents/TimeItem/TimeField.tsx +54 -0
  563. package/src/components/FormComponents/TimeItem/TimeItem.js +52 -0
  564. package/src/components/FormComponents/TimeItem/TimeItem.js.map +1 -0
  565. package/src/components/FormComponents/TimeItem/TimeItem.tsx +94 -0
  566. package/src/components/FormComponents/Typography.styles.js +23 -0
  567. package/src/components/FormComponents/Typography.styles.js.map +1 -0
  568. package/src/components/FormComponents/Typography.styles.ts +24 -0
  569. package/src/components/FormComponents/UrlItem/UrlField.js +25 -0
  570. package/src/components/FormComponents/UrlItem/UrlField.js.map +1 -0
  571. package/src/components/FormComponents/UrlItem/UrlField.tsx +66 -0
  572. package/src/components/FormComponents/UrlItem/UrlItem.js +61 -0
  573. package/src/components/FormComponents/UrlItem/UrlItem.js.map +1 -0
  574. package/src/components/FormComponents/UrlItem/UrlItem.tsx +118 -0
  575. package/src/components/FormRenderer/BaseRenderer.tsx +82 -0
  576. package/src/components/FormRenderer/FormBodyCollapsible.js +57 -0
  577. package/src/components/FormRenderer/FormBodyCollapsible.js.map +1 -0
  578. package/src/components/FormRenderer/FormBodyCollapsible.tsx +96 -0
  579. package/src/components/FormRenderer/FormBodySingleCollapsible.js +39 -0
  580. package/src/components/FormRenderer/FormBodySingleCollapsible.js.map +1 -0
  581. package/src/components/FormRenderer/FormBodySingleCollapsible.tsx +76 -0
  582. package/src/components/FormRenderer/FormBodySingleCollapsibleWrapper.js +31 -0
  583. package/src/components/FormRenderer/FormBodySingleCollapsibleWrapper.js.map +1 -0
  584. package/src/components/FormRenderer/FormBodySingleCollapsibleWrapper.tsx +60 -0
  585. package/src/components/FormRenderer/FormBodyTabbed.js +60 -0
  586. package/src/components/FormRenderer/FormBodyTabbed.js.map +1 -0
  587. package/src/components/FormRenderer/FormBodyTabbed.tsx +106 -0
  588. package/src/components/FormRenderer/FormTitle.js +30 -0
  589. package/src/components/FormRenderer/FormTitle.js.map +1 -0
  590. package/src/components/FormRenderer/FormTitle.tsx +44 -0
  591. package/src/components/FormRenderer/FormTopLevelItem.js +45 -0
  592. package/src/components/FormRenderer/FormTopLevelItem.js.map +1 -0
  593. package/src/components/FormRenderer/FormTopLevelItem.tsx +93 -0
  594. package/src/components/FormRenderer/SmartFormsRenderer.js +37 -0
  595. package/src/components/FormRenderer/SmartFormsRenderer.js.map +1 -0
  596. package/src/components/FormRenderer/SmartFormsRenderer.tsx +59 -0
  597. package/src/components/FormRenderer/index.js +18 -0
  598. package/src/components/FormRenderer/index.js.map +1 -0
  599. package/src/components/FormRenderer/index.ts +19 -0
  600. package/src/components/Iconify/Iconify.js +26 -0
  601. package/src/components/Iconify/Iconify.js.map +1 -0
  602. package/src/components/Iconify/Iconify.tsx +38 -0
  603. package/src/components/Lists.styles.js +38 -0
  604. package/src/components/Lists.styles.js.map +1 -0
  605. package/src/components/Lists.styles.ts +39 -0
  606. package/src/components/Tabs/CompleteTabButton.js +29 -0
  607. package/src/components/Tabs/CompleteTabButton.js.map +1 -0
  608. package/src/components/Tabs/CompleteTabButton.tsx +42 -0
  609. package/src/components/Tabs/FormBodySingleTab.js +39 -0
  610. package/src/components/Tabs/FormBodySingleTab.js.map +1 -0
  611. package/src/components/Tabs/FormBodySingleTab.tsx +67 -0
  612. package/src/components/Tabs/FormBodyTabList.js +52 -0
  613. package/src/components/Tabs/FormBodyTabList.js.map +1 -0
  614. package/src/components/Tabs/FormBodyTabList.tsx +83 -0
  615. package/src/components/index.js +18 -0
  616. package/src/components/index.js.map +1 -0
  617. package/src/components/index.ts +18 -0
  618. package/src/hooks/index.ts +1 -0
  619. package/src/hooks/useBackToTop.js +26 -0
  620. package/src/hooks/useBackToTop.js.map +1 -0
  621. package/src/hooks/useBackToTop.ts +29 -0
  622. package/src/hooks/useDebounce.js +38 -0
  623. package/src/hooks/useDebounce.js.map +1 -0
  624. package/src/hooks/useDebounce.ts +45 -0
  625. package/src/hooks/useDecimalCalculatedExpression.js +50 -0
  626. package/src/hooks/useDecimalCalculatedExpression.js.map +1 -0
  627. package/src/hooks/useDecimalCalculatedExpression.ts +80 -0
  628. package/src/hooks/useHidden.js +35 -0
  629. package/src/hooks/useHidden.js.map +1 -0
  630. package/src/hooks/useHidden.ts +40 -0
  631. package/src/hooks/useInitialiseGroupTable.js +36 -0
  632. package/src/hooks/useInitialiseGroupTable.js.map +1 -0
  633. package/src/hooks/useInitialiseGroupTable.ts +42 -0
  634. package/src/hooks/useInitialiseRenderer.js +49 -0
  635. package/src/hooks/useInitialiseRenderer.js.map +1 -0
  636. package/src/hooks/useInitialiseRenderer.ts +62 -0
  637. package/src/hooks/useInitialiseRepeatAnswers.js +36 -0
  638. package/src/hooks/useInitialiseRepeatAnswers.js.map +1 -0
  639. package/src/hooks/useInitialiseRepeatAnswers.ts +42 -0
  640. package/src/hooks/useInitialiseRepeatGroups.js +36 -0
  641. package/src/hooks/useInitialiseRepeatGroups.js.map +1 -0
  642. package/src/hooks/useInitialiseRepeatGroups.ts +42 -0
  643. package/src/hooks/useIntegerCalculatedExpression.js +44 -0
  644. package/src/hooks/useIntegerCalculatedExpression.js.map +1 -0
  645. package/src/hooks/useIntegerCalculatedExpression.ts +72 -0
  646. package/src/hooks/useQueryClient.js +29 -0
  647. package/src/hooks/useQueryClient.js.map +1 -0
  648. package/src/hooks/useQueryClient.ts +31 -0
  649. package/src/hooks/useRenderingExtensions.js +30 -0
  650. package/src/hooks/useRenderingExtensions.js.map +1 -0
  651. package/src/hooks/useRenderingExtensions.ts +52 -0
  652. package/src/hooks/useResponsive.js +37 -0
  653. package/src/hooks/useResponsive.js.map +1 -0
  654. package/src/hooks/useResponsive.ts +51 -0
  655. package/src/hooks/useStringCalculatedExpression.js +44 -0
  656. package/src/hooks/useStringCalculatedExpression.js.map +1 -0
  657. package/src/hooks/useStringCalculatedExpression.ts +71 -0
  658. package/src/hooks/useTerminologyServerQuery.js +73 -0
  659. package/src/hooks/useTerminologyServerQuery.js.map +1 -0
  660. package/src/hooks/useTerminologyServerQuery.ts +98 -0
  661. package/src/hooks/useValidationError.js +38 -0
  662. package/src/hooks/useValidationError.js.map +1 -0
  663. package/src/hooks/useValidationError.ts +48 -0
  664. package/src/hooks/useValueSetCodings.js +125 -0
  665. package/src/hooks/useValueSetCodings.js.map +1 -0
  666. package/src/hooks/useValueSetCodings.ts +150 -0
  667. package/src/index.js +2 -0
  668. package/src/index.js.map +1 -0
  669. package/src/index.ts +163 -0
  670. package/src/interfaces/answerExpression.interface.js +18 -0
  671. package/src/interfaces/answerExpression.interface.js.map +1 -0
  672. package/src/interfaces/answerExpression.interface.ts +23 -0
  673. package/src/interfaces/calculatedExpression.interface.js +2 -0
  674. package/src/interfaces/calculatedExpression.interface.js.map +1 -0
  675. package/src/interfaces/calculatedExpression.interface.ts +4 -0
  676. package/src/interfaces/choice.enum.js +41 -0
  677. package/src/interfaces/choice.enum.js.map +1 -0
  678. package/src/interfaces/choice.enum.ts +40 -0
  679. package/src/interfaces/enableWhen.interface.js +18 -0
  680. package/src/interfaces/enableWhen.interface.js.map +1 -0
  681. package/src/interfaces/enableWhen.interface.ts +40 -0
  682. package/src/interfaces/groupTable.interface.js +18 -0
  683. package/src/interfaces/groupTable.interface.js.map +1 -0
  684. package/src/interfaces/groupTable.interface.ts +23 -0
  685. package/src/interfaces/populate.interface.js +18 -0
  686. package/src/interfaces/populate.interface.js.map +1 -0
  687. package/src/interfaces/populate.interface.ts +218 -0
  688. package/src/interfaces/questionnaireStore.interface.js +18 -0
  689. package/src/interfaces/questionnaireStore.interface.js.map +1 -0
  690. package/src/interfaces/questionnaireStore.interface.ts +36 -0
  691. package/src/interfaces/regex.interface.js +18 -0
  692. package/src/interfaces/regex.interface.js.map +1 -0
  693. package/src/interfaces/regex.interface.ts +21 -0
  694. package/src/interfaces/renderProps.interface.js +18 -0
  695. package/src/interfaces/renderProps.interface.js.map +1 -0
  696. package/src/interfaces/renderProps.interface.ts +34 -0
  697. package/src/interfaces/repeatGroup.interface.js +18 -0
  698. package/src/interfaces/repeatGroup.interface.js.map +1 -0
  699. package/src/interfaces/repeatGroup.interface.ts +28 -0
  700. package/src/interfaces/repeatItem.interface.js +2 -0
  701. package/src/interfaces/repeatItem.interface.js.map +1 -0
  702. package/src/interfaces/repeatItem.interface.ts +6 -0
  703. package/src/interfaces/tab.interface.js +2 -0
  704. package/src/interfaces/tab.interface.js.map +1 -0
  705. package/src/interfaces/tab.interface.ts +18 -0
  706. package/src/interfaces/valueSet.interface.js +18 -0
  707. package/src/interfaces/valueSet.interface.js.map +1 -0
  708. package/src/interfaces/valueSet.interface.ts +23 -0
  709. package/src/interfaces/variables.interface.js +18 -0
  710. package/src/interfaces/variables.interface.js.map +1 -0
  711. package/src/interfaces/variables.interface.ts +28 -0
  712. package/src/setup-jest.js +2 -0
  713. package/src/setup-jest.js.map +1 -0
  714. package/src/stores/useConfigStore.js +17 -0
  715. package/src/stores/useConfigStore.js.map +1 -0
  716. package/src/stores/useConfigStore.ts +36 -0
  717. package/src/stores/useQuestionnaireResponseStore.js +39 -0
  718. package/src/stores/useQuestionnaireResponseStore.js.map +1 -0
  719. package/src/stores/useQuestionnaireResponseStore.ts +58 -0
  720. package/src/stores/useQuestionnaireStore.js +151 -0
  721. package/src/stores/useQuestionnaireStore.js.map +1 -0
  722. package/src/stores/useQuestionnaireStore.ts +232 -0
  723. package/src/stories/SmartFormsRenderer.stories.js +90 -0
  724. package/src/stories/SmartFormsRenderer.stories.js.map +1 -0
  725. package/src/stories/SmartFormsRenderer.stories.ts +104 -0
  726. package/src/stories/assets/Q715.json +15086 -0
  727. package/src/stories/assets/QTestGrid.json +166 -0
  728. package/src/stories/assets/R715.json +311 -0
  729. package/src/stories/assets/RTestGrid.json +34 -0
  730. package/src/utils/calculatedExpression.js +180 -0
  731. package/src/utils/calculatedExpression.js.map +1 -0
  732. package/src/utils/calculatedExpression.ts +299 -0
  733. package/src/utils/choice.js +160 -0
  734. package/src/utils/choice.js.map +1 -0
  735. package/src/utils/choice.ts +194 -0
  736. package/src/utils/debounce.js +19 -0
  737. package/src/utils/debounce.js.map +1 -0
  738. package/src/utils/debounce.ts +20 -0
  739. package/src/utils/emptyResource.js +25 -0
  740. package/src/utils/emptyResource.js.map +1 -0
  741. package/src/utils/emptyResource.ts +28 -0
  742. package/src/utils/enableWhen.js +228 -0
  743. package/src/utils/enableWhen.js.map +1 -0
  744. package/src/utils/enableWhen.ts +303 -0
  745. package/src/utils/enableWhenExpression.js +76 -0
  746. package/src/utils/enableWhenExpression.js.map +1 -0
  747. package/src/utils/enableWhenExpression.ts +123 -0
  748. package/src/utils/fhirpath.js +98 -0
  749. package/src/utils/fhirpath.js.map +1 -0
  750. package/src/utils/fhirpath.ts +164 -0
  751. package/src/utils/initialiseForm.js +45 -0
  752. package/src/utils/initialiseForm.js.map +1 -0
  753. package/src/utils/initialiseForm.ts +81 -0
  754. package/src/utils/itemControl.js +299 -0
  755. package/src/utils/itemControl.js.map +1 -0
  756. package/src/utils/itemControl.ts +367 -0
  757. package/src/utils/mapItem.js +80 -0
  758. package/src/utils/mapItem.js.map +1 -0
  759. package/src/utils/mapItem.ts +97 -0
  760. package/src/utils/openChoice.js +150 -0
  761. package/src/utils/openChoice.js.map +1 -0
  762. package/src/utils/openChoice.ts +179 -0
  763. package/src/utils/parseInputs.js +49 -0
  764. package/src/utils/parseInputs.js.map +1 -0
  765. package/src/utils/parseInputs.ts +58 -0
  766. package/src/utils/populate.js +78 -0
  767. package/src/utils/populate.js.map +1 -0
  768. package/src/utils/populate.ts +117 -0
  769. package/src/utils/populateCallback.js +40 -0
  770. package/src/utils/populateCallback.js.map +1 -0
  771. package/src/utils/populateCallback.ts +53 -0
  772. package/src/utils/populateContexts.js +76 -0
  773. package/src/utils/populateContexts.js.map +1 -0
  774. package/src/utils/populateContexts.ts +112 -0
  775. package/src/utils/populateInputParams.js +193 -0
  776. package/src/utils/populateInputParams.js.map +1 -0
  777. package/src/utils/populateInputParams.ts +242 -0
  778. package/src/utils/qItem.js +73 -0
  779. package/src/utils/qItem.js.map +1 -0
  780. package/src/utils/qItem.ts +103 -0
  781. package/src/utils/qrItem.js +221 -0
  782. package/src/utils/qrItem.js.map +1 -0
  783. package/src/utils/qrItem.ts +250 -0
  784. package/src/utils/questionnaireStoreUtils/addAdditionalVariables.js +47 -0
  785. package/src/utils/questionnaireStoreUtils/addAdditionalVariables.js.map +1 -0
  786. package/src/utils/questionnaireStoreUtils/addAdditionalVariables.ts +52 -0
  787. package/src/utils/questionnaireStoreUtils/createQuestionaireModel.js +79 -0
  788. package/src/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -0
  789. package/src/utils/questionnaireStoreUtils/createQuestionaireModel.ts +96 -0
  790. package/src/utils/questionnaireStoreUtils/extractContainedValueSets.js +59 -0
  791. package/src/utils/questionnaireStoreUtils/extractContainedValueSets.js.map +1 -0
  792. package/src/utils/questionnaireStoreUtils/extractContainedValueSets.ts +74 -0
  793. package/src/utils/questionnaireStoreUtils/extractLaunchContext.js +18 -0
  794. package/src/utils/questionnaireStoreUtils/extractLaunchContext.js.map +1 -0
  795. package/src/utils/questionnaireStoreUtils/extractLaunchContext.ts +21 -0
  796. package/src/utils/questionnaireStoreUtils/extractOtherExtensions.js +174 -0
  797. package/src/utils/questionnaireStoreUtils/extractOtherExtensions.js.map +1 -0
  798. package/src/utils/questionnaireStoreUtils/extractOtherExtensions.ts +239 -0
  799. package/src/utils/questionnaireStoreUtils/extractTabs.js +31 -0
  800. package/src/utils/questionnaireStoreUtils/extractTabs.js.map +1 -0
  801. package/src/utils/questionnaireStoreUtils/extractTabs.ts +37 -0
  802. package/src/utils/questionnaireStoreUtils/extractVariables.js +63 -0
  803. package/src/utils/questionnaireStoreUtils/extractVariables.js.map +1 -0
  804. package/src/utils/questionnaireStoreUtils/extractVariables.ts +77 -0
  805. package/src/utils/questionnaireStoreUtils/resolveValueSets.js +58 -0
  806. package/src/utils/questionnaireStoreUtils/resolveValueSets.js.map +1 -0
  807. package/src/utils/questionnaireStoreUtils/resolveValueSets.ts +68 -0
  808. package/src/utils/removeHidden.ts +162 -0
  809. package/src/utils/tabs.js +190 -0
  810. package/src/utils/tabs.js.map +1 -0
  811. package/src/utils/tabs.ts +255 -0
  812. package/src/utils/valueSet.js +126 -0
  813. package/src/utils/valueSet.js.map +1 -0
  814. package/src/utils/valueSet.ts +159 -0
  815. package/tsconfig.json +21 -0
  816. package/dist/components/FormComponents/Item.styles.d.ts +0 -6
  817. package/dist/components/FormComponents/RepeatItem/RepeatItem.styles.d.ts +0 -22
  818. package/dist/components/FormComponents/Typography.styles.d.ts +0 -6
  819. package/dist/index.d.ts +0 -1
  820. package/dist/index.esm.js +0 -10482
  821. package/dist/index.esm.js.map +0 -1
  822. package/dist/index.js +0 -10527
  823. package/dist/index.js.map +0 -1
  824. package/dist/stories/SmartFormsRenderer.stories.d.ts +0 -14
  825. /package/{dist → lib}/api/populate.d.ts +0 -0
  826. /package/{dist → lib}/components/BackToTopButton/BackToTopButton.d.ts +0 -0
  827. /package/{dist → lib}/components/FormComponents/BooleanItem/BooleanField.d.ts +0 -0
  828. /package/{dist → lib}/components/FormComponents/BooleanItem/BooleanItem.d.ts +0 -0
  829. /package/{dist → lib}/components/FormComponents/DateItem/DateField.d.ts +0 -0
  830. /package/{dist → lib}/components/FormComponents/DateItem/DateItem.d.ts +0 -0
  831. /package/{dist → lib}/components/FormComponents/DateTimeItem/DateTimeField.d.ts +0 -0
  832. /package/{dist → lib}/components/FormComponents/DateTimeItem/DateTimeItem.d.ts +0 -0
  833. /package/{dist → lib}/components/FormComponents/DecimalItem/DecimalField.d.ts +0 -0
  834. /package/{dist → lib}/components/FormComponents/DecimalItem/DecimalItem.d.ts +0 -0
  835. /package/{dist → lib}/components/FormComponents/DisplayItem/DisplayInstructions.d.ts +0 -0
  836. /package/{dist → lib}/components/FormComponents/DisplayItem/DisplayItem.d.ts +0 -0
  837. /package/{dist → lib}/components/FormComponents/GridGroup/GridTable.d.ts +0 -0
  838. /package/{dist → lib}/components/FormComponents/GroupItem/GroupHeading.d.ts +0 -0
  839. /package/{dist → lib}/components/FormComponents/GroupItem/NextTabButton.d.ts +0 -0
  840. /package/{dist → lib}/components/FormComponents/GroupItem/NextTabButtonWrapper.d.ts +0 -0
  841. /package/{dist → lib}/components/FormComponents/IntegerItem/IntegerField.d.ts +0 -0
  842. /package/{dist → lib}/components/FormComponents/IntegerItem/IntegerItem.d.ts +0 -0
  843. /package/{dist → lib}/components/FormComponents/ItemParts/ContextDisplayItem.d.ts +0 -0
  844. /package/{dist → lib}/components/FormComponents/ItemParts/FadingCheckIcon.d.ts +0 -0
  845. /package/{dist → lib}/components/FormComponents/ItemParts/ItemFieldGrid.d.ts +0 -0
  846. /package/{dist → lib}/components/FormComponents/ItemParts/ItemLabelText.d.ts +0 -0
  847. /package/{dist → lib}/components/FormComponents/ItemParts/ItemLabelWrapper.d.ts +0 -0
  848. /package/{dist → lib}/components/FormComponents/ItemParts/QItemCheckboxSingle.d.ts +0 -0
  849. /package/{dist → lib}/components/FormComponents/ItemParts/QItemCheckboxSingleWithOpenLabel.d.ts +0 -0
  850. /package/{dist → lib}/components/FormComponents/ItemParts/QItemRadioButtonWithOpenLabel.d.ts +0 -0
  851. /package/{dist → lib}/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerOption.d.ts +0 -0
  852. /package/{dist → lib}/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerValueSet.d.ts +0 -0
  853. /package/{dist → lib}/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerOption.d.ts +0 -0
  854. /package/{dist → lib}/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerValueSet.d.ts +0 -0
  855. /package/{dist → lib}/components/FormComponents/QItemChoice/QItemChoiceRadioSingle.d.ts +0 -0
  856. /package/{dist → lib}/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerOption.d.ts +0 -0
  857. /package/{dist → lib}/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerValueSet.d.ts +0 -0
  858. /package/{dist → lib}/components/FormComponents/QItemOpenChoice/QItemOpenChoiceCheckboxAnswerOption.d.ts +0 -0
  859. /package/{dist → lib}/components/FormComponents/QItemOpenChoice/QItemOpenChoiceRadioAnswerOption.d.ts +0 -0
  860. /package/{dist → lib}/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerValueSet.d.ts +0 -0
  861. /package/{dist → lib}/components/FormComponents/RepeatGroup/AddItemButton.d.ts +0 -0
  862. /package/{dist → lib}/components/FormComponents/RepeatGroup/DeleteItemButton.d.ts +0 -0
  863. /package/{dist → lib}/components/FormComponents/RepeatGroup/RepeatGroup.d.ts +0 -0
  864. /package/{dist → lib}/components/FormComponents/RepeatGroup/RepeatGroupItem.d.ts +0 -0
  865. /package/{dist → lib}/components/FormComponents/RepeatItem/AddItemButton.d.ts +0 -0
  866. /package/{dist → lib}/components/FormComponents/RepeatItem/DeleteItemButton.d.ts +0 -0
  867. /package/{dist → lib}/components/FormComponents/RepeatItem/RepeatField.d.ts +0 -0
  868. /package/{dist → lib}/components/FormComponents/RepeatItem/RepeatItem.d.ts +0 -0
  869. /package/{dist → lib}/components/FormComponents/SingleItem/SingleItem.d.ts +0 -0
  870. /package/{dist → lib}/components/FormComponents/SingleItem/SingleItemSwitcher.d.ts +0 -0
  871. /package/{dist → lib}/components/FormComponents/StringItem/StringField.d.ts +0 -0
  872. /package/{dist → lib}/components/FormComponents/StringItem/StringItem.d.ts +0 -0
  873. /package/{dist → lib}/components/FormComponents/Tables/DeleteRowButton.d.ts +0 -0
  874. /package/{dist → lib}/components/FormComponents/Tables/Table.styles.d.ts +0 -0
  875. /package/{dist → lib}/components/FormComponents/TextItem/TextField.d.ts +0 -0
  876. /package/{dist → lib}/components/FormComponents/TextItem/TextItem.d.ts +0 -0
  877. /package/{dist → lib}/components/FormComponents/TimeItem/TimeField.d.ts +0 -0
  878. /package/{dist → lib}/components/FormComponents/TimeItem/TimeItem.d.ts +0 -0
  879. /package/{dist → lib}/components/FormComponents/UrlItem/UrlField.d.ts +0 -0
  880. /package/{dist → lib}/components/FormComponents/UrlItem/UrlItem.d.ts +0 -0
  881. /package/{dist → lib}/components/FormRenderer/FormBodyCollapsible.d.ts +0 -0
  882. /package/{dist → lib}/components/FormRenderer/FormBodySingleCollapsible.d.ts +0 -0
  883. /package/{dist → lib}/components/FormRenderer/FormBodyTabbed.d.ts +0 -0
  884. /package/{dist → lib}/components/FormRenderer/FormRenderer.d.ts +0 -0
  885. /package/{dist → lib}/components/FormRenderer/FormTitle.d.ts +0 -0
  886. /package/{dist → lib}/components/FormRenderer/FormTopLevelItem.d.ts +0 -0
  887. /package/{dist → lib}/components/FormRenderer/SmartFormsRenderer.d.ts +0 -0
  888. /package/{dist → lib}/components/Iconify/Iconify.d.ts +0 -0
  889. /package/{dist → lib}/components/Tabs/CompleteTabButton.d.ts +0 -0
  890. /package/{dist → lib}/components/Tabs/FormBodySingleTab.d.ts +0 -0
  891. /package/{dist → lib}/components/Tabs/FormBodyTabList.d.ts +0 -0
  892. /package/{dist → lib}/components/index.d.ts +0 -0
  893. /package/{dist → lib}/hooks/useBackToTop.d.ts +0 -0
  894. /package/{dist → lib}/hooks/useDebounce.d.ts +0 -0
  895. /package/{dist → lib}/hooks/useDecimalCalculatedExpression.d.ts +0 -0
  896. /package/{dist → lib}/hooks/useHidden.d.ts +0 -0
  897. /package/{dist → lib}/hooks/useInitialiseGroupTable.d.ts +0 -0
  898. /package/{dist → lib}/hooks/useInitialiseRenderer.d.ts +0 -0
  899. /package/{dist → lib}/hooks/useInitialiseRepeatAnswers.d.ts +0 -0
  900. /package/{dist → lib}/hooks/useInitialiseRepeatGroups.d.ts +0 -0
  901. /package/{dist → lib}/hooks/useIntegerCalculatedExpression.d.ts +0 -0
  902. /package/{dist → lib}/hooks/useQueryClient.d.ts +0 -0
  903. /package/{dist → lib}/hooks/useRenderingExtensions.d.ts +0 -0
  904. /package/{dist → lib}/hooks/useResponsive.d.ts +0 -0
  905. /package/{dist → lib}/hooks/useStringCalculatedExpression.d.ts +0 -0
  906. /package/{dist → lib}/hooks/useTerminologyServerQuery.d.ts +0 -0
  907. /package/{dist → lib}/hooks/useValidationError.d.ts +0 -0
  908. /package/{dist → lib}/interfaces/answerExpression.interface.d.ts +0 -0
  909. /package/{dist → lib}/interfaces/calculatedExpression.interface.d.ts +0 -0
  910. /package/{dist → lib}/interfaces/choice.enum.d.ts +0 -0
  911. /package/{dist → lib}/interfaces/enableWhen.interface.d.ts +0 -0
  912. /package/{dist → lib}/interfaces/groupTable.interface.d.ts +0 -0
  913. /package/{dist → lib}/interfaces/populate.interface.d.ts +0 -0
  914. /package/{dist → lib}/interfaces/questionnaireStore.interface.d.ts +0 -0
  915. /package/{dist → lib}/interfaces/regex.interface.d.ts +0 -0
  916. /package/{dist → lib}/interfaces/repeatGroup.interface.d.ts +0 -0
  917. /package/{dist → lib}/interfaces/repeatItem.interface.d.ts +0 -0
  918. /package/{dist → lib}/interfaces/tab.interface.d.ts +0 -0
  919. /package/{dist → lib}/interfaces/valueSet.interface.d.ts +0 -0
  920. /package/{dist → lib}/interfaces/variables.interface.d.ts +0 -0
  921. /package/{dist → lib}/stores/useConfigStore.d.ts +0 -0
  922. /package/{dist → lib}/stores/useQuestionnaireResponseStore.d.ts +0 -0
  923. /package/{dist → lib}/stores/useQuestionnaireStore.d.ts +0 -0
  924. /package/{dist → lib}/utils/calculatedExpression.d.ts +0 -0
  925. /package/{dist → lib}/utils/choice.d.ts +0 -0
  926. /package/{dist → lib}/utils/debounce.d.ts +0 -0
  927. /package/{dist → lib}/utils/emptyResource.d.ts +0 -0
  928. /package/{dist → lib}/utils/enableWhen.d.ts +0 -0
  929. /package/{dist → lib}/utils/enableWhenExpression.d.ts +0 -0
  930. /package/{dist → lib}/utils/fhirpath.d.ts +0 -0
  931. /package/{dist → lib}/utils/initialiseForm.d.ts +0 -0
  932. /package/{dist → lib}/utils/itemControl.d.ts +0 -0
  933. /package/{dist → lib}/utils/mapItem.d.ts +0 -0
  934. /package/{dist → lib}/utils/openChoice.d.ts +0 -0
  935. /package/{dist → lib}/utils/parseInputs.d.ts +0 -0
  936. /package/{dist → lib}/utils/populate.d.ts +0 -0
  937. /package/{dist → lib}/utils/populateCallback.d.ts +0 -0
  938. /package/{dist → lib}/utils/populateContexts.d.ts +0 -0
  939. /package/{dist → lib}/utils/populateInputParams.d.ts +0 -0
  940. /package/{dist → lib}/utils/qItem.d.ts +0 -0
  941. /package/{dist → lib}/utils/qrItem.d.ts +0 -0
  942. /package/{dist → lib}/utils/questionnaireStoreUtils/addAdditionalVariables.d.ts +0 -0
  943. /package/{dist → lib}/utils/questionnaireStoreUtils/createQuestionaireModel.d.ts +0 -0
  944. /package/{dist → lib}/utils/questionnaireStoreUtils/extractContainedValueSets.d.ts +0 -0
  945. /package/{dist → lib}/utils/questionnaireStoreUtils/extractLaunchContext.d.ts +0 -0
  946. /package/{dist → lib}/utils/questionnaireStoreUtils/extractOtherExtensions.d.ts +0 -0
  947. /package/{dist → lib}/utils/questionnaireStoreUtils/extractTabs.d.ts +0 -0
  948. /package/{dist → lib}/utils/questionnaireStoreUtils/extractVariables.d.ts +0 -0
  949. /package/{dist → lib}/utils/questionnaireStoreUtils/resolveValueSets.d.ts +0 -0
  950. /package/{dist → lib}/utils/tabs.d.ts +0 -0
  951. /package/{dist → lib}/utils/valueSet.d.ts +0 -0
  952. /package/{dist/setup-jest.d.ts → src/setup-jest.ts} +0 -0
@@ -0,0 +1,125 @@
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
+ import { useEffect, useMemo, useState } from 'react';
18
+ import { getResourceFromLaunchContext, getTerminologyServerUrl, getValueSetCodings, getValueSetPromise } from '../utils/valueSet';
19
+ import { getAnswerExpression } from '../utils/itemControl';
20
+ import fhirpath from 'fhirpath';
21
+ import fhirpath_r4_model from 'fhirpath/fhir-context/r4';
22
+ import useConfigStore from '../stores/useConfigStore';
23
+ import useQuestionnaireStore from '../stores/useQuestionnaireStore';
24
+ function useValueSetCodings(qItem) {
25
+ var _a;
26
+ const patient = useConfigStore((state) => state.patient);
27
+ const user = useConfigStore((state) => state.user);
28
+ const encounter = useConfigStore((state) => state.encounter);
29
+ const launchContexts = useQuestionnaireStore((state) => state.launchContexts);
30
+ const processedValueSetCodings = useQuestionnaireStore((state) => state.processedValueSetCodings);
31
+ const cachedValueSetCodings = useQuestionnaireStore((state) => state.cachedValueSetCodings);
32
+ const addCodingToCache = useQuestionnaireStore((state) => state.addCodingToCache);
33
+ const { xFhirQueryVariables } = useQuestionnaireStore((state) => state.variables);
34
+ const valueSetUrl = qItem.answerValueSet;
35
+ let initialCodings = useMemo(() => {
36
+ // set options from cached answer options if present
37
+ if (valueSetUrl) {
38
+ let cleanValueSetUrl = valueSetUrl;
39
+ if (valueSetUrl.startsWith('#')) {
40
+ cleanValueSetUrl = valueSetUrl.slice(1);
41
+ }
42
+ // attempt to get codings from value sets preprocessed when loading questionnaire
43
+ if (processedValueSetCodings[cleanValueSetUrl]) {
44
+ return processedValueSetCodings[cleanValueSetUrl];
45
+ }
46
+ // attempt to get codings from cached queried value sets
47
+ if (cachedValueSetCodings[cleanValueSetUrl]) {
48
+ return cachedValueSetCodings[cleanValueSetUrl];
49
+ }
50
+ }
51
+ return [];
52
+ }, [cachedValueSetCodings, processedValueSetCodings, valueSetUrl]);
53
+ const answerExpression = (_a = getAnswerExpression(qItem)) === null || _a === void 0 ? void 0 : _a.expression;
54
+ initialCodings = useMemo(() => {
55
+ if (initialCodings.length === 0 && answerExpression) {
56
+ const variable = answerExpression.substring(answerExpression.indexOf('%') + 1, answerExpression.indexOf('.'));
57
+ const contextMap = {};
58
+ // get answer expression resource from launch contexts
59
+ if (launchContexts[variable]) {
60
+ const resourceType = launchContexts[variable].extension[1].valueCode;
61
+ const resource = getResourceFromLaunchContext(resourceType, patient, user, encounter);
62
+ if (resource) {
63
+ contextMap[variable] = resource;
64
+ }
65
+ }
66
+ else if (xFhirQueryVariables[variable]) {
67
+ const resource = xFhirQueryVariables[variable].result;
68
+ if (resource) {
69
+ contextMap[variable] = resource;
70
+ }
71
+ }
72
+ if (contextMap[variable]) {
73
+ try {
74
+ const evaluated = fhirpath.evaluate({}, answerExpression, contextMap, fhirpath_r4_model);
75
+ if (evaluated[0].system || evaluated[0].code) {
76
+ // determine if the evaluated array is a coding array
77
+ return evaluated;
78
+ }
79
+ else if (evaluated[0].coding) {
80
+ // determine and return if the evaluated array is a codeable concept
81
+ return evaluated[0].coding;
82
+ }
83
+ }
84
+ catch (e) {
85
+ console.warn(e.message);
86
+ }
87
+ }
88
+ }
89
+ return initialCodings;
90
+ }, [
91
+ answerExpression,
92
+ encounter,
93
+ initialCodings,
94
+ launchContexts,
95
+ patient,
96
+ user,
97
+ xFhirQueryVariables
98
+ ]);
99
+ const [codings, setCodings] = useState(initialCodings);
100
+ const [serverError, setServerError] = useState(null);
101
+ // get options from answerValueSet on render
102
+ useEffect(() => {
103
+ const valueSetUrl = qItem.answerValueSet;
104
+ if (!valueSetUrl || codings.length > 0)
105
+ return;
106
+ const terminologyServer = getTerminologyServerUrl(qItem);
107
+ const promise = getValueSetPromise(valueSetUrl, terminologyServer);
108
+ if (promise) {
109
+ promise
110
+ .then((valueSet) => {
111
+ const codings = getValueSetCodings(valueSet);
112
+ if (codings.length > 0) {
113
+ addCodingToCache(valueSetUrl, codings);
114
+ setCodings(codings);
115
+ }
116
+ })
117
+ .catch((error) => {
118
+ setServerError(error);
119
+ });
120
+ }
121
+ }, [qItem]);
122
+ return { codings, serverError };
123
+ }
124
+ export default useValueSetCodings;
125
+ //# sourceMappingURL=useValueSetCodings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useValueSetCodings.js","sourceRoot":"","sources":["useValueSetCodings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AACzD,OAAO,cAAc,MAAM,0BAA0B,CAAC;AACtD,OAAO,qBAAqB,MAAM,iCAAiC,CAAC;AAEpE,SAAS,kBAAkB,CAAC,KAAwB;;IAClD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE7D,MAAM,cAAc,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9E,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClG,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC5F,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAClF,MAAM,EAAE,mBAAmB,EAAE,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAElF,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC;IACzC,IAAI,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,oDAAoD;QACpD,IAAI,WAAW,EAAE;YACf,IAAI,gBAAgB,GAAG,WAAW,CAAC;YACnC,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC/B,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACzC;YAED,iFAAiF;YACjF,IAAI,wBAAwB,CAAC,gBAAgB,CAAC,EAAE;gBAC9C,OAAO,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;aACnD;YAED,wDAAwD;YACxD,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,EAAE;gBAC3C,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;aAChD;SACF;QAED,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,WAAW,CAAC,CAAC,CAAC;IAEnE,MAAM,gBAAgB,GAAG,MAAA,mBAAmB,CAAC,KAAK,CAAC,0CAAE,UAAU,CAAC;IAChE,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,EAAE;YACnD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CACzC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EACjC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAC9B,CAAC;YACF,MAAM,UAAU,GAAiC,EAAE,CAAC;YAEpD,sDAAsD;YACtD,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE;gBAC5B,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACrE,MAAM,QAAQ,GAAG,4BAA4B,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;gBACtF,IAAI,QAAQ,EAAE;oBACZ,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;iBACjC;aACF;iBAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE;gBACxC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;gBACtD,IAAI,QAAQ,EAAE;oBACZ,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;iBACjC;aACF;YAED,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;gBACxB,IAAI;oBACF,MAAM,SAAS,GAAU,QAAQ,CAAC,QAAQ,CACxC,EAAE,EACF,gBAAgB,EAChB,UAAU,EACV,iBAAiB,CAClB,CAAC;oBAEF,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;wBAC5C,qDAAqD;wBACrD,OAAO,SAAS,CAAC;qBAClB;yBAAM,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;wBAC9B,oEAAoE;wBACpE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;qBAC5B;iBACF;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBACzB;aACF;SACF;QAED,OAAO,cAAc,CAAC;IACxB,CAAC,EAAE;QACD,gBAAgB;QAChB,SAAS;QACT,cAAc;QACd,cAAc;QACd,OAAO;QACP,IAAI;QACJ,mBAAmB;KACpB,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAW,cAAc,CAAC,CAAC;IACjE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEnE,4CAA4C;IAC5C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC;QACzC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAE/C,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QACnE,IAAI,OAAO,EAAE;YACX,OAAO;iBACJ,IAAI,CAAC,CAAC,QAAkB,EAAE,EAAE;gBAC3B,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBAC7C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtB,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;oBACvC,UAAU,CAAC,OAAO,CAAC,CAAC;iBACrB;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;gBACtB,cAAc,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;SACN;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,150 @@
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 { useEffect, useMemo, useState } from 'react';
19
+ import type { Coding, FhirResource, QuestionnaireItem, ValueSet } from 'fhir/r4';
20
+ import {
21
+ getResourceFromLaunchContext,
22
+ getTerminologyServerUrl,
23
+ getValueSetCodings,
24
+ getValueSetPromise
25
+ } from '../utils/valueSet';
26
+ import { getAnswerExpression } from '../utils/itemControl';
27
+ import fhirpath from 'fhirpath';
28
+ import fhirpath_r4_model from 'fhirpath/fhir-context/r4';
29
+ import useConfigStore from '../stores/useConfigStore';
30
+ import useQuestionnaireStore from '../stores/useQuestionnaireStore';
31
+
32
+ function useValueSetCodings(qItem: QuestionnaireItem) {
33
+ const patient = useConfigStore((state) => state.patient);
34
+ const user = useConfigStore((state) => state.user);
35
+ const encounter = useConfigStore((state) => state.encounter);
36
+
37
+ const launchContexts = useQuestionnaireStore((state) => state.launchContexts);
38
+ const processedValueSetCodings = useQuestionnaireStore((state) => state.processedValueSetCodings);
39
+ const cachedValueSetCodings = useQuestionnaireStore((state) => state.cachedValueSetCodings);
40
+ const addCodingToCache = useQuestionnaireStore((state) => state.addCodingToCache);
41
+ const { xFhirQueryVariables } = useQuestionnaireStore((state) => state.variables);
42
+
43
+ const valueSetUrl = qItem.answerValueSet;
44
+ let initialCodings = useMemo(() => {
45
+ // set options from cached answer options if present
46
+ if (valueSetUrl) {
47
+ let cleanValueSetUrl = valueSetUrl;
48
+ if (valueSetUrl.startsWith('#')) {
49
+ cleanValueSetUrl = valueSetUrl.slice(1);
50
+ }
51
+
52
+ // attempt to get codings from value sets preprocessed when loading questionnaire
53
+ if (processedValueSetCodings[cleanValueSetUrl]) {
54
+ return processedValueSetCodings[cleanValueSetUrl];
55
+ }
56
+
57
+ // attempt to get codings from cached queried value sets
58
+ if (cachedValueSetCodings[cleanValueSetUrl]) {
59
+ return cachedValueSetCodings[cleanValueSetUrl];
60
+ }
61
+ }
62
+
63
+ return [];
64
+ }, [cachedValueSetCodings, processedValueSetCodings, valueSetUrl]);
65
+
66
+ const answerExpression = getAnswerExpression(qItem)?.expression;
67
+ initialCodings = useMemo(() => {
68
+ if (initialCodings.length === 0 && answerExpression) {
69
+ const variable = answerExpression.substring(
70
+ answerExpression.indexOf('%') + 1,
71
+ answerExpression.indexOf('.')
72
+ );
73
+ const contextMap: Record<string, FhirResource> = {};
74
+
75
+ // get answer expression resource from launch contexts
76
+ if (launchContexts[variable]) {
77
+ const resourceType = launchContexts[variable].extension[1].valueCode;
78
+ const resource = getResourceFromLaunchContext(resourceType, patient, user, encounter);
79
+ if (resource) {
80
+ contextMap[variable] = resource;
81
+ }
82
+ } else if (xFhirQueryVariables[variable]) {
83
+ const resource = xFhirQueryVariables[variable].result;
84
+ if (resource) {
85
+ contextMap[variable] = resource;
86
+ }
87
+ }
88
+
89
+ if (contextMap[variable]) {
90
+ try {
91
+ const evaluated: any[] = fhirpath.evaluate(
92
+ {},
93
+ answerExpression,
94
+ contextMap,
95
+ fhirpath_r4_model
96
+ );
97
+
98
+ if (evaluated[0].system || evaluated[0].code) {
99
+ // determine if the evaluated array is a coding array
100
+ return evaluated;
101
+ } else if (evaluated[0].coding) {
102
+ // determine and return if the evaluated array is a codeable concept
103
+ return evaluated[0].coding;
104
+ }
105
+ } catch (e) {
106
+ console.warn(e.message);
107
+ }
108
+ }
109
+ }
110
+
111
+ return initialCodings;
112
+ }, [
113
+ answerExpression,
114
+ encounter,
115
+ initialCodings,
116
+ launchContexts,
117
+ patient,
118
+ user,
119
+ xFhirQueryVariables
120
+ ]);
121
+
122
+ const [codings, setCodings] = useState<Coding[]>(initialCodings);
123
+ const [serverError, setServerError] = useState<Error | null>(null);
124
+
125
+ // get options from answerValueSet on render
126
+ useEffect(() => {
127
+ const valueSetUrl = qItem.answerValueSet;
128
+ if (!valueSetUrl || codings.length > 0) return;
129
+
130
+ const terminologyServer = getTerminologyServerUrl(qItem);
131
+ const promise = getValueSetPromise(valueSetUrl, terminologyServer);
132
+ if (promise) {
133
+ promise
134
+ .then((valueSet: ValueSet) => {
135
+ const codings = getValueSetCodings(valueSet);
136
+ if (codings.length > 0) {
137
+ addCodingToCache(valueSetUrl, codings);
138
+ setCodings(codings);
139
+ }
140
+ })
141
+ .catch((error: Error) => {
142
+ setServerError(error);
143
+ });
144
+ }
145
+ }, [qItem]);
146
+
147
+ return { codings, serverError };
148
+ }
149
+
150
+ export default useValueSetCodings;
package/src/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './components';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
package/src/index.ts ADDED
@@ -0,0 +1,163 @@
1
+ import useQuestionnaireStore from './stores/useQuestionnaireStore';
2
+ import type { Questionnaire, QuestionnaireResponse } from 'fhir/r4';
3
+ import { createQuestionnaireResponse } from './utils/qrItem';
4
+ import useQuestionnaireResponseStore from './stores/useQuestionnaireResponseStore';
5
+ import { removeHiddenAnswers } from './utils/removeHidden';
6
+
7
+ export * from './components';
8
+ export * from './hooks';
9
+
10
+ /**
11
+ * Get the initial Questionnaire.
12
+ *
13
+ * @author Sean Fong
14
+ */
15
+ export function useSourceQuestionnaire(): Questionnaire {
16
+ return useQuestionnaireStore.getState().sourceQuestionnaire;
17
+ }
18
+
19
+ /**
20
+ * Get the initial QuestionnaireResponse.
21
+ * An empty QuestionnaireResponse is returned if no initial QuestionnaireResponse is provided when building the form.
22
+ *
23
+ * @author Sean Fong
24
+ */
25
+ export function useSourceResponse(): QuestionnaireResponse {
26
+ return useQuestionnaireResponseStore.getState().sourceResponse;
27
+ }
28
+
29
+ /**
30
+ * Get the filled QuestionnaireResponse.
31
+ * If no changes have been made to the form, the initial QuestionnaireResponse is returned.
32
+ *
33
+ * @author Sean Fong
34
+ */
35
+ export function useUpdatableResponse(): QuestionnaireResponse {
36
+ return useQuestionnaireResponseStore.getState().updatableResponse;
37
+ }
38
+
39
+ /**
40
+ * Get the boolean value of whether any changes have been made to the form.
41
+ *
42
+ * @author Sean Fong
43
+ */
44
+ export function useFormHasChanges(): boolean {
45
+ return useQuestionnaireResponseStore.getState().hasChanges;
46
+ }
47
+
48
+ /**
49
+ * Get the boolean value of whether enableWhen (and enableWhenExpression) is activated.
50
+ *
51
+ * @author Sean Fong
52
+ */
53
+ export function useEnableWhenActivated(): boolean {
54
+ return useQuestionnaireStore.getState().enableWhenIsActivated;
55
+ }
56
+
57
+ /**
58
+ * Set the initial Questionnaire.
59
+ * In most cases, <pre>buildForm()</pre> should be used instead.
60
+ *
61
+ * @author Sean Fong
62
+ */
63
+ export async function setSourceQuestionnaire(questionnaire: Questionnaire): Promise<void> {
64
+ await useQuestionnaireStore.getState().buildSourceQuestionnaire(questionnaire);
65
+ }
66
+
67
+ /**
68
+ * Build the form with an initial Questionnaire and an optional filled QuestionnaireResponse.
69
+ * If a QuestionnaireResponse is not provided, an empty QuestionnaireResponse is set as the initial QuestionnaireResponse.
70
+ * In most cases, <pre>buildForm()</pre> is sufficient. Other fine-grained functions are provided for more control.
71
+ *
72
+ * @author Sean Fong
73
+ */
74
+ export async function buildForm(
75
+ questionnaire: Questionnaire,
76
+ questionnaireResponse?: QuestionnaireResponse
77
+ ): Promise<void> {
78
+ await useQuestionnaireStore.getState().buildSourceQuestionnaire(questionnaire);
79
+
80
+ if (!questionnaireResponse) {
81
+ useQuestionnaireResponseStore
82
+ .getState()
83
+ .buildSourceResponse(createQuestionnaireResponse(questionnaire));
84
+ return;
85
+ }
86
+
87
+ useQuestionnaireResponseStore.getState().buildSourceResponse(questionnaireResponse);
88
+ useQuestionnaireStore.getState().updatePopulatedProperties(questionnaireResponse);
89
+ }
90
+
91
+ /**
92
+ * Destroy the form to clean up the store.
93
+ *
94
+ * @author Sean Fong
95
+ */
96
+ export function destroyForm(): void {
97
+ useQuestionnaireStore.getState().destroySourceQuestionnaire();
98
+ useQuestionnaireResponseStore.getState().destroySourceResponse();
99
+ }
100
+
101
+ /**
102
+ * Toggle activation of enableWhen (and enableWhenExpression).
103
+ *
104
+ * @author Sean Fong
105
+ */
106
+ export function setEnableWhenActivation(isActivated: boolean): void {
107
+ useQuestionnaireStore.getState().toggleEnableWhenActivation(isActivated);
108
+ }
109
+
110
+ /**
111
+ * Set the filled QuestionnaireResponse.
112
+ * In most cases, <pre>buildForm()</pre> should be used instead.
113
+ *
114
+ * @author Sean Fong
115
+ */
116
+ export function setUpdatableResponse(populatedResponse: QuestionnaireResponse): void {
117
+ const updatedResponse = useQuestionnaireStore
118
+ .getState()
119
+ .updatePopulatedProperties(populatedResponse);
120
+ useQuestionnaireResponseStore.getState().populateResponse(updatedResponse);
121
+ }
122
+
123
+ /**
124
+ * Set the filled QuestionnaireResponse to be empty.
125
+ * This is used to quickly clear the form.
126
+ *
127
+ * @author Sean Fong
128
+ */
129
+ export function setUpdatableResponseAsEmpty(emptyResponse: QuestionnaireResponse): void {
130
+ return useQuestionnaireResponseStore.getState().clearResponse(emptyResponse);
131
+ }
132
+
133
+ /**
134
+ * Save the filled QuestionnaireResponse to be the initial QuestionnaireResponse and reset the <pre>hasChanges</pre> flag.
135
+ *
136
+ * @author Sean Fong
137
+ */
138
+ export function setUpdatableResponseAsSaved(savedResponse: QuestionnaireResponse): void {
139
+ return useQuestionnaireResponseStore.getState().saveResponse(savedResponse);
140
+ }
141
+
142
+ /**
143
+ * Remove all hidden answers from the filled QuestionnaireResponse.
144
+ * This takes into account the questionnaire-hidden extension, enableWhens and enableWhenExpressions.
145
+ *
146
+ * @author Sean Fong
147
+ */
148
+ export function removeHiddenAnswersFromResponse(
149
+ questionnaire: Questionnaire,
150
+ questionnaireResponse: QuestionnaireResponse
151
+ ): QuestionnaireResponse {
152
+ const enableWhenIsActivated = useQuestionnaireStore.getState().enableWhenIsActivated;
153
+ const enableWhenItems = useQuestionnaireStore.getState().enableWhenItems;
154
+ const enableWhenExpressions = useQuestionnaireStore.getState().enableWhenExpressions;
155
+
156
+ return removeHiddenAnswers({
157
+ questionnaire,
158
+ questionnaireResponse,
159
+ enableWhenIsActivated,
160
+ enableWhenItems,
161
+ enableWhenExpressions
162
+ });
163
+ }
@@ -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
+ export {};
18
+ //# sourceMappingURL=answerExpression.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answerExpression.interface.js","sourceRoot":"","sources":["answerExpression.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
@@ -0,0 +1,23 @@
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 type { QuestionnaireItemAnswerOption } from 'fhir/r4';
19
+
20
+ export interface AnswerExpression {
21
+ expression: string;
22
+ value?: QuestionnaireItemAnswerOption;
23
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=calculatedExpression.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculatedExpression.interface.js","sourceRoot":"","sources":["calculatedExpression.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export interface CalculatedExpression {
2
+ expression: string;
3
+ value?: number | string;
4
+ }
@@ -0,0 +1,41 @@
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
+ export var QItemChoiceControl;
18
+ (function (QItemChoiceControl) {
19
+ QItemChoiceControl["Radio"] = "radio";
20
+ QItemChoiceControl["Select"] = "select";
21
+ QItemChoiceControl["Autocomplete"] = "autocomplete";
22
+ QItemChoiceControl["Checkbox"] = "check-box";
23
+ })(QItemChoiceControl || (QItemChoiceControl = {}));
24
+ export var QItemOpenChoiceControl;
25
+ (function (QItemOpenChoiceControl) {
26
+ QItemOpenChoiceControl["Select"] = "select";
27
+ QItemOpenChoiceControl["Autocomplete"] = "autocomplete";
28
+ QItemOpenChoiceControl["Checkbox"] = "check-box";
29
+ QItemOpenChoiceControl["Radio"] = "radio";
30
+ })(QItemOpenChoiceControl || (QItemOpenChoiceControl = {}));
31
+ export var QItemChoiceOrientation;
32
+ (function (QItemChoiceOrientation) {
33
+ QItemChoiceOrientation["Horizontal"] = "horizontal";
34
+ QItemChoiceOrientation["Vertical"] = "vertical";
35
+ })(QItemChoiceOrientation || (QItemChoiceOrientation = {}));
36
+ export var CheckBoxOptionType;
37
+ (function (CheckBoxOptionType) {
38
+ CheckBoxOptionType["AnswerOption"] = "answerOption";
39
+ CheckBoxOptionType["AnswerValueSet"] = "answerValueSet";
40
+ })(CheckBoxOptionType || (CheckBoxOptionType = {}));
41
+ //# sourceMappingURL=choice.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"choice.enum.js","sourceRoot":"","sources":["choice.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,uCAAiB,CAAA;IACjB,mDAA6B,CAAA;IAC7B,4CAAsB,CAAA;AACxB,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAED,MAAM,CAAN,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,uDAA6B,CAAA;IAC7B,gDAAsB,CAAA;IACtB,yCAAe,CAAA;AACjB,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,QAKjC;AAED,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,mDAAyB,CAAA;IACzB,+CAAqB,CAAA;AACvB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAED,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,mDAA6B,CAAA;IAC7B,uDAAiC,CAAA;AACnC,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B"}
@@ -0,0 +1,40 @@
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 enum QItemChoiceControl {
19
+ Radio = 'radio',
20
+ Select = 'select',
21
+ Autocomplete = 'autocomplete',
22
+ Checkbox = 'check-box'
23
+ }
24
+
25
+ export enum QItemOpenChoiceControl {
26
+ Select = 'select',
27
+ Autocomplete = 'autocomplete',
28
+ Checkbox = 'check-box',
29
+ Radio = 'radio'
30
+ }
31
+
32
+ export enum QItemChoiceOrientation {
33
+ Horizontal = 'horizontal',
34
+ Vertical = 'vertical'
35
+ }
36
+
37
+ export enum CheckBoxOptionType {
38
+ AnswerOption = 'answerOption',
39
+ AnswerValueSet = 'answerValueSet'
40
+ }
@@ -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
+ export {};
18
+ //# sourceMappingURL=enableWhen.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableWhen.interface.js","sourceRoot":"","sources":["enableWhen.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
@@ -0,0 +1,40 @@
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 type {
19
+ QuestionnaireItem,
20
+ QuestionnaireItemEnableWhen,
21
+ QuestionnaireResponseItemAnswer
22
+ } from 'fhir/r4';
23
+
24
+ export interface EnableWhenExpression {
25
+ expression: string;
26
+ isEnabled?: boolean;
27
+ }
28
+
29
+ export type EnableWhenItems = Record<string, EnableWhenItemProperties>;
30
+
31
+ export interface EnableWhenItemProperties {
32
+ linked: EnableWhenLinkedItem[];
33
+ isEnabled: boolean;
34
+ enableBehavior?: QuestionnaireItem['enableBehavior'];
35
+ }
36
+
37
+ export interface EnableWhenLinkedItem {
38
+ enableWhen: QuestionnaireItemEnableWhen;
39
+ answer?: QuestionnaireResponseItemAnswer[];
40
+ }