@aehrc/smart-forms-renderer 0.27.2 → 0.27.4

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 (179) hide show
  1. package/.storybook/main.ts +2 -1
  2. package/.storybook/preview.ts +6 -1
  3. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.d.ts +3 -2
  4. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.js +9 -17
  5. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.js.map +1 -1
  6. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +12 -9
  7. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
  8. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.d.ts +2 -2
  9. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.js +7 -9
  10. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.js.map +1 -1
  11. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +12 -8
  12. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  13. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.d.ts +2 -1
  14. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js +3 -3
  15. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js.map +1 -1
  16. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +6 -4
  17. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
  18. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.d.ts +2 -1
  19. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js +3 -3
  20. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js.map +1 -1
  21. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.d.ts +2 -2
  22. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js +5 -7
  23. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js.map +1 -1
  24. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +4 -4
  25. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
  26. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.d.ts +2 -1
  27. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +2 -3
  28. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -1
  29. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +5 -3
  30. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
  31. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.d.ts +2 -1
  32. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js +3 -3
  33. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js.map +1 -1
  34. package/lib/components/FormComponents/DecimalItem/DecimalItem.js +1 -1
  35. package/lib/components/FormComponents/GroupItem/TabButtonsWrapper.js +20 -20
  36. package/lib/components/FormComponents/GroupItem/TabButtonsWrapper.js.map +1 -1
  37. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.d.ts +3 -2
  38. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.js +7 -19
  39. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.js.map +1 -1
  40. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +40 -40
  41. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
  42. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js +15 -3
  43. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js.map +1 -1
  44. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.d.ts +2 -1
  45. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js +3 -3
  46. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js.map +1 -1
  47. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +27 -26
  48. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
  49. package/lib/components/FormComponents/StringItem/StringField.js +1 -1
  50. package/lib/components/FormComponents/StringItem/StringField.js.map +1 -1
  51. package/lib/hooks/useInitialiseRenderer.js +1 -1
  52. package/lib/hooks/useInitialiseRenderer.js.map +1 -1
  53. package/lib/hooks/useNextAndPreviousVisibleTabs.d.ts +7 -0
  54. package/lib/hooks/useNextAndPreviousVisibleTabs.js +63 -0
  55. package/lib/hooks/useNextAndPreviousVisibleTabs.js.map +1 -0
  56. package/lib/hooks/useNextPreviousVisibleTabs.d.ts +6 -0
  57. package/lib/hooks/useNextPreviousVisibleTabs.js +63 -0
  58. package/lib/hooks/useNextPreviousVisibleTabs.js.map +1 -0
  59. package/lib/index.d.ts +0 -7
  60. package/lib/index.js +0 -24
  61. package/lib/index.js.map +1 -1
  62. package/lib/utils/choice.d.ts +1 -7
  63. package/lib/utils/choice.js +10 -20
  64. package/lib/utils/choice.js.map +1 -1
  65. package/lib/utils/enableWhen.js +5 -7
  66. package/lib/utils/enableWhen.js.map +1 -1
  67. package/lib/utils/index.d.ts +1 -0
  68. package/lib/utils/index.js +1 -0
  69. package/lib/utils/index.js.map +1 -1
  70. package/lib/utils/openChoice.d.ts +9 -4
  71. package/lib/utils/openChoice.js +47 -78
  72. package/lib/utils/openChoice.js.map +1 -1
  73. package/lib/utils/tabs.d.ts +0 -21
  74. package/lib/utils/tabs.js +0 -51
  75. package/lib/utils/tabs.js.map +1 -1
  76. package/package.json +4 -4
  77. package/src/components/FormComponents/ChoiceItems/CheckboxOptionList.tsx +82 -0
  78. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.tsx +23 -52
  79. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +15 -9
  80. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.tsx +17 -19
  81. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +13 -8
  82. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.tsx +5 -4
  83. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +6 -2
  84. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.tsx +5 -1
  85. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx +9 -16
  86. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +4 -4
  87. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +4 -3
  88. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +5 -2
  89. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.tsx +5 -1
  90. package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +1 -1
  91. package/src/components/FormComponents/GroupItem/TabButtonsWrapper.tsx +28 -25
  92. package/src/components/FormComponents/ItemParts/{RadioAnswerOptionButtons.tsx → RadioOptionList.tsx} +7 -7
  93. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.tsx +18 -50
  94. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +70 -68
  95. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetFields.tsx +110 -0
  96. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.tsx +188 -0
  97. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx +46 -19
  98. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.tsx +5 -3
  99. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +37 -29
  100. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.tsx +104 -0
  101. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.tsx +156 -0
  102. package/src/components/FormComponents/StringItem/StringField.tsx +1 -1
  103. package/src/hooks/useInitialiseRenderer.ts +1 -1
  104. package/src/hooks/useNextAndPreviousVisibleTabs.ts +86 -0
  105. package/src/hooks/useOpenLabel.ts +43 -0
  106. package/src/index.ts +0 -21
  107. package/src/stories/BuildFormWrapper.tsx +57 -0
  108. package/src/stories/assets/questionnaires/QAdvancedAdditionalDisplayContent.ts +83 -0
  109. package/src/stories/assets/questionnaires/QAdvancedControlAppearance.ts +294 -0
  110. package/src/stories/assets/questionnaires/QAdvancedOther.ts +495 -0
  111. package/src/stories/assets/questionnaires/QAdvancedTextApperance.ts +188 -0
  112. package/src/stories/assets/questionnaires/QAttachment.ts +38 -0
  113. package/src/stories/assets/questionnaires/QBehaviorCalculations.ts +645 -0
  114. package/src/stories/assets/questionnaires/QBehaviorChoiceRestriction.ts +281 -0
  115. package/src/stories/assets/questionnaires/QBehaviorOther.ts +1149 -0
  116. package/src/stories/assets/questionnaires/QBehaviorValueConstraints.ts +508 -0
  117. package/src/stories/assets/questionnaires/QBoolean.ts +130 -0
  118. package/src/stories/assets/questionnaires/QChoice.ts +137 -0
  119. package/src/stories/assets/questionnaires/QDate.ts +56 -0
  120. package/src/stories/assets/questionnaires/QDateTime.ts +56 -0
  121. package/src/stories/assets/questionnaires/QDecimal.ts +56 -0
  122. package/src/stories/assets/questionnaires/QDisplay.ts +38 -0
  123. package/src/stories/assets/questionnaires/QGroup.ts +52 -0
  124. package/src/stories/assets/questionnaires/QInteger.ts +119 -0
  125. package/src/stories/assets/questionnaires/QItemControlDisplay.ts +114 -0
  126. package/src/stories/assets/questionnaires/QItemControlGroup.ts +419 -0
  127. package/src/stories/assets/questionnaires/QItemControlQuestion.ts +1271 -0
  128. package/src/stories/assets/questionnaires/QOpenChoice.ts +151 -0
  129. package/src/stories/assets/questionnaires/QQuantity.ts +38 -0
  130. package/src/stories/assets/questionnaires/QReference.ts +38 -0
  131. package/src/stories/assets/questionnaires/QSingleItems.ts +251 -0
  132. package/src/stories/assets/questionnaires/QString.ts +131 -0
  133. package/src/stories/assets/questionnaires/QText.ts +169 -0
  134. package/src/stories/assets/questionnaires/QTime.ts +38 -0
  135. package/src/stories/assets/questionnaires/QUrl.ts +38 -0
  136. package/src/stories/assets/questionnaires/index.ts +44 -0
  137. package/src/stories/itemTypes/Attachment.stories.tsx +39 -0
  138. package/src/stories/itemTypes/Boolean.stories.tsx +72 -0
  139. package/src/stories/{MedicalHistoryTable.stories.tsx → itemTypes/Choice.stories.tsx} +32 -26
  140. package/src/stories/itemTypes/Date.stories.tsx +46 -0
  141. package/src/stories/itemTypes/DateTime.stories.tsx +45 -0
  142. package/src/stories/itemTypes/Decimal.stories.tsx +56 -0
  143. package/src/stories/itemTypes/Display.stories.tsx +39 -0
  144. package/src/stories/itemTypes/Group.stories.tsx +39 -0
  145. package/src/stories/itemTypes/Integer.stories.tsx +55 -0
  146. package/src/stories/itemTypes/OpenChoice.stories.tsx +64 -0
  147. package/src/stories/itemTypes/Quantity.stories.tsx +39 -0
  148. package/src/stories/itemTypes/Reference.stories.tsx +39 -0
  149. package/src/stories/itemTypes/String.stories.tsx +51 -0
  150. package/src/stories/itemTypes/Text.stories.tsx +51 -0
  151. package/src/stories/itemTypes/Time.stories.tsx +39 -0
  152. package/src/stories/itemTypes/Url.stories.tsx +39 -0
  153. package/src/stories/sdc/AdvancedAdditionalDisplayContent.stories.tsx +45 -0
  154. package/src/stories/sdc/AdvancedControlAppearance.stories.tsx +51 -0
  155. package/src/stories/sdc/AdvancedOther.stories.tsx +76 -0
  156. package/src/stories/sdc/AdvancedTextAppearance.stories.tsx +69 -0
  157. package/src/stories/sdc/BehaviorCalculations.stories.tsx +69 -0
  158. package/src/stories/sdc/BehaviorChoiceRestriction.stories.tsx +76 -0
  159. package/src/stories/sdc/BehaviorOther.stories.tsx +90 -0
  160. package/src/stories/sdc/BehaviorValueConstraints.stories.tsx +88 -0
  161. package/src/stories/sdc/ItemControlDisplay.stories.tsx +39 -0
  162. package/src/stories/sdc/ItemControlGroup.stories.tsx +55 -0
  163. package/src/stories/sdc/ItemControlQuestion.stories.tsx +118 -0
  164. package/src/utils/buildForm.ts +23 -0
  165. package/src/utils/choice.ts +16 -23
  166. package/src/utils/enableWhen.ts +5 -7
  167. package/src/utils/index.ts +1 -0
  168. package/src/utils/openChoice.ts +83 -98
  169. package/src/utils/tabs.ts +0 -75
  170. package/vite.config.ts +23 -0
  171. package/doctor-storybook.log +0 -18
  172. package/src/stories/SmartFormsRenderer.stories.ts +0 -139
  173. package/src/stories/assets/QItems-and-QRItems/QR_GTableMedicalHistory.json +0 -80
  174. package/src/stories/assets/QItems-and-QRItems/Q_GTableMedicalHistory.json +0 -109
  175. package/src/stories/assets/Qs-and-QRs/Q715.json +0 -15086
  176. package/src/stories/assets/Qs-and-QRs/QDev715.json +0 -16081
  177. package/src/stories/assets/Qs-and-QRs/QTestGrid.json +0 -411
  178. package/src/stories/assets/Qs-and-QRs/R715.json +0 -311
  179. package/src/stories/assets/Qs-and-QRs/RTestGrid.json +0 -34
