in src/UXClient/Components/DateTimePicker/DateTimePicker.ts [338:386]
private createCalendar () {
var i18nOptions = {
previousMonth : this.getString('Previous Month'),
nextMonth : this.getString('Next Month'),
months : moment.localeData().months(),
weekdays : moment.localeData().weekdays(),
weekdaysShort : moment.localeData().weekdaysMin()
};
//@ts-ignore
this.calendarPicker = new Pikaday({
bound: false,
container: this.calendar.node(),
field: this.calendar.node(),
i18n: i18nOptions,
numberOfMonths: 2,
onSelect: (d) => {
this.setTimeRange(d, true);
this.isSettingStartTime = !this.isSettingStartTime;
this.calendarPicker.draw();
},
onDraw: (d) => {
if (this.isSettingStartTime)
return;
var self = this;
this.calendar.select(".pika-single").selectAll(".pika-day")
.on("mouseover", function (d) {
var date = new Date( Number(d3.select(this).attr("data-pika-year")),
Number(d3.select(this).attr("data-pika-month")),
Number(d3.select(this).attr("data-pika-day")));
if (!self.isSettingStartTime) {
if (date.valueOf() < self.anchorDate.valueOf() && self.startRange.valueOf() != date.valueOf()) {
self.setTimeRange(date, false);
self.calendarPicker.draw();
return;
}
if (date.valueOf() >= self.anchorDate.valueOf() && (self.endRange == undefined || self.endRange.valueOf() != date.valueOf())) {
self.setTimeRange(date, false);
self.calendarPicker.draw();
return;
}
}
});
},
minDate: this.convertToCalendarDate(this.minMillis),
maxDate: this.convertToCalendarDate(this.maxMillis),
defaultDate: Utils.adjustDateFromTimezoneOffset(new Date(this.fromMillis))
});
}