@aehrc/smart-forms-renderer 0.19.0 → 0.21.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/__mocks__/zustand.ts +1 -1
- package/lib/api/smartClient.js +1 -1
- package/lib/components/Alert.styles.js +1 -1
- package/lib/components/Box.styles.js +1 -1
- package/lib/components/FormComponents/AttachmentItem/AttachmentField.js +1 -1
- package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.js +1 -1
- package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.js +1 -1
- package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js +1 -1
- package/lib/components/FormComponents/AttachmentItem/AttachmentUrlField.js +1 -1
- package/lib/components/FormComponents/BooleanItem/BooleanField.js +1 -1
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +1 -1
- package/lib/components/FormComponents/DateTimeItem/DateTimeField.js +1 -1
- package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js +1 -1
- package/lib/components/FormComponents/{CustomDateItem/customDateTimePicker → DateTimeItems/CustomDateItem}/CustomDateField.js +1 -1
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.js.map +1 -0
- package/lib/components/FormComponents/{CustomDateItem → DateTimeItems/CustomDateItem}/CustomDateItem.d.ts +1 -1
- package/lib/components/FormComponents/{CustomDateItem → DateTimeItems/CustomDateItem}/CustomDateItem.js +13 -13
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js.map +1 -0
- package/lib/components/FormComponents/{CustomDateItem/customDateTimePicker → DateTimeItems/CustomDateItem}/DatePicker.js +1 -2
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/DatePicker.js.map +1 -0
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/DatePickerButton.js +29 -0
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/DatePickerButton.js.map +1 -0
- package/lib/components/FormComponents/{CustomDateItem/customDateTimePicker → DateTimeItems/CustomDateItem}/MuiDatePicker.js +1 -1
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/MuiDatePicker.js.map +1 -0
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.d.ts +9 -0
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js +116 -0
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js.map +1 -0
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.d.ts +15 -0
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.js +40 -0
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.js.map +1 -0
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/DateTimeField.d.ts +22 -0
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/DateTimeField.js +28 -0
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/DateTimeField.js.map +1 -0
- package/lib/components/FormComponents/{CustomDateItem/customDateTimePicker → DateTimeItems}/index.js +1 -1
- package/lib/components/FormComponents/DateTimeItems/index.js.map +1 -0
- package/lib/components/FormComponents/DateTimeItems/utils/index.d.ts +1 -0
- package/lib/components/FormComponents/{CustomDateItem → DateTimeItems/utils}/index.js +2 -2
- package/lib/components/FormComponents/DateTimeItems/utils/index.js.map +1 -0
- package/lib/components/FormComponents/{CustomDateItem/customDateTimePicker/utils/parseDates.d.ts → DateTimeItems/utils/parseDate.d.ts} +2 -2
- package/lib/components/FormComponents/{CustomDateItem/customDateTimePicker/utils/parseDates.js → DateTimeItems/utils/parseDate.js} +10 -10
- package/lib/components/FormComponents/DateTimeItems/utils/parseDate.js.map +1 -0
- package/lib/components/FormComponents/DateTimeItems/utils/parseTime.d.ts +19 -0
- package/lib/components/FormComponents/DateTimeItems/utils/parseTime.js +81 -0
- package/lib/components/FormComponents/DateTimeItems/utils/parseTime.js.map +1 -0
- package/lib/components/FormComponents/DecimalItem/DecimalField.js +1 -1
- package/lib/components/FormComponents/DecimalItem/DecimalItem.js +1 -1
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.js +1 -1
- package/lib/components/FormComponents/DisplayItem/DisplayInstructions.styles.js +1 -1
- package/lib/components/FormComponents/DisplayItem/DisplayItem.js +1 -1
- package/lib/components/FormComponents/GridGroup/GridGroup.js +1 -1
- package/lib/components/FormComponents/GridGroup/GridRow.js +1 -1
- package/lib/components/FormComponents/GridGroup/GridTable.js +1 -1
- package/lib/components/FormComponents/GridGroup/index.js +1 -1
- package/lib/components/FormComponents/GroupItem/GroupHeading.js +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItem.js +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItem.styles.js +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +1 -1
- package/lib/components/FormComponents/GroupItem/NextTabButton.js +1 -1
- package/lib/components/FormComponents/GroupItem/NextTabButtonWrapper.js +1 -1
- package/lib/components/FormComponents/IntegerItem/IntegerField.js +1 -1
- package/lib/components/FormComponents/IntegerItem/IntegerItem.js +1 -1
- package/lib/components/FormComponents/Item.styles.js +1 -1
- package/lib/components/FormComponents/ItemParts/CheckboxSingle.js +1 -1
- package/lib/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.js +1 -1
- package/lib/components/FormComponents/ItemParts/ContextDisplayItem.js +1 -1
- package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +1 -1
- package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +1 -1
- package/lib/components/FormComponents/ItemParts/RadioAnswerOptionButtons.js +1 -1
- package/lib/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.js +1 -1
- package/lib/components/FormComponents/Lists.styles.js +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.js +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +1 -1
- package/lib/components/FormComponents/RepeatGroup/AddItemButton.js +1 -1
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js +1 -1
- package/lib/components/FormComponents/RepeatGroup/index.js +1 -1
- package/lib/components/FormComponents/RepeatItem/AddItemButton.js +1 -1
- package/lib/components/FormComponents/RepeatItem/RemoveItemButton.js +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatField.js +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.styles.js +1 -1
- package/lib/components/FormComponents/RepeatItem/index.js +1 -1
- package/lib/components/FormComponents/SingleItem/SingleItem.js +1 -1
- package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js +4 -4
- package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/SingleItem/index.js +1 -1
- package/lib/components/FormComponents/SliderItem/Slider.styles.js +1 -1
- package/lib/components/FormComponents/SliderItem/SliderDisplayValue.js +1 -1
- package/lib/components/FormComponents/SliderItem/SliderField.js +1 -1
- package/lib/components/FormComponents/SliderItem/SliderItem.js +1 -1
- package/lib/components/FormComponents/SliderItem/SliderLabels.js +1 -1
- package/lib/components/FormComponents/StringItem/StringField.js +1 -1
- package/lib/components/FormComponents/StringItem/StringItem.js +1 -1
- package/lib/components/FormComponents/Tables/AddRowButton.js +1 -1
- package/lib/components/FormComponents/Tables/GroupTable.js +1 -1
- package/lib/components/FormComponents/Tables/GroupTableBody.js +1 -1
- package/lib/components/FormComponents/Tables/GroupTableRow.js +1 -1
- package/lib/components/FormComponents/Tables/GroupTableRowCells.js +1 -1
- package/lib/components/FormComponents/Tables/GroupTableView.js +1 -1
- package/lib/components/FormComponents/Tables/RemoveRowButton.js +1 -1
- package/lib/components/FormComponents/Tables/SelectRowButton.js +1 -1
- package/lib/components/FormComponents/Tables/Table.styles.js +1 -1
- package/lib/components/FormComponents/Tables/index.js +1 -1
- package/lib/components/FormComponents/TextItem/MuiTextField.js +1 -1
- package/lib/components/FormComponents/TextItem/TextField.js +1 -1
- package/lib/components/FormComponents/TextItem/TextItem.js +1 -1
- package/lib/components/FormComponents/Textfield.styles.js +1 -1
- package/lib/components/FormComponents/TimeItem/TimeField.js +1 -1
- package/lib/components/FormComponents/TimeItem/TimeItem.js +1 -1
- package/lib/components/FormComponents/UrlItem/UrlField.js +1 -1
- package/lib/components/FormComponents/UrlItem/UrlItem.js +1 -1
- package/lib/components/FormComponents/index.d.ts +1 -1
- package/lib/components/FormComponents/index.js +2 -2
- package/lib/components/FormComponents/index.js.map +1 -1
- package/lib/components/Iconify/Iconify.js +1 -1
- package/lib/components/Lists.styles.js +1 -1
- package/lib/components/Renderer/BaseRenderer.js +1 -1
- package/lib/components/Renderer/FormBodyCollapsible.js +1 -1
- package/lib/components/Renderer/FormBodySingleCollapsible.js +1 -1
- package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.js +1 -1
- package/lib/components/Renderer/FormBodyTabbed.js +1 -1
- package/lib/components/Renderer/FormTitle.js +1 -1
- package/lib/components/Renderer/FormTopLevelItem.js +1 -1
- package/lib/components/Renderer/SmartFormsRenderer.js +1 -1
- package/lib/components/Renderer/index.js +1 -1
- package/lib/components/Tabs/CompleteTabButton.js +1 -1
- package/lib/components/Tabs/FormBodySingleTab.js +1 -1
- package/lib/components/Tabs/FormBodyTabList.js +1 -1
- package/lib/components/Tabs/FormBodyTabListWrapper.js +1 -1
- package/lib/components/Tabs/ShowCompletedTabsSection.js +1 -1
- package/lib/components/index.js +1 -1
- package/lib/hooks/useAttachmentUrlValidation.js +1 -1
- package/lib/hooks/useContextDisplayItems.js +1 -1
- package/lib/hooks/useDateTimeNonEmpty.d.ts +2 -0
- package/lib/{components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.js → hooks/useDateTimeNonEmpty.js} +9 -3
- package/lib/hooks/useDateTimeNonEmpty.js.map +1 -0
- package/lib/hooks/useDateValidation.js +3 -3
- package/lib/hooks/useDateValidation.js.map +1 -1
- package/lib/hooks/useDebounce.js +1 -1
- package/lib/hooks/useDecimalCalculatedExpression.js +1 -1
- package/lib/hooks/useGroupTableRows.js +1 -1
- package/lib/hooks/useHidden.js +1 -1
- package/lib/hooks/useInitialiseGroupTable.js +1 -1
- package/lib/hooks/useInitialiseRenderer.js +1 -1
- package/lib/hooks/useInitialiseRepeatAnswers.js +1 -1
- package/lib/hooks/useInitialiseRepeatGroups.js +1 -1
- package/lib/hooks/useIntegerCalculatedExpression.js +1 -1
- package/lib/hooks/useNumberInput.js +1 -1
- package/lib/hooks/useQueryClient.js +1 -1
- package/lib/hooks/useReadOnly.js +1 -1
- package/lib/hooks/useRenderingExtensions.js +1 -1
- package/lib/hooks/useResponsive.js +1 -1
- package/lib/hooks/useSliderExtensions.js +1 -1
- package/lib/hooks/useStringCalculatedExpression.js +1 -1
- package/lib/hooks/useStringInput.js +1 -1
- package/lib/hooks/useTerminologyServerQuery.js +1 -1
- package/lib/hooks/useTimeValidation.d.ts +5 -0
- package/lib/hooks/useTimeValidation.js +54 -0
- package/lib/hooks/useTimeValidation.js.map +1 -0
- package/lib/hooks/useValidationFeedback.js +1 -1
- package/lib/hooks/useValueSetCodings.js +1 -1
- package/lib/interfaces/answerExpression.interface.js +1 -1
- package/lib/interfaces/choice.enum.js +1 -1
- package/lib/interfaces/enableWhen.interface.d.ts +11 -3
- package/lib/interfaces/enableWhen.interface.js +1 -1
- package/lib/interfaces/groupTable.interface.js +1 -1
- package/lib/interfaces/index.d.ts +1 -1
- package/lib/interfaces/populate.interface.js +1 -1
- package/lib/interfaces/questionnaireStore.interface.d.ts +2 -2
- package/lib/interfaces/questionnaireStore.interface.js +1 -1
- package/lib/interfaces/regex.interface.js +1 -1
- package/lib/interfaces/renderProps.interface.js +1 -1
- package/lib/interfaces/repeatGroup.interface.js +1 -1
- package/lib/interfaces/valueSet.interface.js +1 -1
- package/lib/interfaces/variables.interface.js +1 -1
- package/lib/stores/questionnaireResponseStore.js +1 -1
- package/lib/stores/questionnaireStore.d.ts +3 -3
- package/lib/stores/questionnaireStore.js +21 -6
- package/lib/stores/questionnaireStore.js.map +1 -1
- package/lib/stores/smartConfigStore.js +1 -1
- package/lib/stores/terminologyServerStore.js +1 -1
- package/lib/stories/MedicalHistoryTable.stories.js +1 -1
- package/lib/stories/SmartFormsRenderer.stories.js +1 -1
- package/lib/theme/customGlobalStyles.js +1 -1
- package/lib/theme/overrides/Accordion.js +1 -1
- package/lib/theme/overrides/Autocomplete.js +1 -1
- package/lib/theme/overrides/Button.js +1 -1
- package/lib/theme/overrides/Card.js +1 -1
- package/lib/theme/overrides/Input.js +1 -1
- package/lib/theme/overrides/Overrides.js +1 -1
- package/lib/theme/overrides/Paper.js +1 -1
- package/lib/theme/overrides/SpeedDial.js +1 -1
- package/lib/theme/overrides/Table.js +1 -1
- package/lib/theme/palette.js +1 -1
- package/lib/theme/shadows.js +1 -1
- package/lib/theme/typography.js +1 -1
- package/lib/utils/calculatedExpression.js +1 -1
- package/lib/utils/dayjsExtend.js +1 -1
- package/lib/utils/debounce.js +1 -1
- package/lib/utils/emptyResource.js +1 -1
- package/lib/utils/enableWhen.js +1 -1
- package/lib/utils/enableWhenExpression.d.ts +22 -5
- package/lib/utils/enableWhenExpression.js +98 -55
- package/lib/utils/enableWhenExpression.js.map +1 -1
- package/lib/utils/fhirpath.d.ts +3 -3
- package/lib/utils/fhirpath.js +1 -1
- package/lib/utils/formChanges.js +1 -1
- package/lib/utils/groupTable.js +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/utils/initialise.d.ts +3 -3
- package/lib/utils/initialise.js +1 -1
- package/lib/utils/itemControl.js +1 -1
- package/lib/utils/mapItem.js +1 -1
- package/lib/utils/openChoice.js +1 -1
- package/lib/utils/parseInputs.js +1 -1
- package/lib/utils/populateContexts.js +1 -1
- package/lib/utils/qItem.d.ts +2 -2
- package/lib/utils/qItem.js +9 -9
- package/lib/utils/qItem.js.map +1 -1
- package/lib/utils/qrItem.js +1 -1
- package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js +1 -1
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +2 -2
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/extractContainedValueSets.js +1 -1
- package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.d.ts +5 -5
- package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js +99 -35
- package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/extractTabs.js +1 -1
- package/lib/utils/questionnaireStoreUtils/extractVariables.js +1 -1
- package/lib/utils/questionnaireStoreUtils/resolveValueSets.js +1 -1
- package/lib/utils/removeEmptyAnswers.d.ts +2 -2
- package/lib/utils/removeEmptyAnswers.js +1 -1
- package/lib/utils/removeEmptyAnswers.js.map +1 -1
- package/lib/utils/repopulateItems.d.ts +2 -2
- package/lib/utils/repopulateItems.js +1 -1
- package/lib/utils/slider.js +1 -1
- package/lib/utils/tabs.d.ts +6 -6
- package/lib/utils/tabs.js +4 -19
- package/lib/utils/tabs.js.map +1 -1
- package/lib/utils/validateQuestionnaire.d.ts +2 -2
- package/lib/utils/validateQuestionnaire.js +1 -8
- package/lib/utils/validateQuestionnaire.js.map +1 -1
- package/lib/utils/valueSet.js +1 -1
- package/package.json +3 -3
- package/src/api/smartClient.ts +1 -1
- package/src/components/Alert.styles.ts +1 -1
- package/src/components/Box.styles.ts +1 -1
- package/src/components/FormComponents/AttachmentItem/AttachmentField.tsx +1 -1
- package/src/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.tsx +1 -1
- package/src/components/FormComponents/AttachmentItem/AttachmentFileDropBox.tsx +1 -1
- package/src/components/FormComponents/AttachmentItem/AttachmentItem.tsx +1 -1
- package/src/components/FormComponents/AttachmentItem/AttachmentUrlField.tsx +1 -1
- package/src/components/FormComponents/BooleanItem/BooleanField.tsx +1 -1
- package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioSingle.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +1 -1
- package/src/components/FormComponents/DateTimeItem/DateTimeField.tsx +1 -1
- package/src/components/FormComponents/DateTimeItem/DateTimeItem.tsx +1 -1
- package/src/components/FormComponents/{CustomDateItem/customDateTimePicker → DateTimeItems/CustomDateItem}/CustomDateField.tsx +1 -1
- package/src/components/FormComponents/{CustomDateItem → DateTimeItems/CustomDateItem}/CustomDateItem.tsx +15 -15
- package/src/components/FormComponents/{CustomDateItem/customDateTimePicker → DateTimeItems/CustomDateItem}/DatePicker.tsx +1 -2
- package/src/components/FormComponents/{CustomDateItem/customDateTimePicker → DateTimeItems/CustomDateItem}/DatePickerButton.tsx +18 -1
- package/src/components/FormComponents/{CustomDateItem/customDateTimePicker → DateTimeItems/CustomDateItem}/MuiDatePicker.ts +1 -1
- package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.tsx +222 -0
- package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.tsx +117 -0
- package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/DateTimeField.tsx +96 -0
- package/src/components/FormComponents/{CustomDateItem/customDateTimePicker → DateTimeItems}/index.ts +1 -1
- package/src/components/FormComponents/{CustomDateItem → DateTimeItems/utils}/index.ts +2 -2
- package/src/components/FormComponents/{CustomDateItem/customDateTimePicker/utils/parseDates.ts → DateTimeItems/utils/parseDate.ts} +10 -10
- package/src/components/FormComponents/DateTimeItems/utils/parseTime.ts +127 -0
- package/src/components/FormComponents/DecimalItem/DecimalField.tsx +1 -1
- package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +1 -1
- package/src/components/FormComponents/DisplayItem/DisplayInstructions.styles.ts +1 -1
- package/src/components/FormComponents/DisplayItem/DisplayInstructions.tsx +1 -1
- package/src/components/FormComponents/DisplayItem/DisplayItem.tsx +1 -1
- package/src/components/FormComponents/GridGroup/GridGroup.tsx +1 -1
- package/src/components/FormComponents/GridGroup/GridRow.tsx +1 -1
- package/src/components/FormComponents/GridGroup/GridTable.tsx +1 -1
- package/src/components/FormComponents/GridGroup/index.ts +1 -1
- package/src/components/FormComponents/GroupItem/GroupHeading.tsx +1 -1
- package/src/components/FormComponents/GroupItem/GroupItem.styles.ts +1 -1
- package/src/components/FormComponents/GroupItem/GroupItem.tsx +1 -1
- package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +1 -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/IntegerItem/IntegerItem.tsx +1 -1
- package/src/components/FormComponents/Item.styles.ts +1 -1
- package/src/components/FormComponents/ItemParts/CheckboxSingle.tsx +1 -1
- package/src/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.tsx +1 -1
- package/src/components/FormComponents/ItemParts/ContextDisplayItem.tsx +1 -1
- 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/RadioAnswerOptionButtons.tsx +1 -1
- package/src/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.tsx +1 -1
- package/src/components/FormComponents/Lists.styles.ts +1 -1
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx +1 -1
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +1 -1
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.tsx +1 -1
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +1 -1
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx +1 -1
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.tsx +1 -1
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +1 -1
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +1 -1
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +1 -1
- package/src/components/FormComponents/RepeatGroup/AddItemButton.tsx +1 -1
- package/src/components/FormComponents/RepeatGroup/DeleteItemButton.tsx +1 -1
- package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +1 -1
- package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.tsx +1 -1
- package/src/components/FormComponents/RepeatGroup/index.ts +1 -1
- package/src/components/FormComponents/RepeatItem/AddItemButton.tsx +1 -1
- package/src/components/FormComponents/RepeatItem/RemoveItemButton.tsx +1 -1
- package/src/components/FormComponents/RepeatItem/RepeatField.tsx +1 -1
- package/src/components/FormComponents/RepeatItem/RepeatItem.styles.tsx +1 -1
- package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +1 -1
- package/src/components/FormComponents/RepeatItem/index.ts +1 -1
- package/src/components/FormComponents/SingleItem/SingleItem.tsx +1 -1
- package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +4 -4
- package/src/components/FormComponents/SingleItem/index.ts +1 -1
- package/src/components/FormComponents/SliderItem/Slider.styles.ts +1 -1
- package/src/components/FormComponents/SliderItem/SliderDisplayValue.tsx +1 -1
- package/src/components/FormComponents/SliderItem/SliderField.tsx +1 -1
- package/src/components/FormComponents/SliderItem/SliderItem.tsx +1 -1
- package/src/components/FormComponents/SliderItem/SliderLabels.tsx +1 -1
- package/src/components/FormComponents/StringItem/StringField.tsx +1 -1
- package/src/components/FormComponents/StringItem/StringItem.tsx +1 -1
- package/src/components/FormComponents/Tables/AddRowButton.tsx +1 -1
- package/src/components/FormComponents/Tables/GroupTable.tsx +1 -1
- package/src/components/FormComponents/Tables/GroupTableBody.tsx +1 -1
- package/src/components/FormComponents/Tables/GroupTableRow.tsx +1 -1
- package/src/components/FormComponents/Tables/GroupTableRowCells.tsx +1 -1
- package/src/components/FormComponents/Tables/GroupTableView.tsx +1 -1
- package/src/components/FormComponents/Tables/RemoveRowButton.tsx +1 -1
- package/src/components/FormComponents/Tables/SelectRowButton.tsx +1 -1
- package/src/components/FormComponents/Tables/Table.styles.tsx +1 -1
- package/src/components/FormComponents/Tables/index.ts +1 -1
- package/src/components/FormComponents/TextItem/MuiTextField.ts +1 -1
- package/src/components/FormComponents/TextItem/TextField.tsx +1 -1
- package/src/components/FormComponents/TextItem/TextItem.tsx +1 -1
- package/src/components/FormComponents/Textfield.styles.ts +1 -1
- package/src/components/FormComponents/TimeItem/TimeField.tsx +1 -1
- package/src/components/FormComponents/TimeItem/TimeItem.tsx +1 -1
- package/src/components/FormComponents/UrlItem/UrlField.tsx +1 -1
- package/src/components/FormComponents/UrlItem/UrlItem.tsx +1 -1
- package/src/components/FormComponents/index.ts +2 -2
- package/src/components/Iconify/Iconify.tsx +1 -1
- package/src/components/Lists.styles.ts +1 -1
- package/src/components/Renderer/BaseRenderer.tsx +1 -1
- package/src/components/Renderer/FormBodyCollapsible.tsx +1 -1
- package/src/components/Renderer/FormBodySingleCollapsible.tsx +1 -1
- package/src/components/Renderer/FormBodySingleCollapsibleWrapper.tsx +1 -1
- package/src/components/Renderer/FormBodyTabbed.tsx +1 -1
- package/src/components/Renderer/FormTitle.tsx +1 -1
- package/src/components/Renderer/FormTopLevelItem.tsx +1 -1
- package/src/components/Renderer/SmartFormsRenderer.tsx +1 -1
- package/src/components/Renderer/index.ts +1 -1
- package/src/components/Tabs/CompleteTabButton.tsx +1 -1
- package/src/components/Tabs/FormBodySingleTab.tsx +1 -1
- package/src/components/Tabs/FormBodyTabList.tsx +1 -1
- package/src/components/Tabs/FormBodyTabListWrapper.tsx +1 -1
- package/src/components/Tabs/ShowCompletedTabsSection.tsx +1 -1
- package/src/components/index.ts +1 -1
- package/src/hooks/useAttachmentUrlValidation.ts +1 -1
- package/src/hooks/useContextDisplayItems.ts +1 -1
- package/src/{components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.ts → hooks/useDateTimeNonEmpty.ts} +15 -2
- package/src/hooks/useDateValidation.tsx +3 -3
- package/src/hooks/useDebounce.ts +1 -1
- package/src/hooks/useDecimalCalculatedExpression.ts +1 -1
- package/src/hooks/useGroupTableRows.ts +1 -1
- package/src/hooks/useHidden.ts +1 -1
- package/src/hooks/useInitialiseGroupTable.ts +1 -1
- package/src/hooks/useInitialiseRenderer.ts +1 -1
- package/src/hooks/useInitialiseRepeatAnswers.ts +1 -1
- package/src/hooks/useInitialiseRepeatGroups.ts +1 -1
- package/src/hooks/useIntegerCalculatedExpression.ts +1 -1
- package/src/hooks/useNumberInput.ts +1 -1
- package/src/hooks/useQueryClient.ts +1 -1
- package/src/hooks/useReadOnly.ts +1 -1
- package/src/hooks/useRenderingExtensions.ts +1 -1
- package/src/hooks/useResponsive.ts +1 -1
- package/src/hooks/useSliderExtensions.ts +1 -1
- package/src/hooks/useStringCalculatedExpression.ts +1 -1
- package/src/hooks/useStringInput.ts +1 -1
- package/src/hooks/useTerminologyServerQuery.ts +1 -1
- package/src/hooks/useTimeValidation.tsx +70 -0
- package/src/hooks/useValidationFeedback.ts +1 -1
- package/src/hooks/useValueSetCodings.ts +1 -1
- package/src/interfaces/answerExpression.interface.ts +1 -1
- package/src/interfaces/choice.enum.ts +1 -1
- package/src/interfaces/enableWhen.interface.ts +14 -4
- package/src/interfaces/groupTable.interface.ts +1 -1
- package/src/interfaces/index.ts +4 -2
- package/src/interfaces/populate.interface.ts +1 -1
- package/src/interfaces/questionnaireStore.interface.ts +3 -3
- package/src/interfaces/regex.interface.ts +1 -1
- package/src/interfaces/renderProps.interface.ts +1 -1
- package/src/interfaces/repeatGroup.interface.ts +1 -1
- package/src/interfaces/tab.interface.ts +1 -1
- package/src/interfaces/valueSet.interface.ts +1 -1
- package/src/interfaces/variables.interface.ts +1 -1
- package/src/stores/questionnaireResponseStore.ts +1 -1
- package/src/stores/questionnaireStore.ts +24 -8
- package/src/stores/smartConfigStore.ts +1 -1
- package/src/stores/terminologyServerStore.ts +1 -1
- package/src/stories/MedicalHistoryTable.stories.tsx +1 -1
- package/src/stories/SmartFormsRenderer.stories.ts +1 -1
- package/src/theme/Theme.tsx +1 -1
- package/src/theme/customGlobalStyles.tsx +1 -1
- package/src/theme/overrides/Accordion.ts +1 -1
- package/src/theme/overrides/Autocomplete.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/Paper.ts +1 -1
- package/src/theme/overrides/SpeedDial.ts +1 -1
- package/src/theme/overrides/Table.ts +1 -1
- package/src/theme/palette.ts +1 -1
- package/src/theme/shadows.ts +1 -1
- package/src/theme/typography.ts +1 -1
- package/src/utils/calculatedExpression.ts +1 -1
- package/src/utils/choice.ts +1 -1
- package/src/utils/dayjsExtend.ts +1 -1
- package/src/utils/debounce.ts +1 -1
- package/src/utils/emptyResource.ts +1 -1
- package/src/utils/enableWhen.ts +1 -1
- package/src/utils/enableWhenExpression.ts +215 -79
- package/src/utils/fhirpath.ts +4 -4
- package/src/utils/formChanges.ts +1 -1
- package/src/utils/groupTable.ts +1 -1
- package/src/utils/index.ts +1 -1
- package/src/utils/initialise.ts +4 -4
- package/src/utils/itemControl.ts +1 -1
- package/src/utils/mapItem.ts +1 -1
- package/src/utils/openChoice.ts +1 -1
- package/src/utils/parseInputs.ts +1 -1
- package/src/utils/populateContexts.ts +1 -1
- package/src/utils/qItem.ts +12 -12
- package/src/utils/qrItem.ts +1 -1
- package/src/utils/questionnaireStoreUtils/addAdditionalVariables.ts +1 -1
- package/src/utils/questionnaireStoreUtils/createQuestionaireModel.ts +2 -2
- package/src/utils/questionnaireStoreUtils/extractContainedValueSets.ts +1 -1
- package/src/utils/questionnaireStoreUtils/extractOtherExtensions.ts +160 -40
- package/src/utils/questionnaireStoreUtils/extractTabs.ts +1 -1
- package/src/utils/questionnaireStoreUtils/extractVariables.ts +1 -1
- package/src/utils/questionnaireStoreUtils/resolveValueSets.ts +1 -1
- package/src/utils/removeEmptyAnswers.ts +5 -5
- package/src/utils/repopulateItems.ts +5 -5
- package/src/utils/slider.ts +1 -1
- package/src/utils/tabs.ts +10 -25
- package/src/utils/validateQuestionnaire.ts +4 -12
- package/src/utils/valueSet.ts +1 -1
- package/lib/components/FormComponents/CustomDateItem/CustomDateItem.js.map +0 -1
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/CustomDateField.js.map +0 -1
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePicker.js.map +0 -1
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.js +0 -13
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/DatePickerButton.js.map +0 -1
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/MuiDatePicker.js.map +0 -1
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/index.js.map +0 -1
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.d.ts +0 -1
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/index.js.map +0 -1
- package/lib/components/FormComponents/CustomDateItem/customDateTimePicker/utils/parseDates.js.map +0 -1
- package/lib/components/FormComponents/CustomDateItem/index.d.ts +0 -1
- package/lib/components/FormComponents/CustomDateItem/index.js.map +0 -1
- package/lib/components/FormComponents/DateItem/DateField.d.ts +0 -12
- package/lib/components/FormComponents/DateItem/DateItem.d.ts +0 -9
- package/lib/components/FormComponents/ItemParts/ItemExtensionLabels.d.ts +0 -7
- /package/lib/components/FormComponents/{CustomDateItem/customDateTimePicker → DateTimeItems/CustomDateItem}/CustomDateField.d.ts +0 -0
- /package/lib/components/FormComponents/{CustomDateItem/customDateTimePicker → DateTimeItems/CustomDateItem}/DatePicker.d.ts +0 -0
- /package/lib/components/FormComponents/{CustomDateItem/customDateTimePicker → DateTimeItems/CustomDateItem}/DatePickerButton.d.ts +0 -0
- /package/lib/components/FormComponents/{CustomDateItem/customDateTimePicker → DateTimeItems/CustomDateItem}/MuiDatePicker.d.ts +0 -0
- /package/lib/components/FormComponents/{CustomDateItem/customDateTimePicker → DateTimeItems}/index.d.ts +0 -0
package/src/hooks/useReadOnly.ts
CHANGED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { getNumOfSeparators } from '../components/FormComponents/DateTimeItems/utils/parseDate';
|
|
19
|
+
import dayjs from 'dayjs';
|
|
20
|
+
import { validateTimeInput } from '../components/FormComponents/DateTimeItems/utils/parseTime';
|
|
21
|
+
|
|
22
|
+
function useTimeValidation(
|
|
23
|
+
timeInput: string,
|
|
24
|
+
periodInput: string,
|
|
25
|
+
parseFail: boolean = false
|
|
26
|
+
): { timeFeedback: string | null; is24HourNotation: boolean } {
|
|
27
|
+
if (timeInput === '') {
|
|
28
|
+
return { timeFeedback: null, is24HourNotation: false };
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (timeInput.includes('.')) {
|
|
32
|
+
return {
|
|
33
|
+
timeFeedback: 'Input does not match the required format with ":" as the separator.',
|
|
34
|
+
is24HourNotation: false
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (timeInput.length !== 5 || !timeInput.includes(':')) {
|
|
39
|
+
return { timeFeedback: 'Input does not match the format HH:MM.', is24HourNotation: false };
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const numOfSeparators = getNumOfSeparators(timeInput, ':');
|
|
43
|
+
|
|
44
|
+
if (numOfSeparators === 1) {
|
|
45
|
+
const timeDayJs = dayjs(timeInput, `hh:mm`);
|
|
46
|
+
if (!timeDayJs.isValid()) {
|
|
47
|
+
return { timeFeedback: 'Input does not match the format hh:mm.', is24HourNotation: false };
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const { timeIsValid, is24HourNotation } = validateTimeInput(timeInput, periodInput);
|
|
51
|
+
|
|
52
|
+
if (periodInput === '' && !is24HourNotation) {
|
|
53
|
+
return { timeFeedback: 'Specify the period as AM or PM.', is24HourNotation: false };
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (!timeIsValid) {
|
|
57
|
+
return { timeFeedback: 'Input is an invalid time.', is24HourNotation: false };
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return { timeFeedback: null, is24HourNotation };
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (parseFail) {
|
|
64
|
+
return { timeFeedback: 'Input is an invalid time.', is24HourNotation: false };
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return { timeFeedback: 'Input is an invalid time.', is24HourNotation: false };
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export default useTimeValidation;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2024 Commonwealth Scientific and Industrial Research
|
|
3
3
|
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
4
|
*
|
|
5
5
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -21,10 +21,20 @@ import type {
|
|
|
21
21
|
QuestionnaireResponseItemAnswer
|
|
22
22
|
} from 'fhir/r4';
|
|
23
23
|
|
|
24
|
-
export interface
|
|
24
|
+
export interface EnableWhenExpressions {
|
|
25
|
+
singleExpressions: Record<string, EnableWhenSingleExpression>;
|
|
26
|
+
repeatExpressions: Record<string, EnableWhenRepeatExpression>;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface EnableWhenSingleExpression {
|
|
25
30
|
expression: string;
|
|
26
|
-
|
|
27
|
-
|
|
31
|
+
isEnabled?: boolean;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface EnableWhenRepeatExpression {
|
|
35
|
+
expression: string;
|
|
36
|
+
parentLinkId: string;
|
|
37
|
+
enabledIndexes: boolean[];
|
|
28
38
|
}
|
|
29
39
|
|
|
30
40
|
export interface EnableWhenItems {
|
package/src/interfaces/index.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export {
|
|
2
|
-
EnableWhenExpression,
|
|
3
2
|
EnableWhenItems,
|
|
4
3
|
EnableWhenSingleItemProperties,
|
|
5
4
|
EnableWhenRepeatItemProperties,
|
|
6
5
|
EnableWhenSingleLinkedItem,
|
|
7
|
-
EnableWhenRepeatLinkedItem
|
|
6
|
+
EnableWhenRepeatLinkedItem,
|
|
7
|
+
EnableWhenExpressions,
|
|
8
|
+
EnableWhenSingleExpression,
|
|
9
|
+
EnableWhenRepeatExpression
|
|
8
10
|
} from './enableWhen.interface';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2024 Commonwealth Scientific and Industrial Research
|
|
3
3
|
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
4
|
*
|
|
5
5
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
import type { Tabs } from './tab.interface';
|
|
19
19
|
import type { Variables } from './variables.interface';
|
|
20
20
|
import type { LaunchContext } from './populate.interface';
|
|
21
|
-
import type {
|
|
21
|
+
import type { EnableWhenExpressions, EnableWhenItems } from './enableWhen.interface';
|
|
22
22
|
import type { CalculatedExpression } from './calculatedExpression.interface';
|
|
23
23
|
import type { AnswerExpression } from './answerExpression.interface';
|
|
24
24
|
import type { Coding } from 'fhir/r4';
|
|
@@ -29,7 +29,7 @@ export interface QuestionnaireModel {
|
|
|
29
29
|
variables: Variables;
|
|
30
30
|
launchContexts: Record<string, LaunchContext>;
|
|
31
31
|
enableWhenItems: EnableWhenItems;
|
|
32
|
-
enableWhenExpressions:
|
|
32
|
+
enableWhenExpressions: EnableWhenExpressions;
|
|
33
33
|
calculatedExpressions: Record<string, CalculatedExpression>;
|
|
34
34
|
answerExpressions: Record<string, AnswerExpression>;
|
|
35
35
|
processedValueSetCodings: Record<string, Coding[]>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2024 Commonwealth Scientific and Industrial Research
|
|
3
3
|
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
4
|
*
|
|
5
5
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -25,7 +25,7 @@ import type {
|
|
|
25
25
|
import type { Variables } from '../interfaces/variables.interface';
|
|
26
26
|
import type { LaunchContext } from '../interfaces/populate.interface';
|
|
27
27
|
import type { CalculatedExpression } from '../interfaces/calculatedExpression.interface';
|
|
28
|
-
import type {
|
|
28
|
+
import type { EnableWhenExpressions, EnableWhenItems } from '../interfaces';
|
|
29
29
|
import type { AnswerExpression } from '../interfaces/answerExpression.interface';
|
|
30
30
|
import type { Tabs } from '../interfaces/tab.interface';
|
|
31
31
|
import {
|
|
@@ -43,6 +43,8 @@ import { emptyQuestionnaire, emptyResponse } from '../utils/emptyResource';
|
|
|
43
43
|
import cloneDeep from 'lodash.clonedeep';
|
|
44
44
|
import { terminologyServerStore } from './terminologyServerStore';
|
|
45
45
|
import { createSelectors } from './selector';
|
|
46
|
+
import { mutateRepeatEnableWhenExpressionInstances } from '../utils/enableWhenExpression';
|
|
47
|
+
import { questionnaireResponseStore } from './questionnaireResponseStore';
|
|
46
48
|
|
|
47
49
|
interface QuestionnaireStoreType {
|
|
48
50
|
sourceQuestionnaire: Questionnaire;
|
|
@@ -54,7 +56,7 @@ interface QuestionnaireStoreType {
|
|
|
54
56
|
enableWhenItems: EnableWhenItems;
|
|
55
57
|
enableWhenLinkedQuestions: Record<string, string[]>;
|
|
56
58
|
enableWhenIsActivated: boolean;
|
|
57
|
-
enableWhenExpressions:
|
|
59
|
+
enableWhenExpressions: EnableWhenExpressions;
|
|
58
60
|
calculatedExpressions: Record<string, CalculatedExpression>;
|
|
59
61
|
answerExpressions: Record<string, AnswerExpression>;
|
|
60
62
|
processedValueSetCodings: Record<string, Coding[]>;
|
|
@@ -101,7 +103,7 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
|
|
|
101
103
|
variables: { fhirPathVariables: {}, xFhirQueryVariables: {} },
|
|
102
104
|
launchContexts: {},
|
|
103
105
|
calculatedExpressions: {},
|
|
104
|
-
enableWhenExpressions: {},
|
|
106
|
+
enableWhenExpressions: { singleExpressions: {}, repeatExpressions: {} },
|
|
105
107
|
answerExpressions: {},
|
|
106
108
|
enableWhenItems: { singleItems: {}, repeatItems: {} },
|
|
107
109
|
enableWhenLinkedQuestions: {},
|
|
@@ -170,7 +172,7 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
|
|
|
170
172
|
launchContexts: {},
|
|
171
173
|
enableWhenItems: { singleItems: {}, repeatItems: {} },
|
|
172
174
|
enableWhenLinkedQuestions: {},
|
|
173
|
-
enableWhenExpressions: {},
|
|
175
|
+
enableWhenExpressions: { singleExpressions: {}, repeatExpressions: {} },
|
|
174
176
|
calculatedExpressions: {},
|
|
175
177
|
answerExpressions: {},
|
|
176
178
|
processedValueSetCodings: {},
|
|
@@ -217,6 +219,7 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
|
|
|
217
219
|
actionType: 'add' | 'remove'
|
|
218
220
|
) => {
|
|
219
221
|
const enableWhenItems = get().enableWhenItems;
|
|
222
|
+
const enableWhenExpressions = get().enableWhenExpressions;
|
|
220
223
|
|
|
221
224
|
const updatedEnableWhenItems = mutateRepeatEnableWhenItemInstances(
|
|
222
225
|
{
|
|
@@ -227,9 +230,22 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
|
|
|
227
230
|
actionType
|
|
228
231
|
);
|
|
229
232
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
+
const { updatedEnableWhenExpressions, isUpdated } = mutateRepeatEnableWhenExpressionInstances({
|
|
234
|
+
questionnaireResponse: questionnaireResponseStore.getState().updatableResponse,
|
|
235
|
+
variablesFhirPath: get().variables.fhirPathVariables,
|
|
236
|
+
existingFhirPathContext: get().fhirPathContext,
|
|
237
|
+
enableWhenExpressions: enableWhenExpressions,
|
|
238
|
+
parentRepeatGroupLinkId,
|
|
239
|
+
parentRepeatGroupIndex,
|
|
240
|
+
actionType
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
if (isUpdated) {
|
|
244
|
+
set(() => ({
|
|
245
|
+
enableWhenItems: updatedEnableWhenItems,
|
|
246
|
+
enableWhenExpressions: updatedEnableWhenExpressions
|
|
247
|
+
}));
|
|
248
|
+
}
|
|
233
249
|
},
|
|
234
250
|
toggleEnableWhenActivation: (isActivated: boolean) =>
|
|
235
251
|
set(() => ({ enableWhenIsActivated: isActivated })),
|
package/src/theme/Theme.tsx
CHANGED
package/src/theme/palette.ts
CHANGED
package/src/theme/shadows.ts
CHANGED
package/src/theme/typography.ts
CHANGED
package/src/utils/choice.ts
CHANGED
package/src/utils/dayjsExtend.ts
CHANGED
package/src/utils/debounce.ts
CHANGED
package/src/utils/enableWhen.ts
CHANGED