To disable just the RangeSelect for either/both inter-day or intra-day selections you should use the following override on your code:
Ext.define('Ext.calendar.dd.DragZone', {
override: 'Ext.calendar.dd.DragZone',
disableRangeSelect: true,
getDragData: function (e) {
// Check whether we are dragging on an event first
var t = e.getTarget(this.eventSelector, 3);
if (t) {
var rec = this.view.getEventRecordFromEl(t);
return {
type: 'eventdrag',
ddel: t,
eventStart: rec.data[Ext.calendar.data.EventMappings.StartDate.name],
eventEnd: rec.data[Ext.calendar.data.EventMappings.EndDate.name],
proxy: this.proxy
};
}
// If not dragging an event then we are dragging on
// the calendar to add a new event
if (!this.disableRangeSelect) {
t = this.view.getDayAt(e.getX(), e.getY());
if (t.el) {
return {
type: 'caldrag',
start: t.date,
proxy: this.proxy
};
}
};
return null;
}
});
Ext.define('Ext.calendar.dd.DayDragZone', {
override: 'Ext.calendar.dd.DayDragZone',
disableRangeSelect: true,
getDragData: function (e) {
var startDateName = Ext.calendar.data.EventMappings.StartDate.name,
endDateName = Ext.calendar.data.EventMappings.EndDate.name,
t, p, rec;
t = e.getTarget(this.resizeSelector, 2, true);
if (t) {
p = t.parent(this.eventSelector);
rec = this.view.getEventRecordFromEl(p);
return {
type: 'eventresize',
ddel: p.dom,
eventStart: rec.get(startDateName),
eventEnd: rec.get(endDateName),
proxy: this.proxy
};
}
t = e.getTarget(this.eventSelector, 3);
if (t) {
rec = this.view.getEventRecordFromEl(t);
return {
type: 'eventdrag',
ddel: t,
eventStart: rec.get(startDateName),
eventEnd: rec.get(endDateName),
proxy: this.proxy
};
}
// If not dragging/resizing an event then we are dragging on
// the calendar to add a new event
if (!this.disableRangeSelect) {
t = this.view.getDayAt(e.getX(), e.getY());
if (t.el) {
return {
type: 'caldrag',
dayInfo: t,
proxy: this.proxy
};
}
};
return null;
}
});
This will add a 'disableRangeSelect' option on the JavaScript side, default as true, to the month (first override) and week and day (second override).
I hope this helps!
Otherwise, the calendar panel does not provide a means