@aehrc/smart-forms-renderer 0.19.0 → 0.20.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.js +1 -1
- package/lib/interfaces/groupTable.interface.js +1 -1
- package/lib/interfaces/populate.interface.js +1 -1
- 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.js +1 -1
- package/lib/stores/smartConfigStore.js +1 -1
- package/lib/stores/terminologyServerStore.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.js +1 -1
- 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.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.js +1 -1
- package/lib/utils/qrItem.js +1 -1
- package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js +1 -1
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +1 -1
- package/lib/utils/questionnaireStoreUtils/extractContainedValueSets.js +1 -1
- package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js +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.js +1 -1
- package/lib/utils/repopulateItems.js +1 -1
- package/lib/utils/slider.js +1 -1
- package/lib/utils/tabs.js +2 -2
- package/lib/utils/validateQuestionnaire.js +1 -1
- package/lib/utils/valueSet.js +1 -1
- package/package.json +2 -2
- 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 +1 -1
- package/src/interfaces/groupTable.interface.ts +1 -1
- package/src/interfaces/populate.interface.ts +1 -1
- package/src/interfaces/questionnaireStore.interface.ts +1 -1
- 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 +1 -1
- 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 +1 -1
- package/src/utils/fhirpath.ts +1 -1
- 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 +1 -1
- 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 +1 -1
- package/src/utils/qrItem.ts +1 -1
- package/src/utils/questionnaireStoreUtils/addAdditionalVariables.ts +1 -1
- package/src/utils/questionnaireStoreUtils/createQuestionaireModel.ts +1 -1
- package/src/utils/questionnaireStoreUtils/extractContainedValueSets.ts +1 -1
- package/src/utils/questionnaireStoreUtils/extractOtherExtensions.ts +1 -1
- 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 +1 -1
- package/src/utils/repopulateItems.ts +1 -1
- package/src/utils/slider.ts +1 -1
- package/src/utils/tabs.ts +2 -2
- package/src/utils/validateQuestionnaire.ts +1 -1
- 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/setup-jest.js +0 -1
- package/lib/stories/MedicalHistoryTable.stories.js +0 -45
- package/lib/stories/SmartFormsRenderer.stories.js +0 -117
- /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/__mocks__/zustand.ts
CHANGED
package/lib/api/smartClient.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomDateField.js","sourceRoot":"","sources":["../../../../../src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAgB5C,SAAS,eAAe,CAAC,KAA2B;IAClD,MAAM,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,EACR,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,aAAa,EACb,YAAY,EACb,GAAG,KAAK,CAAC;IAEV,MAAM,SAAS,GAA8B,MAAM,CAAC,IAAI,CAAC,CAAC;IAE1D,OAAO,CACL,oBAAC,OAAO,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACtC,oBAAC,iBAAiB,IAChB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,SAAS,EACd,SAAS,QACT,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,CAAgC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7E,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,EAC5D,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAC/B,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAC/B,UAAU,EAAE;gBACV,YAAY,EAAE,CACZ;oBACE,oBAAC,UAAU,IACT,WAAW,EAAE,SAAS,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,SAAS,CAAC,OAAO,EAC3B,YAAY,EAAE,CAAC,UAAiB,EAAE,EAAE;4BAClC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;wBAChD,CAAC,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GACrC,CACD,CACJ;aACF,EACD,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GACpC,CACM,CACX,CAAC;AACJ,CAAC;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute, PropsWithParentIsReadOnlyAttribute, PropsWithQrItemChangeHandler } from '
|
|
2
|
+
import type { PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute, PropsWithParentIsReadOnlyAttribute, PropsWithQrItemChangeHandler } from '../../../../interfaces/renderProps.interface';
|
|
3
3
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
4
4
|
interface CustomDateItemProps extends PropsWithQrItemChangeHandler, PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute, PropsWithParentIsReadOnlyAttribute {
|
|
5
5
|
qItem: QuestionnaireItem;
|
|
@@ -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");
|
|
@@ -15,15 +15,15 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import React, { useState } from 'react';
|
|
18
|
-
import useReadOnly from '
|
|
19
|
-
import useRenderingExtensions from '
|
|
20
|
-
import { FullWidthFormComponentBox } from '
|
|
21
|
-
import ItemFieldGrid from '
|
|
22
|
-
import { parseFhirDateToDisplayDate, parseInputDateToFhirDate,
|
|
23
|
-
import { createEmptyQrItem } from '
|
|
24
|
-
import useDateValidation from '
|
|
25
|
-
import CustomDateField from './
|
|
26
|
-
import { useQuestionnaireStore } from '
|
|
18
|
+
import useReadOnly from '../../../../hooks/useReadOnly';
|
|
19
|
+
import useRenderingExtensions from '../../../../hooks/useRenderingExtensions';
|
|
20
|
+
import { FullWidthFormComponentBox } from '../../../Box.styles';
|
|
21
|
+
import ItemFieldGrid from '../../ItemParts/ItemFieldGrid';
|
|
22
|
+
import { parseFhirDateToDisplayDate, parseInputDateToFhirDate, validateDateInput } from '../utils/parseDate';
|
|
23
|
+
import { createEmptyQrItem } from '../../../../utils/qrItem';
|
|
24
|
+
import useDateValidation from '../../../../hooks/useDateValidation';
|
|
25
|
+
import CustomDateField from './CustomDateField';
|
|
26
|
+
import { useQuestionnaireStore } from '../../../../stores';
|
|
27
27
|
function CustomDateItem(props) {
|
|
28
28
|
const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
|
|
29
29
|
const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
|
|
@@ -40,11 +40,11 @@ function CustomDateItem(props) {
|
|
|
40
40
|
valueDate = qrDate.answer[0].valueDateTime;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
const { displayDate,
|
|
43
|
+
const { displayDate, dateParseFail } = parseFhirDateToDisplayDate(valueDate);
|
|
44
44
|
const [input, setInput] = useState(displayDate);
|
|
45
45
|
const [focused, setFocused] = useState(false);
|
|
46
46
|
// Perform validation checks
|
|
47
|
-
const errorFeedback = useDateValidation(input,
|
|
47
|
+
const errorFeedback = useDateValidation(input, dateParseFail);
|
|
48
48
|
function handleSelectDate(selectedDate) {
|
|
49
49
|
setInput(selectedDate);
|
|
50
50
|
onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueDate: parseInputDateToFhirDate(selectedDate) }] }));
|
|
@@ -54,7 +54,7 @@ function CustomDateItem(props) {
|
|
|
54
54
|
if (newInput === '') {
|
|
55
55
|
onQrItemChange(createEmptyQrItem(qItem));
|
|
56
56
|
}
|
|
57
|
-
if (!
|
|
57
|
+
if (!validateDateInput(newInput)) {
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
60
|
onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueDate: parseInputDateToFhirDate(newInput) }] }));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomDateItem.js","sourceRoot":"","sources":["../../../../../src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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");
|
|
@@ -19,7 +19,6 @@ import dayjs from 'dayjs';
|
|
|
19
19
|
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
|
|
20
20
|
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
|
|
21
21
|
import MuiDatePicker from './MuiDatePicker';
|
|
22
|
-
// import { DatePicker as MuiDatePicker, LocalizationProvider } from '@mui/x-date-pickers';
|
|
23
22
|
import DatePickerButton from './DatePickerButton';
|
|
24
23
|
function DatePicker(props) {
|
|
25
24
|
const { valueString, readOnly, anchorEl, onSelectDate, onFocus } = props;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../../../src/components/FormComponents/DateTimeItems/CustomDateItem/DatePicker.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAUlD,SAAS,UAAU,CAAC,KAAsB;IACxC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEzE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzE,OAAO,CACL,oBAAC,oBAAoB,IAAC,WAAW,EAAE,YAAY;QAC7C,oBAAC,aAAa,IACZ,KAAK,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,IAAI,EACzB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAClC,SAAS,EAAE;gBACT,KAAK,EAAE;oBACL,MAAM,EAAE,GAAG,EAAE;wBACX,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC;oBACD,QAAQ,EAAE,QAAQ;iBACZ;gBACR,SAAS,EAAE;oBACT,IAAI,EAAE,OAAO;iBACd;gBACD,MAAM,EAAE;oBACN,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAuB;iBACxC;aACF,EACD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,GAAG,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,EACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACrB,IAAI,CAAC,QAAQ,EAAE;oBACb,OAAO;iBACR;gBAED,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,GACD,CACmB,CACxB,CAAC;AACJ,CAAC;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
import React from 'react';
|
|
18
|
+
import IconButton from '@mui/material/IconButton';
|
|
19
|
+
import EventIcon from '@mui/icons-material/Event';
|
|
20
|
+
function DatePickerButton(props) {
|
|
21
|
+
const { onOpen, readOnly } = props;
|
|
22
|
+
return (React.createElement(IconButton, { sx: { height: 30, width: 30 }, disabled: readOnly, onClick: (e) => {
|
|
23
|
+
e.stopPropagation();
|
|
24
|
+
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
25
|
+
} },
|
|
26
|
+
React.createElement(EventIcon, { fontSize: "small" })));
|
|
27
|
+
}
|
|
28
|
+
export default DatePickerButton;
|
|
29
|
+
//# sourceMappingURL=DatePickerButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePickerButton.js","sourceRoot":"","sources":["../../../../../src/components/FormComponents/DateTimeItems/CustomDateItem/DatePickerButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,SAAS,MAAM,2BAA2B,CAAC;AAQlD,SAAS,gBAAgB,CAAC,KAA4B;IACpD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEnC,OAAO,CACL,oBAAC,UAAU,IACT,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAC7B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,MAAM,aAAN,MAAM,uBAAN,MAAM,EAAI,CAAC;QACb,CAAC;QACD,oBAAC,SAAS,IAAC,QAAQ,EAAC,OAAO,GAAG,CACnB,CACd,CAAC;AACJ,CAAC;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MuiDatePicker.js","sourceRoot":"","sources":["../../../../../src/components/FormComponents/DateTimeItems/CustomDateItem/MuiDatePicker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,MAAM,aAAa,GAAG,UAAU,CAAC;AAEjC,eAAe,aAAa,CAAC"}
|
package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute, PropsWithParentIsReadOnlyAttribute, PropsWithQrItemChangeHandler } from '../../../../interfaces/renderProps.interface';
|
|
3
|
+
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
4
|
+
interface CustomDateTimeItemProps extends PropsWithQrItemChangeHandler, PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute, PropsWithParentIsReadOnlyAttribute {
|
|
5
|
+
qItem: QuestionnaireItem;
|
|
6
|
+
qrItem: QuestionnaireResponseItem | null;
|
|
7
|
+
}
|
|
8
|
+
declare function CustomDateTimeItem(props: CustomDateTimeItemProps): React.JSX.Element;
|
|
9
|
+
export default CustomDateTimeItem;
|
|
@@ -0,0 +1,116 @@
|
|
|
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
|
+
import React, { useState } from 'react';
|
|
18
|
+
import useReadOnly from '../../../../hooks/useReadOnly';
|
|
19
|
+
import useRenderingExtensions from '../../../../hooks/useRenderingExtensions';
|
|
20
|
+
import { FullWidthFormComponentBox } from '../../../Box.styles';
|
|
21
|
+
import ItemFieldGrid from '../../ItemParts/ItemFieldGrid';
|
|
22
|
+
import { createEmptyQrItem } from '../../../../utils/qrItem';
|
|
23
|
+
import useDateValidation from '../../../../hooks/useDateValidation';
|
|
24
|
+
import { useQuestionnaireStore } from '../../../../stores';
|
|
25
|
+
import { parseFhirDateToDisplayDate } from '../utils';
|
|
26
|
+
import { parseInputDateToFhirDate, validateDateInput } from '../utils/parseDate';
|
|
27
|
+
import Stack from '@mui/material/Stack';
|
|
28
|
+
import dayjs from 'dayjs';
|
|
29
|
+
import { parseDateTimeToDisplayTime, parseInputDateTimeToFhirDateTime, validateTimeInput } from '../utils/parseTime';
|
|
30
|
+
import useTimeValidation from '../../../../hooks/useTimeValidation';
|
|
31
|
+
import useDateNonEmptyValidation from '../../../../hooks/useDateTimeNonEmpty';
|
|
32
|
+
import DateTimeField from './DateTimeField';
|
|
33
|
+
function CustomDateTimeItem(props) {
|
|
34
|
+
const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
|
|
35
|
+
const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
|
|
36
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
37
|
+
const { displayPrompt, entryFormat } = useRenderingExtensions(qItem);
|
|
38
|
+
const qrDateTime = qrItem !== null && qrItem !== void 0 ? qrItem : createEmptyQrItem(qItem);
|
|
39
|
+
// Init input value
|
|
40
|
+
let valueDate = '';
|
|
41
|
+
let dateTimeDayJs = null;
|
|
42
|
+
if (qrDateTime.answer) {
|
|
43
|
+
let tempDateTime = '';
|
|
44
|
+
if (qrDateTime.answer[0].valueDate) {
|
|
45
|
+
tempDateTime = qrDateTime.answer[0].valueDate;
|
|
46
|
+
}
|
|
47
|
+
else if (qrDateTime.answer[0].valueDateTime) {
|
|
48
|
+
tempDateTime = qrDateTime.answer[0].valueDateTime;
|
|
49
|
+
}
|
|
50
|
+
// split date and time at "T", 2015-02-07T13:28:17-05:00
|
|
51
|
+
if (tempDateTime.includes('T')) {
|
|
52
|
+
valueDate = tempDateTime.split('T')[0];
|
|
53
|
+
dateTimeDayJs = dayjs(tempDateTime);
|
|
54
|
+
console.log(dateTimeDayJs);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
valueDate = tempDateTime;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const { displayDate, dateParseFail } = parseFhirDateToDisplayDate(valueDate);
|
|
61
|
+
const { displayTime, displayPeriod, timeParseFail } = parseDateTimeToDisplayTime(dateTimeDayJs);
|
|
62
|
+
const [dateInput, setDateInput] = useState(displayDate);
|
|
63
|
+
const [timeInput, setTimeInput] = useState(displayTime);
|
|
64
|
+
const [periodInput, setPeriodInput] = useState(displayPeriod);
|
|
65
|
+
const [dateFocused, setDateFocused] = useState(false);
|
|
66
|
+
// Perform validation checks
|
|
67
|
+
let dateFeedback = useDateValidation(dateInput, dateParseFail);
|
|
68
|
+
const { timeFeedback, is24HourNotation } = useTimeValidation(timeInput, periodInput, timeParseFail);
|
|
69
|
+
dateFeedback = useDateNonEmptyValidation(dateInput, timeInput, dateFeedback, timeFeedback);
|
|
70
|
+
function handleSelectDate(selectedDate) {
|
|
71
|
+
setDateInput(selectedDate);
|
|
72
|
+
updateQRDateTime(selectedDate, timeInput, periodInput, is24HourNotation);
|
|
73
|
+
}
|
|
74
|
+
function handleDateInputChange(newDateInput) {
|
|
75
|
+
setDateInput(newDateInput);
|
|
76
|
+
if (newDateInput === '') {
|
|
77
|
+
onQrItemChange(createEmptyQrItem(qItem));
|
|
78
|
+
}
|
|
79
|
+
if (!validateDateInput(newDateInput)) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
updateQRDateTime(newDateInput, timeInput, periodInput, is24HourNotation);
|
|
83
|
+
}
|
|
84
|
+
function handleTimeInputChange(newTimeInput, newPeriodInput) {
|
|
85
|
+
setTimeInput(newTimeInput);
|
|
86
|
+
setPeriodInput(newPeriodInput);
|
|
87
|
+
if (newTimeInput === '') {
|
|
88
|
+
onQrItemChange(createEmptyQrItem(qItem));
|
|
89
|
+
}
|
|
90
|
+
const { timeIsValid, is24HourNotation } = validateTimeInput(newTimeInput, newPeriodInput);
|
|
91
|
+
if (!validateDateInput(dateInput) && !timeIsValid) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
updateQRDateTime(dateInput, newTimeInput, newPeriodInput, is24HourNotation);
|
|
95
|
+
}
|
|
96
|
+
function updateQRDateTime(dateInput, timeInput, periodInput, is24HourNotation) {
|
|
97
|
+
let fhirTime = '';
|
|
98
|
+
if (timeInput) {
|
|
99
|
+
fhirTime = parseInputDateTimeToFhirDateTime(parseInputDateToFhirDate(dateInput), timeInput, periodInput, is24HourNotation);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
fhirTime = parseInputDateToFhirDate(dateInput);
|
|
103
|
+
}
|
|
104
|
+
onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueDateTime: fhirTime }] }));
|
|
105
|
+
}
|
|
106
|
+
// FIXME entryFormat and displayPrompt, put them beneath the entire component instead of at the date field
|
|
107
|
+
if (isRepeated) {
|
|
108
|
+
return (React.createElement(Stack, null,
|
|
109
|
+
React.createElement(DateTimeField, { linkId: qItem.linkId, displayDate: displayDate, dateInput: dateInput, timeInput: timeInput, periodInput: periodInput, is24HourNotation: is24HourNotation, dateFeedback: dateFeedback !== null && dateFeedback !== void 0 ? dateFeedback : '', timeFeedback: timeFeedback !== null && timeFeedback !== void 0 ? timeFeedback : '', dateFocused: dateFocused, displayPrompt: displayPrompt, entryFormat: entryFormat, readOnly: readOnly, isTabled: isTabled, onDateInputChange: handleDateInputChange, onSelectDate: handleSelectDate, setDateFocused: setDateFocused, onTimeInputChange: handleTimeInputChange })));
|
|
110
|
+
}
|
|
111
|
+
return (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-date-box", "data-linkid": qItem.linkId, onClick: () => onFocusLinkId(qItem.linkId) },
|
|
112
|
+
React.createElement(ItemFieldGrid, { qItem: qItem, readOnly: readOnly },
|
|
113
|
+
React.createElement(DateTimeField, { linkId: qItem.linkId, displayDate: displayDate, dateInput: dateInput, timeInput: timeInput, periodInput: periodInput, is24HourNotation: is24HourNotation, dateFeedback: dateFeedback !== null && dateFeedback !== void 0 ? dateFeedback : '', timeFeedback: timeFeedback !== null && timeFeedback !== void 0 ? timeFeedback : '', dateFocused: dateFocused, displayPrompt: displayPrompt, entryFormat: entryFormat, readOnly: readOnly, isTabled: isTabled, onDateInputChange: handleDateInputChange, onSelectDate: handleSelectDate, setDateFocused: setDateFocused, onTimeInputChange: handleTimeInputChange }))));
|
|
114
|
+
}
|
|
115
|
+
export default CustomDateTimeItem;
|
|
116
|
+
//# sourceMappingURL=CustomDateTimeItem.js.map
|
package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomDateTimeItem.js","sourceRoot":"","sources":["../../../../../src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PropsWithIsTabledAttribute } from '../../../../interfaces/renderProps.interface';
|
|
3
|
+
interface CustomTimeFieldProps extends PropsWithIsTabledAttribute {
|
|
4
|
+
linkId: string;
|
|
5
|
+
timeInput: string;
|
|
6
|
+
periodInput: string;
|
|
7
|
+
is24HourNotation: boolean;
|
|
8
|
+
feedback: string;
|
|
9
|
+
displayPrompt: string;
|
|
10
|
+
readOnly: boolean;
|
|
11
|
+
onTimeInputChange: (newInput: string) => void;
|
|
12
|
+
onPeriodChange: (newPeriod: string) => void;
|
|
13
|
+
}
|
|
14
|
+
declare function CustomTimeField(props: CustomTimeFieldProps): React.JSX.Element;
|
|
15
|
+
export default CustomTimeField;
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
import React from 'react';
|
|
18
|
+
import { TEXT_FIELD_WIDTH } from '../../Textfield.styles';
|
|
19
|
+
import Tooltip from '@mui/material/Tooltip';
|
|
20
|
+
import Box from '@mui/material/Box';
|
|
21
|
+
import Select from '@mui/material/Select';
|
|
22
|
+
import MenuItem from '@mui/material/MenuItem';
|
|
23
|
+
import MuiTextField from '../../TextItem/MuiTextField';
|
|
24
|
+
import { grey } from '@mui/material/colors';
|
|
25
|
+
import Typography from '@mui/material/Typography';
|
|
26
|
+
function CustomTimeField(props) {
|
|
27
|
+
const { linkId, timeInput, periodInput, is24HourNotation, feedback, displayPrompt, readOnly, isTabled, onTimeInputChange, onPeriodChange } = props;
|
|
28
|
+
return (React.createElement(Tooltip, { title: isTabled ? feedback : '' },
|
|
29
|
+
React.createElement(React.Fragment, null,
|
|
30
|
+
React.createElement(Box, { display: "flex", alignItems: "center", columnGap: 1, sx: { maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000, minWidth: 160 } },
|
|
31
|
+
React.createElement(MuiTextField, { id: linkId + '-time', value: timeInput, error: !!feedback, fullWidth: true, sx: { flex: 1 }, onChange: (e) => onTimeInputChange(e.target.value), label: displayPrompt, placeholder: "--:--", disabled: readOnly, size: "small" }),
|
|
32
|
+
React.createElement(Select, { id: linkId + '-period', value: is24HourNotation ? '' : periodInput, error: !!feedback, disabled: readOnly || is24HourNotation, displayEmpty: true, size: "small", sx: { flex: 1 }, onChange: (e) => onPeriodChange(e.target.value) },
|
|
33
|
+
React.createElement(MenuItem, { value: "" },
|
|
34
|
+
React.createElement("span", { style: { color: grey['500'] } }, is24HourNotation ? '-' : 'AM/PM')),
|
|
35
|
+
React.createElement(MenuItem, { value: "AM" }, "AM"),
|
|
36
|
+
React.createElement(MenuItem, { value: "PM" }, "PM"))),
|
|
37
|
+
React.createElement(Typography, { variant: "caption", color: "error", sx: { ml: 1.75, mt: -0.5 } }, isTabled ? '' : feedback))));
|
|
38
|
+
}
|
|
39
|
+
export default CustomTimeField;
|
|
40
|
+
//# sourceMappingURL=CustomTimeField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomTimeField.js","sourceRoot":"","sources":["../../../../../src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAoBH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,YAAY,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAclD,SAAS,eAAe,CAAC,KAA2B;IAClD,MAAM,EACJ,MAAM,EACN,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACf,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,oBAAC,OAAO,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACtC;YACE,oBAAC,GAAG,IACF,OAAO,EAAC,MAAM,EACd,UAAU,EAAC,QAAQ,EACnB,SAAS,EAAE,CAAC,EACZ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE;gBACpE,oBAAC,YAAY,IACX,EAAE,EAAE,MAAM,GAAG,OAAO,EACpB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,SAAS,QACT,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EACf,QAAQ,EAAE,CAAC,CAAgC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACjF,KAAK,EAAE,aAAa,EACpB,WAAW,EAAC,OAAO,EACnB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,GACZ;gBACF,oBAAC,MAAM,IACL,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAC1C,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,QAAQ,IAAI,gBAAgB,EACtC,YAAY,QACZ,IAAI,EAAC,OAAO,EACZ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC/C,oBAAC,QAAQ,IAAC,KAAK,EAAC,EAAE;wBAChB,8BAAM,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,IAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAQ,CACrE;oBACX,oBAAC,QAAQ,IAAC,KAAK,EAAC,IAAI,SAAc;oBAClC,oBAAC,QAAQ,IAAC,KAAK,EAAC,IAAI,SAAc,CAC3B,CACL;YACN,oBAAC,UAAU,IAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,IACnE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CACd,CACZ,CACK,CACX,CAAC;AACJ,CAAC;AAED,eAAe,eAAe,CAAC"}
|