resto-dhepot/public/assets/plugins/daterangepicker/daterangepickerjs.js

1537 lines
71 KiB
JavaScript

/**
* Minified by jsDelivr using Terser v5.19.2.
* Original file: /npm/daterangepicker@3.1.0/daterangepicker.js
*
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
*/
/**
* @version: 3.1
* @author: Dan Grossman http://www.dangrossman.info/
* @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved.
* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php
* @website: http://www.daterangepicker.com/
*/
!(function (t, e) {
if ("function" == typeof define && define.amd)
define(["moment", "jquery"], function (t, a) {
return (
a.fn || (a.fn = {}),
"function" != typeof t &&
t.hasOwnProperty("default") &&
(t = t.default),
e(t, a)
);
});
else if ("object" == typeof module && module.exports) {
var a = "undefined" != typeof window ? window.jQuery : void 0;
a || (a = require("jquery")).fn || (a.fn = {});
var i =
"undefined" != typeof window && void 0 !== window.moment
? window.moment
: require("moment");
module.exports = e(i, a);
} else t.daterangepicker = e(t.moment, t.jQuery);
})(this, function (t, e) {
var a = function (a, i, s) {
if (
((this.parentEl = "body"),
(this.element = e(a)),
(this.startDate = t().startOf("day")),
(this.endDate = t().endOf("day")),
(this.minDate = !1),
(this.maxDate = !1),
(this.maxSpan = !1),
(this.autoApply = !1),
(this.singleDatePicker = !1),
(this.showDropdowns = !1),
(this.minYear = t().subtract(100, "year").format("YYYY")),
(this.maxYear = t().add(100, "year").format("YYYY")),
(this.showWeekNumbers = !1),
(this.showISOWeekNumbers = !1),
(this.showCustomRangeLabel = !0),
(this.timePicker = !1),
(this.timePicker24Hour = !1),
(this.timePickerIncrement = 1),
(this.timePickerSeconds = !1),
(this.linkedCalendars = !0),
(this.autoUpdateInput = !0),
(this.alwaysShowCalendars = !1),
(this.ranges = {}),
(this.opens = "right"),
this.element.hasClass("pull-right") && (this.opens = "left"),
(this.drops = "down"),
this.element.hasClass("dropup") && (this.drops = "up"),
(this.buttonClasses = "btn btn-sm"),
(this.applyButtonClasses = "btn-primary"),
(this.cancelButtonClasses = "btn-default"),
(this.locale = {
direction: "ltr",
format: t.localeData().longDateFormat("L"),
separator: " - ",
applyLabel: "Apply",
cancelLabel: "Cancel",
weekLabel: "W",
customRangeLabel: "Custom Range",
daysOfWeek: t.weekdaysMin(),
monthNames: t.monthsShort(),
firstDay: t.localeData().firstDayOfWeek(),
}),
(this.callback = function () {}),
(this.isShowing = !1),
(this.leftCalendar = {}),
(this.rightCalendar = {}),
("object" == typeof i && null !== i) || (i = {}),
"string" ==
typeof (i = e.extend(this.element.data(), i)).template ||
i.template instanceof e ||
(i.template =
'<div class="daterangepicker"><div class="ranges"></div><div class="drp-calendar left"><div class="calendar-table"></div><div class="calendar-time"></div></div><div class="drp-calendar right"><div class="calendar-table"></div><div class="calendar-time"></div></div><div class="drp-buttons"><span class="drp-selected"></span><button class="cancelBtn" type="button"></button><button class="applyBtn" disabled="disabled" type="button"></button> </div></div>'),
(this.parentEl =
i.parentEl && e(i.parentEl).length
? e(i.parentEl)
: e(this.parentEl)),
(this.container = e(i.template).appendTo(this.parentEl)),
"object" == typeof i.locale &&
("string" == typeof i.locale.direction &&
(this.locale.direction = i.locale.direction),
"string" == typeof i.locale.format &&
(this.locale.format = i.locale.format),
"string" == typeof i.locale.separator &&
(this.locale.separator = i.locale.separator),
"object" == typeof i.locale.daysOfWeek &&
(this.locale.daysOfWeek = i.locale.daysOfWeek.slice()),
"object" == typeof i.locale.monthNames &&
(this.locale.monthNames = i.locale.monthNames.slice()),
"number" == typeof i.locale.firstDay &&
(this.locale.firstDay = i.locale.firstDay),
"string" == typeof i.locale.applyLabel &&
(this.locale.applyLabel = i.locale.applyLabel),
"string" == typeof i.locale.cancelLabel &&
(this.locale.cancelLabel = i.locale.cancelLabel),
"string" == typeof i.locale.weekLabel &&
(this.locale.weekLabel = i.locale.weekLabel),
"string" == typeof i.locale.customRangeLabel))
) {
(p = document.createElement("textarea")).innerHTML =
i.locale.customRangeLabel;
var n = p.value;
this.locale.customRangeLabel = n;
}
if (
(this.container.addClass(this.locale.direction),
"string" == typeof i.startDate &&
(this.startDate = t(i.startDate, this.locale.format)),
"string" == typeof i.endDate &&
(this.endDate = t(i.endDate, this.locale.format)),
"string" == typeof i.minDate &&
(this.minDate = t(i.minDate, this.locale.format)),
"string" == typeof i.maxDate &&
(this.maxDate = t(i.maxDate, this.locale.format)),
"object" == typeof i.startDate && (this.startDate = t(i.startDate)),
"object" == typeof i.endDate && (this.endDate = t(i.endDate)),
"object" == typeof i.minDate && (this.minDate = t(i.minDate)),
"object" == typeof i.maxDate && (this.maxDate = t(i.maxDate)),
this.minDate &&
this.startDate.isBefore(this.minDate) &&
(this.startDate = this.minDate.clone()),
this.maxDate &&
this.endDate.isAfter(this.maxDate) &&
(this.endDate = this.maxDate.clone()),
"string" == typeof i.applyButtonClasses &&
(this.applyButtonClasses = i.applyButtonClasses),
"string" == typeof i.applyClass &&
(this.applyButtonClasses = i.applyClass),
"string" == typeof i.cancelButtonClasses &&
(this.cancelButtonClasses = i.cancelButtonClasses),
"string" == typeof i.cancelClass &&
(this.cancelButtonClasses = i.cancelClass),
"object" == typeof i.maxSpan && (this.maxSpan = i.maxSpan),
"object" == typeof i.dateLimit && (this.maxSpan = i.dateLimit),
"string" == typeof i.opens && (this.opens = i.opens),
"string" == typeof i.drops && (this.drops = i.drops),
"boolean" == typeof i.showWeekNumbers &&
(this.showWeekNumbers = i.showWeekNumbers),
"boolean" == typeof i.showISOWeekNumbers &&
(this.showISOWeekNumbers = i.showISOWeekNumbers),
"string" == typeof i.buttonClasses &&
(this.buttonClasses = i.buttonClasses),
"object" == typeof i.buttonClasses &&
(this.buttonClasses = i.buttonClasses.join(" ")),
"boolean" == typeof i.showDropdowns &&
(this.showDropdowns = i.showDropdowns),
"number" == typeof i.minYear && (this.minYear = i.minYear),
"number" == typeof i.maxYear && (this.maxYear = i.maxYear),
"boolean" == typeof i.showCustomRangeLabel &&
(this.showCustomRangeLabel = i.showCustomRangeLabel),
"boolean" == typeof i.singleDatePicker &&
((this.singleDatePicker = i.singleDatePicker),
this.singleDatePicker &&
(this.endDate = this.startDate.clone())),
"boolean" == typeof i.timePicker &&
(this.timePicker = i.timePicker),
"boolean" == typeof i.timePickerSeconds &&
(this.timePickerSeconds = i.timePickerSeconds),
"number" == typeof i.timePickerIncrement &&
(this.timePickerIncrement = i.timePickerIncrement),
"boolean" == typeof i.timePicker24Hour &&
(this.timePicker24Hour = i.timePicker24Hour),
"boolean" == typeof i.autoApply && (this.autoApply = i.autoApply),
"boolean" == typeof i.autoUpdateInput &&
(this.autoUpdateInput = i.autoUpdateInput),
"boolean" == typeof i.linkedCalendars &&
(this.linkedCalendars = i.linkedCalendars),
"function" == typeof i.isInvalidDate &&
(this.isInvalidDate = i.isInvalidDate),
"function" == typeof i.isCustomDate &&
(this.isCustomDate = i.isCustomDate),
"boolean" == typeof i.alwaysShowCalendars &&
(this.alwaysShowCalendars = i.alwaysShowCalendars),
0 != this.locale.firstDay)
)
for (var r = this.locale.firstDay; r > 0; )
this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()),
r--;
var o, h, l;
if (
void 0 === i.startDate &&
void 0 === i.endDate &&
e(this.element).is(":text")
) {
var c = e(this.element).val(),
d = c.split(this.locale.separator);
(o = h = null),
2 == d.length
? ((o = t(d[0], this.locale.format)),
(h = t(d[1], this.locale.format)))
: this.singleDatePicker &&
"" !== c &&
((o = t(c, this.locale.format)),
(h = t(c, this.locale.format))),
null !== o &&
null !== h &&
(this.setStartDate(o), this.setEndDate(h));
}
if ("object" == typeof i.ranges) {
for (l in i.ranges) {
(o =
"string" == typeof i.ranges[l][0]
? t(i.ranges[l][0], this.locale.format)
: t(i.ranges[l][0])),
(h =
"string" == typeof i.ranges[l][1]
? t(i.ranges[l][1], this.locale.format)
: t(i.ranges[l][1])),
this.minDate &&
o.isBefore(this.minDate) &&
(o = this.minDate.clone());
var m = this.maxDate;
if (
(this.maxSpan &&
m &&
o.clone().add(this.maxSpan).isAfter(m) &&
(m = o.clone().add(this.maxSpan)),
m && h.isAfter(m) && (h = m.clone()),
!(
(this.minDate &&
h.isBefore(
this.minDate,
this.timepicker ? "minute" : "day"
)) ||
(m && o.isAfter(m, this.timepicker ? "minute" : "day"))
))
) {
var p;
(p = document.createElement("textarea")).innerHTML = l;
n = p.value;
this.ranges[n] = [o, h];
}
}
var f = "<ul>";
for (l in this.ranges)
f += '<li data-range-key="' + l + '">' + l + "</li>";
this.showCustomRangeLabel &&
(f +=
'<li data-range-key="' +
this.locale.customRangeLabel +
'">' +
this.locale.customRangeLabel +
"</li>"),
(f += "</ul>"),
this.container.find(".ranges").prepend(f);
}
"function" == typeof s && (this.callback = s),
this.timePicker ||
((this.startDate = this.startDate.startOf("day")),
(this.endDate = this.endDate.endOf("day")),
this.container.find(".calendar-time").hide()),
this.timePicker && this.autoApply && (this.autoApply = !1),
this.autoApply && this.container.addClass("auto-apply"),
"object" == typeof i.ranges &&
this.container.addClass("show-ranges"),
this.singleDatePicker &&
(this.container.addClass("single"),
this.container.find(".drp-calendar.left").addClass("single"),
this.container.find(".drp-calendar.left").show(),
this.container.find(".drp-calendar.right").hide(),
!this.timePicker &&
this.autoApply &&
this.container.addClass("auto-apply")),
((void 0 === i.ranges && !this.singleDatePicker) ||
this.alwaysShowCalendars) &&
this.container.addClass("show-calendar"),
this.container.addClass("opens" + this.opens),
this.container
.find(".applyBtn, .cancelBtn")
.addClass(this.buttonClasses),
this.applyButtonClasses.length &&
this.container
.find(".applyBtn")
.addClass(this.applyButtonClasses),
this.cancelButtonClasses.length &&
this.container
.find(".cancelBtn")
.addClass(this.cancelButtonClasses),
this.container.find(".applyBtn").html(this.locale.applyLabel),
this.container.find(".cancelBtn").html(this.locale.cancelLabel),
this.container
.find(".drp-calendar")
.on(
"click.daterangepicker",
".prev",
e.proxy(this.clickPrev, this)
)
.on(
"click.daterangepicker",
".next",
e.proxy(this.clickNext, this)
)
.on(
"mousedown.daterangepicker",
"td.available",
e.proxy(this.clickDate, this)
)
.on(
"mouseenter.daterangepicker",
"td.available",
e.proxy(this.hoverDate, this)
)
.on(
"change.daterangepicker",
"select.yearselect",
e.proxy(this.monthOrYearChanged, this)
)
.on(
"change.daterangepicker",
"select.monthselect",
e.proxy(this.monthOrYearChanged, this)
)
.on(
"change.daterangepicker",
"select.hourselect,select.minuteselect,select.secondselect,select.ampmselect",
e.proxy(this.timeChanged, this)
),
this.container
.find(".ranges")
.on(
"click.daterangepicker",
"li",
e.proxy(this.clickRange, this)
),
this.container
.find(".drp-buttons")
.on(
"click.daterangepicker",
"button.applyBtn",
e.proxy(this.clickApply, this)
)
.on(
"click.daterangepicker",
"button.cancelBtn",
e.proxy(this.clickCancel, this)
),
this.element.is("input") || this.element.is("button")
? this.element.on({
"click.daterangepicker": e.proxy(this.show, this),
"focus.daterangepicker": e.proxy(this.show, this),
"keyup.daterangepicker": e.proxy(
this.elementChanged,
this
),
"keydown.daterangepicker": e.proxy(this.keydown, this),
})
: (this.element.on(
"click.daterangepicker",
e.proxy(this.toggle, this)
),
this.element.on(
"keydown.daterangepicker",
e.proxy(this.toggle, this)
)),
this.updateElement();
};
return (
(a.prototype = {
constructor: a,
setStartDate: function (e) {
"string" == typeof e &&
(this.startDate = t(e, this.locale.format)),
"object" == typeof e && (this.startDate = t(e)),
this.timePicker ||
(this.startDate = this.startDate.startOf("day")),
this.timePicker &&
this.timePickerIncrement &&
this.startDate.minute(
Math.round(
this.startDate.minute() /
this.timePickerIncrement
) * this.timePickerIncrement
),
this.minDate &&
this.startDate.isBefore(this.minDate) &&
((this.startDate = this.minDate.clone()),
this.timePicker &&
this.timePickerIncrement &&
this.startDate.minute(
Math.round(
this.startDate.minute() /
this.timePickerIncrement
) * this.timePickerIncrement
)),
this.maxDate &&
this.startDate.isAfter(this.maxDate) &&
((this.startDate = this.maxDate.clone()),
this.timePicker &&
this.timePickerIncrement &&
this.startDate.minute(
Math.floor(
this.startDate.minute() /
this.timePickerIncrement
) * this.timePickerIncrement
)),
this.isShowing || this.updateElement(),
this.updateMonthsInView();
},
setEndDate: function (e) {
"string" == typeof e &&
(this.endDate = t(e, this.locale.format)),
"object" == typeof e && (this.endDate = t(e)),
this.timePicker ||
(this.endDate = this.endDate.endOf("day")),
this.timePicker &&
this.timePickerIncrement &&
this.endDate.minute(
Math.round(
this.endDate.minute() / this.timePickerIncrement
) * this.timePickerIncrement
),
this.endDate.isBefore(this.startDate) &&
(this.endDate = this.startDate.clone()),
this.maxDate &&
this.endDate.isAfter(this.maxDate) &&
(this.endDate = this.maxDate.clone()),
this.maxSpan &&
this.startDate
.clone()
.add(this.maxSpan)
.isBefore(this.endDate) &&
(this.endDate = this.startDate
.clone()
.add(this.maxSpan)),
(this.previousRightTime = this.endDate.clone()),
this.container
.find(".drp-selected")
.html(
this.startDate.format(this.locale.format) +
this.locale.separator +
this.endDate.format(this.locale.format)
),
this.isShowing || this.updateElement(),
this.updateMonthsInView();
},
isInvalidDate: function () {
return !1;
},
isCustomDate: function () {
return !1;
},
updateView: function () {
this.timePicker &&
(this.renderTimePicker("left"),
this.renderTimePicker("right"),
this.endDate
? this.container
.find(".right .calendar-time select")
.prop("disabled", !1)
.removeClass("disabled")
: this.container
.find(".right .calendar-time select")
.prop("disabled", !0)
.addClass("disabled")),
this.endDate &&
this.container
.find(".drp-selected")
.html(
this.startDate.format(this.locale.format) +
this.locale.separator +
this.endDate.format(this.locale.format)
),
this.updateMonthsInView(),
this.updateCalendars(),
this.updateFormInputs();
},
updateMonthsInView: function () {
if (this.endDate) {
if (
!this.singleDatePicker &&
this.leftCalendar.month &&
this.rightCalendar.month &&
(this.startDate.format("YYYY-MM") ==
this.leftCalendar.month.format("YYYY-MM") ||
this.startDate.format("YYYY-MM") ==
this.rightCalendar.month.format("YYYY-MM")) &&
(this.endDate.format("YYYY-MM") ==
this.leftCalendar.month.format("YYYY-MM") ||
this.endDate.format("YYYY-MM") ==
this.rightCalendar.month.format("YYYY-MM"))
)
return;
(this.leftCalendar.month = this.startDate.clone().date(2)),
this.linkedCalendars ||
(this.endDate.month() == this.startDate.month() &&
this.endDate.year() == this.startDate.year())
? (this.rightCalendar.month = this.startDate
.clone()
.date(2)
.add(1, "month"))
: (this.rightCalendar.month = this.endDate
.clone()
.date(2));
} else
this.leftCalendar.month.format("YYYY-MM") !=
this.startDate.format("YYYY-MM") &&
this.rightCalendar.month.format("YYYY-MM") !=
this.startDate.format("YYYY-MM") &&
((this.leftCalendar.month = this.startDate
.clone()
.date(2)),
(this.rightCalendar.month = this.startDate
.clone()
.date(2)
.add(1, "month")));
this.maxDate &&
this.linkedCalendars &&
!this.singleDatePicker &&
this.rightCalendar.month > this.maxDate &&
((this.rightCalendar.month = this.maxDate.clone().date(2)),
(this.leftCalendar.month = this.maxDate
.clone()
.date(2)
.subtract(1, "month")));
},
updateCalendars: function () {
if (this.timePicker) {
var t, e, a, i;
if (this.endDate) {
if (
((t = parseInt(
this.container.find(".left .hourselect").val(),
10
)),
(e = parseInt(
this.container
.find(".left .minuteselect")
.val(),
10
)),
isNaN(e) &&
(e = parseInt(
this.container
.find(".left .minuteselect option:last")
.val(),
10
)),
(a = this.timePickerSeconds
? parseInt(
this.container
.find(".left .secondselect")
.val(),
10
)
: 0),
!this.timePicker24Hour)
)
"PM" ===
(i = this.container
.find(".left .ampmselect")
.val()) &&
t < 12 &&
(t += 12),
"AM" === i && 12 === t && (t = 0);
} else if (
((t = parseInt(
this.container.find(".right .hourselect").val(),
10
)),
(e = parseInt(
this.container.find(".right .minuteselect").val(),
10
)),
isNaN(e) &&
(e = parseInt(
this.container
.find(".right .minuteselect option:last")
.val(),
10
)),
(a = this.timePickerSeconds
? parseInt(
this.container
.find(".right .secondselect")
.val(),
10
)
: 0),
!this.timePicker24Hour)
)
"PM" ===
(i = this.container
.find(".right .ampmselect")
.val()) &&
t < 12 &&
(t += 12),
"AM" === i && 12 === t && (t = 0);
this.leftCalendar.month.hour(t).minute(e).second(a),
this.rightCalendar.month.hour(t).minute(e).second(a);
}
this.renderCalendar("left"),
this.renderCalendar("right"),
this.container.find(".ranges li").removeClass("active"),
null != this.endDate && this.calculateChosenLabel();
},
renderCalendar: function (a) {
var i,
s = (i =
"left" == a
? this.leftCalendar
: this.rightCalendar).month.month(),
n = i.month.year(),
r = i.month.hour(),
o = i.month.minute(),
h = i.month.second(),
l = t([n, s]).daysInMonth(),
c = t([n, s, 1]),
d = t([n, s, l]),
m = t(c).subtract(1, "month").month(),
p = t(c).subtract(1, "month").year(),
f = t([p, m]).daysInMonth(),
u = c.day();
((i = []).firstDay = c), (i.lastDay = d);
for (var D = 0; D < 6; D++) i[D] = [];
var g = f - u + this.locale.firstDay + 1;
g > f && (g -= 7), u == this.locale.firstDay && (g = f - 6);
for (
var y = t([p, m, g, 12, o, h]), k = ((D = 0), 0), b = 0;
D < 42;
D++, k++, y = t(y).add(24, "hour")
)
D > 0 && k % 7 == 0 && ((k = 0), b++),
(i[b][k] = y.clone().hour(r).minute(o).second(h)),
y.hour(12),
this.minDate &&
i[b][k].format("YYYY-MM-DD") ==
this.minDate.format("YYYY-MM-DD") &&
i[b][k].isBefore(this.minDate) &&
"left" == a &&
(i[b][k] = this.minDate.clone()),
this.maxDate &&
i[b][k].format("YYYY-MM-DD") ==
this.maxDate.format("YYYY-MM-DD") &&
i[b][k].isAfter(this.maxDate) &&
"right" == a &&
(i[b][k] = this.maxDate.clone());
"left" == a
? (this.leftCalendar.calendar = i)
: (this.rightCalendar.calendar = i);
var v = "left" == a ? this.minDate : this.startDate,
C = this.maxDate,
Y =
("left" == a ? this.startDate : this.endDate,
this.locale.direction,
'<table class="table-condensed">');
(Y += "<thead>"),
(Y += "<tr>"),
(this.showWeekNumbers || this.showISOWeekNumbers) &&
(Y += "<th></th>"),
(v && !v.isBefore(i.firstDay)) ||
(this.linkedCalendars && "left" != a)
? (Y += "<th></th>")
: (Y +=
'<th class="prev available"><span></span></th>');
var w =
this.locale.monthNames[i[1][1].month()] +
i[1][1].format(" YYYY");
if (this.showDropdowns) {
for (
var P = i[1][1].month(),
x = i[1][1].year(),
M = (C && C.year()) || this.maxYear,
I = (v && v.year()) || this.minYear,
S = x == I,
B = x == M,
A = '<select class="monthselect">',
L = 0;
L < 12;
L++
)
(!S || (v && L >= v.month())) &&
(!B || (C && L <= C.month()))
? (A +=
"<option value='" +
L +
"'" +
(L === P ? " selected='selected'" : "") +
">" +
this.locale.monthNames[L] +
"</option>")
: (A +=
"<option value='" +
L +
"'" +
(L === P ? " selected='selected'" : "") +
" disabled='disabled'>" +
this.locale.monthNames[L] +
"</option>");
A += "</select>";
for (
var N = '<select class="yearselect">', E = I;
E <= M;
E++
)
N +=
'<option value="' +
E +
'"' +
(E === x ? ' selected="selected"' : "") +
">" +
E +
"</option>";
w = A + (N += "</select>");
}
if (
((Y += '<th colspan="5" class="month">' + w + "</th>"),
(C && !C.isAfter(i.lastDay)) ||
(this.linkedCalendars &&
"right" != a &&
!this.singleDatePicker)
? (Y += "<th></th>")
: (Y +=
'<th class="next available"><span></span></th>'),
(Y += "</tr>"),
(Y += "<tr>"),
(this.showWeekNumbers || this.showISOWeekNumbers) &&
(Y +=
'<th class="week">' +
this.locale.weekLabel +
"</th>"),
e.each(this.locale.daysOfWeek, function (t, e) {
Y += "<th>" + e + "</th>";
}),
(Y += "</tr>"),
(Y += "</thead>"),
(Y += "<tbody>"),
null == this.endDate && this.maxSpan)
) {
var O = this.startDate
.clone()
.add(this.maxSpan)
.endOf("day");
(C && !O.isBefore(C)) || (C = O);
}
for (b = 0; b < 6; b++) {
(Y += "<tr>"),
this.showWeekNumbers
? (Y +=
'<td class="week">' +
i[b][0].week() +
"</td>")
: this.showISOWeekNumbers &&
(Y +=
'<td class="week">' +
i[b][0].isoWeek() +
"</td>");
for (k = 0; k < 7; k++) {
var W = [];
i[b][k].isSame(new Date(), "day") && W.push("today"),
i[b][k].isoWeekday() > 5 && W.push("weekend"),
i[b][k].month() != i[1][1].month() &&
W.push("off", "ends"),
this.minDate &&
i[b][k].isBefore(this.minDate, "day") &&
W.push("off", "disabled"),
C &&
i[b][k].isAfter(C, "day") &&
W.push("off", "disabled"),
this.isInvalidDate(i[b][k]) &&
W.push("off", "disabled"),
i[b][k].format("YYYY-MM-DD") ==
this.startDate.format("YYYY-MM-DD") &&
W.push("active", "start-date"),
null != this.endDate &&
i[b][k].format("YYYY-MM-DD") ==
this.endDate.format("YYYY-MM-DD") &&
W.push("active", "end-date"),
null != this.endDate &&
i[b][k] > this.startDate &&
i[b][k] < this.endDate &&
W.push("in-range");
var H = this.isCustomDate(i[b][k]);
!1 !== H &&
("string" == typeof H
? W.push(H)
: Array.prototype.push.apply(W, H));
var j = "",
R = !1;
for (D = 0; D < W.length; D++)
(j += W[D] + " "), "disabled" == W[D] && (R = !0);
R || (j += "available"),
(Y +=
'<td class="' +
j.replace(/^\s+|\s+$/g, "") +
'" data-title="r' +
b +
"c" +
k +
'">' +
i[b][k].date() +
"</td>");
}
Y += "</tr>";
}
(Y += "</tbody>"),
(Y += "</table>"),
this.container
.find(".drp-calendar." + a + " .calendar-table")
.html(Y);
},
renderTimePicker: function (t) {
if ("right" != t || this.endDate) {
var e,
a,
i,
s = this.maxDate;
if (
(!this.maxSpan ||
(this.maxDate &&
!this.startDate
.clone()
.add(this.maxSpan)
.isBefore(this.maxDate)) ||
(s = this.startDate.clone().add(this.maxSpan)),
"left" == t)
)
(a = this.startDate.clone()), (i = this.minDate);
else if ("right" == t) {
(a = this.endDate.clone()), (i = this.startDate);
var n = this.container.find(
".drp-calendar.right .calendar-time"
);
if (
"" != n.html() &&
(a.hour(
isNaN(a.hour())
? n
.find(".hourselect option:selected")
.val()
: a.hour()
),
a.minute(
isNaN(a.minute())
? n
.find(".minuteselect option:selected")
.val()
: a.minute()
),
a.second(
isNaN(a.second())
? n
.find(".secondselect option:selected")
.val()
: a.second()
),
!this.timePicker24Hour)
) {
var r = n.find(".ampmselect option:selected").val();
"PM" === r &&
a.hour() < 12 &&
a.hour(a.hour() + 12),
"AM" === r && 12 === a.hour() && a.hour(0);
}
a.isBefore(this.startDate) &&
(a = this.startDate.clone()),
s && a.isAfter(s) && (a = s.clone());
}
e = '<select class="hourselect">';
for (
var o = this.timePicker24Hour ? 0 : 1,
h = this.timePicker24Hour ? 23 : 12,
l = o;
l <= h;
l++
) {
var c = l;
this.timePicker24Hour ||
(c =
a.hour() >= 12
? 12 == l
? 12
: l + 12
: 12 == l
? 0
: l);
var d = a.clone().hour(c),
m = !1;
i && d.minute(59).isBefore(i) && (m = !0),
s && d.minute(0).isAfter(s) && (m = !0),
c != a.hour() || m
? (e += m
? '<option value="' +
l +
'" disabled="disabled" class="disabled">' +
l +
"</option>"
: '<option value="' +
l +
'">' +
l +
"</option>")
: (e +=
'<option value="' +
l +
'" selected="selected">' +
l +
"</option>");
}
(e += "</select> "),
(e += ': <select class="minuteselect">');
for (l = 0; l < 60; l += this.timePickerIncrement) {
var p = l < 10 ? "0" + l : l;
(d = a.clone().minute(l)), (m = !1);
i && d.second(59).isBefore(i) && (m = !0),
s && d.second(0).isAfter(s) && (m = !0),
a.minute() != l || m
? (e += m
? '<option value="' +
l +
'" disabled="disabled" class="disabled">' +
p +
"</option>"
: '<option value="' +
l +
'">' +
p +
"</option>")
: (e +=
'<option value="' +
l +
'" selected="selected">' +
p +
"</option>");
}
if (((e += "</select> "), this.timePickerSeconds)) {
e += ': <select class="secondselect">';
for (l = 0; l < 60; l++) {
(p = l < 10 ? "0" + l : l),
(d = a.clone().second(l)),
(m = !1);
i && d.isBefore(i) && (m = !0),
s && d.isAfter(s) && (m = !0),
a.second() != l || m
? (e += m
? '<option value="' +
l +
'" disabled="disabled" class="disabled">' +
p +
"</option>"
: '<option value="' +
l +
'">' +
p +
"</option>")
: (e +=
'<option value="' +
l +
'" selected="selected">' +
p +
"</option>");
}
e += "</select> ";
}
if (!this.timePicker24Hour) {
e += '<select class="ampmselect">';
var f = "",
u = "";
i &&
a
.clone()
.hour(12)
.minute(0)
.second(0)
.isBefore(i) &&
(f = ' disabled="disabled" class="disabled"'),
s &&
a
.clone()
.hour(0)
.minute(0)
.second(0)
.isAfter(s) &&
(u = ' disabled="disabled" class="disabled"'),
a.hour() >= 12
? (e +=
'<option value="AM"' +
f +
'>AM</option><option value="PM" selected="selected"' +
u +
">PM</option>")
: (e +=
'<option value="AM" selected="selected"' +
f +
'>AM</option><option value="PM"' +
u +
">PM</option>"),
(e += "</select>");
}
this.container
.find(".drp-calendar." + t + " .calendar-time")
.html(e);
}
},
updateFormInputs: function () {
this.singleDatePicker ||
(this.endDate &&
(this.startDate.isBefore(this.endDate) ||
this.startDate.isSame(this.endDate)))
? this.container
.find("button.applyBtn")
.prop("disabled", !1)
: this.container
.find("button.applyBtn")
.prop("disabled", !0);
},
move: function () {
var t,
a = { top: 0, left: 0 },
i = this.drops,
s = e(window).width();
switch (
(this.parentEl.is("body") ||
((a = {
top:
this.parentEl.offset().top -
this.parentEl.scrollTop(),
left:
this.parentEl.offset().left -
this.parentEl.scrollLeft(),
}),
(s =
this.parentEl[0].clientWidth +
this.parentEl.offset().left)),
i)
) {
case "auto":
(t =
this.element.offset().top +
this.element.outerHeight() -
a.top) +
this.container.outerHeight() >=
this.parentEl[0].scrollHeight &&
((t =
this.element.offset().top -
this.container.outerHeight() -
a.top),
(i = "up"));
break;
case "up":
t =
this.element.offset().top -
this.container.outerHeight() -
a.top;
break;
default:
t =
this.element.offset().top +
this.element.outerHeight() -
a.top;
}
this.container.css({ top: 0, left: 0, right: "auto" });
var n = this.container.outerWidth();
if (
(this.container.toggleClass("drop-up", "up" == i),
"left" == this.opens)
) {
var r =
s -
this.element.offset().left -
this.element.outerWidth();
n + r > e(window).width()
? this.container.css({ top: t, right: "auto", left: 9 })
: this.container.css({
top: t,
right: r,
left: "auto",
});
} else if ("center" == this.opens) {
(o =
this.element.offset().left -
a.left +
this.element.outerWidth() / 2 -
n / 2) < 0
? this.container.css({ top: t, right: "auto", left: 9 })
: o + n > e(window).width()
? this.container.css({ top: t, left: "auto", right: 0 })
: this.container.css({
top: t,
left: o,
right: "auto",
});
} else {
var o;
(o = this.element.offset().left - a.left) + n >
e(window).width()
? this.container.css({ top: t, left: "auto", right: 0 })
: this.container.css({
top: t,
left: o,
right: "auto",
});
}
},
show: function (t) {
this.isShowing ||
((this._outsideClickProxy = e.proxy(function (t) {
this.outsideClick(t);
}, this)),
e(document)
.on(
"mousedown.daterangepicker",
this._outsideClickProxy
)
.on("touchend.daterangepicker", this._outsideClickProxy)
.on(
"click.daterangepicker",
"[data-toggle=dropdown]",
this._outsideClickProxy
)
.on("focusin.daterangepicker", this._outsideClickProxy),
e(window).on(
"resize.daterangepicker",
e.proxy(function (t) {
this.move(t);
}, this)
),
(this.oldStartDate = this.startDate.clone()),
(this.oldEndDate = this.endDate.clone()),
(this.previousRightTime = this.endDate.clone()),
this.updateView(),
this.container.show(),
this.move(),
this.element.trigger("show.daterangepicker", this),
(this.isShowing = !0));
},
hide: function (t) {
this.isShowing &&
(this.endDate ||
((this.startDate = this.oldStartDate.clone()),
(this.endDate = this.oldEndDate.clone())),
(this.startDate.isSame(this.oldStartDate) &&
this.endDate.isSame(this.oldEndDate)) ||
this.callback(
this.startDate.clone(),
this.endDate.clone(),
this.chosenLabel
),
this.updateElement(),
e(document).off(".daterangepicker"),
e(window).off(".daterangepicker"),
this.container.hide(),
this.element.trigger("hide.daterangepicker", this),
(this.isShowing = !1));
},
toggle: function (t) {
this.isShowing ? this.hide() : this.show();
},
outsideClick: function (t) {
var a = e(t.target);
"focusin" == t.type ||
a.closest(this.element).length ||
a.closest(this.container).length ||
a.closest(".calendar-table").length ||
(this.hide(),
this.element.trigger("outsideClick.daterangepicker", this));
},
showCalendars: function () {
this.container.addClass("show-calendar"),
this.move(),
this.element.trigger("showCalendar.daterangepicker", this);
},
hideCalendars: function () {
this.container.removeClass("show-calendar"),
this.element.trigger("hideCalendar.daterangepicker", this);
},
clickRange: function (t) {
var e = t.target.getAttribute("data-range-key");
if (((this.chosenLabel = e), e == this.locale.customRangeLabel))
this.showCalendars();
else {
var a = this.ranges[e];
(this.startDate = a[0]),
(this.endDate = a[1]),
this.timePicker ||
(this.startDate.startOf("day"),
this.endDate.endOf("day")),
this.alwaysShowCalendars || this.hideCalendars(),
this.clickApply();
}
},
clickPrev: function (t) {
e(t.target).parents(".drp-calendar").hasClass("left")
? (this.leftCalendar.month.subtract(1, "month"),
this.linkedCalendars &&
this.rightCalendar.month.subtract(1, "month"))
: this.rightCalendar.month.subtract(1, "month"),
this.updateCalendars();
},
clickNext: function (t) {
e(t.target).parents(".drp-calendar").hasClass("left")
? this.leftCalendar.month.add(1, "month")
: (this.rightCalendar.month.add(1, "month"),
this.linkedCalendars &&
this.leftCalendar.month.add(1, "month")),
this.updateCalendars();
},
hoverDate: function (t) {
if (e(t.target).hasClass("available")) {
var a = e(t.target).attr("data-title"),
i = a.substr(1, 1),
s = a.substr(3, 1),
n = e(t.target)
.parents(".drp-calendar")
.hasClass("left")
? this.leftCalendar.calendar[i][s]
: this.rightCalendar.calendar[i][s],
r = this.leftCalendar,
o = this.rightCalendar,
h = this.startDate;
this.endDate ||
this.container
.find(".drp-calendar tbody td")
.each(function (t, a) {
if (!e(a).hasClass("week")) {
var i = e(a).attr("data-title"),
s = i.substr(1, 1),
l = i.substr(3, 1),
c = e(a)
.parents(".drp-calendar")
.hasClass("left")
? r.calendar[s][l]
: o.calendar[s][l];
(c.isAfter(h) && c.isBefore(n)) ||
c.isSame(n, "day")
? e(a).addClass("in-range")
: e(a).removeClass("in-range");
}
});
}
},
clickDate: function (t) {
if (e(t.target).hasClass("available")) {
var a = e(t.target).attr("data-title"),
i = a.substr(1, 1),
s = a.substr(3, 1),
n = e(t.target)
.parents(".drp-calendar")
.hasClass("left")
? this.leftCalendar.calendar[i][s]
: this.rightCalendar.calendar[i][s];
if (this.endDate || n.isBefore(this.startDate, "day")) {
if (this.timePicker) {
var r = parseInt(
this.container.find(".left .hourselect").val(),
10
);
if (!this.timePicker24Hour)
"PM" ===
(l = this.container
.find(".left .ampmselect")
.val()) &&
r < 12 &&
(r += 12),
"AM" === l && 12 === r && (r = 0);
var o = parseInt(
this.container
.find(".left .minuteselect")
.val(),
10
);
isNaN(o) &&
(o = parseInt(
this.container
.find(".left .minuteselect option:last")
.val(),
10
));
var h = this.timePickerSeconds
? parseInt(
this.container
.find(".left .secondselect")
.val(),
10
)
: 0;
n = n.clone().hour(r).minute(o).second(h);
}
(this.endDate = null), this.setStartDate(n.clone());
} else if (!this.endDate && n.isBefore(this.startDate))
this.setEndDate(this.startDate.clone());
else {
if (this.timePicker) {
var l;
r = parseInt(
this.container.find(".right .hourselect").val(),
10
);
if (!this.timePicker24Hour)
"PM" ===
(l = this.container
.find(".right .ampmselect")
.val()) &&
r < 12 &&
(r += 12),
"AM" === l && 12 === r && (r = 0);
o = parseInt(
this.container
.find(".right .minuteselect")
.val(),
10
);
isNaN(o) &&
(o = parseInt(
this.container
.find(
".right .minuteselect option:last"
)
.val(),
10
));
h = this.timePickerSeconds
? parseInt(
this.container
.find(".right .secondselect")
.val(),
10
)
: 0;
n = n.clone().hour(r).minute(o).second(h);
}
this.setEndDate(n.clone()),
this.autoApply &&
(this.calculateChosenLabel(),
this.clickApply());
}
this.singleDatePicker &&
(this.setEndDate(this.startDate),
!this.timePicker &&
this.autoApply &&
this.clickApply()),
this.updateView(),
t.stopPropagation();
}
},
calculateChosenLabel: function () {
var t = !0,
e = 0;
for (var a in this.ranges) {
if (this.timePicker) {
var i = this.timePickerSeconds
? "YYYY-MM-DD HH:mm:ss"
: "YYYY-MM-DD HH:mm";
if (
this.startDate.format(i) ==
this.ranges[a][0].format(i) &&
this.endDate.format(i) ==
this.ranges[a][1].format(i)
) {
(t = !1),
(this.chosenLabel = this.container
.find(".ranges li:eq(" + e + ")")
.addClass("active")
.attr("data-range-key"));
break;
}
} else if (
this.startDate.format("YYYY-MM-DD") ==
this.ranges[a][0].format("YYYY-MM-DD") &&
this.endDate.format("YYYY-MM-DD") ==
this.ranges[a][1].format("YYYY-MM-DD")
) {
(t = !1),
(this.chosenLabel = this.container
.find(".ranges li:eq(" + e + ")")
.addClass("active")
.attr("data-range-key"));
break;
}
e++;
}
t &&
(this.showCustomRangeLabel
? (this.chosenLabel = this.container
.find(".ranges li:last")
.addClass("active")
.attr("data-range-key"))
: (this.chosenLabel = null),
this.showCalendars());
},
clickApply: function (t) {
this.hide(),
this.element.trigger("apply.daterangepicker", this);
},
clickCancel: function (t) {
(this.startDate = this.oldStartDate),
(this.endDate = this.oldEndDate),
this.hide(),
this.element.trigger("cancel.daterangepicker", this);
},
monthOrYearChanged: function (t) {
var a = e(t.target).closest(".drp-calendar").hasClass("left"),
i = a ? "left" : "right",
s = this.container.find(".drp-calendar." + i),
n = parseInt(s.find(".monthselect").val(), 10),
r = s.find(".yearselect").val();
a ||
((r < this.startDate.year() ||
(r == this.startDate.year() &&
n < this.startDate.month())) &&
((n = this.startDate.month()),
(r = this.startDate.year()))),
this.minDate &&
(r < this.minDate.year() ||
(r == this.minDate.year() &&
n < this.minDate.month())) &&
((n = this.minDate.month()), (r = this.minDate.year())),
this.maxDate &&
(r > this.maxDate.year() ||
(r == this.maxDate.year() &&
n > this.maxDate.month())) &&
((n = this.maxDate.month()), (r = this.maxDate.year())),
a
? (this.leftCalendar.month.month(n).year(r),
this.linkedCalendars &&
(this.rightCalendar.month =
this.leftCalendar.month
.clone()
.add(1, "month")))
: (this.rightCalendar.month.month(n).year(r),
this.linkedCalendars &&
(this.leftCalendar.month =
this.rightCalendar.month
.clone()
.subtract(1, "month"))),
this.updateCalendars();
},
timeChanged: function (t) {
var a = e(t.target).closest(".drp-calendar"),
i = a.hasClass("left"),
s = parseInt(a.find(".hourselect").val(), 10),
n = parseInt(a.find(".minuteselect").val(), 10);
isNaN(n) &&
(n = parseInt(
a.find(".minuteselect option:last").val(),
10
));
var r = this.timePickerSeconds
? parseInt(a.find(".secondselect").val(), 10)
: 0;
if (!this.timePicker24Hour) {
var o = a.find(".ampmselect").val();
"PM" === o && s < 12 && (s += 12),
"AM" === o && 12 === s && (s = 0);
}
if (i) {
var h = this.startDate.clone();
h.hour(s),
h.minute(n),
h.second(r),
this.setStartDate(h),
this.singleDatePicker
? (this.endDate = this.startDate.clone())
: this.endDate &&
this.endDate.format("YYYY-MM-DD") ==
h.format("YYYY-MM-DD") &&
this.endDate.isBefore(h) &&
this.setEndDate(h.clone());
} else if (this.endDate) {
var l = this.endDate.clone();
l.hour(s), l.minute(n), l.second(r), this.setEndDate(l);
}
this.updateCalendars(),
this.updateFormInputs(),
this.renderTimePicker("left"),
this.renderTimePicker("right");
},
elementChanged: function () {
if (this.element.is("input") && this.element.val().length) {
var e = this.element.val().split(this.locale.separator),
a = null,
i = null;
2 === e.length &&
((a = t(e[0], this.locale.format)),
(i = t(e[1], this.locale.format))),
(this.singleDatePicker || null === a || null === i) &&
(i = a = t(this.element.val(), this.locale.format)),
a.isValid() &&
i.isValid() &&
(this.setStartDate(a),
this.setEndDate(i),
this.updateView());
}
},
keydown: function (t) {
(9 !== t.keyCode && 13 !== t.keyCode) || this.hide(),
27 === t.keyCode &&
(t.preventDefault(), t.stopPropagation(), this.hide());
},
updateElement: function () {
if (this.element.is("input") && this.autoUpdateInput) {
var t = this.startDate.format(this.locale.format);
this.singleDatePicker ||
(t +=
this.locale.separator +
this.endDate.format(this.locale.format)),
t !== this.element.val() &&
this.element.val(t).trigger("change");
}
},
remove: function () {
this.container.remove(),
this.element.off(".daterangepicker"),
this.element.removeData();
},
}),
(e.fn.daterangepicker = function (t, i) {
var s = e.extend(!0, {}, e.fn.daterangepicker.defaultOptions, t);
return (
this.each(function () {
var t = e(this);
t.data("daterangepicker") &&
t.data("daterangepicker").remove(),
t.data("daterangepicker", new a(t, s, i));
}),
this
);
}),
a
);
});
//# sourceMappingURL=/sm/88e48650a36caa41dd1aa0f1a5ee66247818a496500de85dec44b4e2e87cd438.map