private createCalendar()

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))
        });
    }