// source --> https://whitecrossbusinesspark.co.uk/wp-content/plugins/bookly-addon-staff-cabinet/frontend/modules/appointments/resources/js/staff-cabinet-appointments.js?ver=27.9 
(function ($) {
    'use strict';

    /**
     * Staff Cabinet appointments table — frontend port to BooklyDatatables.showForm().
     *
     * Mirrors backend Appointments (same Tables::APPOINTMENTS, same row shape — the
     * cabinet Ajax delegates to Ajax::getAppointmentsTableData()), trimmed for the
     * frontend: no admin Settings/Refresh buttons, no column persistence, no
     * Export/Print, no Staff filter (a staff sees only their own appointments —
     * forced server-side). `read_only` mode strips every mutating affordance.
     */
    window.booklyStaffAppointments = function (Options) {
        const L = BooklySCAppointmentsL10n;
        const { today, getLocalTimeZone, parseDate } = window.BooklyDatatables.calendarDate;
        const readOnly = !!Options.read_only;

        let isMobile = false;
        try { document.createEvent('TouchEvent'); isMobile = true; } catch (e) {}

        // Tailwind classes per appointment status — used by the status column badge.
        const statusBadgeClass = {
            pending:    'bookly:bg-amber-100 bookly:text-amber-800 bookly:border-amber-200',
            approved:   'bookly:bg-green-100 bookly:text-green-800 bookly:border-green-200',
            cancelled:  'bookly:bg-gray-100 bookly:text-gray-700 bookly:border-gray-200',
            rejected:   'bookly:bg-red-100 bookly:text-red-800 bookly:border-red-200',
            waitlisted: 'bookly:bg-purple-100 bookly:text-purple-800 bookly:border-purple-200',
            done:       'bookly:bg-blue-100 bookly:text-blue-800 bookly:border-blue-200',
        };
        const defaultBadgeClass = 'bookly:bg-gray-100 bookly:text-gray-700 bookly:border-gray-200';

        /**
         * Filter state — serialized into the backend POST by ajax.data().
         */
        let dateValue = undefined;
        let createdDateValue = undefined;
        let customerValue = '';
        let serviceValue = '';
        let locationValue = '';
        let statusValue = [];

        const tz = getLocalTimeZone();
        const t = today(tz);
        const startOfMonth = (d) => d.set({ day: 1 });
        const endOfMonth   = (d) => d.set({ day: 1 }).add({ months: 1 }).subtract({ days: 1 });
        function startOfWeek(d) {
            const dow = d.toDate(tz).getDay();
            const offset = (dow + 6) % 7;
            return d.subtract({ days: offset });
        }
        const endOfWeek   = (d) => startOfWeek(d).add({ days: 6 });
        const startOfYear = (d) => d.set({ month: 1, day: 1 });
        const endOfYear   = (d) => d.set({ month: 12, day: 31 });

        const datePresets = [
            { label: L.dateRange.today,      range: { start: t,                                        end: t                                            } },
            { label: L.dateRange.tomorrow,   range: { start: t.add({ days: 1 }),                       end: t.add({ days: 1 })                           } },
            { label: L.dateRange.thisWeek,   range: { start: startOfWeek(t),                           end: endOfWeek(t)                                 } },
            { label: L.dateRange.next_7,     range: { start: t,                                        end: t.add({ days: 7 })                           } },
            { label: L.dateRange.next_30,    range: { start: t,                                        end: t.add({ days: 30 })                          } },
            { label: L.dateRange.thisMonth,  range: { start: startOfMonth(t),                          end: endOfMonth(t)                                } },
            { label: L.dateRange.nextMonth,  range: { start: startOfMonth(t.add({ months: 1 })),       end: endOfMonth(t.add({ months: 1 }))             } },
            { label: L.dateRange.thisYear,   range: { start: startOfYear(t),                           end: endOfYear(t)                                 } },
            { label: L.dateRange.yesterday,  range: { start: t.subtract({ days: 1 }),                  end: t.subtract({ days: 1 })                      } },
            { label: L.dateRange.last_7,     range: { start: t.subtract({ days: 7 }),                  end: t                                            } },
            { label: L.dateRange.last_30,    range: { start: t.subtract({ days: 30 }),                 end: t                                            } },
            { label: L.dateRange.lastMonth,  range: { start: startOfMonth(t.subtract({ months: 1 })),  end: endOfMonth(t.subtract({ months: 1 }))        } },
        ];
        if (L.tasks.enabled) {
            datePresets.push({
                label: L.tasks.title,
                range: { tasks: true, start: t, end: t.add({ days: 1 }) },
            });
        }

        const createdDatePresets = [
            { label: L.dateRange.today,       range: { start: t,                                        end: t                                           } },
            { label: L.dateRange.yesterday,   range: { start: t.subtract({ days: 1 }),                  end: t.subtract({ days: 1 })                     } },
            { label: L.dateRange.last_7,      range: { start: t.subtract({ days: 7 }),                  end: t                                           } },
            { label: L.dateRange.last_30,     range: { start: t.subtract({ days: 30 }),                 end: t                                           } },
            { label: L.dateRange.last_90,     range: { start: t.subtract({ days: 90 }),                 end: t                                           } },
            { label: L.dateRange.thisWeek,    range: { start: startOfWeek(t),                           end: endOfWeek(t)                                } },
            { label: L.dateRange.thisMonth,   range: { start: startOfMonth(t),                          end: endOfMonth(t)                               } },
            { label: L.dateRange.lastMonth,   range: { start: startOfMonth(t.subtract({ months: 1 })),  end: endOfMonth(t.subtract({ months: 1 }))       } },
            { label: L.dateRange.yearToDate,  range: { start: startOfYear(t),                           end: t                                           } },
        ];

        const ymd = (d) => d.year + '-' + String(d.month).padStart(2, '0') + '-' + String(d.day).padStart(2, '0');

        function serializeDate(value) {
            if (!value) return 'any';
            if (value.tasks) return 'null';
            if (value.start && value.end) return ymd(value.start) + ' - ' + ymd(value.end);
            return 'any';
        }

        function activeDateLabel(value, presets) {
            if (!value) return null;
            for (const p of presets) {
                if (p.range && p.range.tasks && value.tasks) return p.label;
                if (p.range && p.range.start && value.start && p.range.start.compare(value.start) === 0 && p.range.end.compare(value.end) === 0) {
                    return p.label;
                }
            }
            return null;
        }

        /**
         * Restore initial filter values from saved settings.
         */
        const savedFilter = L.datatables.appointments.settings.filter || {};

        function tryParseSavedDate(saved, label) {
            if (label) {
                const preset = datePresets.find(p => p.label === label);
                if (preset) return preset.range;
            }
            if (typeof saved === 'string' && saved !== 'any' && saved !== 'null') {
                const parts = saved.split(' - ');
                if (parts.length === 2) {
                    try { return { start: parseDate(parts[0].trim()), end: parseDate(parts[1].trim()) }; }
                    catch (e) { return undefined; }
                }
            }
            if (saved === 'null' && L.tasks.enabled) {
                const tasksPreset = datePresets.find(p => p.range && p.range.tasks);
                if (tasksPreset) return tasksPreset.range;
            }
            return undefined;
        }

        dateValue        = tryParseSavedDate(savedFilter.date, savedFilter.date_label);
        createdDateValue = tryParseSavedDate(savedFilter.created_date, savedFilter.created_date_label);
        customerValue    = savedFilter.customer || '';
        serviceValue     = savedFilter.service || '';
        locationValue    = savedFilter.location || '';
        if (Array.isArray(savedFilter.status) && savedFilter.status.length > 0) {
            statusValue = savedFilter.status;
        }
        // Default appointment date — this month, if nothing saved.
        if (dateValue === undefined && !savedFilter.date) {
            dateValue = datePresets.find(p => p.label === L.dateRange.thisMonth)?.range;
        }

        /**
         * Init table columns.
         */
        const table = 'appointments';
        const columns = [];

        // Backend builder searches only by a.id/ca.id (No.), customer
        // full_name/phone/email, staff full_name and service title.
        const searchableColumns = ['no', 'customer_full_name', 'customer_phone', 'customer_email', 'staff_name', 'service_title'];

        $.each(L.datatables.appointments.settings.columns, function (column, show) {
            switch (column) {
                case 'customer_full_name':
                    columns.push({data: 'customer.full_name', render: BooklyDatatables.escapeHtml()});
                    break;
                case 'customer_phone':
                    columns.push({
                        data: 'customer.phone',
                        parent: 'customer_full_name',
                        render: function (data, type, row, meta) {
                            if (isMobile) {
                                return '<a href="tel:' + window.booklyIntlTelInput.utils.formatNumber(BooklyDatatables.escapeHtml(data), null, window.booklyIntlTelInput.utils.numberFormat.INTERNATIONAL) + '">' + BooklyDatatables.escapeHtml(data) + '</a>';
                            } else {
                                return data ? '<span style="white-space: nowrap;">' + window.booklyIntlTelInput.utils.formatNumber(BooklyDatatables.escapeHtml(data), null, window.booklyIntlTelInput.utils.numberFormat.INTERNATIONAL) + '</span>' : '';
                            }
                        }
                    });
                    break;
                case 'customer_email':
                    columns.push({data: 'customer.email', parent: 'customer_full_name', render: BooklyDatatables.escapeHtml()});
                    break;
                case 'customer_address':
                    columns.push({data: 'customer.address', render: BooklyDatatables.escapeHtml(), orderable: false});
                    break;
                case 'customer_birthday':
                    columns.push({data: 'customer.birthday', render: BooklyDatatables.escapeHtml()});
                    break;
                case 'staff_name':
                    columns.push({data: 'staff.name', render: BooklyDatatables.escapeHtml()});
                    break;
                case 'start_date':
                    columns.push({
                        data: 'start_date',
                        secondary: row => row.start_time || '',
                    });
                    break;
                case 'created_date':
                    columns.push({
                        data: 'created_date',
                        secondary: row => row.created_time || '',
                    });
                    break;
                case 'service_title':
                    columns.push({
                        data: 'service.title',
                        render: data => BooklyDatatables.escapeHtml(data),
                        secondary: row => (row.service.extras || []).map(e => BooklyDatatables.escapeHtml(e.title)),
                    });
                    break;
                case 'service_duration':
                    columns.push({
                        data: 'service.duration',
                        parent: 'service_title',
                    });
                    break;
                case 'payment':
                    columns.push({
                        data: 'payment_amount',
                        secondary: row => row.payment_gateway || row.payment_status
                            ? [row.payment_gateway, row.payment_status].filter(Boolean).join(' · ')
                            : null,
                        render: function (data, type, row, meta) {
                            if (row.payment_id) {
                                if (readOnly) {
                                    return data;
                                }
                                return '<a type="button" data-action="show-payment" class="text-primary" data-payment_id="' + row.payment_id + '">' + data + '</a>';
                            }
                            return data || '';
                        }
                    });
                    break;
                case 'service_price':
                    columns.push({data: 'service.price', class: 'bookly:text-right'});
                    break;
                case 'attachments':
                    columns.push({
                        data: 'attachment',
                        render: function (data, type, row, meta) {
                            if (data == '1') {
                                if (readOnly) {
                                    return '<i class="fas fa-fw fa-paperclip"></i>';
                                }
                                return '<button type="button" class="btn btn-link p-0" data-action="show-attachments" data-ca-id="' + row.ca_id + '" title="' + L.attachments + '"><i class="fas fa-fw fa-paperclip"></i></button>';
                            }
                            return '';
                        }
                    });
                    break;
                case 'rating':
                    columns.push({
                        data: 'rating',
                        render: (data, type, row) => row.rating != null ? BooklyDatatables.escapeHtml(String(row.rating)) : '',
                        popover: row => row.rating_comment || null,
                        popoverLink: true,
                    });
                    break;
                case 'internal_note':
                case 'locations':
                case 'notes':
                case 'number_of_persons':
                    columns.push({data: column, render: BooklyDatatables.escapeHtml()});
                    break;
                case 'online_meeting':
                    columns.push({
                        data: 'online_meeting_provider',
                        render: function (data, type, row, meta) {
                            switch (data) {
                                case 'zoom':
                                    return '<a class="badge badge-primary" href="https://zoom.us/j/' + BooklyDatatables.escapeHtml(row.online_meeting_start_url) + '" target="_blank"><i class="fas fa-video fa-fw"></i> Zoom <i class="fas fa-external-link-alt fa-fw"></i></a>';
                                case 'google_meet':
                                    return '<a class="badge badge-primary" href="' + BooklyDatatables.escapeHtml(row.online_meeting_start_url) + '" target="_blank"><i class="fas fa-video fa-fw"></i> Google Meet <i class="fas fa-external-link-alt fa-fw"></i></a>';
                                case 'jitsi':
                                    return '<a class="badge badge-primary" href="' + BooklyDatatables.escapeHtml(row.online_meeting_start_url) + '" target="_blank"><i class="fas fa-video fa-fw"></i> Jitsi Meet <i class="fas fa-external-link-alt fa-fw"></i></a>';
                                case 'bbb':
                                    return '<a class="badge badge-primary" href="' + BooklyDatatables.escapeHtml(row.online_meeting_start_url) + '" target="_blank"><i class="fas fa-video fa-fw"></i> BigBlueButton <i class="fas fa-external-link-alt fa-fw"></i></a>';
                                case 'teams':
                                    return '<a class="badge badge-primary" href="' + BooklyDatatables.escapeHtml(row.online_meeting_start_url) + '" target="_blank"><i class="fas fa-video fa-fw"></i> Microsoft Teams <i class="fas fa-external-link-alt fa-fw"></i></a>';
                                default:
                                    return '';
                            }
                        },
                    });
                    break;
                case 'id':
                    columns.push({data: column, render: BooklyDatatables.escapeHtml()});
                    break;
                case 'status':
                    columns.push({
                        data: 'status',
                        badge: row => statusBadgeClass[row.status_code] || defaultBadgeClass,
                    });
                    break;
                default:
                    if (column.startsWith('custom_fields_')) {
                        columns.push({
                            data: column.replace(/_([^_]*)$/, '.$1'),
                            render: BooklyDatatables.escapeHtml(),
                            orderable: false
                        });
                    } else {
                        columns.push({data: column, render: BooklyDatatables.escapeHtml()});
                    }
                    break;
            }
            columns[columns.length - 1].title = L.datatables[table].titles[column] || column;
            columns[columns.length - 1].name = column;
            columns[columns.length - 1].show = show;
            columns[columns.length - 1].searchable = searchableColumns.indexOf(column) !== -1;
        });

        /**
         * Filters — no Staff filter (own appointments only).
         */
        const filterOpts = L.filterOptions;
        const fl = L.filters;
        const searchPlaceholder = fl.searchPlaceholder;

        const filters = [
            {
                type: 'dateRange',
                name: 'date',
                label: fl.date,
                initialValue: dateValue,
                presets: datePresets,
                onChange: (v) => { dateValue = v; },
            },
            {
                type: 'dateRange',
                name: 'created_date',
                label: fl.created,
                initialValue: createdDateValue,
                presets: createdDatePresets,
                onChange: (v) => { createdDateValue = v; },
            },
        ];

        {
            const customerFilter = {
                type: 'select',
                name: 'customer',
                label: fl.customer,
                initialValue: customerValue,
                searchPlaceholder: searchPlaceholder,
                onChange: (v) => { customerValue = v; },
            };
            if (filterOpts.customersRemote) {
                customerFilter.remote = true;
                customerFilter.loadOptions = function (term) {
                    return $.ajax({
                        url: ajaxurl,
                        method: 'POST',
                        dataType: 'json',
                        data: {
                            action: 'bookly_get_customers_list',
                            filter: term || '',
                            page: 1,
                            csrf_token: BooklyL10nGlobal.csrf_token,
                        },
                    }).then(resp => (resp && resp.results ? resp.results : []).map(c => ({
                        value: String(c.id),
                        label: c.text,
                    })));
                };
                customerFilter.resolveOption = function (id) {
                    return $.ajax({
                        url: ajaxurl,
                        method: 'POST',
                        dataType: 'json',
                        data: {
                            action: 'bookly_get_customers_list',
                            ids: [id],
                            csrf_token: BooklyL10nGlobal.csrf_token,
                        },
                    }).then(resp => {
                        const c = resp && resp.results && resp.results[0];
                        return c ? { value: String(c.id), label: c.text } : null;
                    });
                };
            } else {
                customerFilter.options = (filterOpts.customers || []).map(c => ({ value: String(c.id), label: c.full_name }));
            }
            filters.push(customerFilter);
        }

        filters.push({
            type: 'select',
            name: 'service',
            label: fl.service,
            initialValue: serviceValue,
            searchPlaceholder: searchPlaceholder,
            options: [{ value: '0', label: fl.custom }].concat((filterOpts.services || []).map(s => ({ value: String(s.id), label: s.title }))),
            onChange: (v) => { serviceValue = v; },
        });

        if (filterOpts.locations && filterOpts.locations.length > 0) {
            const locOptions = [{ value: 'w/o', label: fl.noLocation }].concat(filterOpts.locations.map(l => ({ value: String(l.id), label: l.name })));
            filters.push({
                type: 'select',
                name: 'location',
                label: fl.location,
                initialValue: locationValue,
                searchPlaceholder: searchPlaceholder,
                options: locOptions,
                onChange: (v) => { locationValue = v; },
            });
        }

        filters.push({
            type: 'checkboxGroup',
            name: 'status',
            label: fl.status,
            initialValue: statusValue,
            options: filterOpts.statuses || [],
            onChange: (v) => { statusValue = v; },
        });

        const options = {
            summary: true,
            // Frontend: no admin Settings/Refresh controls, no column persistence.
            reloadButton: false,
            settingsButton: false,
            // No bulk actions in the cabinet (matches legacy) — drop selection checkboxes.
            noCheckboxes: true,
            ajax: {
                url: ajaxurl,
                method: 'POST',
                data: function () {
                    return {
                        action: 'bookly_staff_cabinet_get_appointments',
                        csrf_token: BooklyL10nGlobal.csrf_token,
                        filter: {
                            date: serializeDate(dateValue),
                            date_label: activeDateLabel(dateValue, datePresets),
                            created_date: serializeDate(createdDateValue),
                            created_date_label: activeDateLabel(createdDateValue, createdDatePresets),
                            customer: customerValue,
                            service: serviceValue,
                            status: statusValue,
                            location: locationValue,
                        },
                    };
                },
            },
            columns: columns,
            tableSettings: Object.assign({}, L.datatables[table], {l10n: Object.assign({}, L.datatables.l10n, {zeroRecords: L.zeroRecords})}),
            filters: filters,
            searchFilter: {
                placeholder: L.search,
                name: 'filter[search]',
            },
        };
        options.datePicker = L.datePicker;

        if (!readOnly) {
            // Row click opens the edit dialog (replaces the legacy "Edit…" button column).
            options.edit = function (row) {
                BooklyAppointmentDialog.showDialog(row.id, null, null, function () { bt.reload(); });
            };
            options.topToolbar = [
                {
                    id: 'bookly-new-appointment',
                    label: L.new_appointment,
                    icon: 'plus',
                    variant: 'default',
                    click: function () {
                        BooklyAppointmentDialog.showDialog(null, null, moment(), function () { bt.reload(); });
                    }
                }
            ];
        }

        const bt = BooklyDatatables.showForm(Options.mount, options);

        if (!readOnly) {
            $('#' + Options.mount).on('click', '[data-action=show-payment]', function () {
                BooklyPaymentDetailsDialog.showDialog({
                    payment_id: $(this).data('payment_id'),
                    done: function () { bt.reload(); }
                });
            });
        }
    };
})(jQuery);
// source --> https://whitecrossbusinesspark.co.uk/wp-content/plugins/bookly-responsive-appointment-booking-tool/backend/modules/calendar/resources/js/event-calendar.min.js?ver=27.9 
/*!
 * EventCalendar v5.2.5
 * https://github.com/vkurko/calendar
 */
