@aehrc/smart-forms-renderer 0.13.1 → 0.14.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 (195) hide show
  1. package/lib/components/Box.styles.d.ts +0 -6
  2. package/lib/components/Box.styles.js +1 -29
  3. package/lib/components/Box.styles.js.map +1 -1
  4. package/lib/components/FormComponents/AttachmentItem/AttachmentField.d.ts +13 -0
  5. package/lib/components/FormComponents/AttachmentItem/AttachmentField.js +39 -0
  6. package/lib/components/FormComponents/AttachmentItem/AttachmentField.js.map +1 -0
  7. package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.d.ts +14 -0
  8. package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.js +34 -0
  9. package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.js.map +1 -0
  10. package/lib/components/FormComponents/AttachmentItem/AttachmentFileCollector.d.ts +8 -0
  11. package/lib/components/FormComponents/AttachmentItem/AttachmentFileCollector.js +61 -0
  12. package/lib/components/FormComponents/AttachmentItem/AttachmentFileCollector.js.map +1 -0
  13. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.d.ts +11 -0
  14. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.js +49 -0
  15. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.js.map +1 -0
  16. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.styles.d.ts +7 -0
  17. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.styles.js +30 -0
  18. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.styles.js.map +1 -0
  19. package/lib/components/FormComponents/AttachmentItem/AttachmentItem.d.ts +14 -0
  20. package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js +86 -0
  21. package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js.map +1 -0
  22. package/lib/components/FormComponents/AttachmentItem/AttachmentUrlField.d.ts +10 -0
  23. package/lib/components/FormComponents/AttachmentItem/AttachmentUrlField.js +39 -0
  24. package/lib/components/FormComponents/AttachmentItem/AttachmentUrlField.js.map +1 -0
  25. package/lib/components/FormComponents/BooleanItem/BooleanItem.js +1 -3
  26. package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
  27. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.d.ts +1 -1
  28. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js +2 -2
  29. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js.map +1 -1
  30. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +1 -3
  31. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
  32. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +2 -2
  33. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
  34. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.d.ts +2 -1
  35. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.js +6 -3
  36. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.js.map +1 -1
  37. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +5 -5
  38. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  39. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +1 -3
  40. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
  41. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.d.ts +2 -1
  42. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js +6 -3
  43. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js.map +1 -1
  44. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +4 -6
  45. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
  46. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +2 -1
  47. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -1
  48. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +1 -3
  49. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
  50. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.d.ts +2 -1
  51. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +8 -5
  52. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js.map +1 -1
  53. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +4 -6
  54. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
  55. package/lib/components/FormComponents/CustomDateItem/CustomDateItem.js +2 -2
  56. package/lib/components/FormComponents/CustomDateItem/CustomDateItem.js.map +1 -1
  57. package/lib/components/FormComponents/DateItem/DateField.js +2 -1
  58. package/lib/components/FormComponents/DateItem/DateField.js.map +1 -1
  59. package/lib/components/FormComponents/DateItem/DateItem.js +2 -2
  60. package/lib/components/FormComponents/DateItem/DateItem.js.map +1 -1
  61. package/lib/components/FormComponents/DateTimeItem/DateTimeField.js +2 -1
  62. package/lib/components/FormComponents/DateTimeItem/DateTimeField.js.map +1 -1
  63. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js +2 -2
  64. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js.map +1 -1
  65. package/lib/components/FormComponents/DecimalItem/DecimalItem.js +2 -2
  66. package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
  67. package/lib/components/FormComponents/IntegerItem/IntegerItem.js +2 -2
  68. package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
  69. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.d.ts +1 -3
  70. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js +9 -10
  71. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js.map +1 -1
  72. package/lib/components/FormComponents/ItemParts/ItemLabelText.js +1 -1
  73. package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -1
  74. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +20 -1
  75. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -1
  76. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js +2 -2
  77. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js.map +1 -1
  78. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +1 -3
  79. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
  80. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +2 -2
  81. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
  82. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +1 -3
  83. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
  84. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js +2 -2
  85. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js.map +1 -1
  86. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +1 -3
  87. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -1
  88. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.d.ts +2 -1
  89. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js +7 -4
  90. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js.map +1 -1
  91. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +4 -6
  92. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -1
  93. package/lib/components/FormComponents/RepeatItem/RepeatItem.js +1 -3
  94. package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
  95. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js +28 -16
  96. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -1
  97. package/lib/components/FormComponents/SliderItem/SliderField.js +2 -1
  98. package/lib/components/FormComponents/SliderItem/SliderField.js.map +1 -1
  99. package/lib/components/FormComponents/SliderItem/SliderItem.js +1 -3
  100. package/lib/components/FormComponents/SliderItem/SliderItem.js.map +1 -1
  101. package/lib/components/FormComponents/StringItem/StringItem.js +2 -2
  102. package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
  103. package/lib/components/FormComponents/TextItem/TextItem.js +2 -2
  104. package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
  105. package/lib/components/FormComponents/Textfield.styles.d.ts +1 -0
  106. package/lib/components/FormComponents/Textfield.styles.js +2 -1
  107. package/lib/components/FormComponents/Textfield.styles.js.map +1 -1
  108. package/lib/components/FormComponents/TimeItem/TimeField.js +2 -1
  109. package/lib/components/FormComponents/TimeItem/TimeField.js.map +1 -1
  110. package/lib/components/FormComponents/TimeItem/TimeItem.js +2 -2
  111. package/lib/components/FormComponents/TimeItem/TimeItem.js.map +1 -1
  112. package/lib/components/FormComponents/UrlItem/UrlItem.js +2 -2
  113. package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -1
  114. package/lib/hooks/UseFileDrop.d.ts +10 -0
  115. package/lib/hooks/UseFileDrop.js +40 -0
  116. package/lib/hooks/UseFileDrop.js.map +1 -0
  117. package/lib/hooks/useAttachmentUrlValidation.d.ts +2 -0
  118. package/lib/{components/FormComponents/ItemParts/ItemExtensionLabels.js → hooks/useAttachmentUrlValidation.js} +9 -12
  119. package/lib/hooks/useAttachmentUrlValidation.js.map +1 -0
  120. package/lib/hooks/useRenderingExtensions.d.ts +1 -0
  121. package/lib/hooks/useRenderingExtensions.js +2 -1
  122. package/lib/hooks/useRenderingExtensions.js.map +1 -1
  123. package/lib/hooks/useValueSetCodings.d.ts +5 -1
  124. package/lib/hooks/useValueSetCodings.js +1 -1
  125. package/lib/hooks/useValueSetCodings.js.map +1 -1
  126. package/lib/setup-jest.js +1 -0
  127. package/lib/stories/MedicalHistoryTable.stories.js +45 -0
  128. package/lib/stories/SmartFormsRenderer.stories.js +117 -0
  129. package/lib/utils/fileUtils.d.ts +3 -0
  130. package/lib/utils/fileUtils.js +64 -0
  131. package/lib/utils/fileUtils.js.map +1 -0
  132. package/lib/utils/itemControl.d.ts +6 -0
  133. package/lib/utils/itemControl.js +15 -0
  134. package/lib/utils/itemControl.js.map +1 -1
  135. package/lib/utils/validateQuestionnaire.d.ts +3 -5
  136. package/lib/utils/validateQuestionnaire.js +8 -5
  137. package/lib/utils/validateQuestionnaire.js.map +1 -1
  138. package/package.json +3 -1
  139. package/src/components/Box.styles.ts +1 -31
  140. package/src/components/FormComponents/AttachmentItem/AttachmentField.tsx +96 -0
  141. package/src/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.tsx +87 -0
  142. package/src/components/FormComponents/AttachmentItem/AttachmentFileCollector.tsx +101 -0
  143. package/src/components/FormComponents/AttachmentItem/AttachmentFileDropBox.styles.ts +31 -0
  144. package/src/components/FormComponents/AttachmentItem/AttachmentFileDropBox.tsx +66 -0
  145. package/src/components/FormComponents/AttachmentItem/AttachmentItem.tsx +123 -0
  146. package/src/components/FormComponents/AttachmentItem/AttachmentUrlField.tsx +78 -0
  147. package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +1 -7
  148. package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.tsx +3 -3
  149. package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +1 -7
  150. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +2 -6
  151. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.tsx +6 -4
  152. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +5 -9
  153. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +1 -7
  154. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx +7 -4
  155. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +4 -10
  156. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +2 -1
  157. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +1 -7
  158. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +9 -6
  159. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +4 -10
  160. package/src/components/FormComponents/CustomDateItem/CustomDateItem.tsx +2 -7
  161. package/src/components/FormComponents/DateItem/DateField.tsx +2 -1
  162. package/src/components/FormComponents/DateItem/DateItem.tsx +2 -7
  163. package/src/components/FormComponents/DateTimeItem/DateTimeField.tsx +2 -1
  164. package/src/components/FormComponents/DateTimeItem/DateTimeItem.tsx +2 -7
  165. package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +3 -15
  166. package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +3 -15
  167. package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +13 -16
  168. package/src/components/FormComponents/ItemParts/ItemLabelText.tsx +1 -1
  169. package/src/components/FormComponents/ItemParts/ItemLabelWrapper.tsx +30 -1
  170. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx +2 -2
  171. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +1 -7
  172. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +2 -6
  173. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +1 -7
  174. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.tsx +2 -2
  175. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +1 -7
  176. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx +9 -6
  177. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +4 -10
  178. package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +1 -7
  179. package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +67 -31
  180. package/src/components/FormComponents/SliderItem/SliderField.tsx +2 -1
  181. package/src/components/FormComponents/SliderItem/SliderItem.tsx +1 -7
  182. package/src/components/FormComponents/StringItem/StringItem.tsx +3 -15
  183. package/src/components/FormComponents/TextItem/TextItem.tsx +3 -15
  184. package/src/components/FormComponents/Textfield.styles.ts +3 -1
  185. package/src/components/FormComponents/TimeItem/TimeField.tsx +2 -1
  186. package/src/components/FormComponents/TimeItem/TimeItem.tsx +2 -7
  187. package/src/components/FormComponents/UrlItem/UrlItem.tsx +3 -15
  188. package/src/hooks/UseFileDrop.ts +53 -0
  189. package/src/{components/FormComponents/ItemParts/ItemExtensionLabels.tsx → hooks/useAttachmentUrlValidation.ts} +7 -22
  190. package/src/hooks/useRenderingExtensions.ts +3 -0
  191. package/src/hooks/useValueSetCodings.ts +10 -2
  192. package/src/utils/fileUtils.ts +66 -0
  193. package/src/utils/itemControl.ts +16 -0
  194. package/src/utils/validateQuestionnaire.ts +17 -13
  195. package/lib/components/FormComponents/ItemParts/ItemExtensionLabels.js.map +0 -1
