@aehrc/smart-forms-renderer 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/FormComponents/BooleanItem/BooleanItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.d.ts +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +12 -12
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.d.ts +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +12 -12
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.d.ts +3 -4
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.d.ts +2 -2
- package/lib/components/FormComponents/CustomDateItem/CustomDateField2.d.ts +18 -0
- package/lib/components/FormComponents/CustomDateItem/CustomDateField2.js +31 -0
- package/lib/components/FormComponents/CustomDateItem/CustomDateField2.js.map +1 -0
- package/lib/components/FormComponents/CustomDateItem/CustomDateItem.d.ts +9 -0
- package/lib/components/FormComponents/CustomDateItem/CustomDateItem.js +68 -0
- package/lib/components/FormComponents/CustomDateItem/CustomDateItem.js.map +1 -0
- package/lib/components/FormComponents/CustomDateItem/CustomDateTimeField.d.ts +9 -0
- package/lib/components/FormComponents/CustomDateItem/CustomDateTimeField.js +75 -0
- package/lib/components/FormComponents/CustomDateItem/CustomDateTimeField.js.map +1 -0
- package/lib/components/FormComponents/CustomDateItem/CustomDateTimePickerText2.d.ts +9 -0
- package/lib/components/FormComponents/CustomDateItem/CustomDateTimePickerText2.js +75 -0
- package/lib/components/FormComponents/CustomDateItem/CustomDateTimePickerText2.js.map +1 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.d.ts +18 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.js +33 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.js.map +1 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.d.ts +11 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.js +55 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.js.map +1 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.d.ts +9 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.js +13 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.js.map +1 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.d.ts +5 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.js +20 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.js.map +1 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/hooks/useParseDates.d.ts +5 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/hooks/useParseDates.js +27 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/hooks/useParseDates.js.map +1 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/index.d.ts +1 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/index.js +18 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/index.js.map +1 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.d.ts +1 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.js +18 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.js.map +1 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.d.ts +9 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.js +121 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.js.map +1 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePickerText.d.ts +9 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePickerText.js +71 -0
- package/lib/components/FormComponents/CustomDateItem/customDateTimePickerText.js.map +1 -0
- package/lib/components/FormComponents/CustomDateItem/index.d.ts +1 -0
- package/lib/components/FormComponents/CustomDateItem/index.js +18 -0
- package/lib/components/FormComponents/CustomDateItem/index.js.map +1 -0
- package/lib/components/FormComponents/DateItem/DateItem.d.ts +3 -4
- package/lib/components/FormComponents/DateTimeItem/DateTimeItem.d.ts +2 -2
- package/lib/components/FormComponents/DecimalItem/DecimalItem.d.ts +2 -2
- package/lib/components/FormComponents/DecimalItem/DecimalItem.js +2 -3
- package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
- package/lib/components/FormComponents/DisplayItem/DisplayBox.d.ts +0 -0
- package/lib/components/FormComponents/DisplayItem/DisplayBox.js +2 -0
- package/lib/components/FormComponents/DisplayItem/DisplayBox.js.map +1 -0
- package/lib/components/FormComponents/DisplayItem/DisplayBox.styles.d.ts +4 -0
- package/lib/components/FormComponents/DisplayItem/DisplayBox.styles.js +35 -0
- package/lib/components/FormComponents/DisplayItem/DisplayBox.styles.js.map +1 -0
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.d.ts +2 -1
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js.map +1 -1
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js +0 -1
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/GridGroup.d.ts +3 -3
- package/lib/components/FormComponents/GridGroup/GridGroup.js +13 -8
- package/lib/components/FormComponents/GridGroup/GridGroup.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/GridRow.d.ts +3 -4
- package/lib/components/FormComponents/GridGroup/GridRow.js +3 -3
- package/lib/components/FormComponents/GridGroup/GridRow.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/GridTable.d.ts +3 -3
- package/lib/components/FormComponents/GridGroup/GridTable.js +9 -4
- package/lib/components/FormComponents/GridGroup/GridTable.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/index.d.ts +1 -0
- package/lib/components/FormComponents/GridGroup/index.js +18 -0
- package/lib/components/FormComponents/GridGroup/index.js.map +1 -0
- package/lib/components/FormComponents/GroupItem/GroupItem.d.ts +2 -2
- package/lib/components/FormComponents/GroupItem/GroupItem.js +2 -2
- package/lib/components/FormComponents/GroupItem/GroupItem.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.d.ts +2 -2
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +5 -6
- 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 +2 -3
- package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
- package/lib/components/FormComponents/IntegerItem/SliderItem.d.ts +9 -0
- package/lib/components/FormComponents/IntegerItem/SliderItem.js +75 -0
- package/lib/components/FormComponents/IntegerItem/SliderItem.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +2 -2
- package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ItemFieldGrid.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.d.ts +3 -3
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +12 -12
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.d.ts +3 -3
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.d.ts +2 -2
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.d.ts +2 -2
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +15 -4
- 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 +2 -2
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatField.d.ts +3 -3
- package/lib/components/FormComponents/RepeatItem/RepeatField.js +3 -3
- package/lib/components/FormComponents/RepeatItem/RepeatField.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.d.ts +3 -2
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js +11 -2
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/index.d.ts +1 -0
- package/lib/components/FormComponents/RepeatItem/index.js +18 -0
- package/lib/components/FormComponents/RepeatItem/index.js.map +1 -0
- package/lib/components/FormComponents/SingleItem/SingleItem.d.ts +3 -3
- package/lib/components/FormComponents/SingleItem/SingleItem.js +2 -2
- package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
- package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.d.ts +3 -3
- package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js +12 -7
- package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/SliderItem/DisplayBox.styles.d.ts +4 -0
- package/lib/components/FormComponents/SliderItem/DisplayBox.styles.js +35 -0
- package/lib/components/FormComponents/SliderItem/DisplayBox.styles.js.map +1 -0
- package/lib/components/FormComponents/SliderItem/Slider.styles.d.ts +6 -0
- package/lib/components/FormComponents/SliderItem/Slider.styles.js +33 -0
- package/lib/components/FormComponents/SliderItem/Slider.styles.js.map +1 -0
- package/lib/components/FormComponents/SliderItem/SliderDisplayValue.d.ts +8 -0
- package/lib/components/FormComponents/SliderItem/SliderDisplayValue.js +28 -0
- package/lib/components/FormComponents/SliderItem/SliderDisplayValue.js.map +1 -0
- package/lib/components/FormComponents/SliderItem/SliderField.d.ts +16 -0
- package/lib/components/FormComponents/SliderItem/SliderField.js +41 -0
- package/lib/components/FormComponents/SliderItem/SliderField.js.map +1 -0
- package/lib/components/FormComponents/SliderItem/SliderItem.d.ts +9 -0
- package/lib/components/FormComponents/SliderItem/SliderItem.js +56 -0
- package/lib/components/FormComponents/SliderItem/SliderItem.js.map +1 -0
- package/lib/components/FormComponents/SliderItem/SliderLabels.d.ts +7 -0
- package/lib/components/FormComponents/SliderItem/SliderLabels.js +32 -0
- package/lib/components/FormComponents/SliderItem/SliderLabels.js.map +1 -0
- package/lib/components/FormComponents/StringItem/StringItem.d.ts +2 -2
- package/lib/components/FormComponents/Tables/GroupTable.d.ts +3 -2
- package/lib/components/FormComponents/Tables/GroupTable.js +18 -1
- package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTableRow.d.ts +3 -4
- package/lib/components/FormComponents/Tables/GroupTableRow.js +3 -3
- package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -1
- package/lib/components/FormComponents/TextItem/TextItem.d.ts +2 -2
- package/lib/components/FormComponents/TimeItem/TimeItem.d.ts +2 -2
- package/lib/components/FormComponents/UrlItem/UrlItem.d.ts +2 -2
- package/lib/components/FormComponents/index.d.ts +3 -0
- package/lib/components/FormComponents/index.js +3 -0
- package/lib/components/FormComponents/index.js.map +1 -1
- package/lib/components/Renderer/BaseRenderer.js +3 -5
- package/lib/components/Renderer/BaseRenderer.js.map +1 -1
- package/lib/components/Renderer/FormBodyCollapsible.d.ts +2 -2
- package/lib/components/Renderer/FormBodyCollapsible.js +6 -5
- package/lib/components/Renderer/FormBodyCollapsible.js.map +1 -1
- package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.d.ts +2 -2
- package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.js.map +1 -1
- package/lib/components/Renderer/FormBodyTabbed.d.ts +2 -2
- package/lib/components/Renderer/FormBodyTabbed.js +6 -5
- package/lib/components/Renderer/FormBodyTabbed.js.map +1 -1
- package/lib/components/Renderer/FormTopLevelItem.d.ts +2 -2
- package/lib/components/Renderer/FormTopLevelItem.js +3 -1
- package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
- package/lib/hooks/useDateSeparatorValidation.d.ts +2 -0
- package/lib/hooks/useDateSeparatorValidation.js +25 -0
- package/lib/hooks/useDateSeparatorValidation.js.map +1 -0
- package/lib/hooks/useDateValidation.d.ts +2 -0
- package/lib/hooks/useDateValidation.js +61 -0
- package/lib/hooks/useDateValidation.js.map +1 -0
- package/lib/hooks/useDecimalCalculatedExpression.d.ts +0 -1
- package/lib/hooks/useDecimalCalculatedExpression.js +3 -3
- package/lib/hooks/useDecimalCalculatedExpression.js.map +1 -1
- package/lib/hooks/useInitialiseRepeatAnswers.d.ts +1 -1
- package/lib/hooks/useInitialiseRepeatAnswers.js.map +1 -1
- package/lib/hooks/useIntegerCalculatedExpression.d.ts +0 -1
- package/lib/hooks/useIntegerCalculatedExpression.js +3 -3
- package/lib/hooks/useIntegerCalculatedExpression.js.map +1 -1
- package/lib/hooks/useSliderExtensions.d.ts +10 -0
- package/lib/hooks/useSliderExtensions.js +37 -0
- package/lib/hooks/useSliderExtensions.js.map +1 -0
- package/lib/hooks/useTerminologyServerQuery.js +0 -1
- package/lib/hooks/useTerminologyServerQuery.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +15 -6
- package/lib/index.js.map +1 -1
- package/lib/interfaces/index.d.ts +2 -0
- package/lib/interfaces/index.js +18 -0
- package/lib/interfaces/index.js.map +1 -0
- package/lib/interfaces/questionnaireStore.interface.d.ts +1 -0
- package/lib/interfaces/renderProps.interface.d.ts +4 -3
- package/lib/stores/useQuestionnaireStore.d.ts +1 -0
- package/lib/stores/useQuestionnaireStore.js +28 -12
- package/lib/stores/useQuestionnaireStore.js.map +1 -1
- package/lib/test.d.ts +4 -0
- package/lib/test.js +18 -0
- package/lib/test.js.map +1 -0
- package/lib/theme/customGlobalStyles.js +0 -4
- package/lib/theme/customGlobalStyles.js.map +1 -1
- package/lib/utils/calculatedExpression.d.ts +5 -1
- package/lib/utils/calculatedExpression.js +21 -16
- package/lib/utils/calculatedExpression.js.map +1 -1
- package/lib/utils/dayjsExtend.d.ts +1 -0
- package/lib/utils/dayjsExtend.js +22 -0
- package/lib/utils/dayjsExtend.js.map +1 -0
- package/lib/utils/enableWhenExpression.d.ts +5 -1
- package/lib/utils/enableWhenExpression.js +26 -21
- package/lib/utils/enableWhenExpression.js.map +1 -1
- package/lib/utils/fhirpath.d.ts +3 -1
- package/lib/utils/fhirpath.js +25 -15
- package/lib/utils/fhirpath.js.map +1 -1
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +1 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/initialiseForm.d.ts +2 -0
- package/lib/utils/initialiseForm.js +13 -5
- package/lib/utils/initialiseForm.js.map +1 -1
- package/lib/utils/itemControl.d.ts +12 -0
- package/lib/utils/itemControl.js +30 -0
- package/lib/utils/itemControl.js.map +1 -1
- package/lib/utils/launchContext.d.ts +0 -0
- package/lib/utils/launchContext.js +2 -0
- package/lib/utils/launchContext.js.map +1 -0
- package/lib/utils/mapItem.d.ts +1 -1
- package/lib/utils/qrItem.d.ts +1 -7
- package/lib/utils/qrItem.js +1 -12
- package/lib/utils/qrItem.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +4 -2
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -1
- package/lib/utils/removeHidden.js +2 -1
- package/lib/utils/removeHidden.js.map +1 -1
- package/lib/utils/repopulateIntoResponse.js +90 -29
- package/lib/utils/repopulateIntoResponse.js.map +1 -1
- package/lib/utils/repopulateItems.d.ts +14 -1
- package/lib/utils/repopulateItems.js +251 -70
- package/lib/utils/repopulateItems.js.map +1 -1
- package/lib/utils/repopulateRepeatGroup.js +9 -1
- package/lib/utils/repopulateRepeatGroup.js.map +1 -1
- package/lib/utils/slider.d.ts +28 -0
- package/lib/utils/slider.js +89 -0
- package/lib/utils/slider.js.map +1 -0
- package/package.json +11 -9
- package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +2 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +2 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +33 -33
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +35 -35
- package/src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx +8 -8
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +2 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +2 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +2 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +2 -2
- package/src/components/FormComponents/CustomDateItem/CustomDateItem.tsx +140 -0
- package/src/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.tsx +96 -0
- package/src/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.tsx +81 -0
- package/src/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.tsx +33 -0
- package/src/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.ts +22 -0
- package/src/components/FormComponents/CustomDateItem/customDateTimePicker/index.ts +18 -0
- package/src/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.ts +18 -0
- package/src/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.ts +154 -0
- package/src/components/FormComponents/CustomDateItem/index.ts +18 -0
- package/src/components/FormComponents/DateItem/DateItem.tsx +3 -3
- package/src/components/FormComponents/DateTimeItem/DateTimeItem.tsx +2 -2
- package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +4 -5
- package/src/components/FormComponents/DisplayItem/DisplayInstructions.styles.ts +0 -1
- package/src/components/FormComponents/DisplayItem/DisplayInstructions.tsx +2 -1
- package/src/components/FormComponents/GridGroup/GridGroup.tsx +41 -15
- package/src/components/FormComponents/GridGroup/GridRow.tsx +10 -9
- package/src/components/FormComponents/GridGroup/GridTable.tsx +29 -9
- package/src/components/FormComponents/GridGroup/index.ts +18 -0
- package/src/components/FormComponents/GroupItem/GroupItem.tsx +5 -6
- package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +7 -8
- package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +4 -5
- package/src/components/FormComponents/ItemParts/FadingCheckIcon.tsx +2 -2
- package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +2 -2
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +2 -2
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +43 -43
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx +6 -6
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +2 -2
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +2 -2
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +2 -2
- package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +49 -6
- package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.tsx +13 -8
- package/src/components/FormComponents/RepeatItem/RepeatField.tsx +15 -9
- package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +33 -3
- package/src/components/FormComponents/RepeatItem/index.ts +18 -0
- package/src/components/FormComponents/SingleItem/SingleItem.tsx +6 -6
- package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +27 -11
- package/src/components/FormComponents/SliderItem/Slider.styles.ts +34 -0
- package/src/components/FormComponents/SliderItem/SliderDisplayValue.tsx +43 -0
- package/src/components/FormComponents/SliderItem/SliderField.tsx +88 -0
- package/src/components/FormComponents/SliderItem/SliderItem.tsx +115 -0
- package/src/components/FormComponents/SliderItem/SliderLabels.tsx +53 -0
- package/src/components/FormComponents/StringItem/StringItem.tsx +2 -2
- package/src/components/FormComponents/Tables/GroupTable.tsx +55 -3
- package/src/components/FormComponents/Tables/GroupTableRow.tsx +10 -9
- package/src/components/FormComponents/TextItem/TextItem.tsx +2 -2
- package/src/components/FormComponents/TimeItem/TimeItem.tsx +2 -2
- package/src/components/FormComponents/UrlItem/UrlItem.tsx +2 -2
- package/src/components/FormComponents/index.ts +3 -0
- package/src/components/Renderer/BaseRenderer.tsx +5 -12
- package/src/components/Renderer/FormBodyCollapsible.tsx +9 -7
- package/src/components/Renderer/FormBodySingleCollapsibleWrapper.tsx +2 -3
- package/src/components/Renderer/FormBodyTabbed.tsx +9 -7
- package/src/components/Renderer/FormTopLevelItem.tsx +14 -11
- package/src/hooks/useDateValidation.tsx +79 -0
- package/src/hooks/useDecimalCalculatedExpression.ts +3 -4
- package/src/hooks/useInitialiseRepeatAnswers.ts +1 -1
- package/src/hooks/useIntegerCalculatedExpression.ts +3 -4
- package/src/hooks/useSliderExtensions.ts +50 -0
- package/src/hooks/useTerminologyServerQuery.ts +0 -2
- package/src/index.ts +12 -9
- package/src/interfaces/questionnaireStore.interface.ts +1 -0
- package/src/interfaces/renderProps.interface.ts +4 -3
- package/src/stores/useQuestionnaireStore.ts +39 -16
- package/src/theme/customGlobalStyles.tsx +0 -4
- package/src/utils/calculatedExpression.ts +41 -28
- package/src/utils/dayjsExtend.ts +23 -0
- package/src/utils/enableWhenExpression.ts +49 -34
- package/src/utils/fhirpath.ts +50 -31
- package/src/utils/index.ts +1 -0
- package/src/utils/initialiseForm.ts +15 -5
- package/src/utils/itemControl.ts +32 -0
- package/src/utils/mapItem.ts +1 -1
- package/src/utils/qrItem.ts +1 -16
- package/src/utils/questionnaireStoreUtils/createQuestionaireModel.ts +4 -2
- package/src/utils/removeHidden.ts +2 -1
- package/src/utils/repopulateIntoResponse.ts +134 -43
- package/src/utils/repopulateItems.ts +379 -101
- package/src/utils/slider.ts +112 -0
- package/src/utils/repopulateRepeatGroup.ts +0 -68
|
@@ -22,10 +22,9 @@ import type {
|
|
|
22
22
|
PropsWithQrRepeatGroupChangeHandler
|
|
23
23
|
} from '../../../interfaces/renderProps.interface';
|
|
24
24
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
25
|
-
import { isSpecificItemControl } from '../../../utils';
|
|
25
|
+
import { isRepeatItemAndNotCheckbox, isSpecificItemControl } from '../../../utils';
|
|
26
26
|
import GroupTable from '../Tables/GroupTable';
|
|
27
27
|
import RepeatGroup from '../RepeatGroup/RepeatGroup';
|
|
28
|
-
import { isRepeatItemAndNotCheckbox } from '../../../utils/qItem';
|
|
29
28
|
import RepeatItem from '../RepeatItem/RepeatItem';
|
|
30
29
|
import SingleItem from '../SingleItem/SingleItem';
|
|
31
30
|
import useHidden from '../../../hooks/useHidden';
|
|
@@ -33,11 +32,11 @@ import GroupItem from './GroupItem';
|
|
|
33
32
|
import GridGroup from '../GridGroup/GridGroup';
|
|
34
33
|
|
|
35
34
|
interface GroupItemSwitcherProps
|
|
36
|
-
extends PropsWithQrItemChangeHandler
|
|
35
|
+
extends PropsWithQrItemChangeHandler,
|
|
37
36
|
PropsWithQrRepeatGroupChangeHandler,
|
|
38
37
|
PropsWithParentIsReadOnlyAttribute {
|
|
39
38
|
qItem: QuestionnaireItem;
|
|
40
|
-
qrItemOrItems: QuestionnaireResponseItem | QuestionnaireResponseItem[];
|
|
39
|
+
qrItemOrItems: QuestionnaireResponseItem | QuestionnaireResponseItem[] | undefined;
|
|
41
40
|
groupCardElevation: number;
|
|
42
41
|
}
|
|
43
42
|
|
|
@@ -97,7 +96,7 @@ function GroupItemSwitcher(props: GroupItemSwitcherProps) {
|
|
|
97
96
|
return (
|
|
98
97
|
<GridGroup
|
|
99
98
|
qItem={qItem}
|
|
100
|
-
qrItem={qrItem}
|
|
99
|
+
qrItem={qrItem ?? null}
|
|
101
100
|
groupCardElevation={groupCardElevation}
|
|
102
101
|
parentIsReadOnly={parentIsReadOnly}
|
|
103
102
|
onQrItemChange={onQrItemChange}
|
|
@@ -136,7 +135,7 @@ function GroupItemSwitcher(props: GroupItemSwitcherProps) {
|
|
|
136
135
|
return (
|
|
137
136
|
<RepeatItem
|
|
138
137
|
qItem={qItem}
|
|
139
|
-
qrItem={qrItem}
|
|
138
|
+
qrItem={qrItem ?? null}
|
|
140
139
|
parentIsReadOnly={parentIsReadOnly}
|
|
141
140
|
onQrItemChange={onQrItemChange}
|
|
142
141
|
/>
|
|
@@ -148,7 +147,7 @@ function GroupItemSwitcher(props: GroupItemSwitcherProps) {
|
|
|
148
147
|
return (
|
|
149
148
|
<GroupItem
|
|
150
149
|
qItem={qItem}
|
|
151
|
-
qrItem={qrItem}
|
|
150
|
+
qrItem={qrItem ?? null}
|
|
152
151
|
isRepeated={false}
|
|
153
152
|
groupCardElevation={groupCardElevation + 1}
|
|
154
153
|
parentIsReadOnly={parentIsReadOnly}
|
|
@@ -161,7 +160,7 @@ function GroupItemSwitcher(props: GroupItemSwitcherProps) {
|
|
|
161
160
|
return (
|
|
162
161
|
<SingleItem
|
|
163
162
|
qItem={qItem}
|
|
164
|
-
qrItem={qrItem}
|
|
163
|
+
qrItem={qrItem ?? null}
|
|
165
164
|
isRepeated={false}
|
|
166
165
|
isTabled={false}
|
|
167
166
|
parentIsReadOnly={parentIsReadOnly}
|
|
@@ -26,7 +26,7 @@ import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
|
26
26
|
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
27
27
|
import useValidationError from '../../../hooks/useValidationError';
|
|
28
28
|
import debounce from 'lodash.debounce';
|
|
29
|
-
import {
|
|
29
|
+
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
30
30
|
import { DEBOUNCE_DURATION } from '../../../utils/debounce';
|
|
31
31
|
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
32
32
|
import IntegerField from './IntegerField';
|
|
@@ -37,12 +37,12 @@ import useNumberInput from '../../../hooks/useNumberInput';
|
|
|
37
37
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
38
38
|
|
|
39
39
|
interface IntegerItemProps
|
|
40
|
-
extends PropsWithQrItemChangeHandler
|
|
40
|
+
extends PropsWithQrItemChangeHandler,
|
|
41
41
|
PropsWithIsRepeatedAttribute,
|
|
42
42
|
PropsWithIsTabledAttribute,
|
|
43
43
|
PropsWithParentIsReadOnlyAttribute {
|
|
44
44
|
qItem: QuestionnaireItem;
|
|
45
|
-
qrItem: QuestionnaireResponseItem;
|
|
45
|
+
qrItem: QuestionnaireResponseItem | null;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
function IntegerItem(props: IntegerItemProps) {
|
|
@@ -77,7 +77,6 @@ function IntegerItem(props: IntegerItemProps) {
|
|
|
77
77
|
const { calcExpUpdated } = useIntegerCalculatedExpression({
|
|
78
78
|
qItem: qItem,
|
|
79
79
|
inputValue: value,
|
|
80
|
-
displayUnit: displayUnit,
|
|
81
80
|
setInputValue: (newValue) => {
|
|
82
81
|
setValue(newValue);
|
|
83
82
|
},
|
|
@@ -96,7 +95,7 @@ function IntegerItem(props: IntegerItemProps) {
|
|
|
96
95
|
const updateQrItemWithDebounce = useCallback(
|
|
97
96
|
debounce((newValue: number) => {
|
|
98
97
|
onQrItemChange({
|
|
99
|
-
...
|
|
98
|
+
...createEmptyQrItem(qItem),
|
|
100
99
|
answer: [{ valueInteger: newValue }]
|
|
101
100
|
});
|
|
102
101
|
}, DEBOUNCE_DURATION),
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
import React from 'react';
|
|
19
19
|
import Fade from '@mui/material/Fade';
|
|
20
|
-
import
|
|
20
|
+
import SyncIcon from '@mui/icons-material/Sync';
|
|
21
21
|
|
|
22
22
|
interface FadingCheckIconProps {
|
|
23
23
|
fadeIn: boolean;
|
|
@@ -28,7 +28,7 @@ function FadingCheckIcon(props: FadingCheckIconProps) {
|
|
|
28
28
|
|
|
29
29
|
return (
|
|
30
30
|
<Fade in={fadeIn} timeout={{ enter: 100, exit: 300 }}>
|
|
31
|
-
<
|
|
31
|
+
<SyncIcon color="success" fontSize="small" />
|
|
32
32
|
</Fade>
|
|
33
33
|
);
|
|
34
34
|
}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import type { ReactNode } from 'react';
|
|
18
|
+
import type { ReactElement, ReactNode } from 'react';
|
|
19
19
|
import React from 'react';
|
|
20
20
|
import Grid from '@mui/material/Grid';
|
|
21
21
|
import type { QuestionnaireItem } from 'fhir/r4';
|
|
@@ -25,7 +25,7 @@ import LabelWrapper from './ItemLabelWrapper';
|
|
|
25
25
|
interface ItemFieldGridProps {
|
|
26
26
|
children: ReactNode;
|
|
27
27
|
qItem: QuestionnaireItem;
|
|
28
|
-
displayInstructions: string;
|
|
28
|
+
displayInstructions: string | ReactElement;
|
|
29
29
|
readOnly: boolean;
|
|
30
30
|
}
|
|
31
31
|
|
|
@@ -38,12 +38,12 @@ import OpenChoiceAutocompleteField from './OpenChoiceAutocompleteField';
|
|
|
38
38
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
39
39
|
|
|
40
40
|
interface OpenChoiceAutocompleteItemProps
|
|
41
|
-
extends PropsWithQrItemChangeHandler
|
|
41
|
+
extends PropsWithQrItemChangeHandler,
|
|
42
42
|
PropsWithIsRepeatedAttribute,
|
|
43
43
|
PropsWithIsTabledAttribute,
|
|
44
44
|
PropsWithParentIsReadOnlyAttribute {
|
|
45
45
|
qItem: QuestionnaireItem;
|
|
46
|
-
qrItem: QuestionnaireResponseItem;
|
|
46
|
+
qrItem: QuestionnaireResponseItem | null;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
function OpenChoiceAutocompleteItem(props: OpenChoiceAutocompleteItemProps) {
|
package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx
CHANGED
|
@@ -33,7 +33,7 @@ import type {
|
|
|
33
33
|
PropsWithIsRepeatedAttribute,
|
|
34
34
|
PropsWithParentIsReadOnlyAttribute,
|
|
35
35
|
PropsWithQrItemChangeHandler,
|
|
36
|
-
|
|
36
|
+
PropsWithShowMinimalViewAttribute
|
|
37
37
|
} from '../../../interfaces/renderProps.interface';
|
|
38
38
|
import { DEBOUNCE_DURATION } from '../../../utils/debounce';
|
|
39
39
|
import DisplayInstructions from '../DisplayItem/DisplayInstructions';
|
|
@@ -42,12 +42,12 @@ import OpenChoiceCheckboxAnswerOptionFields from './OpenChoiceCheckboxAnswerOpti
|
|
|
42
42
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
43
43
|
|
|
44
44
|
interface OpenChoiceCheckboxAnswerOptionItemProps
|
|
45
|
-
extends PropsWithQrItemChangeHandler
|
|
45
|
+
extends PropsWithQrItemChangeHandler,
|
|
46
46
|
PropsWithIsRepeatedAttribute,
|
|
47
|
-
|
|
47
|
+
PropsWithShowMinimalViewAttribute,
|
|
48
48
|
PropsWithParentIsReadOnlyAttribute {
|
|
49
49
|
qItem: QuestionnaireItem;
|
|
50
|
-
qrItem: QuestionnaireResponseItem;
|
|
50
|
+
qrItem: QuestionnaireResponseItem | null;
|
|
51
51
|
orientation: ChoiceItemOrientation;
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -57,7 +57,7 @@ function OpenChoiceCheckboxAnswerOptionItem(props: OpenChoiceCheckboxAnswerOptio
|
|
|
57
57
|
qrItem,
|
|
58
58
|
orientation,
|
|
59
59
|
isRepeated,
|
|
60
|
-
|
|
60
|
+
showMinimalView = false,
|
|
61
61
|
parentIsReadOnly,
|
|
62
62
|
onQrItemChange
|
|
63
63
|
} = props;
|
|
@@ -137,49 +137,49 @@ function OpenChoiceCheckboxAnswerOptionItem(props: OpenChoiceCheckboxAnswerOptio
|
|
|
137
137
|
updateOpenLabelValueWithDebounce(newValue);
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
-
if (
|
|
140
|
+
if (showMinimalView) {
|
|
141
141
|
return (
|
|
142
|
-
|
|
143
|
-
<
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
onOpenLabelCheckedChange={handleOpenLabelCheckedChange}
|
|
158
|
-
onOpenLabelInputChange={handleOpenLabelInputChange}
|
|
159
|
-
/>
|
|
160
|
-
<DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
|
|
161
|
-
</Grid>
|
|
162
|
-
</Grid>
|
|
163
|
-
</FullWidthFormComponentBox>
|
|
142
|
+
<>
|
|
143
|
+
<OpenChoiceCheckboxAnswerOptionFields
|
|
144
|
+
qItem={qItem}
|
|
145
|
+
answers={answers}
|
|
146
|
+
openLabelText={openLabelText}
|
|
147
|
+
openLabelValue={openLabelValue}
|
|
148
|
+
openLabelChecked={openLabelChecked}
|
|
149
|
+
readOnly={readOnly}
|
|
150
|
+
orientation={orientation}
|
|
151
|
+
onValueChange={handleValueChange}
|
|
152
|
+
onOpenLabelCheckedChange={handleOpenLabelCheckedChange}
|
|
153
|
+
onOpenLabelInputChange={handleOpenLabelInputChange}
|
|
154
|
+
/>
|
|
155
|
+
<DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
|
|
156
|
+
</>
|
|
164
157
|
);
|
|
165
158
|
}
|
|
166
159
|
|
|
167
160
|
return (
|
|
168
|
-
|
|
169
|
-
<
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
161
|
+
<FullWidthFormComponentBox data-test="q-item-open-choice-checkbox-answer-option-box">
|
|
162
|
+
<Grid container columnSpacing={6}>
|
|
163
|
+
<Grid item xs={5}>
|
|
164
|
+
<LabelWrapper qItem={qItem} readOnly={readOnly} />
|
|
165
|
+
</Grid>
|
|
166
|
+
<Grid item xs={7}>
|
|
167
|
+
<OpenChoiceCheckboxAnswerOptionFields
|
|
168
|
+
qItem={qItem}
|
|
169
|
+
answers={answers}
|
|
170
|
+
openLabelText={openLabelText}
|
|
171
|
+
openLabelValue={openLabelValue}
|
|
172
|
+
openLabelChecked={openLabelChecked}
|
|
173
|
+
readOnly={readOnly}
|
|
174
|
+
orientation={orientation}
|
|
175
|
+
onValueChange={handleValueChange}
|
|
176
|
+
onOpenLabelCheckedChange={handleOpenLabelCheckedChange}
|
|
177
|
+
onOpenLabelInputChange={handleOpenLabelInputChange}
|
|
178
|
+
/>
|
|
179
|
+
<DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
|
|
180
|
+
</Grid>
|
|
181
|
+
</Grid>
|
|
182
|
+
</FullWidthFormComponentBox>
|
|
183
183
|
);
|
|
184
184
|
}
|
|
185
185
|
|
|
@@ -30,21 +30,21 @@ import type {
|
|
|
30
30
|
PropsWithIsTabledAttribute,
|
|
31
31
|
PropsWithParentIsReadOnlyAttribute,
|
|
32
32
|
PropsWithQrItemChangeHandler,
|
|
33
|
-
|
|
33
|
+
PropsWithShowMinimalViewAttribute
|
|
34
34
|
} from '../../../interfaces/renderProps.interface';
|
|
35
35
|
|
|
36
36
|
interface OpenChoiceItemSwitcherProps
|
|
37
|
-
extends PropsWithQrItemChangeHandler
|
|
37
|
+
extends PropsWithQrItemChangeHandler,
|
|
38
38
|
PropsWithIsRepeatedAttribute,
|
|
39
39
|
PropsWithIsTabledAttribute,
|
|
40
|
-
|
|
40
|
+
PropsWithShowMinimalViewAttribute,
|
|
41
41
|
PropsWithParentIsReadOnlyAttribute {
|
|
42
42
|
qItem: QuestionnaireItem;
|
|
43
|
-
qrItem: QuestionnaireResponseItem;
|
|
43
|
+
qrItem: QuestionnaireResponseItem | null;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
function OpenChoiceItemSwitcher(props: OpenChoiceItemSwitcherProps) {
|
|
47
|
-
const { qItem, qrItem, isRepeated, isTabled,
|
|
47
|
+
const { qItem, qrItem, isRepeated, isTabled, showMinimalView, parentIsReadOnly, onQrItemChange } =
|
|
48
48
|
props;
|
|
49
49
|
|
|
50
50
|
const orientation = getChoiceOrientation(qItem);
|
|
@@ -57,7 +57,7 @@ function OpenChoiceItemSwitcher(props: OpenChoiceItemSwitcherProps) {
|
|
|
57
57
|
qrItem={qrItem}
|
|
58
58
|
orientation={orientation}
|
|
59
59
|
isRepeated={qItem['repeats'] ?? false}
|
|
60
|
-
|
|
60
|
+
showMinimalView={showMinimalView}
|
|
61
61
|
parentIsReadOnly={parentIsReadOnly}
|
|
62
62
|
onQrItemChange={onQrItemChange}
|
|
63
63
|
/>
|
|
@@ -36,11 +36,11 @@ import OpenChoiceRadioAnswerOptionFields from './OpenChoiceRadioAnswerOptionFiel
|
|
|
36
36
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
37
37
|
|
|
38
38
|
interface OpenChoiceRadioAnswerOptionItemProps
|
|
39
|
-
extends PropsWithQrItemChangeHandler
|
|
39
|
+
extends PropsWithQrItemChangeHandler,
|
|
40
40
|
PropsWithIsRepeatedAttribute,
|
|
41
41
|
PropsWithParentIsReadOnlyAttribute {
|
|
42
42
|
qItem: QuestionnaireItem;
|
|
43
|
-
qrItem: QuestionnaireResponseItem;
|
|
43
|
+
qrItem: QuestionnaireResponseItem | null;
|
|
44
44
|
orientation: ChoiceItemOrientation;
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -37,12 +37,12 @@ import OpenChoiceSelectAnswerOptionField from './OpenChoiceSelectAnswerOptionFie
|
|
|
37
37
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
38
38
|
|
|
39
39
|
interface OpenChoiceSelectAnswerOptionItemProps
|
|
40
|
-
extends PropsWithQrItemChangeHandler
|
|
40
|
+
extends PropsWithQrItemChangeHandler,
|
|
41
41
|
PropsWithIsRepeatedAttribute,
|
|
42
42
|
PropsWithIsTabledAttribute,
|
|
43
43
|
PropsWithParentIsReadOnlyAttribute {
|
|
44
44
|
qItem: QuestionnaireItem;
|
|
45
|
-
qrItem: QuestionnaireResponseItem;
|
|
45
|
+
qrItem: QuestionnaireResponseItem | null;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
function OpenChoiceSelectAnswerOptionItem(props: OpenChoiceSelectAnswerOptionItemProps) {
|
package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx
CHANGED
|
@@ -34,12 +34,12 @@ import OpenChoiceSelectAnswerValueSetField from './OpenChoiceSelectAnswerValueSe
|
|
|
34
34
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
35
35
|
|
|
36
36
|
interface OpenChoiceSelectAnswerValueSetItemProps
|
|
37
|
-
extends PropsWithQrItemChangeHandler
|
|
37
|
+
extends PropsWithQrItemChangeHandler,
|
|
38
38
|
PropsWithIsRepeatedAttribute,
|
|
39
39
|
PropsWithIsTabledAttribute,
|
|
40
40
|
PropsWithParentIsReadOnlyAttribute {
|
|
41
41
|
qItem: QuestionnaireItem;
|
|
42
|
-
qrItem: QuestionnaireResponseItem;
|
|
42
|
+
qrItem: QuestionnaireResponseItem | null;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
function OpenChoiceSelectAnswerValueSetItem(props: OpenChoiceSelectAnswerValueSetItemProps) {
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
import React, { useState } from 'react';
|
|
19
19
|
import type {
|
|
20
20
|
PropsWithParentIsReadOnlyAttribute,
|
|
21
|
-
PropsWithQrRepeatGroupChangeHandler
|
|
21
|
+
PropsWithQrRepeatGroupChangeHandler,
|
|
22
|
+
PropsWithShowMinimalViewAttribute
|
|
22
23
|
} from '../../../interfaces/renderProps.interface';
|
|
23
24
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
24
25
|
import useInitialiseRepeatGroups from '../../../hooks/useInitialiseRepeatGroups';
|
|
@@ -38,6 +39,7 @@ import Typography from '@mui/material/Typography';
|
|
|
38
39
|
|
|
39
40
|
interface RepeatGroupProps
|
|
40
41
|
extends PropsWithQrRepeatGroupChangeHandler,
|
|
42
|
+
PropsWithShowMinimalViewAttribute,
|
|
41
43
|
PropsWithParentIsReadOnlyAttribute {
|
|
42
44
|
qItem: QuestionnaireItem;
|
|
43
45
|
qrItems: QuestionnaireResponseItem[];
|
|
@@ -45,7 +47,14 @@ interface RepeatGroupProps
|
|
|
45
47
|
}
|
|
46
48
|
|
|
47
49
|
function RepeatGroup(props: RepeatGroupProps) {
|
|
48
|
-
const {
|
|
50
|
+
const {
|
|
51
|
+
qItem,
|
|
52
|
+
qrItems,
|
|
53
|
+
groupCardElevation,
|
|
54
|
+
showMinimalView,
|
|
55
|
+
parentIsReadOnly,
|
|
56
|
+
onQrRepeatGroupChange
|
|
57
|
+
} = props;
|
|
49
58
|
|
|
50
59
|
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
51
60
|
|
|
@@ -97,13 +106,47 @@ function RepeatGroup(props: RepeatGroupProps) {
|
|
|
97
106
|
]);
|
|
98
107
|
}
|
|
99
108
|
|
|
109
|
+
if (showMinimalView) {
|
|
110
|
+
return (
|
|
111
|
+
<QGroupContainerBox key={qItem.linkId} cardElevation={groupCardElevation} isRepeated={true}>
|
|
112
|
+
<Card elevation={groupCardElevation} sx={{ p: 2 }}>
|
|
113
|
+
{repeatGroups.map(({ nanoId, qrItem: nullableQrItem }, index) => {
|
|
114
|
+
const answeredQrItem = createEmptyQrItem(qItem);
|
|
115
|
+
if (nullableQrItem) {
|
|
116
|
+
answeredQrItem.item = nullableQrItem.item;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return (
|
|
120
|
+
<RepeatGroupItem
|
|
121
|
+
key={nanoId}
|
|
122
|
+
qItem={qItem}
|
|
123
|
+
answeredQrItem={answeredQrItem}
|
|
124
|
+
nullableQrItem={nullableQrItem}
|
|
125
|
+
numOfRepeatGroups={repeatGroups.length}
|
|
126
|
+
groupCardElevation={groupCardElevation + 1}
|
|
127
|
+
showMinimalView={showMinimalView}
|
|
128
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
129
|
+
onDeleteItem={() => handleDeleteItem(index)}
|
|
130
|
+
onQrItemChange={(newQrItem) => handleAnswerChange(newQrItem, index)}
|
|
131
|
+
/>
|
|
132
|
+
);
|
|
133
|
+
})}
|
|
134
|
+
</Card>
|
|
135
|
+
</QGroupContainerBox>
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
|
|
100
139
|
return (
|
|
101
140
|
<QGroupContainerBox key={qItem.linkId} cardElevation={groupCardElevation} isRepeated={true}>
|
|
102
141
|
<Card elevation={groupCardElevation} sx={{ p: 3, py: 2.5, mb: 3.5 }}>
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
142
|
+
{qItem.text ? (
|
|
143
|
+
<>
|
|
144
|
+
<Typography variant="h6" color={readOnly ? 'text.secondary' : 'text.primary'}>
|
|
145
|
+
<LabelWrapper qItem={qItem} readOnly={readOnly} />
|
|
146
|
+
</Typography>
|
|
147
|
+
<Divider sx={{ mt: 1, mb: 1.5 }} light />
|
|
148
|
+
</>
|
|
149
|
+
) : null}
|
|
107
150
|
<TransitionGroup>
|
|
108
151
|
{repeatGroups.map(({ nanoId, qrItem: nullableQrItem }, index) => {
|
|
109
152
|
const answeredQrItem = createEmptyQrItem(qItem);
|
|
@@ -21,14 +21,16 @@ import Box from '@mui/material/Box';
|
|
|
21
21
|
import GroupItem from '../GroupItem/GroupItem';
|
|
22
22
|
import type {
|
|
23
23
|
PropsWithParentIsReadOnlyAttribute,
|
|
24
|
-
PropsWithQrItemChangeHandler
|
|
24
|
+
PropsWithQrItemChangeHandler,
|
|
25
|
+
PropsWithShowMinimalViewAttribute
|
|
25
26
|
} from '../../../interfaces/renderProps.interface';
|
|
26
27
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
27
28
|
import DeleteItemButton from './DeleteItemButton';
|
|
28
29
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
29
30
|
|
|
30
31
|
interface RepeatGroupItemProps
|
|
31
|
-
extends PropsWithQrItemChangeHandler
|
|
32
|
+
extends PropsWithQrItemChangeHandler,
|
|
33
|
+
PropsWithShowMinimalViewAttribute,
|
|
32
34
|
PropsWithParentIsReadOnlyAttribute {
|
|
33
35
|
qItem: QuestionnaireItem;
|
|
34
36
|
answeredQrItem: QuestionnaireResponseItem;
|
|
@@ -45,6 +47,7 @@ function RepeatGroupItem(props: RepeatGroupItemProps) {
|
|
|
45
47
|
nullableQrItem,
|
|
46
48
|
numOfRepeatGroups,
|
|
47
49
|
groupCardElevation,
|
|
50
|
+
showMinimalView,
|
|
48
51
|
parentIsReadOnly,
|
|
49
52
|
onDeleteItem,
|
|
50
53
|
onQrItemChange
|
|
@@ -64,12 +67,14 @@ function RepeatGroupItem(props: RepeatGroupItemProps) {
|
|
|
64
67
|
onQrItemChange={onQrItemChange}
|
|
65
68
|
/>
|
|
66
69
|
</Box>
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
{showMinimalView ? null : (
|
|
71
|
+
<DeleteItemButton
|
|
72
|
+
nullableQrItem={nullableQrItem}
|
|
73
|
+
numOfRepeatGroups={numOfRepeatGroups}
|
|
74
|
+
readOnly={readOnly}
|
|
75
|
+
onDeleteItem={onDeleteItem}
|
|
76
|
+
/>
|
|
77
|
+
)}
|
|
73
78
|
</RepeatGroupContainerStack>
|
|
74
79
|
);
|
|
75
80
|
}
|
|
@@ -26,16 +26,18 @@ import type {
|
|
|
26
26
|
} from 'fhir/r4';
|
|
27
27
|
import type {
|
|
28
28
|
PropsWithParentIsReadOnlyAttribute,
|
|
29
|
-
PropsWithQrItemChangeHandler
|
|
29
|
+
PropsWithQrItemChangeHandler,
|
|
30
|
+
PropsWithShowMinimalViewAttribute
|
|
30
31
|
} from '../../../interfaces/renderProps.interface';
|
|
31
32
|
import DeleteItemButton from './DeleteItemButton';
|
|
32
33
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
33
34
|
|
|
34
35
|
interface RepeatFieldProps
|
|
35
|
-
extends PropsWithQrItemChangeHandler
|
|
36
|
+
extends PropsWithQrItemChangeHandler,
|
|
37
|
+
PropsWithShowMinimalViewAttribute,
|
|
36
38
|
PropsWithParentIsReadOnlyAttribute {
|
|
37
39
|
qItem: QuestionnaireItem;
|
|
38
|
-
qrItem: QuestionnaireResponseItem;
|
|
40
|
+
qrItem: QuestionnaireResponseItem | null;
|
|
39
41
|
answer: QuestionnaireResponseItemAnswer | null;
|
|
40
42
|
numOfRepeatAnswers: number;
|
|
41
43
|
onDeleteAnswer: () => void;
|
|
@@ -48,6 +50,7 @@ function RepeatField(props: RepeatFieldProps) {
|
|
|
48
50
|
answer,
|
|
49
51
|
numOfRepeatAnswers,
|
|
50
52
|
parentIsReadOnly,
|
|
53
|
+
showMinimalView,
|
|
51
54
|
onDeleteAnswer,
|
|
52
55
|
onQrItemChange
|
|
53
56
|
} = props;
|
|
@@ -62,16 +65,19 @@ function RepeatField(props: RepeatFieldProps) {
|
|
|
62
65
|
qrItem={qrItem}
|
|
63
66
|
isRepeated={qItem.repeats ?? false}
|
|
64
67
|
isTabled={false}
|
|
68
|
+
showMinimalView={showMinimalView}
|
|
65
69
|
parentIsReadOnly={parentIsReadOnly}
|
|
66
70
|
onQrItemChange={onQrItemChange}
|
|
67
71
|
/>
|
|
68
72
|
</Box>
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
{showMinimalView ? null : (
|
|
74
|
+
<DeleteItemButton
|
|
75
|
+
answer={answer}
|
|
76
|
+
numOfRepeatAnswers={numOfRepeatAnswers}
|
|
77
|
+
readOnly={readOnly}
|
|
78
|
+
onDeleteAnswer={onDeleteAnswer}
|
|
79
|
+
/>
|
|
80
|
+
)}
|
|
75
81
|
</RepeatItemContainerStack>
|
|
76
82
|
);
|
|
77
83
|
}
|
|
@@ -20,6 +20,7 @@ import type {
|
|
|
20
20
|
PropsWithParentIsReadOnlyAttribute,
|
|
21
21
|
PropsWithQrItemChangeHandler
|
|
22
22
|
} from '../../../interfaces/renderProps.interface';
|
|
23
|
+
import type { PropsWithShowMinimalViewAttribute } from '../../../interfaces/renderProps.interface';
|
|
23
24
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
24
25
|
import { nanoid } from 'nanoid';
|
|
25
26
|
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
@@ -34,14 +35,15 @@ import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
|
|
|
34
35
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
35
36
|
|
|
36
37
|
interface RepeatItemProps
|
|
37
|
-
extends PropsWithQrItemChangeHandler
|
|
38
|
+
extends PropsWithQrItemChangeHandler,
|
|
39
|
+
PropsWithShowMinimalViewAttribute,
|
|
38
40
|
PropsWithParentIsReadOnlyAttribute {
|
|
39
41
|
qItem: QuestionnaireItem;
|
|
40
|
-
qrItem: QuestionnaireResponseItem;
|
|
42
|
+
qrItem: QuestionnaireResponseItem | null;
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
function RepeatItem(props: RepeatItemProps) {
|
|
44
|
-
const { qItem, qrItem, parentIsReadOnly, onQrItemChange } = props;
|
|
46
|
+
const { qItem, qrItem, showMinimalView, parentIsReadOnly, onQrItemChange } = props;
|
|
45
47
|
|
|
46
48
|
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
47
49
|
const { displayInstructions } = useRenderingExtensions(qItem);
|
|
@@ -88,6 +90,33 @@ function RepeatItem(props: RepeatItemProps) {
|
|
|
88
90
|
]);
|
|
89
91
|
}
|
|
90
92
|
|
|
93
|
+
if (showMinimalView) {
|
|
94
|
+
return (
|
|
95
|
+
<>
|
|
96
|
+
{repeatAnswers.map(({ nanoId, answer }, index) => {
|
|
97
|
+
const repeatAnswerQrItem = createEmptyQrItem(qItem);
|
|
98
|
+
if (answer) {
|
|
99
|
+
repeatAnswerQrItem.answer = [answer];
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return (
|
|
103
|
+
<RepeatField
|
|
104
|
+
key={nanoId}
|
|
105
|
+
qItem={qItem}
|
|
106
|
+
qrItem={repeatAnswerQrItem}
|
|
107
|
+
answer={answer}
|
|
108
|
+
numOfRepeatAnswers={repeatAnswers.length}
|
|
109
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
110
|
+
showMinimalView={showMinimalView}
|
|
111
|
+
onDeleteAnswer={() => handleDeleteItem(index)}
|
|
112
|
+
onQrItemChange={(newQrItem) => handleAnswerChange(newQrItem, index)}
|
|
113
|
+
/>
|
|
114
|
+
);
|
|
115
|
+
})}
|
|
116
|
+
</>
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
|
|
91
120
|
return (
|
|
92
121
|
<FullWidthFormComponentBox data-test="q-item-repeat-box">
|
|
93
122
|
<ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions} readOnly={readOnly}>
|
|
@@ -106,6 +135,7 @@ function RepeatItem(props: RepeatItemProps) {
|
|
|
106
135
|
answer={answer}
|
|
107
136
|
numOfRepeatAnswers={repeatAnswers.length}
|
|
108
137
|
parentIsReadOnly={parentIsReadOnly}
|
|
138
|
+
showMinimalView={showMinimalView}
|
|
109
139
|
onDeleteAnswer={() => handleDeleteItem(index)}
|
|
110
140
|
onQrItemChange={(newQrItem) => handleAnswerChange(newQrItem, index)}
|
|
111
141
|
/>
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
export { default as RepeatItem } from './RepeatItem';
|