Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
tryStart(ev: UIEvent): boolean {
let subjectEl = this.querySubjectEl(ev)
let downEl = ev.target as HTMLElement
if (
subjectEl &&
(!this.handleSelector || elementClosest(downEl, this.handleSelector))
) {
this.subjectEl = subjectEl
this.downEl = downEl
this.isDragging = true // do this first so cancelTouchScroll will work
this.wasTouchScroll = false
return true
}
return false
}
var mirror = dragging.mirror;
var initialCalendar = component.calendar;
var subjectSeg = _this.subjectSeg = getElSeg(ev.subjectEl);
var eventRange = _this.eventRange = subjectSeg.eventRange;
var eventInstanceId = eventRange.instance.instanceId;
_this.relevantEvents = getRelevantEvents(initialCalendar.state.eventStore, eventInstanceId);
dragging.minDistance = ev.isTouch ? 0 : component.opt('eventDragMinDistance');
dragging.delay =
// only do a touch delay if touch and this event hasn't been selected yet
(ev.isTouch && eventInstanceId !== component.props.eventSelection) ?
getComponentTouchDelay$1(component) :
null;
mirror.parentNode = initialCalendar.el;
mirror.revertDuration = component.opt('dragRevertDuration');
var isValid = component.isValidSegDownEl(origTarget) &&
!elementClosest(origTarget, '.fc-resizer'); // NOT on a resizer
dragging.setIgnoreMove(!isValid);
// disable dragging for elements that are resizable (ie, selectable)
// but are not draggable
_this.isDragging = isValid &&
ev.subjectEl.classList.contains('fc-draggable');
};
_this.handleDragStart = function (ev) {
this.onDocumentPointerUp = function (pev) {
var _a = _this, calendar = _a.calendar, documentPointer = _a.documentPointer;
var state = calendar.state;
// touch-scrolling should never unfocus any type of selection
if (!documentPointer.wasTouchScroll) {
if (state.dateSelection && // an existing date selection?
!_this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp?
) {
var unselectAuto = calendar.viewOpt('unselectAuto');
var unselectCancel = calendar.viewOpt('unselectCancel');
if (unselectAuto && (!unselectAuto || !elementClosest(documentPointer.downEl, unselectCancel))) {
calendar.unselect(pev);
}
}
if (state.eventSelection && // an existing event selected?
!elementClosest(documentPointer.downEl, EventDragging.SELECTOR) // interaction DIDN'T start on an event
) {
calendar.dispatch({ type: 'UNSELECT_EVENT' });
}
}
_this.isRecentPointerDateSelect = false;
};
this.calendar = calendar;
this.onDocumentPointerUp = function (pev) {
var _a = _this, calendar = _a.calendar, documentPointer = _a.documentPointer;
var state = calendar.state;
// touch-scrolling should never unfocus any type of selection
if (!documentPointer.wasTouchScroll) {
if (state.dateSelection && // an existing date selection?
!_this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp?
) {
var unselectAuto = calendar.viewOpt('unselectAuto');
var unselectCancel = calendar.viewOpt('unselectCancel');
if (unselectAuto && (!unselectAuto || !elementClosest(documentPointer.downEl, unselectCancel))) {
calendar.unselect(pev);
}
}
if (state.eventSelection && // an existing event selected?
!elementClosest(documentPointer.downEl, EventDragging.SELECTOR) // interaction DIDN'T start on an event
) {
calendar.dispatch({ type: 'UNSELECT_EVENT' });
}
}
_this.isRecentPointerDateSelect = false;
};
this.calendar = calendar;
onDocumentPointerUp = (pev: PointerDragEvent) => {
let { calendar, documentPointer } = this
let { state } = calendar
// touch-scrolling should never unfocus any type of selection
if (!documentPointer.wasTouchScroll) {
if (
state.dateSelection && // an existing date selection?
!this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp?
) {
let unselectAuto = calendar.viewOpt('unselectAuto')
let unselectCancel = calendar.viewOpt('unselectCancel')
if (unselectAuto && (!unselectAuto || !elementClosest(documentPointer.downEl, unselectCancel))) {
calendar.unselect(pev)
}
}
if (
state.eventSelection && // an existing event selected?
!elementClosest(documentPointer.downEl, EventDragging.SELECTOR) // interaction DIDN'T start on an event
) {
calendar.dispatch({ type: 'UNSELECT_EVENT' })
}
}
this.isRecentPointerDateSelect = false
}
PointerDragging.prototype.querySubjectEl = function (ev) {
if (this.selector) {
return elementClosest(ev.target, this.selector);
}
else {
return this.containerEl;
}
};
PointerDragging.prototype.shouldIgnoreMouse = function () {
querySubjectEl(ev: UIEvent): HTMLElement {
if (this.selector) {
return elementClosest(ev.target as HTMLElement, this.selector)
} else {
return this.containerEl as HTMLElement
}
}
EventDragging.prototype.querySeg = function (ev) {
return getElSeg(elementClosest(ev.subjectEl, this.component.fgSegSelector));
};
return EventDragging;
querySeg(ev: PointerDragEvent): Seg | null {
return getElSeg(elementClosest(ev.subjectEl as HTMLElement, this.component.fgSegSelector))
}