var EventCalendar=(function(Qn){"use strict";var Ri=Array.isArray,Ro=Array.prototype.indexOf,jn=Array.from,Ii=Object.defineProperty,pn=Object.getOwnPropertyDescriptor,Io=Object.getOwnPropertyDescriptors,Lo=Object.prototype,Po=Array.prototype,Li=Object.getPrototypeOf,Pi=Object.isExtensible;const Xt=()=>{};function Mo(e){for(var t=0;t<e.length;t++)e[t]()}function Mi(){var e,t,r=new Promise((i,s)=>{e=i,t=s});return{promise:r,resolve:e,reject:t}}function Ao(e,t){if(Array.isArray(e))return e;if(!(Symbol.iterator in e))return Array.from(e);const r=[];for(const i of e)if(r.push(i),r.length===t)break;return r}const Ve=2,$n=4,Pn=8,Er=1<<24,Ot=16,Nt=32,rn=64,Tr=128,pt=512,qe=1024,tt=2048,Ft=4096,lt=8192,Ht=16384,xr=32768,Kt=65536,Ai=1<<17,Oi=1<<18,_n=1<<19,Ni=1<<20,Wt=1<<25,sn=32768,Sr=1<<21,Rr=1<<22,Zt=1<<23,Mn=Symbol("$state"),Oo=Symbol("legacy props"),No=Symbol(""),yn=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"};function Fi(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Fo(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Ho(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Wo(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Uo(e){throw new Error("https://svelte.dev/e/effect_orphan")}function zo(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Vo(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function Bo(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Go(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Yo(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function qo(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Xo(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Ko=1,Zo=2,Hi=4,Jo=8,Qo=16,jo=1,$o=4,ea=8,ta=16,na=1,ra=2,Be=Symbol(),ia="http://www.w3.org/1999/xhtml";function sa(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function Wi(e){return e===this.v}function oa(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Ui(e){return!oa(e,this.v)}let ef=!1,Xe=null;function wn(e){Xe=e}function re(e){return Vi().get(e)}function An(e,t){return Vi().set(e,t),t}function ye(e,t=!1,r){Xe={p:Xe,i:!1,c:null,e:null,s:e,x:null,l:null}}function we(e){var t=Xe,r=t.e;if(r!==null){t.e=null;for(var i of r)ls(i)}return e!==void 0&&(t.x=e),t.i=!0,Xe=t.p,e??{}}function zi(){return!0}function Vi(e){return Xe===null&&Fi(),Xe.c??=new Map(aa(Xe)||void 0)}function aa(e){let t=e.p;for(;t!==null;){const r=t.c;if(r!==null)return r;t=t.p}return null}let on=[];function Bi(){var e=on;on=[],Mo(e)}function an(e){if(on.length===0&&!On){var t=on;queueMicrotask(()=>{t===on&&Bi()})}on.push(e)}function la(){for(;on.length>0;)Bi()}function Gi(e){var t=Ee;if(t===null)return ce.f|=Zt,e;if((t.f&xr)===0){if((t.f&Tr)===0)throw e;t.b.error(e)}else bn(e,t)}function bn(e,t){for(;t!==null;){if((t.f&Tr)!==0)try{t.b.error(e);return}catch(r){e=r}t=t.parent}throw e}const ua=-7169;function We(e,t){e.f=e.f&ua|t}function Ir(e){(e.f&pt)!==0||e.deps===null?We(e,qe):We(e,Ft)}function Yi(e){if(e!==null)for(const t of e)(t.f&Ve)===0||(t.f&sn)===0||(t.f^=sn,Yi(t.deps))}function qi(e,t,r){(e.f&tt)!==0?t.add(e):(e.f&Ft)!==0&&r.add(e),Yi(e.deps),We(e,qe)}const er=new Set;let Pe=null,kt=null,_t=[],tr=null,Lr=!1,On=!1;class St{committed=!1;current=new Map;previous=new Map;#e=new Set;#n=new Set;#t=0;#r=0;#s=null;#i=new Set;#o=new Set;skipped_effects=new Set;is_fork=!1;is_deferred(){return this.is_fork||this.#r>0}process(t){_t=[],this.apply();var r=[],i=[];for(const s of t)this.#a(s,r,i);this.is_fork||this.#u(),this.is_deferred()?(this.#l(i),this.#l(r)):(Pe=null,Ki(i),Ki(r),this.#s?.resolve()),kt=null}#a(t,r,i){t.f^=qe;for(var s=t.first,o=null;s!==null;){var l=s.f,u=(l&(Nt|rn))!==0,d=u&&(l&qe)!==0,f=d||(l&lt)!==0||this.skipped_effects.has(s);if(!f&&s.fn!==null){u?s.f^=qe:o!==null&&(l&($n|Pn|Er))!==0?o.b.defer_effect(s):(l&$n)!==0?r.push(s):Wn(s)&&((l&Ot)!==0&&this.#i.add(s),Un(s));var c=s.first;if(c!==null){s=c;continue}}var g=s.parent;for(s=s.next;s===null&&g!==null;)g===o&&(o=null),s=g.next,g=g.parent}}#l(t){for(var r=0;r<t.length;r+=1)qi(t[r],this.#i,this.#o)}capture(t,r){r!==Be&&!this.previous.has(t)&&this.previous.set(t,r),(t.f&Zt)===0&&(this.current.set(t,t.v),kt?.set(t,t.v))}activate(){Pe=this,this.apply()}deactivate(){Pe===this&&(Pe=null,kt=null)}flush(){if(this.activate(),_t.length>0){if(Xi(),Pe!==null&&Pe!==this)return}else this.#t===0&&this.process([]);this.deactivate()}discard(){for(const t of this.#n)t(this);this.#n.clear()}#u(){if(this.#r===0){for(const t of this.#e)t();this.#e.clear()}this.#t===0&&this.#d()}#d(){if(er.size>1){this.previous.clear();var t=kt,r=!0;for(const s of er){if(s===this){r=!1;continue}const o=[];for(const[u,d]of this.current){if(s.current.has(u))if(r&&d!==s.current.get(u))s.current.set(u,d);else continue;o.push(u)}if(o.length===0)continue;const l=[...s.current.keys()].filter(u=>!this.current.has(u));if(l.length>0){var i=_t;_t=[];const u=new Set,d=new Map;for(const f of o)Zi(f,l,u,d);if(_t.length>0){Pe=s,s.apply();for(const f of _t)s.#a(f,[],[]);s.deactivate()}_t=i}}Pe=null,kt=t}this.committed=!0,er.delete(this)}increment(t){this.#t+=1,t&&(this.#r+=1)}decrement(t){this.#t-=1,t&&(this.#r-=1),this.revive()}revive(){for(const t of this.#i)this.#o.delete(t),We(t,tt),zt(t);for(const t of this.#o)We(t,Ft),zt(t);this.flush()}oncommit(t){this.#e.add(t)}ondiscard(t){this.#n.add(t)}settled(){return(this.#s??=Mi()).promise}static ensure(){if(Pe===null){const t=Pe=new St;er.add(Pe),On||St.enqueue(()=>{Pe===t&&t.flush()})}return Pe}static enqueue(t){an(t)}apply(){}}function da(e){var t=On;On=!0;try{for(var r;;){if(la(),_t.length===0&&(Pe?.flush(),_t.length===0))return tr=null,r;Xi()}}finally{On=t}}function Xi(){var e=dn;Lr=!0;var t=null;try{var r=0;for(sr(!0);_t.length>0;){var i=St.ensure();if(r++>1e3){var s,o;fa()}i.process(_t),Jt.clear()}}finally{Lr=!1,sr(e),tr=null}}function fa(){try{zo()}catch(e){bn(e,tr)}}let Ut=null;function Ki(e){var t=e.length;if(t!==0){for(var r=0;r<t;){var i=e[r++];if((i.f&(Ht|lt))===0&&Wn(i)&&(Ut=new Set,Un(i),i.deps===null&&i.first===null&&i.nodes===null&&(i.teardown===null&&i.ac===null?cs(i):i.fn=null),Ut?.size>0)){Jt.clear();for(const s of Ut){if((s.f&(Ht|lt))!==0)continue;const o=[s];let l=s.parent;for(;l!==null;)Ut.has(l)&&(Ut.delete(l),o.push(l)),l=l.parent;for(let u=o.length-1;u>=0;u--){const d=o[u];(d.f&(Ht|lt))===0&&Un(d)}}Ut.clear()}}Ut=null}}function Zi(e,t,r,i){if(!r.has(e)&&(r.add(e),e.reactions!==null))for(const s of e.reactions){const o=s.f;(o&Ve)!==0?Zi(s,t,r,i):(o&(Rr|Ot))!==0&&(o&tt)===0&&Ji(s,t,i)&&(We(s,tt),zt(s))}}function Ji(e,t,r){const i=r.get(e);if(i!==void 0)return i;if(e.deps!==null)for(const s of e.deps){if(t.includes(s))return!0;if((s.f&Ve)!==0&&Ji(s,t,r))return r.set(s,!0),!0}return r.set(e,!1),!1}function zt(e){for(var t=tr=e;t.parent!==null;){t=t.parent;var r=t.f;if(Lr&&t===Ee&&(r&Ot)!==0&&(r&Oi)===0)return;if((r&(rn|Nt))!==0){if((r&qe)===0)return;t.f^=qe}}_t.push(t)}function ca(e){let t=0,r=Qt(0),i;return()=>{Or()&&(n(r),us(()=>(t===0&&(i=ee(()=>e(()=>Rt(r)))),t+=1,()=>{an(()=>{t-=1,t===0&&(i?.(),i=void 0,Rt(r))})})))}}var ha=Kt|_n|Tr;function va(e,t,r){new ga(e,t,r)}class ga{parent;is_pending=!1;#e;#n=null;#t;#r;#s;#i=null;#o=null;#a=null;#l=null;#u=null;#d=0;#f=0;#h=!1;#v=new Set;#g=new Set;#c=null;#y=ca(()=>(this.#c=Qt(this.#d),()=>{this.#c=null}));constructor(t,r,i){this.#e=t,this.#t=r,this.#r=i,this.parent=Ee.b,this.is_pending=!!this.#t.pending,this.#s=Fn(()=>{Ee.b=this;{var s=this.#_();try{this.#i=ut(()=>i(s))}catch(o){this.error(o)}this.#f>0?this.#p():this.is_pending=!1}return()=>{this.#u?.remove()}},ha)}#b(){try{this.#i=ut(()=>this.#r(this.#e))}catch(t){this.error(t)}}#k(){const t=this.#t.pending;t&&(this.#o=ut(()=>t(this.#e)),St.enqueue(()=>{var r=this.#_();this.#i=this.#m(()=>(St.ensure(),ut(()=>this.#r(r)))),this.#f>0?this.#p():(un(this.#o,()=>{this.#o=null}),this.is_pending=!1)}))}#_(){var t=this.#e;return this.is_pending&&(this.#u=Vt(),this.#e.before(this.#u),t=this.#u),t}defer_effect(t){qi(t,this.#v,this.#g)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#t.pending}#m(t){var r=Ee,i=ce,s=Xe;It(this.#s),rt(this.#s),wn(this.#s.ctx);try{return t()}catch(o){return Gi(o),null}finally{It(r),rt(i),wn(s)}}#p(){const t=this.#t.pending;this.#i!==null&&(this.#l=document.createDocumentFragment(),this.#l.append(this.#u),gs(this.#i,this.#l)),this.#o===null&&(this.#o=ut(()=>t(this.#e)))}#w(t){if(!this.has_pending_snippet()){this.parent&&this.parent.#w(t);return}if(this.#f+=t,this.#f===0){this.is_pending=!1;for(const r of this.#v)We(r,tt),zt(r);for(const r of this.#g)We(r,Ft),zt(r);this.#v.clear(),this.#g.clear(),this.#o&&un(this.#o,()=>{this.#o=null}),this.#l&&(this.#e.before(this.#l),this.#l=null)}}update_pending_count(t){this.#w(t),this.#d+=t,this.#c&&kn(this.#c,this.#d)}get_effect_pending(){return this.#y(),n(this.#c)}error(t){var r=this.#t.onerror;let i=this.#t.failed;if(this.#h||!r&&!i)throw t;this.#i&&($e(this.#i),this.#i=null),this.#o&&($e(this.#o),this.#o=null),this.#a&&($e(this.#a),this.#a=null);var s=!1,o=!1;const l=()=>{if(s){sa();return}s=!0,o&&Xo(),St.ensure(),this.#d=0,this.#a!==null&&un(this.#a,()=>{this.#a=null}),this.is_pending=this.has_pending_snippet(),this.#i=this.#m(()=>(this.#h=!1,ut(()=>this.#r(this.#e)))),this.#f>0?this.#p():this.is_pending=!1};var u=ce;try{rt(null),o=!0,r?.(t,l),o=!1}catch(d){bn(d,this.#s&&this.#s.parent)}finally{rt(u)}i&&an(()=>{this.#a=this.#m(()=>{St.ensure(),this.#h=!0;try{return ut(()=>{i(this.#e,()=>t,()=>l)})}catch(d){return bn(d,this.#s.parent),null}finally{this.#h=!1}})})}}function ma(e,t,r,i){const s=rr;if(r.length===0&&e.length===0){i(t.map(s));return}var o=Pe,l=Ee,u=pa();function d(){Promise.all(r.map(f=>_a(f))).then(f=>{u();try{i([...t.map(s),...f])}catch(c){(l.f&Ht)===0&&bn(c,l)}o?.deactivate(),nr()}).catch(f=>{bn(f,l)})}e.length>0?Promise.all(e).then(()=>{u();try{return d()}finally{o?.deactivate(),nr()}}):d()}function pa(){var e=Ee,t=ce,r=Xe,i=Pe;return function(o=!0){It(e),rt(t),wn(r),o&&i?.activate()}}function nr(){It(null),rt(null),wn(null)}function rr(e){var t=Ve|tt,r=ce!==null&&(ce.f&Ve)!==0?ce:null;return Ee!==null&&(Ee.f|=_n),{ctx:Xe,deps:null,effects:null,equals:Wi,f:t,fn:e,reactions:null,rv:0,v:Be,wv:0,parent:r??Ee,ac:null}}function _a(e,t,r){let i=Ee;i===null&&Fo();var s=i.b,o=void 0,l=Qt(Be),u=!ce,d=new Map;return Ta(()=>{var f=Mi();o=f.promise;try{Promise.resolve(e()).then(f.resolve,f.reject).then(()=>{c===Pe&&c.committed&&c.deactivate(),nr()})}catch(v){f.reject(v),nr()}var c=Pe;if(u){var g=s.is_rendered();s.update_pending_count(1),c.increment(g),d.get(c)?.reject(yn),d.delete(c),d.set(c,f)}const h=(v,y=void 0)=>{if(c.activate(),y)y!==yn&&(l.f|=Zt,kn(l,y));else{(l.f&Zt)!==0&&(l.f^=Zt),kn(l,v);for(const[p,m]of d){if(d.delete(p),p===c)break;m.reject(yn)}}u&&(s.update_pending_count(-1),c.decrement(g))};f.promise.then(h,v=>h(null,v||"unknown"))}),Nr(()=>{for(const f of d.values())f.reject(yn)}),new Promise(f=>{function c(g){function h(){g===o?f(l):c(o)}g.then(h,h)}c(o)})}function a(e){const t=rr(e);return ps(t),t}function Qi(e){const t=rr(e);return t.equals=Ui,t}function ji(e){var t=e.effects;if(t!==null){e.effects=null;for(var r=0;r<t.length;r+=1)$e(t[r])}}function ya(e){for(var t=e.parent;t!==null;){if((t.f&Ve)===0)return(t.f&Ht)===0?t:null;t=t.parent}return null}function Pr(e){var t,r=Ee;It(ya(e));try{e.f&=~sn,ji(e),t=ks(e)}finally{It(r)}return t}function $i(e){var t=Pr(e);if(!e.equals(t)&&(e.wv=ws(),(!Pe?.is_fork||e.deps===null)&&(e.v=t,e.deps===null))){We(e,qe);return}jt||(kt!==null?(Or()||Pe?.is_fork)&&kt.set(e,t):Ir(e))}let Mr=new Set;const Jt=new Map;let es=!1;function Qt(e,t){var r={f:0,v:e,reactions:null,equals:Wi,rv:0,wv:0};return r}function Z(e,t){const r=Qt(e);return ps(r),r}function ts(e,t=!1,r=!0){const i=Qt(e);return t||(i.equals=Ui),i}function b(e,t,r=!1){ce!==null&&(!Et||(ce.f&Ai)!==0)&&zi()&&(ce.f&(Ve|Ot|Rr|Ai))!==0&&!Bt?.includes(e)&&qo();let i=r?nt(t):t;return kn(e,i)}function kn(e,t){if(!e.equals(t)){var r=e.v;jt?Jt.set(e,t):Jt.set(e,r),e.v=t;var i=St.ensure();if(i.capture(e,r),(e.f&Ve)!==0){const s=e;(e.f&tt)!==0&&Pr(s),Ir(s)}e.wv=ws(),ns(e,tt),Ee!==null&&(Ee.f&qe)!==0&&(Ee.f&(Nt|rn))===0&&(yt===null?Ia([e]):yt.push(e)),!i.is_fork&&Mr.size>0&&!es&&wa()}return t}function wa(){es=!1;var e=dn;sr(!0);const t=Array.from(Mr);try{for(const r of t)(r.f&qe)!==0&&We(r,Ft),Wn(r)&&Un(r)}finally{sr(e)}Mr.clear()}function Rt(e){b(e,e.v+1)}function ns(e,t){var r=e.reactions;if(r!==null)for(var i=r.length,s=0;s<i;s++){var o=r[s],l=o.f,u=(l&tt)===0;if(u&&We(o,t),(l&Ve)!==0){var d=o;kt?.delete(d),(l&sn)===0&&(l&pt&&(o.f|=sn),ns(d,Ft))}else u&&((l&Ot)!==0&&Ut!==null&&Ut.add(o),zt(o))}}function nt(e){if(typeof e!="object"||e===null||Mn in e)return e;const t=Li(e);if(t!==Lo&&t!==Po)return e;var r=new Map,i=Ri(e),s=Z(0),o=Gt,l=u=>{if(Gt===o)return u();var d=ce,f=Gt;rt(null),ys(o);var c=u();return rt(d),ys(f),c};return i&&r.set("length",Z(e.length)),new Proxy(e,{defineProperty(u,d,f){(!("value"in f)||f.configurable===!1||f.enumerable===!1||f.writable===!1)&&Go();var c=r.get(d);return c===void 0?c=l(()=>{var g=Z(f.value);return r.set(d,g),g}):b(c,f.value,!0),!0},deleteProperty(u,d){var f=r.get(d);if(f===void 0){if(d in u){const c=l(()=>Z(Be));r.set(d,c),Rt(s)}}else b(f,Be),Rt(s);return!0},get(u,d,f){if(d===Mn)return e;var c=r.get(d),g=d in u;if(c===void 0&&(!g||pn(u,d)?.writable)&&(c=l(()=>{var v=nt(g?u[d]:Be),y=Z(v);return y}),r.set(d,c)),c!==void 0){var h=n(c);return h===Be?void 0:h}return Reflect.get(u,d,f)},getOwnPropertyDescriptor(u,d){var f=Reflect.getOwnPropertyDescriptor(u,d);if(f&&"value"in f){var c=r.get(d);c&&(f.value=n(c))}else if(f===void 0){var g=r.get(d),h=g?.v;if(g!==void 0&&h!==Be)return{enumerable:!0,configurable:!0,value:h,writable:!0}}return f},has(u,d){if(d===Mn)return!0;var f=r.get(d),c=f!==void 0&&f.v!==Be||Reflect.has(u,d);if(f!==void 0||Ee!==null&&(!c||pn(u,d)?.writable)){f===void 0&&(f=l(()=>{var h=c?nt(u[d]):Be,v=Z(h);return v}),r.set(d,f));var g=n(f);if(g===Be)return!1}return c},set(u,d,f,c){var g=r.get(d),h=d in u;if(i&&d==="length")for(var v=f;v<g.v;v+=1){var y=r.get(v+"");y!==void 0?b(y,Be):v in u&&(y=l(()=>Z(Be)),r.set(v+"",y))}if(g===void 0)(!h||pn(u,d)?.writable)&&(g=l(()=>Z(void 0)),b(g,nt(f)),r.set(d,g));else{h=g.v!==Be;var p=l(()=>nt(f));b(g,p)}var m=Reflect.getOwnPropertyDescriptor(u,d);if(m?.set&&m.set.call(c,f),!h){if(i&&typeof d=="string"){var _=r.get("length"),k=Number(d);Number.isInteger(k)&&k>=_.v&&b(_,k+1)}Rt(s)}return!0},ownKeys(u){n(s);var d=Reflect.ownKeys(u).filter(g=>{var h=r.get(g);return h===void 0||h.v!==Be});for(var[f,c]of r)c.v!==Be&&!(f in u)&&d.push(f);return d},setPrototypeOf(){Yo()}})}var Ct,rs,is,ss;function ba(){if(Ct===void 0){Ct=window,rs=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,r=Text.prototype;is=pn(t,"firstChild").get,ss=pn(t,"nextSibling").get,Pi(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Pi(r)&&(r.__t=void 0)}}function Vt(e=""){return document.createTextNode(e)}function ir(e){return is.call(e)}function Nn(e){return ss.call(e)}function fe(e,t){return ir(e)}function J(e,t=!1){{var r=ir(e);return r instanceof Comment&&r.data===""?Nn(r):r}}function ie(e,t=1,r=!1){let i=e;for(;t--;)i=Nn(i);return i}function ka(e){e.textContent=""}function os(){return!1}function Ca(e,t){{const r=document.body;e.autofocus=!0,an(()=>{document.activeElement===r&&e.focus()})}}function Ar(e){var t=ce,r=Ee;rt(null),It(null);try{return e()}finally{rt(t),It(r)}}function as(e){Ee===null&&(ce===null&&Uo(),Wo()),jt&&Ho()}function Da(e,t){var r=t.last;r===null?t.last=t.first=e:(r.next=e,e.prev=r,t.last=e)}function Dt(e,t,r){var i=Ee;i!==null&&(i.f&lt)!==0&&(e|=lt);var s={ctx:Xe,deps:null,nodes:null,f:e|tt|pt,first:null,fn:t,last:null,next:null,parent:i,b:i&&i.b,prev:null,teardown:null,wv:0,ac:null};if(r)try{Un(s),s.f|=xr}catch(u){throw $e(s),u}else t!==null&&zt(s);var o=s;if(r&&o.deps===null&&o.teardown===null&&o.nodes===null&&o.first===o.last&&(o.f&_n)===0&&(o=o.first,(e&Ot)!==0&&(e&Kt)!==0&&o!==null&&(o.f|=Kt)),o!==null&&(o.parent=i,i!==null&&Da(o,i),ce!==null&&(ce.f&Ve)!==0&&(e&rn)===0)){var l=ce;(l.effects??=[]).push(o)}return s}function Or(){return ce!==null&&!Et}function Nr(e){const t=Dt(Pn,null,!1);return We(t,qe),t.teardown=e,t}function Ke(e){as();var t=Ee.f,r=!ce&&(t&Nt)!==0&&(t&xr)===0;if(r){var i=Xe;(i.e??=[]).push(e)}else return ls(e)}function ls(e){return Dt($n|Ni,e,!1)}function ln(e){return as(),Dt(Pn|Ni,e,!0)}function Ea(e){St.ensure();const t=Dt(rn|_n,e,!0);return(r={})=>new Promise(i=>{r.outro?un(t,()=>{$e(t),i(void 0)}):($e(t),i(void 0))})}function Fr(e){return Dt($n,e,!1)}function Ta(e){return Dt(Rr|_n,e,!0)}function us(e,t=0){return Dt(Pn|t,e,!0)}function ae(e,t=[],r=[],i=[]){ma(i,t,r,s=>{Dt(Pn,()=>e(...s.map(n)),!0)})}function Fn(e,t=0){var r=Dt(Ot|t,e,!0);return r}function xa(e,t=0){var r=Dt(Er|t,e,!0);return r}function ut(e){return Dt(Nt|_n,e,!0)}function ds(e){var t=e.teardown;if(t!==null){const r=jt,i=ce;ms(!0),rt(null);try{t.call(null)}finally{ms(r),rt(i)}}}function fs(e,t=!1){var r=e.first;for(e.first=e.last=null;r!==null;){const s=r.ac;s!==null&&Ar(()=>{s.abort(yn)});var i=r.next;(r.f&rn)!==0?r.parent=null:$e(r,t),r=i}}function Sa(e){for(var t=e.first;t!==null;){var r=t.next;(t.f&Nt)===0&&$e(t),t=r}}function $e(e,t=!0){var r=!1;(t||(e.f&Oi)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Ra(e.nodes.start,e.nodes.end),r=!0),fs(e,t&&!r),or(e,0),We(e,Ht);var i=e.nodes&&e.nodes.t;if(i!==null)for(const o of i)o.stop();ds(e);var s=e.parent;s!==null&&s.first!==null&&cs(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function Ra(e,t){for(;e!==null;){var r=e===t?null:Nn(e);e.remove(),e=r}}function cs(e){var t=e.parent,r=e.prev,i=e.next;r!==null&&(r.next=i),i!==null&&(i.prev=r),t!==null&&(t.first===e&&(t.first=i),t.last===e&&(t.last=r))}function un(e,t,r=!0){var i=[];hs(e,i,!0);var s=()=>{r&&$e(e),t&&t()},o=i.length;if(o>0){var l=()=>--o||s();for(var u of i)u.out(l)}else s()}function hs(e,t,r){if((e.f&lt)===0){e.f^=lt;var i=e.nodes&&e.nodes.t;if(i!==null)for(const u of i)(u.is_global||r)&&t.push(u);for(var s=e.first;s!==null;){var o=s.next,l=(s.f&Kt)!==0||(s.f&Nt)!==0&&(e.f&Ot)!==0;hs(s,t,l?r:!1),s=o}}}function Hr(e){vs(e,!0)}function vs(e,t){if((e.f&lt)!==0){e.f^=lt,(e.f&qe)===0&&(We(e,tt),zt(e));for(var r=e.first;r!==null;){var i=r.next,s=(r.f&Kt)!==0||(r.f&Nt)!==0;vs(r,s?t:!1),r=i}var o=e.nodes&&e.nodes.t;if(o!==null)for(const l of o)(l.is_global||t)&&l.in()}}function gs(e,t){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end;r!==null;){var s=r===i?null:Nn(r);t.append(r),r=s}}let dn=!1;function sr(e){dn=e}let jt=!1;function ms(e){jt=e}let ce=null,Et=!1;function rt(e){ce=e}let Ee=null;function It(e){Ee=e}let Bt=null;function ps(e){ce!==null&&(Bt===null?Bt=[e]:Bt.push(e))}let et=null,dt=0,yt=null;function Ia(e){yt=e}let _s=1,Hn=0,Gt=Hn;function ys(e){Gt=e}function ws(){return++_s}function Wn(e){var t=e.f;if((t&tt)!==0)return!0;if(t&Ve&&(e.f&=~sn),(t&Ft)!==0){for(var r=e.deps,i=r.length,s=0;s<i;s++){var o=r[s];if(Wn(o)&&$i(o),o.wv>e.wv)return!0}(t&pt)!==0&&kt===null&&We(e,qe)}return!1}function bs(e,t,r=!0){var i=e.reactions;if(i!==null&&!Bt?.includes(e))for(var s=0;s<i.length;s++){var o=i[s];(o.f&Ve)!==0?bs(o,t,!1):t===o&&(r?We(o,tt):(o.f&qe)!==0&&We(o,Ft),zt(o))}}function ks(e){var t=et,r=dt,i=yt,s=ce,o=Bt,l=Xe,u=Et,d=Gt,f=e.f;et=null,dt=0,yt=null,ce=(f&(Nt|rn))===0?e:null,Bt=null,wn(e.ctx),Et=!1,Gt=++Hn,e.ac!==null&&(Ar(()=>{e.ac.abort(yn)}),e.ac=null);try{e.f|=Sr;var c=e.fn,g=c(),h=e.deps;if(et!==null){var v;if(or(e,dt),h!==null&&dt>0)for(h.length=dt+et.length,v=0;v<et.length;v++)h[dt+v]=et[v];else e.deps=h=et;if(Or()&&(e.f&pt)!==0)for(v=dt;v<h.length;v++)(h[v].reactions??=[]).push(e)}else h!==null&&dt<h.length&&(or(e,dt),h.length=dt);if(zi()&&yt!==null&&!Et&&h!==null&&(e.f&(Ve|Ft|tt))===0)for(v=0;v<yt.length;v++)bs(yt[v],e);return s!==null&&s!==e&&(Hn++,yt!==null&&(i===null?i=yt:i.push(...yt))),(e.f&Zt)!==0&&(e.f^=Zt),g}catch(y){return Gi(y)}finally{e.f^=Sr,et=t,dt=r,yt=i,ce=s,Bt=o,wn(l),Et=u,Gt=d}}function La(e,t){let r=t.reactions;if(r!==null){var i=Ro.call(r,e);if(i!==-1){var s=r.length-1;s===0?r=t.reactions=null:(r[i]=r[s],r.pop())}}if(r===null&&(t.f&Ve)!==0&&(et===null||!et.includes(t))){var o=t;(o.f&pt)!==0&&(o.f^=pt,o.f&=~sn),Ir(o),ji(o),or(o,0)}}function or(e,t){var r=e.deps;if(r!==null)for(var i=t;i<r.length;i++)La(e,r[i])}function Un(e){var t=e.f;if((t&Ht)===0){We(e,qe);var r=Ee,i=dn;Ee=e,dn=!0;try{(t&(Ot|Er))!==0?Sa(e):fs(e),ds(e);var s=ks(e);e.teardown=typeof s=="function"?s:null,e.wv=_s;var o}finally{dn=i,Ee=r}}}async function fn(){await Promise.resolve(),da()}function n(e){var t=e.f,r=(t&Ve)!==0;if(ce!==null&&!Et){var i=Ee!==null&&(Ee.f&Ht)!==0;if(!i&&!Bt?.includes(e)){var s=ce.deps;if((ce.f&Sr)!==0)e.rv<Hn&&(e.rv=Hn,et===null&&s!==null&&s[dt]===e?dt++:et===null?et=[e]:et.includes(e)||et.push(e));else{(ce.deps??=[]).push(e);var o=e.reactions;o===null?e.reactions=[ce]:o.includes(ce)||o.push(ce)}}}if(jt&&Jt.has(e))return Jt.get(e);if(r){var l=e;if(jt){var u=l.v;return((l.f&qe)===0&&l.reactions!==null||Ds(l))&&(u=Pr(l)),Jt.set(l,u),u}var d=(l.f&pt)===0&&!Et&&ce!==null&&(dn||(ce.f&pt)!==0),f=l.deps===null;Wn(l)&&(d&&(l.f|=pt),$i(l)),d&&!f&&Cs(l)}if(kt?.has(e))return kt.get(e);if((e.f&Zt)!==0)throw e.v;return e.v}function Cs(e){if(e.deps!==null){e.f|=pt;for(const t of e.deps)(t.reactions??=[]).push(e),(t.f&Ve)!==0&&(t.f&pt)===0&&Cs(t)}}function Ds(e){if(e.v===Be)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Jt.has(t)||(t.f&Ve)!==0&&Ds(t))return!0;return!1}function ee(e){var t=Et;try{return Et=!0,e()}finally{Et=t}}const Pa=["touchstart","touchmove"];function Ma(e){return Pa.includes(e)}const Es=new Set,Wr=new Set;function Aa(e,t,r,i={}){function s(o){if(i.capture||zn.call(t,o),!o.cancelBubble)return Ar(()=>r?.call(this,o))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?an(()=>{t.addEventListener(e,s,i)}):t.addEventListener(e,s,i),s}function ft(e,t,r,i,s){var o={capture:i,passive:s},l=Aa(e,t,r,o);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Nr(()=>{t.removeEventListener(e,l,o)})}function $t(e){for(var t=0;t<e.length;t++)Es.add(e[t]);for(var r of Wr)r(e)}let Ts=null;function zn(e){var t=this,r=t.ownerDocument,i=e.type,s=e.composedPath?.()||[],o=s[0]||e.target;Ts=e;var l=0,u=Ts===e&&e.__root;if(u){var d=s.indexOf(u);if(d!==-1&&(t===document||t===window)){e.__root=t;return}var f=s.indexOf(t);if(f===-1)return;d<=f&&(l=d)}if(o=s[l]||e.target,o!==t){Ii(e,"currentTarget",{configurable:!0,get(){return o||r}});var c=ce,g=Ee;rt(null),It(null);try{for(var h,v=[];o!==null;){var y=o.assignedSlot||o.parentNode||o.host||null;try{var p=o["__"+i];p!=null&&(!o.disabled||e.target===o)&&p.call(o,e)}catch(m){h?v.push(m):h=m}if(e.cancelBubble||y===t||y===null)break;o=y}if(h){for(let m of v)queueMicrotask(()=>{throw m});throw h}}finally{e.__root=t,delete e.currentTarget,rt(c),It(g)}}}function Oa(e){var t=document.createElement("template");return t.innerHTML=e.replaceAll("<!>","<!---->"),t.content}function ar(e,t){var r=Ee;r.nodes===null&&(r.nodes={start:e,end:t,a:null,t:null})}function j(e,t){var r=(t&na)!==0,i=(t&ra)!==0,s,o=!e.startsWith("<!>");return()=>{s===void 0&&(s=Oa(o?e:"<!>"+e),r||(s=ir(s)));var l=i||rs?document.importNode(s,!0):s.cloneNode(!0);if(r){var u=ir(l),d=l.lastChild;ar(u,d)}else ar(l,l);return l}}function xs(e=""){{var t=Vt(e+"");return ar(t,t),t}}function le(){var e=document.createDocumentFragment(),t=document.createComment(""),r=Vt();return e.append(t,r),ar(t,r),e}function x(e,t){e!==null&&e.before(t)}function Ss(e,t){var r=t==null?"":typeof t=="object"?t+"":t;r!==(e.__t??=e.nodeValue)&&(e.__t=r,e.nodeValue=r+"")}function Na(e,t){return Fa(e,t)}const Cn=new Map;function Fa(e,{target:t,anchor:r,props:i={},events:s,context:o,intro:l=!0}){ba();var u=new Set,d=g=>{for(var h=0;h<g.length;h++){var v=g[h];if(!u.has(v)){u.add(v);var y=Ma(v);t.addEventListener(v,zn,{passive:y});var p=Cn.get(v);p===void 0?(document.addEventListener(v,zn,{passive:y}),Cn.set(v,1)):Cn.set(v,p+1)}}};d(jn(Es)),Wr.add(d);var f=void 0,c=Ea(()=>{var g=r??t.appendChild(Vt());return va(g,{pending:()=>{}},h=>{if(o){ye({});var v=Xe;v.c=o}s&&(i.$$events=s),f=e(h,i)||{},o&&we()}),()=>{for(var h of u){t.removeEventListener(h,zn);var v=Cn.get(h);--v===0?(document.removeEventListener(h,zn),Cn.delete(h)):Cn.set(h,v)}Wr.delete(d),g!==r&&g.parentNode?.removeChild(g)}});return Ur.set(f,c),f}let Ur=new WeakMap;function Ha(e,t){const r=Ur.get(e);return r?(Ur.delete(e),r(t)):Promise.resolve()}class zr{anchor;#e=new Map;#n=new Map;#t=new Map;#r=new Set;#s=!0;constructor(t,r=!0){this.anchor=t,this.#s=r}#i=()=>{var t=Pe;if(this.#e.has(t)){var r=this.#e.get(t),i=this.#n.get(r);if(i)Hr(i),this.#r.delete(r);else{var s=this.#t.get(r);s&&(this.#n.set(r,s.effect),this.#t.delete(r),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),i=s.effect)}for(const[o,l]of this.#e){if(this.#e.delete(o),o===t)break;const u=this.#t.get(l);u&&($e(u.effect),this.#t.delete(l))}for(const[o,l]of this.#n){if(o===r||this.#r.has(o))continue;const u=()=>{if(Array.from(this.#e.values()).includes(o)){var f=document.createDocumentFragment();gs(l,f),f.append(Vt()),this.#t.set(o,{effect:l,fragment:f})}else $e(l);this.#r.delete(o),this.#n.delete(o)};this.#s||!i?(this.#r.add(o),un(l,u,!1)):u()}}};#o=t=>{this.#e.delete(t);const r=Array.from(this.#e.values());for(const[i,s]of this.#t)r.includes(i)||($e(s.effect),this.#t.delete(i))};ensure(t,r){var i=Pe,s=os();if(r&&!this.#n.has(t)&&!this.#t.has(t))if(s){var o=document.createDocumentFragment(),l=Vt();o.append(l),this.#t.set(t,{effect:ut(()=>r(l)),fragment:o})}else this.#n.set(t,ut(()=>r(this.anchor)));if(this.#e.set(i,t),s){for(const[u,d]of this.#n)u===t?i.skipped_effects.delete(d):i.skipped_effects.add(d);for(const[u,d]of this.#t)u===t?i.skipped_effects.delete(d.effect):i.skipped_effects.add(d.effect);i.oncommit(this.#i),i.ondiscard(this.#o)}else this.#i()}}function de(e,t,r=!1){var i=new zr(e),s=r?Kt:0;function o(l,u){i.ensure(l,u)}Fn(()=>{var l=!1;t((u,d=!0)=>{l=!0,o(d,u)}),l||o(!1,null)},s)}function Ce(e,t){return t}function Wa(e,t,r){for(var i=[],s=t.length,o,l=t.length,u=0;u<s;u++){let g=t[u];un(g,()=>{if(o){if(o.pending.delete(g),o.done.add(g),o.pending.size===0){var h=e.outrogroups;Vr(jn(o.done)),h.delete(o),h.size===0&&(e.outrogroups=null)}}else l-=1},!1)}if(l===0){var d=i.length===0&&r!==null;if(d){var f=r,c=f.parentNode;ka(c),c.append(f),e.items.clear()}Vr(t,!d)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function Vr(e,t=!0){for(var r=0;r<e.length;r++)$e(e[r],t)}var Rs;function ue(e,t,r,i,s,o=null){var l=e,u=new Map,d=(t&Hi)!==0;if(d){var f=e;l=f.appendChild(Vt())}var c=null,g=Qi(()=>{var _=r();return Ri(_)?_:_==null?[]:jn(_)}),h,v=!0;function y(){m.fallback=c,Ua(m,h,l,t,i),c!==null&&(h.length===0?(c.f&Wt)===0?Hr(c):(c.f^=Wt,Vn(c,null,l)):un(c,()=>{c=null}))}var p=Fn(()=>{h=n(g);for(var _=h.length,k=new Set,S=Pe,C=os(),D=0;D<_;D+=1){var w=h[D],E=i(w,D),A=v?null:u.get(E);A?(A.v&&kn(A.v,w),A.i&&kn(A.i,D),C&&S.skipped_effects.delete(A.e)):(A=za(u,v?l:Rs??=Vt(),w,E,D,s,t,r),v||(A.e.f|=Wt),u.set(E,A)),k.add(E)}if(_===0&&o&&!c&&(v?c=ut(()=>o(l)):(c=ut(()=>o(Rs??=Vt())),c.f|=Wt)),!v)if(C){for(const[Y,R]of u)k.has(Y)||S.skipped_effects.add(R.e);S.oncommit(y),S.ondiscard(()=>{})}else y();n(g)}),m={effect:p,items:u,outrogroups:null,fallback:c};v=!1}function Ua(e,t,r,i,s){var o=(i&Jo)!==0,l=t.length,u=e.items,d=e.effect.first,f,c=null,g,h=[],v=[],y,p,m,_;if(o)for(_=0;_<l;_+=1)y=t[_],p=s(y,_),m=u.get(p).e,(m.f&Wt)===0&&(m.nodes?.a?.measure(),(g??=new Set).add(m));for(_=0;_<l;_+=1){if(y=t[_],p=s(y,_),m=u.get(p).e,e.outrogroups!==null)for(const R of e.outrogroups)R.pending.delete(m),R.done.delete(m);if((m.f&Wt)!==0)if(m.f^=Wt,m===d)Vn(m,null,r);else{var k=c?c.next:d;m===e.effect.last&&(e.effect.last=m.prev),m.prev&&(m.prev.next=m.next),m.next&&(m.next.prev=m.prev),en(e,c,m),en(e,m,k),Vn(m,k,r),c=m,h=[],v=[],d=c.next;continue}if((m.f&lt)!==0&&(Hr(m),o&&(m.nodes?.a?.unfix(),(g??=new Set).delete(m))),m!==d){if(f!==void 0&&f.has(m)){if(h.length<v.length){var S=v[0],C;c=S.prev;var D=h[0],w=h[h.length-1];for(C=0;C<h.length;C+=1)Vn(h[C],S,r);for(C=0;C<v.length;C+=1)f.delete(v[C]);en(e,D.prev,w.next),en(e,c,D),en(e,w,S),d=S,c=w,_-=1,h=[],v=[]}else f.delete(m),Vn(m,d,r),en(e,m.prev,m.next),en(e,m,c===null?e.effect.first:c.next),en(e,c,m),c=m;continue}for(h=[],v=[];d!==null&&d!==m;)(f??=new Set).add(d),v.push(d),d=d.next;if(d===null)continue}(m.f&Wt)===0&&h.push(m),c=m,d=m.next}if(e.outrogroups!==null){for(const R of e.outrogroups)R.pending.size===0&&(Vr(jn(R.done)),e.outrogroups?.delete(R));e.outrogroups.size===0&&(e.outrogroups=null)}if(d!==null||f!==void 0){var E=[];if(f!==void 0)for(m of f)(m.f&lt)===0&&E.push(m);for(;d!==null;)(d.f&lt)===0&&d!==e.fallback&&E.push(d),d=d.next;var A=E.length;if(A>0){var Y=(i&Hi)!==0&&l===0?r:null;if(o){for(_=0;_<A;_+=1)E[_].nodes?.a?.measure();for(_=0;_<A;_+=1)E[_].nodes?.a?.fix()}Wa(e,E,Y)}}o&&an(()=>{if(g!==void 0)for(m of g)m.nodes?.a?.apply()})}function za(e,t,r,i,s,o,l,u){var d=(l&Ko)!==0?(l&Qo)===0?ts(r,!1,!1):Qt(r):null,f=(l&Zo)!==0?Qt(s):null;return{v:d,i:f,e:ut(()=>(o(t,d??r,f??s,u),()=>{e.delete(i)}))}}function Vn(e,t,r){if(e.nodes)for(var i=e.nodes.start,s=e.nodes.end,o=t&&(t.f&Wt)===0?t.nodes.start:r;i!==null;){var l=Nn(i);if(o.before(i),i===s)return;i=l}}function en(e,t,r){t===null?e.effect.first=r:t.next=r,r===null?e.effect.last=t:r.prev=t}function Yt(e,t,...r){var i=new zr(e);Fn(()=>{const s=t()??null;i.ensure(s,s&&(o=>s(o,...r)))},Kt)}function Br(e,t,r){var i=new zr(e);Fn(()=>{var s=t()??null;i.ensure(s,s&&(o=>r(o,s)))},Kt)}function Ae(e,t){var r=void 0,i;xa(()=>{r!==(r=t())&&(i&&($e(i),i=null),r&&(i=ut(()=>{Fr(()=>r(e))})))})}function Is(e){var t,r,i="";if(typeof e=="string"||typeof e=="number")i+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(r=Is(e[t]))&&(i&&(i+=" "),i+=r)}else for(r in e)e[r]&&(i&&(i+=" "),i+=r);return i}function Va(){for(var e,t,r=0,i="",s=arguments.length;r<s;r++)(e=arguments[r])&&(t=Is(e))&&(i&&(i+=" "),i+=t);return i}function Lt(e){return typeof e=="object"?Va(e):e??""}function Ba(e,t,r){var i=e==null?"":""+e;return i===""?null:i}function Ls(e,t=!1){var r=t?" !important;":";",i="";for(var s in e){var o=e[s];o!=null&&o!==""&&(i+=" "+s+": "+o+r)}return i}function Gr(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Ga(e,t){if(t){var r="",i,s;if(Array.isArray(t)?(i=t[0],s=t[1]):i=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var o=!1,l=0,u=!1,d=[];i&&d.push(...Object.keys(i).map(Gr)),s&&d.push(...Object.keys(s).map(Gr));var f=0,c=-1;const p=e.length;for(var g=0;g<p;g++){var h=e[g];if(u?h==="/"&&e[g-1]==="*"&&(u=!1):o?o===h&&(o=!1):h==="/"&&e[g+1]==="*"?u=!0:h==='"'||h==="'"?o=h:h==="("?l++:h===")"&&l--,!u&&o===!1&&l===0){if(h===":"&&c===-1)c=g;else if(h===";"||g===p-1){if(c!==-1){var v=Gr(e.substring(f,c).trim());if(!d.includes(v)){h!==";"&&g++;var y=e.substring(f,g).trim();r+=" "+y+";"}}f=g+1,c=-1}}}}return i&&(r+=Ls(i)),s&&(r+=Ls(s,!0)),r=r.trim(),r===""?null:r}return e==null?null:String(e)}function N(e,t,r,i,s,o){var l=e.__className;if(l!==r||l===void 0){var u=Ba(r);u==null?e.removeAttribute("class"):e.className=u,e.__className=r}return o}function Yr(e,t={},r,i){for(var s in r){var o=r[s];t[s]!==o&&(r[s]==null?e.style.removeProperty(s):e.style.setProperty(s,o,i))}}function Tt(e,t,r,i){var s=e.__style;if(s!==t){var o=Ga(t,i);o==null?e.removeAttribute("style"):e.style.cssText=o,e.__style=t}else i&&(Array.isArray(i)?(Yr(e,r?.[0],i[0]),Yr(e,r?.[1],i[1],"important")):Yr(e,r,i));return i}const Ya=Symbol("is custom element"),qa=Symbol("is html");function Ie(e,t,r,i){var s=Xa(e);s[t]!==(s[t]=r)&&(t==="loading"&&(e[No]=r),r==null?e.removeAttribute(t):typeof r!="string"&&Ka(e).includes(t)?e[t]=r:e.setAttribute(t,r))}function Xa(e){return e.__attributes??={[Ya]:e.nodeName.includes("-"),[qa]:e.namespaceURI===ia}}var Ps=new Map;function Ka(e){var t=e.getAttribute("is")||e.nodeName,r=Ps.get(t);if(r)return r;Ps.set(t,r=[]);for(var i,s=e,o=Element.prototype;o!==s;){i=Io(s);for(var l in i)i[l].set&&r.push(l);s=Li(s)}return r}class qr{#e=new WeakMap;#n;#t;static entries=new WeakMap;constructor(t){this.#t=t}observe(t,r){var i=this.#e.get(t)||new Set;return i.add(r),this.#e.set(t,i),this.#r().observe(t,this.#t),()=>{var s=this.#e.get(t);s.delete(r),s.size===0&&(this.#e.delete(t),this.#n.unobserve(t))}}#r(){return this.#n??(this.#n=new ResizeObserver(t=>{for(var r of t){qr.entries.set(r.target,r);for(var i of this.#e.get(r.target)||[])i(r)}}))}}var Za=new qr({box:"border-box"});function lr(e,t,r){var i=Za.observe(e,()=>r(e[t]));Fr(()=>(ee(()=>r(e[t])),i))}function Ms(e,t){return e===t||e?.[Mn]===t}function it(e={},t,r,i){return Fr(()=>{var s,o;return us(()=>{s=o,o=i?.()||[],ee(()=>{e!==r(...o)&&(t(e,...o),s&&Ms(r(...s),e)&&t(null,...s))})}),()=>{an(()=>{o&&Ms(r(...o),e)&&t(null,...o)})}}),e}function As(e,t,r){if(e==null)return t(void 0),Xt;const i=ee(()=>e.subscribe(t,r));return i.unsubscribe?()=>i.unsubscribe():i}function Ja(e){let t;return As(e,r=>t=r)(),t}let ur=!1,Xr=Symbol();function Qa(e,t,r){const i=r[t]??={store:null,source:ts(void 0),unsubscribe:Xt};if(i.store!==e&&!(Xr in r))if(i.unsubscribe(),i.store=e??null,e==null)i.source.v=void 0,i.unsubscribe=Xt;else{var s=!0;i.unsubscribe=As(e,o=>{s?i.source.v=o:b(i.source,o)}),s=!1}return e&&Xr in r?Ja(e):n(i.source)}function ja(){const e={};function t(){Nr(()=>{for(var r in e)e[r].unsubscribe();Ii(e,Xr,{enumerable:!1,value:!0})})}return[e,t]}function $a(e){var t=ur;try{return ur=!1,[e(),ur]}finally{ur=t}}function De(e,t,r,i){var s=(r&ea)!==0,o=(r&ta)!==0,l=i,u=!0,d=()=>(u&&(u=!1,l=o?ee(i):i),l),f;if(s){var c=Mn in e||Oo in e;f=pn(e,t)?.set??(c&&t in e?k=>e[t]=k:void 0)}var g,h=!1;s?[g,h]=$a(()=>e[t]):g=e[t],g===void 0&&i!==void 0&&(g=d(),f&&(Bo(),f(g)));var v;if(v=()=>{var k=e[t];return k===void 0?d():(u=!0,k)},(r&$o)===0)return v;if(f){var y=e.$$legacy;return(function(k,S){return arguments.length>0?((!S||y||h)&&f(S?v():k),k):v()})}var p=!1,m=((r&jo)!==0?rr:Qi)(()=>(p=!1,v()));s&&n(m);var _=Ee;return(function(k,S){if(arguments.length>0){const C=S?n(m):s?nt(k):k;return b(m,C),p=!0,l!==void 0&&(l=C),k}return jt&&p||(_.f&Ht)!==0?m.v:n(m)})}function el(){return ce===null&&Vo(),(ce.ac??=new AbortController).signal}function Bn(e){Xe===null&&Fi(),Ke(()=>{const t=ee(e);if(typeof t=="function")return t})}const tl="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(tl);function Kr(e,t=void 0){return function(r){return r.key==="Enter"||r.key===" "&&!r.preventDefault()?e.call(t,r):void 0}}function Ze(e){return t=>{typeof e=="string"?t.innerText=e:e?.domNodes?t.replaceChildren(...e.domNodes):e?.html&&(t.innerHTML=e.html)}}function nl(e){return t=>{let r=i=>{t&&!t.contains(i.target)&&t.dispatchEvent(new CustomEvent(e+"outside",{detail:{jsEvent:i}}))};return document.addEventListener(e,r,!0),()=>{document.removeEventListener(e,r,!0)}}}function Zr(e){return t=>{let r=new ResizeObserver(i=>{for(let s of i)e(t,s)});return r.observe(t),()=>{r.unobserve(t)}}}function Os(e,t){return r=>{let i=new IntersectionObserver(s=>{for(let o of s)e(r,o)},t);return i.observe(r),()=>{i.unobserve(r)}}}function ve(...e){return Object.assign(...e)}function cn(e){return Object.keys(e)}function Ns(e){return Object.entries(e)}function Jr(e){return Math.floor(e)}function rl(e){return Math.ceil(e)}function Pt(...e){return Math.min(...e)}function ct(...e){return Math.max(...e)}function il(){return Symbol("ec")}function Qr(e){return Array.isArray(e)}function ke(e){return typeof e=="function"}function sl(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function jr(e){return e instanceof Date}function ol(e){return e()}function al(e){e.forEach(ol)}function ll(){}const dr=e=>e;function $r(e,t=void 0){return function(r){r.stopPropagation(),e&&e.call(t,r)}}function hn(){return window.getComputedStyle(document.documentElement).direction==="rtl"}const fr=86400;function Mt(e=void 0){return e!==void 0?jr(e)?Vs(e):fl(e):Vs(new Date)}function Fe(e){if(typeof e=="number")e={seconds:e};else if(typeof e=="string"){let r=0,i=2;for(let s of e.split(":",3))r+=parseInt(s,10)*Math.pow(60,i--);e={seconds:r}}else jr(e)&&(e={hours:e.getUTCHours(),minutes:e.getUTCMinutes(),seconds:e.getUTCSeconds()});let t=e.weeks||e.week||0;return{years:e.years||e.year||0,months:e.months||e.month||0,days:t*7+(e.days||e.day||0),seconds:(e.hours||e.hour||0)*60*60+(e.minutes||e.minute||0)*60+(e.seconds||e.second||0),inWeeks:!!t}}function X(e){return new Date(e.getTime())}function xe(e,t,r=1){e.setUTCFullYear(e.getUTCFullYear()+r*t.years);let i=e.getUTCMonth()+r*t.months;for(e.setUTCMonth(i),i%=12,i<0&&(i+=12);e.getUTCMonth()!==i;)Dn(e);return e.setUTCDate(e.getUTCDate()+r*t.days),e.setUTCSeconds(e.getUTCSeconds()+r*t.seconds),e}function cr(e,t,r=1){return xe(e,t,-r)}function wt(e,t=1){return e.setUTCDate(e.getUTCDate()+t),e}function Dn(e,t=1){return wt(e,-t)}function xt(e){return e.setUTCHours(0,0,0,0),e}function Ue(e){return new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds())}function ht(e,t=19){return e.toISOString().substring(0,t)}function Je(e,...t){return t.every(r=>e.getTime()===r.getTime())}function ul(e,t){let r=t-e.getUTCDay();return e.setUTCDate(e.getUTCDate()+(r>=0?r:r+7)),e}function Fs(e,t){let r=t-e.getUTCDay();return e.setUTCDate(e.getUTCDate()+(r<=0?r:r-7)),e}function Hs(e){return typeof e=="string"&&e.length<=10}function ei(e,t){return e.setUTCHours(t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds(),0),e}function _e(e){return e.seconds}function Ws(e,t,r){return xe(e,t),zs(e,r,wt),e}function Us(e,t,r){return cr(e,t),zs(e,r,Dn),e}function zs(e,t,r){if(t.length&&t.length<7)for(;t.includes(e.getUTCDay());)r(e)}function dl(e,t){e=X(e),t===0?e.setUTCDate(e.getUTCDate()+6-e.getUTCDay()):e.setUTCDate(e.getUTCDate()+4-(e.getUTCDay()||7));let r=new Date(Date.UTC(e.getUTCFullYear(),0,1));return Math.ceil(((e-r)/1e3/fr+1)/7)}function Vs(e){return new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds()))}function fl(e){const t=e.match(/\d+/g);return new Date(Date.UTC(Number(t[0]),Number(t[1])-1,Number(t[2]),Number(t[3]||0),Number(t[4]||0),Number(t[5]||0)))}let ti=il();function Bs(e,t){e[ti]=t}function cl(e){return!!e?.[ti]}function qt(e){return e[ti]}function Gs(e,t,r,i=[]){let s=document.createElement(e);s.className=t,typeof r=="string"?s.innerText=r:r.domNodes?s.replaceChildren(...r.domNodes):r.html&&(s.innerHTML=r.html);for(let o of i)s.setAttribute(...o);return s}function tn(e){return e.getBoundingClientRect()}function Ys(e,t){for(;t--;)e=e.parentElement;return e}function vn(e){return tn(e).height}function En(e,t,r=document,i=[]){i.push(r);for(let s of r.elementsFromPoint(e,t)){if(cl(s))return s;if(s.shadowRoot&&!i.includes(s.shadowRoot)){let o=En(e,t,s.shadowRoot,i);if(o)return o}}return null}function Gn(e,t,r,i){return e.addEventListener(t,r,i),()=>e.removeEventListener(t,r,i)}function hl(e,t,r,i){return{type:e,title:t,currentStart:r.start,currentEnd:r.end,activeStart:i.start,activeEnd:i.end,calendar:void 0}}function Qe(e){return e=ve({},e),e.currentStart=Ue(e.currentStart),e.currentEnd=Ue(e.currentEnd),e.activeStart=Ue(e.activeStart),e.activeEnd=Ue(e.activeEnd),e}let vl=1;function hr(e){return e.map(t=>{let r={id:"id"in t?String(t.id):`{generated-${vl++}}`,resourceIds:ni(t,"resourceId").map(String),allDay:t.allDay??(Hs(t.start)&&Hs(t.end)),start:Mt(t.start),end:Mt(t.end),title:t.title??"",editable:t.editable,startEditable:t.startEditable,durationEditable:t.durationEditable,display:t.display??"auto",extendedProps:t.extendedProps??{},backgroundColor:t.backgroundColor??t.color,textColor:t.textColor,classNames:ni(t,"className"),styles:ni(t,"style")};if(r.allDay){xt(r.start);let i=X(r.end);xt(r.end),(!Je(r.end,i)||Je(r.end,r.start))&&wt(r.end)}return r})}function ni(e,t){let r=e[t+"s"]??e[t]??[];return Qr(r)?r:[r]}function gl(e){return e.map(t=>({events:t.events,url:t.url&&t.url.trimEnd("&")||"",method:t.method&&t.method.toUpperCase()||"GET",extraParams:t.extraParams||{}}))}function ml(e,t,r,i,s,o){let l=s.formatRange(e.start,t&&e.event.display!=="pointer"&&!e.zeroDuration?ei(X(e.start),e.end):e.start),u;if(r&&(u=ke(r)?r({event:Ge(e.event),timeText:l,view:Qe(o)}):r),u===void 0){let d;switch(e.event.display){case"background":d=[];break;case"pointer":d=e.event.allDay?[]:[qs(l,e,i)];break;default:d=[...e.event.allDay?[]:[qs(l,e,i)],Gs("h4",i.eventTitle,e.event.title)]}u={domNodes:d}}return[l,u]}function qs(e,t,r){return Gs("time",r.eventTime,e,[["datetime",ht(t.start)]])}function pl(e,t,r){let i=t.classNames;return e&&(ke(e)&&(e=e({event:Ge(t),view:Qe(r)})),i=[...Qr(e)?e:[e],...i]),i}function Ge(e){return Xs(e,Ue)}function ri(e){return Xs(e,X)}function Xs(e,t){return e=ve({},e),e.start=t(e.start),e.end=t(e.end),e}function ii(e,t){e.length=t.length;for(let r of e)r?.reposition()}function Tn(e,t,r,i=void 0){return(!i||e.resourceIds.includes(i.id))&&e.start<r&&e.end>t}function vr(e){return _l(e)||yl(e)||wl(e)}function vt(e){return e==="background"}function _l(e){return e==="preview"}function yl(e){return e==="ghost"}function wl(e){return e==="pointer"}function Yn(e,t,r){return t=e.start>t?e.start:t,r=e.end<r?e.end:r,{start:t,end:r,event:e,zeroDuration:Je(t,r)}}function xn(e,t,r=!0){let i=[],s,o,l;for(let{gridColumn:u,gridRow:d,resource:f,dayStart:c,dayEnd:g,disabled:h}of t)!h&&Tn(e,c,g,f)&&(i.push(c),s=g,o||(o=u,l=d));if(i.length){let u=Yn(e,i[0],s);return ve(u,{gridColumn:o,gridRow:l,dates:i}),r&&si(u),[u]}return[]}function Ks(e){let t={},r={};for(let i of e){let{gridColumn:s,gridRow:o}=i;for(let u=1;u<i.dates.length;++u){let d=`${o}_${s+u}`;r[d]?r[d].chunks.push(i):r[d]={sorted:!1,chunks:[i]}}let l=`${o}_${s}`;i.long=r[l],i.prev=t[l],t[l]=i}}function Zs(e,t,r=1){e.prev&&(r=e.prev.bottom+1);let i=r+t;if(e.long){let s=e.long;s.sorted||(s.chunks.sort((o,l)=>o.top-l.top),s.sorted=!0);for(let o of s.chunks)if(r<o.bottom&&i>o.top){let l=o.bottom-r+1;r+=l,i+=l}}return ve(e,{top:r,bottom:i}),r}const Js=new WeakMap;let bl=1;function si(e){let{event:t,gridColumn:r,gridRow:i}=e,s=Js.get(t);s||(s=bl++,Js.set(t,s)),e.id=`${s}-${r}-${i}`}function gn(e,t){return()=>{let{options:{locale:r}}=e,i=e.options[t],s;return ee(()=>{s=ke(i)?{format:i}:new Intl.DateTimeFormat(r,i)}),{format:o=>s.format(Ue(o))}}}function Qs(e,t){return()=>{let{options:{locale:r}}=e,i=e.options[t],s;return ee(()=>{if(ke(i))s=i;else{let o=new Intl.DateTimeFormat(r,i);s=(l,u)=>{if(l<=u)return o.formatRange(l,u);{let d=o.formatRangeToParts(u,l),f="",c=["startRange","endRange"],g=[!1,!1];for(let h of d){let v=c.indexOf(h.source);v>=0?g[v]||(f+=kl(c[1-v],d),g[v]=!0):f+=h.value}return f}}}}),{formatRange:(o,l)=>s(Ue(o),Ue(l))}}}function kl(e,t){let r="";for(let i of t)i.source==e&&(r+=i.value);return r}function qn(e){return gr(e,"day")}function Xn(e){return gr(e,"week")}function oi(e){return gr(e,"month")}function Cl(e){return gr(e,"year")}function gr(e,t){return{...e,next:"Next "+t,prev:"Previous "+t}}function st(e){return t=>({...t,view:e})}function Dl(e){let t,r;return e&&({start:t,end:r}=e,t&&(t=xt(Mt(t))),r&&(r=xt(Mt(r)))),{start:t,end:r}}function Sn(e,t){return t.start&&e<t.start||t.end&&e>t.end}function js(e){let t=[];return $s(e,0,t),t}function $s(e,t,r){let i=[];for(let s of e){let o=El(s);i.push(o),r.push(o);let l={level:t,children:[],expanded:!0,hidden:!1};Bs(o,l),s.children&&(l.children=$s(s.children,t+1,r))}return i}function El(e){return{id:String(e.id),title:e.title||"",eventBackgroundColor:e.eventBackgroundColor,eventTextColor:e.eventTextColor,extendedProps:e.extendedProps??{}}}function Tl(e,t){return eo(e,t)?.eventBackgroundColor}function xl(e,t){return eo(e,t)?.eventTextColor}function eo(e,t){return t.find(r=>e.resourceIds.includes(r.id))}function to(e,t,r,i,s){let o=[];e=X(e);let l=X(e);for(xe(e,i.min),xe(l,i.max);e<l;)o.push([ht(e),s.format(e)]),xe(e,t,r);let u=Jr((e-l)/1e3/_e(t));return u&&u!==r&&(o.at(-1)[2]=r-u),o}function no(e,t,r,i,s){let o=Fe(e),l=Fe(t);if(r){let u=Fe(Pt(_e(o),ct(0,_e(l)-fr))),d=Fe(ct(_e(l),_e(u)+fr)),f=ke(r?.eventFilter)?r.eventFilter:c=>!vt(c.display);e:for(let c of i){let g=xe(X(c),o),h=xe(X(c),l),v=xe(X(c),u),y=xe(X(c),d);for(let p of s)if(!p.allDay&&f(p)&&p.start<y&&p.end>v){if(p.start<g){let m=ct((p.start-c)/1e3,_e(u));m<_e(o)&&(o.seconds=m)}if(p.end>h){let m=Pt((p.end-c)/1e3,_e(d));m>_e(l)&&(l.seconds=m)}if(_e(o)===_e(u)&&_e(l)===_e(d))break e}}}return{min:o,max:l}}class ai extends Map{#e=new Map;#n=Z(0);#t=Z(0);#r=Gt||-1;constructor(t){if(super(),t){for(var[r,i]of t)super.set(r,i);this.#t.v=super.size}}#s(t){return Gt===this.#r?Z(t):Qt(t)}has(t){var r=this.#e,i=r.get(t);if(i===void 0){var s=super.get(t);if(s!==void 0)i=this.#s(0),r.set(t,i);else return n(this.#n),!1}return n(i),!0}forEach(t,r){this.#i(),super.forEach(t,r)}get(t){var r=this.#e,i=r.get(t);if(i===void 0){var s=super.get(t);if(s!==void 0)i=this.#s(0),r.set(t,i);else{n(this.#n);return}}return n(i),super.get(t)}set(t,r){var i=this.#e,s=i.get(t),o=super.get(t),l=super.set(t,r),u=this.#n;if(s===void 0)s=this.#s(0),i.set(t,s),b(this.#t,super.size),Rt(u);else if(o!==r){Rt(s);var d=u.reactions===null?null:new Set(u.reactions),f=d===null||!s.reactions?.every(c=>d.has(c));f&&Rt(u)}return l}delete(t){var r=this.#e,i=r.get(t),s=super.delete(t);return i!==void 0&&(r.delete(t),b(this.#t,super.size),b(i,-1),Rt(this.#n)),s}clear(){if(super.size!==0){super.clear();var t=this.#e;b(this.#t,0);for(var r of t.values())b(r,-1);Rt(this.#n),t.clear()}}#i(){n(this.#n);var t=this.#e;if(this.#t.v!==t.size){for(var r of super.keys())if(!t.has(r)){var i=this.#s(0);t.set(r,i)}}for([,i]of this.#e)n(i)}keys(){return n(this.#n),super.keys()}values(){return this.#i(),super.values()}entries(){return this.#i(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return n(this.#t),super.size}}function Sl(e){let t={buttonText:{today:"today"},customButtons:{},customScrollbars:!1,date:new Date,datesSet:void 0,dayHeaderFormat:{weekday:"short",month:"numeric",day:"numeric"},dayHeaderAriaLabelFormat:{dateStyle:"full"},displayEventEnd:!0,duration:{weeks:1},events:[],eventAllUpdated:void 0,eventBackgroundColor:void 0,eventClassNames:void 0,eventClick:void 0,eventColor:void 0,eventContent:void 0,eventDidMount:void 0,eventFilter:void 0,eventMouseEnter:void 0,eventMouseLeave:void 0,eventOrder:void 0,eventSources:[],eventTextColor:void 0,eventTimeFormat:{hour:"numeric",minute:"2-digit"},filterEventsWithResources:!1,firstDay:0,headerToolbar:{start:"title",center:"",end:"today prev,next"},height:void 0,hiddenDays:[],highlightedDates:[],lazyFetching:!0,loading:void 0,locale:void 0,resources:[],selectable:!1,theme:{active:"ec-active",bgEvent:"ec-bg-event",bgEvents:"ec-bg-events",body:"ec-body",button:"ec-button",buttonGroup:"ec-button-group",calendar:"ec",colHead:"ec-col-head",customScrollbars:"ec-custom-scrollbars",day:"ec-day",dayHead:"ec-day-head",disabled:"ec-disabled",event:"ec-event",eventBody:"ec-event-body",eventTime:"ec-event-time",eventTitle:"ec-event-title",events:"ec-events",grid:"ec-grid",header:"ec-header",hidden:"ec-hidden",highlight:"ec-highlight",icon:"ec-icon",main:"ec-main",noBeb:"ec-no-beb",noIeb:"ec-no-ieb",today:"ec-today",title:"ec-title",toolbar:"ec-toolbar",view:"",weekdays:["ec-sun","ec-mon","ec-tue","ec-wed","ec-thu","ec-fri","ec-sat"]},titleFormat:{year:"numeric",month:"short",day:"numeric"},validRange:void 0,view:void 0,viewDidMount:void 0,views:{}};for(let r of e)r.createOptions?.(t);return t}function Rl(e){let t={date:r=>xt(Mt(r)),duration:Fe,events:hr,eventSources:gl,hiddenDays:r=>[...new Set(r)],highlightedDates:r=>r.map(i=>xt(Mt(i))),resources:js,validRange:Dl};for(let r of e)r.createParsers?.(t);return t}const ro=["buttonText","customButtons","theme"];function Il(e,t,r){let i=Sl(t),s=Rl(t);i=li(i,s),r=li(r,s);let o=ui(i,"views")??{},l=ui(r,"views")??{},u=new ai;so(u,i);let d={},f={};function c(){r.view&&u.set("view",r.view);let g=new Set([...cn(o),...cn(l)]);for(let h of g){let v=l[h]??{},y=io(i,o[h]??o[v.type]??{}),p=io(y,r,v),m=ui(p,"component");delete p.view;for(let _ of cn(p))u.has(_)?(d[_]||(d[_]=[]),d[_].push(ro.includes(_)?k=>p[_]=ke(k)?k(y[_]):k:k=>p[_]=k)):delete p[_];ln(()=>{let _=u.get("view");ee(()=>{_===h&&(e.setViewComponent(m),f=p,so(u,p))})})}}return{proxy:new Proxy(u,{set(g,h,v){return f[h]=v,g.set(h,v),!0},get(g,h){return g.get(h)}}),setOption(g,h,v){u.has(g)&&(!v&&g in s&&(h=s[g](h)),d[g]?.forEach(y=>y(h)),u.set(g,f[g]??h))},initEffects:c}}function li(e,t){let r={...e};for(let i of cn(t))i in r&&(r[i]=t[i](r[i]));if(e.views){r.views={};for(let i of cn(e.views))r.views[i]=li(e.views[i],t)}return r}function ui(e,t){let r=e[t];return delete e[t],r}function io(...e){let t={};for(let r of e){let i={};for(let s of ro)ke(r[s])&&(i[s]=r[s](t[s]));t={...t,...r,...i}}return t}function so(e,t){for(let[r,i]of Ns(t))e.set(r,i)}function Ll(e,t){let r=[];for(let i of cn(e))e[i]!==t[i]&&r.push([i,e[i]]);return r}function Pl(e){let t=0;return()=>{let{activeRange:r,fetchedRange:i,viewDates:s,options:{events:o,eventSources:l,lazyFetching:u,loading:d}}=e;ee(()=>{if(s.length&&(l.length||(e.events=o),!i.start||i.start>r.start||i.end<r.end||!u)){ke(d)&&!t&&d(!0);let f=()=>{--t===0&&ke(d)&&d(!1)},c=[],g=p=>f(),h=p=>{c=c.concat(hr(p)),e.events=c,f()},v=ht(r.start),y=ht(r.end);for(let p of l){if(ke(p.events)){let m=p.events({start:Ue(r.start),end:Ue(r.end),startStr:v,endStr:y},h,g);m!==void 0&&Promise.resolve(m).then(h,g)}else{let m=ke(p.extraParams)?p.extraParams():ve({},p.extraParams);m.start=v,m.end=y,m=new URLSearchParams(m);let _=p.url,k={},S;["GET","HEAD"].includes(p.method)?_+=(_.includes("?")?"&":"?")+m:(k["content-type"]="application/x-www-form-urlencoded;charset=UTF-8",S=String(m)),fetch(_,{method:p.method,headers:k,body:S,signal:el(),credentials:"same-origin"}).then(C=>C.json()).then(h).catch(g)}++t}ve(i,r)}})}}function Ml(e){return()=>{let t=setInterval(()=>{let r=Mt(),i=xt(X(r));e.now=r,Je(e.today,i)||(e.today=i)},1e3);return()=>clearInterval(t)}}function Al(e){return()=>{let{activeRange:t,options:{datesSet:r}}=e;ee(()=>{ke(r)&&r({start:Ue(t.start),end:Ue(t.end),startStr:ht(t.start),endStr:ht(t.end),view:Qe(e.view)})})}}function Ol(e){let t;return()=>{let{filteredEvents:r,options:{eventAllUpdated:i}}=e;ee(()=>{ke(i)&&(t||(t=setTimeout(()=>{t=null,i({view:Qe(e.view)})})))})}}function Nl(e){return()=>{let{options:{view:t,viewDidMount:r}}=e;ee(()=>{ke(r)&&fn().then(()=>r({view:Qe(e.view)}))})}}function Fl(e){return()=>{let{options:{date:t,duration:r,firstDay:i}}=e,s,o;return ee(()=>{s=X(t),r.months?s.setUTCDate(1):r.inWeeks&&Fs(s,i),o=xe(X(s),r)}),{start:s,end:o}}}function Hl(e){return()=>{let{currentRange:t,extensions:{activeRange:r}}=e,i,s;return ee(()=>{i=X(t.start),s=X(t.end)}),r?r(i,s):{start:i,end:s}}}function Wl(e){return()=>{let{events:t,options:{eventFilter:r,eventOrder:i,filterEventsWithResources:s,resources:o,view:l}}=e,u=[...t];return ee(()=>{if(ke(r)){let d=t.map(Ge),f=Qe(e.view);u=u.filter((c,g)=>r({event:Ge(c),index:g,events:d,view:f}))}s&&(u=u.filter(d=>o.some(f=>d.resourceIds.includes(f.id)))),ke(i)?u.sort((d,f)=>i(Ge(d),Ge(f))):u.sort((d,f)=>d.start-f.start||f.allDay-d.allDay)}),u}}function Ul(e){return()=>{let{options:t,activeRange:r}=e,{hiddenDays:i}=t,s=[];return ee(()=>{let o=xt(X(r.start)),l=xt(X(r.end));for(;o<l;)i.includes(o.getUTCDay())||s.push(X(o)),wt(o);if(!s.length&&i.length&&i.length<7){for(;i.includes(o.getUTCDay());)wt(o);fn().then(()=>{e.setOption("date",o)})}}),s}}function zl(e){return()=>{let{currentRange:t,intlTitle:r}=e,i;return ee(()=>{i=r.formatRange(t.start,Dn(X(t.end)))}),i}}function Vl(e){return()=>{let{activeRange:t,currentRange:r,viewTitle:i,options:{view:s}}=e,o;return ee(()=>{o=hl(s,i,r,t)}),o}}class Bl{#e;get auxComponents(){return n(this.#e)}set auxComponents(t){b(this.#e,t,!0)}#n;get currentRange(){return n(this.#n)}set currentRange(t){b(this.#n,t)}#t;get activeRange(){return n(this.#t)}set activeRange(t){b(this.#t,t)}#r;get fetchedRange(){return n(this.#r)}set fetchedRange(t){b(this.#r,t)}#s;get events(){return n(this.#s)}set events(t){b(this.#s,t)}#i;get filteredEvents(){return n(this.#i)}set filteredEvents(t){b(this.#i,t)}#o;get mainEl(){return n(this.#o)}set mainEl(t){b(this.#o,t,!0)}#a;get now(){return n(this.#a)}set now(t){b(this.#a,t,!0)}#l;get today(){return n(this.#l)}set today(t){b(this.#l,t,!0)}#u;get intlEventTime(){return n(this.#u)}set intlEventTime(t){b(this.#u,t)}#d;get intlDayHeader(){return n(this.#d)}set intlDayHeader(t){b(this.#d,t)}#f;get intlDayHeaderAL(){return n(this.#f)}set intlDayHeaderAL(t){b(this.#f,t)}#h;get intlTitle(){return n(this.#h)}set intlTitle(t){b(this.#h,t)}#v;get viewDates(){return n(this.#v)}set viewDates(t){b(this.#v,t)}#g;get viewTitle(){return n(this.#g)}set viewTitle(t){b(this.#g,t)}#c;get view(){return n(this.#c)}set view(t){b(this.#c,t)}#y;get viewComponent(){return n(this.#y)}set viewComponent(t){b(this.#y,t,!0)}#b;get extensions(){return n(this.#b)}set extensions(t){b(this.#b,t,!0)}#k;get features(){return n(this.#k)}set features(t){b(this.#k,t,!0)}#_;get interaction(){return n(this.#_)}set interaction(t){b(this.#_,t,!0)}#m;get iClasses(){return n(this.#m)}set iClasses(t){b(this.#m,t,!0)}#p;get iClass(){return n(this.#p)}set iClass(t){b(this.#p,t,!0)}#w;constructor(t,r){let{proxy:i,setOption:s,initEffects:o}=Il(this,t,r);this.options=i,this.#w=s,this.#e=Z(nt([])),this.#n=a(Fl(this)),this.#t=a(Hl(this)),this.#r=Z({start:void 0,end:void 0}),this.#s=Z([]),this.#i=a(Wl(this)),this.#o=Z(),this.#a=Z(nt(Mt())),this.#l=Z(nt(xt(Mt()))),this.#u=a(Qs(this,"eventTimeFormat")),this.#d=a(gn(this,"dayHeaderFormat")),this.#f=a(gn(this,"dayHeaderAriaLabelFormat")),this.#h=a(Qs(this,"titleFormat")),this.#v=a(Ul(this)),this.#g=a(zl(this)),this.#c=a(Vl(this)),this.#y=Z(),this.#b=Z(nt({})),this.#k=Z(nt([])),this.#_=Z(nt({})),this.iEvents=new ai,this.#m=Z(nt(dr)),this.#p=Z();for(let l of t)l.initState?.(this);o(),this.#C()}#C(){ln(Ml(this)),Ke(Pl(this)),Ke(Al(this)),Ke(Ol(this)),Ke(Nl(this))}setViewComponent(t){this.extensions={},this.features=[],this.viewComponent=t(this)}setOption(t,r,i=!0){this.#w(t,r,i)}}var Gl=j("<h2></h2>"),Yl=j("<button><i></i></button>"),ql=j("<button><i></i></button>"),Xl=j("<button> </button>"),Kl=j("<button></button>"),Zl=j("<button> </button>");function oo(e,t){ye(t,!0);let r=re("state"),i=a(()=>r.currentRange),s=a(()=>r.today),o=a(()=>r.viewTitle),l=a(()=>r.viewDates),u=a(()=>r.options.buttonText),d=a(()=>r.options.customButtons),f=a(()=>r.options.date),c=a(()=>r.options.duration),g=a(()=>r.options.hiddenDays),h=a(()=>r.options.theme),v=a(()=>r.options.validRange),y=a(()=>r.options.view),p=Z(!1),m=Z(!1),_=Z(!1),k=!1;ln(()=>{n(l),n(v),t.buttons,ee(()=>{k||(k=!0,t.buttons.includes("prev")&&(b(p,!1),n(v).start&&b(p,S(C),!0)),t.buttons.includes("next")&&(b(m,!1),n(v).end&&b(m,S(D),!0)),t.buttons.includes("today")&&(b(_,n(s)>=n(i).start&&n(s)<n(i).end,!0),!n(_)&&(n(v).start||n(v).end)&&b(_,S(w),!0)),fn().then(()=>k=!1))})});function S(Y){let R=n(f);Y();let te=n(l).every(ge=>Sn(ge,n(v)));return r.setOption("date",R),te}function C(){r.setOption("date",Us(X(n(f)),n(c),n(g)))}function D(){r.setOption("date",Ws(X(n(f)),n(c),n(g)))}function w(){r.setOption("date",X(n(s)))}var E=le(),A=J(E);ue(A,17,()=>t.buttons,Ce,(Y,R)=>{var te=le(),ge=J(te);{var be=z=>{var W=Gl();Ae(W,()=>Ze(n(o))),ae(()=>N(W,1,n(h).title)),x(z,W)},se=z=>{var W=le(),P=J(W);{var U=Q=>{var q=Yl();q.__click=C;var oe=fe(q);ae(()=>{N(q,1,`${n(h).button??""} ec-${n(R)??""}`),Ie(q,"aria-label",n(u).prev),Ie(q,"title",n(u).prev),q.disabled=n(p),N(oe,1,`${n(h).icon??""} ec-${n(R)??""}`)}),x(Q,q)},F=Q=>{var q=le(),oe=J(q);{var T=I=>{var V=ql();V.__click=D;var Ye=fe(V);ae(()=>{N(V,1,`${n(h).button??""} ec-${n(R)??""}`),Ie(V,"aria-label",n(u).next),Ie(V,"title",n(u).next),V.disabled=n(m),N(Ye,1,`${n(h).icon??""} ec-${n(R)??""}`)}),x(I,V)},M=I=>{var V=le(),Ye=J(V);{var Oe=Le=>{var Ne=Xl();Ne.__click=w;var gt=fe(Ne);ae(()=>{N(Ne,1,`${n(h).button??""} ec-${n(R)??""}`),Ne.disabled=n(_),Ss(gt,n(u)[n(R)])}),x(Le,Ne)},bt=Le=>{var Ne=le(),gt=J(Ne);{var At=K=>{var Se=Kl();Se.__click=function(...H){n(d)[n(R)].click?.apply(this,H)},Ae(Se,()=>Ze(n(d)[n(R)].text)),ae(()=>N(Se,1,Lt([n(h).button,`ec-${n(R)}`,n(d)[n(R)].active&&n(h).active]))),x(K,Se)},B=K=>{var Se=le(),H=J(Se);{var G=he=>{var me=Zl();me.__click=()=>r.setOption("view",n(R));var ne=fe(me);ae(()=>{N(me,1,Lt([n(h).button,`ec-${n(R)}`,n(y)===n(R)&&n(h).active])),Ss(ne,n(u)[n(R)])}),x(he,me)};de(H,he=>{n(R)!==""&&he(G)},!0)}x(K,Se)};de(gt,K=>{n(d)[n(R)]?K(At):K(B,!1)},!0)}x(Le,Ne)};de(Ye,Le=>{n(R)==="today"?Le(Oe):Le(bt,!1)},!0)}x(I,V)};de(oe,I=>{n(R)==="next"?I(T):I(M,!1)},!0)}x(Q,q)};de(P,Q=>{n(R)==="prev"?Q(U):Q(F,!1)},!0)}x(z,W)};de(ge,z=>{n(R)==="title"?z(be):z(se,!1)})}x(Y,te)}),x(e,E),we()}$t(["click"]);var Jl=j("<div><!></div>"),Ql=j("<div></div>"),jl=j("<nav></nav>");function $l(e,t){ye(t,!0);let r=a(()=>re("state")),i=a(()=>n(r).options.headerToolbar),s=a(()=>n(r).options.theme),o=a(()=>{let u={};for(let d of["start","center","end"])u[d]=n(i)[d]?.split(" ").map(f=>f.split(","))??[];return u});var l=jl();ue(l,21,()=>cn(n(o)),Ce,(u,d)=>{var f=Ql();ue(f,21,()=>n(o)[n(d)],Ce,(c,g)=>{var h=le(),v=J(h);{var y=m=>{var _=Jl(),k=fe(_);oo(k,{get buttons(){return n(g)}}),ae(()=>N(_,1,n(s).buttonGroup)),x(m,_)},p=m=>{oo(m,{get buttons(){return n(g)}})};de(v,m=>{n(g).length>1?m(y):m(p,!1)})}x(c,h)}),ae(()=>N(f,1,`ec-${n(d)??""}`)),x(u,f)}),ae(()=>N(l,1,n(s).toolbar)),x(e,l),we()}var eu=j("<div><!> <!> <!></div>");function tu(e,t){ye(t,!0);let r=De(t,"plugins",19,()=>[]),i=De(t,"options",19,()=>({})),s=new Bl(r(),i());An("state",s);let o=a(()=>s.auxComponents),l=a(()=>s.features),u=a(()=>s.events),d=a(()=>s.interaction),f=a(()=>s.iClass),c=a(()=>s.view),g=a(()=>s.viewComponent),h=a(()=>s.options.date),v=a(()=>s.options.duration),y=a(()=>s.options.height),p=a(()=>s.options.hiddenDays),m=a(()=>s.options.customScrollbars),_=a(()=>s.options.theme),k={...i()};ln(()=>{for(let[T,M]of Ll(i(),k))ee(()=>{S(T,M)});ve(k,i())});function S(T,M){return sl(M)&&(M={...M}),Qr(M)&&(M=[...M]),s.setOption(T,M,!1),this}function C(T){let M=s.options[T];return jr(M)?Ue(M):M}function D(){return s.fetchedRange={start:void 0,end:void 0},this}function w(){return n(u).map(Ge)}function E(T){T=String(T);for(let M of n(u))if(M.id===T)return Ge(M);return null}function A(T){return T=hr([T])[0],n(u).push(T),s.events=[...n(u)],Ge(T)}function Y(T){let M=String(T.id),I=n(u).findIndex(V=>V.id===M);return I>=0?(T=hr([T])[0],n(u)[I]=T,s.events=[...n(u)],Ge(T)):null}function R(T){T=String(T);let M=n(u).findIndex(I=>I.id===T);return M>=0&&(n(u).splice(M,1),s.events=[...n(u)]),this}function te(){return Qe(n(c))}function ge(){return n(d).action?.unselect(),this}function be(T,M){let I=En(T,M);if(I){let V=qt(I)(T,M);return V.date=Ue(V.date),V}return null}function se(){return s.setOption("date",Ws(X(n(h)),n(v),n(p))),this}function z(){return s.setOption("date",Us(X(n(h)),n(v),n(p))),this}var W={setOption:S,getOption:C,refetchEvents:D,getEvents:w,getEventById:E,addEvent:A,updateEvent:Y,removeEventById:R,getView:te,unselect:ge,dateFromPoint:be,next:se,prev:z},P=eu();let U;var F=fe(P);$l(F,{});var Q=ie(F,2);{var q=T=>{var M=le(),I=J(M);Br(I,()=>n(g),(V,Ye)=>{Ye(V,{})}),x(T,M)};de(Q,T=>{n(g)&&T(q)})}var oe=ie(Q,2);return ue(oe,17,()=>n(o),Ce,(T,M)=>{var I=le(),V=J(I);Br(V,()=>n(M),(Ye,Oe)=>{Oe(Ye,{})}),x(T,I)}),ae(T=>{N(P,1,Lt([n(_).calendar,n(_).view,n(f)&&n(_)[n(f)],n(m)&&n(_).customScrollbars])),Ie(P,"role",T),U=Tt(P,"",U,{height:n(y)})},[()=>n(l).includes("list")?"list":"table"]),x(e,P),we(W)}function nu(e){return()=>{let{viewDates:t,options:{duration:r,hiddenDays:i}}=e,s;return ee(()=>s=r.months||r.inWeeks?7-i.length:t.length),s}}function ru(e,t){return()=>{let{options:{highlightedDates:r,validRange:i},viewDates:s}=e,{colsCount:o}=t,l=[];return ee(()=>{let u=[],d=1,f=1;for(let c of s)u.push({gridColumn:d,gridRow:f,resource:void 0,dayStart:c,dayEnd:wt(X(c)),disabled:Sn(c,i),highlight:r.some(g=>Je(g,c))}),d===o&&(l.push(u),u=[],d=0,++f),++d}),l}}function iu(e,t){return()=>{let{filteredEvents:r}=e,{grid:i}=t,s=[],o=[];return ee(()=>{for(let l of r)for(let u of i)vt(l.display)?l.allDay&&(o=o.concat(xn(l,u))):s=s.concat(xn(l,u));Ks(s)}),{chunks:s,bgChunks:o}}}function su(e,t){return()=>{let{iEvents:r}=e,{grid:i}=t,s=[];for(let[,o]of r)o&&ee(()=>{for(let l of i)s=s.concat(xn(o,l,!1))});return s}}let ou=class{#e;get colsCount(){return n(this.#e)}set colsCount(t){b(this.#e,t)}#n;get grid(){return n(this.#n)}set grid(t){b(this.#n,t)}#t;get gridEl(){return n(this.#t)}set gridEl(t){b(this.#t,t,!0)}#r;get chunks(){return n(this.#r)}set chunks(t){b(this.#r,t)}#s;get bgChunks(){return n(this.#s)}set bgChunks(t){b(this.#s,t)}#i;get iChunks(){return n(this.#i)}set iChunks(t){b(this.#i,t)}#o;get intlDayCell(){return n(this.#o)}set intlDayCell(t){b(this.#o,t)}#a;get intlDayPopover(){return n(this.#a)}set intlDayPopover(t){b(this.#a,t)}#l;get popupDay(){return n(this.#l)}set popupDay(t){b(this.#l,t,!0)}constructor(t){this.#e=a(nu(t)),this.#n=a(ru(t,this)),this.#t=Z();let r=a(iu(t,this)),i=a(()=>n(r).chunks),s=a(()=>n(r).bgChunks);this.#r=a(()=>n(i)),this.#s=a(()=>n(s)),this.#i=a(su(t,this)),this.hiddenChunks=new ai,this.#o=a(gn(t,"dayCellFormat")),this.#a=a(gn(t,"dayPopoverFormat")),this.#l=Z(null)}};var au=j("<div><!></div>");function mr(e,t){ye(t,!0);let r=De(t,"el",15),i=De(t,"allDay",3,!1),s=De(t,"resource",3,void 0),o=De(t,"dateFromPoint",3,()=>t.date),l=De(t,"classes",3,dr),u=De(t,"disabled",3,!1),d=De(t,"highlight",3,!1),f=De(t,"role",3,"cell"),c=De(t,"noIeb",3,!1),g=De(t,"noBeb",3,!1),h=a(()=>re("state")),v=a(()=>n(h).today),y=a(()=>n(h).interaction.action),p=a(()=>n(h).options.theme),m=a(()=>re("view-state")),_=a(()=>n(m).snap),k=a(()=>Je(t.date,n(v))),S=a(()=>l()([n(p).day,n(p).weekdays?.[t.date.getUTCDay()],n(k)&&n(p).today,d()&&n(p).highlight,u()&&n(p).disabled,c()&&n(p).noIeb,g()&&n(p).noBeb]));Bn(()=>{Bs(r(),(E,A)=>({allDay:i(),date:o()(E,A),resource:s(),dayEl:r(),disabled:u()}))});let C=a(()=>!u()&&n(y)?E=>n(y).select(E,n(_)):void 0);var D=au();D.__pointerdown=function(...E){n(C)?.apply(this,E)};var w=fe(D);Yt(w,()=>t.children??Xt),it(D,E=>r(E),()=>r()),ae(()=>{N(D,1,Lt(n(S))),Ie(D,"role",f())}),x(e,D),we()}$t(["pointerdown"]);var lu=j("<div></div>"),uu=j("<article><!></article>");function ao(e,t){ye(t,!0);let r=De(t,"el",15),i=De(t,"classes",3,dr),s=De(t,"styles",3,dr),o=a(()=>re("state")),l=a(()=>n(o).intlEventTime),u=a(()=>n(o).view),d=a(()=>n(o).options.displayEventEnd),f=a(()=>n(o).options.eventBackgroundColor),c=a(()=>n(o).options.eventColor),g=a(()=>n(o).options.eventContent),h=a(()=>n(o).options.eventClick),v=a(()=>n(o).options.eventDidMount),y=a(()=>n(o).options.eventClassNames),p=a(()=>n(o).options.eventMouseEnter),m=a(()=>n(o).options.eventMouseLeave),_=a(()=>n(o).options.eventTextColor),k=a(()=>n(o).options.resources),S=a(()=>n(o).options.theme),C=a(()=>t.chunk.event),D=a(()=>t.chunk.event.display),w=a(()=>n(C).backgroundColor??Tl(n(C),n(k))??n(f)??n(c)),E=a(()=>n(C).textColor??xl(n(C),n(k))??n(_)),A=a(()=>Ns(s()({"background-color":n(w),color:n(E)})).map(T=>`${T[0]}:${T[1]}`).concat(n(C).styles).join(";")),Y=a(()=>i()([vt(n(D))?n(S).bgEvent:n(S).event,...pl(n(y),n(C),n(u))])),R=a(()=>ml(t.chunk,n(d),n(g),n(S),n(l),n(u))),te=a(()=>Ao(n(R),2)),ge=a(()=>n(te)[0]),be=a(()=>n(te)[1]);Bn(()=>{ke(n(v))&&n(v)({event:Ge(n(C)),timeText:n(ge),el:r(),view:Qe(n(u))})});function se(T,M){return ke(T)&&!vr(M)?I=>T({event:Ge(n(C)),el:r(),jsEvent:I,view:Qe(n(u))}):void 0}let z=a(()=>!vt(n(D))&&se(n(h),n(D))||void 0),W=a(()=>n(z)&&Kr(n(z))),P=a(()=>se(n(p),n(D))),U=a(()=>se(n(m),n(D)));var F=uu();F.__click=function(...T){n(z)?.apply(this,T)},F.__keydown=function(...T){n(W)?.apply(this,T)},F.__pointerdown=function(...T){t.onpointerdown?.apply(this,T)};{const T=M=>{var I=lu();Ae(I,()=>Ze(n(be))),ae(()=>N(I,1,Lt(n(S).eventBody))),x(M,I)};var Q=fe(F);{var q=M=>{var I=le(),V=J(I);Yt(V,()=>t.body,()=>T,()=>n(w),()=>n(E)),x(M,I)},oe=M=>{T(M)};de(Q,M=>{t.body?M(q):M(oe,!1)})}it(F,M=>r(M),()=>r())}ae(()=>{N(F,1,Lt(n(Y))),Tt(F,n(A)),Ie(F,"role",n(z)?"button":void 0),Ie(F,"tabindex",n(z)?0:void 0)}),ft("mouseenter",F,function(...T){n(P)?.apply(this,T)}),ft("mouseleave",F,function(...T){n(U)?.apply(this,T)}),x(e,F),we()}$t(["click","keydown","pointerdown"]);var du=j("<div><!></div>");function Kn(e,t){ye(t,!0);let r=De(t,"weekday",3,!0),i=De(t,"colSpan",3,1),s=De(t,"ariaHidden",3,!1),o=De(t,"disabled",3,!1),l=De(t,"highlight",3,!1),u=a(()=>re("state")),d=a(()=>n(u).today),f=a(()=>n(u).options.theme);var c=du(),g=fe(c);Yt(g,()=>t.children),ae(h=>{N(c,1,h),Ie(c,"role",s()?null:"columnheader"),Ie(c,"aria-colspan",s()||i()<=1?null:i()),Ie(c,"aria-colindex",s()?null:t.colIndex),Ie(c,"aria-hidden",s()?"true":null)},[()=>Lt([t.className??n(f).colHead,r()&&n(f).weekdays?.[t.date.getUTCDay()],r()&&Je(t.date,n(d))&&n(f).today,l()&&n(f).highlight,o()&&n(f).disabled])]),x(e,c),we()}var fu=j("<time></time>");function pr(e,t){ye(t,!0);let r=De(t,"alPrefix",3,""),i=a(()=>re("state")),s=a(()=>n(i).intlDayHeader),o=a(()=>n(i).intlDayHeaderAL);var l=fu();Ae(l,()=>Ze(n(s).format(t.date))),ae((u,d)=>{Ie(l,"datetime",u),Ie(l,"aria-label",`${r()??""}${d??""}`)},[()=>ht(t.date,10),()=>n(o).format(t.date)]),x(e,l),we()}function _r(e,t){ye(t,!0);let r=De(t,"el",15),i=a(()=>re("state")),s=a(()=>n(i).iClasses),o=a(()=>n(i).interaction.action),l=a(()=>n(i).interaction.resizer),u=a(()=>re("view-state")),d=a(()=>n(u).snap),f=a(()=>t.chunk.event),c=a(()=>t.chunk.event.display),g=a(()=>y=>n(s)(y,n(f)));function h(y){return n(o)?.draggable(y)?p=>n(o).drag(y,p,t.forceDate,t.forceMargin,n(d)):n(o)?.noAction}let v=a(()=>!vt(n(c))&&!vr(n(c))?h(n(f)):void 0);ao(e,{get chunk(){return t.chunk},get classes(){return n(g)},get styles(){return t.styles},get onpointerdown(){return n(v)},get el(){return r()},set el(p){r(p)},body:(p,m=Xt)=>{var _=le(),k=J(_);{var S=D=>{var w=le(),E=J(w);Br(E,()=>n(l),(A,Y)=>{Y(A,{get chunk(){return t.chunk},get axis(){return t.axis},get forceDate(){return t.forceDate},get forceMargin(){return t.forceMargin},children:(R,te)=>{var ge=le(),be=J(ge);Yt(be,m),x(R,ge)},$$slots:{default:!0}})}),x(D,w)},C=D=>{var w=le(),E=J(w);Yt(E,m),x(D,w)};de(k,D=>{n(l)?D(S):D(C,!1)})}x(p,_)},$$slots:{body:!0}}),we()}var cu=j("<time></time>"),hu=j("<span></span>"),vu=j('<a role="button" tabindex="0" aria-haspopup="dialog"></a>'),gu=j("<div><!> <!></div> <div><!></div>",1);function mu(e,t){ye(t,!0);const r=()=>Qa(n(f),"$firstDay",i),[i,s]=ja();let o=re("state"),l=re("view-state"),u=a(()=>o.features),d=a(()=>o.options.date),f=a(()=>o.options.firstDay),c=a(()=>o.options.moreLinkContent),g=a(()=>o.options.theme),h=a(()=>o.options.weekNumbers),v=a(()=>o.options.weekNumberContent),y=a(()=>l.hiddenChunks),p=a(()=>l.intlDayCell),m=a(()=>t.day.dayStart),_=a(()=>t.day.disabled),k=a(()=>t.day.highlight),S=a(()=>n(m).getUTCMonth()!==n(d).getUTCMonth()),C=a(()=>R=>[...R,n(S)&&n(g).otherMonth]),D=a(()=>n(h)&&n(m).getUTCDay()===(n(f)?1:0)),w=a(()=>{let R;if(n(D)){let te=dl(n(m),r());n(v)?R=ke(n(v))?n(v)({date:Ue(n(m)),week:te}):n(v):R="W"+String(te).padStart(2,"0")}return R}),E=a(()=>n(y).get(n(m).getTime())),A=a(()=>{let R="";if(n(E)){let te="+"+n(E).length+" more";n(c)?R=ke(n(c))?n(c)({num:n(E).length,text:te}):n(c):R=te}return R});function Y(){l.popupDay=t.day}mr(e,{get date(){return n(m)},allDay:!0,get classes(){return n(C)},get disabled(){return n(_)},get highlight(){return n(k)},get noIeb(){return t.noIeb},get noBeb(){return t.noBeb},children:(R,te)=>{var ge=gu(),be=J(ge),se=fe(be);{var z=q=>{var oe=cu();Ae(oe,()=>Ze(n(p).format(n(m)))),ae(T=>Ie(oe,"datetime",T),[()=>ht(n(m),10)]),x(q,oe)};de(se,q=>{n(u).includes("dayNumber")&&q(z)})}var W=ie(se,2);{var P=q=>{var oe=hu();Ae(oe,()=>Ze(n(w))),ae(()=>N(oe,1,n(g).weekNumber)),x(q,oe)};de(W,q=>{n(D)&&q(P)})}var U=ie(be,2),F=fe(U);{var Q=q=>{var oe=vu(),T=a(()=>$r(Y));oe.__click=function(...V){n(T)?.apply(this,V)};var M=a(()=>Kr(Y));oe.__keydown=function(...V){n(M)?.apply(this,V)};var I=a($r);oe.__pointerdown=function(...V){n(I)?.apply(this,V)},Ae(oe,()=>Ze(n(A))),x(q,oe)};de(F,q=>{n(E)&&q(Q)})}ae(()=>{N(be,1,n(g).dayHead),N(U,1,n(g).dayFoot)}),x(R,ge)},$$slots:{default:!0}}),we(),s()}$t(["click","keydown","pointerdown"]);function yr(e,t){ye(t,!0);let r=De(t,"inPopup",3,!1),i=a(()=>re("state")),s=a(()=>n(i).options.dayMaxEvents),o=a(()=>re("view-state")),l=a(()=>n(o).colsCount),u=a(()=>n(o).gridEl),d=a(()=>n(o).hiddenChunks),f=a(()=>n(o).popupDay),c=Z(void 0),g=Z(1),h=Z(!1),v=a(()=>t.chunk.event),y=a(()=>t.chunk.event.display),p=a(()=>n(u).children.item((t.chunk.gridRow-1)*n(l)+t.chunk.gridColumn-1));Ke(()=>{r()||b(g,vn(n(p).firstElementChild)||1,!0)});let m=a(()=>D=>{if(D["grid-column"]=`${t.chunk.gridColumn} / span ${t.chunk.dates.length}`,D["grid-row"]=t.chunk.gridRow,!vt(n(y))){let w=r()?1:n(g);if(n(v)._margin){let[E,A]=n(v)._margin;E>w&&t.chunk.gridRow===A&&(w=E)}D["margin-block-start"]=`${w}px`}return n(h)&&(D.visibility="hidden"),D});function _(){b(g,Zs(t.chunk,vn(n(c)),vn(n(p).firstElementChild)||1),!0)}function k(){if(n(s)===!0){let D=vn(n(p))-S(n(p));if(b(h,t.chunk.bottom>D),n(h))for(let w of t.chunk.dates){let E=w.getTime();if(n(d).has(E)){let A=n(d).get(E);A.includes(t.chunk)||n(d).set(E,[...A,t.chunk])}else n(d).set(E,[t.chunk])}}else b(h,!1),n(d).size&&n(d).clear()}function S(D){let w=0;for(let E=0;E<t.chunk.dates.length&&(w=ct(w,vn(D.lastElementChild)),D=D.nextElementSibling,!!D);++E);return w}var C={reposition:_,hide:k};{let D=a(()=>r()&&n(f).dayStart),w=a(()=>[n(g),t.chunk.gridRow]);_r(e,{get chunk(){return t.chunk},get styles(){return n(m)},axis:"x",get forceDate(){return n(D)},get forceMargin(){return n(w)},get el(){return n(c)},set el(E){b(c,E,!0)}})}return we(C)}var pu=j('<dialog closedby="closerequest"><header><time></time>  <a role="button" tabindex="0">&times;</a></header> <div></div></dialog>');function _u(e,t){ye(t,!0);let r=re("view-state"),i=a(()=>re("state")),s=a(()=>n(i).interaction),o=a(()=>n(i).options.buttonText),l=a(()=>n(i).options.theme),u=a(()=>r.colsCount),d=a(()=>r.chunks),f=a(()=>r.gridEl),c=a(()=>r.intlDayPopover),g=a(()=>r.popupDay),h=Z(void 0),v=Z(""),y=a(()=>n(g).gridColumn),p=a(()=>n(g).gridRow),m=a(()=>n(g).dayStart),_=a(()=>n(g).dayEnd),k=a(()=>{let se=[];for(let z of n(d))z.gridRow===n(p)&&z.gridColumn<=n(y)&&z.gridColumn+z.dates.length>n(y)&&se.push(ve({},z,Yn(z.event,n(m),n(_))));return se.sort((z,W)=>z.top-W.top),se});Bn(()=>{n(h).show()}),Ke(()=>{n(k).length?ee(S):C()});function S(){let se=n(f).children.item((n(p)-1)*n(u)+n(y)-1),z=tn(n(h)),W=tn(se),P=tn(n(f));b(v,"");let U;if(z.width>=P.width){U=P.left-W.left;let Q=W.right-P.right;b(v,n(v)+`inset-inline-end:${Q}px;`)}else U=(W.width-z.width)/2,W.left+U<P.left?U=P.left-W.left:W.left+U+z.width>P.right&&(U=P.right-W.left-z.width);b(v,n(v)+`inset-inline-start:${U}px;`);let F;z.height>=P.height?(F=P.top-W.top,b(v,n(v)+`block-size:${P.height}px;`)):(F=(W.height-z.height)/2,W.top+F<P.top?F=P.top-W.top:W.top+F+z.height>P.bottom&&(F=P.bottom-W.top-z.height)),b(v,n(v)+`inset-block-start:${F}px;`)}function C(){r.popupDay=null}function D(){C(),n(s).action?.noClick()}var w=pu();let E;var A=fe(w),Y=fe(A);Ae(Y,()=>Ze(n(c).format(n(m))));var R=ie(Y,2);Ca(R);var te=a(()=>$r(C));R.__click=function(...se){n(te)?.apply(this,se)};var ge=a(()=>Kr(C));R.__keydown=function(...se){n(ge)?.apply(this,se)};var be=ie(A,2);ue(be,21,()=>n(k),Ce,(se,z)=>{yr(se,{get chunk(){return n(z)},inPopup:!0})}),it(w,se=>b(h,se),()=>n(h)),Ae(w,()=>nl("pointerdown")),ae(se=>{N(w,1,n(l).popup),E=Tt(w,n(v),E,{"grid-area":`${n(p)+1} / ${n(y)}`}),N(A,1,n(l).dayHead),Ie(Y,"datetime",se),Ie(R,"aria-label",n(o).close),N(be,1,n(l).events)},[()=>ht(n(m),10)]),ft("pointerdownoutside",w,D),ft("close",w,C),x(e,w),we()}$t(["click","keydown"]);var yu=j('<div role="columnheader"><span></span></div>'),wu=j('<section><header><div role="row"></div></header> <div><div></div> <div><!> <!> <!></div></div> <!></section>');function di(e,t){ye(t,!0);let r=re("state"),i=new ou(r);An("view-state",i);let s=a(()=>r.intlDayHeader),o=a(()=>r.intlDayHeaderAL),l=a(()=>r.options.dayMaxEvents),u=a(()=>r.options.theme),d=a(()=>i.grid),f=a(()=>i.chunks),c=a(()=>i.bgChunks),g=a(()=>i.iChunks),h=a(()=>i.hiddenChunks),v=a(()=>i.popupDay),y=[];function p(){ii(y,n(f)),n(h).clear(),fn().then(m)}function m(){n(h).size,y.forEach(C=>C?.hide())}Ke(p),Ke(m);var _=le(),k=J(_);{var S=C=>{var D=wu();let w;var E=fe(D),A=fe(E);ue(A,21,()=>n(d)[0],Ce,(P,U,F)=>{let Q=()=>n(U).dayStart;var q=yu();Ie(q,"aria-colindex",1+F);var oe=fe(q);Ae(oe,()=>Ze(n(s).format(Q()))),ae((T,M)=>{N(q,1,T),Ie(oe,"aria-label",M)},[()=>Lt([n(u).colHead,n(u).weekdays?.[Q().getUTCDay()]]),()=>n(o).format(Q())]),x(P,q)});var Y=ie(E,2),R=fe(Y);ue(R,21,()=>n(d),Ce,(P,U,F)=>{var Q=le(),q=J(Q);ue(q,17,()=>n(U),Ce,(oe,T,M)=>{{let I=a(()=>M+1===n(U).length),V=a(()=>F+1===n(d).length);mu(oe,{get day(){return n(T)},get noIeb(){return n(I)},get noBeb(){return n(V)}})}}),x(P,Q)}),it(R,P=>i.gridEl=P,()=>i?.gridEl);var te=ie(R,2),ge=fe(te);ue(ge,19,()=>n(f),P=>P.id,(P,U,F)=>{it(yr(P,{get chunk(){return n(U)}}),(Q,q)=>y[q]=Q,Q=>y?.[Q],()=>[n(F)])});var be=ie(ge,2);ue(be,17,()=>n(c),P=>P.id,(P,U)=>{yr(P,{get chunk(){return n(U)}})});var se=ie(be,2);ue(se,17,()=>n(g),Ce,(P,U)=>{yr(P,{get chunk(){return n(U)}})});var z=ie(Y,2);{var W=P=>{_u(P,{})};de(z,P=>{n(v)&&P(W)})}it(D,P=>r.mainEl=P,()=>r?.mainEl),Ae(D,()=>Zr(p)),ae(()=>{N(D,1,Lt([n(u).main,n(l)===!0&&n(u).uniform])),w=Tt(D,"",w,{"--ec-grid-cols":n(d)[0].length,"--ec-grid-rows":n(d).length}),N(E,1,n(u).header),N(A,1,n(u).grid),N(Y,1,n(u).body),N(R,1,n(u).grid),N(te,1,n(u).events)}),x(C,D)};de(k,C=>{n(d).length&&n(d)[0].length&&C(S)})}x(e,_),we()}const bu={createOptions(e){ve(e,{dayMaxEvents:!1,dayCellFormat:{day:"numeric"},dayPopoverFormat:{month:"long",day:"numeric",year:"numeric"},moreLinkContent:void 0,weekNumbers:!1,weekNumberContent:void 0,view:"dayGridMonth"}),ve(e.buttonText,{dayGridDay:"day",dayGridMonth:"month",dayGridWeek:"week",close:"Close"}),ve(e.theme,{uniform:"ec-uniform",dayFoot:"ec-day-foot",otherMonth:"ec-other-month",popup:"ec-popup",weekNumber:"ec-week-number"}),ve(e.views,{dayGridDay:{buttonText:qn,component:()=>di,dayHeaderFormat:{weekday:"long"},displayEventEnd:!1,duration:{days:1},theme:st("ec-day-grid ec-day-view")},dayGridWeek:{buttonText:Xn,component:()=>di,displayEventEnd:!1,theme:st("ec-day-grid ec-week-view")},dayGridMonth:{buttonText:oi,component:ku,dayHeaderFormat:{weekday:"short"},dayHeaderAriaLabelFormat:{weekday:"long"},displayEventEnd:!1,duration:{months:1},theme:st("ec-day-grid ec-month-view"),titleFormat:{year:"numeric",month:"long"}}})}};function ku(e){return e.features=["dayNumber"],e.extensions.activeRange=(t,r)=>{let{options:{firstDay:i}}=e;return{start:Fs(t,i),end:ul(r,i)}},di}function lo(e,t,r){return e.startEditable??t??e.editable??r}function Cu(e,t,r){return e.durationEditable??t??e.editable??r}let fi=!1;function Du(e){fi||(fi=!0,window.requestAnimationFrame(()=>{e(),fi=!1}))}function uo(e,t,r){return ct(t,Pt(r,e))}function Eu(e){return()=>{let{options:{editable:t,eventStartEditable:r,theme:i}}=e;e.iClasses=(s,o)=>{let{display:l}=o;return[...s,vr(l)?[i[l]]:!vt(l)&&lo(o,r,t)?[i.draggable]:[]]}}}function Tu(e){return()=>{let{interaction:t,mainEl:r}=e;if(r)return Gn(r,"scroll",()=>{t.action.handleScroll(),t.pointer?.handleScroll()})}}class xu{constructor(t){this.#e(t)}#e(t){ln(Eu(t)),Ke(Tu(t))}}function Su(e,t){ye(t,!0);let r=re("state"),i=a(()=>r.events),s=a(()=>r.iEvents),o=a(()=>r.features),l=a(()=>r.view),u=a(()=>r.mainEl),d=a(()=>r.options.dateClick),f=a(()=>r.options.dragConstraint),c=a(()=>r.options.dragScroll),g=a(()=>r.options.editable),h=a(()=>r.options.eventStartEditable),v=a(()=>r.options.eventDragMinDistance),y=a(()=>r.options.eventDragStart),p=a(()=>r.options.eventDragStop),m=a(()=>r.options.eventDrop),_=a(()=>r.options.eventLongPressDelay),k=a(()=>r.options.eventResizeStart),S=a(()=>r.options.eventResizeStop),C=a(()=>r.options.eventResize),D=a(()=>r.options.longPressDelay),w=a(()=>r.options.resizeConstraint),E=a(()=>r.options.selectable),A=a(()=>r.options.select),Y=a(()=>r.options.selectBackgroundColor),R=a(()=>r.options.selectConstraint),te=a(()=>r.options.selectLongPressDelay),ge=a(()=>r.options.selectMinDistance),be=a(()=>r.options.unselect),se=a(()=>r.options.unselectAuto),z=a(()=>r.options.unselectCancel),W=a(()=>r.options.validRange);const P=1,U=2,F=3,Q=4,q=5,oe=6;let T,M,I,V,Ye,Oe,bt,Le,Ne,gt,At,B,K,Se,H,G,he,me,ne,Re,ze,ot,Me,Te,at,He,mt;function Rn(L){return lo(L,n(h),n(g))}function ki(L,O,pe,$,je){T||(T=Ti(O)?P:oe,mn()&&(I=L,Ei(O,je),pe&&(Oe=pe),$&&(at=$),me="dragging",In(O)))}function Ci(L,O,pe,$,je,Jn,Si,jd){T||(T=Ti(O)?pe?F:U:oe,mn()&&(I=L,Ei(O,jd),je&&(Oe=je),Jn&&(at=Jn),me=$==="x"?"resizingX":"resizingY",Cr()?(ne=X(I.end),he?(ei(ne,I.start),ne>=I.end&&Dn(ne)):(cr(ne,He),ne<I.start&&(ne=I.start),Oe=I.start)):(ne=X(I.start),he?(ei(ne,I.end),ne<=I.start&&!Si&&wt(ne)):(xe(ne,He),ne>I.end&&(ne=I.end),Oe=I.end,Si||(Oe=cr(X(Oe),He))),Si&&!he&&(mt=He)),In(O)))}function Di(L,O){T||(T=Ti(L)?n(E)&&!n(o).includes("list")?Q:q:oe,mn()&&(Ei(L,O),me="selecting",Re=he?Fe({day:1}):He,I={allDay:he,start:Oe,end:xe(X(Oe),Re),resourceIds:Le?[Le.id]:[]},In(L)))}function Ud(){T||(T=oe)}function Ei(L,O){window.getSelection().removeAllRanges(),gt=B=L.clientX,At=K=L.clientY,He=O?.duration;let pe=En(B,K);({allDay:he,date:Oe,resource:Le}=qt(pe)(B,K)),H=n(u)!==Ys(pe,3),Se=Ys(pe,1),Co(),L.pointerType!=="mouse"&&(Me=setTimeout(()=>{T&&(M=!0,In(L))},(nn()?n(te):n(_))??n(D)))}function In(L){if(M||L&&L.pointerType==="mouse"&&Yd()>=(nn()?n(ge):n(v))){M=!0,Dr(L),r.iClass=me,V||(nn()?Gd():Bd(L,Ln()?n(k):n(y)));let O=Zn(Vd());if(O){let pe;if({allDay:pe,date:bt,resource:Ne}=O,pe===he){let $=kr({},V),je=n(w);G=Fe((bt-Oe)/1e3),Cr()?($.start=xe(X(I.start),G),$.start>ne&&($.start=ne,G=Fe((ne-I.start)/1e3))):($.end=xe(X(I.end),G),mt&&xe($.end,mt),Ln()?$.end<ne&&($.end=ne,G=Fe((ne-I.end)/1e3)):nn()?($.end<I.end?($.start=cr($.end,Re),$.end=I.end):$.start=I.start,je=n(R)):($.start=xe(X(I.start),G),Le&&($.resourceIds=I.resourceIds.filter(Jn=>Jn!==Le.id),$.resourceIds.push(Ne.id)),je=n(f)));do{if(je!==void 0&&($=kr(ri(I),$),je(nn()?xo($,L):So($,I,L))===!1)){To(I);break}To($)}while(!1)}}}if(n(c)){let O=24,pe=24;Du(()=>{Te&&(H||(K<Te.top+O&&(n(u).scrollTop+=ct(-8,(K-Te.top-O)/3)),K>Te.bottom-O&&(n(u).scrollTop+=Pt(8,(K-Te.bottom+O)/3))),B<Te.left+pe&&(n(u).scrollLeft+=ct(-8,(B-Te.left-pe)/3)),B>Te.right-pe&&(n(u).scrollLeft+=Pt(8,(B-Te.right+pe)/3)),K<O&&window.scrollBy(0,ct(-8,(K-O)/3)),K>window.innerHeight-O&&window.scrollBy(0,Pt(8,(K-window.innerHeight+O)/3)))})}}function bo(){mn()&&(Co(),In())}function zd(L){mn()&&L.isPrimary&&(B=L.clientX,K=L.clientY,In(L))}function ko(L){if(ze&&n(se)&&!(n(z)&&L.target.closest(n(z)))&&Dr(L),T&&L.isPrimary){if(M)if(nn()){if(ze=!0,ke(n(A))){let O=xo(V,L);n(A)(O)}}else{I.display=Ye;let O=Ln()?n(S):n(p);ke(O)&&O({event:Ge(I),jsEvent:L,view:Qe(n(l))});let pe=ri(I);if(Eo(I,V),Do(),O=Ln()?n(C):n(m),ke(O)){let $=I,je=So(I,pe,L);O(ve(je,{revert(){Eo($,pe)}}))}}else if((qd()||nn())&&ke(n(d))&&!ot){B=L.clientX,K=L.clientY;let O=En(B,K);if(O){let{allDay:pe,date:$,resource:je}=qt(O)(B,K);n(d)({allDay:pe,date:Ue($),dateStr:ht($),dayEl:O,jsEvent:L,view:Qe(n(l)),resource:je})}}M=!1,T=gt=At=B=K=I=Ye=Oe=bt=Le=Ne=G=mt=he=ne=Re=at=Se=Te=He=void 0,r.iClass=void 0,Me&&(clearTimeout(Me),Me=void 0)}ot=!1}function Vd(){return En(uo(B,Te.left,Te.right),uo(K,Te.top,Te.bottom))}function Zn(L){if(L){let O=qt(L)(B,K);if(O.disabled){if(!n(W).end||O.date<n(W).end)return Zn(L.nextElementSibling);if(!n(W).start||O.date>n(W).start)return Zn(L.previousElementSibling)}else return(nn()||Ln())&&O.resource&&!V.resourceIds.includes(O.resource.id)&&!n(o).includes("timeline")?B>gt?Zn(L.previousElementSibling):Zn(L.nextElementSibling):O}return null}function Co(){let L=tn(n(u)),O=tn(Se),pe=L.width/n(u).offsetWidth,$=L.height/n(u).offsetHeight,je=hn();Te={left:ct(0,je?L.right-n(u).clientWidth*pe:O.left+n(u).scrollLeft*pe),right:Pt(document.documentElement.clientWidth,je?O.right+n(u).scrollLeft*pe:L.left+n(u).clientWidth*pe)-2,top:ct(0,O.top+(H?0:n(u).scrollTop)*$),bottom:Pt(document.documentElement.clientHeight,H?O.bottom:L.top+n(u).clientHeight*$)-2}}function Bd(L,O){ke(O)&&O({event:Ge(I),jsEvent:L,view:Qe(n(l))}),Ye=I.display,I.display="preview",V=ri(I),at!==void 0&&(V._margin=at),mt&&xe(V.end,mt),I.display="ghost",r.events=[...n(i)]}function Gd(){V={id:"{select}",allDay:I.allDay,start:I.start,title:"",display:"preview",extendedProps:{},backgroundColor:n(Y),resourceIds:I.resourceIds,classNames:[],styles:[]}}function Do(){V=void 0,n(s).delete("action")}function kr(L,O){return L.start=O.start,L.end=O.end,L.resourceIds=O.resourceIds,{...L}}function Eo(L,O){kr(L,O),r.events=[...n(i)]}function To(L){V=kr(V,L),n(s).set("action",V)}function xo(L,O){let{start:pe,end:$}=Ge(L);return{start:pe,end:$,startStr:ht(L.start),endStr:ht(L.end),allDay:he,view:Qe(n(l)),resource:Le,jsEvent:O}}function So(L,O,pe){let $;return Ln()?$=Cr()?{startDelta:G,endDelta:Fe(0)}:{startDelta:Fe(0),endDelta:G}:$={delta:G,oldResource:Le!==Ne?Le:void 0,newResource:Le!==Ne?Ne:void 0},ve($,{event:Ge(L),oldEvent:Ge(O),view:Qe(n(l)),jsEvent:pe}),$}function Yd(){return Math.sqrt(Math.pow(B-gt,2)+Math.pow(K-At,2))}function Ln(){return T===U||Cr()}function Cr(){return T===F}function qd(){return T===q}function nn(){return T===Q}function mn(){return T&&T<q}function Ti(L){return L.isPrimary&&(L.pointerType!=="mouse"||L.buttons&1)}function Dr(L){ze&&(ze=!1,Do(),ke(n(be))&&n(be)({jsEvent:L,view:Qe(n(l))}))}ln(()=>{n(l),Dr()});function Xd(){ot=!0}function Kd(L){if(mn()){let O=L.target,pe=[],$=()=>al(pe);pe.push(Gn(O,"touchmove",xi(()=>M))),pe.push(Gn(O,"touchend",$)),pe.push(Gn(O,"touchcancel",$))}}function xi(L){return O=>{L()&&O.preventDefault()}}Bn(()=>Gn(window,"touchmove",ll,{passive:!1}));var Zd={draggable:Rn,drag:ki,resize:Ci,select:Di,noAction:Ud,handleScroll:bo,unselect:Dr,noClick:Xd};ft("pointermove",Ct,zd),ft("pointerup",Ct,ko),ft("pointercancel",Ct,ko),ft("scroll",Ct,bo);var Jd=a(()=>xi(mn));ft("selectstart",Ct,function(...L){n(Jd)?.apply(this,L)});var Qd=a(()=>xi(()=>Me));return ft("contextmenu",Ct,function(...L){n(Qd)?.apply(this,L)}),ft("touchstart",Ct,Kd,void 0,!0),we(Zd)}function Ru(e,t){ye(t,!0);let r=a(()=>re("state")),i=a(()=>n(r).iEvents),s=a(()=>n(r).options.slotDuration),o=0,l=0,u;function d(){let p=En(o,l);if(p&&!n(i).has("action")){let{allDay:m,date:_,resource:k,disabled:S}=qt(p)(o,l);if(!S){u||g(),u.allDay=m,u.start=_,u.end=xe(X(_),n(s)),u.resourceIds=k?[k.id]:[],n(i).set("pointer",{...u});return}}h()}function f(){d()}function c(p){v(p)&&(o=p.clientX,l=p.clientY,d())}function g(){u={id:"{pointer}",title:"",display:"pointer",extendedProps:{},backgroundColor:"transparent",classNames:[],styles:[]}}function h(){u=void 0,n(i).delete("pointer")}function v(p){return p.isPrimary&&p.pointerType==="mouse"}var y={handleScroll:f};return ft("pointermove",Ct,c),ft("scroll",Ct,f),we(y)}var Iu=j("<div></div>"),Lu=j("<div></div>"),Pu=j("<!> <!> <!>",1);function Mu(e,t){ye(t,!0);let r=De(t,"forceDate",3,void 0),i=De(t,"forceMargin",3,void 0),s=a(()=>re("state")),o=a(()=>n(s).interaction.action),l=a(()=>n(s).options.editable),u=a(()=>n(s).options.eventDurationEditable),d=a(()=>n(s).options.eventResizableFromStart),f=a(()=>n(s).options.theme),c=a(()=>re("view-state")),g=a(()=>n(c).snap),h=a(()=>t.chunk.event),v=a(()=>t.chunk.event.display),y=a(()=>!vt(n(v))&&!vr(n(v))&&Cu(n(h),n(u),n(l)));function p(w){return E=>n(o).resize(n(h),E,w,t.axis,r(),i(),t.chunk.zeroDuration,n(g))}var m=Pu(),_=J(m);{var k=w=>{var E=Iu(),A=a(()=>p(!0));E.__pointerdown=function(...Y){n(A)?.apply(this,Y)},ae(()=>N(E,1,`${n(f).resizer??""} ${n(f).start??""}`)),x(w,E)};de(_,w=>{n(y)&&n(d)&&w(k)})}var S=ie(_,2);Yt(S,()=>t.children);var C=ie(S,2);{var D=w=>{var E=Lu(),A=a(()=>p(!1));E.__pointerdown=function(...Y){n(A)?.apply(this,Y)},ae(()=>N(E,1,n(f).resizer)),x(w,E)};de(C,w=>{n(y)&&w(D)})}x(e,m),we()}$t(["pointerdown"]);var Au=j("<!> <!>",1);function Ou(e,t){ye(t,!0);let r=re("state");new xu(r);let i=a(()=>r.interaction),s=a(()=>r.options.pointer);n(i).resizer=Mu;var o=Au(),l=J(o);it(Su(l,{}),f=>n(i).action=f,()=>n(i)?.action);var u=ie(l,2);{var d=f=>{it(Ru(f,{}),c=>n(i).pointer=c,()=>n(i)?.pointer)};de(u,f=>{n(s)&&f(d)})}x(e,o),we()}const Nu={createOptions(e){ve(e,{dateClick:void 0,dragConstraint:void 0,dragScroll:!0,editable:!1,eventDragMinDistance:5,eventDragStart:void 0,eventDragStop:void 0,eventDrop:void 0,eventDurationEditable:!0,eventLongPressDelay:void 0,eventResizableFromStart:!1,eventResizeStart:void 0,eventResizeStop:void 0,eventResize:void 0,eventStartEditable:!0,longPressDelay:1e3,pointer:!1,resizeConstraint:void 0,select:void 0,selectBackgroundColor:void 0,selectConstraint:void 0,selectLongPressDelay:void 0,selectMinDistance:5,snapDuration:void 0,unselect:void 0,unselectAuto:!0,unselectCancel:""}),ve(e.theme,{draggable:"ec-draggable",ghost:"ec-ghost",preview:"ec-preview",pointer:"ec-pointer",resizer:"ec-resizer",start:"ec-start",dragging:"ec-dragging",resizingY:"ec-resizing-y",resizingX:"ec-resizing-x",selecting:"ec-selecting"})},initState(e){e.auxComponents.push(Ou)}};let Fu=class{#e;get intlListDay(){return n(this.#e)}set intlListDay(t){b(this.#e,t)}#n;get intlListDaySide(){return n(this.#n)}set intlListDaySide(t){b(this.#n,t)}constructor(t){this.#e=a(gn(t,"listDayFormat")),this.#n=a(gn(t,"listDaySideFormat"))}};var Hu=j("<div></div> <!>",1);function Wu(e,t){ye(t,!0);let r=a(()=>re("state")),i=a(()=>n(r).interaction),s=a(()=>n(r).options.theme),o=a(()=>l=>(delete l["background-color"],delete l.color,l));{const l=(d,f=Xt,c=Xt,g=Xt)=>{var h=Hu(),v=J(h);let y;var p=ie(v,2);Yt(p,f),ae(()=>{N(v,1,n(s).eventTag),y=Tt(v,"",y,{"background-color":c()})}),x(d,h)};let u=a(()=>n(i).action?.noAction);ao(e,{get chunk(){return t.chunk},get styles(){return n(o)},get onpointerdown(){return n(u)},body:l,$$slots:{body:!0}})}we()}var Uu=j("<h4><time></time> <time></time></h4> <!>",1);function zu(e,t){ye(t,!0);let r=a(()=>re("state")),i=a(()=>n(r).filteredEvents),s=a(()=>n(r).options.highlightedDates),o=a(()=>n(r).options.theme),l=a(()=>n(r).options.validRange),u=a(()=>re("view-state")),d=a(()=>n(u).intlListDay),f=a(()=>n(u).intlListDaySide),c=a(()=>n(s).some(_=>Je(_,t.date))),g=a(()=>Sn(t.date,n(l))),h=a(()=>ht(t.date,10)),v=a(()=>{let _=[];if(!n(g)){let k=t.date,S=wt(X(t.date));for(let C of n(i))if(!vt(C.display)&&Tn(C,k,S)){let D=Yn(C,k,S);_.push(D)}}return _});var y=le(),p=J(y);{var m=_=>{mr(_,{get date(){return t.date},allDay:!0,role:"listitem",get disabled(){return n(g)},get highlight(){return n(c)},children:(k,S)=>{var C=Uu(),D=J(C),w=fe(D);Ae(w,()=>Ze(n(d).format(t.date)));var E=ie(w,2);Ae(E,()=>Ze(n(f).format(t.date)));var A=ie(D,2);ue(A,17,()=>n(v),Y=>Y.event,(Y,R)=>{Wu(Y,{get chunk(){return n(R)}})}),ae(()=>{N(D,1,n(o).dayHead),Ie(w,"datetime",n(h)),N(E,1,n(o).daySide),Ie(E,"datetime",n(h))}),x(k,C)},$$slots:{default:!0}})};de(p,_=>{n(v).length&&_(m)})}x(e,y),we()}var Vu=j("<div></div>"),Bu=j("<section><!></section>");function Gu(e,t){ye(t,!0);let r=re("state"),i=new Fu(r);An("view-state",i);let s=a(()=>r.filteredEvents),o=a(()=>r.view),l=a(()=>r.viewDates),u=a(()=>r.options.noEventsClick),d=a(()=>r.options.noEventsContent),f=a(()=>r.options.theme),c=a(()=>{let _=!0;if(n(l).length){let k=n(l)[0],S=wt(X(n(l).at(-1)));for(let C of n(s))if(!vt(C.display)&&C.start<S&&C.end>k){_=!1;break}}return _}),g=a(()=>ke(n(d))?n(d)():n(d));function h(_){ke(n(u))&&n(u)({jsEvent:_,view:Qe(n(o))})}var v=Bu(),y=fe(v);{var p=_=>{var k=Vu();k.__click=h,Ae(k,()=>Ze(n(g))),ae(()=>N(k,1,n(f).noEvents)),x(_,k)},m=_=>{var k=le(),S=J(k);ue(S,17,()=>n(l),Ce,(C,D)=>{zu(C,{get date(){return n(D)}})}),x(_,k)};de(y,_=>{n(c)?_(p):_(m,!1)})}it(v,_=>r.mainEl=_,()=>r?.mainEl),ae(()=>N(v,1,n(f).main)),x(e,v),we()}$t(["click"]);const Yu={createOptions(e){ve(e,{listDayFormat:{weekday:"long"},listDaySideFormat:{year:"numeric",month:"long",day:"numeric"},noEventsClick:void 0,noEventsContent:"No events",view:"listWeek"}),ve(e.buttonText,{listDay:"list",listWeek:"list",listMonth:"list",listYear:"list"}),ve(e.theme,{daySide:"ec-day-side",eventTag:"ec-event-tag",noEvents:"ec-no-events"}),ve(e.views,{listDay:{buttonText:qn,component:wr,duration:{days:1},theme:st("ec-list ec-day-view")},listWeek:{buttonText:Xn,component:wr,duration:{weeks:1},theme:st("ec-list ec-week-view")},listMonth:{buttonText:oi,component:wr,duration:{months:1},theme:st("ec-list ec-month-view")},listYear:{buttonText:Cl,component:wr,duration:{years:1},theme:st("ec-list ec-year-view")}})}};function wr(e){return e.features=["list"],Gu}function ci(e,t,r=!0){let i=[];for(let{gridColumn:s,gridRow:o,resource:l,start:u,end:d,disabled:f}of t)if(!f&&Tn(e,u,d,l)){let c=Yn(e,u,d);ve(c,{gridColumn:s,gridRow:o,top:(c.start-u)/1e3,height:(c.end-c.start)/1e3,maxHeight:(d-c.start)/1e3}),r&&si(c),i.push(c)}return i}function qu(e){let t={};for(let r of e){let{gridColumn:i}=r,s=t[i],o=0;if(s&&r.start<s.end){for(;o<s.columns.length&&!(s.columns[o].at(-1).end<=r.start);++o);r.end>s.end&&(s.end=r.end)}else s={columns:[],end:r.end};s.columns.length<o+1&&s.columns.push([]),s.columns[o].push(r),t[i]=s,r.group=s,r.groupColumn=o}}function Xu(e){let t="all-day",r;return e?(r=ke(e)?e({text:t}):e,typeof r=="string"&&(r={html:r})):r={html:t},r}function hi(e){e.extensions.activeRange=(t,r)=>{let{options:{slotMaxTime:i}}=e;if(i.days||i.seconds>fr){xe(Dn(r),i);let s=Dn(X(r));s<t&&(t=s)}return{start:t,end:r}}}function vi(e){"scrollTime"in e||(ve(e,{columnWidth:void 0,flexibleSlotTimeLimits:!1,nowIndicator:!1,scrollTime:"06:00:00",slotDuration:"00:30:00",slotHeight:24,slotLabelInterval:void 0,slotLabelFormat:{hour:"numeric",minute:"2-digit"},slotMaxTime:"24:00:00",slotMinTime:"00:00:00",snapDuration:void 0}),ve(e.theme,{nowIndicator:"ec-now-indicator",sidebar:"ec-sidebar",slot:"ec-slot"}))}function fo(e){"allDaySlot"in e||(ve(e,{allDayContent:void 0,allDaySlot:!0,slotEventOverlap:!0}),ve(e.theme,{allDay:"ec-all-day"}))}function gi(e){"scrollTime"in e||ve(e,{scrollTime:Fe,slotDuration:Fe,slotLabelInterval:t=>t!==void 0?Fe(t):void 0,slotMaxTime:Fe,slotMinTime:Fe,snapDuration:t=>t!==void 0?Fe(t):void 0})}function co(e){"resourceLabelContent"in e||(e.filterResourcesWithEvents=!1,e.resourceLabelContent=void 0,e.resourceLabelDidMount=void 0)}function Ku(e,t){return()=>{let{viewDates:r,options:{highlightedDates:i,validRange:s}}=e,{slotTimeLimits:o}=t,l=[];return ee(()=>{let u=1;for(let d of r)l.push({gridColumn:u,gridRow:1,resource:void 0,start:xe(X(d),o.min),end:xe(X(d),o.max),dayStart:d,dayEnd:wt(X(d)),disabled:Sn(d,s),highlight:i.some(f=>Je(f,d))}),++u}),[l]}}function Zu(e,t){return()=>{let{filteredEvents:r}=e,{grid:i}=t,s=[],o=[],l=[],u=[];return ee(()=>{for(let d of r)for(let f of i)vt(d.display)?(o=o.concat(ci(d,f)),d.allDay&&(u=u.concat(xn(d,f)))):d.allDay?l=l.concat(xn(d,f)):s=s.concat(ci(d,f));qu(s),Ks(l)}),{chunks:s,bgChunks:o,allDayChunks:l,allDayBgChunks:u}}}function Ju(e,t){return()=>{let{iEvents:r}=e,{grid:i}=t,s=[],o=[];for(let[,l]of r)l&&ee(()=>{for(let u of i)l.allDay?o=o.concat(xn(l,u,!1)):s=s.concat(ci(l,u,!1))});return{iChunks:s,allDayIChunks:o}}}function Qu(e){return()=>{let{filteredEvents:t,viewDates:r,options:{flexibleSlotTimeLimits:i,slotMinTime:s,slotMaxTime:o}}=e,l;return ee(()=>{l=no(s,o,i,r,t)}),l}}function ju(e){return()=>{let{options:{slotDuration:t,slotLabelInterval:r}}=e,i;return ee(()=>{i=r===void 0?_e(t)<3600?2:1:rl(_e(r)/_e(t))||1}),i}}function $u(e,t){return()=>{let{options:{slotDuration:r}}=e,{intlSlotLabel:i,slotLabelPeriodicity:s,slotTimeLimits:o}=t,l;return ee(()=>{l=to(xt(Mt()),r,s,o,i)}),l}}function ed(e){return()=>{let{options:{slotDuration:t,snapDuration:r}}=e;return r??=t,{duration:r,ratio:_e(r)/_e(t)}}}function mi(){return class{#e;get intlSlotLabel(){return n(this.#e)}set intlSlotLabel(e){b(this.#e,e)}#n;get slotLabelPeriodicity(){return n(this.#n)}set slotLabelPeriodicity(e){b(this.#n,e)}#t;get sidebarWidth(){return n(this.#t)}set sidebarWidth(e){b(this.#t,e,!0)}#r;get snap(){return n(this.#r)}set snap(e){b(this.#r,e)}constructor(e){this.#e=a(gn(e,"slotLabelFormat")),this.#n=a(ju(e)),this.#t=Z(0),this.#r=a(ed(e))}}}function ho(e){return class extends e{#e;get slotTimeLimits(){return n(this.#e)}set slotTimeLimits(t){b(this.#e,t)}#n;get slots(){return n(this.#n)}set slots(t){b(this.#n,t)}#t;get chunks(){return n(this.#t)}set chunks(t){b(this.#t,t)}#r;get bgChunks(){return n(this.#r)}set bgChunks(t){b(this.#r,t)}#s;get allDayChunks(){return n(this.#s)}set allDayChunks(t){b(this.#s,t)}#i;get allDayBgChunks(){return n(this.#i)}set allDayBgChunks(t){b(this.#i,t)}#o;get iChunks(){return n(this.#o)}set iChunks(t){b(this.#o,t)}#a;get allDayIChunks(){return n(this.#a)}set allDayIChunks(t){b(this.#a,t)}constructor(t){super(t),this.#e=a(Qu(t)),this.#n=a($u(t,this));let r=a(Zu(t,this)),i=a(()=>n(r).chunks),s=a(()=>n(r).bgChunks),o=a(()=>n(r).allDayChunks),l=a(()=>n(r).allDayBgChunks);this.#t=a(()=>n(i)),this.#r=a(()=>n(s)),this.#s=a(()=>n(o)),this.#i=a(()=>n(l));let u=a(Ju(t,this)),d=a(()=>n(u).iChunks),f=a(()=>n(u).allDayIChunks);this.#o=a(()=>n(d)),this.#a=a(()=>n(f))}}}let td=class extends ho(mi()){#e;get grid(){return n(this.#e)}set grid(t){b(this.#e,t)}constructor(t){super(t),this.#e=a(Ku(t,this))}};function nd(e){return()=>{let{activeRange:t,filteredEvents:r,options:{filterResourcesWithEvents:i,resources:s},extensions:{viewResources:o}}=e,l=o?o(s):s;return ee(()=>{i&&(l=s.filter(u=>r.some(d=>!vt(d.display)&&Tn(d,t.start,t.end,u)))),l.length||(l=js([{}]))}),l}}function rd(e,t){return()=>{let{viewDates:r,options:{datesAboveResources:i,highlightedDates:s,validRange:o}}=e,{slotTimeLimits:l,viewResources:u}=t,d=[];return ee(()=>{let f=1,c=i?[r,u]:[u,r];for(let g of c[0]){let h=[];for(let v of c[1]){let y=i?g:v,p=i?v:g;h.push({gridColumn:f,gridRow:1,resource:p,start:xe(X(y),l.min),end:xe(X(y),l.max),dayStart:y,dayEnd:wt(X(y)),disabled:Sn(y,o),highlight:s.some(m=>Je(m,y))}),++f}d.push(h)}}),d}}function vo(e){return class extends e{#e;get viewResources(){return n(this.#e)}set viewResources(t){b(this.#e,t)}constructor(t){super(t),this.#e=a(nd(t))}}}let id=class extends vo(ho(mi())){#e;get grid(){return n(this.#e)}set grid(t){b(this.#e,t)}constructor(t){super(t),this.#e=a(rd(t,this))}};var sd=j("<span></span>");function pi(e,t){ye(t,!0);let r=De(t,"date",3,void 0),i=De(t,"setLabel",3,void 0),s=a(()=>re("state")),o=a(()=>n(s).intlDayHeaderAL),l=a(()=>n(s).options.resourceLabelContent),u=a(()=>n(s).options.resourceLabelDidMount),d=Z(void 0),f=a(()=>n(l)?ke(n(l))?n(l)({resource:t.resource,date:r()?Ue(r()):void 0}):n(l):t.resource.title),c=Z(void 0);Ke(()=>{n(f),ee(()=>{r()?b(c,n(o).format(r())+", "+n(d).innerText):i()&&(b(c,void 0),i()(n(d).innerText))})}),Bn(()=>{ke(n(u))&&n(u)({resource:t.resource,date:r()?Ue(r()):void 0,el:n(d)})});var g=sd();it(g,h=>b(d,h),()=>n(d)),Ae(g,()=>Ze(n(f))),ae(()=>Ie(g,"aria-label",n(c))),x(e,g),we()}function go(e,t){ye(t,!0);let r=De(t,"allDay",3,!1),i=a(()=>re("state")),s=a(()=>n(i).options.slotHeight),o=a(()=>re("view-state")),l=a(()=>n(o).snap),u=a(()=>t.day.dayStart),d=a(()=>t.day.start),f=a(()=>t.day.resource),c=a(()=>t.day.disabled),g=a(()=>t.day.highlight),h=Z(void 0);function v(y,p){if(r())return n(u);{let m=tn(n(h)),_=m.height/n(h).offsetHeight;return xe(X(n(d)),n(l).duration,Jr((p-m.top)/(n(s)*n(l).ratio*_)))}}mr(e,{get date(){return n(u)},get allDay(){return r()},get resource(){return n(f)},dateFromPoint:v,get disabled(){return n(c)},get highlight(){return n(g)},get noIeb(){return t.noIeb},get noBeb(){return t.noBeb},get el(){return n(h)},set el(y){b(h,y,!0)}}),we()}function _i(e,t){ye(t,!0);let r=a(()=>re("state")),i=a(()=>n(r).options.slotEventOverlap),s=a(()=>n(r).options.slotDuration),o=a(()=>n(r).options.slotHeight),l=a(()=>u=>{let d=_e(n(s)),f=t.chunk.top/d*n(o),c=t.chunk.height/d*n(o)||n(o),g=t.chunk.maxHeight/d*n(o);u["grid-column"]=t.chunk.gridColumn,u["inset-block-start"]=`${f}px`,u["min-block-size"]=`${c}px`,u["block-size"]=`${c}px`,u["max-block-size"]=`${g}px`;let h="100% - var(--ec-event-col-gap)";if(t.chunk.group){let v=t.chunk.group.columns.length;u["z-index"]=`${t.chunk.groupColumn+1}`,u["inset-inline-start"]=`calc((${h}) / ${v} * ${t.chunk.groupColumn})`,u["inline-size"]=`calc((${h}) / ${v} * ${n(i)?.5*(1+v-t.chunk.groupColumn):1})`}return u});_r(e,{get chunk(){return t.chunk},get styles(){return n(l)},axis:"y"}),we()}function yi(e,t){ye(t,!0);let r=Z(void 0),i=Z(0),s=a(()=>t.chunk.event),o=a(()=>d=>(d["grid-column"]=`${t.chunk.gridColumn} / span ${t.chunk.dates.length}`,(n(i)||n(s)._margin)&&(d["margin-block-start"]=`${n(s)._margin??n(i)}px`),d));function l(){b(i,Zs(t.chunk,vn(n(r))),!0)}var u={reposition:l};return _r(e,{get chunk(){return t.chunk},get styles(){return n(o)},axis:"x",get forceMargin(){return n(i)},get el(){return n(r)},set el(d){b(r,d,!0)}}),we(u)}var od=j("<div></div>");function br(e,t){ye(t,!0);let r=De(t,"span",3,1),i=a(()=>re("state")),s=a(()=>n(i).mainEl),o=a(()=>n(i).now),l=a(()=>n(i).today),u=a(()=>n(i).options.slotDuration),d=a(()=>n(i).options.slotHeight),f=a(()=>n(i).options.theme),c=a(()=>re("view-state")),g=a(()=>n(c).sidebarWidth),h=a(()=>{for(let w of t.days)if(Je(w.dayStart,n(l)))return w;return{}}),v=a(()=>n(h).gridColumn),y=a(()=>n(h).start),p=a(()=>n(h).end),m=a(()=>{if(n(o)<n(y)||n(o)>n(p))return null;let w=_e(n(u));return(n(o)-n(y))/1e3/w*n(d)}),_=a(()=>({root:n(s),rootMargin:hn()?`0px -${n(g)+5.5}px 0px 0px`:`0px 0px 0px -${n(g)+5.5}px`,threshold:0}));function k(w,E){w.classList.toggle(n(f).hidden,!E.isIntersecting)}var S=le(),C=J(S);{var D=w=>{var E=od();let A;Ae(E,()=>Os(k,n(_))),ae(()=>{N(E,1,n(f).nowIndicator),A=Tt(E,"",A,{"grid-column":`${n(v)+1} / span ${r()??""}`,"inset-block-start":`${n(m)??""}px`})}),x(w,E)};de(C,w=>{n(v)&&n(m)!==null&&w(D)})}x(e,S),we()}var ad=j('<div><aside></aside> <div role="row"></div> <div><!> <!> <!></div></div>'),ld=j("<div><time></time></div>"),ud=j('<section><header><aside></aside> <div role="row"><!></div> <!></header> <div role="rowgroup"><aside aria-hidden="true"></aside> <div role="row"></div> <div><!> <!> <!></div></div> <!></section>');function mo(e,t){ye(t,!0);let r=De(t,"viewState",7),i=re("state");r()||r(new td(i)),An("view-state",r());let s=a(()=>i.mainEl),o=a(()=>i.viewDates),l=a(()=>i.options.allDayContent),u=a(()=>i.options.allDaySlot),d=a(()=>i.options.columnWidth),f=a(()=>i.options.nowIndicator),c=a(()=>i.options.scrollTime),g=a(()=>i.options.slotHeight),h=a(()=>i.options.slotDuration),v=a(()=>i.options.theme),y=a(()=>r().allDayChunks),p=a(()=>r().allDayBgChunks),m=a(()=>r().allDayIChunks),_=a(()=>r().bgChunks),k=a(()=>r().chunks),S=a(()=>r().iChunks),C=a(()=>r().grid),D=a(()=>r().sidebarWidth),w=a(()=>r().slots),E=a(()=>r().slotLabelPeriodicity),A=a(()=>r().slotTimeLimits),Y=Z(0),R=a(()=>Xu(n(l)));Ke(()=>{n(c),n(o).length&&fn().then(te)});function te(){n(s).scrollTop=((_e(n(c))-_e(n(A).min))/_e(n(h))-.5)*n(g)}let ge=[];function be(){ii(ge,n(y))}Ke(be);var se=le(),z=J(se);{var W=P=>{var U=ud();let F;var Q=fe(U),q=fe(Q),oe=ie(q,2),T=fe(oe);{var M=H=>{var G=le(),he=J(G);Yt(he,()=>t.header),x(H,G)},I=H=>{var G=le(),he=J(G);ue(he,17,()=>n(C)[0],Ce,(me,ne,Re)=>{let ze=()=>n(ne).dayStart,ot=()=>n(ne).disabled,Me=()=>n(ne).highlight;Kn(me,{get date(){return ze()},colIndex:1+Re,get disabled(){return ot()},get highlight(){return Me()},children:(Te,at)=>{pr(Te,{get date(){return ze()}})},$$slots:{default:!0}})}),x(H,G)};de(T,H=>{t.header?H(M):H(I,!1)})}var V=ie(oe,2);{var Ye=H=>{var G=ad(),he=fe(G);Ae(he,()=>Ze(n(R)));var me=ie(he,2);ue(me,21,()=>n(C),Ce,(Me,Te,at)=>{var He=le(),mt=J(He);ue(mt,17,()=>n(Te),Ce,(Rn,ki,Ci)=>{{let Di=a(()=>at+1===n(C).length&&Ci+1===n(Te).length);go(Rn,{get day(){return n(ki)},allDay:!0,get noIeb(){return n(Di)}})}}),x(Me,He)});var ne=ie(me,2),Re=fe(ne);ue(Re,19,()=>n(y),Me=>Me.id,(Me,Te,at)=>{it(yi(Me,{get chunk(){return n(Te)}}),(He,mt)=>ge[mt]=He,He=>ge?.[He],()=>[n(at)])});var ze=ie(Re,2);ue(ze,17,()=>n(p),Me=>Me.id,(Me,Te)=>{yi(Me,{get chunk(){return n(Te)}})});var ot=ie(ze,2);ue(ot,17,()=>n(m),Ce,(Me,Te)=>{yi(Me,{get chunk(){return n(Te)}})}),ae(()=>{N(G,1,n(v).allDay),N(he,1,n(v).sidebar),N(me,1,n(v).grid),N(ne,1,n(v).events)}),x(H,G)};de(V,H=>{n(u)&&H(Ye)})}var Oe=ie(Q,2),bt=fe(Oe);ue(bt,21,()=>n(w),Ce,(H,G,he)=>{var me=ld();let ne;var Re=fe(me);Ae(Re,()=>Ze(n(G)[1])),ae(()=>{N(me,1,Lt([n(v).slot,!he&&n(v).hidden])),ne=Tt(me,"",ne,{"--ec-slot-label-periodicity":n(G)[2]}),Ie(Re,"datetime",n(G)[0])}),x(H,me)});var Le=ie(bt,2);ue(Le,21,()=>n(C),Ce,(H,G,he)=>{var me=le(),ne=J(me);ue(ne,17,()=>n(G),Ce,(Re,ze,ot)=>{{let Me=a(()=>he+1===n(C).length&&ot+1===n(G).length);go(Re,{get day(){return n(ze)},get noIeb(){return n(Me)},noBeb:!0})}}),x(H,me)});var Ne=ie(Le,2),gt=fe(Ne);ue(gt,17,()=>n(k),H=>H.id,(H,G)=>{_i(H,{get chunk(){return n(G)}})});var At=ie(gt,2);ue(At,17,()=>n(_),H=>H.id,(H,G)=>{_i(H,{get chunk(){return n(G)}})});var B=ie(At,2);ue(B,17,()=>n(S),Ce,(H,G)=>{_i(H,{get chunk(){return n(G)}})});var K=ie(Oe,2);{var Se=H=>{var G=le(),he=J(G);{var me=Re=>{var ze=le(),ot=J(ze);Yt(ot,()=>t.nowIndicator),x(Re,ze)},ne=Re=>{br(Re,{get days(){return n(C)[0]}})};de(he,Re=>{t.nowIndicator?Re(me):Re(ne,!1)})}x(H,G)};de(K,H=>{n(f)&&H(Se)})}it(U,H=>i.mainEl=H,()=>i?.mainEl),Ae(U,()=>Zr(be)),ae(()=>{N(U,1,n(v).main),F=Tt(U,"",F,{"--ec-grid-cols":n(C).length*n(C)[0].length,"--ec-col-group-span":n(C)[0].length,"--ec-col-width":n(d)??"minmax(0, 1fr)","--ec-slot-label-periodicity":n(E),"--ec-slot-height":`${n(g)??""}px`,"--ec-header-height":`${n(Y)??""}px`,"--ec-sidebar-width":`${n(D)??""}px`}),N(Q,1,n(v).header),N(q,1,n(v).sidebar),N(oe,1,n(v).grid),N(Oe,1,n(v).body),N(bt,1,n(v).sidebar),N(Le,1,n(v).grid),N(Ne,1,n(v).events)}),lr(q,"offsetWidth",H=>r().sidebarWidth=H),lr(Q,"offsetHeight",H=>b(Y,H)),x(P,U)};de(z,P=>{n(C).length&&n(C)[0].length&&P(W)})}x(e,se),we()}var dd=j("<!> <!>",1);function fd(e,t){ye(t,!0);let r=re("state"),i=new id(r),s=a(()=>r.today),o=a(()=>r.mainEl),l=a(()=>r.viewDates),u=a(()=>r.options.scrollTime),d=a(()=>r.options.datesAboveResources),f=a(()=>r.options.theme),c=a(()=>i.grid),g=a(()=>i.sidebarWidth),h=nt([]);Ke(()=>{n(d)&&(n(l),n(u),fn().then(v))});function v(){if(n(s)>=n(l)[0]&&n(s)<=n(l).at(-1))for(let y of n(c)){let p=y[0];if(Je(p.dayStart,n(s))){n(o).scrollLeft=(n(o).scrollWidth-n(g))/(n(c).length*y.length)*(p.gridColumn-1)*(hn()?-1:1);break}}}mo(e,{get viewState(){return i},header:m=>{var _=dd(),k=J(_);ue(k,17,()=>n(c),Ce,(D,w,E)=>{const A=a(()=>{const{dayStart:Y,resource:R,disabled:te,highlight:ge}=n(w)[0];return{date:Y,resource:R,disabled:te,highlight:ge}});{let Y=a(()=>n(c)[0].length>1?n(f).colGroup:void 0),R=a(()=>1+E*n(w).length),te=a(()=>n(d)&&n(A).disabled),ge=a(()=>n(d)&&n(A).highlight);Kn(D,{get date(){return n(A).date},get className(){return n(Y)},get weekday(){return n(d)},get colSpan(){return n(w).length},get colIndex(){return n(R)},get disabled(){return n(te)},get highlight(){return n(ge)},children:(be,se)=>{var z=le(),W=J(z);{var P=F=>{pr(F,{get date(){return n(A).date}})},U=F=>{pi(F,{get resource(){return n(A).resource},setLabel:Q=>h[E]=Q+", "})};de(W,F=>{n(d)?F(P):F(U,!1)})}x(be,z)},$$slots:{default:!0}})}});var S=ie(k,2);{var C=D=>{var w=le(),E=J(w);ue(E,17,()=>n(c),Ce,(A,Y,R)=>{var te=le(),ge=J(te);ue(ge,17,()=>n(Y),Ce,(be,se,z)=>{const W=a(()=>{const{dayStart:P,resource:U,disabled:F,highlight:Q}=n(se);return{date:P,resource:U,disabled:F,highlight:Q}});{let P=a(()=>1+z+R*n(Y).length);Kn(be,{get date(){return n(W).date},get colIndex(){return n(P)},get disabled(){return n(W).disabled},get highlight(){return n(W).highlight},children:(U,F)=>{var Q=le(),q=J(Q);{var oe=M=>{pi(M,{get resource(){return n(W).resource},get date(){return n(W).date}})},T=M=>{pr(M,{get date(){return n(W).date},get alPrefix(){return h[R]}})};de(q,M=>{n(d)?M(oe):M(T,!1)})}x(U,Q)},$$slots:{default:!0}})}}),x(A,te)}),x(D,w)};de(S,D=>{n(c)[0].length>1&&D(C)})}x(m,_)},nowIndicator:m=>{var _=le(),k=J(_);{var S=D=>{{let w=a(()=>n(c).flat());br(D,{get days(){return n(w)},get span(){return n(c)[0].length}})}},C=D=>{var w=le(),E=J(w);{var A=R=>{var te=le(),ge=J(te);ue(ge,17,()=>n(c),Ce,(be,se)=>{br(be,{get days(){return n(se)}})}),x(R,te)},Y=R=>{{let te=a(()=>n(c).flat());br(R,{get days(){return n(te)},get span(){return n(c).length}})}};de(E,R=>{n(c)[0].length>1?R(A):R(Y,!1)})}x(D,w)};de(k,D=>{n(d)?D(S):D(C,!1)})}x(m,_)},$$slots:{header:!0,nowIndicator:!0}}),we()}const cd={createOptions(e){fo(e),vi(e),co(e),ve(e,{datesAboveResources:!1,view:"resourceTimeGridWeek"}),ve(e.buttonText,{resourceTimeGridDay:"resources",resourceTimeGridWeek:"resources"}),ve(e.theme,{colGroup:"ec-col-group"}),ve(e.views,{resourceTimeGridDay:{buttonText:qn,component:po,dayHeaderFormat:{weekday:"long"},duration:{days:1},theme:st("ec-resource ec-time-grid ec-day-view")},resourceTimeGridWeek:{buttonText:Xn,component:po,duration:{weeks:1},theme:st("ec-resource ec-time-grid ec-week-view")}})},createParsers(e){gi(e)}};function po(e){return hi(e),fd}function wi(e,t,r,i=!0){let s=[],o,l,u,d,f,c=0;for(let{gridColumn:g,gridRow:h,resource:v,dayStart:y,dayEnd:p,start:m,end:_,disabled:k}of t)k||(r?Tn(e,y,p,v)&&(s.length||(o=y,u=g,d=h),s.push(y),l=_):Tn(e,m,_,v)&&(s.length||(o=m,u=g,d=h,f=ct(e.start-m,0)/1e3),s.push(y),l=_,c+=(Pt(_,e.end)-ct(m,e.start))/1e3));if(s.length){let g=Yn(e,o,l);return ve(g,{gridColumn:u,gridRow:d,dates:s,left:f,width:c}),i&&si(g),[g]}return[]}function hd(e){let t={};for(let r of e){let{gridColumn:i,gridRow:s}=r;for(let l=0;l<r.dates.length;++l){let u=`${s}_${i+l}`;t[u]?t[u].push(r):t[u]=[r]}let o=`${s}_${i}`;r.day=t[o]}}function vd(e,t,r){let i=1,s=i+t,o=e.day;o.sort((l,u)=>(l.top??Number.POSITIVE_INFINITY)-(u.top??Number.POSITIVE_INFINITY));for(let l of o)if(!(l===e||!("top"in l))&&(r||e.start<l.end&&e.end>l.start)&&i<l.bottom&&s>l.top){let u=l.bottom-i+1;i+=u,s+=u}return ve(e,{top:i,bottom:s}),i}function gd(e,t){return e[t.getTime()]??{min:Fe(0),max:Fe("24:00:00")}}function md(e,t){return()=>{let{viewDates:r,options:{highlightedDates:i,validRange:s}}=e,{dayTimeLimits:o,viewResources:l}=t,u=[];return ee(()=>{let d=1;for(let f of l){let c=[],g=1;for(let h of r){let v=o[h.getTime()];c.push({gridColumn:g,gridRow:d,resource:f,start:xe(X(h),v.min),end:xe(X(h),v.max),dayStart:h,dayEnd:wt(X(h)),disabled:Sn(h,s),highlight:i.some(y=>Je(y,h))}),++g}u.push(c),++d}}),u}}function pd(e,t){return()=>{let{filteredEvents:r}=e,{grid:i,monthView:s}=t,o=[],l=[];return ee(()=>{for(let u of r)for(let d of i)vt(u.display)?(!s||u.allDay)&&(l=l.concat(wi(u,d,s))):o=o.concat(wi(u,d,s));hd(o)}),{chunks:o,bgChunks:l}}}function _d(e,t){return()=>{let{iEvents:r}=e,{grid:i,monthView:s}=t,o=[];for(let[,l]of r)l&&ee(()=>{for(let u of i)o=o.concat(wi(l,u,s,!1))});return o}}function yd(e){return()=>{let{filteredEvents:t,viewDates:r,options:{flexibleSlotTimeLimits:i,slotMinTime:s,slotMaxTime:o}}=e,l={};return ee(()=>{for(let u of r)l[u.getTime()]=no(s,o,i,[u],t)}),l}}function wd(e,t){return()=>{let{viewDates:r,options:{slotDuration:i}}=e,{dayTimeLimits:s,intlSlotLabel:o,slotLabelPeriodicity:l}=t,u={};return ee(()=>{for(let d of r){let f=d.getTime();u[f]=f in s?to(d,i,l,s[f],o):[]}}),u}}function bd(e){return()=>{let{options:{resources:t}}=e,r;return ee(()=>{r=t.some(i=>qt(i).children.length)}),r}}function kd(e){return()=>{let{options:{slotDuration:t}}=e,r;return ee(()=>{r=!_e(t)}),r}}class Cd extends vo(mi()){#e;get dayTimeLimits(){return n(this.#e)}set dayTimeLimits(t){b(this.#e,t)}#n;get daySlots(){return n(this.#n)}set daySlots(t){b(this.#n,t)}#t;get grid(){return n(this.#t)}set grid(t){b(this.#t,t)}#r;get monthView(){return n(this.#r)}set monthView(t){b(this.#r,t)}#s;get chunks(){return n(this.#s)}set chunks(t){b(this.#s,t)}#i;get bgChunks(){return n(this.#i)}set bgChunks(t){b(this.#i,t)}#o;get iChunks(){return n(this.#o)}set iChunks(t){b(this.#o,t)}#a;get nestedResources(){return n(this.#a)}set nestedResources(t){b(this.#a,t)}constructor(t){super(t),this.#e=a(yd(t)),this.#n=a(wd(t,this)),this.#t=a(md(t,this)),this.#r=a(kd(t));let r=a(pd(t,this)),i=a(()=>n(r).chunks),s=a(()=>n(r).bgChunks);this.#s=a(()=>n(i)),this.#i=a(()=>n(s)),this.#o=a(_d(t,this)),this.#a=a(bd(t))}}function Dd(e,t){ye(t,!0);let r=a(()=>re("state")),i=a(()=>n(r).options.slotWidth),s=a(()=>re("view-state")),o=a(()=>n(s).monthView),l=a(()=>n(s).snap),u=a(()=>t.day.dayStart),d=a(()=>t.day.start),f=a(()=>t.day.resource),c=a(()=>t.day.disabled),g=a(()=>t.day.highlight),h=Z(void 0);function v(y,p){if(n(o))return n(u);{let m=tn(n(h)),_=m.width/n(h).offsetWidth;return xe(X(n(d)),n(l).duration,Jr((hn()?m.right-y:y-m.left)/(n(i)*n(l).ratio*_)))}}mr(e,{get allDay(){return n(o)},get date(){return n(u)},get resource(){return n(f)},dateFromPoint:v,get disabled(){return n(c)},get highlight(){return n(g)},get noIeb(){return t.noIeb},get noBeb(){return t.noBeb},get el(){return n(h)},set el(y){b(h,y,!0)}}),we()}function bi(e,t){ye(t,!0);let r=a(()=>re("state")),i=a(()=>n(r).options.slotDuration),s=a(()=>n(r).options.slotWidth),o=a(()=>re("view-state")),l=a(()=>n(o).monthView),u=Z(void 0),d=Z(1),f=a(()=>t.chunk.event),c=a(()=>v=>{if(v["grid-column"]=`${t.chunk.gridColumn} / span ${t.chunk.dates.length}`,v["grid-row"]=t.chunk.gridRow,!n(l)){let p=t.chunk.left/_e(n(i))*n(s);v["inset-inline-start"]=`${p}px`,v["inline-size"]=`${t.chunk.width/_e(n(i))*n(s)}px`}let y=n(d);if(n(f)._margin){let[p,m]=n(f)._margin;t.chunk.gridRow===m&&(y=p)}return v["margin-block-start"]=`${y}px`,v});function g(){b(d,vd(t.chunk,vn(n(u)),n(l)),!0)}var h={reposition:g};{let v=a(()=>[n(d),t.chunk.gridRow]);_r(e,{get chunk(){return t.chunk},get styles(){return n(c)},axis:"x",get forceMargin(){return n(v)},get el(){return n(u)},set el(y){b(u,y,!0)}})}return we(h)}var Ed=j("<span></span>"),Td=j("<button><!></button>"),xd=j("<!> <span><!></span>",1);function Sd(e,t){ye(t,!0);let r=a(()=>re("state")),i=a(()=>n(r).options),s=a(()=>n(i).resources),o=a(()=>n(i).theme),l=Z({}),u=Z(!0);ln(()=>{b(l,qt(t.resource)),b(u,n(l).expanded,!0)});function d(){b(u,!n(u)),n(l).expanded=n(u),f(n(l).children,n(u)),n(i).resources=[...n(s)]}function f(p,m){for(let _ of p){let k=qt(_);k.hidden=!m,k.expanded&&f(k.children,m)}}var c=xd(),g=J(c);ue(g,17,()=>Array(n(l).level),Ce,(p,m)=>{var _=Ed();ae(()=>N(_,1,n(o).expander)),x(p,_)});var h=ie(g,2),v=fe(h);{var y=p=>{var m=Td();m.__click=d;var _=fe(m);{var k=C=>{var D=xs("−");x(C,D)},S=C=>{var D=xs("+");x(C,D)};de(_,C=>{n(u)?C(k):C(S,!1)})}ae(()=>N(m,1,n(o).button)),x(p,m)};de(v,p=>{n(l).children?.length&&p(y)})}ae(()=>N(h,1,n(o).expander)),x(e,c),we()}$t(["click"]);var Rd=j("<div></div>");function Id(e,t){ye(t,!0);let r=a(()=>re("state")),i=a(()=>n(r).mainEl),s=a(()=>n(r).now),o=a(()=>n(r).today),l=a(()=>n(r).options.slotDuration),u=a(()=>n(r).options.slotWidth),d=a(()=>n(r).options.theme),f=a(()=>re("view-state")),c=a(()=>n(f).grid),g=a(()=>n(f).sidebarWidth),h=a(()=>{for(let w of n(c)[0])if(Je(w.dayStart,n(o)))return w;return{}}),v=a(()=>n(h).gridColumn),y=a(()=>n(h).start),p=a(()=>n(h).end),m=a(()=>{if(n(s)<n(y)||n(s)>n(p))return null;let w=_e(n(l));return(n(s)-n(y))/1e3/w*n(u)}),_=a(()=>({root:n(i),rootMargin:hn()?`0px -${n(g)+1}px 0px 0px`:`0px 0px 0px -${n(g)+1}px`,threshold:0}));function k(w,E){w.classList.toggle(n(d).hidden,!E.isIntersecting)}var S=le(),C=J(S);{var D=w=>{var E=Rd();let A;Ae(E,()=>Os(k,n(_))),ae(()=>{N(E,1,n(d).nowIndicator),A=Tt(E,"",A,{"grid-column":n(v)+1,"grid-row":`2 / span ${n(c).length??""}`,"inset-inline-start":`${n(m)??""}px`})}),x(w,E)};de(C,w=>{n(v)&&n(m)!==null&&w(D)})}x(e,S),we()}var Ld=j("<div><time></time></div>"),Pd=j('<div role="rowheader"><!> <!></div>'),Md=j('<section><header><aside></aside> <div role="row"><!> <!></div></header> <div role="rowgroup"><aside></aside> <div role="row"></div> <div><!> <!> <!></div></div> <!></section>');function Ad(e,t){ye(t,!0);let r=re("state"),i=new Cd(r);An("view-state",i);let s=a(()=>r.mainEl),o=a(()=>r.today),l=a(()=>r.viewDates),u=a(()=>r.options.columnWidth),d=a(()=>r.options.nowIndicator),f=a(()=>r.options.scrollTime),c=a(()=>r.options.slotDuration),g=a(()=>r.options.slotHeight),h=a(()=>r.options.slotWidth),v=a(()=>r.options.theme),y=a(()=>i.chunks),p=a(()=>i.bgChunks),m=a(()=>i.iChunks),_=a(()=>i.daySlots),k=a(()=>i.dayTimeLimits),S=a(()=>i.grid),C=a(()=>i.monthView),D=a(()=>i.nestedResources),w=a(()=>i.sidebarWidth),E=a(()=>i.slotLabelPeriodicity),A=a(()=>i.viewResources),Y=Z(0);Ke(()=>{n(f),n(l).length&&fn().then(R)});function R(){let W=0,P=n(o)<n(l)[0]||n(o)>n(l).at(-1);if(n(C)){if(!P){let U=n(S)[0];for(let F of U)if(Je(F.dayStart,n(o))){n(s).scrollLeft=(n(s).scrollWidth-n(w))/U.length*(F.gridColumn-1)*(hn()?-1:1);break}}}else{for(let U of n(l)){let F=gd(n(k),U);if(P||Je(U,n(o))){W+=ct(Pt(_e(n(f)),_e(F.max))-_e(F.min),0);break}else W+=_e(F.max)-_e(F.min)}n(s).scrollLeft=W/_e(n(c))*n(h)*(hn()?-1:1)}}let te=[];function ge(){ii(te,n(y))}Ke(ge);var be=le(),se=J(be);{var z=W=>{var P=Md();let U;var F=fe(P),Q=fe(F),q=ie(Q,2),oe=fe(q);ue(oe,17,()=>n(S)[0],Ce,(B,K,Se)=>{let H=()=>n(K).dayStart,G=()=>n(K).disabled,he=()=>n(K).highlight;Kn(B,{get date(){return H()},colIndex:1+Se,get disabled(){return G()},get highlight(){return he()},children:(me,ne)=>{pr(me,{get date(){return H()}})},$$slots:{default:!0}})});var T=ie(oe,2);{var M=B=>{var K=le(),Se=J(K);ue(Se,17,()=>n(S)[0],Ce,(H,G)=>{let he=()=>n(G).dayStart,me=()=>n(G).disabled,ne=()=>n(G).highlight;Kn(H,{get date(){return he()},get className(){return n(v).slots},get disabled(){return me()},get highlight(){return ne()},ariaHidden:!0,children:(Re,ze)=>{var ot=le(),Me=J(ot);ue(Me,17,()=>n(_)[he().getTime()],Ce,(Te,at)=>{var He=Ld();let mt;var Rn=fe(He);Ae(Rn,()=>Ze(n(at)[1])),ae(()=>{N(He,1,n(v).slot),mt=Tt(He,"",mt,{"--ec-slot-label-periodicity":n(at)[2]}),Ie(Rn,"datetime",n(at)[0])}),x(Te,He)}),x(Re,ot)},$$slots:{default:!0}})}),x(B,K)};de(T,B=>{n(C)||B(M)})}var I=ie(F,2),V=fe(I);ue(V,21,()=>n(A),Ce,(B,K)=>{var Se=Pd(),H=fe(Se);{var G=me=>{Sd(me,{get resource(){return n(K)}})};de(H,me=>{n(D)&&me(G)})}var he=ie(H,2);pi(he,{get resource(){return n(K)}}),ae(()=>N(Se,1,n(v).rowHead)),x(B,Se)});var Ye=ie(V,2);ue(Ye,21,()=>n(S),Ce,(B,K,Se)=>{var H=le(),G=J(H);ue(G,17,()=>n(K),Ce,(he,me,ne)=>{{let Re=a(()=>ne+1===n(K).length),ze=a(()=>Se+1===n(S).length);Dd(he,{get day(){return n(me)},get noIeb(){return n(Re)},get noBeb(){return n(ze)}})}}),x(B,H)});var Oe=ie(Ye,2),bt=fe(Oe);ue(bt,19,()=>n(y),B=>B.id,(B,K,Se)=>{it(bi(B,{get chunk(){return n(K)}}),(H,G)=>te[G]=H,H=>te?.[H],()=>[n(Se)])});var Le=ie(bt,2);ue(Le,17,()=>n(p),B=>B.id,(B,K)=>{bi(B,{get chunk(){return n(K)}})});var Ne=ie(Le,2);ue(Ne,17,()=>n(m),Ce,(B,K)=>{bi(B,{get chunk(){return n(K)}})});var gt=ie(I,2);{var At=B=>{Id(B,{})};de(gt,B=>{n(d)&&!n(C)&&B(At)})}it(P,B=>r.mainEl=B,()=>r?.mainEl),Ae(P,()=>Zr(ge)),ae(()=>{N(P,1,n(v).main),U=Tt(P,"",U,{"--ec-grid-cols":n(S)[0].length,"--ec-grid-rows":`${n(S).length>1?`repeat(${n(S).length-1}, auto)`:""} 1fr`,"--ec-col-width":n(u)??"minmax(4em, 1fr)","--ec-slot-label-periodicity":n(E),"--ec-slot-height":`${n(g)??""}px`,"--ec-slot-width":`${n(h)??""}px`,"--ec-header-height":`${n(Y)??""}px`,"--ec-sidebar-width":`${n(w)??""}px`}),N(F,1,n(v).header),N(Q,1,n(v).sidebar),N(q,1,n(v).grid),N(I,1,n(v).body),N(V,1,n(v).sidebar),N(Ye,1,n(v).grid),N(Oe,1,n(v).events)}),lr(Q,"offsetWidth",B=>i.sidebarWidth=B),lr(F,"offsetHeight",B=>b(Y,B)),x(W,P)};de(se,W=>{n(S).length&&n(S)[0].length&&W(z)})}x(e,be),we()}const Od={createOptions(e){vi(e),co(e),e.slotWidth=32,e.buttonText.resourceTimelineDay="timeline",e.buttonText.resourceTimelineWeek="timeline",e.buttonText.resourceTimelineMonth="timeline",e.theme.expander="ec-expander",e.theme.rowHead="ec-row-head",e.theme.slots="ec-slots",e.view="resourceTimelineWeek",e.views.resourceTimelineDay={buttonText:qn,component:_o,displayEventEnd:!1,dayHeaderFormat:{weekday:"long"},duration:{days:1},theme:st("ec-resource ec-timeline ec-day-view"),titleFormat:{year:"numeric",month:"long",day:"numeric"}},e.views.resourceTimelineWeek={buttonText:Xn,component:_o,displayEventEnd:!1,duration:{weeks:1},theme:st("ec-resource ec-timeline ec-week-view")},e.views.resourceTimelineMonth={buttonText:oi,component:yo,displayEventEnd:!1,dayHeaderFormat:{weekday:"short",day:"numeric"},duration:{months:1},slotDuration:{days:1},theme:st("ec-resource ec-timeline ec-month-view"),titleFormat:{year:"numeric",month:"long"}}},createParsers(e){gi(e)}};function _o(e){return hi(e),yo(e)}function yo(e){return e.features=["timeline"],e.extensions.viewResources=t=>t.filter(r=>!qt(r).hidden),Ad}const Nd={createOptions(e){vi(e),fo(e),ve(e.buttonText,{timeGridDay:"day",timeGridWeek:"week"}),ve(e,{view:"timeGridWeek"}),ve(e.views,{timeGridDay:{buttonText:qn,component:wo,dayHeaderFormat:{weekday:"long"},duration:{days:1},theme:st("ec-time-grid ec-day-view"),titleFormat:{year:"numeric",month:"long",day:"numeric"}},timeGridWeek:{buttonText:Xn,component:wo,duration:{weeks:1},theme:st("ec-time-grid ec-week-view")}})},createParsers(e){gi(e)}};function wo(e){return hi(e),mo}function Fd(e,t,r){return Na(tu,{target:e,props:{plugins:t,options:r}})}function Hd(e){return Ha(e)}function Wd(e,t){return Fd(e,[bu,Nu,Yu,cd,Od,Nd],t)}return Qn.create=Wd,Qn.destroy=Hd,Object.defineProperty(Qn,Symbol.toStringTag,{value:"Module"}),Qn})({});
//# sourceMappingURL=event-calendar.min.js.map;
// source --> https://whitecrossbusinesspark.co.uk/wp-content/plugins/bookly-responsive-appointment-booking-tool/backend/modules/calendar/resources/js/calendar-common.js?ver=27.9 
(function ($) {

    let calendar;

    let Calendar = function ($container, options) {
        let obj = this;
        jQuery.extend(obj.options, options);

        // Special locale for moment
        moment.locale('bookly', {
            months: obj.options.l10n.datePicker.monthNames,
            monthsShort: obj.options.l10n.datePicker.monthNamesShort,
            weekdays: obj.options.l10n.datePicker.dayNames,
            weekdaysShort: obj.options.l10n.datePicker.dayNamesShort,
            meridiem: function (hours, minutes, isLower) {
                return hours < 12
                    ? obj.options.l10n.datePicker.meridiem[isLower ? 'am' : 'AM']
                    : obj.options.l10n.datePicker.meridiem[isLower ? 'pm' : 'PM'];
            },
        });

        let allowEditAppointment = typeof BooklyAppointmentDialog !== 'undefined' && (!options.hasOwnProperty('disable_editor') || !options.disable_editor);

        let viewTypes = {
            dayGridMonth: 'resourceTimelineMonth',
            timeGridWeek: 'resourceTimelineWeek',
            resourceTimeGridDay: 'resourceTimelineDay'
        }
        // Event Popover
        let $popover = $();
        let showPopover = 0;
        let popoverEventEl;

        function animate(fn) {
            window.requestAnimationFrame(fn);
        }

        function popoverShow() {
            ++showPopover;
            $popover.css('opacity', 1);
        }

        function popoverClose() {
            if (showPopover) {
                --showPopover;
                let start;

                function fade(time) {
                    if (showPopover) {
                        return;
                    }
                    if (!start) {
                        start = time;
                        return animate(fade);
                    }
                    let progress = time - start;
                    if (progress < 100) {
                        animate(fade);
                    } else if (progress >= 100 && progress <= 300) {
                        $popover.css('opacity', 1 - (progress - 100) / 200);
                        animate(fade);
                    } else {
                        start = null;
                        $popover.remove();
                        $popover.length = 0;
                        popoverEventEl = null;
                    }
                }

                animate(fade);
            }
        }

        // Settings for Event Calendar
        let settings = {
            view: 'timeGridWeek',
            customButtons: {
                timeline: {
                    active: true,
                    text: {html: '<i class="far fa-fw fa-check-square"></i> ' + obj.options.l10n.timeline},
                    click: function (e) {
                        let headerToolbar = calendar.getOption('headerToolbar'),
                            view = calendar.getOption('view');
                        headerToolbar.end = 'dayGridMonth,timeGridWeek,resourceTimeGridDay,grid listWeek'
                        calendar.setOption('headerToolbar', headerToolbar);
                        let _viewTypes = Object.values(viewTypes);
                        if (_viewTypes.includes(view)) {
                            // Change view
                            Object.keys(viewTypes).forEach(function (key) {
                                if (viewTypes[key] === view) {
                                    calendar.setOption('view', key);
                                }
                            });
                        } else if (view === 'listWeek') {
                            setCookie('bookly_cal_view', 'listWeek');
                        }
                    }
                },
                grid: {
                    text: {html: '<i class="far fa-fw fa-square"></i> ' + obj.options.l10n.timeline},
                    click: function () {
                        let headerToolbar = calendar.getOption('headerToolbar'),
                            view = calendar.getOption('view');
                        headerToolbar.end = 'resourceTimelineMonth,resourceTimelineWeek,resourceTimelineDay,timeline listWeek'
                        calendar.setOption('headerToolbar', headerToolbar);
                        if (viewTypes.hasOwnProperty(view)) {
                            // Change view
                            calendar.setOption('view', viewTypes[view]);
                        } else if (view === 'listWeek') {
                            setCookie('bookly_cal_view', 'listWeekTimeline');
                        }
                    }
                },
            },
            views: {
                dayGridMonth: {
                    dayHeaderFormat: function (date) {
                        return moment(date).locale('bookly').format('ddd');
                    },
                    displayEventEnd: true,
                    dayMaxEvents: obj.options.l10n.monthDayMaxEvents === '1',
                    theme: function (theme) {
                        if (obj.options.l10n.monthDayMaxEvents === '1') {
                            theme.view += ' ec-minimalistic';
                        }
                        return theme;
                    }
                },
                timeGridDay: {
                    dayHeaderFormat: function (date) {
                        return moment(date).locale('bookly').format('dddd');
                    },
                    pointer: true,
                    columnWidth: obj.options.l10n.calendar_version === 'latest' ? 'minmax(120px, 1fr)' : undefined
                },
                timeGridWeek: {pointer: true},
                resourceTimeGridDay: {
                    pointer: true,
                    columnWidth: obj.options.l10n.calendar_version === 'latest' ? 'minmax(' + obj.options.l10n.clmn_min_width + 'px, 1fr)' : undefined
                },
                resourceTimelineDay: {
                    pointer: true,
                    displayEventEnd: true,
                    slotWidth: obj.options.l10n.calendar_version === 'latest' ? 120 : 180
                },
                resourceTimelineWeek: {
                    pointer: true,
                    displayEventEnd: true,
                    slotWidth: obj.options.l10n.calendar_version === 'latest' ? 120 : 180
                },
                resourceTimelineMonth: {
                    pointer: true,
                    displayEventEnd: true,
                    columnWidth: obj.options.l10n.calendar_version === 'latest' ? 'minmax(120px, 1fr)' : undefined
                }
            },
            nowIndicator: true,
            hiddenDays: obj.options.l10n.hiddenDays,
            slotDuration: obj.options.l10n.slotDuration,
            slotMinTime: obj.options.l10n.slotMinTime,
            slotMaxTime: obj.options.l10n.slotMaxTime,
            scrollTime: obj.options.l10n.scrollTime,
            moreLinkContent: function (arg) {
                return obj.options.l10n.more.replace('%d', arg.num)
            },
            flexibleSlotTimeLimits: true,
            eventStartEditable: false,
            eventDurationEditable: false,
            allDaySlot: false,
            allDayContent: obj.options.l10n.allDay,
            slotLabelFormat: function (date) {
                return moment(date).locale('bookly').format(obj.options.l10n.mjsTimeFormat);
            },
            dayHeaderFormat: function (date) {
                return moment(date).locale('bookly').format('ddd, D');
            },
            listDayFormat: function (date) {
                return moment(date).locale('bookly').format('dddd');
            },
            firstDay: obj.options.l10n.datePicker.firstDay,
            locale: obj.options.l10n.locale.replace('_', '-'),
            buttonText: {
                today: obj.options.l10n.today,
                dayGridMonth: obj.options.l10n.month,
                timeGridWeek: obj.options.l10n.week,
                timeGridDay: obj.options.l10n.day,
                resourceTimeGridDay: obj.options.l10n.day,
                resourceTimelineMonth: obj.options.l10n.month,
                resourceTimelineWeek: obj.options.l10n.week,
                resourceTimelineDay: obj.options.l10n.day,
                listWeek: obj.options.l10n.list
            },
            noEventsContent: obj.options.l10n.noEvents,
            customScrollbars: true,
            eventSources: [{
                url: ajaxurl,
                method: 'POST',
                extraParams: function () {
                    return {
                        action: 'bookly_get_staff_appointments',
                        csrf_token: BooklyL10nGlobal.csrf_token,
                        staff_ids: obj.options.getStaffMemberIds(),
                        location_ids: obj.options.getLocationIds(),
                        service_ids: obj.options.getServiceIds()
                    };
                }
            }],
            eventFilter: function (info) {
                return !['dayGridMonth', 'timeGridWeek', 'listWeek'].includes(info.view.type) || !info.event.extendedProps.resources_only;
            },
            eventBackgroundColor: '#ccc',
            eventMouseEnter: function (arg) {
                arg.jsEvent.stopPropagation();
                if (arg.event.display === 'background') {
                    return '';
                }
                let $event = $(arg.el);
                if (arg.event.display === 'auto' && arg.view.type !== 'listWeek') {
                    if (popoverEventEl !== arg.el) {
                        $popover.remove();
                        $popover.length = 0;
                        popoverEventEl = arg.el;
                        showPopover = 0;
                    }
                    if (!$popover.length) {
                        $popover = $('<div class="bookly-popover bs-popover-top bookly-ec-popover">')
                        let $calendar_container = $event.closest('.ec');
                        let $arrow = $('<div class="arrow"></div><div class="bookly-arrow-background"></div>');
                        let $body = $('<div class="popover-body">');
                        let $buttons = allowEditAppointment ? popoverButtons(arg) : '';

                        $body.append(arg.event.extendedProps.tooltip).append($buttons).css({minWidth: '180px'});
                        $popover.append($arrow).append($body);
                        $calendar_container.append($popover);
                        $popover = $calendar_container.find('.bookly-ec-popover');

                        let event_offset = $event.offset(),
                            popover_height = $popover.outerHeight(),
                            event_width = $event.outerWidth(),
                            popover_on_right = event_offset.left > window.innerWidth / 2;

                        $popover.css('min-width', (Math.min(400, event_width - 2)) + 'px');

                        let popover_top = Math.min(arg.jsEvent.y, Math.max(0, Math.min(event_offset.top - $(document).scrollTop() + $event.outerHeight() - popover_height, $(window).height() - popover_height)));
                        let popover_left = popover_on_right ? event_offset.left - $popover.outerWidth() : Math.min(event_offset.left - 7 + event_width, $calendar_container.offset().left + $calendar_container.outerWidth() - $popover.outerWidth() - 32);
                        //Check if the popover is over a mouse pointer
                        if (popover_left <= arg.jsEvent.x && popover_left + $popover.outerWidth() >= arg.jsEvent.x && popover_top <= arg.jsEvent.y && popover_top + $popover.outerHeight() >= arg.jsEvent.y) {
                            popover_top = arg.jsEvent.y - popover_height - 8;
                        }
                        $popover.css('top', popover_top + 'px');
                        $popover.css('left', popover_left + 'px');

                        $arrow.css('top', Math.min(popover_height - 32, Math.max(arg.jsEvent.y - popover_top - 14, 8)) + 'px');
                        if (popover_on_right) {
                            $popover.removeClass('bs-popover-top').removeClass('bs-popover-right').addClass('bs-popover-left');
                            $arrow.css('right', '-8px');
                        } else {
                            $popover.removeClass('bs-popover-top').removeClass('bs-popover-left').addClass('bs-popover-right');
                            $arrow.css('left', '-8px');
                        }

                        $popover.on('pointerenter', function () {
                            popoverShow();
                        });
                        $popover.on('pointerleave', function () {
                            popoverClose();
                        });
                    }

                    popoverShow();
                }
            },
            eventMouseLeave: function () {
                popoverClose();
            },
            eventContent: function (arg) {
                if (arg.event.display === 'background') {
                    return '';
                }
                let event = arg.event;
                let props = event.extendedProps;
                let nodes = [];
                let $time = $('<div class="ec-event-time"/>');
                let $title = $('<div class="ec-event-title"/>');

                $time.append(props.header_text || (arg.event.display !== 'pointer' ? moment(arg.event.start).locale('bookly').format(obj.options.l10n.mjsTimeFormat) + ' - ' + moment(arg.event.end).locale('bookly').format(obj.options.l10n.mjsTimeFormat) : moment(arg.event.start).locale('bookly').format(obj.options.l10n.mjsTimeFormat)));
                nodes.push($time.get(0));
                if (arg.view.type === 'listWeek') {
                    let dot = $('<div class="ec-event-dot"></div>').css('border-color', event.backgroundColor);
                    nodes.push($('<div/>').append(dot).get(0));
                }
                $title.append(props.desc || '');
                nodes.push($title.get(0));

                switch (props.overall_status) {
                    case 'pending':
                        $time.addClass('text-muted');
                        $title.addClass('text-muted');
                        break;
                    case 'rejected':
                    case 'cancelled':
                        $time.addClass('text-muted').wrapInner('<s>');
                        $title.addClass('text-muted');
                        break;
                }

                if (arg.view.type === 'listWeek' && allowEditAppointment) {
                    $title.append(popoverButtons(arg));
                }

                return {domNodes: nodes};
            },
            eventClick: function (arg) {
                eventClick(arg)
            },
            dateClick: function (arg) {
                let staff_id, visible_staff_id;
                if (['resourceTimeGridDay', 'resourceTimelineMonth', 'resourceTimelineWeek', 'resourceTimelineDay'].includes(arg.view.type)) {
                    staff_id = arg.resource.id;
                    visible_staff_id = 0;
                } else {
                    staff_id = visible_staff_id = obj.options.getCurrentStaffId();
                }
                addAppointmentDialog(arg.date, staff_id, visible_staff_id);
            },
            noEventsClick: function (arg) {
                let staffId = obj.options.getCurrentStaffId();
                addAppointmentDialog(arg.view.activeStart, staffId, staffId);
            },
            loading: function (isLoading) {
                if (!calendar) {
                    return;
                }
                if (isLoading) {
                    if (allowEditAppointment) {
                        BooklyL10nAppDialog.refreshed = true;
                    }
                    if (dateSetFromDatePicker) {
                        dateSetFromDatePicker = false;
                    } else {
                        calendar.setOption('highlightedDates', []);
                    }
                    $('.bookly-ec-loading').show();
                } else {
                    let allDay = false;
                    if (calendar.getEvents().length) {
                        calendar.getEvents().forEach(function (event) {
                            if (event.allDay) {
                                allDay = true;
                            }
                        })
                    }
                    calendar.setOption('allDaySlot', allDay);
                    $('.bookly-ec-loading').hide();
                    obj.options.refresh();
                }
            },
            viewDidMount: function (info) {
                calendar.setOption('highlightedDates', []);
                obj.options.viewChanged(info.view);
            },
            theme: function (theme) {
                theme.button = 'btn btn-default';
                theme.buttonGroup = 'btn-group';
                theme.active = 'active';
                return theme;
            }
        };

        function eventClick(arg) {
            if (arg.event.display === 'background') {
                return;
            }
            if (arg.jsEvent) {
                arg.jsEvent.stopPropagation();
            }

            if (allowEditAppointment) {
                if (arg.event.extendedProps.type === 'event') {
                    BooklyAttendeesDialog.showForm(
                        getBooklyModalContainer('bookly-attendees-dialog'),
                        {eventId: arg.event.extendedProps.id, onDone: function () { calendar.refetchEvents(); }}
                    )
                } else {
                    let visible_staff_id;
                    if (arg.view.type === 'resourceTimeGridDay') {
                        visible_staff_id = 0;
                    } else {
                        visible_staff_id = obj.options.getCurrentStaffId();
                    }
                    BooklyAppointmentDialog.showDialog(
                        arg.event.id,
                        null,
                        null,
                        function (event) {
                            if (event == 'refresh') {
                                calendar.refetchEvents();
                            } else {
                                if (event.start === null) {
                                    // Task
                                    calendar.removeEventById(event.id);
                                } else {
                                    if (visible_staff_id == event.resourceId || visible_staff_id == 0) {
                                        // Update event in calendar.
                                        calendar.removeEventById(event.id);
                                        calendar.addEvent(event);
                                    } else {
                                        // Switch to the event owner tab.
                                        jQuery('li > a[data-staff_id=' + event.resourceId + ']').click();
                                    }
                                }
                            }

                            if (locationChanged) {
                                calendar.refetchEvents();
                                locationChanged = false;
                            }
                        }
                    );
                }
            }
        }

        function popoverButtons(arg) {
            const $buttons = arg.view.type === 'listWeek' ? $('<div class="mt-2 d-flex"></div>') : $('<div class="mt-2 d-flex justify-content-end border-top pt-2"></div>');
            let props = arg.event.extendedProps;
            if (props.hasOwnProperty('type') && props.type === 'event') {
                $buttons.append(
                    $('<a class="btn btn-success btn-sm me-1">').append('<i class="fas fa-fw fa-users">')
                        .attr('title', obj.options.l10n.events.attendees)
                        .on('click', function (e) {
                            e.stopPropagation();
                            BooklyAttendeesDialog.showForm(
                                getBooklyModalContainer('bookly-attendees-dialog'),
                                {eventId: arg.event.extendedProps.id, onDone: function () { calendar.refetchEvents(); }}
                            )
                        })
                );
            } else {
                $buttons.append($('<button class="btn btn-success btn-sm me-1">').append('<i class="far fa-fw fa-edit">').on('click', function (e) {
                    e.stopPropagation();
                    eventClick(arg);
                }));
                if (props.participants == 'one') {
                    if (obj.options.l10n.recurring_appointments.active == '1' && props.series_id) {
                        $buttons.append(
                            $('<a class="btn btn-default btn-sm me-1">').append('<i class="fas fa-fw fa-link">')
                                .attr('title', obj.options.l10n.recurring_appointments.title)
                                .on('click', function (e) {
                                    e.stopPropagation();
                                    BooklySeriesDialog.showDialog({
                                        series_id: props.series_id,
                                        done: function () {
                                            calendar.refetchEvents();
                                        }
                                    });
                                })
                        );
                    }
                    if (obj.options.l10n.waiting_list.active == '1' && props.waitlisted > 0) {
                        $buttons.append(
                            $('<a class="btn btn-default btn-sm me-1">').append('<i class="far fa-fw fa-list-alt">')
                                .attr('title', obj.options.l10n.waiting_list.title)
                        );
                    }
                    if (obj.options.l10n.packages.active == '1' && props.package_id > 0) {
                        $buttons.append(
                            $('<a class="btn btn-default btn-sm me-1">').append('<i class="far fa-fw fa-calendar-alt">')
                                .attr('title', obj.options.l10n.packages.title)
                                .on('click', function (e) {
                                    e.stopPropagation();
                                    if (obj.options.l10n.packages.active == '1' && props.package_id) {
                                        $(document.body).trigger('bookly_packages.schedule_dialog', [props.package_id, function () {
                                            calendar.refetchEvents();
                                        }]);
                                    }
                                })
                        );
                    }
                    $buttons.append(
                        $('<a class="btn btn-danger btn-sm text-white">').append('<i class="far fa-fw fa-trash-alt">')
                            .attr('title', obj.options.l10n.delete)
                            .on('click', function(e) {
                                e.stopPropagation();
                                // Localize contains only string values
                                if (obj.options.l10n.recurring_appointments.active == '1' && props.series_id) {
                                    $(document.body).trigger('recurring_appointments.delete_dialog', [calendar, arg.event]);
                                } else {
                                    new BooklyConfirmDeletingAppointment({
                                            action: 'bookly_delete_appointment',
                                            appointment_id: arg.event.id,
                                            csrf_token: BooklyL10nGlobal.csrf_token
                                        },
                                        function(response) {
                                            calendar.removeEventById(arg.event.id);
                                        }
                                    );
                                }
                            })
                    );
                }
            }

            return $buttons;
        }

        function addAppointmentDialog(date, staffId, visibleStaffId) {
            if (allowEditAppointment) {
                BooklyAppointmentDialog.showDialog(
                    null,
                    parseInt(staffId),
                    moment(date),
                    function (event) {
                        if (event == 'refresh') {
                            calendar.refetchEvents();
                        } else {
                            if (visibleStaffId == event.resourceId || visibleStaffId == 0) {
                                if (event.start !== null) {
                                    if (event.id) {
                                        // Create event in calendar.
                                        calendar.addEvent(event);
                                    } else {
                                        calendar.refetchEvents();
                                    }
                                }
                            } else {
                                // Switch to the event owner tab.
                                jQuery('li[data-staff_id=' + event.resourceId + ']').click();
                            }
                        }

                        if (locationChanged) {
                            calendar.refetchEvents();
                            locationChanged = false;
                        }
                    }
                );
            }
        }


        /**
         * Set cookie.
         *
         * @param key
         * @param value
         */
        function setCookie(key, value) {
            var expires = new Date();
            expires.setFullYear(expires.getFullYear() + 3);
            document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
        }

        let dateSetFromDatePicker = false;

        calendar = EventCalendar.create($container.get(0), $.extend(true, {}, settings, obj.options.calendar));

        $('.ec-toolbar .ec-title', $container).on('click', function () {
            let picker = $(this).data('daterangepicker');
            picker.setStartDate(calendar.getOption('date'));
            picker.setEndDate(calendar.getOption('date'));
        });
        // Init date picker for fast navigation in Event Calendar.
        $('.ec-toolbar .ec-title', $container).daterangepicker({
            parentEl: '.bookly-js-calendar',
            singleDatePicker: true,
            showDropdowns: true,
            autoUpdateInput: false,
            locale: obj.options.l10n.datePicker
        }, function (start) {
            dateSetFromDatePicker = true;
            calendar.setOption('highlightedDates', [start.toDate()]);
            calendar.setOption('date', start.toDate());
        });

        // Export calendar
        this.ec = calendar;
    };

    var locationChanged = false;
    $('body').on('change', '#bookly-appointment-location', function () {
        locationChanged = true;
    });

    Calendar.prototype.options = {
        calendar: {},
        getCurrentStaffId: function () { return -1; },
        getStaffMemberIds: function () { return [this.getCurrentStaffId()]; },
        getServiceIds: function () { return ['all']; },
        getLocationIds: function () { return ['all']; },
        refresh: function () {},
        viewChanged: function () {},
        l10n: {}
    };

    window.BooklyCalendar = Calendar;
})(jQuery);