@mantine/dates
Version:
Calendars, date and time pickers based on Mantine components
95 lines (94 loc) • 2.76 kB
JavaScript
"use client";
import { getDefaultClampedDate } from "../../utils/get-default-clamped-date/get-default-clamped-date.mjs";
import { PickerInputBase } from "../PickerInputBase/PickerInputBase.mjs";
import { useDatesInput } from "../../hooks/use-dates-input/use-dates-input.mjs";
import { pickCalendarProps } from "../Calendar/pick-calendar-levels-props/pick-calendar-levels-props.mjs";
import { YearPicker } from "../YearPicker/YearPicker.mjs";
import { jsx } from "react/jsx-runtime";
import { factory, useProps, useResolvedStylesApi } from "@mantine/core";
//#region packages/@mantine/dates/src/components/YearPickerInput/YearPickerInput.tsx
const defaultProps = {
type: "default",
size: "sm",
valueFormat: "YYYY",
closeOnChange: true,
sortDates: true,
dropdownType: "popover"
};
const YearPickerInput = factory((_props) => {
const props = useProps([
"Input",
"InputWrapper",
"YearPickerInput"
], defaultProps, _props);
const { type, value, defaultValue, onChange, valueFormat, labelSeparator, locale, classNames, styles, unstyled, closeOnChange, size, variant, dropdownType, sortDates, minDate, maxDate, vars, valueFormatter, presets, attributes, ...rest } = props;
const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi({
classNames,
styles,
props
});
const { calendarProps, others } = pickCalendarProps(rest);
const { _value, setValue, formattedValue, dropdownHandlers, dropdownOpened, onClear, shouldClear } = useDatesInput({
type,
value,
defaultValue,
onChange,
locale,
format: valueFormat,
labelSeparator,
closeOnChange,
sortDates,
valueFormatter
});
return /* @__PURE__ */ jsx(PickerInputBase, {
formattedValue,
dropdownOpened,
dropdownHandlers,
classNames: resolvedClassNames,
styles: resolvedStyles,
unstyled,
onClear,
shouldClear,
value: _value,
size,
variant,
dropdownType,
...others,
type,
__staticSelector: "YearPickerInput",
attributes,
children: /* @__PURE__ */ jsx(YearPicker, {
...calendarProps,
size,
variant,
type,
value: _value,
defaultDate: calendarProps.defaultDate || (Array.isArray(_value) ? _value[0] || getDefaultClampedDate({
maxDate,
minDate
}) : _value || getDefaultClampedDate({
maxDate,
minDate
})),
onChange: setValue,
locale,
classNames: resolvedClassNames,
styles: resolvedStyles,
unstyled,
__staticSelector: "YearPickerInput",
__stopPropagation: dropdownType === "popover",
minDate,
maxDate,
presets,
attributes
})
});
});
YearPickerInput.classes = {
...PickerInputBase.classes,
...YearPicker.classes
};
YearPickerInput.displayName = "@mantine/dates/YearPickerInput";
//#endregion
export { YearPickerInput };
//# sourceMappingURL=YearPickerInput.mjs.map