@@ -21,7 +21,7 @@ import FadingCheckIcon from '../ItemParts/FadingCheckIcon';
21
21
  function StringField(props) {
22
22
  const { linkId, input, feedback, displayPrompt, displayUnit, entryFormat, readOnly, isTabled, calcExpUpdated, onInputChange } = props;
23
23
  return (React.createElement(StandardTextField, { fullWidth: true, isTabled: isTabled, id: linkId, value: input, error: !!feedback, onChange: (event) => onInputChange(event.target.value), label: displayPrompt, placeholder: entryFormat, disabled: readOnly, size: "small", InputProps: {
24
- endAdornment: (React.createElement(InputAdornment, { position: 'end' },
24
+ endAdornment: (React.createElement(InputAdornment, { position: "end" },
25
25
  React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated, disabled: readOnly }),
26
26
  displayUnit))
27
27
  }, helperText: feedback, "data-test": "q-item-string-field" }));
@@ -1 +1 @@
1
- {"version":3,"file":"StringField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/StringItem/StringField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAc3D,SAAS,WAAW,CAAC,KAAuB;IAC1C,MAAM,EACJ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,oBAAC,iBAAiB,IAChB,SAAS,QACT,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,EACZ,UAAU,EAAE;YACV,YAAY,EAAE,CACZ,oBAAC,cAAc,IAAC,QAAQ,EAAE,KAAK;gBAC7B,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI;gBAC9D,WAAW,CACG,CAClB;SACF,EACD,UAAU,EAAE,QAAQ,eACV,qBAAqB,GAC/B,CACH,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"StringField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/StringItem/StringField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAc3D,SAAS,WAAW,CAAC,KAAuB;IAC1C,MAAM,EACJ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,oBAAC,iBAAiB,IAChB,SAAS,QACT,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,EACZ,UAAU,EAAE;YACV,YAAY,EAAE,CACZ,oBAAC,cAAc,IAAC,QAAQ,EAAC,KAAK;gBAC5B,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI;gBAC9D,WAAW,CACG,CAClB;SACF,EACD,UAAU,EAAE,QAAQ,eACV,qBAAqB,GAC/B,CACH,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { useLayoutEffect, useState } from 'react';
18
- import { initialiseQuestionnaireResponse } from '../utils/initialise';
18
+ import { initialiseQuestionnaireResponse } from '../utils';
19
19
  import { readEncounter, readPatient, readUser } from '../api/smartClient';
20
20
  import { useQuestionnaireResponseStore, useQuestionnaireStore, useSmartConfigStore, useTerminologyServerStore } from '../stores';
21
21
  function useInitialiseRenderer(questionnaire, questionnaireResponse, additionalVariables, terminologyServerUrl, fhirClient, readOnly) {
@@ -1 +1 @@
1
- {"version":3,"file":"useInitialiseRenderer.js","sourceRoot":"","sources":["../../src/hooks/useInitialiseRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useInitialiseRenderer.js","sourceRoot":"","sources":["../../src/hooks/useInitialiseRenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Tabs } from '../interfaces/tab.interface';
2
+ declare function useNextAndPreviousVisibleTabs(currentTabIndex?: number, tabs?: Tabs): {
3
+ previousTabIndex: number | null;
4
+ nextTabIndex: number | null;
5
+ numOfVisibleTabs: number;
6
+ };
7
+ export default useNextAndPreviousVisibleTabs;
@@ -0,0 +1,63 @@
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
+ import { useQuestionnaireStore } from '../stores';
18
+ import { constructTabsWithVisibility } from '../utils/tabs';
19
+ function useNextAndPreviousVisibleTabs(currentTabIndex, tabs) {
20
+ const enableWhenIsActivated = useQuestionnaireStore.use.enableWhenIsActivated();
21
+ const enableWhenItems = useQuestionnaireStore.use.enableWhenItems();
22
+ const enableWhenExpressions = useQuestionnaireStore.use.enableWhenExpressions();
23
+ const tabsNotDefined = currentTabIndex === undefined || tabs === undefined;
24
+ if (tabsNotDefined) {
25
+ return { previousTabIndex: null, nextTabIndex: null, numOfVisibleTabs: 0 };
26
+ }
27
+ const tabsWithVisibility = constructTabsWithVisibility({
28
+ tabs,
29
+ enableWhenIsActivated,
30
+ enableWhenItems,
31
+ enableWhenExpressions
32
+ });
33
+ return {
34
+ previousTabIndex: getPreviousTabIndex(currentTabIndex, tabsWithVisibility),
35
+ nextTabIndex: getNextTabIndex(currentTabIndex, tabsWithVisibility),
36
+ numOfVisibleTabs: tabsWithVisibility.filter((tab) => tab.isVisible).length
37
+ };
38
+ }
39
+ function getPreviousTabIndex(currentTabIndex, tabsWithVisibility) {
40
+ const previousTabs = tabsWithVisibility.slice(0, currentTabIndex);
41
+ const foundIndex = previousTabs.reverse().findIndex((tab) => tab.isVisible);
42
+ // Previous visible tab not found
43
+ if (foundIndex === -1) {
44
+ return null;
45
+ }
46
+ // Previous visible tab less than 0
47
+ const previousTabIndex = currentTabIndex - foundIndex - 1;
48
+ if (previousTabIndex < 0) {
49
+ return null;
50
+ }
51
+ return previousTabIndex;
52
+ }
53
+ function getNextTabIndex(currentTabIndex, tabsWithVisibility) {
54
+ const subsequentTabs = tabsWithVisibility.slice(currentTabIndex + 1);
55
+ const foundIndex = subsequentTabs.findIndex((tab) => tab.isVisible);
56
+ // Next visible tab not found, something is wrong
57
+ if (foundIndex === -1) {
58
+ return null;
59
+ }
60
+ return currentTabIndex + foundIndex + 1;
61
+ }
62
+ export default useNextAndPreviousVisibleTabs;
63
+ //# sourceMappingURL=useNextAndPreviousVisibleTabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNextAndPreviousVisibleTabs.js","sourceRoot":"","sources":["../../src/hooks/useNextAndPreviousVisibleTabs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,SAAS,6BAA6B,CACpC,eAAwB,EACxB,IAAW;IAEX,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;IAChF,MAAM,eAAe,GAAG,qBAAqB,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;IACpE,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;IAEhF,MAAM,cAAc,GAAG,eAAe,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,CAAC;IAE3E,IAAI,cAAc,EAAE;QAClB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;KAC5E;IAED,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;QACrD,IAAI;QACJ,qBAAqB;QACrB,eAAe;QACf,qBAAqB;KACtB,CAAC,CAAC;IAEH,OAAO;QACL,gBAAgB,EAAE,mBAAmB,CAAC,eAAe,EAAE,kBAAkB,CAAC;QAC1E,YAAY,EAAE,eAAe,CAAC,eAAe,EAAE,kBAAkB,CAAC;QAClE,gBAAgB,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM;KAC3E,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,eAAuB,EACvB,kBAA4D;IAE5D,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAE5E,iCAAiC;IACjC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,mCAAmC;IACnC,MAAM,gBAAgB,GAAG,eAAe,GAAG,UAAU,GAAG,CAAC,CAAC;IAC1D,IAAI,gBAAgB,GAAG,CAAC,EAAE;QACxB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,eAAe,CACtB,eAAuB,EACvB,kBAA4D;IAE5D,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEpE,iDAAiD;IACjD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,eAAe,GAAG,UAAU,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,eAAe,6BAA6B,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Tabs } from '../interfaces/tab.interface';
2
+ declare function useNextPreviousVisibleTabs(currentTabIndex?: number, tabs?: Tabs): {
3
+ previousTabIndex: number | null;
4
+ nextTabIndex: number | null;
5
+ };
6
+ export default useNextPreviousVisibleTabs;
@@ -0,0 +1,63 @@
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
+ import { useQuestionnaireStore } from '../stores';
18
+ import { constructTabsWithVisibility } from '../utils/tabs';
19
+ function useNextPreviousVisibleTabs(currentTabIndex, tabs) {
20
+ const enableWhenIsActivated = useQuestionnaireStore.use.enableWhenIsActivated();
21
+ const enableWhenItems = useQuestionnaireStore.use.enableWhenItems();
22
+ const enableWhenExpressions = useQuestionnaireStore.use.enableWhenExpressions();
23
+ const switchTab = useQuestionnaireStore.use.switchTab();
24
+ const tabsNotDefined = currentTabIndex === undefined || tabs === undefined;
25
+ if (tabsNotDefined) {
26
+ return { previousTabIndex: null, nextTabIndex: null };
27
+ }
28
+ const tabsWithVisibility = constructTabsWithVisibility({
29
+ tabs,
30
+ enableWhenIsActivated,
31
+ enableWhenItems,
32
+ enableWhenExpressions
33
+ });
34
+ return {
35
+ previousTabIndex: getPreviousTabIndex(currentTabIndex, tabsWithVisibility),
36
+ nextTabIndex: getNextTabIndex(currentTabIndex, tabsWithVisibility)
37
+ };
38
+ }
39
+ function getNextTabIndex(currentTabIndex, tabsWithVisibility) {
40
+ const subsequentTabs = tabsWithVisibility.slice(currentTabIndex + 1);
41
+ const foundIndex = subsequentTabs.findIndex((tab) => tab.isVisible);
42
+ // Next visible tab not found, something is wrong
43
+ if (foundIndex === -1) {
44
+ return null;
45
+ }
46
+ return currentTabIndex + foundIndex + 1;
47
+ }
48
+ function getPreviousTabIndex(currentTabIndex, tabsWithVisibility) {
49
+ const previousTabs = tabsWithVisibility.slice(0, currentTabIndex);
50
+ const foundIndex = previousTabs.reverse().findIndex((tab) => tab.isVisible);
51
+ // Previous visible tab not found
52
+ if (foundIndex === -1) {
53
+ return null;
54
+ }
55
+ // Previous visible tab less than 0
56
+ const previousTabIndex = currentTabIndex - foundIndex - 1;
57
+ if (previousTabIndex < 0) {
58
+ return null;
59
+ }
60
+ return previousTabIndex;
61
+ }
62
+ export default useNextPreviousVisibleTabs;
63
+ //# sourceMappingURL=useNextPreviousVisibleTabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNextPreviousVisibleTabs.js","sourceRoot":"","sources":["../../src/hooks/useNextPreviousVisibleTabs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,SAAS,0BAA0B,CACjC,eAAwB,EACxB,IAAW;IAEX,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;IAChF,MAAM,eAAe,GAAG,qBAAqB,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;IACpE,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;IAChF,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IAExD,MAAM,cAAc,GAAG,eAAe,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,CAAC;IAE3E,IAAI,cAAc,EAAE;QAClB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KACvD;IAED,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;QACrD,IAAI;QACJ,qBAAqB;QACrB,eAAe;QACf,qBAAqB;KACtB,CAAC,CAAC;IAEH,OAAO;QACL,gBAAgB,EAAE,mBAAmB,CAAC,eAAe,EAAE,kBAAkB,CAAC;QAC1E,YAAY,EAAE,eAAe,CAAC,eAAe,EAAE,kBAAkB,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,eAAuB,EACvB,kBAA4D;IAE5D,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEpE,iDAAiD;IACjD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,eAAe,GAAG,UAAU,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,mBAAmB,CAC1B,eAAuB,EACvB,kBAA4D;IAE5D,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAE5E,iCAAiC;IACjC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,mCAAmC;IACnC,MAAM,gBAAgB,GAAG,eAAe,GAAG,UAAU,GAAG,CAAC,CAAC;IAC1D,IAAI,gBAAgB,GAAG,CAAC,EAAE;QACxB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,eAAe,0BAA0B,CAAC"}
package/lib/index.d.ts CHANGED
@@ -6,13 +6,6 @@ export * from './hooks';
6
6
  export * from './utils';
7
7
  export * from './interfaces';
8
8
  export type { ItemToRepopulate };
9
- /**
10
- * Build the form with an initial Questionnaire and an optional filled QuestionnaireResponse.
11
- * If a QuestionnaireResponse is not provided, an empty QuestionnaireResponse is set as the initial QuestionnaireResponse.
12
- *
13
- * @author Sean Fong
14
- */
15
- export declare function buildForm(questionnaire: Questionnaire, questionnaireResponse?: QuestionnaireResponse): Promise<void>;
16
9
  /**
17
10
  * Destroy the form to clean up the questionnaire and questionnaireResponse stores.
18
11
  *
package/lib/index.js CHANGED
@@ -1,14 +1,4 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { questionnaireResponseStore, questionnaireStore } from './stores';
11
- import { initialiseQuestionnaireResponse } from './utils/initialise';
12
2
  import { removeEmptyAnswers } from './utils/removeEmptyAnswers';
13
3
  import { getItemsToRepopulate } from './utils/repopulateItems';
14
4
  import { repopulateItemsIntoResponse } from './utils/repopulateIntoResponse';
@@ -17,20 +7,6 @@ export * from './stores';
17
7
  export * from './hooks';
18
8
  export * from './utils';
19
9
  export * from './interfaces';
20
- /**
21
- * Build the form with an initial Questionnaire and an optional filled QuestionnaireResponse.
22
- * If a QuestionnaireResponse is not provided, an empty QuestionnaireResponse is set as the initial QuestionnaireResponse.
23
- *
24
- * @author Sean Fong
25
- */
26
- export function buildForm(questionnaire, questionnaireResponse) {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- yield questionnaireStore.getState().buildSourceQuestionnaire(questionnaire);
29
- const initialisedQuestionnaireResponse = initialiseQuestionnaireResponse(questionnaire, questionnaireResponse);
30
- questionnaireResponseStore.getState().buildSourceResponse(initialisedQuestionnaireResponse);
31
- questionnaireStore.getState().updatePopulatedProperties(initialisedQuestionnaireResponse);
32
- });
33
- }
34
10
  /**
35
11
  * Destroy the form to clean up the questionnaire and questionnaireResponse stores.
36
12
  *
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAE7E,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAG7B;;;;GAIG;AACH,MAAM,UAAU,WAAW;IACzB,kBAAkB,CAAC,QAAQ,EAAE,CAAC,0BAA0B,EAAE,CAAC;IAC3D,0BAA0B,CAAC,QAAQ,EAAE,CAAC,qBAAqB,EAAE,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,0BAA0B,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAC5C,aAA4B,EAC5B,qBAA4C;IAE5C,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC;IAClF,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC;IACtE,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC;IAElF,OAAO,kBAAkB,CAAC;QACxB,aAAa;QACb,qBAAqB;QACrB,qBAAqB;QACrB,eAAe;QACf,qBAAqB;KACtB,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,iBAAwC;IAChF,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,mBAAmB,CAAC;IAC9E,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC;IAChD,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC;IAClF,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC;IAClF,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC;IACtE,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC;IAElF,OAAO,oBAAoB,CAAC;QAC1B,mBAAmB;QACnB,IAAI;QACJ,iBAAiB;QACjB,iBAAiB;QACjB,qBAAqB;QACrB,eAAe;QACf,qBAAqB;KACtB,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,wBAA0D;IAC3F,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,mBAAmB,CAAC;IAC9E,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC;IAElF,OAAO,2BAA2B,CAChC,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,CACzB,CAAC;AACJ,CAAC"}
@@ -35,16 +35,10 @@ export declare function getQrChoiceValue(qrChoice: QuestionnaireResponseItem, re
35
35
  *
36
36
  * @author Sean Fong
37
37
  */
38
- export declare function updateQrCheckboxAnswers(changedValue: string, answers: QuestionnaireResponseItemAnswer[], answerOptions: QuestionnaireItemAnswerOption[], qrChoiceCheckbox: QuestionnaireResponseItem, isMultiSelection: boolean): QuestionnaireResponseItem | null;
38
+ export declare function updateChoiceCheckboxAnswers(changedValue: string, answers: QuestionnaireResponseItemAnswer[], options: QuestionnaireItemAnswerOption[], oldQrItem: QuestionnaireResponseItem, isMultiSelection: boolean): QuestionnaireResponseItem | null;
39
39
  /**
40
40
  * Get choice orientation from its itemControl
41
41
  *
42
42
  * @author Sean Fong
43
43
  */
44
44
  export declare function getChoiceOrientation(qItem: QuestionnaireItem): ChoiceItemOrientation | null;
45
- /**
46
- * Converts an array of codings to an array of valueCodings which can use the QuestionnaireItemAnswerOption type
47
- *
48
- * @author Sean Fong
49
- */
50
- export declare function mapCodingsToOptions(codings: Coding[]): QuestionnaireItemAnswerOption[];
@@ -102,11 +102,13 @@ export function getQrChoiceValue(qrChoice, returnNull) {
102
102
  *
103
103
  * @author Sean Fong
104
104
  */
105
- export function updateQrCheckboxAnswers(changedValue, answers, answerOptions, qrChoiceCheckbox, isMultiSelection) {
105
+ export function updateChoiceCheckboxAnswers(changedValue, answers, options, oldQrItem, isMultiSelection) {
106
106
  // search for answer item of changedValue from list of answer options
107
- const newAnswer = findInAnswerOptions(answerOptions, changedValue);
108
- if (!newAnswer)
107
+ const newAnswer = findInAnswerOptions(options, changedValue);
108
+ if (!newAnswer) {
109
109
  return null;
110
+ }
111
+ // Process multi-selection
110
112
  if (isMultiSelection && answers.length > 0) {
111
113
  // check and filter if new answer exists in existing qrAnswers
112
114
  const updatedAnswers = answers.filter((answer) => JSON.stringify(answer) !== JSON.stringify(newAnswer));
@@ -114,12 +116,12 @@ export function updateQrCheckboxAnswers(changedValue, answers, answerOptions, qr
114
116
  if (updatedAnswers.length === answers.length) {
115
117
  updatedAnswers.push(newAnswer);
116
118
  }
117
- return Object.assign(Object.assign({}, qrChoiceCheckbox), { answer: updatedAnswers });
118
- }
119
- else {
120
- return answers.some((answer) => JSON.stringify(answer) === JSON.stringify(newAnswer))
121
- ? Object.assign(Object.assign({}, qrChoiceCheckbox), { answer: [] }) : Object.assign(Object.assign({}, qrChoiceCheckbox), { answer: [newAnswer] });
119
+ return Object.assign(Object.assign({}, oldQrItem), { answer: updatedAnswers });
122
120
  }
121
+ // Process single selection
122
+ // If answer already exists, remove it from the array. Otherwise, add it to the array
123
+ const answerExists = answers.some((answer) => JSON.stringify(answer) === JSON.stringify(newAnswer));
124
+ return answerExists ? Object.assign(Object.assign({}, oldQrItem), { answer: [] }) : Object.assign(Object.assign({}, oldQrItem), { answer: [newAnswer] });
123
125
  }
124
126
  /**
125
127
  * Get choice orientation from its itemControl
@@ -142,16 +144,4 @@ export function getChoiceOrientation(qItem) {
142
144
  }
143
145
  return null;
144
146
  }
145
- /**
146
- * Converts an array of codings to an array of valueCodings which can use the QuestionnaireItemAnswerOption type
147
- *
148
- * @author Sean Fong
149
- */
150
- export function mapCodingsToOptions(codings) {
151
- return codings.map((coding) => {
152
- return {
153
- valueCoding: coding
154
- };
155
- });
156
- }
157
147
  //# sourceMappingURL=choice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"choice.js","sourceRoot":"","sources":["../../src/utils/choice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"choice.js","sourceRoot":"","sources":["../../src/utils/choice.ts"],"names":[],"mappings":"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"}
@@ -231,17 +231,15 @@ export function checkItemIsEnabledSingle(enableWhenItemProperties) {
231
231
  for (const answer of linkedItem.answer) {
232
232
  const isEnabledForThisLinkedItem = isEnabledAnswerTypeSwitcher(linkedItem.enableWhen, answer);
233
233
  // In a repeat item, if at least one answer satisfies the condition, the item is enabled
234
- if (isEnabledForThisLinkedItem) {
235
- checkedIsEnabledItems.push(isEnabledAnswerTypeSwitcher(linkedItem.enableWhen, answer));
236
- break;
237
- }
234
+ // FIXME need to look further at this
235
+ checkedIsEnabledItems.push(isEnabledForThisLinkedItem);
236
+ break;
238
237
  }
239
238
  continue;
240
239
  }
241
240
  // Linked item doesn't have any answers, but we still have to check for unanswered booleans
242
- if (evaluateNonExistentAnswers(linkedItem.enableWhen)) {
243
- checkedIsEnabledItems.push(true);
244
- }
241
+ const checkedNonExistentAnswer = evaluateNonExistentAnswers(linkedItem.enableWhen);
242
+ checkedIsEnabledItems.push(checkedNonExistentAnswer);
245
243
  }
246
244
  if (checkedIsEnabledItems.length === 0) {
247
245
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"enableWhen.js","sourceRoot":"","sources":["../../src/utils/enableWhen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enableWhen.js","sourceRoot":"","sources":["../../src/utils/enableWhen.ts"],"names":[],"mappings":"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"}
@@ -2,3 +2,4 @@ export { isSpecificItemControl } from './itemControl';
2
2
  export { isRepeatItemAndNotCheckbox } from './qItem';
3
3
  export { createEnableWhenLinkedQuestions, readInitialAnswers, setInitialAnswers } from './enableWhen';
4
4
  export { initialiseQuestionnaireResponse } from './initialise';
5
+ export { buildForm } from './buildForm';
@@ -18,4 +18,5 @@ export { isSpecificItemControl } from './itemControl';
18
18
  export { isRepeatItemAndNotCheckbox } from './qItem';
19
19
  export { createEnableWhenLinkedQuestions, readInitialAnswers, setInitialAnswers } from './enableWhen';
20
20
  export { initialiseQuestionnaireResponse } from './initialise';
21
+ export { buildForm } from './buildForm';
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EACL,+BAA+B,EAC/B,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EACL,+BAA+B,EAC/B,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -1,11 +1,16 @@
1
- import type { Coding, QuestionnaireItem, QuestionnaireItemAnswerOption, QuestionnaireResponseItem, QuestionnaireResponseItemAnswer } from 'fhir/r4';
2
- import { CheckBoxOption, OpenChoiceItemControl } from '../interfaces/choice.enum';
1
+ import type { QuestionnaireItem, QuestionnaireItemAnswerOption, QuestionnaireResponseItem, QuestionnaireResponseItemAnswer } from 'fhir/r4';
2
+ import { OpenChoiceItemControl } from '../interfaces/choice.enum';
3
3
  /**
4
- * Update open-choice checkbox group answers based on checkbox changes
4
+ * Update open choice answer based on open label value
5
+ *
6
+ * @author Sean Fong
7
+ */
8
+ export declare function updateOpenLabelAnswer(openLabelChecked: boolean, changedOpenLabelValue: string, answers: QuestionnaireResponseItemAnswer[], options: QuestionnaireItemAnswerOption[], oldQrItem: QuestionnaireResponseItem, isMultiSelection: boolean): QuestionnaireResponseItem;
9
+ /**
10
+ * Get the old open label answer from the list of answers
5
11
  *
6
12
  * @author Sean Fong
7
13
  */
8
- export declare function updateQrOpenChoiceCheckboxAnswers(changedOptionAnswer: string | null, changedOpenLabelAnswer: string | null, answers: QuestionnaireResponseItemAnswer[], answerOptions: QuestionnaireItemAnswerOption[] | Coding[], qrChoiceCheckbox: QuestionnaireResponseItem, checkboxOptionType: CheckBoxOption, isMultiSelection: boolean): QuestionnaireResponseItem | null;
9
14
  export declare function getOldOpenLabelAnswer(answers: QuestionnaireResponseItemAnswer[], options: QuestionnaireItemAnswerOption[]): QuestionnaireResponseItemAnswer | null;
10
15
  /**
11
16
  * Get openChoice control type from qItem
@@ -14,96 +14,65 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import { CheckBoxOption, OpenChoiceItemControl } from '../interfaces/choice.enum';
17
+ import { OpenChoiceItemControl } from '../interfaces/choice.enum';
18
18
  import { isSpecificItemControl } from './itemControl';
19
- import { findInAnswerOptions, findInAnswerValueSetCodings } from './choice';
19
+ import _isEqual from 'lodash/isEqual';
20
20
  /**
21
- * Update open-choice checkbox group answers based on checkbox changes
21
+ * Update open choice answer based on open label value
22
22
  *
23
23
  * @author Sean Fong
24
24
  */
25
- export function updateQrOpenChoiceCheckboxAnswers(changedOptionAnswer, changedOpenLabelAnswer, answers, answerOptions, qrChoiceCheckbox, checkboxOptionType, isMultiSelection) {
26
- if (changedOptionAnswer) {
27
- const newAnswer = checkboxOptionType === CheckBoxOption.AnswerOption
28
- ? findInAnswerOptions(answerOptions, changedOptionAnswer)
29
- : findInAnswerValueSetCodings(answerOptions, changedOptionAnswer);
30
- if (!newAnswer)
31
- return null;
32
- if (isMultiSelection && answers.length > 0) {
33
- // check if new answer exists in existing answers
34
- const newAnswerInAnswers = checkboxOptionType === CheckBoxOption.AnswerOption
35
- ? findInAnswerOptions(answers, changedOptionAnswer)
36
- : findInAnswerValueSetCodings(answers, changedOptionAnswer);
37
- if (newAnswerInAnswers) {
38
- // remove new answer from qrAnswers
39
- const newAnswers = [...answers].filter((answer) => JSON.stringify(answer) !== JSON.stringify(newAnswerInAnswers));
40
- return Object.assign(Object.assign({}, qrChoiceCheckbox), { answer: newAnswers });
41
- }
42
- else {
43
- // add new answer to qrAnswers
44
- return Object.assign(Object.assign({}, qrChoiceCheckbox), { answer: [...answers, newAnswer] });
45
- }
25
+ export function updateOpenLabelAnswer(openLabelChecked, changedOpenLabelValue, answers, options, oldQrItem, isMultiSelection) {
26
+ // Open label is unchecked, search for open label value and remove it
27
+ if (!openLabelChecked) {
28
+ // In single-selection, return empty array because there can only be one answer
29
+ if (!isMultiSelection) {
30
+ return Object.assign(Object.assign({}, oldQrItem), { answer: [] });
46
31
  }
47
- else {
48
- return answers.some((answer) => JSON.stringify(answer) === JSON.stringify(newAnswer))
49
- ? Object.assign(Object.assign({}, qrChoiceCheckbox), { answer: [] }) : Object.assign(Object.assign({}, qrChoiceCheckbox), { answer: [newAnswer] });
32
+ // The rest of the processing is for multi-selection
33
+ // Get the indexes of answers that match the open label value
34
+ const matchedIndexes = answers
35
+ .filter((answer) => answer.valueString === changedOpenLabelValue)
36
+ .map((matched) => answers.indexOf(matched));
37
+ // Only remove the last one if there are multiple matches, in case open label value is same as an option
38
+ if (matchedIndexes.length > 0) {
39
+ const lastMatchedIndex = matchedIndexes[matchedIndexes.length - 1];
40
+ const newAnswers = answers.filter((answer, index) => index !== lastMatchedIndex);
41
+ return Object.assign(Object.assign({}, oldQrItem), { answer: newAnswers });
50
42
  }
43
+ // Return oldQrItem if no matches are found
44
+ return oldQrItem;
51
45
  }
52
- else if (changedOpenLabelAnswer !== null) {
53
- const newOpenLabelAnswer = { valueString: changedOpenLabelAnswer };
54
- const oldOpenLabelAnswer = getOldOpenLabelAnswer(answers, answerOptions);
55
- if (answers.length === 0) {
56
- if (changedOpenLabelAnswer === '') {
57
- return { linkId: qrChoiceCheckbox.linkId, text: qrChoiceCheckbox.text };
58
- }
59
- else {
60
- return Object.assign(Object.assign({}, qrChoiceCheckbox), { answer: [newOpenLabelAnswer] });
61
- }
62
- }
63
- if (isMultiSelection) {
64
- if (!oldOpenLabelAnswer) {
65
- // append newOpenLabel if oldOpenLabel doesnt exist
66
- return Object.assign(Object.assign({}, qrChoiceCheckbox), { answer: [...answers, newOpenLabelAnswer] });
67
- }
68
- else {
69
- // An oldOpenLabel already exists
70
- // Remove oldOpenLabel from answers
71
- const answersWithoutOpenLabel = [...answers].filter((answer) => JSON.stringify(answer) !== JSON.stringify(oldOpenLabelAnswer));
72
- if (JSON.stringify(newOpenLabelAnswer) === JSON.stringify(oldOpenLabelAnswer) ||
73
- changedOpenLabelAnswer === '') {
74
- // User unchecks openLabel checkbox or clears field
75
- if (answersWithoutOpenLabel.length > 0) {
76
- return Object.assign(Object.assign({}, qrChoiceCheckbox), { answer: answersWithoutOpenLabel });
77
- }
78
- else {
79
- return { linkId: qrChoiceCheckbox.linkId, text: qrChoiceCheckbox.text };
80
- }
81
- }
82
- else {
83
- // User changes openLabel value
84
- return Object.assign(Object.assign({}, qrChoiceCheckbox), { answer: [...answersWithoutOpenLabel, newOpenLabelAnswer] });
85
- }
86
- }
87
- }
88
- else {
89
- if (!oldOpenLabelAnswer || newOpenLabelAnswer !== oldOpenLabelAnswer) {
90
- // set newOpenLabel as sole answer if oldOpenLabel doesnt exist OR if user changed openLabel value
91
- return Object.assign(Object.assign({}, qrChoiceCheckbox), { answer: [newOpenLabelAnswer] });
92
- }
93
- else {
94
- // User unchecks openLabel checkbox
95
- return Object.assign(Object.assign({}, qrChoiceCheckbox), { answer: [] });
96
- }
97
- }
46
+ // Open label is checked, search for open label value and add it
47
+ const newOpenLabelAnswer = {
48
+ valueString: changedOpenLabelValue
49
+ };
50
+ // In single-selection, return only newOpenLabelAnswer in an array because there can only be one answer
51
+ if (!isMultiSelection) {
52
+ return Object.assign(Object.assign({}, oldQrItem), { answer: [newOpenLabelAnswer] });
98
53
  }
99
- else {
100
- // Default condition which will not happen
101
- return Object.assign({}, qrChoiceCheckbox);
54
+ const oldOpenLabelAnswer = getOldOpenLabelAnswer(answers, options);
55
+ // No open label answer exists initially, add newOpenLabelAnswer to answers
56
+ if (!oldOpenLabelAnswer) {
57
+ return Object.assign(Object.assign({}, oldQrItem), { answer: [...answers, newOpenLabelAnswer] });
58
+ }
59
+ // Old open label answer equals to new open label answer
60
+ // This should not happen, but return oldQrItem
61
+ if (_isEqual(oldOpenLabelAnswer, newOpenLabelAnswer)) {
62
+ return oldQrItem;
102
63
  }
64
+ // New open label answer is different from old open label answer, update it
65
+ oldOpenLabelAnswer.valueString = changedOpenLabelValue;
66
+ return Object.assign(Object.assign({}, oldQrItem), { answer: oldQrItem.answer });
103
67
  }
68
+ /**
69
+ * Get the old open label answer from the list of answers
70
+ *
71
+ * @author Sean Fong
72
+ */
104
73
  export function getOldOpenLabelAnswer(answers, options) {
105
- const openLabelAnswers = answers.filter((answer) => options.indexOf(answer) === -1);
106
- return openLabelAnswers.length > 0 ? openLabelAnswers[0] : null;
74
+ const openLabelAnswer = answers.find((answer) => !options.some((option) => _isEqual(option, answer)));
75
+ return openLabelAnswer !== null && openLabelAnswer !== void 0 ? openLabelAnswer : null;
107
76
  }
108
77
  /**
109
78
  * Get openChoice control type from qItem