@mantine/dates
Version:
Calendars, date and time pickers based on Mantine components
76 lines (75 loc) • 2.99 kB
JavaScript
"use client";
import { useDatesContext } from "../DatesProvider/use-dates-context.mjs";
import { YearsList } from "../YearsList/YearsList.mjs";
import { CalendarHeader } from "../CalendarHeader/CalendarHeader.mjs";
import { getDecadeRange } from "./get-decade-range/get-decade-range.mjs";
import dayjs from "dayjs";
import { jsx, jsxs } from "react/jsx-runtime";
import { Box, factory, useProps } from "@mantine/core";
//#region packages/@mantine/dates/src/components/DecadeLevel/DecadeLevel.tsx
const defaultProps = { decadeLabelFormat: "YYYY" };
const DecadeLevel = factory((_props) => {
const { decade, locale, minDate, maxDate, yearsListFormat, getYearControlProps, __getControlRef, __onControlKeyDown, __onControlClick, __onControlMouseEnter, withCellSpacing, __preventFocus, nextIcon, previousIcon, nextLabel, previousLabel, onNext, onPrevious, nextDisabled, previousDisabled, levelControlAriaLabel, withNext, withPrevious, headerControlsOrder, decadeLabelFormat, classNames, styles, unstyled, __staticSelector, __stopPropagation, size, fullWidth, attributes, ...others } = useProps("DecadeLevel", defaultProps, _props);
const ctx = useDatesContext();
const [startOfDecade, endOfDecade] = getDecadeRange(decade);
const stylesApiProps = {
__staticSelector: __staticSelector || "DecadeLevel",
classNames,
styles,
unstyled,
size,
attributes
};
const _nextDisabled = typeof nextDisabled === "boolean" ? nextDisabled : maxDate ? !dayjs(endOfDecade).endOf("year").isBefore(maxDate) : false;
const _previousDisabled = typeof previousDisabled === "boolean" ? previousDisabled : minDate ? !dayjs(startOfDecade).startOf("year").isAfter(minDate) : false;
const formatDecade = (date, format) => dayjs(date).locale(locale || ctx.locale).format(format);
return /* @__PURE__ */ jsxs(Box, {
"data-decade-level": true,
size,
...others,
children: [/* @__PURE__ */ jsx(CalendarHeader, {
label: typeof decadeLabelFormat === "function" ? decadeLabelFormat(startOfDecade, endOfDecade) : `${formatDecade(startOfDecade, decadeLabelFormat)} – ${formatDecade(endOfDecade, decadeLabelFormat)}`,
__preventFocus,
__stopPropagation,
nextIcon,
previousIcon,
nextLabel,
previousLabel,
onNext,
onPrevious,
nextDisabled: _nextDisabled,
previousDisabled: _previousDisabled,
hasNextLevel: false,
levelControlAriaLabel,
withNext,
withPrevious,
headerControlsOrder,
fullWidth,
...stylesApiProps
}), /* @__PURE__ */ jsx(YearsList, {
decade,
locale,
minDate,
maxDate,
yearsListFormat,
getYearControlProps,
__getControlRef,
__onControlKeyDown,
__onControlClick,
__onControlMouseEnter,
__preventFocus,
__stopPropagation,
withCellSpacing,
fullWidth,
...stylesApiProps
})]
});
});
DecadeLevel.classes = {
...YearsList.classes,
...CalendarHeader.classes
};
DecadeLevel.displayName = "@mantine/dates/DecadeLevel";
//#endregion
export { DecadeLevel };
//# sourceMappingURL=DecadeLevel.mjs.map