@aehrc/smart-forms-renderer 1.2.11 → 1.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js +2 -2
- package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js.map +1 -1
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js +2 -2
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/CheckboxOptionList.js +2 -1
- package/lib/components/FormComponents/ChoiceItems/CheckboxOptionList.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.d.ts +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js +3 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +5 -6
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.d.ts +2 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +61 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +5 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js +2 -2
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js.map +1 -1
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js +2 -2
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js.map +1 -1
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.js +3 -3
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.js.map +1 -1
- package/lib/components/FormComponents/DecimalItem/DecimalItem.js +2 -2
- package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemView.js +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemView.js.map +1 -1
- package/lib/components/FormComponents/IntegerItem/IntegerItem.js +2 -2
- package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/CheckboxSingle.d.ts +3 -1
- package/lib/components/FormComponents/ItemParts/CheckboxSingle.js +2 -2
- package/lib/components/FormComponents/ItemParts/CheckboxSingle.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/FadingCheckIcon.d.ts +7 -0
- package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +26 -0
- package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/ItemLabel.js +1 -7
- package/lib/components/FormComponents/ItemParts/ItemLabel.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelText.d.ts +8 -0
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js +63 -0
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.d.ts +8 -0
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +53 -0
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/ItemTextSwitcher copy.d.ts +7 -0
- package/lib/components/FormComponents/ItemParts/ItemTextSwitcher copy.js +39 -0
- package/lib/components/FormComponents/ItemParts/ItemTextSwitcher copy.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/ItemTextSwitcher.js +3 -19
- package/lib/components/FormComponents/ItemParts/ItemTextSwitcher.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/RadioOptionList.js +2 -1
- package/lib/components/FormComponents/ItemParts/RadioOptionList.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/StyledText.d.ts +8 -0
- package/lib/components/FormComponents/ItemParts/StyledText.js +30 -0
- package/lib/components/FormComponents/ItemParts/StyledText.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.d.ts +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js +3 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +5 -5
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.d.ts +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js +71 -4
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +5 -6
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.d.ts +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js +3 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +5 -6
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/QuantityItem/QuantityItem.js +2 -2
- package/lib/components/FormComponents/QuantityItem/QuantityItem.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.d.ts +10 -0
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +30 -0
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +1 -0
- package/lib/components/FormComponents/SliderItem/Slider.styles.d.ts +1 -1
- package/lib/components/FormComponents/SliderItem/SliderItem.js +2 -2
- package/lib/components/FormComponents/SliderItem/SliderItem.js.map +1 -1
- package/lib/components/FormComponents/StringItem/StringItem.js +2 -2
- package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
- package/lib/components/FormComponents/TextItem/TextItem.js +2 -2
- package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
- package/lib/components/FormComponents/TimeItem/TimeItem.js +2 -2
- package/lib/components/FormComponents/TimeItem/TimeItem.js.map +1 -1
- package/lib/components/FormComponents/UrlItem/UrlItem.js +2 -2
- package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -1
- package/lib/components/Iconify/Iconify.d.ts +10 -0
- package/lib/components/Iconify/Iconify.js +26 -0
- package/lib/components/Iconify/Iconify.js.map +1 -0
- package/lib/components/Renderer/FormBodyPage.d.ts +9 -0
- package/lib/components/Renderer/FormBodyPage.js +43 -0
- package/lib/components/Renderer/FormBodyPage.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/FormTopLevelPage.d.ts +9 -0
- package/lib/components/Renderer/FormTopLevelPage.js +29 -0
- package/lib/components/Renderer/FormTopLevelPage.js.map +1 -0
- package/lib/hooks/useBooleanCalculatedExpression.d.ts +12 -0
- package/lib/hooks/useBooleanCalculatedExpression.js +52 -0
- package/lib/hooks/useBooleanCalculatedExpression.js.map +1 -0
- package/lib/hooks/useCalculatedExpressionAnimating.d.ts +1 -0
- package/lib/hooks/useCalculatedExpressionAnimating.js +18 -0
- package/lib/hooks/useCalculatedExpressionAnimating.js.map +1 -0
- package/lib/hooks/useCalculatedExpressionUpdated.d.ts +1 -1
- package/lib/hooks/useCalculatedExpressionUpdated.js +18 -9
- package/lib/hooks/useCalculatedExpressionUpdated.js.map +1 -1
- package/lib/hooks/useDecimalCalculatedExpression.d.ts +13 -0
- package/lib/hooks/useDecimalCalculatedExpression.js +58 -0
- package/lib/hooks/useDecimalCalculatedExpression.js.map +1 -0
- package/lib/hooks/useInitialiseGroupTable.d.ts +4 -0
- package/lib/hooks/useInitialiseGroupTable.js +36 -0
- package/lib/hooks/useInitialiseGroupTable.js.map +1 -0
- package/lib/hooks/useIntegerCalculatedExpression.d.ts +12 -0
- package/lib/hooks/useIntegerCalculatedExpression.js +55 -0
- package/lib/hooks/useIntegerCalculatedExpression.js.map +1 -0
- package/lib/hooks/useNumberInput.d.ts +3 -0
- package/lib/hooks/useNumberInput.js +31 -0
- package/lib/hooks/useNumberInput.js.map +1 -0
- package/lib/hooks/useParseXhtml.d.ts +2 -2
- package/lib/hooks/useParseXhtml.js +5 -5
- package/lib/hooks/useParseXhtml.js.map +1 -1
- package/lib/hooks/useRepeatAnswers.d.ts +4 -0
- package/lib/hooks/useRepeatAnswers.js +34 -0
- package/lib/hooks/useRepeatAnswers.js.map +1 -0
- package/lib/hooks/useRepeatGroups.d.ts +4 -0
- package/lib/hooks/useRepeatGroups.js +34 -0
- package/lib/hooks/useRepeatGroups.js.map +1 -0
- package/lib/hooks/useShowFeedback.d.ts +11 -0
- package/lib/hooks/useShowFeedback.js +33 -0
- package/lib/hooks/useShowFeedback.js.map +1 -0
- package/lib/hooks/useStringCalculatedExpression.d.ts +14 -0
- package/lib/hooks/useStringCalculatedExpression.js +69 -0
- package/lib/hooks/useStringCalculatedExpression.js.map +1 -0
- package/lib/hooks/useStringInput.d.ts +3 -0
- package/lib/hooks/useStringInput.js +31 -0
- package/lib/hooks/useStringInput.js.map +1 -0
- package/lib/interfaces/itemPath.interface.d.ts +31 -0
- package/lib/interfaces/itemPath.interface.js +2 -0
- package/lib/interfaces/itemPath.interface.js.map +1 -0
- package/lib/interfaces/repeatItem.interface.d.ts +5 -0
- package/lib/interfaces/repeatItem.interface.js +2 -0
- package/lib/interfaces/repeatItem.interface.js.map +1 -0
- package/lib/stores/questionnaireStore.js +15 -2
- package/lib/stores/questionnaireStore.js.map +1 -1
- package/lib/stores/rendererStylingStore.d.ts +144 -0
- package/lib/stores/rendererStylingStore.js +68 -0
- package/lib/stores/rendererStylingStore.js.map +1 -0
- package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.d.ts +30 -0
- package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js +46 -0
- package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js.map +1 -0
- package/lib/stories/storybookWrappers/index.d.ts +2 -0
- package/lib/stories/storybookWrappers/index.js +18 -0
- package/lib/stories/storybookWrappers/index.js.map +1 -0
- package/lib/stories/testUtils.d.ts +23 -0
- package/lib/stories/testUtils.js +249 -0
- package/lib/stories/testUtils.js.map +1 -0
- package/lib/theme/Theme.d.ts +44 -0
- package/lib/theme/Theme.js +45 -0
- package/lib/theme/Theme.js.map +1 -0
- package/lib/theme/customGlobalStyles.d.ts +2 -0
- package/lib/theme/customGlobalStyles.js +61 -0
- package/lib/theme/customGlobalStyles.js.map +1 -0
- package/lib/theme/overrides/Accordion.d.ts +14 -0
- package/lib/theme/overrides/Accordion.js +32 -0
- package/lib/theme/overrides/Accordion.js.map +1 -0
- package/lib/theme/overrides/Autocomplete.d.ts +10 -0
- package/lib/theme/overrides/Autocomplete.js +28 -0
- package/lib/theme/overrides/Autocomplete.js.map +1 -0
- package/lib/theme/overrides/Button.d.ts +33 -0
- package/lib/theme/overrides/Button.js +52 -0
- package/lib/theme/overrides/Button.js.map +1 -0
- package/lib/theme/overrides/Card.d.ts +35 -0
- package/lib/theme/overrides/Card.js +49 -0
- package/lib/theme/overrides/Card.js.map +1 -0
- package/lib/theme/overrides/Input.d.ts +64 -0
- package/lib/theme/overrides/Input.js +81 -0
- package/lib/theme/overrides/Input.js.map +1 -0
- package/lib/theme/overrides/Overrides.d.ts +3 -0
- package/lib/theme/overrides/Overrides.js +29 -0
- package/lib/theme/overrides/Overrides.js.map +1 -0
- package/lib/theme/overrides/Paper.d.ts +12 -0
- package/lib/theme/overrides/Paper.js +31 -0
- package/lib/theme/overrides/Paper.js.map +1 -0
- package/lib/theme/overrides/SpeedDial.d.ts +16 -0
- package/lib/theme/overrides/SpeedDial.js +34 -0
- package/lib/theme/overrides/SpeedDial.js.map +1 -0
- package/lib/theme/overrides/Table.d.ts +12 -0
- package/lib/theme/overrides/Table.js +30 -0
- package/lib/theme/overrides/Table.js.map +1 -0
- package/lib/theme/palette.d.ts +27 -0
- package/lib/theme/palette.js +67 -0
- package/lib/theme/palette.js.map +1 -0
- package/lib/theme/shadows.d.ts +2 -0
- package/lib/theme/shadows.js +52 -0
- package/lib/theme/shadows.js.map +1 -0
- package/lib/utils/answerExpression.d.ts +18 -0
- package/lib/utils/answerExpression.js +133 -0
- package/lib/utils/answerExpression.js.map +1 -0
- package/lib/utils/calculatedExpression.js +1 -5
- 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/dynamicValueSet.d.ts +5 -0
- package/lib/utils/dynamicValueSet.js +96 -0
- package/lib/utils/dynamicValueSet.js.map +1 -0
- package/lib/utils/extensions.d.ts +2 -2
- package/lib/utils/extensions.js +2 -2
- package/lib/utils/extensions.js.map +1 -1
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.d.ts +14 -0
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js +639 -0
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js.map +1 -0
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.d.ts +3 -0
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.js +41 -0
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.js.map +1 -0
- package/lib/utils/itemControl.d.ts +97 -0
- package/lib/utils/itemControl.js +336 -0
- package/lib/utils/itemControl.js.map +1 -0
- package/lib/utils/itemPath.d.ts +57 -0
- package/lib/utils/itemPath.js +75 -0
- package/lib/utils/itemPath.js.map +1 -0
- package/lib/utils/manageForm.js +5 -4
- package/lib/utils/manageForm.js.map +1 -1
- package/lib/utils/qrItem.d.ts +6 -0
- package/lib/utils/qrItem.js +11 -0
- package/lib/utils/qrItem.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.d.ts +2 -0
- package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js +43 -0
- package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js.map +1 -0
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.d.ts +3 -0
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +101 -0
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -0
- package/lib/utils/validateQuestionnaire.d.ts +66 -0
- package/lib/utils/validateQuestionnaire.js +559 -0
- package/lib/utils/validateQuestionnaire.js.map +1 -0
- package/package.json +2 -2
- package/src/components/FormComponents/AttachmentItem/AttachmentItem.tsx +2 -2
- package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +2 -2
- package/src/components/FormComponents/ChoiceItems/CheckboxOptionList.tsx +5 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.tsx +5 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +6 -4
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +2 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +2 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +2 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +2 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioSingle.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +93 -4
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +2 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +4 -2
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +2 -2
- package/src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.tsx +2 -2
- package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.tsx +2 -2
- package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.tsx +3 -1
- package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +2 -2
- package/src/components/FormComponents/GroupItem/GroupItemView.tsx +1 -1
- package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +2 -2
- package/src/components/FormComponents/ItemParts/CheckboxSingle.tsx +4 -2
- package/src/components/FormComponents/ItemParts/ItemLabel.tsx +1 -8
- package/src/components/FormComponents/ItemParts/ItemTextSwitcher.tsx +3 -25
- package/src/components/FormComponents/ItemParts/RadioOptionList.tsx +4 -1
- package/src/components/FormComponents/ItemParts/StyledText.tsx +46 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx +4 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +6 -3
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +2 -2
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.tsx +2 -2
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +2 -2
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.tsx +2 -2
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.tsx +86 -3
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +6 -4
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx +4 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +6 -4
- package/src/components/FormComponents/QuantityItem/QuantityItem.tsx +2 -2
- package/src/components/FormComponents/SliderItem/SliderItem.tsx +2 -2
- package/src/components/FormComponents/StringItem/StringItem.tsx +2 -2
- package/src/components/FormComponents/TextItem/TextItem.tsx +2 -2
- package/src/components/FormComponents/TimeItem/TimeItem.tsx +2 -2
- package/src/components/FormComponents/UrlItem/UrlItem.tsx +2 -2
- package/src/hooks/useCalculatedExpressionUpdated.ts +25 -11
- package/src/hooks/useParseXhtml.tsx +9 -6
- package/src/stores/questionnaireStore.ts +23 -0
- package/src/utils/calculatedExpression.ts +1 -5
- package/src/utils/extensions.ts +9 -3
- package/src/utils/manageForm.ts +10 -9
- package/src/utils/qrItem.ts +12 -0
|
@@ -39,6 +39,7 @@ import type { Variables } from '../interfaces/variables.interface';
|
|
|
39
39
|
import { processCalculatedExpressions } from '../utils/calculatedExpression';
|
|
40
40
|
import { applyComputedUpdates } from '../utils/computedUpdates';
|
|
41
41
|
import {
|
|
42
|
+
assignPopulatedAnswersToEnableWhen,
|
|
42
43
|
mutateRepeatEnableWhenItemInstances,
|
|
43
44
|
updateEnableWhenItemAnswer
|
|
44
45
|
} from '../utils/enableWhen';
|
|
@@ -441,6 +442,7 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
|
|
|
441
442
|
|
|
442
443
|
4. Re-run calculatedExpressions as a final step to ensure all calculations are up-to-date, incorporating any toggled options or dynamic value set changes.
|
|
443
444
|
5. Update store state based on the expressions that changed
|
|
445
|
+
6. (If initial update) Initialise enableWhen items
|
|
444
446
|
*/
|
|
445
447
|
|
|
446
448
|
const {
|
|
@@ -450,6 +452,7 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
|
|
|
450
452
|
variables,
|
|
451
453
|
targetConstraints,
|
|
452
454
|
answerOptionsToggleExpressions,
|
|
455
|
+
enableWhenItems,
|
|
453
456
|
enableWhenExpressions,
|
|
454
457
|
processedValueSets,
|
|
455
458
|
calculatedExpressions,
|
|
@@ -471,6 +474,8 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
|
|
|
471
474
|
enableWhenExpressions?: EnableWhenExpressions;
|
|
472
475
|
answerOptionsToggleExpressions?: Record<string, AnswerOptionsToggleExpression[]>;
|
|
473
476
|
processedValueSets?: Record<string, ProcessedValueSet>;
|
|
477
|
+
enableWhenItems?: EnableWhenItems;
|
|
478
|
+
enableWhenLinkedQuestions?: Record<string, string[]>;
|
|
474
479
|
}
|
|
475
480
|
) {
|
|
476
481
|
// Update QuestionnaireStore state
|
|
@@ -489,6 +494,12 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
|
|
|
489
494
|
}),
|
|
490
495
|
...(otherExpressions?.processedValueSets && {
|
|
491
496
|
processedValueSets: otherExpressions.processedValueSets
|
|
497
|
+
}),
|
|
498
|
+
...(otherExpressions?.enableWhenItems && {
|
|
499
|
+
enableWhenItems: otherExpressions.enableWhenItems
|
|
500
|
+
}),
|
|
501
|
+
...(otherExpressions?.enableWhenLinkedQuestions && {
|
|
502
|
+
enableWhenLinkedQuestions: otherExpressions.enableWhenLinkedQuestions
|
|
492
503
|
})
|
|
493
504
|
}));
|
|
494
505
|
|
|
@@ -573,6 +584,8 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
|
|
|
573
584
|
enableWhenExpressions: EnableWhenExpressions;
|
|
574
585
|
answerOptionsToggleExpressions: Record<string, AnswerOptionsToggleExpression[]>;
|
|
575
586
|
processedValueSets: Record<string, ProcessedValueSet>;
|
|
587
|
+
enableWhenItems: EnableWhenItems;
|
|
588
|
+
enableWhenLinkedQuestions: Record<string, string[]>;
|
|
576
589
|
}> = {};
|
|
577
590
|
if (targetConstraintsUpdate.isUpdated) {
|
|
578
591
|
otherExpressionsToUpdate.targetConstraints = targetConstraintsUpdate.value;
|
|
@@ -588,6 +601,16 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
|
|
|
588
601
|
otherExpressionsToUpdate.processedValueSets = processedValueSetsUpdate.value;
|
|
589
602
|
}
|
|
590
603
|
|
|
604
|
+
// Step 6: Evaluate enableWhen on the first update
|
|
605
|
+
if (isInitialUpdate) {
|
|
606
|
+
const {
|
|
607
|
+
initialisedItems: initialisedEnableWhenItems,
|
|
608
|
+
linkedQuestions: initialisedEnableWhenLinkedQuestions
|
|
609
|
+
} = assignPopulatedAnswersToEnableWhen(enableWhenItems, lastUpdatedResponse);
|
|
610
|
+
otherExpressionsToUpdate.enableWhenItems = initialisedEnableWhenItems;
|
|
611
|
+
otherExpressionsToUpdate.enableWhenLinkedQuestions = initialisedEnableWhenLinkedQuestions;
|
|
612
|
+
}
|
|
613
|
+
|
|
591
614
|
updateStoreState(
|
|
592
615
|
lastUpdatedResponse,
|
|
593
616
|
updatedCalculatedExpressions,
|
|
@@ -370,13 +370,9 @@ function applyCalculatedExpressionValuesRecursive(
|
|
|
370
370
|
);
|
|
371
371
|
}
|
|
372
372
|
|
|
373
|
-
|
|
373
|
+
const qrItem = qrItemOrItems;
|
|
374
374
|
const childQItems = qItem.item;
|
|
375
375
|
if (childQItems && childQItems.length > 0) {
|
|
376
|
-
// If item.type is 'group', create empty group qrItem
|
|
377
|
-
if (qItem.type === 'group') {
|
|
378
|
-
qrItem = qrItemOrItems ?? structuredClone(createEmptyQrGroup(qItem));
|
|
379
|
-
}
|
|
380
376
|
const childQrItems = qrItem?.item ?? [];
|
|
381
377
|
|
|
382
378
|
const indexMap = mapQItemsIndex(qItem);
|
package/src/utils/extensions.ts
CHANGED
|
@@ -15,7 +15,13 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import type {
|
|
18
|
+
import type {
|
|
19
|
+
Coding,
|
|
20
|
+
Element,
|
|
21
|
+
Extension,
|
|
22
|
+
QuestionnaireItem,
|
|
23
|
+
QuestionnaireItemAnswerOption
|
|
24
|
+
} from 'fhir/r4';
|
|
19
25
|
import type { RegexValidation } from '../interfaces/regex.interface';
|
|
20
26
|
import { structuredDataCapture } from 'fhir-sdc-helpers';
|
|
21
27
|
import { default as htmlParse } from 'html-react-parser';
|
|
@@ -160,8 +166,8 @@ export function getXHtmlString(qItem: QuestionnaireItem): string | null {
|
|
|
160
166
|
*
|
|
161
167
|
* @author Sean Fong
|
|
162
168
|
*/
|
|
163
|
-
export function getMarkdownString(
|
|
164
|
-
const extension =
|
|
169
|
+
export function getMarkdownString(element: Element | undefined): string | null {
|
|
170
|
+
const extension = element?.extension?.find(
|
|
165
171
|
(extension: Extension) =>
|
|
166
172
|
extension.url === 'http://hl7.org/fhir/StructureDefinition/rendering-markdown'
|
|
167
173
|
);
|
package/src/utils/manageForm.ts
CHANGED
|
@@ -116,19 +116,13 @@ export async function buildForm(params: BuildFormParams): Promise<void> {
|
|
|
116
116
|
terminologyServerStore.getState().resetUrl();
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
//
|
|
120
|
-
//
|
|
121
|
-
const initialisedQuestionnaireResponse = initialiseQuestionnaireResponse(
|
|
122
|
-
questionnaire,
|
|
123
|
-
questionnaireResponse
|
|
124
|
-
);
|
|
125
|
-
|
|
126
|
-
// The buildSourceQuestionnaire function now takes the initialisedQuestionnaireResponse, which includes item.initial values from the Questionnaire.
|
|
119
|
+
// QR is set to undefined here to prevent it from being initialised twice. This is defined like that for backward compatibility purposes.
|
|
120
|
+
// Warning: setting the QR here breaks pre-pop. For initialisation logic, do it in questionnaireStore.getState().updateExpressions() with isInitialUpdate=true.
|
|
127
121
|
await questionnaireStore
|
|
128
122
|
.getState()
|
|
129
123
|
.buildSourceQuestionnaire(
|
|
130
124
|
questionnaire,
|
|
131
|
-
|
|
125
|
+
undefined,
|
|
132
126
|
additionalContext,
|
|
133
127
|
terminologyServerUrl,
|
|
134
128
|
readOnly,
|
|
@@ -136,6 +130,13 @@ export async function buildForm(params: BuildFormParams): Promise<void> {
|
|
|
136
130
|
sdcUiOverrideComponents
|
|
137
131
|
);
|
|
138
132
|
|
|
133
|
+
// Initialise an empty questionnaireResponse from a given questionnaire
|
|
134
|
+
// Optionally takes in an existing questionnaireResponse to be initialised
|
|
135
|
+
const initialisedQuestionnaireResponse = initialiseQuestionnaireResponse(
|
|
136
|
+
questionnaire,
|
|
137
|
+
questionnaireResponse
|
|
138
|
+
);
|
|
139
|
+
|
|
139
140
|
// Set initialised QuestionnaireResponse as the source response in the store
|
|
140
141
|
questionnaireResponseStore.getState().buildSourceResponse(initialisedQuestionnaireResponse);
|
|
141
142
|
|
package/src/utils/qrItem.ts
CHANGED
|
@@ -312,3 +312,15 @@ export function updateQrNestedItems(
|
|
|
312
312
|
return;
|
|
313
313
|
}
|
|
314
314
|
}
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Gets the Id of the QR Item, if it has a Calculated Expression, then it returns a new Id, else it returns the passed Id.
|
|
318
|
+
*
|
|
319
|
+
* @author Janardhan Vignarajan
|
|
320
|
+
*/
|
|
321
|
+
export function getQRItemId(answerKey: string | undefined) {
|
|
322
|
+
// If the answerKey is through CalculatedExpression, then we assign a new random ID so that it does not fire again when user changes the value
|
|
323
|
+
return answerKey && answerKey.includes('calculatedExpression')
|
|
324
|
+
? Math.random().toString(36).slice(2)
|
|
325
|
+
: answerKey;
|
|
326
|
+
}
|