@aehrc/smart-forms-renderer 0.8.0 → 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/Alert.styles.d.ts +2 -7
- package/lib/components/Box.styles.d.ts +6 -21
- package/lib/components/FormComponents/BooleanItem/BooleanItem.d.ts +3 -3
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js +5 -4
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.d.ts +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +6 -5
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.d.ts +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +15 -14
- 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 +15 -14
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.d.ts +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js +8 -8
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.d.ts +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +6 -6
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.d.ts +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +6 -5
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.d.ts +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.d.ts +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +8 -7
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.d.ts +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.d.ts +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +8 -7
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
- 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 -3
- package/lib/components/FormComponents/DateItem/DateItem.js +5 -4
- package/lib/components/FormComponents/DateItem/DateItem.js.map +1 -1
- package/lib/components/FormComponents/DateItem/DatePicker.d.ts +2 -0
- package/lib/components/FormComponents/DateItem/DatePicker.js +42 -0
- package/lib/components/FormComponents/DateItem/DatePicker.js.map +1 -0
- package/lib/components/FormComponents/DateItem/DatePickerField.d.ts +8 -0
- package/lib/components/FormComponents/DateItem/DatePickerField.js +24 -0
- package/lib/components/FormComponents/DateItem/DatePickerField.js.map +1 -0
- package/lib/components/FormComponents/DateTimeItem/DateTimeItem.d.ts +3 -3
- package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js +5 -4
- package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js.map +1 -1
- package/lib/components/FormComponents/DecimalItem/DecimalItem.d.ts +3 -3
- package/lib/components/FormComponents/DecimalItem/DecimalItem.js +7 -7
- 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 +3 -1
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js +2 -2
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js.map +1 -1
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.d.ts +2 -7
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js +0 -1
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js.map +1 -1
- package/lib/components/FormComponents/DisplayItem/DisplayItem.js +2 -2
- package/lib/components/FormComponents/DisplayItem/DisplayItem.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/GridGroup.d.ts +3 -3
- package/lib/components/FormComponents/GridGroup/GridGroup.js +16 -9
- package/lib/components/FormComponents/GridGroup/GridGroup.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/GridRow.d.ts +3 -3
- package/lib/components/FormComponents/GridGroup/GridRow.js +4 -4
- package/lib/components/FormComponents/GridGroup/GridRow.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/GridTable.d.ts +3 -2
- 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/GroupHeading.d.ts +1 -0
- package/lib/components/FormComponents/GroupItem/GroupHeading.js +6 -5
- package/lib/components/FormComponents/GroupItem/GroupHeading.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItem.d.ts +3 -4
- package/lib/components/FormComponents/GroupItem/GroupItem.js +7 -5
- package/lib/components/FormComponents/GroupItem/GroupItem.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItem.styles.d.ts +2 -6
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.d.ts +3 -3
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +11 -12
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/IntegerItem/IntegerItem.d.ts +3 -3
- package/lib/components/FormComponents/IntegerItem/IntegerItem.js +7 -7
- 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/Item.styles.d.ts +0 -4
- package/lib/components/FormComponents/Item.styles.js +0 -4
- package/lib/components/FormComponents/Item.styles.js.map +1 -1
- 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 +3 -2
- package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js +3 -3
- package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelText.d.ts +1 -0
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js +4 -6
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.d.ts +1 -0
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +2 -2
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -1
- package/lib/components/FormComponents/Lists.styles.d.ts +2 -9
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.d.ts +3 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js +2 -3
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.d.ts +3 -3
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +8 -7
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.d.ts +3 -3
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +16 -15
- 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 +6 -6
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.d.ts +3 -3
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +7 -6
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.d.ts +3 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.d.ts +3 -3
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +7 -6
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.d.ts +3 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.d.ts +3 -3
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +8 -7
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/AddItemButton.d.ts +1 -0
- package/lib/components/FormComponents/RepeatGroup/AddItemButton.js +2 -2
- package/lib/components/FormComponents/RepeatGroup/AddItemButton.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.d.ts +1 -0
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +2 -2
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.d.ts +2 -2
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +20 -7
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.d.ts +2 -2
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js +5 -3
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/AddItemButton.d.ts +1 -0
- package/lib/components/FormComponents/RepeatItem/AddItemButton.js +2 -2
- package/lib/components/FormComponents/RepeatItem/AddItemButton.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/DeleteItemButton.d.ts +1 -0
- package/lib/components/FormComponents/RepeatItem/DeleteItemButton.js +2 -2
- package/lib/components/FormComponents/RepeatItem/DeleteItemButton.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatField.d.ts +3 -3
- package/lib/components/FormComponents/RepeatItem/RepeatField.js +5 -3
- package/lib/components/FormComponents/RepeatItem/RepeatField.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.d.ts +4 -3
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js +15 -5
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.styles.d.ts +4 -18
- package/lib/components/FormComponents/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 +4 -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 +20 -15
- 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 +3 -3
- package/lib/components/FormComponents/StringItem/StringItem.js +5 -4
- package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
- package/lib/components/FormComponents/Tables/AddRowButton.d.ts +1 -0
- package/lib/components/FormComponents/Tables/AddRowButton.js +2 -2
- package/lib/components/FormComponents/Tables/AddRowButton.js.map +1 -1
- package/lib/components/FormComponents/Tables/DeleteRowButton.d.ts +1 -0
- package/lib/components/FormComponents/Tables/DeleteRowButton.js +2 -2
- package/lib/components/FormComponents/Tables/DeleteRowButton.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTable.d.ts +4 -3
- package/lib/components/FormComponents/Tables/GroupTable.js +25 -6
- package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTableRow.d.ts +3 -3
- package/lib/components/FormComponents/Tables/GroupTableRow.js +4 -4
- package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -1
- package/lib/components/FormComponents/Tables/QItemGroupTable.js +5 -7
- package/lib/components/FormComponents/Tables/QItemGroupTable.js.map +1 -1
- package/lib/components/FormComponents/Tables/QItemGroupTableRow.js +2 -2
- package/lib/components/FormComponents/Tables/QItemGroupTableRow.js.map +1 -1
- package/lib/components/FormComponents/TextItem/TextItem.d.ts +3 -3
- package/lib/components/FormComponents/TextItem/TextItem.js +5 -4
- package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
- package/lib/components/FormComponents/TimeItem/TimeItem.d.ts +3 -3
- package/lib/components/FormComponents/TimeItem/TimeItem.js +5 -4
- package/lib/components/FormComponents/TimeItem/TimeItem.js.map +1 -1
- package/lib/components/FormComponents/UrlItem/UrlItem.d.ts +3 -3
- package/lib/components/FormComponents/UrlItem/UrlItem.js +5 -4
- package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -1
- 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/Lists.styles.d.ts +2 -9
- 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 +9 -5
- package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
- package/lib/components/Tabs/FormBodySingleTab.js +1 -1
- package/lib/components/Tabs/FormBodySingleTab.js.map +1 -1
- package/lib/components/Tabs/ShowCompletedTabsSection.js +1 -1
- package/lib/components/Tabs/ShowCompletedTabsSection.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/useMinimalStringCalculatedExpression.d.ts +11 -0
- package/lib/hooks/useMinimalStringCalculatedExpression.js +37 -0
- package/lib/hooks/useMinimalStringCalculatedExpression.js.map +1 -0
- package/lib/hooks/useReadOnly.d.ts +3 -0
- package/lib/hooks/useReadOnly.js +26 -0
- package/lib/hooks/useReadOnly.js.map +1 -0
- package/lib/hooks/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/calculatedExpression.interface.d.ts +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 +7 -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/theme/overrides/Typography.d.ts +13 -0
- package/lib/theme/overrides/Typography.js +31 -0
- package/lib/theme/overrides/Typography.js.map +1 -0
- package/lib/theme/typography.d.ts +0 -2
- package/lib/theme/typography.js +3 -5
- package/lib/theme/typography.js.map +1 -1
- package/lib/utils/calculatedExpression.d.ts +17 -1
- package/lib/utils/calculatedExpression.js +71 -20
- 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 +20 -18
- package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +10 -7
- package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +11 -8
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +46 -35
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +48 -37
- package/src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx +21 -11
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +11 -10
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +12 -9
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +3 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +16 -11
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +3 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +14 -9
- 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/{Typography.styles.ts → CustomDateItem/customDateTimePicker/MuiDatePicker.ts} +4 -7
- 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 +10 -8
- package/src/components/FormComponents/DateTimeItem/DateTimeItem.tsx +10 -8
- package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +11 -10
- package/src/components/FormComponents/DisplayItem/DisplayInstructions.styles.ts +0 -1
- package/src/components/FormComponents/DisplayItem/DisplayInstructions.tsx +8 -3
- package/src/components/FormComponents/DisplayItem/DisplayItem.tsx +2 -2
- package/src/components/FormComponents/GridGroup/GridGroup.tsx +49 -15
- package/src/components/FormComponents/GridGroup/GridRow.tsx +12 -7
- package/src/components/FormComponents/GridGroup/GridTable.tsx +32 -8
- package/src/components/FormComponents/GridGroup/index.ts +18 -0
- package/src/components/FormComponents/GroupItem/GroupHeading.tsx +12 -6
- package/src/components/FormComponents/GroupItem/GroupItem.tsx +13 -8
- package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +33 -11
- package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +11 -10
- package/src/components/FormComponents/Item.styles.ts +0 -5
- package/src/components/FormComponents/ItemParts/FadingCheckIcon.tsx +2 -2
- package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +6 -5
- package/src/components/FormComponents/ItemParts/ItemLabelText.tsx +10 -5
- package/src/components/FormComponents/ItemParts/ItemLabelWrapper.tsx +3 -2
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx +10 -4
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +15 -9
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +58 -47
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx +15 -6
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +13 -10
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.tsx +10 -4
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +12 -7
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx +10 -4
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +14 -9
- package/src/components/FormComponents/RepeatGroup/AddItemButton.tsx +3 -2
- package/src/components/FormComponents/RepeatGroup/DeleteItemButton.tsx +3 -2
- package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +61 -10
- package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.tsx +23 -7
- package/src/components/FormComponents/RepeatItem/AddItemButton.tsx +3 -2
- package/src/components/FormComponents/RepeatItem/DeleteItemButton.tsx +3 -2
- package/src/components/FormComponents/RepeatItem/RepeatField.tsx +33 -9
- package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +44 -7
- package/src/components/FormComponents/RepeatItem/index.ts +18 -0
- package/src/components/FormComponents/SingleItem/SingleItem.tsx +12 -6
- package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +41 -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 +9 -7
- package/src/components/FormComponents/Tables/AddRowButton.tsx +3 -2
- package/src/components/FormComponents/Tables/DeleteRowButton.tsx +3 -2
- package/src/components/FormComponents/Tables/GroupTable.tsx +70 -7
- package/src/components/FormComponents/Tables/GroupTableRow.tsx +12 -7
- package/src/components/FormComponents/TextItem/TextItem.tsx +9 -7
- package/src/components/FormComponents/TimeItem/TimeItem.tsx +10 -8
- package/src/components/FormComponents/UrlItem/UrlItem.tsx +9 -7
- 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 +21 -13
- package/src/components/Tabs/FormBodySingleTab.tsx +1 -1
- package/src/components/Tabs/ShowCompletedTabsSection.tsx +1 -1
- 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/useReadOnly.ts +30 -0
- package/src/hooks/useSliderExtensions.ts +50 -0
- package/src/hooks/useTerminologyServerQuery.ts +0 -2
- package/src/index.ts +12 -9
- package/src/interfaces/calculatedExpression.interface.ts +1 -1
- package/src/interfaces/questionnaireStore.interface.ts +1 -0
- package/src/interfaces/renderProps.interface.ts +8 -3
- package/src/stores/useQuestionnaireStore.ts +39 -16
- package/src/theme/customGlobalStyles.tsx +0 -4
- package/src/theme/typography.ts +3 -5
- package/src/utils/calculatedExpression.ts +104 -35
- 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
|
@@ -16,7 +16,11 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import React, { useState } from 'react';
|
|
19
|
-
import type {
|
|
19
|
+
import type {
|
|
20
|
+
PropsWithParentIsReadOnlyAttribute,
|
|
21
|
+
PropsWithQrItemChangeHandler
|
|
22
|
+
} from '../../../interfaces/renderProps.interface';
|
|
23
|
+
import type { PropsWithShowMinimalViewAttribute } from '../../../interfaces/renderProps.interface';
|
|
20
24
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
21
25
|
import { nanoid } from 'nanoid';
|
|
22
26
|
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
@@ -28,16 +32,20 @@ import RepeatField from './RepeatField';
|
|
|
28
32
|
import Collapse from '@mui/material/Collapse';
|
|
29
33
|
import useInitialiseRepeatAnswers from '../../../hooks/useInitialiseRepeatAnswers';
|
|
30
34
|
import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
|
|
35
|
+
import useReadOnly from '../../../hooks/useReadOnly';
|
|
31
36
|
|
|
32
|
-
interface RepeatItemProps
|
|
37
|
+
interface RepeatItemProps
|
|
38
|
+
extends PropsWithQrItemChangeHandler,
|
|
39
|
+
PropsWithShowMinimalViewAttribute,
|
|
40
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
33
41
|
qItem: QuestionnaireItem;
|
|
34
|
-
qrItem: QuestionnaireResponseItem;
|
|
42
|
+
qrItem: QuestionnaireResponseItem | null;
|
|
35
43
|
}
|
|
36
44
|
|
|
37
45
|
function RepeatItem(props: RepeatItemProps) {
|
|
38
|
-
const { qItem, qrItem, onQrItemChange } = props;
|
|
46
|
+
const { qItem, qrItem, showMinimalView, parentIsReadOnly, onQrItemChange } = props;
|
|
39
47
|
|
|
40
|
-
|
|
48
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
41
49
|
const { displayInstructions } = useRenderingExtensions(qItem);
|
|
42
50
|
|
|
43
51
|
const initialRepeatAnswers = useInitialiseRepeatAnswers(qItem, qrItem);
|
|
@@ -82,9 +90,36 @@ function RepeatItem(props: RepeatItemProps) {
|
|
|
82
90
|
]);
|
|
83
91
|
}
|
|
84
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
|
+
|
|
85
120
|
return (
|
|
86
121
|
<FullWidthFormComponentBox data-test="q-item-repeat-box">
|
|
87
|
-
<ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions}>
|
|
122
|
+
<ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions} readOnly={readOnly}>
|
|
88
123
|
<TransitionGroup>
|
|
89
124
|
{repeatAnswers.map(({ nanoId, answer }, index) => {
|
|
90
125
|
const repeatAnswerQrItem = createEmptyQrItem(qItem);
|
|
@@ -99,6 +134,8 @@ function RepeatItem(props: RepeatItemProps) {
|
|
|
99
134
|
qrItem={repeatAnswerQrItem}
|
|
100
135
|
answer={answer}
|
|
101
136
|
numOfRepeatAnswers={repeatAnswers.length}
|
|
137
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
138
|
+
showMinimalView={showMinimalView}
|
|
102
139
|
onDeleteAnswer={() => handleDeleteItem(index)}
|
|
103
140
|
onQrItemChange={(newQrItem) => handleAnswerChange(newQrItem, index)}
|
|
104
141
|
/>
|
|
@@ -108,7 +145,7 @@ function RepeatItem(props: RepeatItemProps) {
|
|
|
108
145
|
</TransitionGroup>
|
|
109
146
|
</ItemFieldGrid>
|
|
110
147
|
|
|
111
|
-
<AddItemButton repeatAnswers={repeatAnswers} onAddItem={handleAddItem} />
|
|
148
|
+
<AddItemButton repeatAnswers={repeatAnswers} readOnly={readOnly} onAddItem={handleAddItem} />
|
|
112
149
|
</FullWidthFormComponentBox>
|
|
113
150
|
);
|
|
114
151
|
}
|
|
@@ -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';
|
|
@@ -20,24 +20,28 @@ import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
|
20
20
|
import type {
|
|
21
21
|
PropsWithIsRepeatedAttribute,
|
|
22
22
|
PropsWithIsTabledAttribute,
|
|
23
|
+
PropsWithParentIsReadOnlyAttribute,
|
|
23
24
|
PropsWithQrItemChangeHandler,
|
|
24
|
-
|
|
25
|
+
PropsWithShowMinimalViewAttribute
|
|
25
26
|
} from '../../../interfaces/renderProps.interface';
|
|
26
27
|
import useQuestionnaireStore from '../../../stores/useQuestionnaireStore';
|
|
27
28
|
import SingleItemSwitcher from './SingleItemSwitcher';
|
|
28
29
|
import useHidden from '../../../hooks/useHidden';
|
|
30
|
+
import useReadOnly from '../../../hooks/useReadOnly';
|
|
29
31
|
|
|
30
32
|
interface SingleItemProps
|
|
31
|
-
extends PropsWithQrItemChangeHandler
|
|
33
|
+
extends PropsWithQrItemChangeHandler,
|
|
32
34
|
PropsWithIsRepeatedAttribute,
|
|
33
35
|
PropsWithIsTabledAttribute,
|
|
34
|
-
|
|
36
|
+
PropsWithShowMinimalViewAttribute,
|
|
37
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
35
38
|
qItem: QuestionnaireItem;
|
|
36
|
-
qrItem: QuestionnaireResponseItem;
|
|
39
|
+
qrItem: QuestionnaireResponseItem | null;
|
|
37
40
|
}
|
|
38
41
|
|
|
39
42
|
function SingleItem(props: SingleItemProps) {
|
|
40
|
-
const { qItem, qrItem, isRepeated, isTabled,
|
|
43
|
+
const { qItem, qrItem, isRepeated, isTabled, showMinimalView, parentIsReadOnly, onQrItemChange } =
|
|
44
|
+
props;
|
|
41
45
|
|
|
42
46
|
const updateEnableWhenItem = useQuestionnaireStore((state) => state.updateEnableWhenItem);
|
|
43
47
|
|
|
@@ -51,6 +55,7 @@ function SingleItem(props: SingleItemProps) {
|
|
|
51
55
|
[updateEnableWhenItem, onQrItemChange, qItem.linkId]
|
|
52
56
|
);
|
|
53
57
|
|
|
58
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
54
59
|
const itemIsHidden = useHidden(qItem);
|
|
55
60
|
if (itemIsHidden) {
|
|
56
61
|
return null;
|
|
@@ -62,7 +67,8 @@ function SingleItem(props: SingleItemProps) {
|
|
|
62
67
|
qrItem={qrItem}
|
|
63
68
|
isRepeated={isRepeated}
|
|
64
69
|
isTabled={isTabled}
|
|
65
|
-
|
|
70
|
+
showMinimalView={showMinimalView}
|
|
71
|
+
parentIsReadOnly={readOnly}
|
|
66
72
|
onQrItemChange={handleQrItemChange}
|
|
67
73
|
/>
|
|
68
74
|
);
|
|
@@ -23,31 +23,36 @@ import Typography from '@mui/material/Typography';
|
|
|
23
23
|
import type {
|
|
24
24
|
PropsWithIsRepeatedAttribute,
|
|
25
25
|
PropsWithIsTabledAttribute,
|
|
26
|
+
PropsWithParentIsReadOnlyAttribute,
|
|
26
27
|
PropsWithQrItemChangeHandler,
|
|
27
|
-
|
|
28
|
+
PropsWithShowMinimalViewAttribute
|
|
28
29
|
} from '../../../interfaces/renderProps.interface';
|
|
29
30
|
import StringItem from '../StringItem/StringItem';
|
|
30
31
|
import BooleanItem from '../BooleanItem/BooleanItem';
|
|
31
32
|
import TimeItem from '../TimeItem/TimeItem';
|
|
32
33
|
import DateTimeItem from '../DateTimeItem/DateTimeItem';
|
|
33
|
-
import DateItem from '../DateItem/DateItem';
|
|
34
34
|
import TextItem from '../TextItem/TextItem';
|
|
35
35
|
import DisplayItem from '../DisplayItem/DisplayItem';
|
|
36
|
-
import IntegerItem from '../IntegerItem/IntegerItem';
|
|
37
36
|
import DecimalItem from '../DecimalItem/DecimalItem';
|
|
38
37
|
import UrlItem from '../UrlItem/UrlItem';
|
|
38
|
+
import CustomDateItem from '../CustomDateItem/CustomDateItem';
|
|
39
|
+
import { isSpecificItemControl } from '../../../utils';
|
|
40
|
+
import SliderItem from '../SliderItem/SliderItem';
|
|
41
|
+
import IntegerItem from '../IntegerItem/IntegerItem';
|
|
39
42
|
|
|
40
43
|
interface SingleItemSwitcherProps
|
|
41
|
-
extends PropsWithQrItemChangeHandler
|
|
44
|
+
extends PropsWithQrItemChangeHandler,
|
|
42
45
|
PropsWithIsRepeatedAttribute,
|
|
43
46
|
PropsWithIsTabledAttribute,
|
|
44
|
-
|
|
47
|
+
PropsWithShowMinimalViewAttribute,
|
|
48
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
45
49
|
qItem: QuestionnaireItem;
|
|
46
|
-
qrItem: QuestionnaireResponseItem;
|
|
50
|
+
qrItem: QuestionnaireResponseItem | null;
|
|
47
51
|
}
|
|
48
52
|
|
|
49
53
|
function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
50
|
-
const { qItem, qrItem, isRepeated, isTabled,
|
|
54
|
+
const { qItem, qrItem, isRepeated, isTabled, showMinimalView, parentIsReadOnly, onQrItemChange } =
|
|
55
|
+
props;
|
|
51
56
|
|
|
52
57
|
switch (qItem.type) {
|
|
53
58
|
case 'string':
|
|
@@ -57,6 +62,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
57
62
|
qrItem={qrItem}
|
|
58
63
|
isRepeated={isRepeated}
|
|
59
64
|
isTabled={isTabled}
|
|
65
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
60
66
|
onQrItemChange={onQrItemChange}
|
|
61
67
|
/>
|
|
62
68
|
);
|
|
@@ -67,6 +73,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
67
73
|
qrItem={qrItem}
|
|
68
74
|
isRepeated={isRepeated}
|
|
69
75
|
isTabled={isTabled}
|
|
76
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
70
77
|
onQrItemChange={onQrItemChange}
|
|
71
78
|
/>
|
|
72
79
|
);
|
|
@@ -77,16 +84,18 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
77
84
|
qrItem={qrItem}
|
|
78
85
|
isRepeated={isRepeated}
|
|
79
86
|
isTabled={isTabled}
|
|
87
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
80
88
|
onQrItemChange={onQrItemChange}
|
|
81
89
|
/>
|
|
82
90
|
);
|
|
83
91
|
case 'date':
|
|
84
92
|
return (
|
|
85
|
-
<
|
|
93
|
+
<CustomDateItem
|
|
86
94
|
qItem={qItem}
|
|
87
95
|
qrItem={qrItem}
|
|
88
96
|
isRepeated={isRepeated}
|
|
89
97
|
isTabled={isTabled}
|
|
98
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
90
99
|
onQrItemChange={onQrItemChange}
|
|
91
100
|
/>
|
|
92
101
|
);
|
|
@@ -97,6 +106,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
97
106
|
qrItem={qrItem}
|
|
98
107
|
isRepeated={isRepeated}
|
|
99
108
|
isTabled={isTabled}
|
|
109
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
100
110
|
onQrItemChange={onQrItemChange}
|
|
101
111
|
/>
|
|
102
112
|
);
|
|
@@ -106,18 +116,33 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
106
116
|
qItem={qItem}
|
|
107
117
|
qrItem={qrItem}
|
|
108
118
|
isRepeated={isRepeated}
|
|
119
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
109
120
|
onQrItemChange={onQrItemChange}
|
|
110
121
|
/>
|
|
111
122
|
);
|
|
112
123
|
case 'display':
|
|
113
124
|
return <DisplayItem qItem={qItem} />;
|
|
114
125
|
case 'integer':
|
|
126
|
+
if (isSpecificItemControl(qItem, 'slider')) {
|
|
127
|
+
return (
|
|
128
|
+
<SliderItem
|
|
129
|
+
qItem={qItem}
|
|
130
|
+
qrItem={qrItem}
|
|
131
|
+
isRepeated={isRepeated}
|
|
132
|
+
isTabled={isTabled}
|
|
133
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
134
|
+
onQrItemChange={onQrItemChange}
|
|
135
|
+
/>
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
|
|
115
139
|
return (
|
|
116
140
|
<IntegerItem
|
|
117
141
|
qItem={qItem}
|
|
118
142
|
qrItem={qrItem}
|
|
119
143
|
isRepeated={isRepeated}
|
|
120
144
|
isTabled={isTabled}
|
|
145
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
121
146
|
onQrItemChange={onQrItemChange}
|
|
122
147
|
/>
|
|
123
148
|
);
|
|
@@ -128,6 +153,7 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
128
153
|
qrItem={qrItem}
|
|
129
154
|
isRepeated={isRepeated}
|
|
130
155
|
isTabled={isTabled}
|
|
156
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
131
157
|
onQrItemChange={onQrItemChange}
|
|
132
158
|
/>
|
|
133
159
|
);
|
|
@@ -138,7 +164,8 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
138
164
|
qrItem={qrItem}
|
|
139
165
|
isRepeated={isRepeated}
|
|
140
166
|
isTabled={isTabled}
|
|
141
|
-
|
|
167
|
+
showMinimalView={showMinimalView}
|
|
168
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
142
169
|
onQrItemChange={onQrItemChange}
|
|
143
170
|
/>
|
|
144
171
|
);
|
|
@@ -149,7 +176,8 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
149
176
|
qrItem={qrItem}
|
|
150
177
|
isRepeated={isRepeated}
|
|
151
178
|
isTabled={isTabled}
|
|
152
|
-
|
|
179
|
+
showMinimalView={showMinimalView}
|
|
180
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
153
181
|
onQrItemChange={onQrItemChange}
|
|
154
182
|
/>
|
|
155
183
|
);
|
|
@@ -160,13 +188,15 @@ function SingleItemSwitcher(props: SingleItemSwitcherProps) {
|
|
|
160
188
|
qrItem={qrItem}
|
|
161
189
|
isRepeated={isRepeated}
|
|
162
190
|
isTabled={isTabled}
|
|
191
|
+
parentIsReadOnly={parentIsReadOnly}
|
|
163
192
|
onQrItemChange={onQrItemChange}
|
|
164
193
|
/>
|
|
165
194
|
);
|
|
166
195
|
default:
|
|
167
196
|
return (
|
|
168
197
|
<Typography>
|
|
169
|
-
Item type not supported yet
|
|
198
|
+
Item type not supported yet, or something has went wrong. If your questionnnaire is not a
|
|
199
|
+
FHIR R4 resource, there might be issues rendering it.
|
|
170
200
|
</Typography>
|
|
171
201
|
);
|
|
172
202
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { alpha, styled } from '@mui/material/styles';
|
|
19
|
+
import { Box } from '@mui/material';
|
|
20
|
+
|
|
21
|
+
export const SliderDisplayBox = styled(Box, {
|
|
22
|
+
shouldForwardProp: (prop) => prop !== 'hasLabels'
|
|
23
|
+
})<{ hasLabels: boolean }>(({ theme, hasLabels }) => ({
|
|
24
|
+
display: 'flex',
|
|
25
|
+
alignItems: 'center',
|
|
26
|
+
justifyContent: 'center',
|
|
27
|
+
margin: '0 auto',
|
|
28
|
+
marginBottom: hasLabels ? -20 : 0,
|
|
29
|
+
padding: theme.spacing(0.5),
|
|
30
|
+
borderRadius: Number(theme.shape.borderRadius) * 0.5,
|
|
31
|
+
border: `1px solid ${alpha(theme.palette.text.disabled, 0.5)}`,
|
|
32
|
+
minWidth: 28,
|
|
33
|
+
height: 18
|
|
34
|
+
}));
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import { SliderDisplayBox } from './Slider.styles';
|
|
20
|
+
import Typography from '@mui/material/Typography';
|
|
21
|
+
import { pxToRem } from '../../../theme/typography';
|
|
22
|
+
|
|
23
|
+
interface SliderDisplayValueProps {
|
|
24
|
+
value: number;
|
|
25
|
+
hasLabels: boolean;
|
|
26
|
+
isInteracted: boolean;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function SliderDisplayValue(props: SliderDisplayValueProps) {
|
|
30
|
+
const { value, hasLabels, isInteracted } = props;
|
|
31
|
+
|
|
32
|
+
const valueToDisplay = isInteracted ? value : '-';
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<SliderDisplayBox hasLabels={hasLabels}>
|
|
36
|
+
<Typography textAlign="center" color="text.disabled" fontSize={pxToRem(9.5)}>
|
|
37
|
+
{valueToDisplay}
|
|
38
|
+
</Typography>
|
|
39
|
+
</SliderDisplayBox>
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export default SliderDisplayValue;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
|
|
20
|
+
import Slider from '@mui/material/Slider';
|
|
21
|
+
import { getSliderMarks } from '../../../utils/slider';
|
|
22
|
+
import Stack from '@mui/material/Stack';
|
|
23
|
+
import SliderLabels from './SliderLabels';
|
|
24
|
+
import SliderDisplayValue from './SliderDisplayValue';
|
|
25
|
+
|
|
26
|
+
interface SliderFieldProps extends PropsWithIsTabledAttribute {
|
|
27
|
+
linkId: string;
|
|
28
|
+
value: number;
|
|
29
|
+
minValue: number;
|
|
30
|
+
minLabel: string;
|
|
31
|
+
maxValue: number;
|
|
32
|
+
maxLabel: string;
|
|
33
|
+
stepValue: number;
|
|
34
|
+
isInteracted: boolean;
|
|
35
|
+
readOnly: boolean;
|
|
36
|
+
onValueChange: (newValue: number) => void;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function SliderField(props: SliderFieldProps) {
|
|
40
|
+
const {
|
|
41
|
+
linkId,
|
|
42
|
+
value,
|
|
43
|
+
minValue,
|
|
44
|
+
maxValue,
|
|
45
|
+
stepValue,
|
|
46
|
+
minLabel,
|
|
47
|
+
maxLabel,
|
|
48
|
+
isInteracted,
|
|
49
|
+
readOnly,
|
|
50
|
+
isTabled,
|
|
51
|
+
onValueChange
|
|
52
|
+
} = props;
|
|
53
|
+
|
|
54
|
+
const sliderMarks = getSliderMarks(minValue, maxValue, minLabel, maxLabel, stepValue);
|
|
55
|
+
|
|
56
|
+
const sliderSx = {
|
|
57
|
+
maxWidth: !isTabled ? 280 : 3000,
|
|
58
|
+
minWidth: 160
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const hasLabels = !!(minLabel || maxLabel);
|
|
62
|
+
|
|
63
|
+
return (
|
|
64
|
+
<Stack sx={{ ...sliderSx }}>
|
|
65
|
+
<SliderDisplayValue value={value} hasLabels={hasLabels} isInteracted={isInteracted} />
|
|
66
|
+
{hasLabels ? <SliderLabels minLabel={minLabel} maxLabel={maxLabel} /> : null}
|
|
67
|
+
<Slider
|
|
68
|
+
id={linkId}
|
|
69
|
+
value={value}
|
|
70
|
+
min={minValue}
|
|
71
|
+
max={maxValue}
|
|
72
|
+
step={stepValue}
|
|
73
|
+
marks={sliderMarks}
|
|
74
|
+
sx={{ ...sliderSx }}
|
|
75
|
+
onChange={(_, newValue) => {
|
|
76
|
+
if (typeof newValue === 'number') {
|
|
77
|
+
onValueChange(newValue);
|
|
78
|
+
}
|
|
79
|
+
}}
|
|
80
|
+
disabled={readOnly}
|
|
81
|
+
valueLabelDisplay="auto"
|
|
82
|
+
data-test="q-item-slider-field"
|
|
83
|
+
/>
|
|
84
|
+
</Stack>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export default SliderField;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import type {
|
|
20
|
+
PropsWithIsRepeatedAttribute,
|
|
21
|
+
PropsWithIsTabledAttribute,
|
|
22
|
+
PropsWithParentIsReadOnlyAttribute,
|
|
23
|
+
PropsWithQrItemChangeHandler
|
|
24
|
+
} from '../../../interfaces/renderProps.interface';
|
|
25
|
+
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
26
|
+
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
27
|
+
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
28
|
+
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
29
|
+
import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
|
|
30
|
+
import useReadOnly from '../../../hooks/useReadOnly';
|
|
31
|
+
import SliderField from './SliderField';
|
|
32
|
+
import useSliderExtensions from '../../../hooks/useSliderExtensions';
|
|
33
|
+
import Box from '@mui/material/Box';
|
|
34
|
+
|
|
35
|
+
interface SliderItemProps
|
|
36
|
+
extends PropsWithQrItemChangeHandler,
|
|
37
|
+
PropsWithIsRepeatedAttribute,
|
|
38
|
+
PropsWithIsTabledAttribute,
|
|
39
|
+
PropsWithParentIsReadOnlyAttribute {
|
|
40
|
+
qItem: QuestionnaireItem;
|
|
41
|
+
qrItem: QuestionnaireResponseItem | null;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function SliderItem(props: SliderItemProps) {
|
|
45
|
+
const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
|
|
46
|
+
|
|
47
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
48
|
+
const { displayInstructions } = useRenderingExtensions(qItem);
|
|
49
|
+
const { minValue, maxValue, stepValue, minLabel, maxLabel } = useSliderExtensions(qItem);
|
|
50
|
+
|
|
51
|
+
const isInteracted = !!qrItem?.answer;
|
|
52
|
+
|
|
53
|
+
// Init input value
|
|
54
|
+
let valueInteger = 0;
|
|
55
|
+
if (qrItem?.answer) {
|
|
56
|
+
if (qrItem?.answer[0].valueInteger) {
|
|
57
|
+
valueInteger = qrItem.answer[0].valueInteger;
|
|
58
|
+
}
|
|
59
|
+
if (qrItem?.answer[0].valueDecimal) {
|
|
60
|
+
valueInteger = Math.round(qrItem.answer[0].valueDecimal);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Event handlers
|
|
65
|
+
function handleValueChange(newValue: number) {
|
|
66
|
+
onQrItemChange({
|
|
67
|
+
...createEmptyQrItem(qItem),
|
|
68
|
+
answer: [{ valueInteger: newValue }]
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (isRepeated) {
|
|
73
|
+
return (
|
|
74
|
+
<Box px={4}>
|
|
75
|
+
<SliderField
|
|
76
|
+
linkId={qItem.linkId}
|
|
77
|
+
value={valueInteger}
|
|
78
|
+
minValue={minValue}
|
|
79
|
+
maxValue={maxValue}
|
|
80
|
+
stepValue={stepValue}
|
|
81
|
+
minLabel={minLabel}
|
|
82
|
+
maxLabel={maxLabel}
|
|
83
|
+
isInteracted={isInteracted}
|
|
84
|
+
readOnly={readOnly}
|
|
85
|
+
isTabled={isTabled}
|
|
86
|
+
onValueChange={handleValueChange}
|
|
87
|
+
/>
|
|
88
|
+
</Box>
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return (
|
|
93
|
+
<FullWidthFormComponentBox data-test="q-item-slider-box">
|
|
94
|
+
<ItemFieldGrid qItem={qItem} displayInstructions={displayInstructions} readOnly={readOnly}>
|
|
95
|
+
<Box px={4}>
|
|
96
|
+
<SliderField
|
|
97
|
+
linkId={qItem.linkId}
|
|
98
|
+
value={valueInteger}
|
|
99
|
+
minValue={minValue}
|
|
100
|
+
maxValue={maxValue}
|
|
101
|
+
stepValue={stepValue}
|
|
102
|
+
minLabel={minLabel}
|
|
103
|
+
maxLabel={maxLabel}
|
|
104
|
+
isInteracted={isInteracted}
|
|
105
|
+
readOnly={readOnly}
|
|
106
|
+
isTabled={isTabled}
|
|
107
|
+
onValueChange={handleValueChange}
|
|
108
|
+
/>
|
|
109
|
+
</Box>
|
|
110
|
+
</ItemFieldGrid>
|
|
111
|
+
</FullWidthFormComponentBox>
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export default SliderItem;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import Typography from '@mui/material/Typography';
|
|
20
|
+
import { pxToRem } from '../../../theme/typography';
|
|
21
|
+
import Box from '@mui/material/Box';
|
|
22
|
+
|
|
23
|
+
interface SliderLabelsProps {
|
|
24
|
+
minLabel: string;
|
|
25
|
+
maxLabel: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function SliderLabels(props: SliderLabelsProps) {
|
|
29
|
+
const { minLabel, maxLabel } = props;
|
|
30
|
+
|
|
31
|
+
if (!minLabel && !maxLabel) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<Box display="flex" justifyContent="space-between" pb={0.5}>
|
|
37
|
+
{[minLabel, maxLabel].map((label, index) => (
|
|
38
|
+
<Typography
|
|
39
|
+
key={index}
|
|
40
|
+
textAlign="center"
|
|
41
|
+
fontSize={pxToRem(10)}
|
|
42
|
+
sx={{
|
|
43
|
+
transform: `translateX(${index === 0 ? '-50%' : '50%'})`,
|
|
44
|
+
wordWrap: 'break-word'
|
|
45
|
+
}}>
|
|
46
|
+
{label}
|
|
47
|
+
</Typography>
|
|
48
|
+
))}
|
|
49
|
+
</Box>
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export default SliderLabels;
|