@aehrc/smart-forms-renderer 1.2.10 → 1.2.12
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/jest.config.ts +5 -5
- 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/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/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/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/stories/storybookWrappers/InitialiseFormWrapperForStorybook.d.ts +3 -2
- package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js +27 -6
- package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js.map +1 -1
- package/lib/stories/storybookWrappers/index.js +1 -1
- 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/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/manageForm.js +1 -0
- 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/extensions.ts +9 -3
- package/src/utils/manageForm.ts +1 -0
- package/src/utils/qrItem.ts +12 -0
- package/lib/components/FormComponents/ItemParts/AccessibleFeedback.d.ts +0 -7
- package/lib/components/FormComponents/ItemParts/AccessibleFeedback.js +0 -7
- package/lib/components/FormComponents/ItemParts/AccessibleFeedback.js.map +0 -1
- package/lib/interfaces/itemPath.interface.d.ts +0 -31
- package/lib/interfaces/itemPath.interface.js +0 -2
- package/lib/interfaces/itemPath.interface.js.map +0 -1
- package/lib/utils/itemPath.d.ts +0 -57
- package/lib/utils/itemPath.js +0 -75
- package/lib/utils/itemPath.js.map +0 -1
|
@@ -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,
|
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
|
@@ -117,6 +117,7 @@ export async function buildForm(params: BuildFormParams): Promise<void> {
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
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.
|
|
120
121
|
await questionnaireStore
|
|
121
122
|
.getState()
|
|
122
123
|
.buildSourceQuestionnaire(
|
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
|
+
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type ReactNode } from 'react';
|
|
2
|
-
interface AccessibleFeedbackProps {
|
|
3
|
-
children: ReactNode;
|
|
4
|
-
id?: string;
|
|
5
|
-
}
|
|
6
|
-
declare function AccessibleFeedback(props: AccessibleFeedbackProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
export default AccessibleFeedback;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
function AccessibleFeedback(props) {
|
|
3
|
-
const { children, id } = props;
|
|
4
|
-
return (_jsx("span", { id: id, role: "alert", "aria-live": "assertive", children: children }));
|
|
5
|
-
}
|
|
6
|
-
export default AccessibleFeedback;
|
|
7
|
-
//# sourceMappingURL=AccessibleFeedback.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AccessibleFeedback.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ItemParts/AccessibleFeedback.tsx"],"names":[],"mappings":";AAwBA,SAAS,kBAAkB,CAAC,KAA8B;IACxD,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IAE/B,OAAO,CACL,eAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAC,OAAO,eAAW,WAAW,YAC7C,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Represents a single step in the path to an item within a nested QuestionnaireResponse.
|
|
3
|
-
* Each step is identified by its `linkId`, and optionally a `repeatIndex` if the item
|
|
4
|
-
* occurs within a repeating group.
|
|
5
|
-
*/
|
|
6
|
-
export interface ItemPathSegment {
|
|
7
|
-
/** The `linkId` of the QuestionnaireResponseItem at this path segment. */
|
|
8
|
-
linkId: string;
|
|
9
|
-
/**
|
|
10
|
-
* The index of the repeated item if this segment occurs within a repeating group.
|
|
11
|
-
* Omitted if the item is not part of a repeating group.
|
|
12
|
-
*/
|
|
13
|
-
repeatIndex?: number;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Represents a full path from the root of a QuestionnaireResponse to a deeply nested item.
|
|
17
|
-
* Each segment corresponds to one level of the item hierarchy.
|
|
18
|
-
*
|
|
19
|
-
* Example:
|
|
20
|
-
* [
|
|
21
|
-
* { linkId: 'sectionA' },
|
|
22
|
-
* { linkId: 'groupB', repeatIndex: 1 },
|
|
23
|
-
* { linkId: 'questionC' }
|
|
24
|
-
* ]
|
|
25
|
-
*
|
|
26
|
-
* This path navigates through `sectionA`, into the second instance of `groupB`,
|
|
27
|
-
* and finally to `questionC`.
|
|
28
|
-
*
|
|
29
|
-
* @author Sean Fong
|
|
30
|
-
*/
|
|
31
|
-
export type ItemPath = ItemPathSegment[];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"itemPath.interface.js","sourceRoot":"","sources":["../../src/interfaces/itemPath.interface.ts"],"names":[],"mappings":""}
|
package/lib/utils/itemPath.d.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import type { ItemPath } from '../interfaces/itemPath.interface';
|
|
2
|
-
/**
|
|
3
|
-
* Creates an `ItemPath` containing a single segment for the given `linkId`.
|
|
4
|
-
* This is useful when you want to construct a path to a specific item without referencing its ancestry,
|
|
5
|
-
* such as when working with top-level items or when only the item's identity is relevant.
|
|
6
|
-
*
|
|
7
|
-
* @param linkId - The `linkId` of the item.
|
|
8
|
-
* @param repeatIndex - (Optional) If the item is part of a repeating group, specify its index.
|
|
9
|
-
* @returns An `ItemPath` containing one segment.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```ts
|
|
13
|
-
* const path = createSingleItemPath('question-1');
|
|
14
|
-
* // Output: [{ linkId: 'question-1' }]
|
|
15
|
-
*
|
|
16
|
-
* const pathWithRepeat = createSingleItemPath('question-1', 2);
|
|
17
|
-
* // Output: [{ linkId: 'question-1', repeatIndex: 2 }]
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
export declare function createSingleItemPath(linkId: string, repeatIndex?: number): ItemPath;
|
|
21
|
-
/**
|
|
22
|
-
* Creates a new `ItemPath` by extending the given path with a new segment for the provided `linkId`.
|
|
23
|
-
* This version does NOT include a `repeatIndex`. If repeat handling is needed,
|
|
24
|
-
* use `appendRepeatIndexToLastSegment` after extending.
|
|
25
|
-
*
|
|
26
|
-
* @param currentPath - The existing item path.
|
|
27
|
-
* @param linkId - The `linkId` to use in the new path segment.
|
|
28
|
-
* @returns A new `ItemPath` with the added segment.
|
|
29
|
-
*/
|
|
30
|
-
export declare function extendItemPath(currentPath: linkId: string): ItemPath;
|
|
31
|
-
/**
|
|
32
|
-
* Returns a new `ItemPath` with a `repeatIndex` applied to the last segment.
|
|
33
|
-
* Useful for denoting which repetition of a group is being accessed.
|
|
34
|
-
*
|
|
35
|
-
* @param path - The item path to modify.
|
|
36
|
-
* @param repeatIndex - The index to assign to the final segment.
|
|
37
|
-
* @returns A new `ItemPath` with the last segment modified to include `repeatIndex`.
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* const basePath = [{ linkId: 'groupA' }, { linkId: 'groupB' }];
|
|
41
|
-
* appendRepeatIndexToLastSegment(basePath, 2);
|
|
42
|
-
* // → [{ linkId: 'groupA' }, { linkId: 'groupB', repeatIndex: 2 }]
|
|
43
|
-
*/
|
|
44
|
-
export declare function appendRepeatIndexToLastSegment(path: repeatIndex: number): ItemPath;
|
|
45
|
-
/**
|
|
46
|
-
* Converts an `ItemPath` to a FHIRPath-compatible string.
|
|
47
|
-
*
|
|
48
|
-
* For example, the path:
|
|
49
|
-
* [
|
|
50
|
-
* { linkId: 'groupA' },
|
|
51
|
-
* { linkId: 'repeatingGroup', repeatIndex: 1 },
|
|
52
|
-
* { linkId: 'questionB' }
|
|
53
|
-
* ]
|
|
54
|
-
*
|
|
55
|
-
* Returns: "item.where(linkId='groupA').item.where(linkId='repeatingGroup')[1].item.where(linkId='questionB')"
|
|
56
|
-
*/
|
|
57
|
-
export declare function itemPathToFhirPathString(path: ItemPath): string;
|
package/lib/utils/itemPath.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates an `ItemPath` containing a single segment for the given `linkId`.
|
|
3
|
-
* This is useful when you want to construct a path to a specific item without referencing its ancestry,
|
|
4
|
-
* such as when working with top-level items or when only the item's identity is relevant.
|
|
5
|
-
*
|
|
6
|
-
* @param linkId - The `linkId` of the item.
|
|
7
|
-
* @param repeatIndex - (Optional) If the item is part of a repeating group, specify its index.
|
|
8
|
-
* @returns An `ItemPath` containing one segment.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```ts
|
|
12
|
-
* const path = createSingleItemPath('question-1');
|
|
13
|
-
* // Output: [{ linkId: 'question-1' }]
|
|
14
|
-
*
|
|
15
|
-
* const pathWithRepeat = createSingleItemPath('question-1', 2);
|
|
16
|
-
* // Output: [{ linkId: 'question-1', repeatIndex: 2 }]
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
export function createSingleItemPath(linkId, repeatIndex) {
|
|
20
|
-
return repeatIndex !== undefined ? [{ linkId, repeatIndex }] : [{ linkId }];
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Creates a new `ItemPath` by extending the given path with a new segment for the provided `linkId`.
|
|
24
|
-
* This version does NOT include a `repeatIndex`. If repeat handling is needed,
|
|
25
|
-
* use `appendRepeatIndexToLastSegment` after extending.
|
|
26
|
-
*
|
|
27
|
-
* @param currentPath - The existing item path.
|
|
28
|
-
* @param linkId - The `linkId` to use in the new path segment.
|
|
29
|
-
* @returns A new `ItemPath` with the added segment.
|
|
30
|
-
*/
|
|
31
|
-
export function extendItemPath(currentPath, linkId) {
|
|
32
|
-
return [...currentPath, { linkId }];
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Returns a new `ItemPath` with a `repeatIndex` applied to the last segment.
|
|
36
|
-
* Useful for denoting which repetition of a group is being accessed.
|
|
37
|
-
*
|
|
38
|
-
* @param path - The item path to modify.
|
|
39
|
-
* @param repeatIndex - The index to assign to the final segment.
|
|
40
|
-
* @returns A new `ItemPath` with the last segment modified to include `repeatIndex`.
|
|
41
|
-
*
|
|
42
|
-
* @example
|
|
43
|
-
* const basePath = [{ linkId: 'groupA' }, { linkId: 'groupB' }];
|
|
44
|
-
* appendRepeatIndexToLastSegment(basePath, 2);
|
|
45
|
-
* // → [{ linkId: 'groupA' }, { linkId: 'groupB', repeatIndex: 2 }]
|
|
46
|
-
*/
|
|
47
|
-
export function appendRepeatIndexToLastSegment(path, repeatIndex) {
|
|
48
|
-
if (path.length === 0)
|
|
49
|
-
return [];
|
|
50
|
-
const newPath = [...path];
|
|
51
|
-
newPath[path.length - 1] = Object.assign(Object.assign({}, newPath[path.length - 1]), { repeatIndex });
|
|
52
|
-
return newPath;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Converts an `ItemPath` to a FHIRPath-compatible string.
|
|
56
|
-
*
|
|
57
|
-
* For example, the path:
|
|
58
|
-
* [
|
|
59
|
-
* { linkId: 'groupA' },
|
|
60
|
-
* { linkId: 'repeatingGroup', repeatIndex: 1 },
|
|
61
|
-
* { linkId: 'questionB' }
|
|
62
|
-
* ]
|
|
63
|
-
*
|
|
64
|
-
* Returns: "item.where(linkId='groupA').item.where(linkId='repeatingGroup')[1].item.where(linkId='questionB')"
|
|
65
|
-
*/
|
|
66
|
-
export function itemPathToFhirPathString(path) {
|
|
67
|
-
return path
|
|
68
|
-
.map((segment, index) => {
|
|
69
|
-
const base = `where(linkId='${segment.linkId}')`;
|
|
70
|
-
const repeat = segment.repeatIndex !== undefined ? `[${segment.repeatIndex}]` : '';
|
|
71
|
-
return (index === 0 ? 'item.' : '') + base + repeat;
|
|
72
|
-
})
|
|
73
|
-
.join('.item.');
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=itemPath.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"itemPath.js","sourceRoot":"","sources":["../../src/utils/itemPath.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,WAAoB;IACvE,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,WAAqB,EAAE,MAAc;IAClE,OAAO,CAAC,GAAG,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAAc,EAAE,WAAmB;IAChF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,mCAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAE,WAAW,GAAE,CAAC;IACxE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAc;IACrD,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,iBAAiB,OAAO,CAAC,MAAM,IAAI,CAAC;QACjD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;IACtD,CAAC,CAAC;SACD,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpB,CAAC"}
|