Sha256: 05b646b39b040244e8972cd514db6ff9229f4afcb98cc787da39b526ce3e669c
Contents?: true
Size: 1.71 KB
Versions: 1
Compression:
Stored size: 1.71 KB
Contents
function weekSelectPlugin(pluginConfig) { return function(fp) { function onDayHover(event){ if (!event.target.classList.contains("flatpickr-day")) return; const days = event.target.parentNode.childNodes; const dayIndex = event.target.$i; const weekStartDay = days[7 * Math.floor(dayIndex / 7)].dateObj; const weekEndDay = days[7 * Math.ceil(dayIndex / 7) - 1].dateObj; for(let i = days.length; i--;) { const date = days[i].dateObj; if (date > weekEndDay || date < weekStartDay) days[i].classList.remove("inRange"); else days[i].classList.add("inRange"); } } function highlightWeek(){ if (fp.selectedDateElem) { fp.weekStartDay = fp.days.childNodes[ 7 * Math.floor(fp.selectedDateElem.$i / 7) ].dateObj; fp.weekEndDay = fp.days.childNodes[ 7 * Math.ceil(fp.selectedDateElem.$i / 7) - 1 ].dateObj; } const days = fp.days.childNodes; for(let i = days.length; i--;) { const date = days[i].dateObj; if (date >= fp.weekStartDay && date <= fp.weekEndDay) days[i].classList.add("week", "selected"); } } function clearHover() { const days = fp.days.childNodes; for(let i = days.length; i--;) days[i].classList.remove("inRange"); } function onReady(){ fp.days.parentNode.addEventListener("mouseover", onDayHover); } return { onChange: highlightWeek, onMonthChange: () => fp._.afterDayAnim(highlightWeek), onClose: clearHover, onParseConfig: function() { fp.config.mode = "single"; fp.config.enableTime = false; fp.config.dateFormat = "\\W\\e\\e\\k #W, Y"; }, onReady: [onReady, highlightWeek] }; } } if (typeof module !== "undefined") module.exports = weekSelectPlugin;
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
trestle-0.8.0 | vendor/assets/bower_components/trestle/flatpickr/src/plugins/weekSelect/weekSelect.js |