{"version":3,"sources":["jsdelivr-header.js","/npm/@fullcalendar/rrule@7.0.2/global.js"],"names":[],"mappings":"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","file":"/npm/@fullcalendar/rrule@7.0.2/global.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /npm/@fullcalendar/rrule@7.0.2/global.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*!\nFullCalendar RRule Plugin v7.0.2\nDocs & License: https://fullcalendar.io/docs/rrule-plugin\n(c) 2026 Adam Shaw\n*/\n(function (rruleLib) {\n    'use strict';\n\n    function _interopNamespace(e) {\n        if (e && e.__esModule) return e;\n        var n = Object.create(null);\n        if (e) {\n            Object.keys(e).forEach(function (k) {\n                if (k !== 'default') {\n                    var d = Object.getOwnPropertyDescriptor(e, k);\n                    Object.defineProperty(n, k, d.get ? d : {\n                        enumerable: true,\n                        get: function () { return e[k]; }\n                    });\n                }\n            });\n        }\n        n[\"default\"] = e;\n        return Object.freeze(n);\n    }\n\n    var rruleLib__namespace = /*#__PURE__*/_interopNamespace(rruleLib);\n\n    function addDays(m, n) {\n        let a = dateToUtcArray(m);\n        a[2] += n;\n        return arrayToUtcDate(a);\n    }\n    function dateToUtcArray(date) {\n        return [\n            date.getUTCFullYear(),\n            date.getUTCMonth(),\n            date.getUTCDate(),\n            date.getUTCHours(),\n            date.getUTCMinutes(),\n            date.getUTCSeconds(),\n            date.getUTCMilliseconds(),\n        ];\n    }\n    function arrayToUtcDate(a) {\n        // according to web standards (and Safari), a month index is required.\n        // massage if only given a year.\n        if (a.length === 1) {\n            a = a.concat([0]);\n        }\n        return new Date(Date.UTC(...a));\n    }\n    // Other Utils\n    function isValidDate(m) {\n        return !isNaN(m.valueOf());\n    }\n    const PARSE_RE = /^(-?)(?:(\\d+)\\.)?(\\d+):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?/;\n    // Parsing and Creation\n    function createDuration(input, unit) {\n        if (typeof input === 'string') {\n            return parseString(input);\n        }\n        if (typeof input === 'object' && input) { // non-null object\n            return parseObject(input);\n        }\n        if (typeof input === 'number') {\n            return parseObject({ [unit || 'milliseconds']: input });\n        }\n        return null;\n    }\n    function parseString(s) {\n        let m = PARSE_RE.exec(s);\n        if (m) {\n            let sign = m[1] ? -1 : 1;\n            return {\n                years: 0,\n                months: 0,\n                days: sign * (m[2] ? parseInt(m[2], 10) : 0),\n                milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours\n                    (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes\n                    (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds\n                    (m[6] ? parseInt(m[6], 10) : 0) // ms\n                ),\n            };\n        }\n        return null;\n    }\n    function parseObject(obj) {\n        let duration = {\n            years: obj.years || obj.year || 0,\n            months: obj.months || obj.month || 0,\n            days: obj.days || obj.day || 0,\n            milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours\n                (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes\n                (obj.seconds || obj.second || 0) * 1000 + // seconds\n                (obj.milliseconds || obj.millisecond || obj.ms || 0), // ms\n        };\n        let weeks = obj.weeks || obj.week;\n        if (weeks) {\n            duration.days += weeks * 7;\n            duration.specifiedWeeks = true;\n        }\n        return duration;\n    }\n\n    const ISO_RE = /^\\s*(\\d{4})(-?(\\d{2})(-?(\\d{2})([T ](\\d{2}):?(\\d{2})(:?(\\d{2})(\\.(\\d+))?)?(Z|(([-+])(\\d{2})(:?(\\d{2}))?))?)?)?)?$/;\n    function parse(str) {\n        let m = ISO_RE.exec(str);\n        if (m) {\n            let marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number(`0.${m[12]}`) * 1000 : 0));\n            if (isValidDate(marker)) {\n                let timeZoneOffset = null;\n                if (m[13]) {\n                    timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 +\n                        Number(m[18] || 0));\n                }\n                return {\n                    marker,\n                    isTimeUnspecified: !m[6],\n                    timeZoneOffset,\n                };\n            }\n        }\n        return null;\n    }\n\n\n    const recurringType = {\n        parse(eventProps, dateEnv) {\n            if (eventProps.rrule != null) {\n                let eventRRuleData = parseEventRRule(eventProps, dateEnv);\n                if (eventRRuleData) {\n                    return {\n                        typeData: {\n                            rruleSet: eventRRuleData.rruleSet,\n                            dateEnv: eventRRuleData.isTimeZoneSpecified ? undefined : dateEnv,\n                        },\n                        allDayGuess: !eventRRuleData.isTimeSpecified,\n                        duration: eventProps.duration,\n                    };\n                }\n            }\n            return null;\n        },\n        expand(eventRRuleData, framingRange, calendarDateEnv) {\n            return eventRRuleData.rruleSet.between(\n            // Add one-day leeway since rrule lib only operates in UTC,\n            // but the zoned variant of framingRange is not.\n            // Also overcomes this rrule bug:\n            // https://github.com/jakubroztocil/rrule/issues/84)\n            addDays(framingRange.start, -1), addDays(framingRange.end, 1)).map((date) => {\n                // convert to plain-datetime\n                return calendarDateEnv.createMarker(\n                // convert to epoch-milliseconds in original timezone\n                eventRRuleData.dateEnv\n                    ? eventRRuleData.dateEnv.toDate(date)\n                    : date);\n            });\n        },\n    };\n    function parseEventRRule(eventProps, dateEnv) {\n        let rruleSet;\n        let isTimeSpecified = false;\n        let isTimeZoneSpecified = false;\n        if (typeof eventProps.rrule === 'string') {\n            let res = parseRRuleString(eventProps.rrule);\n            rruleSet = res.rruleSet;\n            isTimeSpecified = res.isTimeSpecified;\n            isTimeZoneSpecified = res.isTimeZoneSpecified;\n        }\n        if (typeof eventProps.rrule === 'object' && eventProps.rrule) { // non-null object\n            let res = parseRRuleObject(eventProps.rrule, dateEnv);\n            rruleSet = new rruleLib__namespace.RRuleSet();\n            rruleSet.rrule(res.rrule);\n            isTimeSpecified = res.isTimeSpecified;\n            isTimeZoneSpecified = res.isTimeZoneSpecified;\n        }\n        // convery to arrays. TODO: general util?\n        let exdateInputs = [].concat(eventProps.exdate || []);\n        let exruleInputs = [].concat(eventProps.exrule || []);\n        for (let exdateInput of exdateInputs) {\n            let res = parse(exdateInput);\n            isTimeSpecified = isTimeSpecified || !res.isTimeUnspecified;\n            isTimeZoneSpecified = isTimeZoneSpecified || res.timeZoneOffset !== null;\n            rruleSet.exdate(new Date(res.marker.valueOf() - (res.timeZoneOffset || 0) * 60 * 1000));\n        }\n        // TODO: exrule is deprecated. what to do? (https://icalendar.org/iCalendar-RFC-5545/a-3-deprecated-features.html)\n        for (let exruleInput of exruleInputs) {\n            let res = parseRRuleObject(exruleInput, dateEnv);\n            isTimeSpecified = isTimeSpecified || res.isTimeSpecified;\n            isTimeZoneSpecified = isTimeZoneSpecified || res.isTimeZoneSpecified;\n            rruleSet.exrule(res.rrule);\n        }\n        return { rruleSet, isTimeSpecified, isTimeZoneSpecified };\n    }\n    function parseRRuleObject(rruleInput, dateEnv) {\n        let isTimeSpecified = false;\n        let isTimeZoneSpecified = false;\n        function processDateInput(dateInput) {\n            if (typeof dateInput === 'string') {\n                let markerData = parse(dateInput);\n                if (markerData) {\n                    isTimeSpecified = isTimeSpecified || !markerData.isTimeUnspecified;\n                    isTimeZoneSpecified = isTimeZoneSpecified || markerData.timeZoneOffset !== null;\n                    return new Date(markerData.marker.valueOf() - (markerData.timeZoneOffset || 0) * 60 * 1000); // NOT DRY\n                }\n                return null;\n            }\n            return dateInput; // TODO: what about number timestamps?\n        }\n        let rruleOptions = {\n            ...rruleInput,\n            dtstart: processDateInput(rruleInput.dtstart),\n            until: processDateInput(rruleInput.until),\n            freq: convertConstant(rruleInput.freq),\n            wkst: rruleInput.wkst == null\n                ? (dateEnv.weekDow - 1 + 7) % 7 // convert Sunday-first to Monday-first\n                : convertConstant(rruleInput.wkst),\n            byweekday: convertConstants(rruleInput.byweekday),\n        };\n        return { rrule: new rruleLib__namespace.RRule(rruleOptions), isTimeSpecified, isTimeZoneSpecified };\n    }\n    function parseRRuleString(str) {\n        let rruleSet = rruleLib__namespace.rrulestr(str, { forceset: true });\n        let analysis = analyzeRRuleString(str);\n        return { rruleSet, ...analysis };\n    }\n    function analyzeRRuleString(str) {\n        let isTimeSpecified = false;\n        let isTimeZoneSpecified = false;\n        function processMatch(whole, introPart, datePart) {\n            let result = parse(datePart);\n            isTimeSpecified = isTimeSpecified || !result.isTimeUnspecified;\n            isTimeZoneSpecified = isTimeZoneSpecified || result.timeZoneOffset !== null;\n        }\n        str.replace(/\\b(DTSTART:)([^\\n]*)/, processMatch);\n        str.replace(/\\b(EXDATE:)([^\\n]*)/, processMatch);\n        str.replace(/\\b(UNTIL=)([^;\\n]*)/, processMatch);\n        return { isTimeSpecified, isTimeZoneSpecified };\n    }\n    function convertConstants(input) {\n        if (Array.isArray(input)) {\n            return input.map(convertConstant);\n        }\n        return convertConstant(input);\n    }\n    function convertConstant(input) {\n        if (typeof input === 'string') {\n            return rruleLib__namespace.RRule[input.toUpperCase()];\n        }\n        return input;\n    }\n\n    function identity(raw) {\n        return raw;\n    }\n\n    const RRULE_EVENT_REFINERS = {\n        rrule: identity,\n        exrule: identity,\n        exdate: identity,\n        duration: createDuration,\n    };\n\n    var plugin = {\n        name: 'rrule',\n        recurringTypes: [recurringType],\n        eventRefiners: RRULE_EVENT_REFINERS,\n    };\n\n    FullCalendar.globalPlugins.push(plugin);\n\n})(rrule);\n"]}