@aehrc/smart-forms-renderer 0.6.1 → 0.6.3

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 (177) hide show
  1. package/README.md +59 -0
  2. package/lib/index.d.ts +1 -1
  3. package/lib/index.js +1 -1
  4. package/lib/index.js.map +1 -1
  5. package/package.json +15 -4
  6. package/src/index.ts +1 -1
  7. package/lib/api/populate.d.ts +0 -8
  8. package/lib/api/populate.js +0 -63
  9. package/lib/api/populate.js.map +0 -1
  10. package/lib/components/FormComponents/ChoiceItems/ChoiceRadio.d.ts +0 -8
  11. package/lib/components/FormComponents/ChoiceItems/ChoiceRadio.js +0 -25
  12. package/lib/components/FormComponents/ChoiceItems/ChoiceRadio.js.map +0 -1
  13. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioButton.d.ts +0 -8
  14. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioButton.js +0 -25
  15. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioButton.js.map +0 -1
  16. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingleItem.d.ts +0 -8
  17. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingleItem.js +0 -25
  18. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingleItem.js.map +0 -1
  19. package/lib/components/FormComponents/ChoiceItems/QItemChoice.d.ts +0 -9
  20. package/lib/components/FormComponents/ChoiceItems/QItemChoice.js +0 -61
  21. package/lib/components/FormComponents/ChoiceItems/QItemChoice.js.map +0 -1
  22. package/lib/components/FormComponents/ChoiceItems/QItemChoiceAutocomplete.d.ts +0 -9
  23. package/lib/components/FormComponents/ChoiceItems/QItemChoiceAutocomplete.js +0 -89
  24. package/lib/components/FormComponents/ChoiceItems/QItemChoiceAutocomplete.js.map +0 -1
  25. package/lib/components/FormComponents/ChoiceItems/QItemChoiceCheckboxAnswerOption.d.ts +0 -11
  26. package/lib/components/FormComponents/ChoiceItems/QItemChoiceCheckboxAnswerOption.js +0 -70
  27. package/lib/components/FormComponents/ChoiceItems/QItemChoiceCheckboxAnswerOption.js.map +0 -1
  28. package/lib/components/FormComponents/ChoiceItems/QItemChoiceCheckboxAnswerValueSet.d.ts +0 -11
  29. package/lib/components/FormComponents/ChoiceItems/QItemChoiceCheckboxAnswerValueSet.js +0 -67
  30. package/lib/components/FormComponents/ChoiceItems/QItemChoiceCheckboxAnswerValueSet.js.map +0 -1
  31. package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioAnswerOption.d.ts +0 -11
  32. package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioAnswerOption.js +0 -70
  33. package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioAnswerOption.js.map +0 -1
  34. package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioAnswerValueSet.d.ts +0 -11
  35. package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioAnswerValueSet.js +0 -72
  36. package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioAnswerValueSet.js.map +0 -1
  37. package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioSingle.d.ts +0 -8
  38. package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioSingle.js +0 -25
  39. package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioSingle.js.map +0 -1
  40. package/lib/components/FormComponents/ChoiceItems/QItemChoiceSelectAnswerOption.d.ts +0 -9
  41. package/lib/components/FormComponents/ChoiceItems/QItemChoiceSelectAnswerOption.js +0 -73
  42. package/lib/components/FormComponents/ChoiceItems/QItemChoiceSelectAnswerOption.js.map +0 -1
  43. package/lib/components/FormComponents/ChoiceItems/QItemChoiceSelectAnswerValueSet.d.ts +0 -9
  44. package/lib/components/FormComponents/ChoiceItems/QItemChoiceSelectAnswerValueSet.js +0 -82
  45. package/lib/components/FormComponents/ChoiceItems/QItemChoiceSelectAnswerValueSet.js.map +0 -1
  46. package/lib/components/FormComponents/ItemParts/CheckboxWithOpenLabel.d.ts +0 -10
  47. package/lib/components/FormComponents/ItemParts/CheckboxWithOpenLabel.js +0 -35
  48. package/lib/components/FormComponents/ItemParts/CheckboxWithOpenLabel.js.map +0 -1
  49. package/lib/components/FormComponents/ItemParts/QItemCheckboxSingle.d.ts +0 -10
  50. package/lib/components/FormComponents/ItemParts/QItemCheckboxSingle.js +0 -25
  51. package/lib/components/FormComponents/ItemParts/QItemCheckboxSingle.js.map +0 -1
  52. package/lib/components/FormComponents/ItemParts/QItemCheckboxSingleWithOpenLabel.d.ts +0 -10
  53. package/lib/components/FormComponents/ItemParts/QItemCheckboxSingleWithOpenLabel.js +0 -35
  54. package/lib/components/FormComponents/ItemParts/QItemCheckboxSingleWithOpenLabel.js.map +0 -1
  55. package/lib/components/FormComponents/ItemParts/QItemRadioButtonWithOpenLabel.d.ts +0 -10
  56. package/lib/components/FormComponents/ItemParts/QItemRadioButtonWithOpenLabel.js +0 -31
  57. package/lib/components/FormComponents/ItemParts/QItemRadioButtonWithOpenLabel.js.map +0 -1
  58. package/lib/components/FormComponents/ItemParts/RadioButtonItemWithOpenLabel.d.ts +0 -10
  59. package/lib/components/FormComponents/ItemParts/RadioButtonItemWithOpenLabel.js +0 -31
  60. package/lib/components/FormComponents/ItemParts/RadioButtonItemWithOpenLabel.js.map +0 -1
  61. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoice.d.ts +0 -9
  62. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoice.js +0 -49
  63. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoice.js.map +0 -1
  64. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceAutocomplete.d.ts +0 -9
  65. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceAutocomplete.js +0 -109
  66. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceAutocomplete.js.map +0 -1
  67. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceCheckboxAnswerOption.d.ts +0 -11
  68. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceCheckboxAnswerOption.js +0 -105
  69. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceCheckboxAnswerOption.js.map +0 -1
  70. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceRadioAnswerOption.d.ts +0 -11
  71. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceRadioAnswerOption.js +0 -116
  72. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceRadioAnswerOption.js.map +0 -1
  73. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceSelectAnswerOption.d.ts +0 -9
  74. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceSelectAnswerOption.js +0 -75
  75. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceSelectAnswerOption.js.map +0 -1
  76. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceSelectAnswerValueSet.d.ts +0 -9
  77. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceSelectAnswerValueSet.js +0 -68
  78. package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceSelectAnswerValueSet.js.map +0 -1
  79. package/lib/components/FormComponents/QItemChoice/QItemChoice.d.ts +0 -9
  80. package/lib/components/FormComponents/QItemChoice/QItemChoice.js +0 -61
  81. package/lib/components/FormComponents/QItemChoice/QItemChoice.js.map +0 -1
  82. package/lib/components/FormComponents/QItemChoice/QItemChoiceAutocomplete.d.ts +0 -9
  83. package/lib/components/FormComponents/QItemChoice/QItemChoiceAutocomplete.js +0 -89
  84. package/lib/components/FormComponents/QItemChoice/QItemChoiceAutocomplete.js.map +0 -1
  85. package/lib/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerOption.d.ts +0 -11
  86. package/lib/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerOption.js +0 -70
  87. package/lib/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerOption.js.map +0 -1
  88. package/lib/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerValueSet.d.ts +0 -11
  89. package/lib/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerValueSet.js +0 -67
  90. package/lib/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerValueSet.js.map +0 -1
  91. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerOption.d.ts +0 -11
  92. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerOption.js +0 -70
  93. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerOption.js.map +0 -1
  94. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerValueSet.d.ts +0 -11
  95. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerValueSet.js +0 -72
  96. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerValueSet.js.map +0 -1
  97. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioSingle.d.ts +0 -8
  98. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioSingle.js +0 -25
  99. package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioSingle.js.map +0 -1
  100. package/lib/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerOption.d.ts +0 -9
  101. package/lib/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerOption.js +0 -73
  102. package/lib/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerOption.js.map +0 -1
  103. package/lib/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerValueSet.d.ts +0 -9
  104. package/lib/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerValueSet.js +0 -82
  105. package/lib/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerValueSet.js.map +0 -1
  106. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoice.d.ts +0 -9
  107. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoice.js +0 -49
  108. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoice.js.map +0 -1
  109. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceAutocomplete.d.ts +0 -9
  110. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceAutocomplete.js +0 -109
  111. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceAutocomplete.js.map +0 -1
  112. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceCheckboxAnswerOption.d.ts +0 -11
  113. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceCheckboxAnswerOption.js +0 -105
  114. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceCheckboxAnswerOption.js.map +0 -1
  115. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceRadioAnswerOption.d.ts +0 -11
  116. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceRadioAnswerOption.js +0 -116
  117. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceRadioAnswerOption.js.map +0 -1
  118. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerOption.d.ts +0 -9
  119. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerOption.js +0 -75
  120. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerOption.js.map +0 -1
  121. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerValueSet.d.ts +0 -9
  122. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerValueSet.js +0 -68
  123. package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerValueSet.js.map +0 -1
  124. package/lib/components/FormRenderer/BaseRenderer.d.ts +0 -3
  125. package/lib/components/FormRenderer/BaseRenderer.js +0 -54
  126. package/lib/components/FormRenderer/BaseRenderer.js.map +0 -1
  127. package/lib/components/FormRenderer/FormBodyCollapsible.d.ts +0 -9
  128. package/lib/components/FormRenderer/FormBodyCollapsible.js +0 -57
  129. package/lib/components/FormRenderer/FormBodyCollapsible.js.map +0 -1
  130. package/lib/components/FormRenderer/FormBodySingleCollapsible.d.ts +0 -12
  131. package/lib/components/FormRenderer/FormBodySingleCollapsible.js +0 -39
  132. package/lib/components/FormRenderer/FormBodySingleCollapsible.js.map +0 -1
  133. package/lib/components/FormRenderer/FormBodySingleCollapsibleWrapper.d.ts +0 -12
  134. package/lib/components/FormRenderer/FormBodySingleCollapsibleWrapper.js +0 -31
  135. package/lib/components/FormRenderer/FormBodySingleCollapsibleWrapper.js.map +0 -1
  136. package/lib/components/FormRenderer/FormBodyTabbed.d.ts +0 -9
  137. package/lib/components/FormRenderer/FormBodyTabbed.js +0 -60
  138. package/lib/components/FormRenderer/FormBodyTabbed.js.map +0 -1
  139. package/lib/components/FormRenderer/FormRenderer.d.ts +0 -3
  140. package/lib/components/FormRenderer/FormRenderer.js +0 -54
  141. package/lib/components/FormRenderer/FormRenderer.js.map +0 -1
  142. package/lib/components/FormRenderer/FormTitle.d.ts +0 -7
  143. package/lib/components/FormRenderer/FormTitle.js +0 -30
  144. package/lib/components/FormRenderer/FormTitle.js.map +0 -1
  145. package/lib/components/FormRenderer/FormTopLevelItem.d.ts +0 -9
  146. package/lib/components/FormRenderer/FormTopLevelItem.js +0 -45
  147. package/lib/components/FormRenderer/FormTopLevelItem.js.map +0 -1
  148. package/lib/components/FormRenderer/SmartFormsRenderer.d.ts +0 -9
  149. package/lib/components/FormRenderer/SmartFormsRenderer.js +0 -39
  150. package/lib/components/FormRenderer/SmartFormsRenderer.js.map +0 -1
  151. package/lib/components/FormRenderer/index.d.ts +0 -2
  152. package/lib/components/FormRenderer/index.js +0 -19
  153. package/lib/components/FormRenderer/index.js.map +0 -1
  154. package/lib/contexts/TestContext.d.ts +0 -11
  155. package/lib/contexts/TestContext.js +0 -32
  156. package/lib/contexts/TestContext.js.map +0 -1
  157. package/lib/contexts/index.d.ts +0 -1
  158. package/lib/contexts/index.js +0 -2
  159. package/lib/contexts/index.js.map +0 -1
  160. package/lib/hooks/useTestContext.d.ts +0 -5
  161. package/lib/hooks/useTestContext.js +0 -27
  162. package/lib/hooks/useTestContext.js.map +0 -1
  163. package/lib/stores/useConfigStore.d.ts +0 -18
  164. package/lib/stores/useConfigStore.js +0 -17
  165. package/lib/stores/useConfigStore.js.map +0 -1
  166. package/lib/stores/useSmartClientStore.d.ts +0 -7
  167. package/lib/stores/useSmartClientStore.js +0 -7
  168. package/lib/stores/useSmartClientStore.js.map +0 -1
  169. package/lib/theme/globalStyles.d.ts +0 -2
  170. package/lib/theme/globalStyles.js +0 -64
  171. package/lib/theme/globalStyles.js.map +0 -1
  172. package/lib/utils/populate.d.ts +0 -16
  173. package/lib/utils/populate.js +0 -78
  174. package/lib/utils/populate.js.map +0 -1
  175. package/lib/utils/populateCallback.d.ts +0 -6
  176. package/lib/utils/populateCallback.js +0 -40
  177. package/lib/utils/populateCallback.js.map +0 -1
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import { QItemChoiceOrientation } from '../../../interfaces/choice.enum';
3
- import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
4
- import type { PropsWithIsRepeatedAttribute, PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
5
- interface QItemOpenChoiceCheckboxProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>, PropsWithIsRepeatedAttribute {
6
- qItem: QuestionnaireItem;
7
- qrItem: QuestionnaireResponseItem;
8
- orientation: QItemChoiceOrientation;
9
- }
10
- declare function QItemOpenChoiceCheckboxAnswerOption(props: QItemOpenChoiceCheckboxProps): React.JSX.Element;
11
- export default QItemOpenChoiceCheckboxAnswerOption;
@@ -1,105 +0,0 @@
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 React, { useCallback, useMemo, useState } from 'react';
18
- import Grid from '@mui/material/Grid';
19
- import { CheckBoxOptionType, QItemChoiceOrientation } from '../../../interfaces/choice.enum';
20
- import { createEmptyQrItem } from '../../../utils/qrItem';
21
- import QItemCheckboxSingle from '../ItemParts/QItemCheckboxSingle';
22
- import { getOpenLabelText } from '../../../utils/itemControl';
23
- import QItemCheckboxSingleWithOpenLabel from '../ItemParts/QItemCheckboxSingleWithOpenLabel';
24
- import { QFormGroup } from '../Item.styles';
25
- import { getOldOpenLabelAnswer, updateQrOpenChoiceCheckboxAnswers } from '../../../utils/openChoice';
26
- import { FullWidthFormComponentBox } from '../../Box.styles';
27
- import debounce from 'lodash.debounce';
28
- import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
29
- import { DEBOUNCE_DURATION } from '../../../utils/debounce';
30
- import DisplayInstructions from '../DisplayItem/DisplayInstructions';
31
- import LabelWrapper from '../ItemParts/ItemLabelWrapper';
32
- function QItemOpenChoiceCheckboxAnswerOption(props) {
33
- var _a;
34
- const { qItem, qrItem, isRepeated, onQrItemChange, orientation } = props;
35
- // Init answers
36
- const qrOpenChoiceCheckbox = qrItem !== null && qrItem !== void 0 ? qrItem : createEmptyQrItem(qItem);
37
- const answers = useMemo(() => { var _a; return (_a = qrOpenChoiceCheckbox.answer) !== null && _a !== void 0 ? _a : []; }, [qrOpenChoiceCheckbox.answer]);
38
- // Init options and open label value
39
- const answerOptions = qItem.answerOption;
40
- let initialOpenLabelValue = '';
41
- let initialOpenLabelChecked = false;
42
- if (answerOptions) {
43
- const oldLabelAnswer = getOldOpenLabelAnswer(answers, answerOptions);
44
- if (oldLabelAnswer && oldLabelAnswer.valueString) {
45
- initialOpenLabelValue = oldLabelAnswer.valueString;
46
- initialOpenLabelChecked = true;
47
- }
48
- }
49
- const [openLabelValue, setOpenLabelValue] = useState(initialOpenLabelValue);
50
- const [openLabelChecked, setOpenLabelChecked] = useState(initialOpenLabelChecked);
51
- // Get additional rendering extensions
52
- const openLabelText = getOpenLabelText(qItem);
53
- const { displayInstructions, readOnly } = useRenderingExtensions(qItem);
54
- // Event handlers
55
- const handleValueChange = useCallback((changedOptionValue, changedOpenLabelValue) => {
56
- if (!answerOptions)
57
- return null;
58
- let updatedQrChoiceCheckbox = null;
59
- if (changedOptionValue) {
60
- updatedQrChoiceCheckbox = updateQrOpenChoiceCheckboxAnswers(changedOptionValue, null, answers, answerOptions, qrOpenChoiceCheckbox, CheckBoxOptionType.AnswerOption, isRepeated);
61
- }
62
- else if (changedOpenLabelValue !== null) {
63
- updatedQrChoiceCheckbox = updateQrOpenChoiceCheckboxAnswers(null, changedOpenLabelValue, answers, answerOptions, qrOpenChoiceCheckbox, CheckBoxOptionType.AnswerOption, isRepeated);
64
- }
65
- if (updatedQrChoiceCheckbox) {
66
- onQrItemChange(updatedQrChoiceCheckbox);
67
- }
68
- }, [answerOptions, answers, isRepeated, onQrItemChange, qrOpenChoiceCheckbox]);
69
- // eslint-disable-next-line react-hooks/exhaustive-deps
70
- const updateOpenLabelValueWithDebounce = useCallback(debounce((input) => {
71
- handleValueChange(null, input);
72
- }, DEBOUNCE_DURATION), [handleValueChange]); // Dependencies are tested, debounce is causing eslint to not recognise dependencies
73
- const openChoiceCheckbox = (React.createElement(QFormGroup, { row: orientation === QItemChoiceOrientation.Horizontal }, (_a = qItem.answerOption) === null || _a === void 0 ? void 0 :
74
- _a.map((option) => {
75
- var _a, _b, _c;
76
- if (option['valueCoding']) {
77
- return (React.createElement(QItemCheckboxSingle, { key: (_a = option.valueCoding.code) !== null && _a !== void 0 ? _a : '', value: (_b = option.valueCoding.code) !== null && _b !== void 0 ? _b : '', label: (_c = option.valueCoding.display) !== null && _c !== void 0 ? _c : `${option.valueCoding.code}`, readOnly: readOnly, isChecked: answers.some((answer) => JSON.stringify(answer) === JSON.stringify(option)), onCheckedChange: (changedValue) => handleValueChange(changedValue, null) }));
78
- }
79
- else if (option['valueString']) {
80
- return (React.createElement(QItemCheckboxSingle, { key: option.valueString, value: option.valueString, label: option.valueString, readOnly: readOnly, isChecked: answers.some((answer) => answer.valueString === option.valueString), onCheckedChange: (changedValue) => handleValueChange(changedValue, null) }));
81
- }
82
- else if (option['valueInteger']) {
83
- return (React.createElement(QItemCheckboxSingle, { key: option.valueInteger, value: option.valueInteger.toString(), label: option.valueInteger.toString(), readOnly: readOnly, isChecked: answers.some((answer) => answer.valueInteger === option.valueInteger), onCheckedChange: (changedValue) => handleValueChange(changedValue, null) }));
84
- }
85
- else {
86
- return null;
87
- }
88
- }),
89
- openLabelText ? (React.createElement(QItemCheckboxSingleWithOpenLabel, { value: openLabelValue, label: openLabelText, isChecked: openLabelChecked, onCheckedChange: (checked) => {
90
- handleValueChange(null, openLabelValue);
91
- setOpenLabelChecked(checked);
92
- }, onInputChange: (input) => {
93
- setOpenLabelValue(input);
94
- updateOpenLabelValueWithDebounce(input);
95
- } })) : null));
96
- return (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-open-choice-checkbox-answer-option-box" },
97
- React.createElement(Grid, { container: true, columnSpacing: 6 },
98
- React.createElement(Grid, { item: true, xs: 5 },
99
- React.createElement(LabelWrapper, { qItem: qItem })),
100
- React.createElement(Grid, { item: true, xs: 7 },
101
- openChoiceCheckbox,
102
- React.createElement(DisplayInstructions, { displayInstructions: displayInstructions })))));
103
- }
104
- export default QItemOpenChoiceCheckboxAnswerOption;
105
- //# sourceMappingURL=QItemOpenChoiceCheckboxAnswerOption.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QItemOpenChoiceCheckboxAnswerOption.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceCheckboxAnswerOption.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import { QItemChoiceOrientation } from '../../../interfaces/choice.enum';
3
- import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
4
- import type { PropsWithIsRepeatedAttribute, PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
5
- interface QItemOpenChoiceRadioProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>, PropsWithIsRepeatedAttribute {
6
- qItem: QuestionnaireItem;
7
- qrItem: QuestionnaireResponseItem;
8
- orientation: QItemChoiceOrientation;
9
- }
10
- declare function QItemOpenChoiceRadioAnswerOption(props: QItemOpenChoiceRadioProps): React.JSX.Element;
11
- export default QItemOpenChoiceRadioAnswerOption;
@@ -1,116 +0,0 @@
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 React, { useState } from 'react';
18
- import Grid from '@mui/material/Grid';
19
- import { QItemChoiceOrientation } from '../../../interfaces/choice.enum';
20
- import { createEmptyQrItem } from '../../../utils/qrItem';
21
- import { getOpenLabelText } from '../../../utils/itemControl';
22
- import { QRadioGroup } from '../Item.styles';
23
- import { getOldOpenLabelAnswer } from '../../../utils/openChoice';
24
- import { FullWidthFormComponentBox } from '../../Box.styles';
25
- import QItemChoiceRadioSingle from '../QItemChoice/QItemChoiceRadioSingle';
26
- import { findInAnswerOptions, getQrChoiceValue } from '../../../utils/choice';
27
- import QItemRadioButtonWithOpenLabel from '../ItemParts/QItemRadioButtonWithOpenLabel';
28
- import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
29
- import DisplayInstructions from '../DisplayItem/DisplayInstructions';
30
- import LabelWrapper from '../ItemParts/ItemLabelWrapper';
31
- function QItemOpenChoiceRadioAnswerOption(props) {
32
- var _a, _b;
33
- const { qItem, qrItem, onQrItemChange, orientation } = props;
34
- // Init answers
35
- const qrOpenChoiceRadio = qrItem !== null && qrItem !== void 0 ? qrItem : createEmptyQrItem(qItem);
36
- let valueRadio = getQrChoiceValue(qrOpenChoiceRadio, true);
37
- const answers = (_a = qrOpenChoiceRadio.answer) !== null && _a !== void 0 ? _a : [];
38
- // Init empty open label
39
- const answerOptions = qItem.answerOption;
40
- let initialOpenLabelValue = '';
41
- let initialOpenLabelSelected = false;
42
- if (answerOptions) {
43
- const oldLabelAnswer = getOldOpenLabelAnswer(answers, answerOptions);
44
- if (oldLabelAnswer && oldLabelAnswer.valueString) {
45
- initialOpenLabelValue = oldLabelAnswer.valueString;
46
- initialOpenLabelSelected = true;
47
- valueRadio = initialOpenLabelValue;
48
- }
49
- }
50
- const [openLabelValue, setOpenLabelValue] = useState(initialOpenLabelValue);
51
- const [openLabelSelected, setOpenLabelSelected] = useState(initialOpenLabelSelected);
52
- // Allow open label to remain selected even if its input was cleared
53
- if (openLabelSelected && valueRadio === null) {
54
- valueRadio = '';
55
- }
56
- // Get additional rendering extensions
57
- const openLabelText = getOpenLabelText(qItem);
58
- const { displayInstructions, readOnly } = useRenderingExtensions(qItem);
59
- // Event handlers
60
- function handleValueChange(changedOptionValue, changedOpenLabelValue) {
61
- if (!answerOptions)
62
- return null;
63
- if (changedOptionValue !== null) {
64
- if (qItem.answerOption) {
65
- const qrAnswer = findInAnswerOptions(qItem.answerOption, changedOptionValue);
66
- // If selected answer can be found in options, it is a non-open label selection
67
- if (qrAnswer) {
68
- onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [qrAnswer] }));
69
- setOpenLabelSelected(false);
70
- }
71
- else {
72
- // Otherwise, it is an open-label selection
73
- onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueString: changedOptionValue }] }));
74
- setOpenLabelValue(changedOptionValue);
75
- setOpenLabelSelected(true);
76
- }
77
- }
78
- }
79
- if (changedOpenLabelValue !== null) {
80
- setOpenLabelValue(changedOpenLabelValue);
81
- if (changedOpenLabelValue === '') {
82
- onQrItemChange(createEmptyQrItem(qItem));
83
- }
84
- else {
85
- setOpenLabelValue(changedOpenLabelValue);
86
- onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueString: changedOpenLabelValue }] }));
87
- }
88
- }
89
- }
90
- const openChoiceRadio = (React.createElement(QRadioGroup, { row: orientation === QItemChoiceOrientation.Horizontal, name: qItem.text, id: qItem.id, onChange: (e) => handleValueChange(e.target.value, null), value: valueRadio, "data-test": "q-item-radio-group" }, (_b = qItem.answerOption) === null || _b === void 0 ? void 0 :
91
- _b.map((option) => {
92
- var _a, _b, _c;
93
- if (option['valueCoding']) {
94
- return (React.createElement(QItemChoiceRadioSingle, { key: (_a = option.valueCoding.code) !== null && _a !== void 0 ? _a : '', value: (_b = option.valueCoding.code) !== null && _b !== void 0 ? _b : '', label: (_c = option.valueCoding.display) !== null && _c !== void 0 ? _c : `${option.valueCoding.code}`, readOnly: readOnly }));
95
- }
96
- else if (option['valueString']) {
97
- return (React.createElement(QItemChoiceRadioSingle, { key: option.valueString, value: option.valueString, label: option.valueString, readOnly: readOnly }));
98
- }
99
- else if (option['valueInteger']) {
100
- return (React.createElement(QItemChoiceRadioSingle, { key: option.valueInteger, value: option.valueInteger.toString(), label: option.valueInteger.toString(), readOnly: readOnly }));
101
- }
102
- else {
103
- return null;
104
- }
105
- }),
106
- openLabelText ? (React.createElement(QItemRadioButtonWithOpenLabel, { value: openLabelValue, label: openLabelText, readOnly: readOnly, isSelected: openLabelSelected, onInputChange: (input) => handleValueChange(null, input) })) : null));
107
- return (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-open-choice-radio-answer-option-box" },
108
- React.createElement(Grid, { container: true, columnSpacing: 6 },
109
- React.createElement(Grid, { item: true, xs: 5 },
110
- React.createElement(LabelWrapper, { qItem: qItem })),
111
- React.createElement(Grid, { item: true, xs: 7 },
112
- openChoiceRadio,
113
- React.createElement(DisplayInstructions, { displayInstructions: displayInstructions })))));
114
- }
115
- export default QItemOpenChoiceRadioAnswerOption;
116
- //# sourceMappingURL=QItemOpenChoiceRadioAnswerOption.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QItemOpenChoiceRadioAnswerOption.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceRadioAnswerOption.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
3
- import type { PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute, PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
4
- interface Props extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>, PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute {
5
- qItem: QuestionnaireItem;
6
- qrItem: QuestionnaireResponseItem;
7
- }
8
- declare function QItemOpenChoiceSelectAnswerOption(props: Props): React.JSX.Element | null;
9
- export default QItemOpenChoiceSelectAnswerOption;
@@ -1,75 +0,0 @@
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 React from 'react';
18
- import Autocomplete from '@mui/material/Autocomplete';
19
- import Grid from '@mui/material/Grid';
20
- import { getAnswerOptionLabel } from '../../../utils/openChoice';
21
- import { createEmptyQrItem } from '../../../utils/qrItem';
22
- import { StandardTextField } from '../Textfield.styles';
23
- import { FullWidthFormComponentBox } from '../../Box.styles';
24
- import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
25
- import DisplayInstructions from '../DisplayItem/DisplayInstructions';
26
- import LabelWrapper from '../ItemParts/ItemLabelWrapper';
27
- function QItemOpenChoiceSelectAnswerOption(props) {
28
- const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
29
- // Get additional rendering extensions
30
- const { displayUnit, displayPrompt, displayInstructions, readOnly, entryFormat } = useRenderingExtensions(qItem);
31
- // Init input value
32
- const answerOptions = qItem.answerOption;
33
- if (!answerOptions)
34
- return null;
35
- const qrOpenChoice = qrItem !== null && qrItem !== void 0 ? qrItem : createEmptyQrItem(qItem);
36
- let valueSelect = undefined;
37
- if (qrOpenChoice.answer) {
38
- valueSelect = qrOpenChoice.answer[0];
39
- }
40
- // Event handlers
41
- function handleChange(_, newValue) {
42
- if (newValue) {
43
- if (typeof newValue === 'string') {
44
- onQrItemChange(Object.assign(Object.assign({}, qrOpenChoice), { answer: [{ valueString: newValue }] }));
45
- }
46
- else {
47
- const option = newValue;
48
- if (option['valueCoding']) {
49
- onQrItemChange(Object.assign(Object.assign({}, qrOpenChoice), { answer: [{ valueCoding: option.valueCoding }] }));
50
- }
51
- else if (option['valueString']) {
52
- onQrItemChange(Object.assign(Object.assign({}, qrOpenChoice), { answer: [{ valueString: option.valueString }] }));
53
- }
54
- else if (option['valueInteger']) {
55
- onQrItemChange(Object.assign(Object.assign({}, qrOpenChoice), { answer: [{ valueInteger: option.valueInteger }] }));
56
- }
57
- }
58
- return;
59
- }
60
- onQrItemChange(createEmptyQrItem(qItem));
61
- }
62
- const openOpenChoiceSelectAnswerOption = (React.createElement(Autocomplete, { id: qItem.id, value: valueSelect !== null && valueSelect !== void 0 ? valueSelect : null, options: answerOptions, getOptionLabel: (option) => getAnswerOptionLabel(option), onChange: handleChange, freeSolo: true, autoHighlight: true, sx: { maxWidth: !isTabled ? 280 : 3000, minWidth: 160, flexGrow: 1 }, disabled: readOnly, size: "small", placeholder: entryFormat, renderInput: (params) => (React.createElement(StandardTextField, Object.assign({ isTabled: isTabled, label: displayPrompt }, params, { InputProps: Object.assign(Object.assign({}, params.InputProps), { endAdornment: (React.createElement(React.Fragment, null,
63
- params.InputProps.endAdornment,
64
- displayUnit)) }) }))) }));
65
- const renderQItemOpenChoiceAutocomplete = isRepeated ? (React.createElement(React.Fragment, null, openOpenChoiceSelectAnswerOption)) : (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-open-choice-select-answer-option-box" },
66
- React.createElement(Grid, { container: true, columnSpacing: 6 },
67
- React.createElement(Grid, { item: true, xs: 5 },
68
- React.createElement(LabelWrapper, { qItem: qItem })),
69
- React.createElement(Grid, { item: true, xs: 7 },
70
- openOpenChoiceSelectAnswerOption,
71
- React.createElement(DisplayInstructions, { displayInstructions: displayInstructions })))));
72
- return React.createElement(React.Fragment, null, renderQItemOpenChoiceAutocomplete);
73
- }
74
- export default QItemOpenChoiceSelectAnswerOption;
75
- //# sourceMappingURL=QItemOpenChoiceSelectAnswerOption.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QItemOpenChoiceSelectAnswerOption.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerOption.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
3
- import type { PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute, PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
4
- interface Props extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>, PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute {
5
- qItem: QuestionnaireItem;
6
- qrItem: QuestionnaireResponseItem;
7
- }
8
- declare function QItemOpenChoiceSelectAnswerValueSet(props: Props): React.JSX.Element;
9
- export default QItemOpenChoiceSelectAnswerValueSet;
@@ -1,68 +0,0 @@
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 React from 'react';
18
- import Autocomplete from '@mui/material/Autocomplete';
19
- import Grid from '@mui/material/Grid';
20
- import Typography from '@mui/material/Typography';
21
- import { createEmptyQrItem } from '../../../utils/qrItem';
22
- import { StandardTextField } from '../Textfield.styles';
23
- import { FullWidthFormComponentBox } from '../../Box.styles';
24
- import useValueSetCodings from '../../../hooks/useValueSetCodings';
25
- import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
26
- import DisplayInstructions from '../DisplayItem/DisplayInstructions';
27
- import LabelWrapper from '../ItemParts/ItemLabelWrapper';
28
- function QItemOpenChoiceSelectAnswerValueSet(props) {
29
- const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
30
- // Init input value
31
- const qrOpenChoice = qrItem !== null && qrItem !== void 0 ? qrItem : createEmptyQrItem(qItem);
32
- let valueSelect = undefined;
33
- if (qrOpenChoice['answer']) {
34
- valueSelect = qrOpenChoice['answer'][0].valueCoding;
35
- }
36
- // Get codings/options from valueSet
37
- const { codings, serverError } = useValueSetCodings(qItem);
38
- // Get additional rendering extensions
39
- const { displayUnit, displayPrompt, displayInstructions, readOnly, entryFormat } = useRenderingExtensions(qItem);
40
- // Event handlers
41
- function handleValueChange(_, newValue) {
42
- if (newValue) {
43
- if (typeof newValue === 'string') {
44
- onQrItemChange(Object.assign(Object.assign({}, qrOpenChoice), { answer: [{ valueString: newValue }] }));
45
- }
46
- else {
47
- onQrItemChange(Object.assign(Object.assign({}, qrOpenChoice), { answer: [{ valueCoding: newValue }] }));
48
- }
49
- return;
50
- }
51
- onQrItemChange(createEmptyQrItem(qItem));
52
- }
53
- const openChoiceSelectAnswerValueSet = (React.createElement(React.Fragment, null,
54
- React.createElement(Autocomplete, { id: qItem.id, value: valueSelect !== null && valueSelect !== void 0 ? valueSelect : null, options: codings, getOptionLabel: (option) => (typeof option === 'string' ? option : `${option.display}`), onChange: handleValueChange, onInputChange: (event, newValue) => handleValueChange(event, newValue), freeSolo: true, autoHighlight: true, sx: { maxWidth: !isTabled ? 280 : 3000, minWidth: 160, flexGrow: 1 }, disabled: readOnly, size: "small", placeholder: entryFormat, renderInput: (params) => (React.createElement(StandardTextField, Object.assign({ isTabled: isTabled, label: displayPrompt }, params, { InputProps: Object.assign(Object.assign({}, params.InputProps), { endAdornment: (React.createElement(React.Fragment, null,
55
- params.InputProps.endAdornment,
56
- displayUnit)) }) }))) }),
57
- serverError ? (React.createElement(Typography, { variant: "subtitle2" }, "There was an error fetching options from the terminology server.")) : null));
58
- const renderQItemOpenChoiceSelectAnswerValueSet = isRepeated ? (React.createElement(React.Fragment, null, openChoiceSelectAnswerValueSet)) : (React.createElement(FullWidthFormComponentBox, null,
59
- React.createElement(Grid, { container: true, columnSpacing: 6 },
60
- React.createElement(Grid, { item: true, xs: 5 },
61
- React.createElement(LabelWrapper, { qItem: qItem })),
62
- React.createElement(Grid, { item: true, xs: 7 },
63
- openChoiceSelectAnswerValueSet,
64
- React.createElement(DisplayInstructions, { displayInstructions: displayInstructions })))));
65
- return React.createElement(React.Fragment, null, renderQItemOpenChoiceSelectAnswerValueSet);
66
- }
67
- export default QItemOpenChoiceSelectAnswerValueSet;
68
- //# sourceMappingURL=QItemOpenChoiceSelectAnswerValueSet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QItemOpenChoiceSelectAnswerValueSet.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerValueSet.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- declare function BaseRenderer(): React.JSX.Element;
3
- export default BaseRenderer;
@@ -1,54 +0,0 @@
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 React from 'react';
18
- import { Container, Fade } from '@mui/material';
19
- import FormTopLevelItem from '../FormRenderer/FormTopLevelItem';
20
- import useQuestionnaireStore from '../../stores/useQuestionnaireStore';
21
- import useQuestionnaireResponseStore from '../../stores/useQuestionnaireResponseStore';
22
- function BaseRenderer() {
23
- const sourceQuestionnaire = useQuestionnaireStore((state) => state.sourceQuestionnaire);
24
- const updateExpressions = useQuestionnaireStore((state) => state.updateExpressions);
25
- const updatableResponse = useQuestionnaireResponseStore((state) => state.updatableResponse);
26
- const updateResponse = useQuestionnaireResponseStore((state) => state.updateResponse);
27
- function handleTopLevelQRItemChange(newTopLevelQItem, index) {
28
- if (!updatableResponse.item || updatableResponse.item.length === 0) {
29
- return;
30
- }
31
- const updatedItems = [...updatableResponse.item]; // Copy the original array of items
32
- updatedItems[index] = newTopLevelQItem; // Modify the item at the specified index
33
- const updatedResponse = Object.assign(Object.assign({}, updatableResponse), { item: updatedItems });
34
- updateExpressions(updatedResponse);
35
- updateResponse(updatedResponse);
36
- }
37
- const topLevelQItems = sourceQuestionnaire.item;
38
- const topLevelQRItems = updatableResponse.item;
39
- if (!topLevelQItems) {
40
- return React.createElement(React.Fragment, null, "Questionnaire does not have any items");
41
- }
42
- return (React.createElement(Fade, { in: true, timeout: 500 },
43
- React.createElement(Container, { maxWidth: "xl" }, topLevelQItems.map((qItem, index) => {
44
- const qrItem = topLevelQRItems
45
- ? topLevelQRItems[index]
46
- : {
47
- linkId: qItem.linkId,
48
- text: qItem.text
49
- };
50
- return (React.createElement(FormTopLevelItem, { key: qItem.linkId, topLevelQItem: qItem, topLevelQRItem: qrItem, onQrItemChange: (newTopLevelQRItem) => handleTopLevelQRItemChange(newTopLevelQRItem, index) }));
51
- }))));
52
- }
53
- export default BaseRenderer;
54
- //# sourceMappingURL=BaseRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseRenderer.js","sourceRoot":"","sources":["../../../src/components/FormRenderer/BaseRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAEhE,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,6BAA6B,MAAM,4CAA4C,CAAC;AAEvF,SAAS,YAAY;IACnB,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACxF,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpF,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC5F,MAAM,cAAc,GAAG,6BAA6B,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAEtF,SAAS,0BAA0B,CAAC,gBAA2C,EAAE,KAAa;QAC5F,IAAI,CAAC,iBAAiB,CAAC,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YAClE,OAAO;SACR;QAED,MAAM,YAAY,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAmC;QACrF,YAAY,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC,yCAAyC;QAEjF,MAAM,eAAe,mCAChB,iBAAiB,KACpB,IAAI,EAAE,YAAY,GACnB,CAAC;QAEF,iBAAiB,CAAC,eAAe,CAAC,CAAC;QACnC,cAAc,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC;IAChD,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC;IAE/C,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO,kFAA0C,CAAC;KACnD;IAED,OAAO,CACL,oBAAC,IAAI,IAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG;QAC1B,oBAAC,SAAS,IAAC,QAAQ,EAAC,IAAI,IACrB,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACnC,MAAM,MAAM,GAAG,eAAe;gBAC5B,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC;gBACxB,CAAC,CAAC;oBACE,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB,CAAC;YAEN,OAAO,CACL,oBAAC,gBAAgB,IACf,GAAG,EAAE,KAAK,CAAC,MAAM,EACjB,aAAa,EAAE,KAAK,EACpB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,CAAC,iBAAiB,EAAE,EAAE,CACpC,0BAA0B,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAEtD,CACH,CAAC;QACJ,CAAC,CAAC,CACQ,CACP,CACR,CAAC;AACJ,CAAC;AAED,eAAe,YAAY,CAAC"}
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
3
- import type { PropsWithQrItemChangeHandler } from '../../interfaces/renderProps.interface';
4
- interface FormBodyCollapsibleProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem> {
5
- topLevelQItem: QuestionnaireItem;
6
- topLevelQRItem: QuestionnaireResponseItem;
7
- }
8
- declare function FormBodyCollapsibleWrapper(props: FormBodyCollapsibleProps): React.JSX.Element;
9
- export default FormBodyCollapsibleWrapper;
@@ -1,57 +0,0 @@
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 React, { useMemo } from 'react';
18
- import { Stack } from '@mui/material';
19
- import { getQrItemsIndex, mapQItemsIndex } from '../../utils/mapItem';
20
- import { updateQrGroup } from '../../utils/qrItem';
21
- import useQuestionnaireStore from '../../stores/useQuestionnaireStore';
22
- import FormBodySingleCollapsibleWrapper from './FormBodySingleCollapsibleWrapper';
23
- function FormBodyCollapsibleWrapper(props) {
24
- const { topLevelQItem, topLevelQRItem, onQrItemChange } = props;
25
- const currentTab = useQuestionnaireStore((state) => state.currentTabIndex);
26
- const tabs = useQuestionnaireStore((state) => state.tabs);
27
- const switchTab = useQuestionnaireStore((state) => state.switchTab);
28
- const indexMap = useMemo(() => mapQItemsIndex(topLevelQItem), [topLevelQItem]);
29
- const qItems = topLevelQItem.item;
30
- const qrItems = topLevelQRItem.item;
31
- function handleQrGroupChange(qrItem) {
32
- updateQrGroup(qrItem, null, topLevelQRItem, indexMap);
33
- onQrItemChange(topLevelQRItem);
34
- }
35
- if (!qItems || !qrItems) {
36
- return React.createElement(React.Fragment, null, "Unable to load form");
37
- }
38
- function handleToggleExpand(index) {
39
- switchTab(currentTab === index ? -1 : index);
40
- }
41
- if (!qItems || !qrItems) {
42
- return React.createElement(React.Fragment, null, "Unable to load form");
43
- }
44
- const qrItemsByIndex = getQrItemsIndex(qItems, qrItems, indexMap);
45
- return (React.createElement(Stack, { rowGap: 1 }, qItems.map((qItem, i) => {
46
- const qrItem = qrItemsByIndex[i];
47
- const isNotRepeatGroup = !Array.isArray(qrItem);
48
- const isTab = !!tabs[qItem.linkId];
49
- if (!isTab || !isNotRepeatGroup) {
50
- // Something has gone horribly wrong
51
- return null;
52
- }
53
- return (React.createElement(FormBodySingleCollapsibleWrapper, { key: qItem.linkId, qItem: qItem, qrItem: qrItem, index: i, selectedIndex: currentTab, onToggleExpand: handleToggleExpand, onQrItemChange: handleQrGroupChange }));
54
- })));
55
- }
56
- export default FormBodyCollapsibleWrapper;
57
- //# sourceMappingURL=FormBodyCollapsible.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormBodyCollapsible.js","sourceRoot":"","sources":["../../../src/components/FormRenderer/FormBodyCollapsible.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAOlF,SAAS,0BAA0B,CAAC,KAA+B;IACjE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAEhE,MAAM,UAAU,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE1D,MAAM,SAAS,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAA2B,OAAO,CAC9C,GAAG,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,EACnC,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;IAClC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC;IAEpC,SAAS,mBAAmB,CAAC,MAAiC;QAC5D,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QACtD,cAAc,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;QACvB,OAAO,gEAAwB,CAAC;KACjC;IAED,SAAS,kBAAkB,CAAC,KAAa;QACvC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;QACvB,OAAO,gEAAwB,CAAC;KACjC;IAED,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAElE,OAAO,CACL,oBAAC,KAAK,IAAC,MAAM,EAAE,CAAC,IACb,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAEjC,MAAM,gBAAgB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,EAAE;YAC/B,oCAAoC;YACpC,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CACL,oBAAC,gCAAgC,IAC/B,GAAG,EAAE,KAAK,CAAC,MAAM,EACjB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,CAAC,EACR,aAAa,EAAE,UAAU,EACzB,cAAc,EAAE,kBAAkB,EAClC,cAAc,EAAE,mBAAmB,GACnC,CACH,CAAC;IACJ,CAAC,CAAC,CACI,CACT,CAAC;AACJ,CAAC;AAED,eAAe,0BAA0B,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- import React from 'react';
3
- import type { QuestionnaireItem } from 'fhir/r4';
4
- interface FormBodySingleCollapsibleProps {
5
- qItem: QuestionnaireItem;
6
- index: number;
7
- selectedIndex: number;
8
- onToggleExpand: (index: number) => void;
9
- children: ReactNode;
10
- }
11
- declare const FormBodySingleCollapsible: React.NamedExoticComponent<FormBodySingleCollapsibleProps>;
12
- export default FormBodySingleCollapsible;