@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
|
@@ -16,7 +16,10 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import React, { useState } from 'react';
|
|
19
|
-
import type {
|
|
19
|
+
import type {
|
|
20
|
+
PropsWithParentIsReadOnlyAttribute,
|
|
21
|
+
PropsWithQrItemChangeHandler
|
|
22
|
+
} from '../../../interfaces/renderProps.interface';
|
|
20
23
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
21
24
|
import { nanoid } from 'nanoid';
|
|
22
25
|
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
@@ -28,16 +31,19 @@ import RepeatField from './RepeatField';
|
|
|
28
31
|
import Collapse from '@mui/material/Collapse';
|
|
29
32
|
import useInitialiseRepeatAnswers from '../../../hooks/useInitialiseRepeatAnswers';
|
|
30
33
|
import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
|
|
34
|
+
import useReadOnly from '../../../hooks/useReadOnly';
|
|
31
35
|
|
|
32
|
-
interface RepeatItemProps
|
|
36
|
+
interface RepeatItemProps
|
|
37
|
+
extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
|
|
38
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
33
39
|
qItem: QuestionnaireItem;
|
|
34
40
|
qrItem: QuestionnaireResponseItem;
|
|
35
41
|
}
|
|
36
42
|
|
|
37
43
|
function RepeatItem(props: RepeatItemProps) {
|
|
38
|
-
const { qItem, qrItem, onQrItemChange } = props;
|
|
44
|
+
const { qItem, qrItem, parentIsReadOnly, onQrItemChange } = props;
|
|
39
45
|
|
|
40
|
-
|
|
46
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
41
47
|
const { displayInstructions } = useRenderingExtensions(qItem);
|
|
42
48
|
|
|
43
49
|
const initialRepeatAnswers = useInitialiseRepeatAnswers(qItem, qrItem);
|
|
@@ -84,7 +90,7 @@ function RepeatItem(props: RepeatItemProps) {
|
|
|
84
90
|
|
|
85
91
|
return (
|
|
86
92
|
<FullWidthFormComponentBox data-test="q-item-repeat-box">
|
|
87
|
-
<ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions}>
|
|
93
|
+
<ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions} readOnly={readOnly}>
|
|
88
94
|
<TransitionGroup>
|
|
89
95
|
{repeatAnswers.map(({ nanoId, answer }, index) => {
|
|
90
96
|
const repeatAnswerQrItem = createEmptyQrItem(qItem);
|
|
@@ -99,6 +105,7 @@ function RepeatItem(props: RepeatItemProps) {
|
|
|
99
105
|
qrItem={repeatAnswerQrItem}
|
|
100
106
|
answer={answer}
|
|
101
107
|
numOfRepeatAnswers={repeatAnswers.length}
|
|
108
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
102
109
|
onDeleteAnswer={() => handleDeleteItem(index)}
|
|
103
110
|
onQrItemChange={(newQrItem) => handleAnswerChange(newQrItem, index)}
|
|
104
111
|
/>
|
|
@@ -108,7 +115,7 @@ function RepeatItem(props: RepeatItemProps) {
|
|
|
108
115
|
</TransitionGroup>
|
|
109
116
|
</ItemFieldGrid>
|
|
110
117
|
|
|
111
|
-
<AddItemButton repeatAnswers={repeatAnswers} onAddItem={handleAddItem} />
|
|
118
|
+
<AddItemButton repeatAnswers={repeatAnswers} readOnly={readOnly} onAddItem={handleAddItem} />
|
|
112
119
|
</FullWidthFormComponentBox>
|
|
113
120
|
);
|
|
114
121
|
}
|
|
@@ -20,22 +20,28 @@ import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
|
20
20
|
import type {
|
|
21
21
|
PropsWithIsRepeatedAttribute,
|
|
22
22
|
PropsWithIsTabledAttribute,
|
|
23
|
-
|
|
23
|
+
PropsWithParentIsReadOnlyAttribute,
|
|
24
|
+
PropsWithQrItemChangeHandler,
|
|
25
|
+
PropsWithTextShownAttribute
|
|
24
26
|
} from '../../../interfaces/renderProps.interface';
|
|
25
27
|
import useQuestionnaireStore from '../../../stores/useQuestionnaireStore';
|
|
26
28
|
import SingleItemSwitcher from './SingleItemSwitcher';
|
|
27
29
|
import useHidden from '../../../hooks/useHidden';
|
|
30
|
+
import useReadOnly from '../../../hooks/useReadOnly';
|
|
28
31
|
|
|
29
32
|
interface SingleItemProps
|
|
30
33
|
extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
|
|
31
34
|
PropsWithIsRepeatedAttribute,
|
|
32
|
-
PropsWithIsTabledAttribute
|
|
35
|
+
PropsWithIsTabledAttribute,
|
|
36
|
+
PropsWithTextShownAttribute,
|
|
37
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
33
38
|
qItem: QuestionnaireItem;
|
|
34
39
|
qrItem: QuestionnaireResponseItem;
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
function SingleItem(props: SingleItemProps) {
|
|
38
|
-
const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } =
|
|
43
|
+
const { qItem, qrItem, isRepeated, isTabled, textShown, parentIsReadOnly, onQrItemChange } =
|
|
44
|
+
props;
|
|
39
45
|
|
|
40
46
|
const updateEnableWhenItem = useQuestionnaireStore((state) => state.updateEnableWhenItem);
|
|
41
47
|
|
|
@@ -49,6 +55,7 @@ function SingleItem(props: SingleItemProps) {
|
|
|
49
55
|
[updateEnableWhenItem, onQrItemChange, qItem.linkId]
|
|
50
56
|
);
|
|
51
57
|
|
|
58
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
52
59
|
const itemIsHidden = useHidden(qItem);
|
|
53
60
|
if (itemIsHidden) {
|
|
54
61
|
return null;
|
|
@@ -60,6 +67,8 @@ function SingleItem(props: SingleItemProps) {
|
|
|
60
67
|
qrItem={qrItem}
|
|
61
68
|
isRepeated={isRepeated}
|
|
62
69
|
isTabled={isTabled}
|
|
70
|
+
textShown={textShown}
|
|
71
|
+
parentIsReadOnly={readOnly}
|
|
63
72
|
onQrItemChange={handleQrItemChange}
|
|
64
73
|
/>
|
|
65
74
|
);
|
|
@@ -23,7 +23,9 @@ import Typography from '@mui/material/Typography';
|
|
|
23
23
|
import type {
|
|
24
24
|
PropsWithIsRepeatedAttribute,
|
|
25
25
|
PropsWithIsTabledAttribute,
|
|
26
|
-
|
|
26
|
+
PropsWithParentIsReadOnlyAttribute,
|
|
27
|
+
PropsWithQrItemChangeHandler,
|
|
28
|
+
PropsWithTextShownAttribute
|
|
27
29
|
} from '../../../interfaces/renderProps.interface';
|
|
28
30
|
import StringItem from '../StringItem/StringItem';
|
|
29
31
|
import BooleanItem from '../BooleanItem/BooleanItem';
|
|
@@ -39,13 +41,16 @@ import UrlItem from '../UrlItem/UrlItem';
|
|
|
39
41
|
interface SingleItemSwitcherProps
|
|
40
42
|
extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
|
|
41
43
|
PropsWithIsRepeatedAttribute,
|
|
42
|
-
PropsWithIsTabledAttribute
|
|
44
|
+
PropsWithIsTabledAttribute,
|
|
45
|
+
PropsWithTextShownAttribute,
|
|
46
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
43
47
|
qItem: QuestionnaireItem;
|
|
44
48
|
qrItem: QuestionnaireResponseItem;
|
|
45
49
|
}
|
|
46
50
|
|
|
47
51
|
function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
48
|
-
const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } =
|
|
52
|
+
const { qItem, qrItem, isRepeated, isTabled, textShown, parentIsReadOnly, onQrItemChange } =
|
|
53
|
+
props;
|
|
49
54
|
|
|
50
55
|
switch (qItem.type) {
|
|
51
56
|
case 'string':
|
|
@@ -55,6 +60,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
55
60
|
qrItem={qrItem}
|
|
56
61
|
isRepeated={isRepeated}
|
|
57
62
|
isTabled={isTabled}
|
|
63
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
58
64
|
onQrItemChange={onQrItemChange}
|
|
59
65
|
/>
|
|
60
66
|
);
|
|
@@ -65,6 +71,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
65
71
|
qrItem={qrItem}
|
|
66
72
|
isRepeated={isRepeated}
|
|
67
73
|
isTabled={isTabled}
|
|
74
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
68
75
|
onQrItemChange={onQrItemChange}
|
|
69
76
|
/>
|
|
70
77
|
);
|
|
@@ -75,6 +82,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
75
82
|
qrItem={qrItem}
|
|
76
83
|
isRepeated={isRepeated}
|
|
77
84
|
isTabled={isTabled}
|
|
85
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
78
86
|
onQrItemChange={onQrItemChange}
|
|
79
87
|
/>
|
|
80
88
|
);
|
|
@@ -85,6 +93,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
85
93
|
qrItem={qrItem}
|
|
86
94
|
isRepeated={isRepeated}
|
|
87
95
|
isTabled={isTabled}
|
|
96
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
88
97
|
onQrItemChange={onQrItemChange}
|
|
89
98
|
/>
|
|
90
99
|
);
|
|
@@ -95,6 +104,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
95
104
|
qrItem={qrItem}
|
|
96
105
|
isRepeated={isRepeated}
|
|
97
106
|
isTabled={isTabled}
|
|
107
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
98
108
|
onQrItemChange={onQrItemChange}
|
|
99
109
|
/>
|
|
100
110
|
);
|
|
@@ -104,6 +114,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
104
114
|
qItem={qItem}
|
|
105
115
|
qrItem={qrItem}
|
|
106
116
|
isRepeated={isRepeated}
|
|
117
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
107
118
|
onQrItemChange={onQrItemChange}
|
|
108
119
|
/>
|
|
109
120
|
);
|
|
@@ -116,6 +127,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
116
127
|
qrItem={qrItem}
|
|
117
128
|
isRepeated={isRepeated}
|
|
118
129
|
isTabled={isTabled}
|
|
130
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
119
131
|
onQrItemChange={onQrItemChange}
|
|
120
132
|
/>
|
|
121
133
|
);
|
|
@@ -126,6 +138,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
126
138
|
qrItem={qrItem}
|
|
127
139
|
isRepeated={isRepeated}
|
|
128
140
|
isTabled={isTabled}
|
|
141
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
129
142
|
onQrItemChange={onQrItemChange}
|
|
130
143
|
/>
|
|
131
144
|
);
|
|
@@ -136,6 +149,8 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
136
149
|
qrItem={qrItem}
|
|
137
150
|
isRepeated={isRepeated}
|
|
138
151
|
isTabled={isTabled}
|
|
152
|
+
textShown={textShown}
|
|
153
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
139
154
|
onQrItemChange={onQrItemChange}
|
|
140
155
|
/>
|
|
141
156
|
);
|
|
@@ -146,6 +161,8 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
146
161
|
qrItem={qrItem}
|
|
147
162
|
isRepeated={isRepeated}
|
|
148
163
|
isTabled={isTabled}
|
|
164
|
+
textShown={textShown}
|
|
165
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
149
166
|
onQrItemChange={onQrItemChange}
|
|
150
167
|
/>
|
|
151
168
|
);
|
|
@@ -156,6 +173,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
156
173
|
qrItem={qrItem}
|
|
157
174
|
isRepeated={isRepeated}
|
|
158
175
|
isTabled={isTabled}
|
|
176
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
159
177
|
onQrItemChange={onQrItemChange}
|
|
160
178
|
/>
|
|
161
179
|
);
|
|
@@ -19,6 +19,7 @@ import React, { useCallback } from 'react';
|
|
|
19
19
|
import type {
|
|
20
20
|
PropsWithIsRepeatedAttribute,
|
|
21
21
|
PropsWithIsTabledAttribute,
|
|
22
|
+
PropsWithParentIsReadOnlyAttribute,
|
|
22
23
|
PropsWithQrItemChangeHandler
|
|
23
24
|
} from '../../../interfaces/renderProps.interface';
|
|
24
25
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
@@ -32,23 +33,24 @@ import StringField from './StringField';
|
|
|
32
33
|
import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
|
|
33
34
|
import useStringCalculatedExpression from '../../../hooks/useStringCalculatedExpression';
|
|
34
35
|
import useStringInput from '../../../hooks/useStringInput';
|
|
36
|
+
import useReadOnly from '../../../hooks/useReadOnly';
|
|
35
37
|
|
|
36
38
|
interface StringItemProps
|
|
37
39
|
extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
|
|
38
40
|
PropsWithIsRepeatedAttribute,
|
|
39
|
-
PropsWithIsTabledAttribute
|
|
41
|
+
PropsWithIsTabledAttribute,
|
|
42
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
40
43
|
qItem: QuestionnaireItem;
|
|
41
44
|
qrItem: QuestionnaireResponseItem;
|
|
42
45
|
}
|
|
43
46
|
function StringItem(props: StringItemProps) {
|
|
44
|
-
const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
|
|
47
|
+
const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
|
|
45
48
|
|
|
46
|
-
|
|
49
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
47
50
|
const {
|
|
48
51
|
displayUnit,
|
|
49
52
|
displayPrompt,
|
|
50
53
|
displayInstructions,
|
|
51
|
-
readOnly,
|
|
52
54
|
entryFormat,
|
|
53
55
|
regexValidation,
|
|
54
56
|
maxLength
|
|
@@ -111,7 +113,7 @@ function StringItem(props: StringItemProps) {
|
|
|
111
113
|
}
|
|
112
114
|
return (
|
|
113
115
|
<FullWidthFormComponentBox data-test="q-item-string-box">
|
|
114
|
-
<ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions}>
|
|
116
|
+
<ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions} readOnly={readOnly}>
|
|
115
117
|
<StringField
|
|
116
118
|
linkId={qItem.linkId}
|
|
117
119
|
input={input}
|
|
@@ -0,0 +1,50 @@
|
|
|
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 Box from '@mui/material/Box';
|
|
20
|
+
import Button from '@mui/material/Button';
|
|
21
|
+
import AddIcon from '@mui/icons-material/Add';
|
|
22
|
+
import type { RepeatGroupSingle } from '../../../interfaces/repeatGroup.interface';
|
|
23
|
+
|
|
24
|
+
interface AddItemButtonProps {
|
|
25
|
+
repeatGroups: RepeatGroupSingle[];
|
|
26
|
+
readOnly: boolean;
|
|
27
|
+
onAddItem: () => void;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function AddRowButton(props: AddItemButtonProps) {
|
|
31
|
+
const { repeatGroups, readOnly, onAddItem } = props;
|
|
32
|
+
|
|
33
|
+
const isDisabled = repeatGroups[repeatGroups.length - 1].qrItem === null || readOnly;
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<Box display="flex" flexDirection="row-reverse">
|
|
37
|
+
<Button
|
|
38
|
+
variant="contained"
|
|
39
|
+
size="small"
|
|
40
|
+
startIcon={<AddIcon />}
|
|
41
|
+
disabled={isDisabled}
|
|
42
|
+
onClick={onAddItem}
|
|
43
|
+
data-test="button-add-repeat-item">
|
|
44
|
+
Add Row
|
|
45
|
+
</Button>
|
|
46
|
+
</Box>
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export default AddRowButton;
|
|
@@ -26,13 +26,14 @@ import type { QuestionnaireResponseItem } from 'fhir/r4';
|
|
|
26
26
|
interface DeleteRowButtonProps {
|
|
27
27
|
nullableQrItem: QuestionnaireResponseItem | null;
|
|
28
28
|
numOfRows: number;
|
|
29
|
+
readOnly: boolean;
|
|
29
30
|
onDeleteItem: () => void;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
function DeleteRowButton(props: DeleteRowButtonProps) {
|
|
33
|
-
const { nullableQrItem, numOfRows, onDeleteItem } = props;
|
|
34
|
+
const { nullableQrItem, numOfRows, readOnly, onDeleteItem } = props;
|
|
34
35
|
|
|
35
|
-
const isDisabled = nullableQrItem === null || numOfRows === 1;
|
|
36
|
+
const isDisabled = nullableQrItem === null || numOfRows === 1 || readOnly;
|
|
36
37
|
return (
|
|
37
38
|
<DeleteButtonTableCell>
|
|
38
39
|
<Tooltip title="Delete item">
|
|
@@ -18,10 +18,8 @@
|
|
|
18
18
|
import React, { useMemo, useState } from 'react';
|
|
19
19
|
|
|
20
20
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
21
|
-
import Button from '@mui/material/Button';
|
|
22
21
|
import Divider from '@mui/material/Divider';
|
|
23
22
|
import Paper from '@mui/material/Paper';
|
|
24
|
-
import Stack from '@mui/material/Stack';
|
|
25
23
|
import Table from '@mui/material/Table';
|
|
26
24
|
import TableBody from '@mui/material/TableBody';
|
|
27
25
|
import TableCell from '@mui/material/TableCell';
|
|
@@ -29,28 +27,33 @@ import TableContainer from '@mui/material/TableContainer';
|
|
|
29
27
|
import TableHead from '@mui/material/TableHead';
|
|
30
28
|
import TableRow from '@mui/material/TableRow';
|
|
31
29
|
import Typography from '@mui/material/Typography';
|
|
32
|
-
|
|
33
|
-
import AddIcon from '@mui/icons-material/Add';
|
|
34
|
-
import QItemGroupTableRow from './QItemGroupTableRow';
|
|
30
|
+
import GroupTableRow from './GroupTableRow';
|
|
35
31
|
import { HeaderTableCell } from './Table.styles';
|
|
36
32
|
import { QGroupContainerBox } from '../../Box.styles';
|
|
37
33
|
import { mapQItemsIndex } from '../../../utils/mapItem';
|
|
38
|
-
import type {
|
|
34
|
+
import type {
|
|
35
|
+
PropsWithParentIsReadOnlyAttribute,
|
|
36
|
+
PropsWithQrRepeatGroupChangeHandler
|
|
37
|
+
} from '../../../interfaces/renderProps.interface';
|
|
39
38
|
import useInitialiseGroupTable from '../../../hooks/useInitialiseGroupTable';
|
|
40
39
|
import { nanoid } from 'nanoid';
|
|
41
40
|
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
42
41
|
import DeleteRowButton from './DeleteRowButton';
|
|
43
42
|
import LabelWrapper from '../ItemParts/ItemLabelWrapper';
|
|
44
43
|
import cloneDeep from 'lodash.clonedeep';
|
|
44
|
+
import AddRowButton from './AddRowButton';
|
|
45
|
+
import useReadOnly from '../../../hooks/useReadOnly';
|
|
45
46
|
|
|
46
|
-
interface Props extends PropsWithQrRepeatGroupChangeHandler {
|
|
47
|
+
interface Props extends PropsWithQrRepeatGroupChangeHandler, PropsWithParentIsReadOnlyAttribute {
|
|
47
48
|
qItem: QuestionnaireItem;
|
|
48
49
|
qrItems: QuestionnaireResponseItem[];
|
|
49
50
|
groupCardElevation: number;
|
|
50
51
|
}
|
|
51
52
|
|
|
52
|
-
function
|
|
53
|
-
const { qItem, qrItems, groupCardElevation, onQrRepeatGroupChange } = props;
|
|
53
|
+
function GroupTable(props: Props) {
|
|
54
|
+
const { qItem, qrItems, groupCardElevation, parentIsReadOnly, onQrRepeatGroupChange } = props;
|
|
55
|
+
|
|
56
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
54
57
|
|
|
55
58
|
const initialisedGroupTables = useInitialiseGroupTable(qrItems);
|
|
56
59
|
|
|
@@ -119,8 +122,11 @@ function QItemGroupTable(props: Props) {
|
|
|
119
122
|
<QGroupContainerBox cardElevation={groupCardElevation} isRepeated={false} py={3}>
|
|
120
123
|
{groupCardElevation !== 1 ? (
|
|
121
124
|
<>
|
|
122
|
-
<Typography
|
|
123
|
-
|
|
125
|
+
<Typography
|
|
126
|
+
fontSize={13}
|
|
127
|
+
variant="h6"
|
|
128
|
+
color={readOnly ? 'text.secondary' : 'text.primary'}>
|
|
129
|
+
<LabelWrapper qItem={qItem} readOnly={readOnly} />
|
|
124
130
|
</Typography>
|
|
125
131
|
<Divider sx={{ my: 1 }} light />
|
|
126
132
|
</>
|
|
@@ -128,15 +134,7 @@ function QItemGroupTable(props: Props) {
|
|
|
128
134
|
<TableContainer component={Paper} elevation={groupCardElevation}>
|
|
129
135
|
<Table>
|
|
130
136
|
<caption>
|
|
131
|
-
<
|
|
132
|
-
<Button
|
|
133
|
-
variant="contained"
|
|
134
|
-
size="small"
|
|
135
|
-
startIcon={<AddIcon />}
|
|
136
|
-
onClick={handleAddRow}>
|
|
137
|
-
Add Row
|
|
138
|
-
</Button>
|
|
139
|
-
</Stack>
|
|
137
|
+
<AddRowButton repeatGroups={tableRows} readOnly={readOnly} onAddItem={handleAddRow} />
|
|
140
138
|
</caption>
|
|
141
139
|
<TableHead>
|
|
142
140
|
<TableRow>
|
|
@@ -155,15 +153,17 @@ function QItemGroupTable(props: Props) {
|
|
|
155
153
|
|
|
156
154
|
return (
|
|
157
155
|
<TableRow key={nanoId}>
|
|
158
|
-
<
|
|
156
|
+
<GroupTableRow
|
|
159
157
|
qItem={qItem}
|
|
160
158
|
qrItem={answeredQrItem}
|
|
161
159
|
qItemsIndexMap={qItemsIndexMap}
|
|
160
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
162
161
|
onQrItemChange={(newQrGroup) => handleRowChange(newQrGroup, index)}
|
|
163
162
|
/>
|
|
164
163
|
<DeleteRowButton
|
|
165
164
|
nullableQrItem={nullableQrItem}
|
|
166
165
|
numOfRows={tableRows.length}
|
|
166
|
+
readOnly={readOnly}
|
|
167
167
|
onDeleteItem={() => handleDeleteRow(index)}
|
|
168
168
|
/>
|
|
169
169
|
</TableRow>
|
|
@@ -176,4 +176,4 @@ function QItemGroupTable(props: Props) {
|
|
|
176
176
|
);
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
-
export default
|
|
179
|
+
export default GroupTable;
|
|
@@ -22,15 +22,18 @@ import SingleItem from '../SingleItem/SingleItem';
|
|
|
22
22
|
import { getQrItemsIndex } from '../../../utils/mapItem';
|
|
23
23
|
import { StandardTableCell } from './Table.styles';
|
|
24
24
|
import type { PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
|
|
25
|
+
import type { PropsWithParentIsReadOnlyAttribute } from '../../../interfaces/renderProps.interface';
|
|
25
26
|
|
|
26
|
-
interface Props
|
|
27
|
+
interface Props
|
|
28
|
+
extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
|
|
29
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
27
30
|
qItem: QuestionnaireItem;
|
|
28
31
|
qrItem: QuestionnaireResponseItem;
|
|
29
32
|
qItemsIndexMap: Record<string, number>;
|
|
30
33
|
}
|
|
31
34
|
|
|
32
|
-
function
|
|
33
|
-
const { qItem, qrItem, qItemsIndexMap, onQrItemChange } = props;
|
|
35
|
+
function GroupTableRow(props: Props) {
|
|
36
|
+
const { qItem, qrItem, qItemsIndexMap, parentIsReadOnly, onQrItemChange } = props;
|
|
34
37
|
|
|
35
38
|
const rowItems = qItem.item;
|
|
36
39
|
const row = qrItem && qrItem.item ? qrItem : createQrGroup(qItem);
|
|
@@ -65,6 +68,7 @@ function QItemGroupTableRow(props: Props) {
|
|
|
65
68
|
qrItem={qrItem}
|
|
66
69
|
isRepeated={true}
|
|
67
70
|
isTabled={true}
|
|
71
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
68
72
|
onQrItemChange={handleQrRowItemChange}
|
|
69
73
|
/>
|
|
70
74
|
</StandardTableCell>
|
|
@@ -74,4 +78,4 @@ function QItemGroupTableRow(props: Props) {
|
|
|
74
78
|
);
|
|
75
79
|
}
|
|
76
80
|
|
|
77
|
-
export default
|
|
81
|
+
export default GroupTableRow;
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
import React, { useCallback } from 'react';
|
|
19
19
|
import type {
|
|
20
20
|
PropsWithIsRepeatedAttribute,
|
|
21
|
+
PropsWithParentIsReadOnlyAttribute,
|
|
21
22
|
PropsWithQrItemChangeHandler
|
|
22
23
|
} from '../../../interfaces/renderProps.interface';
|
|
23
24
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
@@ -31,23 +32,24 @@ import TextField from './TextField';
|
|
|
31
32
|
import useStringCalculatedExpression from '../../../hooks/useStringCalculatedExpression';
|
|
32
33
|
import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
|
|
33
34
|
import useStringInput from '../../../hooks/useStringInput';
|
|
35
|
+
import useReadOnly from '../../../hooks/useReadOnly';
|
|
34
36
|
|
|
35
37
|
interface TextItemProps
|
|
36
38
|
extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
|
|
37
|
-
PropsWithIsRepeatedAttribute
|
|
39
|
+
PropsWithIsRepeatedAttribute,
|
|
40
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
38
41
|
qItem: QuestionnaireItem;
|
|
39
42
|
qrItem: QuestionnaireResponseItem;
|
|
40
43
|
}
|
|
41
44
|
|
|
42
45
|
function TextItem(props: TextItemProps) {
|
|
43
|
-
const { qItem, qrItem, isRepeated, onQrItemChange } = props;
|
|
46
|
+
const { qItem, qrItem, isRepeated, parentIsReadOnly, onQrItemChange } = props;
|
|
44
47
|
|
|
45
|
-
|
|
48
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
46
49
|
const {
|
|
47
50
|
displayUnit,
|
|
48
51
|
displayPrompt,
|
|
49
52
|
displayInstructions,
|
|
50
|
-
readOnly,
|
|
51
53
|
entryFormat,
|
|
52
54
|
regexValidation,
|
|
53
55
|
maxLength
|
|
@@ -109,7 +111,7 @@ function TextItem(props: TextItemProps) {
|
|
|
109
111
|
}
|
|
110
112
|
return (
|
|
111
113
|
<FullWidthFormComponentBox data-test="q-item-text-box">
|
|
112
|
-
<ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions}>
|
|
114
|
+
<ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions} readOnly={readOnly}>
|
|
113
115
|
<TextField
|
|
114
116
|
linkId={qItem.linkId}
|
|
115
117
|
input={input}
|
|
@@ -19,6 +19,7 @@ import React from 'react';
|
|
|
19
19
|
import type {
|
|
20
20
|
PropsWithIsRepeatedAttribute,
|
|
21
21
|
PropsWithIsTabledAttribute,
|
|
22
|
+
PropsWithParentIsReadOnlyAttribute,
|
|
22
23
|
PropsWithQrItemChangeHandler
|
|
23
24
|
} from '../../../interfaces/renderProps.interface';
|
|
24
25
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
@@ -29,21 +30,22 @@ import TimeField from './TimeField';
|
|
|
29
30
|
import type { Dayjs } from 'dayjs';
|
|
30
31
|
import dayjs from 'dayjs';
|
|
31
32
|
import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
|
|
33
|
+
import useReadOnly from '../../../hooks/useReadOnly';
|
|
32
34
|
|
|
33
35
|
interface TimeItemProps
|
|
34
36
|
extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
|
|
35
37
|
PropsWithIsRepeatedAttribute,
|
|
36
|
-
PropsWithIsTabledAttribute
|
|
38
|
+
PropsWithIsTabledAttribute,
|
|
39
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
37
40
|
qItem: QuestionnaireItem;
|
|
38
41
|
qrItem: QuestionnaireResponseItem;
|
|
39
42
|
}
|
|
40
43
|
|
|
41
44
|
function TimeItem(props: TimeItemProps) {
|
|
42
|
-
const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
|
|
45
|
+
const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
|
|
43
46
|
|
|
44
|
-
|
|
45
|
-
const { displayPrompt, displayInstructions,
|
|
46
|
-
useRenderingExtensions(qItem);
|
|
47
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
48
|
+
const { displayPrompt, displayInstructions, entryFormat } = useRenderingExtensions(qItem);
|
|
47
49
|
|
|
48
50
|
// Init input value
|
|
49
51
|
let timeString: string | null = null;
|
|
@@ -77,7 +79,7 @@ function TimeItem(props: TimeItemProps) {
|
|
|
77
79
|
|
|
78
80
|
return (
|
|
79
81
|
<FullWidthFormComponentBox>
|
|
80
|
-
<ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions}>
|
|
82
|
+
<ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions} readOnly={readOnly}>
|
|
81
83
|
<TimeField
|
|
82
84
|
value={timeDayJs}
|
|
83
85
|
displayPrompt={displayPrompt}
|
|
@@ -19,6 +19,7 @@ import React, { useCallback, useState } from 'react';
|
|
|
19
19
|
import type {
|
|
20
20
|
PropsWithIsRepeatedAttribute,
|
|
21
21
|
PropsWithIsTabledAttribute,
|
|
22
|
+
PropsWithParentIsReadOnlyAttribute,
|
|
22
23
|
PropsWithQrItemChangeHandler
|
|
23
24
|
} from '../../../interfaces/renderProps.interface';
|
|
24
25
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
@@ -30,23 +31,24 @@ import { DEBOUNCE_DURATION } from '../../../utils/debounce';
|
|
|
30
31
|
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
31
32
|
import UrlField from './UrlField';
|
|
32
33
|
import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
|
|
34
|
+
import useReadOnly from '../../../hooks/useReadOnly';
|
|
33
35
|
|
|
34
36
|
interface UrlItemProps
|
|
35
37
|
extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>,
|
|
36
38
|
PropsWithIsRepeatedAttribute,
|
|
37
|
-
PropsWithIsTabledAttribute
|
|
39
|
+
PropsWithIsTabledAttribute,
|
|
40
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
38
41
|
qItem: QuestionnaireItem;
|
|
39
42
|
qrItem: QuestionnaireResponseItem;
|
|
40
43
|
}
|
|
41
44
|
function UrlItem(props: UrlItemProps) {
|
|
42
|
-
const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
|
|
45
|
+
const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
|
|
43
46
|
|
|
44
|
-
|
|
47
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
45
48
|
const {
|
|
46
49
|
displayUnit,
|
|
47
50
|
displayPrompt,
|
|
48
51
|
displayInstructions,
|
|
49
|
-
readOnly,
|
|
50
52
|
entryFormat,
|
|
51
53
|
regexValidation,
|
|
52
54
|
maxLength
|
|
@@ -98,7 +100,7 @@ function UrlItem(props: UrlItemProps) {
|
|
|
98
100
|
}
|
|
99
101
|
return (
|
|
100
102
|
<FullWidthFormComponentBox data-test="q-item-string-box">
|
|
101
|
-
<ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions}>
|
|
103
|
+
<ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions} readOnly={readOnly}>
|
|
102
104
|
<UrlField
|
|
103
105
|
linkId={qItem.linkId}
|
|
104
106
|
input={input}
|
|
@@ -61,7 +61,7 @@ function FormBodyTabbed(props: FormBodyTabbedProps) {
|
|
|
61
61
|
<Grid container spacing={2}>
|
|
62
62
|
<TabContext value={currentTab.toString()}>
|
|
63
63
|
<Grid item xs={12} md={3.5} lg={3} xl={2.75}>
|
|
64
|
-
<FormBodyTabListWrapper
|
|
64
|
+
<FormBodyTabListWrapper topLevelItems={qItems} currentTabIndex={currentTab} tabs={tabs} />
|
|
65
65
|
</Grid>
|
|
66
66
|
|
|
67
67
|
<Grid item xs={12} md={8.5} lg={9} xl={9.25}>
|