Event search (Ctrl+F), locale/RTL handling, weekday selector workday/weekend, refactored event handling, Firefox compatibility #3
@ -307,19 +307,16 @@ function startLocalDrag(init, evt) {
|
||||
|
||||
// Determine date under pointer: traverse DOM to find day cell carrying data-date attribute
|
||||
function getDateUnderPointer(x, y, el) {
|
||||
let cur = el
|
||||
while (cur) {
|
||||
if (cur.dataset && cur.dataset.date) {
|
||||
return { date: cur.dataset.date }
|
||||
for (let cur = el; cur; cur = cur.parentElement)
|
||||
if (cur.dataset?.date) return { date: cur.dataset.date }
|
||||
// The event overlay may block seeing the day under it, so we need a fallback
|
||||
const overlayEl = weekOverlayRef.value
|
||||
const container = overlayEl?.parentElement // .days-grid
|
||||
if (container) {
|
||||
for (const d of container.querySelectorAll('[data-date]')) {
|
||||
const { left, right, top, bottom } = d.getBoundingClientRect()
|
||||
if (y >= top && y <= bottom && x >= left && x <= right) return { date: d.dataset.date }
|
||||
}
|
||||
cur = cur.parentElement
|
||||
}
|
||||
// Fallback: elementFromPoint scan
|
||||
const probe = document.elementFromPoint(x, y)
|
||||
let p = probe
|
||||
while (p) {
|
||||
if (p.dataset && p.dataset.date) return { date: p.dataset.date }
|
||||
p = p.parentElement
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user