PageSourceSearch

https://khshield.com/template/js/library/datetime/daterangepicker.min.js

js khshield.com collected 2026-10-08 10:45:40 UTC 65,042 bytes, 1,272 lines download raw bytes

1/**
2 * Minified by jsDelivr using Terser v3.14.1.
3 * Original file: /npm/[email protected]/daterangepicker.js
4 *
5 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
6 */
7!(function(t, e) {
8    if ("function" == typeof define && define.amd)
9        define(["moment", "jquery"], function(t, a) {
10            return (
11                a.fn || (a.fn = {}),
12                "function" != typeof t &&
13                t.hasOwnProperty("default") &&
14                (t = t.default),
15                e(t, a)
16            );
17        });
18    else if ("object" == typeof module && module.exports) {
19        var a = "undefined" != typeof window ? window.jQuery : void 0;
20        a || (a = require("jquery")).fn || (a.fn = {});
21        var i =
22            "undefined" != typeof window && void 0 !== window.moment ?
23            window.moment :
24            require("moment");
25        module.exports = e(i, a);
26    } else t.daterangepicker = e(t.moment, t.jQuery);
27})(this, function(t, e) {
28    var a = function(a, i, s) {
29        if (
30            ((this.parentEl = "body"),
31                (this.element = e(a)),
32                (this.startDate = t().startOf("day")),
33                (this.endDate = t().endOf("day")),
34                (this.minDate = !1),
35                (this.maxDate = !1),
36                (this.maxSpan = !1),
37                (this.autoApply = !1),
38                (this.singleDatePicker = !1),
39                (this.showDropdowns = !1),
40                (this.minYear = t().subtract(100, "year").format("YYYY")),
41                (this.maxYear = t().add(100, "year").format("YYYY")),
42                (this.showWeekNumbers = !1),
43                (this.showISOWeekNumbers = !1),
44                (this.showCustomRangeLabel = !0),
45                (this.timePicker = !1),
46                (this.timePicker24Hour = !1),
47                (this.timePickerIncrement = 1),
48                (this.timePickerSeconds = !1),
49                (this.linkedCalendars = !0),
50                (this.autoUpdateInput = !0),
51                (this.alwaysShowCalendars = !1),
52                (this.ranges = {}),
53                (this.opens = "right"),
54                this.element.hasClass("pull-right") && (this.opens = "left"),
55                (this.drops = "down"),
56                this.element.hasClass("dropup") && (this.drops = "up"),
57                (this.buttonClasses = "btn btn-sm"),
58                (this.applyButtonClasses = "btn-primary"),
59                (this.cancelButtonClasses = "btn-default"),
60                (this.locale = {
61                    direction: "ltr",
62                    format: t.localeData().longDateFormat("L"),
63                    separator: " - ",
64                    applyLabel: "Apply",
65                    cancelLabel: "Cancel",
66                    weekLabel: "W",
67                    customRangeLabel: "Custom Range",
68                    daysOfWeek: t.weekdaysMin(),
69                    monthNames: t.monthsShort(),
70                    firstDay: t.localeData().firstDayOfWeek()
71                }),
72                (this.callback = function() {}),
73                (this.isShowing = !1),
74                (this.leftCalendar = {}),
75                (this.rightCalendar = {}),
76                ("object" == typeof i && null !== i) || (i = {}),
77                "string" == typeof(i = e.extend(this.element.data(), i)).template ||
78                i.template instanceof e ||
79                (i.template =
80                    '<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>'),
81                (this.parentEl =
82                    i.parentEl && e(i.parentEl).length ? e(i.parentEl) : e(this.parentEl)),
83                (this.container = e(i.template).appendTo(this.parentEl)),
84                "object" == typeof i.locale &&
85                ("string" == typeof i.locale.direction &&
86                    (this.locale.direction = i.locale.direction),
87                    "string" == typeof i.locale.format &&
88                    (this.locale.format = i.locale.format),
89                    "string" == typeof i.locale.separator &&
90                    (this.locale.separator = i.locale.separator),
91                    "object" == typeof i.locale.daysOfWeek &&
92                    (this.locale.daysOfWeek = i.locale.daysOfWeek.slice()),
93                    "object" == typeof i.locale.monthNames &&
94                    (this.locale.monthNames = i.locale.monthNames.slice()),
95                    "number" == typeof i.locale.firstDay &&
96                    (this.locale.firstDay = i.locale.firstDay),
97                    "string" == typeof i.locale.applyLabel &&
98                    (this.locale.applyLabel = i.locale.applyLabel),
99                    "string" == typeof i.locale.cancelLabel &&
100                    (this.locale.cancelLabel = i.locale.cancelLabel),
101                    "string" == typeof i.locale.weekLabel &&
102                    (this.locale.weekLabel = i.locale.weekLabel),
103                    "string" == typeof i.locale.customRangeLabel))
104        ) {
105            (p = document.createElement("textarea")).innerHTML =
106                i.locale.customRangeLabel;
107            var n = p.value;
108            this.locale.customRangeLabel = n;
109        }
110        if (
111            (this.container.addClass(this.locale.direction),
112                "string" == typeof i.startDate &&
113                (this.startDate = t(i.startDate, this.locale.format)),
114                "string" == typeof i.endDate &&
115                (this.endDate = t(i.endDate, this.locale.format)),
116                "string" == typeof i.minDate &&
117                (this.minDate = t(i.minDate, this.locale.format)),
118                "string" == typeof i.maxDate &&
119                (this.maxDate = t(i.maxDate, this.locale.format)),
120                "object" == typeof i.startDate && (this.startDate = t(i.startDate)),
121                "object" == typeof i.endDate && (this.endDate = t(i.endDate)),
122                "object" == typeof i.minDate && (this.minDate = t(i.minDate)),
123                "object" == typeof i.maxDate && (this.maxDate = t(i.maxDate)),
124                this.minDate &&
125                this.startDate.isBefore(this.minDate) &&
126                (this.startDate = this.minDate.clone()),
127                this.maxDate &&
128                this.endDate.isAfter(this.maxDate) &&
129                (this.endDate = this.maxDate.clone()),
130                "string" == typeof i.applyButtonClasses &&
131                (this.applyButtonClasses = i.applyButtonClasses),
132                "string" == typeof i.applyClass &&
133                (this.applyButtonClasses = i.applyClass),
134                "string" == typeof i.cancelButtonClasses &&
135                (this.cancelButtonClasses = i.cancelButtonClasses),
136                "string" == typeof i.cancelClass &&
137                (this.cancelButtonClasses = i.cancelClass),
138                "object" == typeof i.maxSpan && (this.maxSpan = i.maxSpan),
139                "object" == typeof i.dateLimit && (this.maxSpan = i.dateLimit),
140                "string" == typeof i.opens && (this.opens = i.opens),
141                "string" == typeof i.drops && (this.drops = i.drops),
142                "boolean" == typeof i.showWeekNumbers &&
143                (this.showWeekNumbers = i.showWeekNumbers),
144                "boolean" == typeof i.showISOWeekNumbers &&
145                (this.showISOWeekNumbers = i.showISOWeekNumbers),
146                "string" == typeof i.buttonClasses &&
147                (this.buttonClasses = i.buttonClasses),
148                "object" == typeof i.buttonClasses &&
149                (this.buttonClasses = i.buttonClasses.join(" ")),
150                "boolean" == typeof i.showDropdowns &&
151                (this.showDropdowns = i.showDropdowns),
152                "number" == typeof i.minYear && (this.minYear = i.minYear),
153                "number" == typeof i.maxYear && (this.maxYear = i.maxYear),
154                "boolean" == typeof i.showCustomRangeLabel &&
155                (this.showCustomRangeLabel = i.showCustomRangeLabel),
156                "boolean" == typeof i.singleDatePicker &&
157                ((this.singleDatePicker = i.singleDatePicker),
158                    this.singleDatePicker && (this.endDate = this.startDate.clone())),
159                "boolean" == typeof i.timePicker && (this.timePicker = i.timePicker),
160                "boolean" == typeof i.timePickerSeconds &&
161                (this.timePickerSeconds = i.timePickerSeconds),
162                "number" == typeof i.timePickerIncrement &&
163                (this.timePickerIncrement = i.timePickerIncrement),
164                "boolean" == typeof i.timePicker24Hour &&
165                (this.timePicker24Hour = i.timePicker24Hour),
166                "boolean" == typeof i.autoApply && (this.autoApply = i.autoApply),
167                "boolean" == typeof i.autoUpdateInput &&
168                (this.autoUpdateInput = i.autoUpdateInput),
169                "boolean" == typeof i.linkedCalendars &&
170                (this.linkedCalendars = i.linkedCalendars),
171                "function" == typeof i.isInvalidDate &&
172                (this.isInvalidDate = i.isInvalidDate),
173                "function" == typeof i.isCustomDate &&
174                (this.isCustomDate = i.isCustomDate),
175                "boolean" == typeof i.alwaysShowCalendars &&
176                (this.alwaysShowCalendars = i.alwaysShowCalendars),
177                0 != this.locale.firstDay)
178        )
179            for (var r = this.locale.firstDay; r > 0;)
180                this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()), r--;
181        var o, h, l;
182        if (
183            void 0 === i.startDate &&
184            void 0 === i.endDate &&
185            e(this.element).is(":text")
186        ) {
187            var c = e(this.element).val(),
188                d = c.split(this.locale.separator);
189            (o = h = null),
190            2 == d.length ?
191                ((o = t(d[0], this.locale.format)),
192                    (h = t(d[1], this.locale.format))) :
193                this.singleDatePicker &&
194                "" !== c &&
195                ((o = t(c, this.locale.format)), (h = t(c, this.locale.format))),
196                null !== o && null !== h && (this.setStartDate(o), this.setEndDate(h));
197        }
198        if ("object" == typeof i.ranges) {
199            for (l in i.ranges) {
200                (o =
201                    "string" == typeof i.ranges[l][0] ?
202                    t(i.ranges[l][0], this.locale.format) :
203                    t(i.ranges[l][0])),
204                (h =
205                    "string" == typeof i.ranges[l][1] ?
206                    t(i.ranges[l][1], this.locale.format) :
207                    t(i.ranges[l][1])),
208                this.minDate &&
209                    o.isBefore(this.minDate) &&
210                    (o = this.minDate.clone());
211                var m = this.maxDate;
212                if (
213                    (this.maxSpan &&
214                        m &&
215                        o.clone().add(this.maxSpan).isAfter(m) &&
216                        (m = o.clone().add(this.maxSpan)),
217                        m && h.isAfter(m) && (h = m.clone()), !(
218                            (this.minDate &&
219                                h.isBefore(this.minDate, this.timepicker ? "minute" : "day")) ||
220                            (m && o.isAfter(m, this.timepicker ? "minute" : "day"))
221                        ))
222                ) {
223                    var p;
224                    (p = document.createElement("textarea")).innerHTML = l;
225                    n = p.value;
226                    this.ranges[n] = [o, h];
227                }
228            }
229            var f = "<ul>";
230            for (l in this.ranges)
231                f += '<li data-range-key="' + l + '">' + l + "</li>";
232            this.showCustomRangeLabel &&
233                (f +=
234                    '<li data-range-key="' +
235                    this.locale.customRangeLabel +
236                    '">' +
237                    this.locale.customRangeLabel +
238                    "</li>"),
239                (f += "</ul>"),
240                this.container.find(".ranges").prepend(f);
241        }
242        "function" == typeof s && (this.callback = s),
243            this.timePicker ||
244            ((this.startDate = this.startDate.startOf("day")),
245                (this.endDate = this.endDate.endOf("day")),
246                this.container.find(".calendar-time").hide()),
247            this.timePicker && this.autoApply && (this.autoApply = !1),
248            this.autoApply && this.container.addClass("auto-apply"),
249            "object" == typeof i.ranges && this.container.addClass("show-ranges"),
250            this.singleDatePicker &&
251            (this.container.addClass("single"),
252                this.container.find(".drp-calendar.left").addClass("single"),
253                this.container.find(".drp-calendar.left").show(),
254                this.container.find(".drp-calendar.right").hide(), !this.timePicker &&
255                this.autoApply &&
256                this.container.addClass("auto-apply")),
257            ((void 0 === i.ranges && !this.singleDatePicker) ||
258                this.alwaysShowCalendars) &&
259            this.container.addClass("show-calendar"),
260            this.container.addClass("opens" + this.opens),
261            this.container.find(".applyBtn, .cancelBtn").addClass(this.buttonClasse
261s),
262            this.applyButtonClasses.length &&
263            this.container.find(".applyBtn").addClass(this.applyButtonClasses),
264            this.cancelButtonClasses.length &&
265            this.container.find(".cancelBtn").addClass(this.cancelButtonClasses),
266            this.container.find(".applyBtn").html(this.locale.applyLabel),
267            this.container.find(".cancelBtn").html(this.locale.cancelLabel),
268            this.container
269            .find(".drp-calendar")
270            .on("click.daterangepicker", ".prev", e.proxy(this.clickPrev, this))
271            .on("click.daterangepicker", ".next", e.proxy(this.clickNext, this))
272            .on(
273                "mousedown.daterangepicker",
274                "td.available",
275                e.proxy(this.clickDate, this)
276            )
277            .on(
278                "mouseenter.daterangepicker",
279                "td.available",
280                e.proxy(this.hoverDate, this)
281            )
282            .on(
283                "change.daterangepicker",
284                "select.yearselect",
285                e.proxy(this.monthOrYearChanged, this)
286            )
287            .on(
288                "change.daterangepicker",
289                "select.monthselect",
290                e.proxy(this.monthOrYearChanged, this)
291            )
292            .on(
293                "change.daterangepicker",
294                "select.hourselect,select.minuteselect,select.secondselect,select.ampmselect",
295                e.proxy(this.timeChanged, this)
296            ),
297            this.container
298            .find(".ranges")
299            .on("click.daterangepicker", "li", e.proxy(this.clickRange, this)),
300            this.container
301            .find(".drp-buttons")
302            .on(
303                "click.daterangepicker",
304                "button.applyBtn",
305                e.proxy(this.clickApply, this)
306            )
307            .on(
308                "click.daterangepicker",
309                "button.cancelBtn",
310                e.proxy(this.clickCancel, this)
311            ),
312            this.element.is("input") || this.element.is("button") ?
313            this.element.on({
314                "click.daterangepicker": e.proxy(this.show, this),
315                "focus.daterangepicker": e.proxy(this.show, this),
316                "keyup.daterangepicker": e.proxy(this.elementChanged, this),
317                "keydown.daterangepicker": e.proxy(this.keydown, this)
318            }) :
319            (this.element.on("click.daterangepicker", e.proxy(this.toggle, this)),
320                this.element.on(
321                    "keydown.daterangepicker",
322                    e.proxy(this.toggle, this)
323                )),
324            this.updateElement();
325    };
326    return (
327        (a.prototype = {
328            constructor: a,
329            setStartDate: function(e) {
330                "string" == typeof e && (this.startDate = t(e, this.locale.format)),
331                    "object" == typeof e && (this.startDate = t(e)),
332                    this.timePicker || (this.startDate = this.startDate.startOf("day")),
333                    this.timePicker &&
334                    this.timePickerIncrement &&
335                    this.startDate.minute(
336                        Math.round(this.startDate.minute() / this.timePickerIncrement) *
337                        this.timePickerIncrement
338                    ),
339                    this.minDate &&
340                    this.startDate.isBefore(this.minDate) &&
341                    ((this.startDate = this.minDate.clone()),
342                        this.timePicker &&
343                        this.timePickerIncrement &&
344                        this.startDate.minute(
345                            Math.round(this.startDate.minute() / this.timePickerIncrement) *
346                            this.timePickerIncrement
347                        )),
348                    this.maxDate &&
349                    this.startDate.isAfter(this.maxDate) &&
350                    ((this.startDate = this.maxDate.clone()),
351                        this.timePicker &&
352                        this.timePickerIncrement &&
353                        this.startDate.minute(
354                            Math.floor(this.startDate.minute() / this.timePickerIncrement) *
355                            this.timePickerIncrement
356                        )),
357                    this.isShowing || this.updateElement(),
358                    this.updateMonthsInView();
359            },
360            setEndDate: function(e) {
361                "string" == typeof e && (this.endDate = t(e, this.locale.format)),
362                    "object" == typeof e && (this.endDate = t(e)),
363                    this.timePicker || (this.endDate = this.endDate.endOf("day")),
364                    this.timePicker &&
365                    this.timePickerIncrement &&
366                    this.endDate.minute(
367                        Math.round(this.endDate.minute() / this.timePickerIncrement) *
368                        this.timePickerIncrement
369                    ),
370                    this.endDate.isBefore(this.startDate) &&
371                    (this.endDate = this.startDate.clone()),
372                    this.maxDate &&
373                    this.endDate.isAfter(this.maxDate) &&
374                    (this.endDate = this.maxDate.clone()),
375                    this.maxSpan &&
376                    this.startDate.clone().add(this.maxSpan).isBefore(this.endDate) &&
377                    (this.endDate = this.startDate.clone().add(this.maxSpan)),
378                    (this.previousRightTime = this.endDate.clone()),
379                    this.container
380                    .find(".drp-selected")
381                    .html(
382                        this.startDate.format(this.locale.format) +
383                        this.locale.separator +
384                        this.endDate.format(this.locale.format)
385                    ),
386                    this.isShowing || this.updateElement(),
387                    this.updateMonthsInView();
388            },
389            isInvalidDate: function() {
390                return !1;
391            },
392            isCustomDate: function() {
393                return !1;
394            },
395            updateView: function() {
396                this.timePicker &&
397                    (this.renderTimePicker("left"),
398                        this.renderTimePicker("right"),
399                        this.endDate ?
400                        this.container
401                        .find(".right .calendar-time select")
402                        .prop("disabled", !1)
403                        .removeClass("disabled") :
404                        this.container
405                        .find(".right .calendar-time select")
406                        .prop("disabled", !0)
407                        .addClass("disabled")),
408                    this.endDate &&
409                    this.container
410                    .find(".drp-selected")
411                    .html(
412                        this.startDate.format(this.locale.format) +
413                        this.locale.separator +
414                        this.endDate.format(this.locale.format)
415                    ),
416                    this.updateMonthsInView(),
417                    this.updateCalendars(),
418                    this.updateFormInputs();
419            },
420            updateMonthsInView: function() {
421                if (this.endDate) {
422                    if (!this.singleDatePicker &&
423                        this.leftCalendar.month &&
424                        this.rightCalendar.month &&
425                        (this.startDate.format("YYYY-MM") ==
426                            this.leftCalendar.month.format("YYYY-MM") ||
427                            this.startDate.format("YYYY-MM") ==
428                            this.rightCalendar.month.format("YYYY-MM")) &&
429                        (this.endDate.format("YYYY-MM") ==
430                            this.leftCalendar.month.format("YYYY-MM") ||
431                            this.endDate.format("YYYY-MM") ==
432                            this.rightCalendar.month.format("YYYY-MM"))
433                    )
434                        return;
435                    (this.leftCalendar.month = this.startDate.clone().date(2)),
436                    this.linkedCalendars ||
437                        (this.endDate.month() == this.startDate.month() &&
438                            this.endDate.year() == this.startDate.year()) ?
439                        (this.rightCalendar.month = this.startDate
440                            .clone()
441                            .date(2)
442                            .add(1, "month")) :
443                        (this.rightCalendar.month = this.endDate.clone().date(2));
444                } else
445                    this.leftCalendar.month.format("YYYY-MM") !=
446                    this.startDate.format("YYYY-MM") &&
447                    this.rightCalendar.month.format("YYYY-MM") !=
448                    this.startDate.format("YYYY-MM") &&
449                    ((this.leftCalendar.month = this.startDate.clone().date(2)),
450                        (this.rightCalendar.month = this.startDate
451                            .clone()
452                            .date(2)
453                            .add(1, "month")));
454                this.maxDate &&
455                    this.linkedCalendars &&
456                    !this.singleDatePicker &&
457                    this.rightCalendar.month > this.maxDate &&
458                    ((this.rightCalendar.month = this.maxDate.clone().date(2)),
459                        (this.leftCalendar.month = this.maxDate
460                            .clone()
461                            .date(2)
462                            .subtract(1, "month")));
463            },
464            updateCalendars: function() {
465                if (this.timePicker) {
466                    var t, e, a, i;
467                    if (this.endDate) {
468                        if (
469                            ((t = parseInt(
470                                    this.container.find(".left .hourselect").val(),
471                                    10
472                                )),
473                                (e = parseInt(
474                                    this.container.find(".left .minuteselect").val(),
475                                    10
476                                )),
477                                isNaN(e) &&
478                                (e = parseInt(
479                                    this.container.find(".left .minuteselect option:last").val(),
480                                    10
481                                )),
482                                (a = this.timePickerSeconds ?
483                                    parseInt(this.container.find(".left .secondselect").val(), 10) :
484                                    0), !this.timePicker24Hour)
485                        )
486                            "PM" === (i = this.container.find(".left .ampmselect").val()) &&
487                            t < 12 &&
488                            (t += 12),
489                            "AM" === i && 12 === t && (t = 0);
490                    } else if (
491                        ((t = parseInt(
492                                this.container.find(".right .hourselect").val(),
493                                10
494                            )),
495                            (e = parseInt(
496                                this.container.find(".right .minuteselect").val(),
497                                10
498                            )),
499                            isNaN(e) &&
500                            (e = parseInt(
501                                this.container.find(".right .minuteselect option:last").val(),
502                                10
503                            )),
504                            (a = this.timePickerSeconds ?
505                                parseInt(this.container.find(".right .secondselect").val(), 10) :
506                                0), !this.timePicker24Hour)
507                    )
508                        "PM" === (i = this.container.find(".right .ampmselect").val()) &&
509                        t < 12 &&
510                        (t += 12),
511                        "AM" === i && 12 === t && (t = 0);
512                    this.leftCalendar.month.hour(t).minute(e).second(a),
513                        this.rightCalendar.month.hour(t).minute(e).second(a);
514                }
515                this.renderCalendar("left"),
516                    this.renderCalendar("right"),
517                    this.container.find(".ranges li").removeClass("active"),
518                    null != this.endDate && this.calculateChosenLabel();
519            },
520            renderCalendar: function(a) {
521                var i,
522                    s = (i =
523                        "left" == a ? this.leftCalendar : this.rightCalendar).month.month(),
524                    n = i.month.year(),
525                    r = i.month.hour(),
526                    o = i.month.minute(),
527                    h = i.month.second(),
528                    l = t([n, s]).daysInMonth(),
529                    c = t([n, s, 1]),
530                    d = t([n, s, l]),
531                    m = t(c).subtract(1, "month").month(),
532                    p = t(c).subtract(1, "month").year(),
533                    f = t([p, m]).daysInMonth(),
534                    u = c.day();
535                ((i = []).firstDay = c), (i.lastDay = d);
536                for (var D = 0; D < 6; D++) i[D] = [];
537                var g = f - u + this.locale.firstDay + 1;
538                g > f && (g -= 7), u == this.locale.firstDay && (g = f - 6);
539                for (
540                    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")
541                )
542                    D > 0 && k % 7 == 0 && ((k = 0), b++),
543                    (i[b][k] = y.clone().hour(r).minute(o).second(h)),
544                    y.hour(12),
545                    this.minDate &&
546                    i[b][k].format("YYYY-MM-DD") ==
547                    this.minDate.format("YYYY-MM-DD") &&
548                    i[b][k].isBefore(this.minDate) &&
549                    "left" == a &&
550                    (i[b][k] = this.minDate.clone()),
551                    this.maxDate &&
552                    i[b][k].format("YYYY-MM-DD") ==
553                    this.maxDate.format("YYYY-MM-DD") &&
554                    i[b][k].isAfter(this.maxDate) &&
555                    "right" == a &&
556                    (i[b][k] = this.maxDate.clone());
557                "left" == a
558                    ?
559                    (this.leftCalendar.calendar = i) :
560                    (this.rightCalendar.calendar = i);
561                var v = "left" == a ? this.minDate : this.startDate,
562                    C = this.maxDate,
563                    Y =
564                    ("left" == a ? this.startDate : this.endDate,
565                        this.locale.direction,
566                        '<table class="table-condensed">');
567                (Y += "<thead>"),
568                (Y += "<tr>"),
569                (this.showWeekNumbers || this.showISOWeekNumbers) &&
570                (Y += "<th></th>"),
571                (v && !v.isBefore(i.firstDay)) ||
572                (this.linkedCalendars && "left" != a) ?
573                (Y += "<th></th>") :
574                (Y += '<th class="prev available"><span></span></th>');
575                var w =
576                    this.locale.monthNames[i[1][1].month()] + i[1][1].format(" YYYY");
577                if (this.showDropdowns) {
578                    for (
579                        var P = i[1][1].month(),
580                            x = i[1][1].year(),
581                            M = (C && C.year()) || this.maxYear,
582                            I = (v && v.year()) || this.minYear,
583                            S = x == I,
584                            B = x == M,
585                            A = '<select class="monthselect">',
586                            L = 0; L < 12; L++
587                    )
588                        (!S || (v && L >= v.month())) && (!B || (C && L <= C.month())) ?
589                        (A +=
590                            "<option value='" +
591                            L +
592                            "'" +
593                            (L === P ? " selected='selected'" : "") +
594     
594                       ">" +
595                            this.locale.monthNames[L] +
596                            "</option>") :
597                        (A +=
598                            "<option value='" +
599                            L +
600                            "'" +
601                            (L === P ? " selected='selected'" : "") +
602                            " disabled='disabled'>" +
603                            this.locale.monthNames[L] +
604                            "</option>");
605                    A += "</select>";
606                    for (var N = '<select class="yearselect">', E = I; E <= M; E++)
607                        N +=
608                        '<option value="' +
609                        E +
610                        '"' +
611                        (E === x ? ' selected="selected"' : "") +
612                        ">" +
613                        E +
614                        "</option>";
615                    w = A + (N += "</select>");
616                }
617                if (
618                    ((Y += '<th colspan="5" class="month">' + w + "</th>"),
619                        (C && !C.isAfter(i.lastDay)) ||
620                        (this.linkedCalendars && "right" != a && !this.singleDatePicker) ?
621                        (Y += "<th></th>") :
622                        (Y += '<th class="next available"><span></span></th>'),
623                        (Y += "</tr>"),
624                        (Y += "<tr>"),
625                        (this.showWeekNumbers || this.showISOWeekNumbers) &&
626                        (Y += '<th class="week">' + this.locale.weekLabel + "</th>"),
627                        e.each(this.locale.daysOfWeek, function(t, e) {
628                            Y += "<th>" + e + "</th>";
629                        }),
630                        (Y += "</tr>"),
631                        (Y += "</thead>"),
632                        (Y += "<tbody>"),
633                        null == this.endDate && this.maxSpan)
634                ) {
635                    var O = this.startDate.clone().add(this.maxSpan).endOf("day");
636                    (C && !O.isBefore(C)) || (C = O);
637                }
638                for (b = 0; b < 6; b++) {
639                    (Y += "<tr>"),
640                    this.showWeekNumbers ?
641                        (Y += '<td class="week">' + i[b][0].week() + "</td>") :
642                        this.showISOWeekNumbers &&
643                        (Y += '<td class="week">' + i[b][0].isoWeek() + "</td>");
644                    for (k = 0; k < 7; k++) {
645                        var W = [];
646                        i[b][k].isSame(new Date(), "day") && W.push("today"),
647                            i[b][k].isoWeekday() > 5 && W.push("weekend"),
648                            i[b][k].month() != i[1][1].month() && W.push("off", "ends"),
649                            this.minDate &&
650                            i[b][k].isBefore(this.minDate, "day") &&
651                            W.push("off", "disabled"),
652                            C && i[b][k].isAfter(C, "day") && W.push("off", "disabled"),
653                            this.isInvalidDate(i[b][k]) && W.push("off", "disabled"),
654                            i[b][k].format("YYYY-MM-DD") ==
655                            this.startDate.format("YYYY-MM-DD") &&
656                            W.push("active", "start-date"),
657                            null != this.endDate &&
658                            i[b][k].format("YYYY-MM-DD") ==
659                            this.endDate.format("YYYY-MM-DD") &&
660                            W.push("active", "end-date"),
661                            null != this.endDate &&
662                            i[b][k] > this.startDate &&
663                            i[b][k] < this.endDate &&
664                            W.push("in-range");
665                        var H = this.isCustomDate(i[b][k]);
666                        !1 !== H &&
667                            ("string" == typeof H ?
668                                W.push(H) :
669                                Array.prototype.push.apply(W, H));
670                        var j = "",
671                            R = !1;
672                        for (D = 0; D < W.length; D++)
673                            (j += W[D] + " "), "disabled" == W[D] && (R = !0);
674                        R || (j += "available"),
675                            (Y +=
676                                '<td class="' +
677                                j.replace(/^\s+|\s+$/g, "") +
678                                '" data-title="r' +
679                                b +
680                                "c" +
681                                k +
682                                '">' +
683                                i[b][k].date() +
684                                "</td>");
685                    }
686                    Y += "</tr>";
687                }
688                (Y += "</tbody>"),
689                (Y += "</table>"),
690                this.container
691                    .find(".drp-calendar." + a + " .calendar-table")
692                    .html(Y);
693            },
694            renderTimePicker: function(t) {
695                if ("right" != t || this.endDate) {
696                    var e,
697                        a,
698                        i,
699                        s = this.maxDate;
700                    if (
701                        (!this.maxSpan ||
702                            (this.maxDate &&
703                                !this.startDate
704                                .clone()
705                                .add(this.maxSpan)
706                                .isBefore(this.maxDate)) ||
707                            (s = this.startDate.clone().add(this.maxSpan)),
708                            "left" == t)
709                    )
710                        (a = this.startDate.clone()), (i = this.minDate);
711                    else if ("right" == t) {
712                        (a = this.endDate.clone()), (i = this.startDate);
713                        var n = this.container.find(".drp-calendar.right .calendar-time");
714                        if (
715                            "" != n.html() &&
716                            (a.hour(
717                                    isNaN(a.hour()) ?
718                                    n.find(".hourselect option:selected").val() :
719                                    a.hour()
720                                ),
721                                a.minute(
722                                    isNaN(a.minute()) ?
723                                    n.find(".minuteselect option:selected").val() :
724                                    a.minute()
725                                ),
726                                a.second(
727                                    isNaN(a.second()) ?
728                                    n.find(".secondselect option:selected").val() :
729                                    a.second()
730                                ), !this.timePicker24Hour)
731                        ) {
732                            var r = n.find(".ampmselect option:selected").val();
733                            "PM" === r && a.hour() < 12 && a.hour(a.hour() + 12),
734                                "AM" === r && 12 === a.hour() && a.hour(0);
735                        }
736                        a.isBefore(this.startDate) && (a = this.startDate.clone()),
737                            s && a.isAfter(s) && (a = s.clone());
738                    }
739                    e = '<select class="hourselect">';
740                    for (
741                        var o = this.timePicker24Hour ? 0 : 1,
742                            h = this.timePicker24Hour ? 23 : 12,
743                            l = o; l <= h; l++
744                    ) {
745                        var c = l;
746                        this.timePicker24Hour ||
747                            (c = a.hour() >= 12 ? (12 == l ? 12 : l + 12) : 12 == l ? 0 : l);
748                        var d = a.clone().hour(c),
749                            m = !1;
750                        i && d.minute(59).isBefore(i) && (m = !0),
751                            s && d.minute(0).isAfter(s) && (m = !0),
752                            c != a.hour() || m ?
753                            (e += m ?
754                                '<option value="' +
755                                l +
756                                '" disabled="disabled" class="disabled">' +
757                                l +
758                                "</option>" :
759                                '<option value="' + l + '">' + l + "</option>") :
760                            (e +=
761                                '<option value="' +
762                                l +
763                                '" selected="selected">' +
764                                l +
765                                "</option>");
766                    }
767                    (e += "</select> "), (e += ': <select class="minuteselect">');
768                    for (l = 0; l < 60; l += this.timePickerIncrement) {
769                        var p = l < 10 ? "0" + l : l;
770                        (d = a.clone().minute(l)), (m = !1);
771                        i && d.second(59).isBefore(i) && (m = !0),
772                            s && d.second(0).isAfter(s) && (m = !0),
773                            a.minute() != l || m ?
774                            (e += m ?
775                                '<option value="' +
776                                l +
777                                '" disabled="disabled" class="disabled">' +
778                                p +
779                                "</option>" :
780                                '<option value="' + l + '">' + p + "</option>") :
781                            (e +=
782                                '<option value="' +
783                                l +
784                                '" selected="selected">' +
785                                p +
786                                "</option>");
787                    }
788                    if (((e += "</select> "), this.timePickerSeconds)) {
789                        e += ': <select class="secondselect">';
790                        for (l = 0; l < 60; l++) {
791                            (p = l < 10 ? "0" + l : l), (d = a.clone().second(l)), (m = !1);
792                            i && d.isBefore(i) && (m = !0),
793                                s && d.isAfter(s) && (m = !0),
794                                a.second() != l || m ?
795                                (e += m ?
796                                    '<option value="' +
797                                    l +
798                                    '" disabled="disabled" class="disabled">' +
799                                    p +
800                                    "</option>" :
801                                    '<option value="' + l + '">' + p + "</option>") :
802                                (e +=
803                                    '<option value="' +
804                                    l +
805                                    '" selected="selected">' +
806                                    p +
807                                    "</option>");
808                        }
809                        e += "</select> ";
810                    }
811                    if (!this.timePicker24Hour) {
812                        e += '<select class="ampmselect">';
813                        var f = "",
814                            u = "";
815                        i &&
816                            a.clone().hour(12).minute(0).second(0).isBefore(i) &&
817                            (f = ' disabled="disabled" class="disabled"'),
818                            s &&
819                            a.clone().hour(0).minute(0).second(0).isAfter(s) &&
820                            (u = ' disabled="disabled" class="disabled"'),
821                            a.hour() >= 12 ?
822                            (e +=
823                                '<option value="AM"' +
824                                f +
825                                '>AM</option><option value="PM" selected="selected"' +
826                                u +
827                                ">PM</option>") :
828                            (e +=
829                                '<option value="AM" selected="selected"' +
830                                f +
831                                '>AM</option><option value="PM"' +
832                                u +
833                                ">PM</option>"),
834                            (e += "</select>");
835                    }
836                    this.container.find(".drp-calendar." + t + " .calendar-time").html(e);
837                }
838            },
839            updateFormInputs: function() {
840                this.singleDatePicker ||
841                    (this.endDate &&
842                        (this.startDate.isBefore(this.endDate) ||
843                            this.startDate.isSame(this.endDate))) ?
844                    this.container.find("button.applyBtn").prop("disabled", !1) :
845                    this.container.find("button.applyBtn").prop("disabled", !0);
846            },
847            move: function() {
848                var t,
849                    a = { top: 0, left: 0 },
850                    i = this.drops,
851                    s = e(window).width();
852                switch (
853                    (this.parentEl.is("body") ||
854                        ((a = {
855                                top: this.parentEl.offset().top - this.parentEl.scrollTop(),
856                                left: this.parentEl.offset().left - this.parentEl.scrollLeft()
857                            }),
858                            (s = this.parentEl[0].clientWidth + this.parentEl.offset().left)),
859                        i)
860                ) {
861                    case "auto":
862                        (t =
863                            this.element.offset().top + this.element.outerHeight() - a.top) +
864                        this.container.outerHeight() >=
865                            this.parentEl[0].scrollHeight &&
866                            ((t =
867                                    this.element.offset().top -
868                                    this.container.outerHeight() -
869                                    a.top),
870                                (i = "up"));
871                        break;
872                    case "up":
873                        t =
874                            this.element.offset().top - this.container.outerHeight() - a.top;
875                        break;
876                    default:
877                        t = this.element.offset().top + this.element.outerHeight() - a.top;
878                }
879                this.container.css({ top: 0, left: 0, right: "auto" });
880                var n = this.container.outerWidth();
881                if (
882                    (this.container.toggleClass("drop-up", "up" == i),
883                        "left" == this.opens)
884                ) {
885                    var r = s - this.element.offset().left - this.element.outerWidth();
886                    n + r > e(window).width() ?
887                        this.container.css({ top: t, right: "auto", left: 9 }) :
888                        this.container.css({ top: t, right: r, left: "auto" });
889                } else if ("center" == this.opens) {
890                    (o =
891                        this.element.offset().left -
892                        a.left +
893                        this.element.outerWidth() / 2 -
894                        n / 2) < 0
895                        ?
896                        this.container.css({ top: t, right: "auto", left: 9 }) :
897                        o + n > e(window).width() ?
898                        this.container.css({ top: t, left: "auto", r
898ight: 0 }) :
899                        this.container.css({ top: t, left: o, right: "auto" });
900                } else {
901                    var o;
902                    (o = this.element.offset().left - a.left) + n > e(window).width() ?
903                        this.container.css({ top: t, left: "auto", right: 0 }) :
904                        this.container.css({ top: t, left: o, right: "auto" });
905                }
906            },
907            show: function(t) {
908                this.isShowing ||
909                    ((this._outsideClickProxy = e.proxy(function(t) {
910                            this.outsideClick(t);
911                        }, this)),
912                        e(document)
913                        .on("mousedown.daterangepicker", this._outsideClickProxy)
914                        .on("touchend.daterangepicker", this._outsideClickProxy)
915                        .on(
916                            "click.daterangepicker",
917                            "[data-toggle=dropdown]",
918                            this._outsideClickProxy
919                        )
920                        .on("focusin.daterangepicker", this._outsideClickProxy),
921                        e(window).on(
922                            "resize.daterangepicker",
923                            e.proxy(function(t) {
924                                this.move(t);
925                            }, this)
926                        ),
927                        (this.oldStartDate = this.startDate.clone()),
928                        (this.oldEndDate = this.endDate.clone()),
929                        (this.previousRightTime = this.endDate.clone()),
930                        this.updateView(),
931                        this.container.show(),
932                        this.move(),
933                        this.element.trigger("show.daterangepicker", this),
934                        (this.isShowing = !0));
935            },
936            hide: function(t) {
937                this.isShowing &&
938                    (this.endDate ||
939                        ((this.startDate = this.oldStartDate.clone()),
940                            (this.endDate = this.oldEndDate.clone())),
941                        (this.startDate.isSame(this.oldStartDate) &&
942                            this.endDate.isSame(this.oldEndDate)) ||
943                        this.callback(
944                            this.startDate.clone(),
945                            this.endDate.clone(),
946                            this.chosenLabel
947                        ),
948                        this.updateElement(),
949                        e(document).off(".daterangepicker"),
950                        e(window).off(".daterangepicker"),
951                        this.container.hide(),
952                        this.element.trigger("hide.daterangepicker", this),
953                        (this.isShowing = !1));
954            },
955            toggle: function(t) {
956                this.isShowing ? this.hide() : this.show();
957            },
958            outsideClick: function(t) {
959                var a = e(t.target);
960                "focusin" == t.type ||
961                    a.closest(this.element).length ||
962                    a.closest(this.container).length ||
963                    a.closest(".calendar-table").length ||
964                    (this.hide(),
965                        this.element.trigger("outsideClick.daterangepicker", this));
966            },
967            showCalendars: function() {
968                this.container.addClass("show-calendar"),
969                    this.move(),
970                    this.element.trigger("showCalendar.daterangepicker", this);
971            },
972            hideCalendars: function() {
973                this.container.removeClass("show-calendar"),
974                    this.element.trigger("hideCalendar.daterangepicker", this);
975            },
976            clickRange: function(t) {
977                var e = t.target.getAttribute("data-range-key");
978                if (((this.chosenLabel = e), e == this.locale.customRangeLabel))
979                    this.showCalendars();
980                else {
981                    var a = this.ranges[e];
982                    (this.startDate = a[0]),
983                    (this.endDate = a[1]),
984                    this.timePicker ||
985                        (this.startDate.startOf("day"), this.endDate.endOf("day")),
986                        this.alwaysShowCalendars || this.hideCalendars(),
987                        this.clickApply();
988                }
989            },
990            clickPrev: function(t) {
991                e(t.target).parents(".drp-calendar").hasClass("left") ?
992                    (this.leftCalendar.month.subtract(1, "month"),
993                        this.linkedCalendars &&
994                        this.rightCalendar.month.subtract(1, "month")) :
995                    this.rightCalendar.month.subtract(1, "month"),
996                    this.updateCalendars();
997            },
998            clickNext: function(t) {
999                e(t.target).parents(".drp-calendar").hasClass("left") ?
1000                    this.leftCalendar.month.add(1, "month") :
1001                    (this.rightCalendar.month.add(1, "month"),
1002                        this.linkedCalendars && this.leftCalendar.month.add(1, "month")),
1003                    this.updateCalendars();
1004            },
1005            hoverDate: function(t) {
1006                if (e(t.target).hasClass("available")) {
1007                    var a = e(t.target).attr("data-title"),
1008                        i = a.substr(1, 1),
1009                        s = a.substr(3, 1),
1010                        n = e(t.target).parents(".drp-calendar").hasClass("left") ?
1011                        this.leftCalendar.calendar[i][s] :
1012                        this.rightCalendar.calendar[i][s],
1013                        r = this.leftCalendar,
1014                        o = this.rightCalendar,
1015                        h = this.startDate;
1016                    this.endDate ||
1017                        this.container.find(".drp-calendar tbody td").each(function(t, a) {
1018                            if (!e(a).hasClass("week")) {
1019                                var i = e(a).attr("data-title"),
1020                                    s = i.substr(1, 1),
1021                                    l = i.substr(3, 1),
1022                                    c = e(a).parents(".drp-calendar").hasClass("left") ?
1023                                    r.calendar[s][l] :
1024                                    o.calendar[s][l];
1025                                (c.isAfter(h) && c.isBefore(n)) || c.isSame(n, "day") ?
1026                                    e(a).addClass("in-range") :
1027                                    e(a).removeClass("in-range");
1028                            }
1029                        });
1030                }
1031            },
1032            clickDate: function(t) {
1033                if (e(t.target).hasClass("available")) {
1034                    var a = e(t.target).attr("data-title"),
1035                        i = a.substr(1, 1),
1036                        s = a.substr(3, 1),
1037                        n = e(t.target).parents(".drp-calendar").hasClass("left") ?
1038                        this.leftCalendar.calendar[i][s] :
1039                        this.rightCalendar.calendar[i][s];
1040                    if (this.endDate || n.isBefore(this.startDate, "day")) {
1041                        if (this.timePicker) {
1042                            var r = parseInt(
1043                                this.container.find(".left .hourselect").val(),
1044                                10
1045                            );
1046                            if (!this.timePicker24Hour)
1047                                "PM" === (l = this.container.find(".left .ampmselect").val()) &&
1048                                r < 12 &&
1049                                (r += 12),
1050                                "AM" === l && 12 === r && (r = 0);
1051                            var o = parseInt(
1052                                this.container.find(".left .minuteselect").val(),
1053                                10
1054                            );
1055                            isNaN(o) &&
1056                                (o = parseInt(
1057                                    this.container.find(".left .minuteselect option:last").val(),
1058                                    10
1059                                ));
1060                            var h = this.timePickerSeconds ?
1061                                parseInt(this.container.find(".left .secondselect").val(), 10) :
1062                                0;
1063                            n = n.clone().hour(r).minute(o).second(h);
1064                        }
1065                        (this.endDate = null), this.setStartDate(n.clone());
1066                    } else if (!this.endDate && n.isBefore(this.startDate))
1067                        this.setEndDate(this.startDate.clone());
1068                    else {
1069                        if (this.timePicker) {
1070                            var l;
1071                            r = parseInt(this.container.find(".right .hourselect").val(), 10);
1072                            if (!this.timePicker24Hour)
1073                                "PM" ===
1074                                (l = this.container.find(".right .ampmselect").val()) &&
1075                                r < 12 &&
1076                                (r += 12),
1077                                "AM" === l && 12 === r && (r = 0);
1078                            o = parseInt(
1079                                this.container.find(".right .minuteselect").val(),
1080                                10
1081                            );
1082                            isNaN(o) &&
1083                                (o = parseInt(
1084                                    this.container.find(".right .minuteselect option:last").val(),
1085                                    10
1086                                ));
1087                            h = this.timePickerSeconds ?
1088                                parseInt(
1089                                    this.container.find(".right .secondselect").val(),
1090                                    10
1091                                ) :
1092                                0;
1093                            n = n.clone().hour(r).minute(o).second(h);
1094                        }
1095                        this.setEndDate(n.clone()),
1096                            this.autoApply &&
1097                            (this.calculateChosenLabel(), this.clickApply());
1098                    }
1099                    this.singleDatePicker &&
1100                        (this.setEndDate(this.startDate), !this.timePicker && this.autoApply && this.clickApply()),
1101                        this.updateView(),
1102                        t.stopPropagation();
1103                }
1104            },
1105            calculateChosenLabel: function() {
1106                var t = !0,
1107                    e = 0;
1108                for (var a in this.ranges) {
1109                    if (this.timePicker) {
1110                        var i = this.timePickerSeconds ?
1111                            "YYYY-MM-DD HH:mm:ss" :
1112                            "YYYY-MM-DD HH:mm";
1113                        if (
1114                            this.startDate.format(i) == this.ranges[a][0].format(i) &&
1115                            this.endDate.format(i) == this.ranges[a][1].format(i)
1116                        ) {
1117                            (t = !1),
1118                            (this.chosenLabel = this.container
1119                                .find(".ranges li:eq(" + e + ")")
1120                                .addClass("active")
1121                                .attr("data-range-key"));
1122                            break;
1123                        }
1124                    } else if (
1125                        this.startDate.format("YYYY-MM-DD") ==
1126                        this.ranges[a][0].format("YYYY-MM-DD") &&
1127                        this.endDate.format("YYYY-MM-DD") ==
1128                        this.ranges[a][1].format("YYYY-MM-DD")
1129                    ) {
1130                        (t = !1),
1131                        (this.chosenLabel = this.container
1132                            .find(".ranges li:eq(" + e + ")")
1133                            .addClass("active")
1134                            .attr("data-range-key"));
1135                        break;
1136                    }
1137                    e++;
1138                }
1139                t &&
1140                    (this.showCustomRangeLabel ?
1141                        (this.chosenLabel = this.container
1142                            .find(".ranges li:last")
1143                            .addClass("active")
1144                            .attr("data-range-key")) :
1145                        (this.chosenLabel = null),
1146                        this.showCalendars());
1147            },
1148            clickApply: function(t) {
1149                this.hide(), this.element.trigger("apply.daterangepicker", this);
1150            },
1151            clickCancel: function(t) {
1152                (this.startDate = this.oldStartDate),
1153                (this.endDate = this.oldEndDate),
1154                this.hide(),
1155                    this.element.trigger("cancel.daterangepicker", this);
1156            },
1157            monthOrYearChanged: function(t) {
1158                var a = e(t.target).closest(".drp-calendar").hasClass("left"),
1159                    i = a ? "left" : "right",
1160                    s = this.container.find(".drp-calendar." + i),
1161                    n = parseInt(s.find(".monthselect").val(), 10),
1162                    r = s.find(".yearselect").val();
1163                a ||
1164                    ((r < this.startDate.year() ||
1165                            (r == this.startDate.year() && n < this.startDate.month())) &&
1166                        ((n = this.startDate.month()), (r = this.startDate.year()))),
1167                    this.minDate &&
1168                    (r < this.minDate.year() ||
1169                        (r == this.minDate.year() && n < this.minDate.month())) &&
1170                    ((n = this.minDate.month()), (r = this.minDate.year())),
1171                    this.maxDate &&
1172                    (r > this.maxDate.year() ||
1173                        (r == this.maxDate.year() && n > this.maxDate.month())) &&
1174                    ((n = this.maxDate.month()), (r = this.maxDate.year())),
1175                    a ?
1176                    (this.leftCalendar.month.month(n).year(r),
1177                        this.linkedCalendars &&
1178                        (this.rightCalendar.month = this.leftCalendar.month
1179                            .clone()
1180                            .add(1, "month"))) :
1181                    (this.rightCalendar.month.month(n).year(r),
1182                        this.linkedCalendars &&
1183                        (this.leftCalendar.month = this.rightCalendar.month
1184                            .clone()
1185                            .subtract(1, "month"))),
1186                    this.updateCalendars();
1187            },
1188            timeChanged: function(t) {
1189                var a = e(t.target).closest(".drp-calendar"),
1190                    i = a.hasClass("left"),
1191                    s = parseInt(a.find(".hourselect").val(), 10),
1192                    n = parseInt(a.find(".minuteselect").val(), 10);
1193                isNaN(n) &&
1194                    (n = parseInt(a.find(".minuteselect option:last").val(), 10));
1195                var r = this.timePickerSeconds ?
1196                    parseInt(a.find(".secondselect").val(), 10) :
1197                    0;
1198                if (!this.timePicker24Hour) {
1199                    var o = a.find(".ampmselect").val();
1200                    "PM" === o && s < 12 && (s += 12), "AM" === o && 12 === s && (s = 0);
1201                }
1202                if (i) {
1203                    var h = this.startDate.clone();
1204                    h.hour(s),
1205                        h.minute(n),
1206                        h.second(r),
1207                        this.setStartDate(h),
1208                        this.singleDatePicker ?
1209                        (this.endDate = this.startDate.clone()) :
1210                        this.endDate &&
1211                        this.endDate.format("YYYY-MM-DD") == h.format("YYYY-MM-DD") &&
1212                        this.endDate.isBefore(h) &&
1213                        this.setEndDate(h.clone());
1214                } else if (this.endDate) {
1215                    var l = this.endDate.clone();
1216                    l.hour(s), l.minute(n), l.second(r), this.setEndDate(l);
1217                }
1218                this.updateCalendars(),
1219                    this.updateFormInputs(),
1220                    this.renderTimePicker("left"),
1221                    this.renderTimePicker("right");
1222            },
1223            elementChanged: function() {
1224                if (this.element.is("input") && this.element.val().length) {
1225                    var e = this.element.val().split(this.locale.separator),
1226                        a = null,
1227                        i = null;
1228                    2 === e.length &&
1229                        ((a = t(e[0], this.locale.format)),
1230                            (i = t(e[1], this.locale.format))),
1231                        (this.singleDatePicker || null === a || null === i) &&
1232                        (i = a = t(this.element.val(), this.locale.format)),
1233                        a.isValid() &&
1234                        i.isValid() &&
1235                        (this.setStartDate(a), this.setEndDate(i), this.updateView());
1236                }
1237            },
1238            keydown: function(t) {
1239                (9 !== t.keyCode && 13 !== t.keyCode) || this.hide(),
1240                    27 === t.keyCode &&
1241                    (t.preventDefault(), t.stopPropagation(), this.hide());
1242            },
1243            updateElement: function() {
1244                if (this.element.is("input") && this.autoUpdateInput) {
1245                    var t = this.startDate.format(this.locale.format);
1246                    this.singleDatePicker ||
1247                        (t +=
1248                            this.locale.separator + this.endDate.format(this.locale.format)),
1249                        t !== this.element.val() && this.element.val(t).trigger("change");
1250                }
1251            },
1252            remove: function() {
1253                this.container.remove(),
1254                    this.element.off(".daterangepicker"),
1255                    this.element.removeData();
1256            }
1257        }),
1258        (e.fn.daterangepicker = function(t, i) {
1259            var s = e.extend(!0, {}, e.fn.daterangepicker.defaultOptions, t);
1260            return (
1261                this.each(function() {
1262                    var t = e(this);
1263                    t.data("daterangepicker") && t.data("daterangepicker").remove(),
1264                        t.data("daterangepicker", new a(t, s, i));
1265                }),
1266                this
1267            );
1268        }),
1269        a
1270    );
1271});
1272//# sourceMappingURL=/sm/f07d8d7b2652873f485707eab4f3d300bf1f6f3b42912e189c8933b1b9b3dfde.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.