{"version":3,"sources":["jsdelivr-header.js","/npm/@fullcalendar/rrule@6.1.19/index.js"],"names":[],"mappings":"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","file":"/npm/@fullcalendar/rrule@6.1.19/index.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v4.62.2 and esbuild v0.28.1.\n * Original file: /npm/@fullcalendar/rrule@6.1.19/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { createPlugin } from '@fullcalendar/core/index.js';\nimport * as rruleLib from 'rrule';\nimport { addDays, parseMarker, identity, createDuration } from '@fullcalendar/core/internal.js';\n\nconst 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};\nfunction 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.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 = parseMarker(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}\nfunction parseRRuleObject(rruleInput, dateEnv) {\n    let isTimeSpecified = false;\n    let isTimeZoneSpecified = false;\n    function processDateInput(dateInput) {\n        if (typeof dateInput === 'string') {\n            let markerData = parseMarker(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 = Object.assign(Object.assign({}, rruleInput), { dtstart: processDateInput(rruleInput.dtstart), until: processDateInput(rruleInput.until), freq: convertConstant(rruleInput.freq), wkst: rruleInput.wkst == null\n            ? (dateEnv.weekDow - 1 + 7) % 7 // convert Sunday-first to Monday-first\n            : convertConstant(rruleInput.wkst), byweekday: convertConstants(rruleInput.byweekday) });\n    return { rrule: new rruleLib.RRule(rruleOptions), isTimeSpecified, isTimeZoneSpecified };\n}\nfunction parseRRuleString(str) {\n    let rruleSet = rruleLib.rrulestr(str, { forceset: true });\n    let analysis = analyzeRRuleString(str);\n    return Object.assign({ rruleSet }, analysis);\n}\nfunction analyzeRRuleString(str) {\n    let isTimeSpecified = false;\n    let isTimeZoneSpecified = false;\n    function processMatch(whole, introPart, datePart) {\n        let result = parseMarker(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}\nfunction convertConstants(input) {\n    if (Array.isArray(input)) {\n        return input.map(convertConstant);\n    }\n    return convertConstant(input);\n}\nfunction convertConstant(input) {\n    if (typeof input === 'string') {\n        return rruleLib.RRule[input.toUpperCase()];\n    }\n    return input;\n}\n\nconst RRULE_EVENT_REFINERS = {\n    rrule: identity,\n    exrule: identity,\n    exdate: identity,\n    duration: createDuration,\n};\n\nvar index = createPlugin({\n    name: '@fullcalendar/rrule',\n    recurringTypes: [recurringType],\n    eventRefiners: RRULE_EVENT_REFINERS,\n});\n\nexport { index as default };\n"]}