@aehrc/smart-forms-renderer 0.7.2 → 0.8.1
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.
- package/lib/components/Alert.styles.d.ts +2 -7
- package/lib/components/Box.styles.d.ts +6 -21
- package/lib/components/FormComponents/BooleanItem/BooleanItem.d.ts +2 -2
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js +5 -4
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +6 -6
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.d.ts +12 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.js +39 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.d.ts +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +17 -29
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.d.ts +13 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.js +42 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.d.ts +4 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +17 -24
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.d.ts +3 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js +8 -8
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.d.ts +12 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js +27 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.d.ts +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +14 -29
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.d.ts +14 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js +42 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.d.ts +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +14 -26
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.d.ts +11 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +41 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +12 -27
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.d.ts +13 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +42 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +13 -22
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/DateItem/DateItem.d.ts +2 -1
- package/lib/components/FormComponents/DateItem/DateItem.js +5 -4
- package/lib/components/FormComponents/DateItem/DateItem.js.map +1 -1
- package/lib/components/FormComponents/DateItem/DatePicker.d.ts +2 -0
- package/lib/components/FormComponents/DateItem/DatePicker.js +42 -0
- package/lib/components/FormComponents/DateItem/DatePicker.js.map +1 -0
- package/lib/components/FormComponents/DateItem/DatePickerField.d.ts +8 -0
- package/{src/components/FormComponents/Typography.styles.ts → lib/components/FormComponents/DateItem/DatePickerField.js} +8 -9
- package/lib/components/FormComponents/DateItem/DatePickerField.js.map +1 -0
- package/lib/components/FormComponents/DateTimeItem/DateTimeItem.d.ts +2 -2
- package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js +5 -4
- package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js.map +1 -1
- package/lib/components/FormComponents/DecimalItem/DecimalItem.d.ts +2 -2
- package/lib/components/FormComponents/DecimalItem/DecimalItem.js +5 -4
- package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.d.ts +1 -0
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js +2 -2
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js.map +1 -1
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.d.ts +2 -7
- package/lib/components/FormComponents/DisplayItem/DisplayItem.js +2 -2
- package/lib/components/FormComponents/DisplayItem/DisplayItem.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/GridGroup.d.ts +2 -2
- package/lib/components/FormComponents/GridGroup/GridGroup.js +6 -4
- package/lib/components/FormComponents/GridGroup/GridGroup.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/GridRow.d.ts +2 -1
- package/lib/components/FormComponents/GridGroup/GridRow.js +2 -2
- package/lib/components/FormComponents/GridGroup/GridRow.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/GridTable.d.ts +2 -1
- package/lib/components/FormComponents/GridGroup/GridTable.js +2 -2
- package/lib/components/FormComponents/GridGroup/GridTable.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupHeading.d.ts +1 -0
- package/lib/components/FormComponents/GroupItem/GroupHeading.js +6 -5
- package/lib/components/FormComponents/GroupItem/GroupHeading.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItem.d.ts +2 -3
- package/lib/components/FormComponents/GroupItem/GroupItem.js +5 -3
- package/lib/components/FormComponents/GroupItem/GroupItem.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItem.styles.d.ts +2 -6
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.d.ts +2 -2
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +12 -12
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/IntegerItem/IntegerItem.d.ts +2 -2
- package/lib/components/FormComponents/IntegerItem/IntegerItem.js +5 -4
- package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
- package/lib/components/FormComponents/Item.styles.d.ts +2 -6
- package/lib/components/FormComponents/Item.styles.js +2 -6
- package/lib/components/FormComponents/Item.styles.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ItemFieldGrid.d.ts +1 -0
- package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js +3 -3
- package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelText.d.ts +1 -0
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js +4 -6
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.d.ts +1 -0
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +2 -2
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/RadioAnswerOptionButtons.d.ts +8 -0
- package/lib/components/FormComponents/ItemParts/RadioAnswerOptionButtons.js +37 -0
- package/lib/components/FormComponents/ItemParts/RadioAnswerOptionButtons.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/RadioButtons.d.ts +8 -0
- package/lib/components/FormComponents/ItemParts/RadioButtons.js +37 -0
- package/lib/components/FormComponents/ItemParts/RadioButtons.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/RadioButtonsAnswerOption.d.ts +8 -0
- package/lib/components/FormComponents/ItemParts/RadioButtonsAnswerOption.js +37 -0
- package/lib/components/FormComponents/ItemParts/RadioButtonsAnswerOption.js.map +1 -0
- package/lib/components/FormComponents/Lists.styles.d.ts +2 -9
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.d.ts +21 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js +48 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteFieldEndAdornment.d.ts +0 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteFieldEndAdornment.js +2 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteFieldEndAdornment.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +16 -39
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.d.ts +17 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.js +42 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.d.ts +3 -3
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +27 -39
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js +6 -6
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.d.ts +15 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js +29 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.d.ts +3 -3
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +10 -29
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.d.ts +12 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js +14 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionFields.d.ts +0 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionFields.js +2 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionFields.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +23 -27
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.d.ts +13 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js +16 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +13 -18
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/AddItemButton.d.ts +1 -0
- package/lib/components/FormComponents/RepeatGroup/AddItemButton.js +2 -2
- package/lib/components/FormComponents/RepeatGroup/AddItemButton.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.d.ts +1 -0
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +2 -2
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.d.ts +2 -2
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +8 -6
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.d.ts +2 -2
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js +5 -3
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/AddItemButton.d.ts +1 -0
- package/lib/components/FormComponents/RepeatItem/AddItemButton.js +2 -2
- package/lib/components/FormComponents/RepeatItem/AddItemButton.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/DeleteItemButton.d.ts +1 -0
- package/lib/components/FormComponents/RepeatItem/DeleteItemButton.js +2 -2
- package/lib/components/FormComponents/RepeatItem/DeleteItemButton.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatField.d.ts +2 -2
- package/lib/components/FormComponents/RepeatItem/RepeatField.js +5 -3
- package/lib/components/FormComponents/RepeatItem/RepeatField.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.d.ts +2 -2
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js +6 -5
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.styles.d.ts +4 -18
- package/lib/components/FormComponents/SingleItem/SingleItem.d.ts +2 -2
- package/lib/components/FormComponents/SingleItem/SingleItem.js +4 -2
- package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
- package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.d.ts +2 -2
- package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js +12 -12
- package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/StringItem/StringItem.d.ts +2 -2
- package/lib/components/FormComponents/StringItem/StringItem.js +5 -4
- package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
- package/lib/components/FormComponents/Tables/AddItemButton.d.ts +8 -0
- package/lib/components/FormComponents/Tables/AddItemButton.js +28 -0
- package/lib/components/FormComponents/Tables/AddItemButton.js.map +1 -0
- package/lib/components/FormComponents/Tables/AddRowButton.d.ts +9 -0
- package/lib/components/FormComponents/Tables/AddRowButton.js +28 -0
- package/lib/components/FormComponents/Tables/AddRowButton.js.map +1 -0
- package/lib/components/FormComponents/Tables/DeleteRowButton.d.ts +1 -0
- package/lib/components/FormComponents/Tables/DeleteRowButton.js +2 -2
- package/lib/components/FormComponents/Tables/DeleteRowButton.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTable.d.ts +10 -0
- package/lib/components/FormComponents/Tables/GroupTable.js +110 -0
- package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -0
- package/lib/components/FormComponents/Tables/GroupTableRow.d.ts +11 -0
- package/lib/components/FormComponents/Tables/GroupTableRow.js +46 -0
- package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -0
- package/lib/components/FormComponents/Tables/QItemGroupTable.js +5 -7
- package/lib/components/FormComponents/Tables/QItemGroupTable.js.map +1 -1
- package/lib/components/FormComponents/Tables/QItemGroupTableRow.js +2 -2
- package/lib/components/FormComponents/Tables/QItemGroupTableRow.js.map +1 -1
- package/lib/components/FormComponents/Tables/index.d.ts +1 -1
- package/lib/components/FormComponents/Tables/index.js +1 -1
- package/lib/components/FormComponents/Tables/index.js.map +1 -1
- package/lib/components/FormComponents/TextItem/TextItem.d.ts +2 -2
- package/lib/components/FormComponents/TextItem/TextItem.js +5 -4
- package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
- package/lib/components/FormComponents/TimeItem/TimeItem.d.ts +2 -2
- package/lib/components/FormComponents/TimeItem/TimeItem.js +5 -4
- package/lib/components/FormComponents/TimeItem/TimeItem.js.map +1 -1
- package/lib/components/FormComponents/UrlItem/UrlItem.d.ts +2 -2
- package/lib/components/FormComponents/UrlItem/UrlItem.js +5 -4
- package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -1
- package/lib/components/Lists.styles.d.ts +2 -9
- package/lib/components/Renderer/FormBodyTabbed.js +1 -1
- package/lib/components/Renderer/FormBodyTabbed.js.map +1 -1
- package/lib/components/Renderer/FormTopLevelItem.js +7 -5
- package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
- package/lib/components/Tabs/FormBodySingleTab.js +1 -1
- package/lib/components/Tabs/FormBodyTabList.d.ts +1 -0
- package/lib/components/Tabs/FormBodyTabList.js +3 -4
- package/lib/components/Tabs/FormBodyTabList.js.map +1 -1
- package/lib/components/Tabs/FormBodyTabListWrapper.d.ts +1 -1
- package/lib/components/Tabs/FormBodyTabListWrapper.js +6 -13
- package/lib/components/Tabs/FormBodyTabListWrapper.js.map +1 -1
- package/lib/components/Tabs/ShowCompletedTabsSection.d.ts +7 -0
- package/lib/components/Tabs/ShowCompletedTabsSection.js +34 -0
- package/lib/components/Tabs/ShowCompletedTabsSection.js.map +1 -0
- package/lib/hooks/useContextDisplayItems.d.ts +6 -0
- package/lib/hooks/useContextDisplayItems.js +30 -0
- package/lib/hooks/useContextDisplayItems.js.map +1 -0
- package/lib/hooks/useInitialiseRenderer.js +2 -2
- package/lib/hooks/useInitialiseRenderer.js.map +1 -1
- package/lib/hooks/useInitialiseRepeatGroups.d.ts +1 -1
- package/lib/hooks/useMinimalStringCalculatedExpression.d.ts +11 -0
- package/lib/hooks/useMinimalStringCalculatedExpression.js +37 -0
- package/lib/hooks/useMinimalStringCalculatedExpression.js.map +1 -0
- package/lib/hooks/useNumberInput.d.ts +1 -1
- package/lib/hooks/useNumberInput.js.map +1 -1
- package/lib/hooks/useReadOnly.d.ts +3 -0
- package/lib/hooks/useReadOnly.js +26 -0
- package/lib/hooks/useReadOnly.js.map +1 -0
- package/lib/hooks/useStringInput.d.ts +1 -1
- package/lib/hooks/useStringInput.js.map +1 -1
- package/lib/hooks/useTerminologyServerQuery.js +3 -6
- package/lib/hooks/useTerminologyServerQuery.js.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/interfaces/calculatedExpression.interface.d.ts +1 -1
- package/lib/interfaces/renderProps.interface.d.ts +6 -0
- package/lib/stores/useQuestionnaireResponseStore.d.ts +2 -1
- package/lib/stores/useQuestionnaireResponseStore.js +5 -3
- package/lib/stores/useQuestionnaireResponseStore.js.map +1 -1
- package/lib/theme/overrides/Typography.d.ts +13 -0
- package/lib/theme/overrides/Typography.js +31 -0
- package/lib/theme/overrides/Typography.js.map +1 -0
- package/lib/theme/typography.d.ts +0 -2
- package/lib/theme/typography.js +3 -5
- package/lib/theme/typography.js.map +1 -1
- package/lib/utils/calculatedExpression.d.ts +12 -0
- package/lib/utils/calculatedExpression.js +54 -8
- package/lib/utils/calculatedExpression.js.map +1 -1
- package/lib/utils/qrItem.d.ts +2 -3
- package/lib/utils/qrItem.js +2 -3
- package/lib/utils/qrItem.js.map +1 -1
- package/lib/utils/repopulateIntoResponse.d.ts +2 -2
- package/lib/utils/repopulateItems.js +0 -1
- package/lib/utils/repopulateItems.js.map +1 -1
- package/package.json +15 -15
- package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +8 -5
- package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +9 -7
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.tsx +85 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +48 -60
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.tsx +79 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +50 -52
- package/src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx +24 -9
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.tsx +48 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +32 -59
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx +83 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +37 -56
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +82 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +30 -60
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +98 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +33 -66
- package/src/components/FormComponents/DateItem/DateItem.tsx +8 -6
- package/src/components/FormComponents/DateTimeItem/DateTimeItem.tsx +8 -6
- package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +7 -5
- package/src/components/FormComponents/DisplayItem/DisplayInstructions.tsx +6 -2
- package/src/components/FormComponents/DisplayItem/DisplayItem.tsx +2 -2
- package/src/components/FormComponents/GridGroup/GridGroup.tsx +13 -5
- package/src/components/FormComponents/GridGroup/GridRow.tsx +6 -2
- package/src/components/FormComponents/GridGroup/GridTable.tsx +6 -2
- package/src/components/FormComponents/GroupItem/GroupHeading.tsx +12 -6
- package/src/components/FormComponents/GroupItem/GroupItem.tsx +8 -2
- package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +31 -8
- package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +7 -5
- package/src/components/FormComponents/Item.styles.ts +2 -7
- package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +4 -3
- package/src/components/FormComponents/ItemParts/ItemLabelText.tsx +10 -5
- package/src/components/FormComponents/ItemParts/ItemLabelWrapper.tsx +3 -2
- package/src/components/FormComponents/ItemParts/RadioAnswerOptionButtons.tsx +72 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx +137 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +50 -99
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.tsx +112 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +72 -80
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx +17 -5
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.tsx +72 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +23 -67
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.tsx +60 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +50 -69
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx +69 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +33 -56
- package/src/components/FormComponents/RepeatGroup/AddItemButton.tsx +3 -2
- package/src/components/FormComponents/RepeatGroup/DeleteItemButton.tsx +3 -2
- package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +17 -9
- package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.tsx +13 -2
- package/src/components/FormComponents/RepeatItem/AddItemButton.tsx +3 -2
- package/src/components/FormComponents/RepeatItem/DeleteItemButton.tsx +3 -2
- package/src/components/FormComponents/RepeatItem/RepeatField.tsx +21 -3
- package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +13 -6
- package/src/components/FormComponents/SingleItem/SingleItem.tsx +12 -3
- package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +21 -3
- package/src/components/FormComponents/StringItem/StringItem.tsx +7 -5
- package/src/components/FormComponents/Tables/AddRowButton.tsx +50 -0
- package/src/components/FormComponents/Tables/DeleteRowButton.tsx +3 -2
- package/src/components/FormComponents/Tables/{QItemGroupTable.tsx → GroupTable.tsx} +22 -22
- package/src/components/FormComponents/Tables/{QItemGroupTableRow.tsx → GroupTableRow.tsx} +8 -4
- package/src/components/FormComponents/Tables/index.ts +1 -1
- package/src/components/FormComponents/TextItem/TextItem.tsx +7 -5
- package/src/components/FormComponents/TimeItem/TimeItem.tsx +8 -6
- package/src/components/FormComponents/UrlItem/UrlItem.tsx +7 -5
- package/src/components/Renderer/FormBodyTabbed.tsx +1 -1
- package/src/components/Renderer/FormTopLevelItem.tsx +9 -4
- package/src/components/Tabs/FormBodySingleTab.tsx +1 -1
- package/src/components/Tabs/FormBodyTabList.tsx +5 -8
- package/src/components/Tabs/FormBodyTabListWrapper.tsx +15 -26
- package/src/components/Tabs/ShowCompletedTabsSection.tsx +52 -0
- package/src/hooks/useContextDisplayItems.ts +40 -0
- package/src/hooks/useInitialiseRenderer.ts +2 -2
- package/src/hooks/useInitialiseRepeatGroups.ts +1 -1
- package/src/hooks/useNumberInput.ts +2 -1
- package/src/hooks/useReadOnly.ts +30 -0
- package/src/hooks/useStringInput.ts +2 -1
- package/src/hooks/useTerminologyServerQuery.ts +3 -6
- package/src/index.ts +2 -2
- package/src/interfaces/calculatedExpression.interface.ts +1 -1
- package/src/interfaces/renderProps.interface.ts +8 -0
- package/src/stores/useQuestionnaireResponseStore.ts +5 -4
- package/src/theme/typography.ts +3 -5
- package/src/utils/calculatedExpression.ts +68 -12
- package/src/utils/qrItem.ts +4 -3
- package/src/utils/repopulateIntoResponse.ts +2 -2
- package/src/utils/repopulateItems.ts +0 -1
|
@@ -0,0 +1,79 @@
|
|
|
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 { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
20
|
+
import type { Coding, QuestionnaireResponseItemAnswer } from 'fhir/r4';
|
|
21
|
+
import CheckboxSingle from '../ItemParts/CheckboxSingle';
|
|
22
|
+
import { StyledFormGroup } from '../Item.styles';
|
|
23
|
+
import { StyledAlert } from '../../Alert.styles';
|
|
24
|
+
import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
|
|
25
|
+
import Typography from '@mui/material/Typography';
|
|
26
|
+
|
|
27
|
+
interface ChoiceCheckboxAnswerValueSetFieldsProps {
|
|
28
|
+
codings: Coding[];
|
|
29
|
+
answers: QuestionnaireResponseItemAnswer[];
|
|
30
|
+
orientation: ChoiceItemOrientation;
|
|
31
|
+
readOnly: boolean;
|
|
32
|
+
serverError: Error | null;
|
|
33
|
+
onCheckedChange: (newValue: string) => void;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function ChoiceCheckboxAnswerValueSetFields(props: ChoiceCheckboxAnswerValueSetFieldsProps) {
|
|
37
|
+
const { codings, answers, orientation, readOnly, serverError, onCheckedChange } = props;
|
|
38
|
+
|
|
39
|
+
if (codings.length > 0) {
|
|
40
|
+
return (
|
|
41
|
+
<StyledFormGroup row={orientation === ChoiceItemOrientation.Horizontal}>
|
|
42
|
+
{codings.map((coding) => (
|
|
43
|
+
<CheckboxSingle
|
|
44
|
+
key={coding.code ?? ''}
|
|
45
|
+
value={coding.code ?? ''}
|
|
46
|
+
label={coding.display ?? `${coding.code}`}
|
|
47
|
+
readOnly={readOnly}
|
|
48
|
+
isChecked={answers.some(
|
|
49
|
+
(answer) => JSON.stringify(answer.valueCoding) === JSON.stringify(coding)
|
|
50
|
+
)}
|
|
51
|
+
onCheckedChange={onCheckedChange}
|
|
52
|
+
/>
|
|
53
|
+
))}
|
|
54
|
+
</StyledFormGroup>
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (serverError) {
|
|
59
|
+
return (
|
|
60
|
+
<StyledAlert color="error">
|
|
61
|
+
<ErrorOutlineIcon color="error" sx={{ pr: 0.75 }} />
|
|
62
|
+
<Typography variant="subtitle2">
|
|
63
|
+
There was an error fetching options from the terminology server
|
|
64
|
+
</Typography>
|
|
65
|
+
</StyledAlert>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return (
|
|
70
|
+
<StyledAlert color="error">
|
|
71
|
+
<ErrorOutlineIcon color="error" sx={{ pr: 0.75 }} />
|
|
72
|
+
<Typography variant="subtitle2">
|
|
73
|
+
Unable to fetch options from the questionnaire or launch context
|
|
74
|
+
</Typography>
|
|
75
|
+
</StyledAlert>
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export default ChoiceCheckboxAnswerValueSetFields;
|
|
@@ -17,43 +17,52 @@
|
|
|
17
17
|
|
|
18
18
|
import React from 'react';
|
|
19
19
|
import Grid from '@mui/material/Grid';
|
|
20
|
-
import Typography from '@mui/material/Typography';
|
|
21
|
-
|
|
22
20
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
23
21
|
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
24
22
|
import useValueSetCodings from '../../../hooks/useValueSetCodings';
|
|
25
|
-
import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
23
|
+
import type { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
26
24
|
import { mapCodingsToOptions, updateQrCheckboxAnswers } from '../../../utils/choice';
|
|
27
|
-
import CheckboxSingle from '../ItemParts/CheckboxSingle';
|
|
28
|
-
import { QFormGroup } from '../Item.styles';
|
|
29
25
|
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
30
26
|
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
31
|
-
import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
|
|
32
27
|
import type {
|
|
33
28
|
PropsWithIsRepeatedAttribute,
|
|
34
|
-
|
|
29
|
+
PropsWithParentIsReadOnlyAttribute,
|
|
30
|
+
PropsWithQrItemChangeHandler,
|
|
31
|
+
PropsWithTextShownAttribute
|
|
35
32
|
} from '../../../interfaces/renderProps.interface';
|
|
36
|
-
import { StyledAlert } from '../../Alert.styles';
|
|
37
33
|
import DisplayInstructions from '../DisplayItem/DisplayInstructions';
|
|
38
34
|
import LabelWrapper from '../ItemParts/ItemLabelWrapper';
|
|
35
|
+
import ChoiceCheckboxAnswerValueSetFields from './ChoiceCheckboxAnswerValueSetFields';
|
|
36
|
+
import useReadOnly from '../../../hooks/useReadOnly';
|
|
39
37
|
|
|
40
38
|
interface ChoiceCheckboxAnswerValueSetItemProps
|
|
41
39
|
extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
|
|
42
|
-
PropsWithIsRepeatedAttribute
|
|
40
|
+
PropsWithIsRepeatedAttribute,
|
|
41
|
+
PropsWithTextShownAttribute,
|
|
42
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
43
43
|
qItem: QuestionnaireItem;
|
|
44
44
|
qrItem: QuestionnaireResponseItem;
|
|
45
45
|
orientation: ChoiceItemOrientation;
|
|
46
|
+
showText?: boolean;
|
|
46
47
|
}
|
|
47
48
|
|
|
48
49
|
function ChoiceCheckboxAnswerValueSetItem(props: ChoiceCheckboxAnswerValueSetItemProps) {
|
|
49
|
-
const {
|
|
50
|
+
const {
|
|
51
|
+
qItem,
|
|
52
|
+
qrItem,
|
|
53
|
+
orientation,
|
|
54
|
+
isRepeated,
|
|
55
|
+
textShown = true,
|
|
56
|
+
parentIsReadOnly,
|
|
57
|
+
onQrItemChange
|
|
58
|
+
} = props;
|
|
50
59
|
|
|
51
60
|
// Init input value
|
|
52
61
|
const qrChoiceCheckbox = qrItem ?? createEmptyQrItem(qItem);
|
|
53
62
|
const answers = qrChoiceCheckbox.answer ? qrChoiceCheckbox.answer : [];
|
|
54
63
|
|
|
55
|
-
|
|
56
|
-
const { displayInstructions
|
|
64
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
65
|
+
const { displayInstructions } = useRenderingExtensions(qItem);
|
|
57
66
|
|
|
58
67
|
// Get codings/options from valueSet
|
|
59
68
|
const { codings, serverError } = useValueSetCodings(qItem);
|
|
@@ -75,52 +84,41 @@ function ChoiceCheckboxAnswerValueSetItem(props: ChoiceCheckboxAnswerValueSetIte
|
|
|
75
84
|
}
|
|
76
85
|
}
|
|
77
86
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
<
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
<
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
if (textShown) {
|
|
88
|
+
return (
|
|
89
|
+
<FullWidthFormComponentBox data-test="q-item-choice-checkbox-answer-value-set-box">
|
|
90
|
+
<Grid container columnSpacing={6}>
|
|
91
|
+
<Grid item xs={5}>
|
|
92
|
+
<LabelWrapper qItem={qItem} readOnly={readOnly} />
|
|
93
|
+
</Grid>
|
|
94
|
+
<Grid item xs={7}>
|
|
95
|
+
<ChoiceCheckboxAnswerValueSetFields
|
|
96
|
+
codings={codings}
|
|
97
|
+
answers={answers}
|
|
98
|
+
orientation={orientation}
|
|
87
99
|
readOnly={readOnly}
|
|
88
|
-
|
|
89
|
-
(answer) => JSON.stringify(answer.valueCoding) === JSON.stringify(coding)
|
|
90
|
-
)}
|
|
100
|
+
serverError={serverError}
|
|
91
101
|
onCheckedChange={handleCheckedChange}
|
|
92
102
|
/>
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
<StyledAlert color="error">
|
|
98
|
-
<ErrorOutlineIcon color="error" sx={{ pr: 0.75 }} />
|
|
99
|
-
<Typography variant="subtitle2">
|
|
100
|
-
There was an error fetching options from the terminology server
|
|
101
|
-
</Typography>
|
|
102
|
-
</StyledAlert>
|
|
103
|
-
) : (
|
|
104
|
-
<StyledAlert color="error">
|
|
105
|
-
<ErrorOutlineIcon color="error" sx={{ pr: 0.75 }} />
|
|
106
|
-
<Typography variant="subtitle2">
|
|
107
|
-
Unable to fetch options from the questionnaire or launch context
|
|
108
|
-
</Typography>
|
|
109
|
-
</StyledAlert>
|
|
103
|
+
<DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
|
|
104
|
+
</Grid>
|
|
105
|
+
</Grid>
|
|
106
|
+
</FullWidthFormComponentBox>
|
|
110
107
|
);
|
|
108
|
+
}
|
|
111
109
|
|
|
112
110
|
return (
|
|
113
|
-
|
|
114
|
-
<
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
111
|
+
<>
|
|
112
|
+
<ChoiceCheckboxAnswerValueSetFields
|
|
113
|
+
codings={codings}
|
|
114
|
+
answers={answers}
|
|
115
|
+
orientation={orientation}
|
|
116
|
+
readOnly={readOnly}
|
|
117
|
+
serverError={serverError}
|
|
118
|
+
onCheckedChange={handleCheckedChange}
|
|
119
|
+
/>
|
|
120
|
+
<DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
|
|
121
|
+
</>
|
|
124
122
|
);
|
|
125
123
|
}
|
|
126
124
|
|
|
@@ -29,19 +29,25 @@ import ChoiceCheckboxAnswerValueSetItem from './ChoiceCheckboxAnswerValueSetItem
|
|
|
29
29
|
import type {
|
|
30
30
|
PropsWithIsRepeatedAttribute,
|
|
31
31
|
PropsWithIsTabledAttribute,
|
|
32
|
-
PropsWithQrItemChangeHandler
|
|
32
|
+
PropsWithQrItemChangeHandler,
|
|
33
|
+
PropsWithTextShownAttribute
|
|
33
34
|
} from '../../../interfaces/renderProps.interface';
|
|
35
|
+
import type { PropsWithParentIsReadOnlyAttribute } from '../../../interfaces/renderProps.interface';
|
|
34
36
|
|
|
35
37
|
interface ChoiceItemSwitcherProps
|
|
36
38
|
extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
|
|
37
39
|
PropsWithIsRepeatedAttribute,
|
|
38
|
-
PropsWithIsTabledAttribute
|
|
40
|
+
PropsWithIsTabledAttribute,
|
|
41
|
+
PropsWithTextShownAttribute,
|
|
42
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
39
43
|
qItem: QuestionnaireItem;
|
|
40
44
|
qrItem: QuestionnaireResponseItem;
|
|
41
45
|
}
|
|
42
46
|
|
|
43
47
|
function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
|
|
44
|
-
const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } =
|
|
48
|
+
const { qItem, qrItem, isRepeated, isTabled, textShown, parentIsReadOnly, onQrItemChange } =
|
|
49
|
+
props;
|
|
50
|
+
|
|
45
51
|
const orientation = getChoiceOrientation(qItem);
|
|
46
52
|
const choiceControlType = getChoiceControlType(qItem);
|
|
47
53
|
|
|
@@ -52,9 +58,10 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
|
|
|
52
58
|
<ChoiceRadioAnswerOptionItem
|
|
53
59
|
qItem={qItem}
|
|
54
60
|
qrItem={qrItem}
|
|
61
|
+
orientation={orientation}
|
|
55
62
|
isRepeated={isRepeated}
|
|
63
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
56
64
|
onQrItemChange={onQrItemChange}
|
|
57
|
-
orientation={orientation}
|
|
58
65
|
/>
|
|
59
66
|
);
|
|
60
67
|
} else {
|
|
@@ -62,9 +69,10 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
|
|
|
62
69
|
<ChoiceRadioAnswerValueSetItem
|
|
63
70
|
qItem={qItem}
|
|
64
71
|
qrItem={qrItem}
|
|
72
|
+
orientation={orientation}
|
|
65
73
|
isRepeated={isRepeated}
|
|
74
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
66
75
|
onQrItemChange={onQrItemChange}
|
|
67
|
-
orientation={orientation}
|
|
68
76
|
/>
|
|
69
77
|
);
|
|
70
78
|
}
|
|
@@ -74,9 +82,11 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
|
|
|
74
82
|
<ChoiceCheckboxAnswerOptionItem
|
|
75
83
|
qItem={qItem}
|
|
76
84
|
qrItem={qrItem}
|
|
77
|
-
isRepeated={qItem['repeats'] ?? false}
|
|
78
|
-
onQrItemChange={onQrItemChange}
|
|
79
85
|
orientation={orientation}
|
|
86
|
+
isRepeated={qItem.repeats ?? false}
|
|
87
|
+
textShown={textShown}
|
|
88
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
89
|
+
onQrItemChange={onQrItemChange}
|
|
80
90
|
/>
|
|
81
91
|
);
|
|
82
92
|
} else {
|
|
@@ -84,9 +94,11 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
|
|
|
84
94
|
<ChoiceCheckboxAnswerValueSetItem
|
|
85
95
|
qItem={qItem}
|
|
86
96
|
qrItem={qrItem}
|
|
87
|
-
isRepeated={qItem
|
|
88
|
-
onQrItemChange={onQrItemChange}
|
|
97
|
+
isRepeated={qItem.repeats ?? false}
|
|
89
98
|
orientation={orientation}
|
|
99
|
+
textShown={textShown}
|
|
100
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
101
|
+
onQrItemChange={onQrItemChange}
|
|
90
102
|
/>
|
|
91
103
|
);
|
|
92
104
|
}
|
|
@@ -97,6 +109,7 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
|
|
|
97
109
|
qrItem={qrItem}
|
|
98
110
|
isRepeated={isRepeated}
|
|
99
111
|
isTabled={isTabled}
|
|
112
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
100
113
|
onQrItemChange={onQrItemChange}
|
|
101
114
|
/>
|
|
102
115
|
);
|
|
@@ -108,6 +121,7 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
|
|
|
108
121
|
qrItem={qrItem}
|
|
109
122
|
isRepeated={isRepeated}
|
|
110
123
|
isTabled={isTabled}
|
|
124
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
111
125
|
onQrItemChange={onQrItemChange}
|
|
112
126
|
/>
|
|
113
127
|
);
|
|
@@ -118,6 +132,7 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
|
|
|
118
132
|
qrItem={qrItem}
|
|
119
133
|
isRepeated={isRepeated}
|
|
120
134
|
isTabled={isTabled}
|
|
135
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
121
136
|
onQrItemChange={onQrItemChange}
|
|
122
137
|
/>
|
|
123
138
|
);
|
|
@@ -0,0 +1,48 @@
|
|
|
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 { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
20
|
+
import type { QuestionnaireItem } from 'fhir/r4';
|
|
21
|
+
import RadioAnswerOptionButtons from '../ItemParts/RadioAnswerOptionButtons';
|
|
22
|
+
import { StyledRadioGroup } from '../Item.styles';
|
|
23
|
+
|
|
24
|
+
interface ChoiceRadioAnswerOptionFieldsProps {
|
|
25
|
+
qItem: QuestionnaireItem;
|
|
26
|
+
valueRadio: string | null;
|
|
27
|
+
orientation: ChoiceItemOrientation;
|
|
28
|
+
readOnly: boolean;
|
|
29
|
+
onCheckedChange: (newValue: string) => void;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function ChoiceRadioAnswerOptionFields(props: ChoiceRadioAnswerOptionFieldsProps) {
|
|
33
|
+
const { qItem, valueRadio, orientation, readOnly, onCheckedChange } = props;
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<StyledRadioGroup
|
|
37
|
+
row={orientation === ChoiceItemOrientation.Horizontal}
|
|
38
|
+
name={qItem.text}
|
|
39
|
+
id={qItem.id}
|
|
40
|
+
onChange={(e) => onCheckedChange(e.target.value)}
|
|
41
|
+
value={valueRadio}
|
|
42
|
+
data-test="q-item-radio-group">
|
|
43
|
+
<RadioAnswerOptionButtons qItem={qItem} readOnly={readOnly} />
|
|
44
|
+
</StyledRadioGroup>
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export default ChoiceRadioAnswerOptionFields;
|
|
@@ -15,111 +15,84 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import type { ChangeEvent } from 'react';
|
|
19
18
|
import React from 'react';
|
|
20
19
|
import Grid from '@mui/material/Grid';
|
|
21
|
-
import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
20
|
+
import type { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
22
21
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
23
22
|
import { findInAnswerOptions, getQrChoiceValue } from '../../../utils/choice';
|
|
24
|
-
import ChoiceRadioSingle from './ChoiceRadioSingle';
|
|
25
23
|
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
26
|
-
import { QRadioGroup } from '../Item.styles';
|
|
27
24
|
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
28
25
|
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
29
26
|
import type {
|
|
30
27
|
PropsWithIsRepeatedAttribute,
|
|
28
|
+
PropsWithParentIsReadOnlyAttribute,
|
|
31
29
|
PropsWithQrItemChangeHandler
|
|
32
30
|
} from '../../../interfaces/renderProps.interface';
|
|
33
31
|
import DisplayInstructions from '../DisplayItem/DisplayInstructions';
|
|
34
32
|
import LabelWrapper from '../ItemParts/ItemLabelWrapper';
|
|
33
|
+
import ChoiceRadioAnswerOptionFields from './ChoiceRadioAnswerOptionFields';
|
|
34
|
+
import useReadOnly from '../../../hooks/useReadOnly';
|
|
35
35
|
|
|
36
36
|
interface ChoiceRadioAnswerOptionItemProps
|
|
37
37
|
extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
|
|
38
|
-
PropsWithIsRepeatedAttribute
|
|
38
|
+
PropsWithIsRepeatedAttribute,
|
|
39
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
39
40
|
qItem: QuestionnaireItem;
|
|
40
41
|
qrItem: QuestionnaireResponseItem;
|
|
41
42
|
orientation: ChoiceItemOrientation;
|
|
42
43
|
}
|
|
43
44
|
|
|
44
45
|
function ChoiceRadioAnswerOptionItem(props: ChoiceRadioAnswerOptionItemProps) {
|
|
45
|
-
const { qItem, qrItem, isRepeated,
|
|
46
|
+
const { qItem, qrItem, orientation, isRepeated, parentIsReadOnly, onQrItemChange } = props;
|
|
46
47
|
|
|
47
48
|
// Init input value
|
|
48
49
|
const qrChoiceRadio = qrItem ?? createEmptyQrItem(qItem);
|
|
49
50
|
const valueRadio = getQrChoiceValue(qrChoiceRadio);
|
|
50
51
|
|
|
51
|
-
|
|
52
|
-
const { displayInstructions
|
|
52
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
53
|
+
const { displayInstructions } = useRenderingExtensions(qItem);
|
|
53
54
|
|
|
54
55
|
// Event handlers
|
|
55
|
-
function handleChange(
|
|
56
|
+
function handleChange(newValue: string) {
|
|
56
57
|
if (qItem.answerOption) {
|
|
57
|
-
const qrAnswer = findInAnswerOptions(qItem.answerOption,
|
|
58
|
+
const qrAnswer = findInAnswerOptions(qItem.answerOption, newValue);
|
|
58
59
|
if (qrAnswer) {
|
|
59
60
|
onQrItemChange({ ...createEmptyQrItem(qItem), answer: [qrAnswer] });
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
64
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
<ChoiceRadioSingle
|
|
76
|
-
key={option.valueCoding.code ?? ''}
|
|
77
|
-
value={option.valueCoding.code ?? ''}
|
|
78
|
-
label={option.valueCoding.display ?? `${option.valueCoding.code}`}
|
|
79
|
-
readOnly={readOnly}
|
|
80
|
-
/>
|
|
81
|
-
);
|
|
82
|
-
} else if (option['valueString']) {
|
|
83
|
-
return (
|
|
84
|
-
<ChoiceRadioSingle
|
|
85
|
-
key={option.valueString}
|
|
86
|
-
value={option.valueString}
|
|
87
|
-
label={option.valueString}
|
|
88
|
-
readOnly={readOnly}
|
|
89
|
-
/>
|
|
90
|
-
);
|
|
91
|
-
} else if (option['valueInteger']) {
|
|
92
|
-
return (
|
|
93
|
-
<ChoiceRadioSingle
|
|
94
|
-
key={option.valueInteger}
|
|
95
|
-
value={option.valueInteger.toString()}
|
|
96
|
-
label={option.valueInteger.toString()}
|
|
97
|
-
readOnly={readOnly}
|
|
98
|
-
/>
|
|
99
|
-
);
|
|
100
|
-
} else {
|
|
101
|
-
return null;
|
|
102
|
-
}
|
|
103
|
-
})}
|
|
104
|
-
</QRadioGroup>
|
|
105
|
-
);
|
|
65
|
+
if (isRepeated) {
|
|
66
|
+
return (
|
|
67
|
+
<ChoiceRadioAnswerOptionFields
|
|
68
|
+
qItem={qItem}
|
|
69
|
+
valueRadio={valueRadio}
|
|
70
|
+
orientation={orientation}
|
|
71
|
+
readOnly={readOnly}
|
|
72
|
+
onCheckedChange={handleChange}
|
|
73
|
+
/>
|
|
74
|
+
);
|
|
75
|
+
}
|
|
106
76
|
|
|
107
|
-
|
|
108
|
-
<>{choiceRadio}</>
|
|
109
|
-
) : (
|
|
77
|
+
return (
|
|
110
78
|
<FullWidthFormComponentBox data-test="q-item-choice-radio-answer-option-box">
|
|
111
79
|
<Grid container columnSpacing={6}>
|
|
112
80
|
<Grid item xs={5}>
|
|
113
|
-
<LabelWrapper qItem={qItem} />
|
|
81
|
+
<LabelWrapper qItem={qItem} readOnly={readOnly} />
|
|
114
82
|
</Grid>
|
|
115
83
|
<Grid item xs={7}>
|
|
116
|
-
|
|
117
|
-
|
|
84
|
+
<ChoiceRadioAnswerOptionFields
|
|
85
|
+
qItem={qItem}
|
|
86
|
+
valueRadio={valueRadio}
|
|
87
|
+
orientation={orientation}
|
|
88
|
+
readOnly={readOnly}
|
|
89
|
+
onCheckedChange={handleChange}
|
|
90
|
+
/>
|
|
91
|
+
<DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
|
|
118
92
|
</Grid>
|
|
119
93
|
</Grid>
|
|
120
94
|
</FullWidthFormComponentBox>
|
|
121
95
|
);
|
|
122
|
-
return <>{renderQItemChoiceRadio}</>;
|
|
123
96
|
}
|
|
124
97
|
|
|
125
98
|
export default ChoiceRadioAnswerOptionItem;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import Typography from '@mui/material/Typography';
|
|
20
|
+
import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
21
|
+
import type { Coding, QuestionnaireItem } from 'fhir/r4';
|
|
22
|
+
import ChoiceRadioSingle from './ChoiceRadioSingle';
|
|
23
|
+
import { StyledRadioGroup } from '../Item.styles';
|
|
24
|
+
import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
|
|
25
|
+
import { StyledAlert } from '../../Alert.styles';
|
|
26
|
+
|
|
27
|
+
interface ChoiceRadioAnswerValueSetFieldsProps {
|
|
28
|
+
qItem: QuestionnaireItem;
|
|
29
|
+
codings: Coding[];
|
|
30
|
+
valueRadio: string | null;
|
|
31
|
+
orientation: ChoiceItemOrientation;
|
|
32
|
+
readOnly: boolean;
|
|
33
|
+
serverError: Error | null;
|
|
34
|
+
onCheckedChange: (newValue: string) => void;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function ChoiceRadioAnswerValueSetFields(props: ChoiceRadioAnswerValueSetFieldsProps) {
|
|
38
|
+
const { qItem, codings, valueRadio, orientation, readOnly, serverError, onCheckedChange } = props;
|
|
39
|
+
|
|
40
|
+
if (codings.length > 0) {
|
|
41
|
+
return (
|
|
42
|
+
<StyledRadioGroup
|
|
43
|
+
row={orientation === ChoiceItemOrientation.Horizontal}
|
|
44
|
+
name={qItem.text}
|
|
45
|
+
id={qItem.id}
|
|
46
|
+
onChange={(e) => onCheckedChange(e.target.value)}
|
|
47
|
+
value={valueRadio ?? null}>
|
|
48
|
+
{codings.map((coding: Coding) => {
|
|
49
|
+
return (
|
|
50
|
+
<ChoiceRadioSingle
|
|
51
|
+
key={coding.code ?? ''}
|
|
52
|
+
value={coding.code ?? ''}
|
|
53
|
+
label={coding.display ?? `${coding.code}`}
|
|
54
|
+
readOnly={readOnly}
|
|
55
|
+
/>
|
|
56
|
+
);
|
|
57
|
+
})}
|
|
58
|
+
</StyledRadioGroup>
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (serverError) {
|
|
63
|
+
return (
|
|
64
|
+
<StyledAlert color="error">
|
|
65
|
+
<ErrorOutlineIcon color="error" sx={{ pr: 0.75 }} />
|
|
66
|
+
<Typography variant="subtitle2">
|
|
67
|
+
There was an error fetching options from the terminology server
|
|
68
|
+
</Typography>
|
|
69
|
+
</StyledAlert>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return (
|
|
74
|
+
<StyledAlert color="error">
|
|
75
|
+
<ErrorOutlineIcon color="error" sx={{ pr: 0.75 }} />
|
|
76
|
+
<Typography variant="subtitle2">
|
|
77
|
+
Unable to fetch options from the questionnaire or launch context
|
|
78
|
+
</Typography>
|
|
79
|
+
</StyledAlert>
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export default ChoiceRadioAnswerValueSetFields;
|