@@ -120,7 +120,7 @@ function useValueSetCodings(qItem) {
120
120
  });
121
121
  }
122
122
  }, [qItem]);
123
- return { codings, serverError };
123
+ return { codings, terminologyError: { error: serverError, answerValueSet: valueSetUrl !== null && valueSetUrl !== void 0 ? valueSetUrl : '' } };
124
124
  }
125
125
  export default useValueSetCodings;
126
126
  //# sourceMappingURL=useValueSetCodings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useValueSetCodings.js","sourceRoot":"","sources":["../../src/hooks/useValueSetCodings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useValueSetCodings.js","sourceRoot":"","sources":["../../src/hooks/useValueSetCodings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';
@@ -0,0 +1,45 @@
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
+ */ import ThemeProvider from '../theme/Theme';
17
+ import { GroupTable } from '../components';
18
+ import GTableMedicalHistoryItemJson from './assets/QItems-and-QRItems/Q_GTableMedicalHistory.json';
19
+ import GTableMedicalHistoryAnswersJson from './assets/QItems-and-QRItems/QR_GTableMedicalHistory.json';
20
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
21
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
22
+ const meta = {
23
+ title: 'Component/GroupTable',
24
+ component: GroupTable,
25
+ // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/react/writing-docs/autodocs
26
+ tags: [],
27
+ decorators: [
28
+ (Story)=>/*#__PURE__*/ React.createElement(ThemeProvider, null, /*#__PURE__*/ React.createElement(QueryClientProvider, {
29
+ client: new QueryClient()
30
+ }, Story()))
31
+ ]
32
+ };
33
+ const GTableMedicalHistoryItem = GTableMedicalHistoryItemJson;
34
+ const GTableMedicalHistoryAnswers = GTableMedicalHistoryAnswersJson;
35
+ export default meta;
36
+ // More on writing stories with args: https://storybook.js.org/docs/react/writing-stories/args
37
+ export const MedicalHistoryTable = {
38
+ args: {
39
+ qItem: GTableMedicalHistoryItem,
40
+ qrItems: GTableMedicalHistoryAnswers,
41
+ groupCardElevation: 1,
42
+ parentIsReadOnly: false,
43
+ onQrRepeatGroupChange: ()=>{}
44
+ }
45
+ };
@@ -0,0 +1,117 @@
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
+ */ import { SmartFormsRenderer } from '../components';
17
+ import Q715Json from './assets/Qs-and-QRs/Q715.json';
18
+ import R715Json from './assets/Qs-and-QRs/R715.json';
19
+ import QTestGridJson from './assets/Qs-and-QRs/QTestGrid.json';
20
+ import RTestGridJson from './assets/Qs-and-QRs/RTestGrid.json';
21
+ import QDev715Json from './assets/Qs-and-QRs/QDev715.json';
22
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
23
+ const meta = {
24
+ title: 'Component/SmartFormsRenderer',
25
+ component: SmartFormsRenderer,
26
+ // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/react/writing-docs/autodocs
27
+ tags: []
28
+ };
29
+ const Q715 = Q715Json;
30
+ const R715 = R715Json;
31
+ const QTestGrid = QTestGridJson;
32
+ const RTestGrid = RTestGridJson;
33
+ const QDev715 = QDev715Json;
34
+ export default meta;
35
+ // More on writing stories with args: https://storybook.js.org/docs/react/writing-stories/args
36
+ export const Form715 = {
37
+ args: {
38
+ questionnaire: Q715
39
+ }
40
+ };
41
+ export const Form715WithResponse = {
42
+ args: {
43
+ questionnaire: Q715,
44
+ questionnaireResponse: R715
45
+ }
46
+ };
47
+ export const FormDev715 = {
48
+ args: {
49
+ questionnaire: QDev715
50
+ }
51
+ };
52
+ export const FormTestGrid = {
53
+ args: {
54
+ questionnaire: QTestGrid
55
+ }
56
+ };
57
+ export const FormTestGridWithResponse = {
58
+ args: {
59
+ questionnaire: QTestGrid,
60
+ questionnaireResponse: RTestGrid,
61
+ additionalVariables: {}
62
+ }
63
+ };
64
+ export const QTestGridWithResponseAddFhirPath = {
65
+ args: {
66
+ questionnaire: QTestGrid,
67
+ questionnaireResponse: RTestGrid,
68
+ additionalVariables: {
69
+ addVar1: {
70
+ url: 'http://hl7.org/fhir/StructureDefinition/variable',
71
+ valueExpression: {
72
+ name: 'addVar1',
73
+ language: 'text/fhirpath',
74
+ expression: "%resource.item.where(linkId='grid').item.where(linkId='1').item.where(linkId='1.1').item.where(linkId='1.1.1').answer.value"
75
+ }
76
+ }
77
+ }
78
+ }
79
+ };
80
+ export const QTestGridWithResponseAddXFhirQuery = {
81
+ args: {
82
+ questionnaire: QTestGrid,
83
+ questionnaireResponse: RTestGrid,
84
+ additionalVariables: {
85
+ addVar1: {
86
+ url: 'http://hl7.org/fhir/StructureDefinition/variable',
87
+ valueExpression: {
88
+ name: 'addVar1',
89
+ language: 'text/fhirpath',
90
+ expression: "%resource.item.where(linkId='grid').item.where(linkId='1').item.where(linkId='1.1').item.where(linkId='1.1.1').answer.value"
91
+ }
92
+ },
93
+ addVar2: {
94
+ url: 'http://hl7.org/fhir/StructureDefinition/variable',
95
+ valueExpression: {
96
+ name: 'addVar2',
97
+ language: 'application/x-fhir-query',
98
+ expression: 'Condition?patient={{%patient.id}}'
99
+ }
100
+ }
101
+ }
102
+ }
103
+ };
104
+ export const QTestGridWithResponseReadOnly = {
105
+ args: {
106
+ questionnaire: QTestGrid,
107
+ questionnaireResponse: RTestGrid,
108
+ readOnly: true
109
+ }
110
+ };
111
+ export const Form715WithResponseReadOnly = {
112
+ args: {
113
+ questionnaire: Q715,
114
+ questionnaireResponse: R715,
115
+ readOnly: true
116
+ }
117
+ };
@@ -0,0 +1,3 @@
1
+ import type { Attachment } from 'fhir/r4';
2
+ export declare function getFileSize(fileSizeString: string): string;
3
+ export declare function createAttachmentAnswer(file: File | null, url: string, fileName: string): Promise<Attachment | null>;
@@ -0,0 +1,64 @@
1
+ /*
2
+ * Copyright 2024 Commonwealth Scientific and Industrial Research
3
+ * Organisation (CSIRO) ABN 41 687 119 230.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ export function getFileSize(fileSizeString) {
27
+ if (fileSizeString.length < 7) {
28
+ return `${Math.round(+fileSizeString / 1024)}kb`;
29
+ }
30
+ return `${Math.round(+fileSizeString / 1024) / 1000}MB`;
31
+ }
32
+ const fileToBase64 = (file) => new Promise((resolve, reject) => {
33
+ const reader = new FileReader();
34
+ reader.readAsDataURL(file);
35
+ reader.onload = () => resolve(reader.result);
36
+ reader.onerror = reject;
37
+ });
38
+ export function createAttachmentAnswer(file, url, fileName) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ if (!file || url === '') {
41
+ return null;
42
+ }
43
+ try {
44
+ const base64Data = (yield fileToBase64(file));
45
+ const attachment = {
46
+ contentType: file.type,
47
+ data: base64Data,
48
+ size: file.size
49
+ };
50
+ if (url) {
51
+ attachment.url = url;
52
+ }
53
+ if (fileName) {
54
+ attachment.title = fileName;
55
+ }
56
+ return attachment;
57
+ }
58
+ catch (error) {
59
+ console.error(error);
60
+ return null;
61
+ }
62
+ });
63
+ }
64
+ //# sourceMappingURL=fileUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileUtils.js","sourceRoot":"","sources":["../../src/utils/fileUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;AAIH,MAAM,UAAU,WAAW,CAAC,cAAsB;IAChD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;KAClD;IAED,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;AAC1D,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,IAAU,EAAE,EAAE,CAClC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEL,MAAM,UAAgB,sBAAsB,CAC1C,IAAiB,EACjB,GAAW,EACX,QAAgB;;QAEhB,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QAED,IAAI;YACF,MAAM,UAAU,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAW,CAAC;YACxD,MAAM,UAAU,GAAe;gBAC7B,WAAW,EAAE,IAAI,CAAC,IAAI;gBACtB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;YAEF,IAAI,GAAG,EAAE;gBACP,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC;aACtB;YAED,IAAI,QAAQ,EAAE;gBACZ,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC;aAC7B;YAED,OAAO,UAAU,CAAC;SACnB;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;SACb;IACH,CAAC;CAAA"}
@@ -85,6 +85,12 @@ export declare function getTextDisplayUpper(qItem: QuestionnaireItem): string;
85
85
  * @author Sean Fong
86
86
  */
