PageSourceSearch

https://www.pribenik.sk/design/js/evo-calendar.min.js

js pribenik.sk collected 2026-09-24 10:18:17 UTC 41,006 bytes, 649 lines download raw bytes

1/*!
2 * Evo Calendar - Simple and Modern-looking Event Calendar Plugin
3 *
4 * Licensed under the MIT License
5 *
6 * Version: 1.1.3
7 * Author: Edlyn Villegas
8 * Docs: https://edlynvillegas.github.com/evo-calendar
9 * Repo: https://github.com/edlynvillegas/evo-calendar
10 * Issues: https://github.com/edlynvillegas/evo-calendar/issues
11 *
12 */
13!(function (e) {
14    "use strict";
15    "function" == typeof define && define.amd ? define(["jquery"], e) : "undefined" != typeof exports ? (module.exports = e(require("jquery"))) : e(jQuery);
16})(function (d) {
17    "use strict";
18    var i,
19        r = window.EvoCalendar || {};
20    (i = 0),
21        ((r = function (e, t) {
22            var a = this;
23            if (
24                ((a.defaults = {
25                    theme: null,
26                    format: "mm/dd/yyyy",
27                    titleFormat: "MM yyyy",
28                    eventHeaderFormat: "MMd, yyyy",
29                    firstDayOfWeek: 0,
30                    language: "en",
31                    todayHighlight: !1,
32                    sidebarDisplayDefault: !0,
33                    sidebarToggler: !0,
34                    eventDisplayDefault: !0,
35                    eventListToggler: !0,
36                    calendarEvents: null,
37                }),
38                (a.options = d.extend({}, a.defaults, t)),
39                (a.initials = {
40                    default_class: d(e)[0].classList.value,
41                    validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,
42                    dates: {
43                        hu: {
44                            days: ["Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat"],
45                            daysShort: ["Vas", "Hét", "Ked", "Sze", "Csü", "Pén", "Szo"],
46                            daysMin: ["Va", "Hé", "Ke", "Sz", "Cs", "Pé", "Sz"],
47                            months: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"],
48                            monthsShort: ["Jan", "Feb", "Már", "Apr", "Maj", "Jún", "Júl", "Aug", "Sze", "Okt", "Nov", "Dec"],
49                            noEventForToday: "Ezen a napon nincs semmi program",
50                            noEventForThisDay: "Ezen a napon nincs semmi program",
51                            previousYearText: "Előző év",
52                            nextYearText: "A következő évben",
53                            closeSidebarText: "Bezárás",
54                            closeEventListText: "Bezárás",
55                        },
56                        sk: {
57                            days: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"],
58                            daysShort: ["Ned", "Pon", "Uto", "Str", "Å tv", "Pia", "Sob"],
59                            daysMin: ["Ne", "Po", "Ut", "St", "Å t", "Pi", "So"],
60                            months: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"],
61                            monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
62                            noEventForToday: "V tento deň nie je nič naplánované",
63                            noEventForThisDay: "V tento deň nie je nič naplánované",
64                            previousYearText: "Predchadzajci rok",
65                            nextYearText: "Nasledujúci rok",
66                            closeSidebarText: "Zavrieť",
67                            closeEventListText: "Zavrieť",
68                        },
69                        en: {
70                            days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
71                            daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
72                            daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
73                            months: ["January", "February", "March", "April", "May", "Jun", "July", "August", "September", "October", "
73November", "December"],
74                            monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
75                            noEventForToday: "No event for today.. so take a rest! :)",
76                            noEventForThisDay: "No event for this day.. so take a rest! :)",
77                            previousYearText: "Previous year",
78                            nextYearText: "Next year",
79                            closeSidebarText: "Close sidebar",
80                            closeEventListText: "Close event list",
81                        },
82                        es: {
83                            days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"],
84                            daysShort: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"],
85                            daysMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"],
86                            months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
87                            monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
88                            noEventForToday: "No hay evento para hoy.. ¡así que descanse! :)",
89                            noEventForThisDay: "Ningún evento para este día.. ¡así que descanse! :)",
90                            previousYearText: "Año anterior",
91                            nextYearText: "El próximo año",
92                            closeSidebarText: "Cerrar la barra lateral",
93                            closeEventListText: "Cerrar la lista de eventos",
94                        },
95                        de: {
96                            days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
97                            daysShort: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
98                            daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
99                            months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
100                            monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
101                            noEventForToday: "Keine Veranstaltung für heute.. also ruhen Sie sich aus! :)",
102                            noEventForThisDay: "Keine Veranstaltung für diesen Tag.. also ruhen Sie sich aus! :)",
103                            previousYearText: "Vorheriges Jahr",
104                            nextYearText: "Nächstes Jahr",
105                            closeSidebarText: "Schließen Sie die Seitenleiste",
106                            closeEventListText: "Schließen Sie die Ereignisliste",
107                        },
108                        pt: {
109                            days: ["Domingo", "Segunda-Feira", "Terça-Feira", "Quarta-Feira", "Quinta-Feira", "Sexta-Feira", "Sábado"],
110                            daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],
111                            daysMin: ["Do", "2a", "3a", "4a", "5a", "6a", "Sa"],
112                            months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
113                            monthsShort: ["Jan", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
114                            noEventForToday: "Nenhum evento para hoje.. então descanse! :)",
115                            noEventForThisDay: "Nenhum evento para este dia.. então descanse! :)",
116                            previousYearText: "Ano anterior",
117                            nextYearText: "Próximo ano",
118                            closeSidebarText: "Feche a barra lateral",
119                            closeEventListText: "Feche a lista de eventos",
120                        },
121                        fr: {
122                            days: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"],
123                            daysShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"],
124                            daysMin: ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"],
125                            months: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
126                            monthsShort: ["Jan", "Fév", "Mar", "Avr", "Mai", "Juin", "Juil", "Août", "Sept", "Oct", "Nov", "Déc"],
127                            noEventForToday: "Rien pour aujourd'hui... Belle journée :)",
128                            noEventForThisDay: "Rien pour ce jour-ci... Profite de te réposer :)",
129                            previousYearText: "Année précédente",
130                            nextYearText: "L'année prochaine",
131                            closeSidebarText: "Fermez la barre latérale",
132                            closeEventListText: "Fermer la liste des événements",
133                        },
134                        nl: {
135                            days: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"],
136                            daysShort: ["Zon", "Maan", "Din", "Woe", "Don", "Vrij", "Zat"],
137                            daysMin: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"],
138                            months: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"],
139                            monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
140                            noEventForToday: "Geen event voor vandaag.. dus rust even uit! :)",
141                            noEventForThisDay: "Geen event voor deze dag.. dus rust even uit! :)",
142                            previousYearText: "Vorig jaar",
143                            nextYearText: "Volgend jaar",
144                            closeSidebarText: "Sluit de zijbalk",
145                            closeEventListText: "Sluit de event lijst",
146                        },
147                        id: {
148                            days: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"],
149                            daysShort: ["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"],
150                            daysMin: ["Mi", "Sn", "Sl", "Ra", "Ka", "Ju", "Sa"],
151                            months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"],
152                            monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Agu", "Sep", "Okt", "Nov", "Des"],
153                            noEventForToday: "Tidak ada Acara untuk Sekarang.. Jadi Beristirahatlah! :)",
154                            noEventForThisDay: "Tidak ada Acara untuk Hari Ini.. Jadi Beristirahatlah! :)",
155                            previousYearText: "Tahun Sebelumnya",
156                            nextYearText: "Tahun Berikutnya",
157                            closeSidebarText: "Tutup Sidebar",
158                            closeEventListText: "Tutup Daftar Acara",
159                        },
160                    },
161                }),
162                (a.initials.weekends = {
163                    sun: a.initials.dates[a.options.language].daysShort[0],
164                    sat: a.initials.dates[a.options.language].daysShort[6],
165                }),
166                null != a.options.calendarEvents)
167            )
168                for (var n = 0; n < a.options.calendarEvents.length; n++)
169                    a.options.calendarEvents[n].id || console.log('%c Event named: "' + a.options.calendarEvents[n].name + "\" doesn't have a unique ID ", "color:white;font-weight:bold;background-color:#e21d1d;"),
170                        a.isValidDate(a.options.calendarEvents[n].date) && (a.options.calendarEvents[n].date = a.formatDate(a.options.calendarEvents[n].date, a.options.format));
171            (a.startingDay = null),
172                (a.monthLength = null),
173                (a.windowW = d(window).width()),
174                (a.$current = {
175                    month: isNaN(this.month) || null == this.month ? new Date().getMonth() : this.month,
176                    year: isNaN(this.year) || null == this.year ? new Date().getFullYear() : this.year,
177                    date: a.formatDate(a.initials.dates[a.defaults.language].months[new Date().getMonth()] + " " + new Date().getDate() + " " + new Date().getFullYear(), a.options.format),
178                }),
179                (a.$active = {
180                    month: a.$current.month,
181                    year: a.$current.year,
182                    date: a.$current.date,
183                    event_date: a.$current.date,
184                    events: [],
185                }),
186                (a.$label = {
187                    days: [],
188                    months: a.initials.dates[a.defaults.language].months,
189                    days_in_month: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
190                }),
191                (a.$markups = {
192                    calendarHTML: "",
193                    mainHTML: "",
194                    sidebarHTML: "",
195                    eventHTML: "",
196                }),
197                (a.$elements = {
198                    calendarEl: d(e),
199                    innerEl: null,
200                    sidebarEl: null,
201                    eventEl: null,
202                    sidebarToggler: null,
203                    eventListToggler: null,
204                    activeDayEl: null,
205                    activeMonthEl: null,
206                    activeYearEl: null,
207                }),
208                (a.$breakpoints = {
209                    tablet: 768,
210                    mobile: 425,
211                }),
212                (a.$UI = {
213                    hasSidebar: !0,
214                    hasEvent: !0,
215                }),
216                (a.formatDate = d.proxy(a.formatDate, a)),
217                (a.selectDate = d.proxy(a.selectDate, a)),
218                (a.selectMonth = d.proxy(a.selectMonth, a)),
219                (a.selectYear = d.proxy(a.selectYear, a)),
220                (a.selectEvent = d.proxy(a.selectEvent, a)),
221                (a.toggleSidebar = d.proxy(a.toggleSidebar, a)),
222                (a.toggleEventList = d.proxy(a.toggleEventList, a)),
223                (a.instanceUid = i++),
224                a.init(!0);
225        }).prototype.init = function (e) {
226            var t = this;
227            d(t.$elements.calendarEl).hasClass("calendar-initialized") ||
228                (d(t.$elements.calendarEl).addClass("evo-calendar calendar-initialized"),
229                t.windowW <= t.$breakpoints.tablet
230                    ? (t.toggleSidebar(!1), t.toggleEventList(!1))
231                    : (t.options.sidebarDisplayDefault ? t.toggleSidebar(!0) : t.toggleSidebar(!1), t.options.eventDisplayDefault ? t.toggleEventList(!0) : t.toggleEventList(!1)),
232                t.options.theme && t.setTheme(t.options.theme),
233                t.buildTheBones());
234        }),
235        (r.prototype.destroy = function () {
236            var e = this;
237            e.destroyEventListener(),
238                e.$elements.calendarEl &&
239                    (e.$elements.calendarEl.removeClass("calendar-initialized"), e.$elements.calendarEl.removeClass("evo-calendar"), e.$elements.calendarEl.removeClass("sidebar-hide"), e.$elements.calendarEl.removeClass("event-hide")),
240                e.$elements.calendarEl.empty(),
241                e.$elements.calendarEl.attr("class", e.initials.default_class),
242                d(e.$elements.calendarEl).trigger("destroy", [e]);
243        }),
244        (r.prototype.limitTitle = function (e, t) {
245            var a = [];
246            if (((t = void 0 === t ? 18 : t), e.split(" ").join("").length > t)) {
247                for (var n = e.split(" "), i = 0; i < n.length; i++) n[i].length + a.join("").length <= t && a.push(n[i]);
248                return a.join(" ") + "...";
249            }
250            return e;
251        }),
252        (r.prototype.stringCheck = function (e) {
253            return e.replace(/[^\w]/g, "\\$&");
254        }),
255        (r.prototype.parseFormat = function (e) {
256            if ("function" == typeof e.toValue && "function" == typeof e.toDisplay) return e;
257            var t = e.replace(this.initials.validParts, "\0").split("\0"),
258                e = e.match(this.initials.validParts);
259            return (
260                (t && t.length && e && 0 !== e.length) || console.log("%c Invalid date format ", "color:white;font-weight:bold;background-color:#e21d1d;"),
261                {
262                    separators: t,
263                    parts: e,
264                }
265            );
266        }),
267        (r.prototype.formatDate = function (e, t, a) {
268            var n = this;
269            if (!e) return "";
270            if (((a = a || n.defaults.language), "string" == typeof t && (t = n.parseFormat(t)), t.toDisplay)) return t.toDisplay(e, t, a);
271            var i = new Date(e),
272                o = {
273                    d: i.getDate(),
274                    D: n.initials.dates[a].daysShort[i.getDay()],
275                    DD: n.initials.dates[a].days[i.getDay()],
276                    m: i.getMonth() + 1,
277                    M: n.initials.dates[a].monthsShort[i.getMonth()],
278                    MM: n.initials.dates[a].months[i.getMonth()],
279                    yy: i.getFullYear().toString().substring(2),
280                    yyyy: i.getFullYear(),
281                };
282            (o.dd = (o.d < 10 ? "0" : "") + o.d), (o.mm = (o.m < 10 ? "0" : "") + o.m), (e = []);
283            for (var r = d.extend([], t.separators), s = 0, l = t.parts.length; s <= l; s++) r.length && e.push(r.shift()), e.push(o[t.parts[s]]);
284            return e.join("");
285        }),
286        (r.prototype.getBetweenDates = function (e) {
287            for (var t = this, a = [], n = 0; n < t.monthLength; n++) {
288                var i = t.formatDate(t.$label.months[t.$active.month] + " " + (n + 1) + " " + t.$active.year, t.options.format);
289                t.isBetweenDates(i, e) && a.push(i);
290            }
291            return a;
292        }),
293        (r.prototype.isBetweenDates = function (e, t) {
294            var a,
295                t = t instanceof Array ? ((a = new Date(t[0])), new Date(t[1])) : ((a = new Date(t)), new Date(t));
296            return a <= new Date(e) && t >= new Date(e);
297        }),
298        (r.prototype.hasSameDayEventType = function (e, t) {
299            for (var a = this, n = 0, i = 0; i < a.options.calendarEvents.length; i++)
300                if (a.options.calendarEvents[i].date instanceof Array) for (var o = a.getBetweenDates(a.options.calendarEvents[i].date), r = 0; r < o.length; r++) e === o[r] && t === a.options.calendarEvents[i].type && n++;
301                else e === a.options.calendarEvents[i].date && t === a.options.calendarEvents[i].type && n++;
302            return 0 < n;
303        }),
304        (r.prototype.setTheme = function (e) {
305            var t = this,
306                a = t.options.theme;
307            (t.options.theme = e.toLowerCase().split(" ").join("-")), t.options.theme && d(t.$elements.calendarEl).removeClass(a), "default" 
307!== t.options.theme && d(t.$elements.calendarEl).addClass(t.options.theme);
308        }),
309        (r.prototype.resize = function () {
310            var e = this;
311            (e.windowW = d(window).width()),
312                e.windowW <= e.$breakpoints.tablet
313                    ? (e.toggleSidebar(!1),
314                      e.toggleEventList(!1),
315                      e.windowW <= e.$breakpoints.mobile ? d(window).off("click.evocalendar.evo-" + e.instanceUid) : d(window).on("click.evocalendar.evo-" + e.instanceUid, d.proxy(e.toggleOutside, e)))
316                    : (e.options.sidebarDisplayDefault ? e.toggleSidebar(!0) : e.toggleSidebar(!1), e.options.eventDisplayDefault ? e.toggleEventList(!0) : e.toggleEventList(!1), d(window).off("click.evocalendar.evo-" + e.instanceUid));
317        }),
318        (r.prototype.initEventListener = function () {
319            var e = this;
320            d(window)
321                .off("resize.evocalendar.evo-" + e.instanceUid)
322                .on("resize.evocalendar.evo-" + e.instanceUid, d.proxy(e.resize, e)),
323                e.options.sidebarToggler && e.$elements.sidebarToggler.off("click.evocalendar").on("click.evocalendar", e.toggleSidebar),
324                e.options.eventListToggler && e.$elements.eventListToggler.off("click.evocalendar").on("click.evocalendar", e.toggleEventList),
325                e.$elements.sidebarEl.find("[data-month-val]").off("click.evocalendar").on("click.evocalendar", e.selectMonth),
326                e.$elements.sidebarEl.find("[data-year-val]").off("click.evocalendar").on("click.evocalendar", e.selectYear),
327                e.$elements.eventEl.find("[data-event-index]").off("click.evocalendar").on("click.evocalendar", e.selectEvent);
328        }),
329        (r.prototype.destroyEventListener = function () {
330            var e = this;
331            d(window).off("resize.evocalendar.evo-" + e.instanceUid),
332                d(window).off("click.evocalendar.evo-" + e.instanceUid),
333                e.options.sidebarToggler && e.$elements.sidebarToggler.off("click.evocalendar"),
334                e.options.eventListToggler && e.$elements.eventListToggler.off("click.evocalendar"),
335                e.$elements.innerEl.find(".calendar-day").children().off("click.evocalendar"),
336                e.$elements.sidebarEl.find("[data-month-val]").off("click.evocalendar"),
337                e.$elements.sidebarEl.find("[data-year-val]").off("click.evocalendar"),
338                e.$elements.eventEl.find("[data-event-index]").off("click.evocalendar");
339        }),
340        (r.prototype.calculateDays = function () {
341            var e,
342                t,
343                a,
344                n = this;
345            for (
346                n.monthLength = n.$label.days_in_month[n.$active.month],
347                    1 == n.$active.month && ((n.$active.year % 4 == 0 && n.$active.year % 100 != 0) || n.$active.year % 400 == 0) && (n.monthLength = 29),
348                    e = n.initials.dates[n.options.language].daysShort,
349                    t = n.options.firstDayOfWeek;
350                n.$label.days.length < e.length;
351
352            )
353                t == e.length && (t = 0), n.$label.days.push(e[t]), t++;
354            (a = new Date(n.$active.year, n.$active.month).getDay() - t), (n.startingDay = a < 0 ? n.$label.days.length + a : a);
355        }),
356        (r.prototype.buildTheBones = function () {
357            var e = this;
358            if ((e.calculateDays(), !e.$elements.calendarEl.html())) {
359                for (
360                    var t =
361                            '<div class="calendar-sidebar"><div class="calendar-year"><button class="icon-button" role="button" data-year-val="prev" title="' +
362                            e.initials.dates[e.options.language].previousYearText +
363                            '"><span class="chevron-arrow-left"></span></button>&nbsp;<p></p>&nbsp;<button class="icon-button" role="button" data-year-val="next" title="' +
364                            e.initials.dates[e.options.language].nextYearText +
365                            '"><span class="chevron-arrow-right"></span></button></div><div class="month-list"><ul class="calendar-months">',
366                        a = 0;
367                    a < e.$label.months.length;
368                    a++
369                )
370                    t += '<li class="month" role="button" data-month-val="' + a + '">' + e.initials.dates[e.options.language].months[a] + "</li>";
371                (t += "</ul>"), (t += "</div></div>"), (t += '<div class="calendar-inner"><table class="calendar-table"><tr><th colspan="7"></th></tr><tr class="calendar-header">');
372                for (a = 0; a < e.$label.days.length; a++) {
373                    var n = "calendar-header-day";
374                    (e.$label.days[a] !== e.initials.weekends.sat && e.$label.days[a] !== e.initials.weekends.sun) || (n += " --weekend"), (t += '<td class="' + n + '">' + e.$label.days[a] + "</td>");
375                }
376                (t += "</tr></table></div>"),
377                    (t += '<div class="calendar-events"><div class="event-header"><p></p></div><div class="event-list"></div></div>'),
378                    e.$elements.calendarEl.html(t),
379                    e.$elements.sidebarEl || (e.$elements.sidebarEl = d(e.$elements.calendarEl).find(".calendar-sidebar")),
380                    e.$elements.innerEl || (e.$elements.innerEl = d(e.$elements.calendarEl).find(".calendar-inner")),
381                    e.$elements.eventEl || (e.$elements.eventEl = d(e.$elements.calendarEl).find(".calendar-events")),
382                    e.options.sidebarToggler &&
383                        (d(e.$elements.sidebarEl).append(
384                            '<span id="sidebarToggler" role="button" aria-pressed title="' + e.initials.dates[e.options.language].closeSidebarText + '"><button class="icon-button"><span class="bars"></span></button></span>'
385                        ),
386                        e.$elements.sidebarToggler || (e.$elements.sidebarToggler = d(e.$elements.sidebarEl).find("span#sidebarToggler"))),
387                    e.options.eventListToggler &&
388                        (d(e.$elements.calendarEl).append(
389                            '<span id="eventListToggler" role="button" aria-pressed title="' +
390                                e.initials.dates[e.options.language].closeEventListText +
391                                '"><button class="icon-button"><span class="chevron-arrow-right"></span></button></span>'
392                        ),
393                        e.$elements.eventListToggler || (e.$elements.eventListToggler = d(e.$elements.calendarEl).find("span#eventListToggler")));
394            }
395            e.buildSidebarYear(), e.buildSidebarMonths(), e.buildCalendar(
395), e.buildEventList(), e.initEventListener(), e.resize();
396        }),
397        (r.prototype.buildEventList = function () {
398            var e,
399                t = this,
400                a = !1;
401            t.$active.events = [];
402            var n = t.formatDate(t.$active.date, t.options.eventHeaderFormat, t.options.language);
403            t.$elements.eventEl.find(".event-header > p").text(n);
404            n = t.$elements.eventEl.find(".event-list");
405            if ((0 < n.children().length && n.empty(), t.options.calendarEvents))
406                for (var i = 0; i < t.options.calendarEvents.length; i++) {
407                    (t.isBetweenDates(t.$active.date, t.options.calendarEvents[i].date) ||
408                        (t.options.calendarEvents[i].everyYear &&
409                            new Date(t.$active.date).getMonth() + 1 + " " + new Date(t.$active.date).getDate() == new Date(t.options.calendarEvents[i].date).getMonth() + 1 + " " + new Date(t.options.calendarEvents[i].date).getDate())) &&
410                        o(t.options.calendarEvents[i]);
411                }
412
413            function o(e) {
414                (a = !0), t.addEventList(e);
415            }
416            a ||
417                ((e = '<div class="event-empty">'),
418                t.$active.date === t.$current.date ? (e += "<p>" + t.initials.dates[t.options.language].noEventForToday + "</p>") : (e += "<p>" + t.initials.dates[t.options.language].noEventForThisDay + "</p>"),
419                (e += "</div>")),
420                n.append(e);
421        }),
422        (r.prototype.addEventList = function (e) {
423            var t,
424                a = this,
425                n = a.$elements.eventEl.find(".event-list");
426            0 === n.find("[data-event-index]").length && n.empty(),
427                a.$active.events.push(e),
428                (t = '<div class="event-container" role="button" data-event-index="' + e.id + '">'),
429                (t += '<div class="event-icon"><div class="event-bullet-' + e.type + '"'),
430                e.color && (t += 'style="background-color:' + e.color + '"'),
431                (t += '></div></div><div class="event-info"><p class="event-title">' + a.limitTitle(e.name)),
432                e.badge && (t += "<span>" + e.badge + "</span>"),
433                (t += "</p>"),
434                e.description && (t += '<p class="event-desc">' + e.description + "</p>"),
435                (t += "</div>"),
436                (t += "</div>"),
437                n.append(t),
438                a.$elements.eventEl
439                    .find('[data-event-index="' + e.id + '"]')
440                    .off("click.evocalendar")
441                    .on("click.evocalendar", a.selectEvent);
442        }),
443        (r.prototype.removeEventList = function (e) {
444            var t,
445                a = this,
446                n = a.$elements.eventEl.find(".event-list");
447            0 !== n.find('[data-event-index="' + e + '"]').length &&
448                (n.find('[data-event-index="' + e + '"]').remove(),
449                0 === n.find("[data-event-index]").length &&
450                    (n.empty(),
451                    a.$active.date === a.$current.date ? (t += "<p>" + a.initials.dates[a.options.language].noEventForToday + "</p>") : (t += "<p>" + a.initials.dates[a.options.language].noEventForThisDay + "</p>"),
452                    n.append(t)));
453        }),
454        (r.prototype.buildSidebarYear = function () {
455            this.$elements.sidebarEl.find(".calendar-year > p").text(this.$active.year);
456        }),
457        (r.prototype.buildSidebarMonths = function () {
458            this.$elements.sidebarEl.find(".calendar-months > [data-month-val]").removeClass("active-month"), this.$elements.sidebarEl.find('.calendar-months > [data-month-val="' + this.$active.month + '"]').addClass("active-month");
459        }),
460        (r.prototype.buildCalendar = function () {
461            var e,
462                t = this;
463            t.calculateDays(),
464                (r = t.formatDate(new Date(t.$label.months[t.$active.month] + " 1 " + t.$active.year), t.options.titleFormat, t.options.language)),
465                t.$elements.innerEl.find(".calendar-table th").text(r),
466                t.$elements.innerEl.find(".calendar-body").remove(),
467                (e += '<tr class="calendar-body">');
468            for (var a = 1, n = 0; n < 9; n++) {
469                for (var i, o = 0; o < t.$label.days.length; o++) {
470                    a <= t.monthLength && (0 < n || o >= t.startingDay)
471                        ? ((i = "calendar-day"),
472                          (t.$label.days[o] !== t.initials.weekends.sat && t.$label.days[o] !== t.initials.weekends.sun) || (i += " --weekend"),
473                          (e += '<td class="' + i + '">'),
474                          (e += '<div class="day" role="button" data-date-val="' + t.formatDate(t.$label.months[t.$active.month] + " " + a + " " + t.$active.year, t.options.format) + '">' + a + "</div>"),
475                          a++)
476                        : (e += "<td>"),
477                        (e += "</td>");
478                }
479                if (a > t.monthLength) break;
480                e += '</tr><tr class="calendar-body">';
481            }
482            (e += "</tr>"),
483                t.$elements.innerEl.find(".calendar-table").append(e),
484                t.options.todayHighlight && t.$elements.innerEl.find("[data-date-val='" + t.$current.date + "']").addClass("calendar-today"),
485                t.$elements.innerEl.find(".calendar-day").children().off("click.evocalendar").on("click.evocalendar", t.selectDate);
486            var r = t.$elements.innerEl.find("[data-date-val='" + t.$active.date + "']");
487            r && (t.$elements.innerEl.children().removeClass("calendar-active"), r.addClass("calendar-active")), null != t.options.calendarEvents && t.buildEventIndicator();
488        }),
489        (r.prototype.addEventIndicator = function (t) {
490            var a,
491                n,
492                i = this,
493                e = t.date,
494                o = i.stringCheck(t.type);
495            if (e instanceof Array) {
496                if (t.everyYear) for (var r = 0; r < e.length; r++) e[r] = i.formatDate(new Date(e[r]).setFullYear(i.$active.year), i.options.format);
497                for (var s = i.getBetweenDates(e), l = 0; l < s.length; l++) d(s[l]);
498            } else t.everyYear && (e = i.formatDate(new Date(e).setFullYear(i.$active.year), i.options.format)), d(e);
499
500            function d(e) {
501                0 === (n = i.$elements.innerEl.find('[data-date-val="' + e + '"]')).find("span.event-indicator").length && n.append('<span class="event-indicator"></span>'),
502                    0 === n.find("span.event-indicator > .type-bullet > .type-" + o).length &&
503                        ((a = '<div class="type-bullet"><div '), (a += 'class="type-' + t.type + '"'), t.color && (a += 'style="border: 0.3rem solid ' + t.color + '; font-size: 0.9rem;"'), (a += "><span style='vertical-align: text-top; padding: 0.2rem;'>" + t.shortcut + "</span></div></div>"), n.find(".event-indicator").append(a));
504            }
505        }),
506        (r.prototype.removeEventIndicator = function (e) {
507            var t = this,
508                a = e.date,
509                n = t.stringCheck(e.type);
510            if (a instanceof Array) for (var i = t.getBetweenDates(a), o = 0; o < i.length; o++) r(i[o]);
511            else r(a);
512
513            function r(e) {
514                0 !== t.$elements.innerEl.find('[data-date-val="' + e + '"] span.event-indicator').length &&
515                    (t.hasSameDayEventType(e, n) ||
516                        t.$elements.innerEl
517                            .find('[data-date-val="' + e + '"] span.event-indicator > .type-bullet > .type-' + n)
518                            .parent()
519                            .remove());
520            }
521        }),
522        (r.prototype.buildEventIndicator = function () {
523            this.$elements.innerEl.find(".calendar-day > day > .event-indicator").empty();
524            for (var e = 0; e < this.options.calendarEvents.length; e++) this.addEventIndicator(this.options.calendarEvents[e]);
525        }),
526        (r.prototype.selectEvent = function (e) {
527            var t = this,
528                a = d(e.target).closest(".event-container"),
529                e = d(a).data("eventIndex").toString(),
530                a = t.options.calendarEvents
531                    .map(function (e) {
532                        return e.id.toString();
533                    })
534                    .indexOf(e),
535                e = t.options.calendarEvents[a];
536            e.date instanceof Array && (e.dates_range = t.getBetweenDates(e.date)), d(t.$elements.calendarEl).trigger("selectEvent", [t.options.calendarEvents[a]]);
537        }),
538        (r.prototype.selectYear = function (e) {
539            var t,
540                a = this;
541            "string" == typeof e || "number" == typeof e ? 4 === parseInt(e).toString().length && (t = parseInt(e)) : ((e = d(e.target).closest("[data-year-val]")), (t = d(e).data("yearVal"))),
542                "prev" == t ? --a.$active.year : "next" == t ? ++a.$active.year : "number" == typeof t && (a.$active.year = t),
543                a.windowW <= a.$breakpoints.mobile && a.$UI.hasSidebar && a.toggleSidebar(!1),
544                d(a.$elements.calendarEl).trigger("selectYear", [a.$active.year]),
545                a.buildSidebarYear(),
546                a.buildCalendar();
547        }),
548        (r.prototype.selectMonth = function (e) {
549            var t = this;
550            "string" == typeof e || "number" == typeof e ? 0 <= e && e <= t.$label.months.length && (t.$active.month = e.toString()) : (t.$active.month = d(e.currentTarget).data("monthVal")),
551                t.buildSidebarMonths(),
552                t.buildCalendar(),
553                t.windowW <= t.$breakpoints.tablet && t.$UI.hasSidebar && t.toggleSidebar(!1),
554                d(t.$elements.calendarEl).trigger("selectMonth", [t.initials.dates[t.options.language].months[t.$active.month], t.$active.month]);
555        }),
556        (r.prototype.selectDate = function (e) {
557            var t,
558                a,
559                n,
560                i = this,
561                o = i.$active.date;
562            "string" == typeof e || "number" == typeof e || e instanceof Date
563                ? ((t = i.formatDate(new Date(e), i.options.format)),
564                  (a = new Date(t).getFullYear()),
565                  (n = new Date(t).getMonth()),
566                  i.$active.year !== a && i.selectYear(a),
567                  i.$active.month !== n && i.selectMonth(n),
568                  (n = i.$elements.innerEl.find("[data-date-val='" + t + "']")))
569                : (t = (n = d(e.currentTarget)).data("dateVal")),
570                (e = i.$active.date === t),
571                (i.$active.date = t),
572                (i.$active.event_date = t),
573                i.$elements.innerEl.find("[data-date-val]").removeClass("calendar-active"),
574                n.addClass("calendar-active"),
575                e || i.buildEventList(),
576                d(i.$elements.calendarEl).trigger("selectDate", [i.$active.date, o]);
577        }),
578        (r.prototype.getActiveDate = function () {
579            return this.$active.date;
580        }),
581        (r.prototype.getActiveEvents = function () {
582            return this.$active.events;
583        }),
584        (r.prototype.toggleOutside = function (e) {
585            var t = this,
586                e = e.target === t.$elements.innerEl[0];
587            t.$UI.hasSidebar && e && t.toggleSidebar(!1), t.$UI.hasEvent && e && t.toggleEventList(!1);
588        }),
589        (r.prototype.toggleSidebar = function (e) {
590            var t = this;
591            void 0 === e || e.originalEvent
592                ? (d(t.$elements.calendarEl).toggleClass("sidebar-hide"), (t.$UI.hasSidebar = !t.$UI.hasSidebar))
593                : e
594                ? (d(t.$elements.calendarEl).removeClass("sidebar-hide"), (t.$UI.hasSidebar = !0))
595                : (d(t.$elements.calendarEl).addClass("sidebar-hide"), (t.$UI.hasSidebar = !1)),
596                t.windowW <= t.$breakpoints.tablet && t.$UI.hasSidebar && t.$UI.hasEvent && t.toggleEventList();
597        }),
598        (r.prototype.toggleEventList = function (e) {
599            var t = this;
600            void 0 === e || e.originalEvent
601                ? (d(t.$elements.calendarEl).toggleClass("event-hide"), (t.$UI.hasEvent = !t.$UI.hasEvent))
602                : e
603                ? (d(t.$elements.calendarEl).removeClass("event-hide"), (t.$UI.hasEvent = !0))
604                : (d(t.$elements.calendarEl).addClass("event-hide"), (t.$UI.hasEvent = !1)),
605                t.windowW <= t.$breakpoints.tablet && t.$UI.hasEvent && t.$UI.hasSidebar && t.toggleSidebar();
606        }),
607        (r.prototype.addCalendarEvent = function (e) {
608            var n = this;
609
610            function t(t) {
611                if ((t.id || console.log('%c Event named: "' + t.name + "\" doesn't have a unique ID ", "color:white;font-weight:bold;background-color:#e21d1d;"), t.date instanceof Array))
612                    for (var e = 0; e < t.date.length; e++) a(t.date[e]) && (t.date[e] = n.formatDate(new Date(t.date[e]), n.options.format));
613                else a(t.date) && (t.date = n.formatDate(new Date(t.date), n.options.format));
614
615                function a(e) {
616                    if (n.isValidDate(e)) return 1;
617                    console.log('%c Event named: "' + t.name + '" has invalid date ', "color:white;font-weight:bold;background-color:#e21d1d;");
618                }
619                n.options.calendarEvents || (n.options.calendarEvents = []), n.options.calendarEvents.push(t), n.addEventIndicator(t), n.$active.event_date === t.date && n.addEventList(t);
620            }
621            if (e instanceof Array) for (var a = 0; a < e.length; a++) t(e[a]);
622            else "object" == typeof e && t(e);
623        }),
624        (r.prototype.removeCalendarEvent = function (e) {
625            var n = this;
626
627            function t(e) {
628                var t,
629                    a = n.options.calendarEvents
630                        .map(function (e) {
631                            return e.id;
632                        })
633                        .indexOf(e);
634                0 <= a
635                    ? ((t = n.options.calendarEvents[a]), n.options.calendarEvents.splice(a, 1), n.removeEventList(e), n.removeEventIndicator(t))
636                    : console.log("%c " + e + ": ID not found ", "color:white;font-weight:bold;background-color:#e21d1d;");
637            }
638            if (e instanceof Array) for (var a = 0; a < e.length; a++) t(e[a]);
639            else t(e);
640        }),
641        (r.prototype.isValidDate = function (e) {
642            return new Date(e) && !isNaN(new Date(e).getTime());
643        }),
644        (d.fn.evoCalendar = function () {
645            for (var e, t = this, a = arguments[0], n = Array.prototype.slice.call(arguments, 1), i = t.length, o = 0; o < i; o++)
646                if (("object" == typeof a || void 0 === a ? (t[o].evoCalendar = new r(t[o], a)) : (e = t[o].evoCalendar[a].apply(t[o].evoCalendar, n)), void 0 !== e)) return e;
647            return t;
648        });
649});

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.