@rnwonder/solid-date-picker
Version:
A responsive, highly-customizable datepicker component for SolidJS.
41 lines (40 loc) • 2.33 kB
JavaScript
import { insert as n, createComponent as l, mergeProps as i, effect as p, className as d, template as u } from "solid-js/web";
import { createSignal as y, createEffect as g, Show as f } from "solid-js";
import { CalendarDays as m } from "../CalendarDays/index.js";
import { WeekDays as D } from "../WeekDays/index.js";
import { cn as o } from "../../utils/class.js";
var C = u("<div>"), T = u('<div><div data-scope=date-picker data-part=grid role=grid data-columns=7 aria-roledescription="calendar month"tabindex=-1>');
const N = (e) => {
const [v, c] = y(0), [h, w] = y(0);
return g(() => {
e.month() === 0 || (e.month() === 11 ? (c(e.year() + 1), w(0)) : (c(e.year()), w(e.month() + 1)));
}), t = T(), s = t.firstChild, n(s, () => e.weekDaysJSX || l(D, i(e, { get weekDaysNameColor() {
return e.weekDaysNameColor;
}, get weekDaysType() {
return e.weekDaysType;
}, get locale() {
return e.locale;
}, get weekStartDay() {
return e.weekStartDay;
} })), null), n(s, l(m, e), null), n(t, l(f, { get when() {
return e.twoMonthsDisplay;
}, keyed: !0, get children() {
return [(r = C(), p(() => d(r, o("date-picker-calendar-area-divider rn-divider aboveBreakTwoCalendar:rn-divider-horizontal aboveBreakTwoCalendar:rn-mx-2 aboveBreakTwoCalendar:rn-w-fit ", e.calendarDividerClass))), r), (a = C(), n(a, () => e.weekDaysJSX || l(D, i(e, { get weekDaysNameColor() {
return e.weekDaysNameColor;
}, get weekDaysType() {
return e.weekDaysType;
}, get locale() {
return e.locale;
}, get weekStartDay() {
return e.weekStartDay;
} })), null), n(a, l(m, i(e, { month: h, year: v, nextMonth: !0 })), null), p(() => d(a, o("date-picker-calendar-area-two", { "breakTwoCalendar:rn-px-4 aboveBreakTwoCalendar:rn-pr-4": e.twoMonthsDisplay }, e.calendarTwoAreaClass))), a)];
var a, r;
} }), null), p((a) => {
var r = o("date-picker-calendar-wrapper rn-flex rn-min-w-max breakTwoCalendar:rn-flex-col", e.calendarWrapperClass), k = o("date-picker-calendar-area-one", { "rn-px-4": !e.twoMonthsDisplay, "breakTwoCalendar:rn-px-4 aboveBreakTwoCalendar:rn-pl-4": e.twoMonthsDisplay }, e.calendarOneAreaClass);
return r !== a.e && d(t, a.e = r), k !== a.t && d(s, a.t = k), a;
}, { e: void 0, t: void 0 }), t;
var t, s;
};
export {
N as CalendarArea
};