fui-fancyui
Version:
FancyUI Libary
73 lines (72 loc) • 1.62 kB
JavaScript
import h from "../createDayFunction.js";
const M = (r) => {
const {
monthIdx: n,
year: a,
selectedDates: i,
disabledDateSetting: c,
isRangePicking: l,
externalMonthWithDays: u,
fillAdjacentMonths: D = !0,
weekStartsOn: g = 1
// Default is Monday
} = r, p = y(n + 1, a);
let s = new Date(a, n, 1).getDay() - g;
s < 0 && (s += 7);
const d = [];
let t = [];
if (s > 0) {
const e = y(n, a);
for (let o = 0; o < s; o++) {
if (D) {
const m = e - s + o + 1;
t.push(
h({
dayNumber: m,
month: n - 1,
year: a,
selectedDates: i,
disabledDateSetting: !0,
isRangePicking: l,
externalDate: void 0
})
);
}
t.push(null);
}
}
for (let e = 1; e <= p; e++) {
const o = h({
dayNumber: e,
month: n,
year: a,
selectedDates: i,
disabledDateSetting: c,
isRangePicking: l,
externalDate: u ? u[e - 1] : void 0
});
(e + s - 1) % 7 === 0 && e > 1 && (d.push(t), t = []), t.push(o);
}
const f = 7 - t.length;
if (f > 0) {
if (D)
for (let e = 1; e <= f; e++)
t.push(
h({
dayNumber: e,
month: n + 1,
year: a,
selectedDates: i,
disabledDateSetting: !0,
isRangePicking: l,
externalDate: void 0
})
);
} else
for (; t.length < 7; )
t.push(null);
return d.push(t), d;
}, y = (r, n) => new Date(n, r, 0).getDate();
export {
M as default
};