87
87
  export declare function getTextDisplayInstructions(qItem: QuestionnaireItem): string;
88
+ /**
89
+ * Get text display flyover for items with itemControlCode flyover and has an flyover childItem
90
+ *
91
+ * @author Sean Fong
92
+ */
93
+ export declare function getTextDisplayFlyover(qItem: QuestionnaireItem): string;
88
94
  /**
89
95
  * Get entry format if its extension is present
90
96
  * i.e. DD-MM-YYYY for dates, HH:MM for times etc.
@@ -248,6 +248,21 @@ export function getTextDisplayInstructions(qItem) {
248
248
  }
249
249
  return '';
250
250
  }
251
+ /**
252
+ * Get text display flyover for items with itemControlCode flyover and has an flyover childItem
253
+ *
254
+ * @author Sean Fong
255
+ */
256
+ export function getTextDisplayFlyover(qItem) {
257
+ if (qItem.item) {
258
+ for (const childItem of qItem.item) {
259
+ if (childItem.type === 'display' && isSpecificItemControl(childItem, 'flyover')) {
260
+ return `${childItem.text}`;
261
+ }
262
+ }
263
+ }
264
+ return '';
265
+ }
251
266
  /**
252
267
  * Get entry format if its extension is present
253
268
  * i.e. DD-MM-YYYY for dates, HH:MM for times etc.
@@ -1 +1 @@
1
- {"version":3,"file":"itemControl.js","sourceRoot":"","sources":["../../src/utils/itemControl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"itemControl.js","sourceRoot":"","sources":["../../src/utils/itemControl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAwB,EAAE,eAAuB;;IACrF,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,mEAAmE,CACxF,CAAC;IACF,IAAI,WAAW,EAAE;QACf,MAAM,IAAI,GAAG,MAAA,MAAA,WAAW,CAAC,oBAAoB,0CAAE,MAAM,0CAAE,IAAI,CACzD,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,CACpD,CAAC;QACF,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAwB,EACxB,eAAuB;;IAEvB,MAAM,eAAe,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CAC3C,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,uEAAuE,CAC5F,CAAC;IACF,IAAI,eAAe,EAAE;QACnB,MAAM,IAAI,GAAG,MAAA,MAAA,eAAe,CAAC,oBAAoB,0CAAE,MAAM,0CAAE,IAAI,CAC7D,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,CACpD,CAAC;QACF,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;;IACnD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,4EAA4E,CACjG,CAAC;IACF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,WAAW,EAAE;YAC3B,OAAO,WAAW,CAAC,WAAW,CAAC;SAChC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAwB;;IACzD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,8DAA8D,CACnF,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,YAAY,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAwB;;IAC1D,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE;;QACvB,OAAA,SAAS,CAAC,GAAG;YACX,mFAAmF;YACrF,CAAA,MAAA,SAAS,CAAC,eAAe,0CAAE,QAAQ,MAAK,eAAe,CAAA;KAAA,CAC1D,CAAC;IACF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,eAAe,EAAE;YAC/B,OAAO,WAAW,CAAC,eAAe,CAAC;SACpC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAwB;;IACvD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,4EAA4E,CACjG,CAAC;IACF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,WAAW,EAAE;YAC3B,OAAO,WAAW,CAAC,WAAW,CAAC;SAChC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAwB;;IAC1D,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,4DAA4D,CACjF,CAAC;IACF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,YAAY,EAAE;YAC5B,OAAO,WAAW,CAAC,YAAY,CAAC;SACjC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAwB;;IACrD,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,KAAK,CAAC,SAAS,EAAE;QACnB,WAAW,GAAG,2BAA2B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,WAAW,EAAE;YACf,OAAO,WAAW,CAAC;SACpB;KACF;IAED,IAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,SAAS,EAAE;QAC1B,WAAW,GAAG,2BAA2B,CAAC,MAAA,KAAK,CAAC,KAAK,0CAAE,SAAS,CAAC,CAAC;QAClE,IAAI,WAAW,EAAE;YACf,OAAO,WAAW,CAAC;SACpB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,UAAuB;IACjE,MAAM,WAAW,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAClC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,yDAAyD,CAC9E,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,WAAW,EAAE;YAC3B,OAAO,WAAW,CAAC,WAAW,CAAC;SAChC;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAwB;;IACxD,MAAM,WAAW,GAAG,MAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,SAAS,0CAAE,IAAI,CAC9C,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,4DAA4D,CACjF,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,aAAa,EAAE;YAC7B,OAAO,WAAW,CAAC,aAAa,CAAC;SAClC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAwB;IAC3D,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;YAClC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;gBAC9E,MAAM,UAAU,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;gBACvC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC9D;SACF;KACF;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAwB;IACzD,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;YAClC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;gBAC5E,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;aAC5B;SACF;KACF;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAwB;IAC1D,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;YAClC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;gBAC7E,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;aAC5B;SACF;KACF;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAwB;IAC1D,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;YAClC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;gBAC7E,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;aAC5B;SACF;KACF;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAwB;IACjE,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;YAClC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,yBAAyB,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE;gBACxF,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;aAC5B;SACF;KACF;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAwB;IAC5D,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;YAClC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;gBAC/E,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;aAC5B;SACF;KACF;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAwB;;IACzD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,+CAA+C,CAC5F,CAAC;IAEF,sCAAsC;IACtC,IAAI,WAAW,EAAE;QACf,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC;QAChD,IAAI,eAAe,EAAE;YACnB,IAAI,WAAW,CAAC;YAChB,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBACxC,WAAW,GAAG,eAAe,CAAC,SAAS,CACrC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,MAAM,EACzD,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAClC,CAAC;aACH;iBAAM;gBACL,WAAW,GAAG,eAAe,CAAC;aAC/B;YAED,OAAO,EAAE,UAAU,EAAE,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SAChE;KACF;IAED,uEAAuE;IACvE,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;QACxB,OAAO,EAAE,UAAU,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,yCAAyC,EAAE,CAAC;KACjG;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,7 +1,6 @@
1
- import type { QuestionnaireResponse } from 'fhir/r4';
2
- import { Questionnaire } from 'fhir/r4';
3
- import { EnableWhenExpression, EnableWhenItems } from '../interfaces/enableWhen.interface';
4
- import { RegexValidation } from '../interfaces/regex.interface';
1
+ import type { Questionnaire, QuestionnaireResponse } from 'fhir/r4';
2
+ import type { EnableWhenExpression, EnableWhenItems } from '../interfaces/enableWhen.interface';
3
+ import type { RegexValidation } from '../interfaces/regex.interface';
5
4
  export type InvalidType = 'regex' | 'minLength' | 'maxLength' | 'required';
6
5
  interface ValidateQuestionnaireParams {
7
6
  questionnaire: Questionnaire;
@@ -14,7 +13,6 @@ interface ValidateQuestionnaireParams {
14
13
  /**
15
14
  * Recursively go through the questionnaireResponse and check for un-filled required qItems
16
15
  * At the moment item.required for group items are not checked
17
- * FIXME will eventually be renamed to validate questionnaire
18
16
  *
19
17
  * @author Sean Fong
20
18
  */
