Files
Iliyan Angelov 306b20e24a Frontend start
2025-09-14 00:54:48 +03:00

95 lines
2.9 KiB
JavaScript

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useDateField = void 0;
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _shared = require("../DatePicker/shared");
var _useField = require("../internals/hooks/useField");
var _useDateValidation = require("../internals/hooks/validation/useDateValidation");
var _dateUtils = require("../internals/utils/date-utils");
var _useUtils = require("../internals/hooks/useUtils");
const _excluded = ["value", "defaultValue", "format", "onChange", "readOnly", "onError", "shouldDisableDate", "minDate", "maxDate", "disableFuture", "disablePast"];
const dateRangeFieldValueManager = {
getSectionsFromValue: (utils, prevSections, date, format) => (0, _useField.addPositionPropertiesToSections)((0, _useField.splitFormatIntoSections)(utils, format, date)),
getValueStrFromSections: sections => (0, _useField.createDateStrFromSections)(sections),
getValueFromSections: (utils, prevSections, sections, format) => {
const dateStr = (0, _useField.createDateStrFromSections)(sections);
const value = utils.parse(dateStr, format);
return {
value,
shouldPublish: utils.isValid(value)
};
},
getActiveDateFromActiveSection: value => ({
value,
update: newActiveDate => newActiveDate
}),
hasError: error => error != null,
isSameError: _useDateValidation.isSameDateError
};
const useDefaultizedDateField = props => {
const utils = (0, _useUtils.useUtils)();
const defaultDates = (0, _useUtils.useDefaultDates)();
return (0, _extends2.default)({
disablePast: false,
disableFuture: false
}, props, {
minDate: (0, _dateUtils.parseNonNullablePickerDate)(utils, props.minDate, defaultDates.minDate),
maxDate: (0, _dateUtils.parseNonNullablePickerDate)(utils, props.maxDate, defaultDates.maxDate)
});
};
const useDateField = inProps => {
const _useDefaultizedDateFi = useDefaultizedDateField(inProps),
{
value,
defaultValue,
format,
onChange,
readOnly,
onError,
shouldDisableDate,
minDate,
maxDate,
disableFuture,
disablePast
} = _useDefaultizedDateFi,
other = (0, _objectWithoutPropertiesLoose2.default)(_useDefaultizedDateFi, _excluded);
return (0, _useField.useField)({
forwardedProps: other,
internalProps: {
value,
defaultValue,
format,
onChange,
readOnly,
onError,
shouldDisableDate,
minDate,
maxDate,
disableFuture,
disablePast
},
valueManager: _shared.datePickerValueManager,
fieldValueManager: dateRangeFieldValueManager,
// TODO: Support time validation.
validator: _useDateValidation.validateDate
});
};
exports.useDateField = useDateField;