1const Pt = (e) => ['ЯнваÑÑ','ФевÑалÑ', 'ÐаÑÑ', 'ÐпÑелÑ', 'Ðай', 'ÐÑнÑ', 'ÐÑлÑ', 'ÐвгÑÑÑ', 'СенÑÑбÑÑ', 'ÐкÑÑбÑÑ', 'ÐоÑбÑÑ', 'ÐекабÑÑ'].indexOf(e); 2 window.initCalendar = (e = null, validDates = [],clsDisabled = 'prev-date') => { 3 console.log('init calendar',e); 4 console.log('init validaDates', validDates); 5 let t = null, 6 n = !1, 7 i = null, 8 s = null, 9 r = null, 10 o = !1; 11 e 12 ? ((n = !0), (t = new Date(+e.year, Pt(e.month), +e.day, 0, 0, 0, 0)), (i = +e.day), (s = Pt(e.month)), (r = +e.year)) 13 : ((t = new Date()), (i = new Date().getDate()), (s = new Date().getMonth()), (r = new Date().getFullYear())); 14 document.querySelectorAll(".calendar").forEach((e) => { 15 const a = e.querySelector(".calendar__days"), 16 l = e.querySelector("#today"), 17 c = e.querySelector("#clear"), 18 d = e.querySelector(".date__month"), 19 u = e.querySelector(".date__year"), 20 p = e.querySelector(".calendar__btn--next"), 21 h = e.querySelector(".calendar__btn--prev"); 22 let f = []; 23 e.querySelector(".calendar__months") && (f = Array.from(e.querySelector(".calendar__months").children).map((e) => e.textContent)); 24 const g = () => { 25 t.setDate(1); 26 let e = ""; 27 const r = new Date(t.getFullYear(), t.getMonth() + 1, 0).getDate(), 28 l = new Date(t.getFullYear(), t.getMonth(), 0).getDate(), 29 c = new Date(t.getFullYear(), t.getMonth() + 1, 0).getDay(), 30 p = 0 === t.getDay() ? 7 : t.getDay(), 31 h = 7 - c - 1; 32 (d.innerHTML = f[t.getMonth()]), (u.innerHTML = t.getFullYear()); 33 for (let t = p - 1; t > 0; t--) e += `<div class="prev-date">${l - t + 1}</div>`; 34 for (let a = 1; a <= r; a++) 35 n || o || a !== i || f.indexOf(d.textContent) !== new Date().getMonth() || parseInt(u.textContent) !== new Date().getFullYear() 36 ? (n && !o && a === i && f.indexOf(d.textContent) === t.getMonth() && parseInt(u.textContent) === t.getFullYear()) || (o && a === i && f.indexOf(d.textContent) === s && parseInt(u.textContent)) 37 ? (e += `<div class="day today">${a}</div>`) 38 : parseInt(u.textContent) < new Date().getFullYear() || 39 (parseInt(u.textContent) === new Date().getFullYear() && f.indexOf(d.textContent) < new Date().getMonth()) || 40 (parseInt(u.textContent) === new Date().getFullYear() && f.indexOf(d.textContent) === new Date().getMonth() && new Date().getDate() > a) 41 ? (e += `<div class="prev-date">${a}</div>`) 42 : (validDates.length && !validDates.includes(new Date(t.getFullYear(), t.getMonth(), a).getTime()) ? (e += `<div class="${clsDisabled}">${a}</div>`) : (e += `<div class="day">${a}</div>`)) 43 : (e += `<div class="day today">${a}</div>`); 44 for (let t = 1; t <= h + 1; t++) e += `<div class="next-date">${t}</div>`; 45 (a.innerHTML = e), 46 a.querySelectorAll(".day").forEach((e) => { 47 e.addEventListener("click", (e) => { 48 const t = { 49 day: e.currentTarget.textContent, 50 month: e.currentTarget.closest(".calendar").querySelector(".date__month").textContent, 51 year: e.currentTarget.closest(".calendar").querySelector(".date__year").textContent, 52 calendarId: e.currentTarget.closest(".calendar").id, 53 }; 54 document.dispatchEvent(new CustomEvent("dateChoosen", { detail: { payload: t } })); 55 }); 56 }); 57 }; 58 a && 59 a.addEventListener("click", (e) => { 60 const n = e.target; 61 n.classList.contains("day") && 62 ((o = !0), (i = parseInt(n.textContent)), (s = f.indexOf(d.textContent)), (r = parseInt(u.textContent)), t.setMonth(f.indexOf(d.textContent)), t.setFullYear(parseInt(u.textContent)), g()); 63 }), 64 h && 65 h.addEventListener("click", () => { 66 (o = !0), t.setMonth(t.getMonth() - 1), g(); 67 }), 68 p && 69 p.addEventListener("click", () => { 70 (o = !0), t.setMonth(t.getMonth() + 1), g(); 71 }), 72 l && 73 l.addEventListener("click", () => { 74 (o = !1), (i = new Date().getDate()), (s = new Date().getMonth()), (r = new Date().getFullYear()), t.setMonth(new Date().getMonth()), t.setFullYear(new Date().getFullYear()), g(); 75 }), 76 c && 77 c.addEventListener("click", () => { 78 (o = !1), t.setMonth(new Date().getMonth()), t.setFullYear(new Date().getFullYear()), t.setDate(new Date().getDate()), g(); 79 }), 80 a && g(); 81 }); 82 };
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.