@@ -21,7 +21,6 @@ import { structuredDataCapture } from 'fhir-sdc-helpers';
21
21
  /**
22
22
  * Recursively go through the questionnaireResponse and check for un-filled required qItems
23
23
  * At the moment item.required for group items are not checked
24
- * FIXME will eventually be renamed to validate questionnaire
25
24
  *
26
25
  * @author Sean Fong
27
26
  */
@@ -72,7 +71,7 @@ function validateItemRecursive(params) {
72
71
  }
73
72
  // FIXME repeat groups not working
74
73
  if (qItem.type === 'group' && qItem.repeats) {
75
- return validateRepeatGroup(qItem, qrItem, invalidItems);
74
+ return;
76
75
  }
77
76
  const childQItems = qItem.item;
78
77
  if (childQItems && childQItems.length > 0) {
@@ -148,9 +147,13 @@ function validateSingleItem(qItem, qrItem, invalidItems) {
148
147
  }
149
148
  return invalidItems;
150
149
  }
151
- function validateRepeatGroup(qItem, qrItems, invalidLinkIds) {
152
- return;
153
- }
150
+ // function validateRepeatGroup(
151
+ // qItem: QuestionnaireItem,
152
+ // qrItems: QuestionnaireResponseItem,
153
+ // invalidLinkIds: Record<string, InvalidType>
154
+ // ) {
155
+ // return;
156
+ // }
154
157
  function getInputInString(answer) {
155
158
  if (answer.valueString) {
156
159
  return answer.valueString;
@@ -1 +1 @@
1
- {"version":3,"file":"validateQuestionnaire.js","sourceRoot":"","sources":["../../src/utils/validateQuestionnaire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateQuestionnaire.js","sourceRoot":"","sources":["../../src/utils/validateQuestionnaire.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aehrc/smart-forms-renderer",
3
- "version": "0.13.1",
3
+ "version": "0.14.0",
4
4
  "description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -35,6 +35,8 @@
35
35
  "lodash.debounce": "^4.0.8",
36
36
  "nanoid": "^5.0.1",
37
37
  "react-beautiful-dnd": "^13.1.1",
38
+ "react-dnd": "^16.0.1",
39
+ "react-dnd-html5-backend": "^16.0.1",
38
40
  "react-markdown": "^8.0.7",
39
41
  "zustand": "^4.4.6"
40
42
  },
@@ -16,7 +16,7 @@
16
16
  */
17
17
 
18
18
  import Box from '@mui/material/Box';
19
- import { alpha, styled } from '@mui/material/styles';
19
+ import { styled } from '@mui/material/styles';
20
20
  import FormControlLabel from '@mui/material/FormControlLabel';
21
21
 
22
22
  export const QGroupContainerBox = styled(Box, {
@@ -37,33 +37,3 @@ export const FormTitleWrapper = styled(Box)(() => ({
37
37
  export const StyledFormControlLabel = styled(FormControlLabel)(() => ({
38
38
  height: 34
39
39
  }));
40
-
41
- export const RequiredLabel = styled(Box)(({ theme }) => ({
42
- height: 12,
43
- minWidth: 20,
44
- lineHeight: 0,
45
- borderRadius: 6,
46
- alignItems: 'center',
47
- whiteSpace: 'nowrap',
48
- justifyContent: 'center',
49
- padding: theme.spacing(1),
50
- fontSize: theme.typography.caption.fontSize,
51
- color: theme.palette.error.dark,
52
- backgroundColor: alpha(theme.palette.error.main, 0.16),
53
- fontWeight: theme.typography.fontWeightBold
54
- }));
55
-
56
- export const ReadOnlyLabel = styled(Box)(({ theme }) => ({
57
- height: 12,
58
- minWidth: 20,
59
- lineHeight: 0,
60
- borderRadius: 6,
61
- alignItems: 'center',
62
- whiteSpace: 'nowrap',
63
- justifyContent: 'center',
64
- padding: theme.spacing(1),
65
- fontSize: theme.typography.caption.fontSize,
66
- color: theme.palette.text.primary,
67
- backgroundColor: theme.palette.grey['300'],
68
- fontWeight: theme.typography.fontWeightBold
69
- }));
@@ -0,0 +1,96 @@
1
+ /*
2
+ * Copyright 2023 Commonwealth Scientific and Industrial Research
3
+ * Organisation (CSIRO) ABN 41 687 119 230.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ import React from 'react';
19
+ import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
20
+ import { StandardTextField } from '../Textfield.styles';
21
+ import AttachmentFileCollector from './AttachmentFileCollector';
22
+ import Typography from '@mui/material/Typography';
23
+ import Box from '@mui/material/Box';
24
+ import Stack from '@mui/material/Stack';
25
+ import type { AttachmentValues } from './AttachmentItem';
26
+ import AttachmentUrlField from './AttachmentUrlField';
27
+
28
+ interface AttachmentFieldProps extends PropsWithIsTabledAttribute {
29
+ linkId: string;
30
+ attachmentValues: AttachmentValues;
31
+ readOnly: boolean;
32
+ onUploadFile: (file: File | null) => void;
33
+ onUrlChange: (url: string) => void;
34
+ onFileNameChange: (fileName: string) => void;
35
+ }
36
+
37
+ function AttachmentField(props: AttachmentFieldProps) {
38
+ const {
39
+ linkId,
40
+ attachmentValues,
41
+ readOnly,
42
+ isTabled,
43
+ onUploadFile,
44
+ onUrlChange,
45
+ onFileNameChange
46
+ } = props;
47
+
48
+ const { uploadedFile, url, fileName } = attachmentValues;
49
+
50
+ return (
51
+ <>
52
+ <Stack rowGap={1}>
53
+ <Typography variant="subtitle2">
54
+ An attachment must either have a file or a URL, or both.
55
+ </Typography>
56
+ <Box>
57
+ <AttachmentFileCollector
58
+ uploadedFile={uploadedFile}
59
+ isTabled={isTabled}
60
+ onUploadFile={onUploadFile}
61
+ />
62
+ </Box>
63
+
64
+ <AttachmentUrlField
65
+ linkId={linkId}
66
+ url={url}
67
+ readOnly={readOnly}
68
+ isTabled={isTabled}
69
+ onUrlChange={onUrlChange}
70
+ />
71
+
72
+ <Box>
73
+ <Typography variant="body2">File name (optional)</Typography>
74
+ <StandardTextField
75
+ fullWidth
76
+ isTabled={isTabled}
77
+ id={linkId}
78
+ value={fileName}
79
+ onChange={(event) => onFileNameChange(event.target.value)}
80
+ disabled={readOnly}
81
+ size="small"
82
+ data-test="q-item-attachment-field"
83
+ />
84
+ </Box>
85
+
86
+ {uploadedFile && url ? (
87
+ <Typography variant="subtitle2">
88
+ Ensure that the attached file and URL has the same content.
89
+ </Typography>
90
+ ) : null}
91
+ </Stack>
92
+ </>
93
+ );
94
+ }
95
+
96
+ export default AttachmentField;
@@ -0,0 +1,87 @@
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 { HTML5Backend } from 'react-dnd-html5-backend';
19
+ //
20
+ // <DndProvider backend={HTML5Backend}>
21
+
22
+ import React from 'react';
23
+ import AttachmentField from './AttachmentField';
24
+ import { FullWidthFormComponentBox } from '../../Box.styles';
25
+ import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
26
+ import type {
27
+ PropsWithIsRepeatedAttribute,
28
+ PropsWithIsTabledAttribute
29
+ } from '../../../interfaces/renderProps.interface';
30
+ import type { QuestionnaireItem } from 'fhir/r4';
31
+ import type { AttachmentValues } from './AttachmentItem';
32
+
33
+ interface AttachmentFieldWrapperProps
34
+ extends PropsWithIsRepeatedAttribute,
35
+ PropsWithIsTabledAttribute {
36
+ qItem: QuestionnaireItem;
37
+ attachmentValues: AttachmentValues;
38
+ readOnly: boolean;
39
+ onUploadFile: (file: File | null) => void;
40
+ onUrlChange: (url: string) => void;
41
+ onFileNameChange: (fileName: string) => void;
42
+ }
43
+
44
+ function AttachmentFieldWrapper(props: AttachmentFieldWrapperProps) {
45
+ const {
46
+ qItem,
47
+ attachmentValues,
48
+ readOnly,
49
+ isRepeated,
50
+ isTabled,
51
+ onUploadFile,
52
+ onUrlChange,
53
+ onFileNameChange
54
+ } = props;
55
+
56
+ if (isRepeated) {
57
+ return (
58
+ <AttachmentField
59
+ linkId={qItem.linkId}
60
+ attachmentValues={attachmentValues}
61
+ readOnly={readOnly}
62
+ isTabled={isTabled}
63
+ onUploadFile={onUploadFile}
64
+ onUrlChange={onUrlChange}
65
+ onFileNameChange={onFileNameChange}
66
+ />
67
+ );
68
+ }
69
+
70
+ return (
71
+ <FullWidthFormComponentBox data-test="q-item-attachment-box">
72
+ <ItemFieldGrid qItem={qItem} readOnly={readOnly}>
73
+ <AttachmentField
74
+ linkId={qItem.linkId}
75
+ attachmentValues={attachmentValues}
76
+ readOnly={readOnly}
77
+ isTabled={isTabled}
78
+ onUploadFile={onUploadFile}
79
+ onUrlChange={onUrlChange}
80
+ onFileNameChange={onFileNameChange}
81
+ />
82
+ </ItemFieldGrid>
83
+ </FullWidthFormComponentBox>
84
+ );
85
+ }
86
+
87
+ export default AttachmentFieldWrapper;