UNPKG

@hhgtech/hhg-components

Version:
100 lines (90 loc) • 7.34 kB
'use strict'; var tslib_es6 = require('./tslib.es6-92cccef3.js'); var React = require('react'); var core = require('@mantine/core'); var form = require('@mantine/form'); require('./index-ae1a5588.js'); var index$3 = require('./index-7cc3b1ef.js'); require('./index-25f2e7a5.js'); require('./index-86fd931c.js'); require('./index.styles-6dd86c20.js'); var index = require('./index-c2c283f8.js'); require('@mantine/hooks'); require('./useMantineLocale-e946ce4a.js'); require('./index-ad7155cf.js'); require('./index-db44e8cb.js'); require('./utils-7ba0038a.js'); require('./index-1ee4ebb8.js'); require('./other-eb0ff2f6.js'); require('./index-9012f1d1.js'); var index$1 = require('./index-e2b3d37e.js'); var index$2 = require('./index-1e1b5037.js'); var other = require('@hhgtech/icons/other'); function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefault(React); const BabyVaccineFormContext = React.createContext({}); const DefaultLayout = (_a) => { var props = tslib_es6.__rest(_a, []); const { t } = index.useTranslations(); const { currentUrl, submitProps, form } = React.useContext(BabyVaccineFormContext); return (React__default["default"].createElement(index$1.HealthToolFormWrapper, Object.assign({ formLayout: "default" }, props), React__default["default"].createElement(index$2.GenderOptionControl, Object.assign({ isBaby: true }, form.getInputProps('gender'))), React__default["default"].createElement(index$3.DatePicker, Object.assign({ label: t('babyGrowth.input.birthday'), placeholder: 'DD/MM/YYYY', popoverProps: { withinPortal: true, }, maxDate: new Date() }, form.getInputProps('age'))), React__default["default"].createElement(index$1.HealthToolFormWrapper.Submit, Object.assign({ type: "submit", className: "due-date-calculate-button", dataEventCategory: "Health Tool", dataEventAction: "Vaccination Tool", dataEventLabel: currentUrl }, submitProps), t('dueDatePage.lastPeriod.calculate')))); }; const InlineLayout = (_a) => { var props = tslib_es6.__rest(_a, []); const { t } = index.useTranslations(); const { currentUrl, submitProps, form } = React.useContext(BabyVaccineFormContext); return (React__default["default"].createElement(index$1.HealthToolFormWrapper, Object.assign({ formLayout: "inline" }, props), React__default["default"].createElement(index$1.HealthToolFormWrapper.FormRow, null, React__default["default"].createElement(index$1.HealthToolFormWrapper.BorderInlineControl, { label: t('tools.selectBabyGender'), width: 'none' }, React__default["default"].createElement(index$2.GenderOptionControl, Object.assign({ isBaby: true, hideLabel: true, type: "radio" }, form.getInputProps('gender')))), form.errors.gender && (React__default["default"].createElement(index$1.HealthToolFormWrapper.Error, null, form.errors.gender))), React__default["default"].createElement(index$1.HealthToolFormWrapper.FormRow, null, React__default["default"].createElement(index$1.HealthToolFormWrapper.BorderInlineControl, { label: t('babyGrowth.input.birthday') }, React__default["default"].createElement(index$3.DatePicker, Object.assign({ placeholder: 'DD/MM/YYYY', popoverProps: { withinPortal: true, }, maxDate: new Date() }, form.getInputProps('age'), { error: null }))), form.errors.age && (React__default["default"].createElement(index$1.HealthToolFormWrapper.Error, null, form.errors.age))), React__default["default"].createElement(index$1.HealthToolFormWrapper.Submit, Object.assign({ type: "submit", className: "due-date-calculate-button", dataEventCategory: "Health Tool", dataEventAction: "Vaccination Tool", dataEventLabel: currentUrl }, submitProps), t('dueDatePage.lastPeriod.calculate')))); }; const MbLayout = (_a) => { var props = tslib_es6.__rest(_a, []); const { t } = index.useTranslations(); const { currentUrl, submitProps, form } = React.useContext(BabyVaccineFormContext); return (React__default["default"].createElement(index$1.HealthToolFormWrapper, Object.assign({ formLayout: "default" }, props), React__default["default"].createElement(index$1.HealthToolFormWrapper.Control, null, React__default["default"].createElement(index$2.GenderOptionControl, Object.assign({ isBaby: true }, form.getInputProps('gender'), { error: null }))), form.errors.gender && (React__default["default"].createElement(index$1.HealthToolFormWrapper.Error, null, form.errors.gender)), React__default["default"].createElement(index$1.HealthToolFormWrapper.FormRow, null, React__default["default"].createElement(index$1.HealthToolFormWrapper.BorderBoxControl, { label: t('babyGrowth.input.birthday'), rightSection: React__default["default"].createElement(other.CalendarMB, null) }, React__default["default"].createElement(index$3.DatePicker, Object.assign({ placeholder: 'DD/MM/YYYY', popoverProps: { withinPortal: true, }, maxDate: new Date(), rightSection: null }, form.getInputProps('age'), { error: null }))), form.errors.age && (React__default["default"].createElement(index$1.HealthToolFormWrapper.Error, null, form.errors.age))), React__default["default"].createElement(index$1.HealthToolFormWrapper.Submit, Object.assign({ type: "submit", className: "due-date-calculate-button", dataEventCategory: "Health Tool", dataEventAction: "Vaccination Tool", dataEventLabel: currentUrl }, submitProps), t('dueDatePage.lastPeriod.calculate')))); }; var OvulationCalculatorType; (function (OvulationCalculatorType) { OvulationCalculatorType[OvulationCalculatorType["trackPeriod"] = 0] = "trackPeriod"; OvulationCalculatorType[OvulationCalculatorType["conceive"] = 1] = "conceive"; OvulationCalculatorType[OvulationCalculatorType["avoidPregnancy"] = 2] = "avoidPregnancy"; })(OvulationCalculatorType || (OvulationCalculatorType = {})); const BabyVaccineForm = (_a) => { var { formLayout = 'default', submitProps, currentUrl, onSubmit } = _a, props = tslib_es6.__rest(_a, ["formLayout", "submitProps", "currentUrl", "onSubmit"]); const { t } = index.useTranslations(); const theme = core.useMantineTheme(); const isMarryBaby = theme.other.template === 'mb'; const form$1 = form.useForm({ validate: { gender: form.isNotEmpty(t('validation.error.requiredField')), age: form.isNotEmpty(t('validation.error.requiredField')), }, }); const commonProps = Object.assign({ onSubmit: form$1.onSubmit(onSubmit) }, props); return (React__default["default"].createElement(BabyVaccineFormContext.Provider, { value: { submitProps, currentUrl, form: form$1 } }, formLayout === 'inline' ? (React__default["default"].createElement(InlineLayout, Object.assign({}, commonProps))) : isMarryBaby ? (React__default["default"].createElement(MbLayout, Object.assign({ formLayout: formLayout }, commonProps))) : (React__default["default"].createElement(DefaultLayout, Object.assign({}, commonProps))))); }; exports.BabyVaccineForm = BabyVaccineForm;