MCPcopy Create free account
hub / github.com/DHTMLX/scheduler / _renderDayGrid

Method _renderDayGrid

codebase/dhtmlxscheduler.es.js:3013–3043  ·  view source on GitHub ↗
(i)

Source from the content-addressed store, hash-verified

3011 return s;
3012 }
3013 _renderDayGrid(i) {
3014 const { date: t, currentRange: n, eventDates: s, minWeeks: a, filterDays: o } = this.getState();
3015 let _ = n[0], r = n[1];
3016 const d = s.reduce((M, k) => (M[this.scheduler.date.day_start(new Date(k)).valueOf()] = !0, M), {}), l = document.createElement("div");
3017 this._renderDayGridHeader(l);
3018 const h = l.children.length;
3019 i.appendChild(l), h !== 7 && i.style.setProperty("--dhx-scheduler-week-length", h);
3020 const p = this.scheduler, m = p.date.week_start(p.date.month_start(new Date(t))), g = p.date.month_start(new Date(t)), c = p.date.add(p.date.month_start(new Date(t)), 1, "month");
3021 let u = p.date.add(p.date.month_start(new Date(t)), 1, "month");
3022 const f = p.date.date_part(p._currentDate());
3023 if (u.getDay() !== 0 && p.config.start_on_monday) {
3024 const M = (7 - u.getDay()) % 7;
3025 u = p.date.add(u, M + 1, "day");
3026 } else
3027 u = p.date.add(p.date.week_start(u), 1, "week");
3028 let y = this._weeksBetween(m, u);
3029 a && y < a && (u = p.date.add(u, a - y, "week"));
3030 let w = m;
3031 const D = document.createElement("div");
3032 for (D.classList.add("dhx_cal_datepicker_days"), this._domEvents.attach(D, "click", (M) => {
3033 const k = M.target.closest("[data-cell-date]"), N = new Date(k.getAttribute("data-cell-date"));
3034 this.callEvent("onDateClick", [N, M]);
3035 }); w.valueOf() < u.valueOf(); ) {
3036 if (!o || !o(w)) {
3037 const M = document.createElement("div");
3038 M.setAttribute("data-cell-date", p.templates.format_date(w)), M.setAttribute("data-day", w.getDay()), M.innerHTML = p.templates.month_day(w), w.valueOf() < g.valueOf() ? M.classList.add("dhx_before") : w.valueOf() >= c.valueOf() && M.classList.add("dhx_after"), w.getDay() !== 0 && w.getDay() !== 6 || M.classList.add("dhx_cal_datepicker_weekend"), w.valueOf() == f.valueOf() && M.classList.add("dhx_now"), _ && r && w.valueOf() >= _.valueOf() && w.valueOf() < r.valueOf() && M.classList.add("dhx_cal_datepicker_current"), d[w.valueOf()] && M.classList.add("dhx_cal_datepicker_event"), M.classList.add("dhx_cal_datepicker_date"), D.appendChild(M);
3039 }
3040 w = p.date.add(w, 1, "day");
3041 }
3042 i.appendChild(D);
3043 }
3044 _renderMonthGrid(i) {
3045 const { date: t } = this.getState(), n = document.createElement("div");
3046 n.classList.add("dhx_cal_datepicker_months");

Callers 2

renderMethod · 0.95

Calls 13

getStateMethod · 0.95
_renderDayGridHeaderMethod · 0.95
_weeksBetweenMethod · 0.95
oFunction · 0.70
day_startMethod · 0.65
week_startMethod · 0.65
month_startMethod · 0.65
addMethod · 0.65
date_partMethod · 0.65
callEventMethod · 0.65
format_dateMethod · 0.65
month_dayMethod · 0.65

Tested by

no test coverage detected