@aehrc/smart-forms-renderer 0.44.3 → 1.0.0-alpha.10
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/.storybook/main.ts +6 -1
- package/lib/components/FormComponents/AttachmentItem/AttachmentField.js +3 -1
- package/lib/components/FormComponents/AttachmentItem/AttachmentField.js.map +1 -1
- package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.js +2 -5
- package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.js.map +1 -1
- package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.js +3 -1
- package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.js.map +1 -1
- package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.styles.d.ts +1 -0
- package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.styles.js +3 -4
- package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.styles.js.map +1 -1
- package/lib/components/FormComponents/AttachmentItem/AttachmentItem.d.ts +2 -2
- package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js.map +1 -1
- package/lib/components/FormComponents/AttachmentItem/AttachmentUrlField.js +3 -1
- package/lib/components/FormComponents/AttachmentItem/AttachmentUrlField.js.map +1 -1
- package/lib/components/FormComponents/BooleanItem/BooleanField.js +27 -17
- package/lib/components/FormComponents/BooleanItem/BooleanField.js.map +1 -1
- package/lib/components/FormComponents/BooleanItem/BooleanItem.d.ts +2 -2
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js +2 -2
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
- package/lib/components/FormComponents/BooleanItem/index.d.ts +1 -0
- package/lib/components/FormComponents/BooleanItem/index.js +18 -0
- package/lib/components/FormComponents/BooleanItem/index.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js +8 -6
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +4 -4
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +4 -5
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +4 -5
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.d.ts +2 -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.js +7 -13
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js +7 -13
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.d.ts +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.js +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +8 -6
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js +4 -4
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +7 -6
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +4 -4
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/index.d.ts +1 -0
- package/lib/components/FormComponents/ChoiceItems/index.js +18 -0
- package/lib/components/FormComponents/ChoiceItems/index.js.map +1 -0
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.js +3 -1
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.js.map +1 -1
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.d.ts +2 -2
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js +4 -5
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js.map +1 -1
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.d.ts +2 -2
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js +4 -5
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js.map +1 -1
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.js +3 -2
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.js.map +1 -1
- package/lib/components/FormComponents/DecimalItem/DecimalField.js +5 -2
- package/lib/components/FormComponents/DecimalItem/DecimalField.js.map +1 -1
- package/lib/components/FormComponents/DecimalItem/DecimalItem.d.ts +2 -2
- package/lib/components/FormComponents/DecimalItem/DecimalItem.js +4 -5
- package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
- package/lib/components/FormComponents/DisplayItem/DisplayItem.d.ts +2 -1
- package/lib/components/FormComponents/DisplayItem/DisplayItem.js +13 -2
- package/lib/components/FormComponents/DisplayItem/DisplayItem.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupAccordion.styles.d.ts +1 -1
- package/lib/components/FormComponents/GroupItem/GroupHeading.js +10 -2
- package/lib/components/FormComponents/GroupItem/GroupHeading.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItem.d.ts +1 -0
- 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.js +10 -0
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemView.d.ts +1 -0
- package/lib/components/FormComponents/GroupItem/GroupItemView.js +12 -2
- package/lib/components/FormComponents/GroupItem/GroupItemView.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/PageButtonWrapper.js +7 -0
- package/lib/components/FormComponents/GroupItem/PageButtonWrapper.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/index.d.ts +1 -0
- package/lib/components/FormComponents/GroupItem/index.js +18 -0
- package/lib/components/FormComponents/GroupItem/index.js.map +1 -0
- package/lib/components/FormComponents/IntegerItem/IntegerField.js +5 -2
- package/lib/components/FormComponents/IntegerItem/IntegerField.js.map +1 -1
- package/lib/components/FormComponents/IntegerItem/IntegerItem.d.ts +2 -2
- package/lib/components/FormComponents/IntegerItem/IntegerItem.js +4 -5
- package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/CheckboxSingle.js +2 -2
- package/lib/components/FormComponents/ItemParts/CheckboxSingle.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.js +4 -2
- package/lib/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ClearInputButton.d.ts +8 -0
- package/lib/components/FormComponents/ItemParts/ClearInputButton.js +33 -0
- package/lib/components/FormComponents/ItemParts/ClearInputButton.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/ContextDisplayItem.js +1 -1
- package/lib/components/FormComponents/ItemParts/ContextDisplayItem.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/FlyoverItem.d.ts +2 -1
- package/lib/components/FormComponents/ItemParts/FlyoverItem.js +2 -2
- package/lib/components/FormComponents/ItemParts/FlyoverItem.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ItemFieldGrid.d.ts +2 -1
- package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js +9 -8
- package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelText.d.ts +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js +31 -13
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +7 -21
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.js +4 -2
- package/lib/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/RadioOptionList.d.ts +1 -0
- package/lib/components/FormComponents/ItemParts/RadioOptionList.js +4 -4
- package/lib/components/FormComponents/ItemParts/RadioOptionList.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/RequiredAsterisk.d.ts +7 -0
- package/lib/components/FormComponents/ItemParts/RequiredAsterisk.js +35 -0
- package/lib/components/FormComponents/ItemParts/RequiredAsterisk.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/index.d.ts +1 -0
- package/lib/components/FormComponents/ItemParts/index.js +1 -0
- package/lib/components/FormComponents/ItemParts/index.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js +8 -6
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +4 -4
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +4 -5
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js +4 -5
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js +8 -8
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js +4 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.js +4 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js +8 -6
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +4 -4
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js +7 -6
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +4 -4
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.d.ts +1 -1
- package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.js +5 -0
- package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.js.map +1 -1
- package/lib/components/FormComponents/QuantityItem/QuantityField.js +5 -2
- package/lib/components/FormComponents/QuantityItem/QuantityField.js.map +1 -1
- package/lib/components/FormComponents/QuantityItem/QuantityItem.d.ts +2 -2
- package/lib/components/FormComponents/QuantityItem/QuantityItem.js +15 -11
- package/lib/components/FormComponents/QuantityItem/QuantityItem.js.map +1 -1
- package/lib/components/FormComponents/QuantityItem/QuantityUnitField.js +4 -2
- package/lib/components/FormComponents/QuantityItem/QuantityUnitField.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js +3 -3
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
- package/lib/components/FormComponents/SingleItem/NestedSingleItemAccordion.styles.d.ts +1 -1
- package/lib/components/FormComponents/SingleItem/SingleItem.js +1 -1
- 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 +26 -18
- package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/SingleItem/SingleItemView.js +5 -4
- package/lib/components/FormComponents/SingleItem/SingleItemView.js.map +1 -1
- package/lib/components/FormComponents/SingleItem/SingleNestedItems.js +1 -0
- package/lib/components/FormComponents/SingleItem/SingleNestedItems.js.map +1 -1
- package/lib/components/FormComponents/SliderItem/SliderField.js +3 -2
- package/lib/components/FormComponents/SliderItem/SliderField.js.map +1 -1
- package/lib/components/FormComponents/SliderItem/SliderItem.d.ts +2 -2
- package/lib/components/FormComponents/SliderItem/SliderItem.js +3 -3
- package/lib/components/FormComponents/SliderItem/SliderItem.js.map +1 -1
- package/lib/components/FormComponents/StringItem/StringField.js +5 -2
- package/lib/components/FormComponents/StringItem/StringField.js.map +1 -1
- package/lib/components/FormComponents/StringItem/StringItem.d.ts +2 -2
- package/lib/components/FormComponents/StringItem/StringItem.js +4 -5
- package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
- package/lib/components/FormComponents/TextItem/TextField.js +3 -2
- package/lib/components/FormComponents/TextItem/TextField.js.map +1 -1
- package/lib/components/FormComponents/TextItem/TextItem.d.ts +2 -2
- package/lib/components/FormComponents/TextItem/TextItem.js +4 -5
- package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
- package/lib/components/FormComponents/Textfield.styles.d.ts +1 -1
- package/lib/components/FormComponents/Textfield.styles.js +5 -6
- package/lib/components/FormComponents/Textfield.styles.js.map +1 -1
- package/lib/components/FormComponents/TimeItem/TimeField.js +3 -2
- package/lib/components/FormComponents/TimeItem/TimeField.js.map +1 -1
- package/lib/components/FormComponents/TimeItem/TimeItem.d.ts +2 -2
- package/lib/components/FormComponents/TimeItem/TimeItem.js +4 -5
- package/lib/components/FormComponents/TimeItem/TimeItem.js.map +1 -1
- package/lib/components/FormComponents/UrlItem/UrlField.js +7 -1
- package/lib/components/FormComponents/UrlItem/UrlField.js.map +1 -1
- package/lib/components/FormComponents/UrlItem/UrlItem.d.ts +2 -2
- package/lib/components/FormComponents/UrlItem/UrlItem.js +4 -5
- package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -1
- package/lib/components/FormComponents/index.d.ts +6 -0
- package/lib/components/FormComponents/index.js +7 -0
- package/lib/components/FormComponents/index.js.map +1 -1
- package/lib/components/Renderer/BaseRenderer.js +5 -5
- package/lib/components/Renderer/BaseRenderer.js.map +1 -1
- package/lib/components/Renderer/FormTopLevelItem.js +0 -7
- package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.js +3 -1
- package/lib/components/index.js.map +1 -1
- package/lib/hooks/index.d.ts +7 -0
- package/lib/hooks/index.js +8 -0
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/useBuildForm.d.ts +8 -1
- package/lib/hooks/useBuildForm.js +23 -3
- package/lib/hooks/useBuildForm.js.map +1 -1
- package/lib/hooks/useCodingCalculatedExpression.d.ts +2 -1
- package/lib/hooks/useCodingCalculatedExpression.js +1 -1
- package/lib/hooks/useCodingCalculatedExpression.js.map +1 -1
- package/lib/hooks/useHidden.js +8 -0
- package/lib/hooks/useHidden.js.map +1 -1
- package/lib/hooks/useParseXhtml.d.ts +3 -0
- package/lib/hooks/useParseXhtml.js +60 -0
- package/lib/hooks/useParseXhtml.js.map +1 -0
- package/lib/hooks/useReadOnly.d.ts +1 -1
- package/lib/hooks/useReadOnly.js +22 -1
- package/lib/hooks/useReadOnly.js.map +1 -1
- package/lib/hooks/useRenderingExtensions.d.ts +3 -2
- package/lib/hooks/useValidationFeedback.js +5 -3
- package/lib/hooks/useValidationFeedback.js.map +1 -1
- package/lib/hooks/useValueSetCodings.js +7 -1
- package/lib/hooks/useValueSetCodings.js.map +1 -1
- package/lib/hooks/useXhtmlParse.d.ts +4 -0
- package/lib/hooks/useXhtmlParse.js +63 -0
- package/lib/hooks/useXhtmlParse.js.map +1 -0
- package/lib/index.d.ts +6 -6
- package/lib/index.js +4 -4
- package/lib/index.js.map +1 -1
- package/lib/interfaces/index.d.ts +2 -0
- package/lib/interfaces/overrideComponent.interface.d.ts +12 -3
- package/lib/interfaces/qItemOverrideComponent.interface.d.ts +7 -6
- package/lib/interfaces/renderProps.interface.d.ts +4 -0
- package/lib/stores/index.d.ts +2 -0
- package/lib/stores/index.js +1 -0
- package/lib/stores/index.js.map +1 -1
- package/lib/stores/questionnaireStore.d.ts +17 -9
- package/lib/stores/questionnaireStore.js +47 -22
- package/lib/stores/questionnaireStore.js.map +1 -1
- package/lib/stores/rendererStylingStore.d.ts +35 -3
- package/lib/stores/rendererStylingStore.js +20 -4
- package/lib/stores/rendererStylingStore.js.map +1 -1
- package/lib/utils/calculatedExpression.d.ts +5 -4
- package/lib/utils/calculatedExpression.js +76 -55
- package/lib/utils/calculatedExpression.js.map +1 -1
- package/lib/utils/enableWhenExpression.d.ts +10 -8
- package/lib/utils/enableWhenExpression.js +153 -118
- package/lib/utils/enableWhenExpression.js.map +1 -1
- package/lib/utils/fhirpath.d.ts +7 -5
- package/lib/utils/fhirpath.js +105 -72
- package/lib/utils/fhirpath.js.map +1 -1
- package/lib/utils/getExpressionsFromItem.d.ts +2 -1
- package/lib/utils/getExpressionsFromItem.js +1 -1
- package/lib/utils/getExpressionsFromItem.js.map +1 -1
- package/lib/utils/index.d.ts +6 -2
- package/lib/utils/index.js +6 -2
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/initialise.d.ts +3 -2
- package/lib/utils/initialise.js +49 -36
- package/lib/utils/initialise.js.map +1 -1
- package/lib/utils/itemControl.d.ts +4 -1
- package/lib/utils/itemControl.js +27 -0
- package/lib/utils/itemControl.js.map +1 -1
- package/lib/utils/manageForm.d.ts +5 -1
- package/lib/utils/manageForm.js +4 -2
- package/lib/utils/manageForm.js.map +1 -1
- package/lib/utils/misc.d.ts +0 -1
- package/lib/utils/misc.js +1 -1
- package/lib/utils/misc.js.map +1 -1
- package/lib/utils/openChoice.js +2 -10
- package/lib/utils/openChoice.js.map +1 -1
- package/lib/utils/page.d.ts +3 -3
- package/lib/utils/page.js +2 -5
- package/lib/utils/page.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +1 -1
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.d.ts +1 -1
- package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js +166 -150
- package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/extractPages.js +5 -11
- package/lib/utils/questionnaireStoreUtils/extractPages.js.map +1 -1
- package/lib/utils/repopulateItems.js +0 -8
- package/lib/utils/repopulateItems.js.map +1 -1
- package/lib/utils/validateQuestionnaire.js +8 -4
- package/lib/utils/validateQuestionnaire.js.map +1 -1
- package/package.json +3 -3
- package/src/components/FormComponents/AttachmentItem/AttachmentField.tsx +4 -0
- package/src/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.tsx +17 -15
- package/src/components/FormComponents/AttachmentItem/AttachmentFileDropBox.styles.ts +12 -10
- package/src/components/FormComponents/AttachmentItem/AttachmentFileDropBox.tsx +4 -0
- package/src/components/FormComponents/AttachmentItem/AttachmentItem.tsx +3 -1
- package/src/components/FormComponents/AttachmentItem/AttachmentUrlField.tsx +4 -0
- package/src/components/FormComponents/BooleanItem/BooleanField.tsx +87 -30
- package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +20 -11
- package/src/components/FormComponents/BooleanItem/index.ts +18 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.tsx +16 -7
- package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +34 -16
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +19 -11
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +20 -12
- package/src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx +19 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.tsx +10 -20
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +13 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.tsx +17 -11
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx +11 -20
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +21 -13
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioSingle.tsx +5 -4
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +28 -8
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +13 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.tsx +24 -13
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +18 -7
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +32 -14
- package/src/components/FormComponents/ChoiceItems/index.ts +18 -0
- package/src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.tsx +4 -0
- package/src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.tsx +36 -21
- package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.tsx +40 -25
- package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.tsx +4 -19
- package/src/components/FormComponents/DecimalItem/DecimalField.tsx +8 -1
- package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +33 -18
- package/src/components/FormComponents/DecimalItem/index.ts +18 -0
- package/src/components/FormComponents/DisplayItem/DisplayItem.tsx +18 -3
- package/src/components/FormComponents/GroupItem/GroupHeading.tsx +27 -6
- package/src/components/FormComponents/GroupItem/GroupItem.tsx +3 -0
- package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +26 -0
- package/src/components/FormComponents/GroupItem/GroupItemView.tsx +34 -1
- package/src/components/FormComponents/GroupItem/PageButtonWrapper.tsx +8 -0
- package/src/components/FormComponents/GroupItem/index.ts +18 -0
- package/src/components/FormComponents/IntegerItem/IntegerField.tsx +8 -1
- package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +33 -18
- package/src/components/FormComponents/ItemParts/CheckboxSingle.tsx +2 -3
- package/src/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.tsx +4 -1
- package/src/components/FormComponents/ItemParts/ClearInputButton.tsx +52 -0
- package/src/components/FormComponents/ItemParts/ContextDisplayItem.tsx +1 -1
- package/src/components/FormComponents/ItemParts/FlyoverItem.tsx +62 -0
- package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +23 -9
- package/src/components/FormComponents/ItemParts/ItemLabelText.tsx +64 -13
- package/src/components/FormComponents/ItemParts/ItemLabelWrapper.tsx +15 -36
- package/src/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.tsx +11 -1
- package/src/components/FormComponents/ItemParts/RadioOptionList.tsx +5 -1
- package/src/components/FormComponents/ItemParts/RequiredAsterisk.tsx +36 -0
- package/src/components/FormComponents/ItemParts/index.ts +19 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx +16 -7
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +35 -17
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +25 -17
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.tsx +26 -18
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx +19 -2
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.tsx +5 -1
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +22 -14
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.tsx +5 -1
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.tsx +23 -15
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.tsx +16 -8
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +30 -12
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx +24 -9
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +31 -13
- package/src/components/FormComponents/QuantityItem/QuantityComparatorField.tsx +6 -0
- package/src/components/FormComponents/QuantityItem/QuantityField.tsx +8 -1
- package/src/components/FormComponents/QuantityItem/QuantityItem.tsx +56 -35
- package/src/components/FormComponents/QuantityItem/QuantityUnitField.tsx +8 -3
- package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.tsx +1 -1
- package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +34 -28
- package/src/components/FormComponents/SingleItem/SingleItem.tsx +1 -1
- package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +50 -4
- package/src/components/FormComponents/SingleItem/SingleItemView.tsx +14 -11
- package/src/components/FormComponents/SingleItem/SingleNestedItems.tsx +1 -0
- package/src/components/FormComponents/SliderItem/SliderField.tsx +4 -2
- package/src/components/FormComponents/SliderItem/SliderItem.tsx +26 -18
- package/src/components/FormComponents/StringItem/StringField.tsx +8 -1
- package/src/components/FormComponents/StringItem/StringItem.tsx +33 -18
- package/src/components/FormComponents/StringItem/index.ts +18 -0
- package/src/components/FormComponents/TextItem/TextField.tsx +5 -2
- package/src/components/FormComponents/TextItem/TextItem.tsx +25 -17
- package/src/components/FormComponents/Textfield.styles.ts +5 -7
- package/src/components/FormComponents/TimeItem/TimeField.tsx +4 -2
- package/src/components/FormComponents/TimeItem/TimeItem.tsx +29 -14
- package/src/components/FormComponents/UrlItem/UrlField.tsx +14 -1
- package/src/components/FormComponents/UrlItem/UrlItem.tsx +32 -17
- package/src/components/FormComponents/index.ts +8 -0
- package/src/components/Renderer/BaseRenderer.tsx +5 -5
- package/src/components/Renderer/FormBodyPaginated.tsx +127 -0
- package/src/components/Renderer/FormTopLevelItem.tsx +0 -17
- package/src/components/index.ts +11 -1
- package/src/hooks/index.ts +12 -0
- package/src/hooks/useBuildForm.ts +33 -3
- package/src/hooks/useCodingCalculatedExpression.ts +1 -1
- package/src/hooks/useHidden.ts +12 -0
- package/src/hooks/useParseXhtml.tsx +73 -0
- package/src/hooks/useReadOnly.ts +32 -1
- package/src/hooks/useRenderingExtensions.ts +2 -2
- package/src/hooks/useValidationFeedback.ts +11 -3
- package/src/hooks/useValueSetCodings.ts +10 -6
- package/src/index.ts +49 -6
- package/src/interfaces/index.ts +5 -0
- package/src/interfaces/overrideComponent.interface.ts +39 -0
- package/src/interfaces/renderProps.interface.ts +5 -0
- package/src/stores/index.ts +3 -0
- package/src/stores/questionnaireStore.ts +73 -31
- package/src/stores/rendererStylingStore.ts +120 -0
- package/src/stories/assets/questionnaires/QQuantity.ts +45 -6
- package/src/stories/itemTypes/Attachment.stories.tsx +1 -1
- package/src/stories/itemTypes/Boolean.stories.tsx +1 -1
- package/src/stories/itemTypes/Choice.stories.tsx +1 -1
- package/src/stories/itemTypes/Date.stories.tsx +1 -1
- package/src/stories/itemTypes/DateTime.stories.tsx +1 -1
- package/src/stories/itemTypes/Decimal.stories.tsx +1 -1
- package/src/stories/itemTypes/Display.stories.tsx +1 -1
- package/src/stories/itemTypes/Group.stories.tsx +1 -1
- package/src/stories/itemTypes/Integer.stories.tsx +1 -1
- package/src/stories/itemTypes/OpenChoice.stories.tsx +1 -1
- package/src/stories/itemTypes/Quantity.stories.tsx +1 -1
- package/src/stories/itemTypes/Reference.stories.tsx +1 -1
- package/src/stories/itemTypes/String.stories.tsx +1 -1
- package/src/stories/itemTypes/Text.stories.tsx +1 -1
- package/src/stories/itemTypes/Time.stories.tsx +1 -1
- package/src/stories/itemTypes/Url.stories.tsx +1 -1
- package/src/stories/sdc/AdvancedAdditionalDisplayContent.stories.tsx +1 -1
- package/src/stories/sdc/AdvancedControlAppearance.stories.tsx +1 -1
- package/src/stories/sdc/AdvancedOther.stories.tsx +1 -1
- package/src/stories/sdc/AdvancedTextAppearance.stories.tsx +1 -1
- package/src/stories/sdc/BehaviorCalculations.stories.tsx +1 -1
- package/src/stories/sdc/BehaviorChoiceRestriction.stories.tsx +1 -1
- package/src/stories/sdc/BehaviorOther.stories.tsx +1 -1
- package/src/stories/sdc/BehaviorValueConstraints.stories.tsx +1 -1
- package/src/stories/sdc/FormPopulation.stories.tsx +1 -1
- package/src/stories/sdc/ItemControlDisplay.stories.tsx +1 -1
- package/src/stories/sdc/ItemControlGroup.stories.tsx +1 -1
- package/src/stories/sdc/ItemControlQuestion.stories.tsx +1 -1
- package/src/stories/sdc/OtherExtensions.stories.tsx +1 -1
- package/src/stories/testing/AuCoreTester.stories.tsx +1 -1
- package/src/stories/testing/BuildFormButtonTesterWrapper.stories.tsx +1 -1
- package/src/stories/testing/GroupTableTester.stories.tsx +1 -1
- package/src/stories/testing/IdRemoverDebuggerWrapper.stories.tsx +1 -1
- package/src/stories/testing/Mbs715Tester.stories.tsx +1 -1
- package/src/stories/testing/PrePopButtonTesterWrapper.stories.tsx +1 -1
- package/src/stories/testing/ValidateFormTesterWrapper.stories.tsx +1 -1
- package/src/utils/calculatedExpression.ts +29 -15
- package/src/utils/enableWhenExpression.ts +91 -48
- package/src/utils/fhirpath.ts +64 -27
- package/src/utils/getExpressionsFromItem.ts +1 -1
- package/src/utils/index.ts +8 -2
- package/src/utils/initialise.ts +11 -7
- package/src/utils/itemControl.ts +38 -1
- package/src/utils/manageForm.ts +16 -2
- package/src/utils/misc.ts +1 -1
- package/src/utils/openChoice.ts +2 -13
- package/src/utils/page.ts +4 -11
- package/src/utils/questionnaireStoreUtils/createQuestionaireModel.ts +1 -1
- package/src/utils/questionnaireStoreUtils/extractOtherExtensions.ts +20 -18
- package/src/utils/questionnaireStoreUtils/extractPages.ts +5 -12
- package/src/utils/repopulateItems.ts +0 -11
- package/src/utils/validateQuestionnaire.ts +6 -1
- package/vite.config.ts +2 -2
- package/src/components/Renderer/FormBodyPage.tsx +0 -93
- package/src/components/Renderer/FormTopLevelPage.tsx +0 -70
|
@@ -24,6 +24,9 @@ import type { QuestionnaireItem } from 'fhir/r4';
|
|
|
24
24
|
import { getContextDisplays } from '../../../utils/tabs';
|
|
25
25
|
import ContextDisplayItem from '../ItemParts/ContextDisplayItem';
|
|
26
26
|
import ItemLabelText from '../ItemParts/ItemLabelText';
|
|
27
|
+
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
28
|
+
import { useRendererStylingStore } from '../../../stores';
|
|
29
|
+
import RequiredAsterisk from '../ItemParts/RequiredAsterisk';
|
|
27
30
|
|
|
28
31
|
interface GroupHeadingProps extends PropsWithIsRepeatedAttribute {
|
|
29
32
|
qItem: QuestionnaireItem;
|
|
@@ -35,6 +38,9 @@ interface GroupHeadingProps extends PropsWithIsRepeatedAttribute {
|
|
|
35
38
|
const GroupHeading = memo(function GroupHeading(props: GroupHeadingProps) {
|
|
36
39
|
const { qItem, readOnly, tabIsMarkedAsComplete, pageIsMarkedAsComplete, isRepeated } = props;
|
|
37
40
|
|
|
41
|
+
const requiredIndicatorPosition = useRendererStylingStore.use.requiredIndicatorPosition();
|
|
42
|
+
|
|
43
|
+
const { required } = useRenderingExtensions(qItem);
|
|
38
44
|
const contextDisplayItems = getContextDisplays(qItem);
|
|
39
45
|
|
|
40
46
|
if (isRepeated) {
|
|
@@ -47,13 +53,28 @@ const GroupHeading = memo(function GroupHeading(props: GroupHeadingProps) {
|
|
|
47
53
|
return (
|
|
48
54
|
<>
|
|
49
55
|
<Box display="flex" alignItems="center" width="100%">
|
|
50
|
-
<
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
<Box position="relative">
|
|
57
|
+
{required && requiredIndicatorPosition === 'start' ? (
|
|
58
|
+
<RequiredAsterisk
|
|
59
|
+
sx={{ position: 'absolute', top: 0, left: -8 }} // Adjust top and left values as needed
|
|
60
|
+
>
|
|
61
|
+
*
|
|
62
|
+
</RequiredAsterisk>
|
|
63
|
+
) : null}
|
|
64
|
+
<Box display="flex" columnGap={0.75} justifyContent="space-between" alignItems="center">
|
|
65
|
+
<Typography
|
|
66
|
+
variant="h6"
|
|
67
|
+
fontSize={isTabHeading || isPageHeading ? 16 : 15}
|
|
68
|
+
color={
|
|
69
|
+
readOnly && (!isTabHeading || !isPageHeading) ? 'text.secondary' : 'text.primary'
|
|
70
|
+
}>
|
|
71
|
+
<ItemLabelText qItem={qItem} readOnly={readOnly} />
|
|
72
|
+
</Typography>
|
|
73
|
+
</Box>
|
|
74
|
+
</Box>
|
|
75
|
+
|
|
56
76
|
<Box flexGrow={1} />
|
|
77
|
+
|
|
57
78
|
<Box display="flex" columnGap={0.5} mx={1}>
|
|
58
79
|
{contextDisplayItems.map((item) => {
|
|
59
80
|
return <ContextDisplayItem key={item.linkId} displayItem={item} />;
|
|
@@ -39,6 +39,7 @@ interface GroupItemProps
|
|
|
39
39
|
qItem: QuestionnaireItem;
|
|
40
40
|
qrItem: QuestionnaireResponseItem | null;
|
|
41
41
|
groupCardElevation: number;
|
|
42
|
+
disableCardView?: boolean;
|
|
42
43
|
tabIsMarkedAsComplete?: boolean;
|
|
43
44
|
tabs?: Tabs;
|
|
44
45
|
currentTabIndex?: number;
|
|
@@ -53,6 +54,7 @@ function GroupItem(props: GroupItemProps) {
|
|
|
53
54
|
qrItem,
|
|
54
55
|
isRepeated,
|
|
55
56
|
groupCardElevation,
|
|
57
|
+
disableCardView,
|
|
56
58
|
tabIsMarkedAsComplete,
|
|
57
59
|
tabs,
|
|
58
60
|
currentTabIndex,
|
|
@@ -103,6 +105,7 @@ function GroupItem(props: GroupItemProps) {
|
|
|
103
105
|
qrItemsByIndex={qrItemsByIndex}
|
|
104
106
|
isRepeated={isRepeated}
|
|
105
107
|
groupCardElevation={groupCardElevation}
|
|
108
|
+
disableCardView={disableCardView}
|
|
106
109
|
tabIsMarkedAsComplete={tabIsMarkedAsComplete}
|
|
107
110
|
tabs={tabs}
|
|
108
111
|
currentTabIndex={currentTabIndex}
|
|
@@ -31,6 +31,7 @@ import SingleItem from '../SingleItem/SingleItem';
|
|
|
31
31
|
import useHidden from '../../../hooks/useHidden';
|
|
32
32
|
import GroupItem from './GroupItem';
|
|
33
33
|
import GridGroup from '../GridGroup/GridGroup';
|
|
34
|
+
import { useQuestionnaireStore } from '../../../stores';
|
|
34
35
|
|
|
35
36
|
interface GroupItemSwitcherProps
|
|
36
37
|
extends PropsWithQrItemChangeHandler,
|
|
@@ -54,11 +55,36 @@ function GroupItemSwitcher(props: GroupItemSwitcherProps) {
|
|
|
54
55
|
onQrRepeatGroupChange
|
|
55
56
|
} = props;
|
|
56
57
|
|
|
58
|
+
const qItemOverrideComponents = useQuestionnaireStore.use.qItemOverrideComponents();
|
|
59
|
+
const QItemOverrideComponent = qItemOverrideComponents[qItem.linkId];
|
|
60
|
+
|
|
57
61
|
const itemIsHidden = useHidden(qItem, parentRepeatGroupIndex);
|
|
58
62
|
if (itemIsHidden) {
|
|
59
63
|
return null;
|
|
60
64
|
}
|
|
61
65
|
|
|
66
|
+
// If a qItem (type=group) override component is defined for this item, render it
|
|
67
|
+
// Don't get too strict with the "typeof" checks for now
|
|
68
|
+
if (
|
|
69
|
+
qItem.type === 'group' &&
|
|
70
|
+
QItemOverrideComponent &&
|
|
71
|
+
typeof QItemOverrideComponent === 'function'
|
|
72
|
+
) {
|
|
73
|
+
return (
|
|
74
|
+
<QItemOverrideComponent
|
|
75
|
+
qItem={qItem}
|
|
76
|
+
qrItem={qrItemOrItems ?? null}
|
|
77
|
+
isRepeated={!!qItem.repeats}
|
|
78
|
+
groupCardElevation={groupCardElevation}
|
|
79
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
80
|
+
parentIsRepeatGroup={parentIsRepeatGroup}
|
|
81
|
+
parentRepeatGroupIndex={parentRepeatGroupIndex}
|
|
82
|
+
onQrItemChange={onQrItemChange}
|
|
83
|
+
onQrRepeatGroupChange={onQrRepeatGroupChange}
|
|
84
|
+
/>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
62
88
|
// If there are multiple answers
|
|
63
89
|
const hasMultipleAnswers = Array.isArray(qrItemOrItems);
|
|
64
90
|
if (hasMultipleAnswers) {
|
|
@@ -50,6 +50,7 @@ interface GroupItemViewProps
|
|
|
50
50
|
childQItems: QuestionnaireItem[];
|
|
51
51
|
qrItemsByIndex: (QuestionnaireResponseItem | QuestionnaireResponseItem[] | undefined)[];
|
|
52
52
|
groupCardElevation: number;
|
|
53
|
+
disableCardView?: boolean;
|
|
53
54
|
tabIsMarkedAsComplete?: boolean;
|
|
54
55
|
tabs?: Tabs;
|
|
55
56
|
currentTabIndex?: number;
|
|
@@ -65,6 +66,7 @@ function GroupItemView(props: GroupItemViewProps) {
|
|
|
65
66
|
qrItemsByIndex,
|
|
66
67
|
isRepeated,
|
|
67
68
|
groupCardElevation,
|
|
69
|
+
disableCardView,
|
|
68
70
|
tabIsMarkedAsComplete,
|
|
69
71
|
tabs,
|
|
70
72
|
currentTabIndex,
|
|
@@ -78,7 +80,7 @@ function GroupItemView(props: GroupItemViewProps) {
|
|
|
78
80
|
onQrRepeatGroupChange
|
|
79
81
|
} = props;
|
|
80
82
|
|
|
81
|
-
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
83
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly, parentRepeatGroupIndex);
|
|
82
84
|
|
|
83
85
|
// Render collapsible group item
|
|
84
86
|
// If group item is a repeating instance, do not render group item as collapsible
|
|
@@ -133,6 +135,37 @@ function GroupItemView(props: GroupItemViewProps) {
|
|
|
133
135
|
);
|
|
134
136
|
}
|
|
135
137
|
|
|
138
|
+
// Disable card view - currently only available via disablePageCardView API
|
|
139
|
+
if (disableCardView) {
|
|
140
|
+
return (
|
|
141
|
+
<QGroupContainerBox
|
|
142
|
+
cardElevation={groupCardElevation}
|
|
143
|
+
isRepeated={isRepeated}
|
|
144
|
+
data-test="q-item-group-box">
|
|
145
|
+
{childQItems.map((qItem: QuestionnaireItem, i) => {
|
|
146
|
+
const qrItemOrItems = qrItemsByIndex[i];
|
|
147
|
+
|
|
148
|
+
return (
|
|
149
|
+
<GroupItemSwitcher
|
|
150
|
+
key={qItem.linkId}
|
|
151
|
+
qItem={qItem}
|
|
152
|
+
qrItemOrItems={qrItemOrItems}
|
|
153
|
+
groupCardElevation={groupCardElevation}
|
|
154
|
+
parentIsReadOnly={readOnly}
|
|
155
|
+
parentIsRepeatGroup={parentIsRepeatGroup}
|
|
156
|
+
parentRepeatGroupIndex={parentRepeatGroupIndex}
|
|
157
|
+
onQrItemChange={onQrItemChange}
|
|
158
|
+
onQrRepeatGroupChange={onQrRepeatGroupChange}
|
|
159
|
+
/>
|
|
160
|
+
);
|
|
161
|
+
})}
|
|
162
|
+
{/* Next tab button at the end of each tab group */}
|
|
163
|
+
<TabButtonsWrapper currentTabIndex={currentTabIndex} tabs={tabs} />
|
|
164
|
+
<PageButtonsWrapper currentPageIndex={currentPageIndex} pages={pages} />
|
|
165
|
+
</QGroupContainerBox>
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
|
|
136
169
|
return (
|
|
137
170
|
<QGroupContainerBox
|
|
138
171
|
cardElevation={groupCardElevation}
|
|
@@ -6,6 +6,7 @@ import { useQuestionnaireStore } from '../../../stores';
|
|
|
6
6
|
import NextPageButton from './NextPageButton';
|
|
7
7
|
import PreviousPageButton from './PreviousPageButton';
|
|
8
8
|
import useNextAndPreviousVisiblePages from '../../../hooks/useNextAndPreviousVisiblePages';
|
|
9
|
+
import { useRendererStylingStore } from '../../../stores/rendererStylingStore';
|
|
9
10
|
|
|
10
11
|
interface PageButtonsWrapperProps {
|
|
11
12
|
currentPageIndex?: number;
|
|
@@ -16,6 +17,7 @@ const PageButtonsWrapper = memo(function PageButtonsWrapper(props: PageButtonsWr
|
|
|
16
17
|
const { currentPageIndex, pages } = props;
|
|
17
18
|
|
|
18
19
|
const switchPage = useQuestionnaireStore.use.switchPage();
|
|
20
|
+
const disablePageButtons = useRendererStylingStore.use.disablePageButtons();
|
|
19
21
|
|
|
20
22
|
const { previousPageIndex, nextPageIndex, numOfVisiblePages } = useNextAndPreviousVisiblePages(
|
|
21
23
|
currentPageIndex,
|
|
@@ -47,10 +49,16 @@ const PageButtonsWrapper = memo(function PageButtonsWrapper(props: PageButtonsWr
|
|
|
47
49
|
window.scrollTo(0, 0);
|
|
48
50
|
}
|
|
49
51
|
|
|
52
|
+
// No pages defined, do not render page buttons
|
|
50
53
|
if (pagesNotDefined) {
|
|
51
54
|
return null;
|
|
52
55
|
}
|
|
53
56
|
|
|
57
|
+
// Disable page buttons - currently only available via disableTabButtons API
|
|
58
|
+
if (disablePageButtons) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
|
|
54
62
|
const previousPageButtonHidden = previousPageIndex === null;
|
|
55
63
|
const nextPageButtonHidden = nextPageIndex === null;
|
|
56
64
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
export { default as GroupItem } from './GroupItem';
|
|
@@ -20,6 +20,8 @@ import InputAdornment from '@mui/material/InputAdornment';
|
|
|
20
20
|
import { StandardTextField } from '../Textfield.styles';
|
|
21
21
|
import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
|
|
22
22
|
import FadingCheckIcon from '../ItemParts/FadingCheckIcon';
|
|
23
|
+
import { useRendererStylingStore } from '../../../stores';
|
|
24
|
+
import Typography from '@mui/material/Typography';
|
|
23
25
|
|
|
24
26
|
interface IntegerFieldProps extends PropsWithIsTabledAttribute {
|
|
25
27
|
linkId: string;
|
|
@@ -47,6 +49,8 @@ function IntegerField(props: IntegerFieldProps) {
|
|
|
47
49
|
onInputChange
|
|
48
50
|
} = props;
|
|
49
51
|
|
|
52
|
+
const textFieldWidth = useRendererStylingStore.use.textFieldWidth();
|
|
53
|
+
|
|
50
54
|
return (
|
|
51
55
|
<StandardTextField
|
|
52
56
|
id={linkId}
|
|
@@ -58,6 +62,7 @@ function IntegerField(props: IntegerFieldProps) {
|
|
|
58
62
|
label={displayPrompt}
|
|
59
63
|
placeholder={entryFormat === '' ? '0' : entryFormat}
|
|
60
64
|
fullWidth
|
|
65
|
+
textFieldWidth={textFieldWidth}
|
|
61
66
|
isTabled={isTabled}
|
|
62
67
|
size="small"
|
|
63
68
|
inputProps={{ inputMode: 'numeric', pattern: '[0-9]*' }}
|
|
@@ -65,7 +70,9 @@ function IntegerField(props: IntegerFieldProps) {
|
|
|
65
70
|
endAdornment: (
|
|
66
71
|
<InputAdornment position={'end'}>
|
|
67
72
|
<FadingCheckIcon fadeIn={calcExpUpdated} disabled={readOnly} />
|
|
68
|
-
{
|
|
73
|
+
<Typography color={readOnly ? 'text.disabled' : 'text.secondary'}>
|
|
74
|
+
{displayUnit}
|
|
75
|
+
</Typography>
|
|
69
76
|
</InputAdornment>
|
|
70
77
|
)
|
|
71
78
|
}}
|
|
@@ -20,10 +20,10 @@ import type {
|
|
|
20
20
|
PropsWithIsRepeatedAttribute,
|
|
21
21
|
PropsWithIsTabledAttribute,
|
|
22
22
|
PropsWithParentIsReadOnlyAttribute,
|
|
23
|
-
PropsWithQrItemChangeHandler
|
|
23
|
+
PropsWithQrItemChangeHandler,
|
|
24
|
+
PropsWithRenderingExtensionsAttribute
|
|
24
25
|
} from '../../../interfaces/renderProps.interface';
|
|
25
26
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
26
|
-
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
27
27
|
import useValidationFeedback from '../../../hooks/useValidationFeedback';
|
|
28
28
|
import debounce from 'lodash.debounce';
|
|
29
29
|
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
@@ -35,23 +35,33 @@ import { parseIntegerString } from '../../../utils/parseInputs';
|
|
|
35
35
|
import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
|
|
36
36
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
37
37
|
import { useQuestionnaireStore } from '../../../stores';
|
|
38
|
+
import { ItemLabelWrapper } from '../ItemParts';
|
|
38
39
|
|
|
39
40
|
interface IntegerItemProps
|
|
40
41
|
extends PropsWithQrItemChangeHandler,
|
|
41
42
|
PropsWithIsRepeatedAttribute,
|
|
42
43
|
PropsWithIsTabledAttribute,
|
|
44
|
+
PropsWithRenderingExtensionsAttribute,
|
|
43
45
|
PropsWithParentIsReadOnlyAttribute {
|
|
44
46
|
qItem: QuestionnaireItem;
|
|
45
47
|
qrItem: QuestionnaireResponseItem | null;
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
function IntegerItem(props: IntegerItemProps) {
|
|
49
|
-
const {
|
|
51
|
+
const {
|
|
52
|
+
qItem,
|
|
53
|
+
qrItem,
|
|
54
|
+
isRepeated,
|
|
55
|
+
isTabled,
|
|
56
|
+
renderingExtensions,
|
|
57
|
+
parentIsReadOnly,
|
|
58
|
+
onQrItemChange
|
|
59
|
+
} = props;
|
|
50
60
|
|
|
51
61
|
const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
|
|
52
62
|
|
|
53
63
|
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
54
|
-
const { displayUnit, displayPrompt, entryFormat } =
|
|
64
|
+
const { displayUnit, displayPrompt, entryFormat } = renderingExtensions;
|
|
55
65
|
|
|
56
66
|
// Init input value
|
|
57
67
|
const answerKey = qrItem?.answer?.[0].id;
|
|
@@ -136,20 +146,25 @@ function IntegerItem(props: IntegerItemProps) {
|
|
|
136
146
|
data-test="q-item-integer-box"
|
|
137
147
|
data-linkid={qItem.linkId}
|
|
138
148
|
onClick={() => onFocusLinkId(qItem.linkId)}>
|
|
139
|
-
<ItemFieldGrid
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
149
|
+
<ItemFieldGrid
|
|
150
|
+
qItem={qItem}
|
|
151
|
+
readOnly={readOnly}
|
|
152
|
+
labelChildren={<ItemLabelWrapper qItem={qItem} readOnly={readOnly} />}
|
|
153
|
+
fieldChildren={
|
|
154
|
+
<IntegerField
|
|
155
|
+
linkId={qItem.linkId}
|
|
156
|
+
input={input}
|
|
157
|
+
feedback={feedback}
|
|
158
|
+
displayPrompt={displayPrompt}
|
|
159
|
+
displayUnit={displayUnit}
|
|
160
|
+
entryFormat={entryFormat}
|
|
161
|
+
readOnly={readOnly}
|
|
162
|
+
calcExpUpdated={calcExpUpdated}
|
|
163
|
+
isTabled={isTabled}
|
|
164
|
+
onInputChange={handleInputChange}
|
|
165
|
+
/>
|
|
166
|
+
}
|
|
167
|
+
/>
|
|
153
168
|
</FullWidthFormComponentBox>
|
|
154
169
|
);
|
|
155
170
|
}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
import React from 'react';
|
|
19
19
|
import Checkbox from '@mui/material/Checkbox';
|
|
20
|
-
import
|
|
20
|
+
import FormControlLabel from '@mui/material/FormControlLabel';
|
|
21
21
|
|
|
22
22
|
interface Props {
|
|
23
23
|
value: string;
|
|
@@ -31,13 +31,12 @@ function CheckboxSingle(props: Props) {
|
|
|
31
31
|
const { value, label, readOnly, isChecked, onCheckedChange } = props;
|
|
32
32
|
|
|
33
33
|
return (
|
|
34
|
-
<
|
|
34
|
+
<FormControlLabel
|
|
35
35
|
disabled={readOnly}
|
|
36
36
|
control={
|
|
37
37
|
<Checkbox size="small" checked={isChecked} onChange={() => onCheckedChange(value)} />
|
|
38
38
|
}
|
|
39
39
|
label={label}
|
|
40
|
-
sx={{ mr: 3 }}
|
|
41
40
|
/>
|
|
42
41
|
);
|
|
43
42
|
}
|
|
@@ -21,6 +21,7 @@ import Box from '@mui/material/Box';
|
|
|
21
21
|
import Checkbox from '@mui/material/Checkbox';
|
|
22
22
|
import FormControlLabel from '@mui/material/FormControlLabel';
|
|
23
23
|
import { StandardTextField } from '../Textfield.styles';
|
|
24
|
+
import { useRendererStylingStore } from '../../../stores';
|
|
24
25
|
|
|
25
26
|
interface Props {
|
|
26
27
|
value: string | null;
|
|
@@ -33,6 +34,8 @@ interface Props {
|
|
|
33
34
|
function CheckboxSingleWithOpenLabel(props: Props) {
|
|
34
35
|
const { value, label, isChecked, onCheckedChange, onInputChange } = props;
|
|
35
36
|
|
|
37
|
+
const textFieldWidth = useRendererStylingStore.use.textFieldWidth();
|
|
38
|
+
|
|
36
39
|
function handleCheckedChange(event: ChangeEvent<HTMLInputElement>) {
|
|
37
40
|
onCheckedChange(event.target.checked);
|
|
38
41
|
}
|
|
@@ -46,13 +49,13 @@ function CheckboxSingleWithOpenLabel(props: Props) {
|
|
|
46
49
|
<FormControlLabel
|
|
47
50
|
control={<Checkbox size="small" checked={isChecked} onChange={handleCheckedChange} />}
|
|
48
51
|
label={label + ':'}
|
|
49
|
-
sx={{ mr: 3 }}
|
|
50
52
|
/>
|
|
51
53
|
<StandardTextField
|
|
52
54
|
disabled={!isChecked}
|
|
53
55
|
value={value}
|
|
54
56
|
onChange={handleInputChange}
|
|
55
57
|
fullWidth
|
|
58
|
+
textFieldWidth={textFieldWidth}
|
|
56
59
|
isTabled={false}
|
|
57
60
|
size="small"
|
|
58
61
|
data-test="q-item-checkbox-open-label-field"
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import Tooltip from '@mui/material/Tooltip';
|
|
20
|
+
import Button from '@mui/material/Button';
|
|
21
|
+
import { grey } from '@mui/material/colors';
|
|
22
|
+
import Fade from '@mui/material/Fade';
|
|
23
|
+
|
|
24
|
+
interface ClearInputButtonProps {
|
|
25
|
+
buttonShown: boolean;
|
|
26
|
+
readOnly: boolean;
|
|
27
|
+
onClear: () => void;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function ClearInputButton(props: ClearInputButtonProps) {
|
|
31
|
+
const { buttonShown, readOnly, onClear } = props;
|
|
32
|
+
|
|
33
|
+
return (
|
|
34
|
+
<Fade in={buttonShown} timeout={100}>
|
|
35
|
+
<Tooltip title="Set question as unanswered">
|
|
36
|
+
<span>
|
|
37
|
+
<Button
|
|
38
|
+
sx={{
|
|
39
|
+
color: grey['500'],
|
|
40
|
+
'&:hover': { backgroundColor: grey['200'] }
|
|
41
|
+
}}
|
|
42
|
+
disabled={readOnly}
|
|
43
|
+
onClick={onClear}>
|
|
44
|
+
Clear
|
|
45
|
+
</Button>
|
|
46
|
+
</span>
|
|
47
|
+
</Tooltip>
|
|
48
|
+
</Fade>
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export default ClearInputButton;
|
|
@@ -32,7 +32,7 @@ const ContextDisplayItem = memo(function GroupHeadingIcon(props: GroupHeadingIco
|
|
|
32
32
|
return null;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
return <ItemLabelText qItem={displayItem} />;
|
|
35
|
+
return <ItemLabelText qItem={displayItem} readOnly={false} />;
|
|
36
36
|
});
|
|
37
37
|
|
|
38
38
|
export default ContextDisplayItem;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import Tooltip from '@mui/material/Tooltip';
|
|
20
|
+
import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
|
|
21
|
+
import { useQuestionnaireStore } from '../../../stores';
|
|
22
|
+
|
|
23
|
+
interface FlyoverItemProps {
|
|
24
|
+
displayFlyover: string | JSX.Element | JSX.Element[];
|
|
25
|
+
readOnly: boolean;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function FlyoverItem(props: FlyoverItemProps) {
|
|
29
|
+
const { displayFlyover, readOnly } = props;
|
|
30
|
+
|
|
31
|
+
const sdcUiOverrideComponents = useQuestionnaireStore.use.sdcUiOverrideComponents();
|
|
32
|
+
const FlyoverOverrideComponent = sdcUiOverrideComponents['flyover'];
|
|
33
|
+
|
|
34
|
+
// If a flyover override component is defined for this item, render it
|
|
35
|
+
if (FlyoverOverrideComponent && typeof FlyoverOverrideComponent === 'function') {
|
|
36
|
+
return <FlyoverOverrideComponent displayText={displayFlyover} readOnly={readOnly} />;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<Tooltip
|
|
41
|
+
title={displayFlyover}
|
|
42
|
+
placement="top"
|
|
43
|
+
slotProps={{
|
|
44
|
+
popper: {
|
|
45
|
+
modifiers: [
|
|
46
|
+
{
|
|
47
|
+
name: 'offset',
|
|
48
|
+
options: {
|
|
49
|
+
offset: [0, -8]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
}}>
|
|
55
|
+
<span>
|
|
56
|
+
<InfoOutlinedIcon sx={{ color: 'text.secondary' }} fontSize="small" />
|
|
57
|
+
</span>
|
|
58
|
+
</Tooltip>
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export default FlyoverItem;
|
|
@@ -17,36 +17,50 @@
|
|
|
17
17
|
|
|
18
18
|
import type { ReactNode } from 'react';
|
|
19
19
|
import React from 'react';
|
|
20
|
-
import Grid from '@mui/material/
|
|
20
|
+
import Grid from '@mui/material/Unstable_Grid2';
|
|
21
21
|
import type { QuestionnaireItem } from 'fhir/r4';
|
|
22
|
-
import DisplayInstructions from '../DisplayItem/DisplayInstructions';
|
|
23
|
-
import LabelWrapper from './ItemLabelWrapper';
|
|
24
22
|
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
25
23
|
import Box from '@mui/material/Box';
|
|
24
|
+
import { useRendererStylingStore } from '../../../stores';
|
|
25
|
+
import DisplayInstructions from '../DisplayItem/DisplayInstructions';
|
|
26
26
|
|
|
27
27
|
interface ItemFieldGridProps {
|
|
28
|
-
children: ReactNode;
|
|
29
28
|
qItem: QuestionnaireItem;
|
|
30
29
|
readOnly: boolean;
|
|
30
|
+
labelChildren?: ReactNode;
|
|
31
|
+
fieldChildren?: ReactNode;
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
function ItemFieldGrid(props: ItemFieldGridProps) {
|
|
34
|
-
const {
|
|
35
|
+
const { qItem, readOnly, labelChildren, fieldChildren } = props;
|
|
36
|
+
|
|
37
|
+
const itemLabelGridBreakpoints = useRendererStylingStore.use.itemLabelGridBreakpoints();
|
|
38
|
+
const itemFieldGridBreakpoints = useRendererStylingStore.use.itemFieldGridBreakpoints();
|
|
35
39
|
|
|
36
40
|
const { displayInstructions } = useRenderingExtensions(qItem);
|
|
37
41
|
|
|
38
42
|
return (
|
|
39
43
|
<Grid container columnSpacing={4}>
|
|
40
|
-
<Grid
|
|
41
|
-
|
|
44
|
+
<Grid
|
|
45
|
+
xs={itemLabelGridBreakpoints.xs}
|
|
46
|
+
sm={itemLabelGridBreakpoints.sm}
|
|
47
|
+
md={itemLabelGridBreakpoints.md}
|
|
48
|
+
lg={itemLabelGridBreakpoints.lg}
|
|
49
|
+
xl={itemLabelGridBreakpoints.xl}>
|
|
50
|
+
{labelChildren}
|
|
42
51
|
</Grid>
|
|
43
52
|
<Box
|
|
44
53
|
sx={{
|
|
45
54
|
my: { xs: 1.5, md: 0 } // Adds padding for `xs` breakpoint and removes it for `md` and up
|
|
46
55
|
}}
|
|
47
56
|
/>
|
|
48
|
-
<Grid
|
|
49
|
-
{
|
|
57
|
+
<Grid
|
|
58
|
+
xs={itemFieldGridBreakpoints.xs}
|
|
59
|
+
sm={itemFieldGridBreakpoints.sm}
|
|
60
|
+
md={itemFieldGridBreakpoints.md}
|
|
61
|
+
lg={itemFieldGridBreakpoints.lg}
|
|
62
|
+
xl={itemFieldGridBreakpoints.xl}>
|
|
63
|
+
{fieldChildren}
|
|
50
64
|
<DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
|
|
51
65
|
</Grid>
|
|
52
66
|
</Grid>
|