@aehrc/smart-forms-renderer 0.5.0 → 0.6.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/api/smartClient.d.ts +5 -0
- package/lib/api/smartClient.js +41 -0
- package/lib/api/smartClient.js.map +1 -0
- package/lib/components/Alert.styles.d.ts +4 -4
- package/lib/components/Alert.styles.js +2 -1
- package/lib/components/Alert.styles.js.map +1 -1
- package/lib/components/BackToTopButton/BackToTopButton.js +3 -1
- package/lib/components/BackToTopButton/BackToTopButton.js.map +1 -1
- package/lib/components/Box.styles.d.ts +9 -9
- package/lib/components/Box.styles.js +2 -1
- package/lib/components/Box.styles.js.map +1 -1
- package/lib/components/FormComponents/BooleanItem/BooleanField.js +2 -1
- package/lib/components/FormComponents/BooleanItem/BooleanField.js.map +1 -1
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js +1 -1
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.d.ts +9 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +91 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.d.ts +11 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +70 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.d.ts +11 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +67 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.d.ts +9 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js +61 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadio.d.ts +8 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadio.js +25 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadio.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.d.ts +11 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +70 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.d.ts +11 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +73 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioButton.d.ts +8 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioButton.js +25 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioButton.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.d.ts +8 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.js +25 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingleItem.d.ts +8 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingleItem.js +25 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingleItem.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.d.ts +9 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +75 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.d.ts +9 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +84 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoice.d.ts +9 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoice.js +61 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoice.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceAutocomplete.d.ts +9 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceAutocomplete.js +89 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceAutocomplete.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceCheckboxAnswerOption.d.ts +11 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceCheckboxAnswerOption.js +70 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceCheckboxAnswerOption.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceCheckboxAnswerValueSet.d.ts +11 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceCheckboxAnswerValueSet.js +67 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceCheckboxAnswerValueSet.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioAnswerOption.d.ts +11 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioAnswerOption.js +70 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioAnswerOption.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioAnswerValueSet.d.ts +11 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioAnswerValueSet.js +72 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioAnswerValueSet.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioSingle.d.ts +8 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioSingle.js +25 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceRadioSingle.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceSelectAnswerOption.d.ts +9 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceSelectAnswerOption.js +73 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceSelectAnswerOption.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceSelectAnswerValueSet.d.ts +9 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceSelectAnswerValueSet.js +82 -0
- package/lib/components/FormComponents/ChoiceItems/QItemChoiceSelectAnswerValueSet.js.map +1 -0
- package/lib/components/FormComponents/DateTimeItem/DateTimeField.js +1 -1
- package/lib/components/FormComponents/DateTimeItem/DateTimeField.js.map +1 -1
- package/lib/components/FormComponents/DecimalItem/DecimalField.js +1 -1
- package/lib/components/FormComponents/DecimalItem/DecimalField.js.map +1 -1
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js +1 -1
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js.map +1 -1
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.d.ts +3 -3
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js +2 -1
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/GridGroup.js +4 -1
- package/lib/components/FormComponents/GridGroup/GridGroup.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/GridRow.js +1 -1
- package/lib/components/FormComponents/GridGroup/GridRow.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/GridTable.js +5 -1
- package/lib/components/FormComponents/GridGroup/GridTable.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupHeading.js +2 -1
- package/lib/components/FormComponents/GroupItem/GroupHeading.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItem.styles.d.ts +3 -3
- package/lib/components/FormComponents/GroupItem/GroupItem.styles.js +2 -1
- package/lib/components/FormComponents/GroupItem/GroupItem.styles.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/NextTabButton.js +1 -1
- package/lib/components/FormComponents/GroupItem/NextTabButton.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/NextTabButtonWrapper.js +1 -1
- package/lib/components/FormComponents/GroupItem/NextTabButtonWrapper.js.map +1 -1
- package/lib/components/FormComponents/IntegerItem/IntegerField.js +1 -1
- package/lib/components/FormComponents/IntegerItem/IntegerField.js.map +1 -1
- package/lib/components/FormComponents/Item.styles.d.ts +4 -4
- package/lib/components/FormComponents/Item.styles.js +4 -1
- package/lib/components/FormComponents/Item.styles.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/CheckboxSingle.d.ts +10 -0
- package/lib/components/FormComponents/ItemParts/CheckboxSingle.js +25 -0
- package/lib/components/FormComponents/ItemParts/CheckboxSingle.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.d.ts +10 -0
- package/lib/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.js +35 -0
- package/lib/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/CheckboxWithOpenLabel.d.ts +10 -0
- package/lib/components/FormComponents/ItemParts/CheckboxWithOpenLabel.js +35 -0
- package/lib/components/FormComponents/ItemParts/CheckboxWithOpenLabel.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +1 -1
- package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js +1 -1
- package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/QItemCheckboxSingle.js +2 -1
- package/lib/components/FormComponents/ItemParts/QItemCheckboxSingle.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/QItemCheckboxSingleWithOpenLabel.js +3 -1
- package/lib/components/FormComponents/ItemParts/QItemCheckboxSingleWithOpenLabel.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/QItemRadioButtonWithOpenLabel.js +3 -3
- package/lib/components/FormComponents/ItemParts/QItemRadioButtonWithOpenLabel.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/RadioButtonItemWithOpenLabel.d.ts +10 -0
- package/lib/components/FormComponents/ItemParts/RadioButtonItemWithOpenLabel.js +31 -0
- package/lib/components/FormComponents/ItemParts/RadioButtonItemWithOpenLabel.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.d.ts +10 -0
- package/lib/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.js +31 -0
- package/lib/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.js.map +1 -0
- package/lib/components/FormComponents/Lists.styles.d.ts +3 -3
- package/lib/components/FormComponents/Lists.styles.js +2 -2
- package/lib/components/FormComponents/Lists.styles.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.d.ts +9 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +111 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.d.ts +11 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +105 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.d.ts +9 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js +49 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.d.ts +11 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +116 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.d.ts +9 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +77 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.d.ts +9 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +70 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoice.d.ts +9 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoice.js +49 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoice.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceAutocomplete.d.ts +9 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceAutocomplete.js +109 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceAutocomplete.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceCheckboxAnswerOption.d.ts +11 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceCheckboxAnswerOption.js +105 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceCheckboxAnswerOption.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceRadioAnswerOption.d.ts +11 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceRadioAnswerOption.js +116 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceRadioAnswerOption.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceSelectAnswerOption.d.ts +9 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceSelectAnswerOption.js +75 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceSelectAnswerOption.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceSelectAnswerValueSet.d.ts +9 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceSelectAnswerValueSet.js +68 -0
- package/lib/components/FormComponents/OpenChoiceItems/QItemOpenChoiceSelectAnswerValueSet.js.map +1 -0
- package/lib/components/FormComponents/QItemChoice/QItemChoiceAutocomplete.js +5 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceAutocomplete.js.map +1 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerOption.js +1 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerOption.js.map +1 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerValueSet.js +2 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceCheckboxAnswerValueSet.js.map +1 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerOption.js +1 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerOption.js.map +1 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerValueSet.js +3 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioAnswerValueSet.js.map +1 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioSingle.js +2 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceRadioSingle.js.map +1 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerOption.js +4 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerOption.js.map +1 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerValueSet.js +3 -1
- package/lib/components/FormComponents/QItemChoice/QItemChoiceSelectAnswerValueSet.js.map +1 -1
- package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceAutocomplete.js +6 -1
- package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceAutocomplete.js.map +1 -1
- package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceCheckboxAnswerOption.js +1 -1
- package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceCheckboxAnswerOption.js.map +1 -1
- package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceRadioAnswerOption.js +1 -1
- package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceRadioAnswerOption.js.map +1 -1
- package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerOption.js +2 -1
- package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerOption.js.map +1 -1
- package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerValueSet.js +3 -1
- package/lib/components/FormComponents/QItemOpenChoice/QItemOpenChoiceSelectAnswerValueSet.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/AddItemButton.js +2 -1
- package/lib/components/FormComponents/RepeatGroup/AddItemButton.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +1 -1
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +3 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.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/AddItemButton.js +2 -1
- package/lib/components/FormComponents/RepeatItem/AddItemButton.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/DeleteItemButton.js +1 -1
- package/lib/components/FormComponents/RepeatItem/DeleteItemButton.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatField.js +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatField.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.styles.d.ts +7 -7
- package/lib/components/FormComponents/RepeatItem/RepeatItem.styles.js +3 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.styles.js.map +1 -1
- package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js +5 -5
- package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/StringItem/StringField.js +1 -1
- package/lib/components/FormComponents/StringItem/StringField.js.map +1 -1
- package/lib/components/FormComponents/Tables/DeleteRowButton.js +2 -1
- package/lib/components/FormComponents/Tables/DeleteRowButton.js.map +1 -1
- package/lib/components/FormComponents/Tables/QItemGroupTable.js +11 -1
- package/lib/components/FormComponents/Tables/QItemGroupTable.js.map +1 -1
- package/lib/components/FormComponents/Tables/Table.styles.d.ts +5 -5
- package/lib/components/FormComponents/Tables/Table.styles.js +2 -1
- package/lib/components/FormComponents/Tables/Table.styles.js.map +1 -1
- package/lib/components/FormComponents/Textfield.styles.d.ts +2 -2
- package/lib/components/FormComponents/Textfield.styles.js +2 -1
- package/lib/components/FormComponents/Textfield.styles.js.map +1 -1
- package/lib/components/FormComponents/Typography.styles.d.ts +2 -2
- package/lib/components/FormComponents/Typography.styles.js +2 -1
- package/lib/components/FormComponents/Typography.styles.js.map +1 -1
- package/lib/components/FormComponents/UrlItem/UrlField.js +1 -1
- package/lib/components/FormComponents/UrlItem/UrlField.js.map +1 -1
- package/lib/components/Iconify/Iconify.d.ts +1 -1
- package/lib/components/Iconify/Iconify.js +1 -1
- package/lib/components/Iconify/Iconify.js.map +1 -1
- package/lib/components/Lists.styles.d.ts +3 -3
- package/lib/components/Lists.styles.js +2 -2
- package/lib/components/Lists.styles.js.map +1 -1
- package/lib/components/Renderer/BaseRenderer.d.ts +3 -0
- package/lib/components/Renderer/BaseRenderer.js +55 -0
- package/lib/components/Renderer/BaseRenderer.js.map +1 -0
- package/lib/components/Renderer/FormBodyCollapsible.d.ts +9 -0
- package/lib/components/Renderer/FormBodyCollapsible.js +57 -0
- package/lib/components/Renderer/FormBodyCollapsible.js.map +1 -0
- package/lib/components/Renderer/FormBodySingleCollapsible.d.ts +12 -0
- package/lib/components/Renderer/FormBodySingleCollapsible.js +44 -0
- package/lib/components/Renderer/FormBodySingleCollapsible.js.map +1 -0
- package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.d.ts +12 -0
- package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.js +31 -0
- package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.js.map +1 -0
- package/lib/components/Renderer/FormBodyTabbed.d.ts +9 -0
- package/lib/components/Renderer/FormBodyTabbed.js +60 -0
- package/lib/components/Renderer/FormBodyTabbed.js.map +1 -0
- package/lib/components/Renderer/FormTitle.d.ts +7 -0
- package/lib/components/Renderer/FormTitle.js +30 -0
- package/lib/components/Renderer/FormTitle.js.map +1 -0
- package/lib/components/Renderer/FormTopLevelItem.d.ts +9 -0
- package/lib/components/Renderer/FormTopLevelItem.js +45 -0
- package/lib/components/Renderer/FormTopLevelItem.js.map +1 -0
- package/lib/components/Renderer/SmartFormsRenderer.d.ts +11 -0
- package/lib/components/Renderer/SmartFormsRenderer.js +41 -0
- package/lib/components/Renderer/SmartFormsRenderer.js.map +1 -0
- package/lib/components/Renderer/index.d.ts +2 -0
- package/lib/components/Renderer/index.js +19 -0
- package/lib/components/Renderer/index.js.map +1 -0
- package/lib/components/Tabs/CompleteTabButton.js +2 -1
- package/lib/components/Tabs/CompleteTabButton.js.map +1 -1
- package/lib/components/Tabs/FormBodySingleTab.js +4 -1
- package/lib/components/Tabs/FormBodySingleTab.js.map +1 -1
- package/lib/components/Tabs/FormBodyTabList.js +3 -1
- package/lib/components/Tabs/FormBodyTabList.js.map +1 -1
- package/lib/components/index.d.ts +1 -1
- package/lib/components/index.js +1 -1
- package/lib/components/index.js.map +1 -1
- package/lib/contexts/TestContext.d.ts +11 -0
- package/lib/contexts/TestContext.js +32 -0
- package/lib/contexts/TestContext.js.map +1 -0
- package/lib/contexts/index.d.ts +1 -0
- package/lib/contexts/index.js +2 -0
- package/lib/contexts/index.js.map +1 -0
- package/lib/hooks/useInitialiseRenderer.d.ts +2 -1
- package/lib/hooks/useInitialiseRenderer.js +28 -5
- package/lib/hooks/useInitialiseRenderer.js.map +1 -1
- package/lib/hooks/useTerminologyServerQuery.d.ts +1 -1
- package/lib/hooks/useTestContext.d.ts +5 -0
- package/lib/hooks/useTestContext.js +27 -0
- package/lib/hooks/useTestContext.js.map +1 -0
- package/lib/hooks/useValueSetCodings.js +4 -4
- package/lib/hooks/useValueSetCodings.js.map +1 -1
- package/lib/index.d.ts +5 -63
- package/lib/index.js +6 -87
- package/lib/index.js.map +1 -1
- package/lib/interfaces/choice.enum.d.ts +4 -4
- package/lib/interfaces/choice.enum.js +24 -24
- package/lib/interfaces/choice.enum.js.map +1 -1
- package/lib/stores/index.d.ts +3 -0
- package/lib/stores/index.js +4 -0
- package/lib/stores/index.js.map +1 -0
- package/lib/stores/useQuestionnaireResponseStore.d.ts +3 -3
- package/lib/stores/useQuestionnaireResponseStore.js +5 -4
- package/lib/stores/useQuestionnaireResponseStore.js.map +1 -1
- package/lib/stores/useSmartClientStore.d.ts +7 -0
- package/lib/stores/useSmartClientStore.js +7 -0
- package/lib/stores/useSmartClientStore.js.map +1 -0
- package/lib/stores/useSmartConfigStore.d.ts +14 -0
- package/lib/stores/useSmartConfigStore.js +13 -0
- package/lib/stores/useSmartConfigStore.js.map +1 -0
- package/lib/theme/Theme.d.ts +1 -1
- package/lib/theme/Theme.js +1 -1
- package/lib/theme/Theme.js.map +1 -1
- package/lib/theme/overrides/Accordion.d.ts +1 -1
- package/lib/theme/overrides/Autocomplete.d.ts +1 -1
- package/lib/theme/overrides/Backdrop.d.ts +1 -1
- package/lib/theme/overrides/Backdrop.js.map +1 -1
- package/lib/theme/overrides/Button.d.ts +1 -1
- package/lib/theme/overrides/Button.js.map +1 -1
- package/lib/theme/overrides/Card.d.ts +1 -1
- package/lib/theme/overrides/Input.d.ts +1 -1
- package/lib/theme/overrides/Input.js.map +1 -1
- package/lib/theme/overrides/Overrides.d.ts +1 -1
- package/lib/theme/overrides/SpeedDial.d.ts +1 -1
- package/lib/theme/overrides/Typography.d.ts +1 -1
- package/lib/theme/palette.d.ts +1 -2
- package/lib/theme/palette.js.map +1 -1
- package/lib/utils/choice.d.ts +3 -3
- package/lib/utils/choice.js +11 -11
- package/lib/utils/choice.js.map +1 -1
- package/lib/utils/openChoice.d.ts +3 -3
- package/lib/utils/openChoice.js +7 -7
- package/lib/utils/openChoice.js.map +1 -1
- package/lib/utils/qItem.js +3 -3
- package/lib/utils/qItem.js.map +1 -1
- package/lib/utils/removeHidden.d.ts +2 -2
- package/lib/utils/valueSet.js +13 -1
- package/lib/utils/valueSet.js.map +1 -1
- package/package.json +12 -11
- package/src/api/smartClient.ts +31 -0
- package/src/components/Alert.styles.ts +2 -1
- package/src/components/BackToTopButton/BackToTopButton.tsx +3 -1
- package/src/components/Box.styles.ts +2 -1
- package/src/components/FormComponents/BooleanItem/BooleanField.tsx +2 -1
- package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +1 -1
- package/src/components/FormComponents/{QItemChoice/QItemChoiceAutocomplete.tsx → ChoiceItems/ChoiceAutocompleteItem.tsx} +13 -8
- package/src/components/FormComponents/{QItemChoice/QItemChoiceCheckboxAnswerOption.tsx → ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx} +8 -8
- package/src/components/FormComponents/{QItemChoice/QItemChoiceCheckboxAnswerValueSet.tsx → ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx} +10 -9
- package/src/components/FormComponents/{QItemChoice/QItemChoice.tsx → ChoiceItems/ChoiceItemSwitcher.tsx} +22 -22
- package/src/components/FormComponents/{QItemChoice/QItemChoiceRadioAnswerOption.tsx → ChoiceItems/ChoiceRadioAnswerOptionItem.tsx} +11 -11
- package/src/components/FormComponents/{QItemChoice/QItemChoiceRadioAnswerValueSet.tsx → ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx} +15 -13
- package/src/components/FormComponents/{QItemChoice/QItemChoiceRadioSingle.tsx → ChoiceItems/ChoiceRadioSingle.tsx} +5 -4
- package/src/components/FormComponents/{QItemChoice/QItemChoiceSelectAnswerOption.tsx → ChoiceItems/ChoiceSelectAnswerOptionItem.tsx} +13 -9
- package/src/components/FormComponents/{QItemChoice/QItemChoiceSelectAnswerValueSet.tsx → ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx} +11 -8
- package/src/components/FormComponents/DateTimeItem/DateTimeField.tsx +1 -1
- package/src/components/FormComponents/DecimalItem/DecimalField.tsx +1 -1
- package/src/components/FormComponents/DisplayItem/DisplayInstructions.styles.ts +2 -1
- package/src/components/FormComponents/DisplayItem/DisplayInstructions.tsx +1 -1
- package/src/components/FormComponents/GridGroup/GridGroup.tsx +4 -1
- package/src/components/FormComponents/GridGroup/GridRow.tsx +1 -1
- package/src/components/FormComponents/GridGroup/GridTable.tsx +5 -1
- package/src/components/FormComponents/GroupItem/GroupHeading.tsx +2 -1
- package/src/components/FormComponents/GroupItem/GroupItem.styles.ts +2 -1
- package/src/components/FormComponents/GroupItem/NextTabButton.tsx +1 -1
- package/src/components/FormComponents/GroupItem/NextTabButtonWrapper.tsx +1 -1
- package/src/components/FormComponents/IntegerItem/IntegerField.tsx +1 -1
- package/src/components/FormComponents/Item.styles.ts +4 -1
- package/src/components/FormComponents/ItemParts/{QItemCheckboxSingle.tsx → CheckboxSingle.tsx} +4 -3
- package/src/components/FormComponents/ItemParts/{QItemCheckboxSingleWithOpenLabel.tsx → CheckboxSingleWithOpenLabel.tsx} +5 -3
- package/src/components/FormComponents/ItemParts/FadingCheckIcon.tsx +1 -1
- package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +1 -1
- package/src/components/FormComponents/ItemParts/ItemLabelText.tsx +1 -1
- package/src/components/FormComponents/ItemParts/ItemLabelWrapper.tsx +1 -1
- package/src/components/FormComponents/ItemParts/{QItemRadioButtonWithOpenLabel.tsx → RadioButtonWithOpenLabel.tsx} +6 -6
- package/src/components/FormComponents/Lists.styles.ts +2 -2
- package/src/components/FormComponents/{QItemOpenChoice/QItemOpenChoiceAutocomplete.tsx → OpenChoiceItems/OpenChoiceAutocompleteItem.tsx} +15 -8
- package/src/components/FormComponents/{QItemOpenChoice/QItemOpenChoiceCheckboxAnswerOption.tsx → OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx} +15 -15
- package/src/components/FormComponents/{QItemOpenChoice/QItemOpenChoice.tsx → OpenChoiceItems/OpenChoiceItemSwitcher.tsx} +18 -18
- package/src/components/FormComponents/{QItemOpenChoice/QItemOpenChoiceRadioAnswerOption.tsx → OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx} +13 -13
- package/src/components/FormComponents/{QItemOpenChoice/QItemOpenChoiceSelectAnswerOption.tsx → OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx} +11 -9
- package/src/components/FormComponents/{QItemOpenChoice/QItemOpenChoiceSelectAnswerValueSet.tsx → OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx} +11 -9
- package/src/components/FormComponents/RepeatGroup/AddItemButton.tsx +2 -1
- package/src/components/FormComponents/RepeatGroup/DeleteItemButton.tsx +1 -1
- package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +4 -1
- package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.tsx +1 -1
- package/src/components/FormComponents/RepeatItem/AddItemButton.tsx +2 -1
- package/src/components/FormComponents/RepeatItem/DeleteItemButton.tsx +1 -1
- package/src/components/FormComponents/RepeatItem/RepeatField.tsx +1 -1
- package/src/components/FormComponents/RepeatItem/RepeatItem.styles.tsx +3 -1
- package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +1 -1
- package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +5 -5
- package/src/components/FormComponents/StringItem/StringField.tsx +1 -1
- package/src/components/FormComponents/Tables/DeleteRowButton.tsx +3 -1
- package/src/components/FormComponents/Tables/QItemGroupTable.tsx +12 -13
- package/src/components/FormComponents/Tables/Table.styles.tsx +2 -1
- package/src/components/FormComponents/Textfield.styles.ts +2 -1
- package/src/components/FormComponents/Typography.styles.ts +2 -1
- package/src/components/FormComponents/UrlItem/UrlField.tsx +1 -1
- package/src/components/Iconify/Iconify.tsx +2 -2
- package/src/components/Lists.styles.ts +2 -2
- package/src/components/{FormRenderer → Renderer}/BaseRenderer.tsx +3 -2
- package/src/components/{FormRenderer → Renderer}/FormBodyCollapsible.tsx +1 -1
- package/src/components/{FormRenderer → Renderer}/FormBodySingleCollapsible.tsx +6 -8
- package/src/components/{FormRenderer → Renderer}/FormBodyTabbed.tsx +1 -1
- package/src/components/{FormRenderer → Renderer}/FormTitle.tsx +1 -1
- package/src/components/{FormRenderer → Renderer}/SmartFormsRenderer.tsx +9 -3
- package/src/components/Tabs/CompleteTabButton.tsx +2 -1
- package/src/components/Tabs/FormBodySingleTab.tsx +5 -1
- package/src/components/Tabs/FormBodyTabList.tsx +3 -1
- package/src/components/index.ts +1 -1
- package/src/hooks/useInitialiseRenderer.ts +34 -5
- package/src/hooks/useTerminologyServerQuery.ts +1 -1
- package/src/hooks/useValueSetCodings.ts +4 -4
- package/src/index.ts +6 -94
- package/src/interfaces/choice.enum.ts +4 -4
- package/src/stores/index.ts +3 -0
- package/src/stores/useQuestionnaireResponseStore.ts +8 -8
- package/src/stores/useSmartConfigStore.ts +27 -0
- package/src/stories/SmartFormsRenderer.stories.ts +25 -16
- package/src/stories/assets/QTestGrid.json +245 -0
- package/src/theme/Theme.tsx +2 -2
- package/src/theme/overrides/Accordion.ts +1 -1
- package/src/theme/overrides/Autocomplete.ts +1 -1
- package/src/theme/overrides/Backdrop.ts +1 -1
- package/src/theme/overrides/Button.ts +1 -1
- package/src/theme/overrides/Card.ts +1 -1
- package/src/theme/overrides/Input.ts +1 -1
- package/src/theme/overrides/Overrides.ts +1 -1
- package/src/theme/overrides/SpeedDial.ts +1 -1
- package/src/theme/overrides/Typography.ts +1 -1
- package/src/theme/palette.ts +1 -2
- package/src/utils/choice.ts +12 -12
- package/src/utils/openChoice.ts +8 -8
- package/src/utils/qItem.ts +3 -3
- package/src/utils/removeHidden.ts +2 -2
- package/src/utils/valueSet.ts +16 -1
- package/tsconfig.json +3 -2
- package/src/api/populate.ts +0 -70
- package/src/stores/useConfigStore.ts +0 -36
- package/src/utils/populate.ts +0 -117
- package/src/utils/populateCallback.ts +0 -53
- /package/src/components/{FormRenderer → Renderer}/FormBodySingleCollapsibleWrapper.tsx +0 -0
- /package/src/components/{FormRenderer → Renderer}/FormTopLevelItem.tsx +0 -0
- /package/src/components/{FormRenderer → Renderer}/index.ts +0 -0
|
@@ -0,0 +1,61 @@
|
|
|
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
|
+
import React from 'react';
|
|
18
|
+
import { ChoiceItemControl } from '../../../interfaces/choice.enum';
|
|
19
|
+
import ChoiceRadioAnswerOptionItem from './ChoiceRadioAnswerOptionItem';
|
|
20
|
+
import ChoiceSelectAnswerOptionItem from './ChoiceSelectAnswerOptionItem';
|
|
21
|
+
import ChoiceCheckboxAnswerOptionItem from './ChoiceCheckboxAnswerOptionItem';
|
|
22
|
+
import ChoiceAutocompleteItem from './ChoiceAutocompleteItem';
|
|
23
|
+
import ChoiceSelectAnswerValueSetItem from './ChoiceSelectAnswerValueSetItem';
|
|
24
|
+
import { getChoiceControlType, getChoiceOrientation } from '../../../utils/choice';
|
|
25
|
+
import ChoiceRadioAnswerValueSetItem from './ChoiceRadioAnswerValueSetItem';
|
|
26
|
+
import ChoiceCheckboxAnswerValueSetItem from './ChoiceCheckboxAnswerValueSetItem';
|
|
27
|
+
function ChoiceItemSwitcher(props) {
|
|
28
|
+
var _a, _b;
|
|
29
|
+
const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
|
|
30
|
+
const orientation = getChoiceOrientation(qItem);
|
|
31
|
+
const choiceControlType = getChoiceControlType(qItem);
|
|
32
|
+
switch (choiceControlType) {
|
|
33
|
+
case ChoiceItemControl.Radio:
|
|
34
|
+
if (qItem.answerOption) {
|
|
35
|
+
return (React.createElement(ChoiceRadioAnswerOptionItem, { qItem: qItem, qrItem: qrItem, isRepeated: isRepeated, onQrItemChange: onQrItemChange, orientation: orientation }));
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return (React.createElement(ChoiceRadioAnswerValueSetItem, { qItem: qItem, qrItem: qrItem, isRepeated: isRepeated, onQrItemChange: onQrItemChange, orientation: orientation }));
|
|
39
|
+
}
|
|
40
|
+
case ChoiceItemControl.Checkbox:
|
|
41
|
+
if (qItem.answerOption) {
|
|
42
|
+
return (React.createElement(ChoiceCheckboxAnswerOptionItem, { qItem: qItem, qrItem: qrItem, isRepeated: (_a = qItem['repeats']) !== null && _a !== void 0 ? _a : false, onQrItemChange: onQrItemChange, orientation: orientation }));
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return (React.createElement(ChoiceCheckboxAnswerValueSetItem, { qItem: qItem, qrItem: qrItem, isRepeated: (_b = qItem['repeats']) !== null && _b !== void 0 ? _b : false, onQrItemChange: onQrItemChange, orientation: orientation }));
|
|
46
|
+
}
|
|
47
|
+
case ChoiceItemControl.Autocomplete:
|
|
48
|
+
return (React.createElement(ChoiceAutocompleteItem, { qItem: qItem, qrItem: qrItem, isRepeated: isRepeated, isTabled: isTabled, onQrItemChange: onQrItemChange }));
|
|
49
|
+
case ChoiceItemControl.Select:
|
|
50
|
+
if (qItem.answerOption) {
|
|
51
|
+
return (React.createElement(ChoiceSelectAnswerOptionItem, { qItem: qItem, qrItem: qrItem, isRepeated: isRepeated, isTabled: isTabled, onQrItemChange: onQrItemChange }));
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
return (React.createElement(ChoiceSelectAnswerValueSetItem, { qItem: qItem, qrItem: qrItem, isRepeated: isRepeated, isTabled: isTabled, onQrItemChange: onQrItemChange }));
|
|
55
|
+
}
|
|
56
|
+
default:
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export default ChoiceItemSwitcher;
|
|
61
|
+
//# sourceMappingURL=ChoiceItemSwitcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChoiceItemSwitcher.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
import React from 'react';
|
|
18
|
+
import FormControlLabel from '@mui/material/FormControlLabel';
|
|
19
|
+
import Radio from '@mui/material/Radio';
|
|
20
|
+
function ChoiceRadio(props) {
|
|
21
|
+
const { value, label, readOnly } = props;
|
|
22
|
+
return (React.createElement(FormControlLabel, { disabled: readOnly, value: value, control: React.createElement(Radio, { size: "small" }), label: label, sx: { mr: 3 } }));
|
|
23
|
+
}
|
|
24
|
+
export default ChoiceRadio;
|
|
25
|
+
//# sourceMappingURL=ChoiceRadio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChoiceRadio.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceRadio.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,KAAK,MAAM,qBAAqB,CAAC;AAQxC,SAAS,WAAW,CAAC,KAAY;IAC/B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEzC,OAAO,CACL,oBAAC,gBAAgB,IACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,oBAAC,KAAK,IAAC,IAAI,EAAC,OAAO,GAAG,EAC/B,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GACb,CACH,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
3
|
+
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
4
|
+
import type { PropsWithIsRepeatedAttribute, PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
|
|
5
|
+
interface ChoiceRadioAnswerOptionItemProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>, PropsWithIsRepeatedAttribute {
|
|
6
|
+
qItem: QuestionnaireItem;
|
|
7
|
+
qrItem: QuestionnaireResponseItem;
|
|
8
|
+
orientation: ChoiceItemOrientation;
|
|
9
|
+
}
|
|
10
|
+
declare function ChoiceRadioAnswerOptionItem(props: ChoiceRadioAnswerOptionItemProps): React.JSX.Element;
|
|
11
|
+
export default ChoiceRadioAnswerOptionItem;
|
|
@@ -0,0 +1,70 @@
|
|
|
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
|
+
import React from 'react';
|
|
18
|
+
import Grid from '@mui/material/Grid';
|
|
19
|
+
import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
20
|
+
import { findInAnswerOptions, getQrChoiceValue } from '../../../utils/choice';
|
|
21
|
+
import ChoiceRadioSingle from './ChoiceRadioSingle';
|
|
22
|
+
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
23
|
+
import { QRadioGroup } from '../Item.styles';
|
|
24
|
+
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
25
|
+
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
26
|
+
import DisplayInstructions from '../DisplayItem/DisplayInstructions';
|
|
27
|
+
import LabelWrapper from '../ItemParts/ItemLabelWrapper';
|
|
28
|
+
function ChoiceRadioAnswerOptionItem(props) {
|
|
29
|
+
var _a;
|
|
30
|
+
const { qItem, qrItem, isRepeated, onQrItemChange, orientation } = props;
|
|
31
|
+
// Init input value
|
|
32
|
+
const qrChoiceRadio = qrItem !== null && qrItem !== void 0 ? qrItem : createEmptyQrItem(qItem);
|
|
33
|
+
const valueRadio = getQrChoiceValue(qrChoiceRadio);
|
|
34
|
+
// Get additional rendering extensions
|
|
35
|
+
const { displayInstructions, readOnly } = useRenderingExtensions(qItem);
|
|
36
|
+
// Event handlers
|
|
37
|
+
function handleChange(e) {
|
|
38
|
+
if (qItem.answerOption) {
|
|
39
|
+
const qrAnswer = findInAnswerOptions(qItem.answerOption, e.target.value);
|
|
40
|
+
if (qrAnswer) {
|
|
41
|
+
onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [qrAnswer] }));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const choiceRadio = (React.createElement(QRadioGroup, { row: orientation === ChoiceItemOrientation.Horizontal, name: qItem.text, id: qItem.id, onChange: handleChange, value: valueRadio, "data-test": "q-item-radio-group" }, (_a = qItem.answerOption) === null || _a === void 0 ? void 0 : _a.map((option) => {
|
|
46
|
+
var _a, _b, _c;
|
|
47
|
+
if (option['valueCoding']) {
|
|
48
|
+
return (React.createElement(ChoiceRadioSingle, { key: (_a = option.valueCoding.code) !== null && _a !== void 0 ? _a : '', value: (_b = option.valueCoding.code) !== null && _b !== void 0 ? _b : '', label: (_c = option.valueCoding.display) !== null && _c !== void 0 ? _c : `${option.valueCoding.code}`, readOnly: readOnly }));
|
|
49
|
+
}
|
|
50
|
+
else if (option['valueString']) {
|
|
51
|
+
return (React.createElement(ChoiceRadioSingle, { key: option.valueString, value: option.valueString, label: option.valueString, readOnly: readOnly }));
|
|
52
|
+
}
|
|
53
|
+
else if (option['valueInteger']) {
|
|
54
|
+
return (React.createElement(ChoiceRadioSingle, { key: option.valueInteger, value: option.valueInteger.toString(), label: option.valueInteger.toString(), readOnly: readOnly }));
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
})));
|
|
60
|
+
const renderQItemChoiceRadio = isRepeated ? (React.createElement(React.Fragment, null, choiceRadio)) : (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-choice-radio-answer-option-box" },
|
|
61
|
+
React.createElement(Grid, { container: true, columnSpacing: 6 },
|
|
62
|
+
React.createElement(Grid, { item: true, xs: 5 },
|
|
63
|
+
React.createElement(LabelWrapper, { qItem: qItem })),
|
|
64
|
+
React.createElement(Grid, { item: true, xs: 7 },
|
|
65
|
+
choiceRadio,
|
|
66
|
+
React.createElement(DisplayInstructions, { displayInstructions: displayInstructions })))));
|
|
67
|
+
return React.createElement(React.Fragment, null, renderQItemChoiceRadio);
|
|
68
|
+
}
|
|
69
|
+
export default ChoiceRadioAnswerOptionItem;
|
|
70
|
+
//# sourceMappingURL=ChoiceRadioAnswerOptionItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChoiceRadioAnswerOptionItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
3
|
+
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
4
|
+
import type { PropsWithIsRepeatedAttribute, PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
|
|
5
|
+
interface ChoiceRadioAnswerValueSetItemProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>, PropsWithIsRepeatedAttribute {
|
|
6
|
+
qItem: QuestionnaireItem;
|
|
7
|
+
qrItem: QuestionnaireResponseItem;
|
|
8
|
+
orientation: ChoiceItemOrientation;
|
|
9
|
+
}
|
|
10
|
+
declare function ChoiceRadioAnswerValueSetItem(props: ChoiceRadioAnswerValueSetItemProps): React.JSX.Element;
|
|
11
|
+
export default ChoiceRadioAnswerValueSetItem;
|
|
@@ -0,0 +1,73 @@
|
|
|
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
|
+
import React from 'react';
|
|
18
|
+
import Grid from '@mui/material/Grid';
|
|
19
|
+
import Typography from '@mui/material/Typography';
|
|
20
|
+
import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
21
|
+
import { findInAnswerValueSetCodings } from '../../../utils/choice';
|
|
22
|
+
import ChoiceRadioSingle from './ChoiceRadioSingle';
|
|
23
|
+
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
24
|
+
import { QRadioGroup } from '../Item.styles';
|
|
25
|
+
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
26
|
+
import useValueSetCodings from '../../../hooks/useValueSetCodings';
|
|
27
|
+
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
28
|
+
import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
|
|
29
|
+
import { StyledAlert } from '../../Alert.styles';
|
|
30
|
+
import DisplayInstructions from '../DisplayItem/DisplayInstructions';
|
|
31
|
+
import LabelWrapper from '../ItemParts/ItemLabelWrapper';
|
|
32
|
+
function ChoiceRadioAnswerValueSetItem(props) {
|
|
33
|
+
var _a;
|
|
34
|
+
const { qItem, qrItem, isRepeated, onQrItemChange, orientation } = props;
|
|
35
|
+
// Init input value
|
|
36
|
+
const qrChoiceRadio = qrItem !== null && qrItem !== void 0 ? qrItem : createEmptyQrItem(qItem);
|
|
37
|
+
let valueRadio;
|
|
38
|
+
if (qrChoiceRadio.answer) {
|
|
39
|
+
valueRadio = (_a = qrChoiceRadio.answer[0].valueCoding) === null || _a === void 0 ? void 0 : _a.code;
|
|
40
|
+
}
|
|
41
|
+
// Get additional rendering extensions
|
|
42
|
+
const { displayInstructions, readOnly } = useRenderingExtensions(qItem);
|
|
43
|
+
// Get codings/options from valueSet
|
|
44
|
+
const { codings, serverError } = useValueSetCodings(qItem);
|
|
45
|
+
function handleChange(event) {
|
|
46
|
+
if (codings.length > 0) {
|
|
47
|
+
const qrAnswer = findInAnswerValueSetCodings(codings, event.target.value);
|
|
48
|
+
if (qrAnswer) {
|
|
49
|
+
onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueCoding: qrAnswer }] }));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const choiceRadio = codings.length > 0 ? (React.createElement(QRadioGroup, { row: orientation === ChoiceItemOrientation.Horizontal, name: qItem.text, id: qItem.id, onChange: handleChange, value: valueRadio !== null && valueRadio !== void 0 ? valueRadio : null }, codings.map((coding) => {
|
|
54
|
+
var _a, _b, _c;
|
|
55
|
+
return (React.createElement(ChoiceRadioSingle, { key: (_a = coding.code) !== null && _a !== void 0 ? _a : '', value: (_b = coding.code) !== null && _b !== void 0 ? _b : '', label: (_c = coding.display) !== null && _c !== void 0 ? _c : `${coding.code}`, readOnly: readOnly }));
|
|
56
|
+
}))) : serverError ? (React.createElement(StyledAlert, { color: "error" },
|
|
57
|
+
React.createElement(ErrorOutlineIcon, { color: "error", sx: { pr: 0.75 } }),
|
|
58
|
+
React.createElement(Typography, { variant: "subtitle2" }, "There was an error fetching options from the terminology server"))) : (React.createElement(StyledAlert, { color: "error" },
|
|
59
|
+
React.createElement(ErrorOutlineIcon, { color: "error", sx: { pr: 0.75 } }),
|
|
60
|
+
React.createElement(Typography, { variant: "subtitle2" }, "Unable to fetch options from the questionnaire or launch context")));
|
|
61
|
+
if (isRepeated) {
|
|
62
|
+
return React.createElement(React.Fragment, null, choiceRadio);
|
|
63
|
+
}
|
|
64
|
+
return (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-choice-radio-answer-value-set-box" },
|
|
65
|
+
React.createElement(Grid, { container: true, columnSpacing: 6 },
|
|
66
|
+
React.createElement(Grid, { item: true, xs: 5 },
|
|
67
|
+
React.createElement(LabelWrapper, { qItem: qItem })),
|
|
68
|
+
React.createElement(Grid, { item: true, xs: 7 },
|
|
69
|
+
choiceRadio,
|
|
70
|
+
React.createElement(DisplayInstructions, { displayInstructions: displayInstructions })))));
|
|
71
|
+
}
|
|
72
|
+
export default ChoiceRadioAnswerValueSetItem;
|
|
73
|
+
//# sourceMappingURL=ChoiceRadioAnswerValueSetItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChoiceRadioAnswerValueSetItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
import React from 'react';
|
|
18
|
+
import FormControlLabel from '@mui/material/FormControlLabel';
|
|
19
|
+
import Radio from '@mui/material/Radio';
|
|
20
|
+
function ChoiceRadioButton(props) {
|
|
21
|
+
const { value, label, readOnly } = props;
|
|
22
|
+
return (React.createElement(FormControlLabel, { disabled: readOnly, value: value, control: React.createElement(Radio, { size: "small" }), label: label, sx: { mr: 3 } }));
|
|
23
|
+
}
|
|
24
|
+
export default ChoiceRadioButton;
|
|
25
|
+
//# sourceMappingURL=ChoiceRadioButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChoiceRadioButton.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceRadioButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,KAAK,MAAM,qBAAqB,CAAC;AAQxC,SAAS,iBAAiB,CAAC,KAAY;IACrC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEzC,OAAO,CACL,oBAAC,gBAAgB,IACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,oBAAC,KAAK,IAAC,IAAI,EAAC,OAAO,GAAG,EAC/B,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GACb,CACH,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
import React from 'react';
|
|
18
|
+
import FormControlLabel from '@mui/material/FormControlLabel';
|
|
19
|
+
import Radio from '@mui/material/Radio';
|
|
20
|
+
function ChoiceRadioSingle(props) {
|
|
21
|
+
const { value, label, readOnly } = props;
|
|
22
|
+
return (React.createElement(FormControlLabel, { disabled: readOnly, value: value, control: React.createElement(Radio, { size: "small" }), label: label, sx: { mr: 3 } }));
|
|
23
|
+
}
|
|
24
|
+
export default ChoiceRadioSingle;
|
|
25
|
+
//# sourceMappingURL=ChoiceRadioSingle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChoiceRadioSingle.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceRadioSingle.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,KAAK,MAAM,qBAAqB,CAAC;AAQxC,SAAS,iBAAiB,CAAC,KAA6B;IACtD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEzC,OAAO,CACL,oBAAC,gBAAgB,IACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,oBAAC,KAAK,IAAC,IAAI,EAAC,OAAO,GAAG,EAC/B,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GACb,CACH,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
import React from 'react';
|
|
18
|
+
import FormControlLabel from '@mui/material/FormControlLabel';
|
|
19
|
+
import Radio from '@mui/material/Radio';
|
|
20
|
+
function ChoiceRadioSingleItem(props) {
|
|
21
|
+
const { value, label, readOnly } = props;
|
|
22
|
+
return (React.createElement(FormControlLabel, { disabled: readOnly, value: value, control: React.createElement(Radio, { size: "small" }), label: label, sx: { mr: 3 } }));
|
|
23
|
+
}
|
|
24
|
+
export default ChoiceRadioSingleItem;
|
|
25
|
+
//# sourceMappingURL=ChoiceRadioSingleItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChoiceRadioSingleItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceRadioSingleItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,KAAK,MAAM,qBAAqB,CAAC;AAQxC,SAAS,qBAAqB,CAAC,KAAY;IACzC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEzC,OAAO,CACL,oBAAC,gBAAgB,IACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,oBAAC,KAAK,IAAC,IAAI,EAAC,OAAO,GAAG,EAC/B,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GACb,CACH,CAAC;AACJ,CAAC;AAED,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
3
|
+
import type { PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute, PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
|
|
4
|
+
interface ChoiceSelectAnswerOptionItemProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>, PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute {
|
|
5
|
+
qItem: QuestionnaireItem;
|
|
6
|
+
qrItem: QuestionnaireResponseItem;
|
|
7
|
+
}
|
|
8
|
+
declare function ChoiceSelectAnswerOptionItem(props: ChoiceSelectAnswerOptionItemProps): React.JSX.Element;
|
|
9
|
+
export default ChoiceSelectAnswerOptionItem;
|
|
@@ -0,0 +1,75 @@
|
|
|
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
|
+
import React, { Fragment } from 'react';
|
|
18
|
+
import Grid from '@mui/material/Grid';
|
|
19
|
+
import InputAdornment from '@mui/material/InputAdornment';
|
|
20
|
+
import MenuItem from '@mui/material/MenuItem';
|
|
21
|
+
import Select from '@mui/material/Select';
|
|
22
|
+
import { findInAnswerOptions, getQrChoiceValue } from '../../../utils/choice';
|
|
23
|
+
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
24
|
+
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
25
|
+
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
26
|
+
import DisplayInstructions from '../DisplayItem/DisplayInstructions';
|
|
27
|
+
import LabelWrapper from '../ItemParts/ItemLabelWrapper';
|
|
28
|
+
function ChoiceSelectAnswerOptionItem(props) {
|
|
29
|
+
var _a;
|
|
30
|
+
const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
|
|
31
|
+
// Init input value
|
|
32
|
+
const qrChoiceSelect = qrItem !== null && qrItem !== void 0 ? qrItem : createEmptyQrItem(qItem);
|
|
33
|
+
let valueSelect = getQrChoiceValue(qrChoiceSelect);
|
|
34
|
+
if (valueSelect === null) {
|
|
35
|
+
valueSelect = '';
|
|
36
|
+
}
|
|
37
|
+
// Get additional rendering extensions
|
|
38
|
+
const { displayUnit, displayPrompt, displayInstructions, readOnly, entryFormat } = useRenderingExtensions(qItem);
|
|
39
|
+
// Event handlers
|
|
40
|
+
function handleChange(e) {
|
|
41
|
+
if (qItem.answerOption) {
|
|
42
|
+
const qrAnswer = findInAnswerOptions(qItem.answerOption, e.target.value);
|
|
43
|
+
if (qrAnswer) {
|
|
44
|
+
onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [qrAnswer] }));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
onQrItemChange(createEmptyQrItem(qItem));
|
|
49
|
+
}
|
|
50
|
+
const choiceSelectAnswerOption = (React.createElement(Select, { id: qItem.id, name: qItem.text, value: valueSelect, disabled: readOnly, fullWidth: true, placeholder: entryFormat, label: displayPrompt, endAdornment: React.createElement(InputAdornment, { position: 'end' }, displayUnit), sx: { maxWidth: !isTabled ? 280 : 3000, minWidth: 160 }, size: "small", onChange: handleChange }, (_a = qItem.answerOption) === null || _a === void 0 ? void 0 : _a.map((option, index) => {
|
|
51
|
+
var _a;
|
|
52
|
+
if (option['valueCoding']) {
|
|
53
|
+
return (React.createElement(MenuItem, { key: option.valueCoding.code, value: option.valueCoding.code }, (_a = option.valueCoding.display) !== null && _a !== void 0 ? _a : option.valueCoding.code));
|
|
54
|
+
}
|
|
55
|
+
if (option['valueString']) {
|
|
56
|
+
return (React.createElement(MenuItem, { key: option.valueString, value: option.valueString }, option.valueString));
|
|
57
|
+
}
|
|
58
|
+
if (option['valueInteger']) {
|
|
59
|
+
return (React.createElement(MenuItem, { key: option.valueInteger, value: option.valueInteger.toString() }, option.valueInteger));
|
|
60
|
+
}
|
|
61
|
+
return React.createElement(Fragment, { key: index });
|
|
62
|
+
})));
|
|
63
|
+
if (isRepeated) {
|
|
64
|
+
return React.createElement(React.Fragment, null, choiceSelectAnswerOption);
|
|
65
|
+
}
|
|
66
|
+
return (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-choice-select-answer-option-box" },
|
|
67
|
+
React.createElement(Grid, { container: true, columnSpacing: 6 },
|
|
68
|
+
React.createElement(Grid, { item: true, xs: 5 },
|
|
69
|
+
React.createElement(LabelWrapper, { qItem: qItem })),
|
|
70
|
+
React.createElement(Grid, { item: true, xs: 7 },
|
|
71
|
+
choiceSelectAnswerOption,
|
|
72
|
+
React.createElement(DisplayInstructions, { displayInstructions: displayInstructions })))));
|
|
73
|
+
}
|
|
74
|
+
export default ChoiceSelectAnswerOptionItem;
|
|
75
|
+
//# sourceMappingURL=ChoiceSelectAnswerOptionItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChoiceSelectAnswerOptionItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAE9C,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAG1C,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAM3E,OAAO,mBAAmB,MAAM,oCAAoC,CAAC;AACrE,OAAO,YAAY,MAAM,+BAA+B,CAAC;AAUzD,SAAS,4BAA4B,CAAC,KAAwC;;IAC5E,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAEtE,mBAAmB;IACnB,MAAM,cAAc,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,WAAW,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;IACnD,IAAI,WAAW,KAAK,IAAI,EAAE;QACxB,WAAW,GAAG,EAAE,CAAC;KAClB;IAED,sCAAsC;IACtC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,EAAE,GAC9E,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAEhC,iBAAiB;IACjB,SAAS,YAAY,CAAC,CAAoB;QACxC,IAAI,KAAK,CAAC,YAAY,EAAE;YACtB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzE,IAAI,QAAQ,EAAE;gBACZ,cAAc,iCAAM,iBAAiB,CAAC,KAAK,CAAC,KAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAG,CAAC;gBACpE,OAAO;aACR;SACF;QACD,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,wBAAwB,GAAG,CAC/B,oBAAC,MAAM,IACL,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,QAAQ,EAClB,SAAS,QACT,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,aAAa,EACpB,YAAY,EAAE,oBAAC,cAAc,IAAC,QAAQ,EAAE,KAAK,IAAG,WAAW,CAAkB,EAC7E,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EACvD,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,YAAY,IACrB,MAAA,KAAK,CAAC,YAAY,0CAAE,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;;QACzC,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE;YACzB,OAAO,CACL,oBAAC,QAAQ,IAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,IACnE,MAAA,MAAM,CAAC,WAAW,CAAC,OAAO,mCAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAC7C,CACZ,CAAC;SACH;QAED,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE;YACzB,OAAO,CACL,oBAAC,QAAQ,IAAC,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,IACzD,MAAM,CAAC,WAAW,CACV,CACZ,CAAC;SACH;QAED,IAAI,MAAM,CAAC,cAAc,CAAC,EAAE;YAC1B,OAAO,CACL,oBAAC,QAAQ,IAAC,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,IACtE,MAAM,CAAC,YAAY,CACX,CACZ,CAAC;SACH;QAED,OAAO,oBAAC,QAAQ,IAAC,GAAG,EAAE,KAAK,GAAI,CAAC;IAClC,CAAC,CAAC,CACK,CACV,CAAC;IAEF,IAAI,UAAU,EAAE;QACd,OAAO,0CAAG,wBAAwB,CAAI,CAAC;KACxC;IAED,OAAO,CACL,oBAAC,yBAAyB,iBAAW,wCAAwC;QAC3E,oBAAC,IAAI,IAAC,SAAS,QAAC,aAAa,EAAE,CAAC;YAC9B,oBAAC,IAAI,IAAC,IAAI,QAAC,EAAE,EAAE,CAAC;gBACd,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,GAAI,CACzB;YACP,oBAAC,IAAI,IAAC,IAAI,QAAC,EAAE,EAAE,CAAC;gBACb,wBAAwB;gBACzB,oBAAC,mBAAmB,IAAC,mBAAmB,EAAE,mBAAmB,GAAI,CAC5D,CACF,CACmB,CAC7B,CAAC;AACJ,CAAC;AAED,eAAe,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
3
|
+
import type { PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute, PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
|
|
4
|
+
interface ChoiceSelectAnswerValueSetItemProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>, PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute {
|
|
5
|
+
qItem: QuestionnaireItem;
|
|
6
|
+
qrItem: QuestionnaireResponseItem;
|
|
7
|
+
}
|
|
8
|
+
declare function ChoiceSelectAnswerValueSetItem(props: ChoiceSelectAnswerValueSetItemProps): React.JSX.Element;
|
|
9
|
+
export default ChoiceSelectAnswerValueSetItem;
|
|
@@ -0,0 +1,84 @@
|
|
|
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
|
+
import React, { useEffect, useMemo } from 'react';
|
|
18
|
+
import Autocomplete from '@mui/material/Autocomplete';
|
|
19
|
+
import Grid from '@mui/material/Grid';
|
|
20
|
+
import Typography from '@mui/material/Typography';
|
|
21
|
+
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
22
|
+
import { StandardTextField } from '../Textfield.styles';
|
|
23
|
+
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
24
|
+
import useValueSetCodings from '../../../hooks/useValueSetCodings';
|
|
25
|
+
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
26
|
+
import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
|
|
27
|
+
import { StyledAlert } from '../../Alert.styles';
|
|
28
|
+
import DisplayInstructions from '../DisplayItem/DisplayInstructions';
|
|
29
|
+
import LabelWrapper from '../ItemParts/ItemLabelWrapper';
|
|
30
|
+
function ChoiceSelectAnswerValueSetItem(props) {
|
|
31
|
+
const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
|
|
32
|
+
// Init input value
|
|
33
|
+
const qrChoiceSelect = qrItem !== null && qrItem !== void 0 ? qrItem : createEmptyQrItem(qItem);
|
|
34
|
+
let valueCoding;
|
|
35
|
+
if (qrChoiceSelect.answer) {
|
|
36
|
+
valueCoding = qrChoiceSelect.answer[0].valueCoding;
|
|
37
|
+
}
|
|
38
|
+
// Get additional rendering extensions
|
|
39
|
+
const { displayUnit, displayPrompt, displayInstructions, readOnly, entryFormat } = useRenderingExtensions(qItem);
|
|
40
|
+
// Get codings/options from valueSet
|
|
41
|
+
const { codings, serverError } = useValueSetCodings(qItem);
|
|
42
|
+
valueCoding = useMemo(() => {
|
|
43
|
+
const updatedValueCoding = codings.find((queriedCoding) => queriedCoding.code === (valueCoding === null || valueCoding === void 0 ? void 0 : valueCoding.code));
|
|
44
|
+
return updatedValueCoding !== null && updatedValueCoding !== void 0 ? updatedValueCoding : valueCoding;
|
|
45
|
+
}, [codings, valueCoding]);
|
|
46
|
+
// Check and remove populated answer if it is a string
|
|
47
|
+
// NOTE: $populate will try to populate answer as valueCoding,
|
|
48
|
+
// but will fail if answer provided is not within options
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
if (qrChoiceSelect.answer && qrChoiceSelect.answer[0].valueString) {
|
|
51
|
+
onQrItemChange(createEmptyQrItem(qItem));
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
// Only run effect once - on populate
|
|
55
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
56
|
+
[]);
|
|
57
|
+
// Event handlers
|
|
58
|
+
function handleChange(_, newValue) {
|
|
59
|
+
if (newValue) {
|
|
60
|
+
onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueCoding: newValue }] }));
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
onQrItemChange(createEmptyQrItem(qItem));
|
|
64
|
+
}
|
|
65
|
+
const choiceSelectAnswerValueSet = codings.length > 0 ? (React.createElement(Autocomplete, { id: qItem.id, options: codings, getOptionLabel: (option) => `${option.display}`, value: valueCoding !== null && valueCoding !== void 0 ? valueCoding : null, onChange: handleChange, openOnFocus: true, autoHighlight: true, sx: { maxWidth: !isTabled ? 280 : 3000, minWidth: 160, flexGrow: 1 }, size: "small", disabled: readOnly, placeholder: entryFormat, renderInput: (params) => (React.createElement(StandardTextField, Object.assign({ isTabled: isTabled, label: displayPrompt }, params, { InputProps: Object.assign(Object.assign({}, params.InputProps), { endAdornment: (React.createElement(React.Fragment, null,
|
|
66
|
+
params.InputProps.endAdornment,
|
|
67
|
+
displayUnit)) }), "data-test": "q-item-choice-dropdown-answer-value-set-field" }))) })) : serverError ? (React.createElement(StyledAlert, { color: "error" },
|
|
68
|
+
React.createElement(ErrorOutlineIcon, { color: "error", sx: { pr: 0.75 } }),
|
|
69
|
+
React.createElement(Typography, { variant: "subtitle2" }, "There was an error fetching options from the terminology server"))) : (React.createElement(StyledAlert, { color: "error" },
|
|
70
|
+
React.createElement(ErrorOutlineIcon, { color: "error", sx: { pr: 0.75 } }),
|
|
71
|
+
React.createElement(Typography, { variant: "subtitle2" }, "Unable to fetch options from the questionnaire or launch context")));
|
|
72
|
+
if (isRepeated) {
|
|
73
|
+
return React.createElement(React.Fragment, null, choiceSelectAnswerValueSet);
|
|
74
|
+
}
|
|
75
|
+
return (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-choice-dropdown-answer-value-set-box" },
|
|
76
|
+
React.createElement(Grid, { container: true, columnSpacing: 6 },
|
|
77
|
+
React.createElement(Grid, { item: true, xs: 5 },
|
|
78
|
+
React.createElement(LabelWrapper, { qItem: qItem })),
|
|
79
|
+
React.createElement(Grid, { item: true, xs: 7 },
|
|
80
|
+
choiceSelectAnswerValueSet,
|
|
81
|
+
React.createElement(DisplayInstructions, { displayInstructions: displayInstructions })))));
|
|
82
|
+
}
|
|
83
|
+
export default ChoiceSelectAnswerValueSetItem;
|
|
84
|
+
//# sourceMappingURL=ChoiceSelectAnswerValueSetItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChoiceSelectAnswerValueSetItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx"],"names":[],"mappings":"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"}
|