UNPKG

@rnwonder/solid-date-picker

Version:

A responsive, highly-customizable datepicker component for SolidJS.

41 lines (40 loc) 2.33 kB
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 };