@rnwonder/solid-date-picker
Version:
A responsive, highly-customizable datepicker component for SolidJS.
62 lines (61 loc) • 2.96 kB
JavaScript
import { memo as m, createComponent as u, mergeProps as A } from "solid-js/web";
import { createSignal as n, createEffect as g } from "solid-js";
import { Selector as z } from "../Selector/index.js";
import { r as N, t as I, s as d } from "../../../node_modules/.pnpm/@rnwonder_simple-datejs@1.1.1/node_modules/@rnwonder/simple-datejs/dist/general-DZqASQRm.js";
import { k as R, p as b } from "../../../node_modules/.pnpm/@rnwonder_simple-datejs@1.1.1/node_modules/@rnwonder/simple-datejs/dist/format-CMbjATj9.js";
import { SelectorTriggerButton as v } from "../SelectorTriggerButton/index.js";
const E = (e) => {
const [f, S] = n(""), [T, w] = n([]), [o, s] = n(), [a, l] = n(), [p, B] = n(e.yearSelectorCount ? Math.abs(e.yearSelectorCount) : 20);
g(() => {
if (e.yearSelectorType === "compact-dropdown")
return;
const { range: r, array: t, endYear: i, startYear: h } = R({ startYear: o(), endYear: a(), count: p(), year: e.year(), yearRange: e.yearRange, locale: e.locale || "en-US" });
S(r), w(N(t, 4)), s(h), l(i);
}), g(() => {
e.yearSelectorType !== "compact-dropdown" && e.showSelectorTwo && (e.showSelectorTwo() || (s(), l()));
});
const C = () => {
if (!o() || !a())
return;
const r = a();
s(r + 1), l(r + p());
}, x = () => {
if (!o() || !a())
return;
const r = o();
l(r - 1), s(r - p());
}, Y = () => {
var r, t;
(r = e.setSelectorTwoProps) == null || r.call(e, { ...e, optionsArray: [], locale: e.locale || "en-US", yearArray: T, option: e.year, setOption: e.setYear, ref: e.ref, attributes: { "data-year": "true" }, handleNext: C, handlePrev: x, range: f, className: "year-selector-option", zIndex: e.zIndex, primaryTextColor: e.primaryTextColor, primaryColor: e.primaryColor, useValueAsName: !0, startYear: o, endYear: a, count: p }), (t = e.setShowSelectorTwo) == null || t.call(e, !0);
};
return m((y = m(() => e.yearSelectorType === "compact-dropdown"), () => y() ? u(z, A(e, { get optionsArray() {
var r, t;
return I(((r = e.yearRange) == null ? void 0 : r.start) || d - 51, ((t = e.yearRange) == null ? void 0 : t.end) || d + 20).map((i) => i.toString());
}, get option() {
return e.year;
}, get setOption() {
return e.setYear;
}, ref(r) {
var t = e.ref;
typeof t == "function" ? t(r) : e.ref = r;
}, attributes: { "data-year": "true" }, useValueAsName: !0, className: "year-selector-option", get zIndex() {
return e.zIndex;
}, get primaryColor() {
return e.primaryColor;
}, get primaryTextColor() {
return e.primaryTextColor;
} })) : u(v, { get option() {
return e.year;
}, optionsArray: [], type: "full-size", get isOpen() {
var r;
return ((r = e.showSelectorTwo) == null ? void 0 : r.call(e)) || !1;
}, onClick: Y, get noButtonAnimation() {
return e.noButtonAnimation;
}, get children() {
return b(e.year(), e.locale);
} })));
var y;
};
export {
E as YearSelector
};