aboutsummaryrefslogtreecommitdiffstats
path: root/library/fullcalendar/packages/rrule
diff options
context:
space:
mode:
Diffstat (limited to 'library/fullcalendar/packages/rrule')
-rw-r--r--library/fullcalendar/packages/rrule/LICENSE.txt20
-rw-r--r--library/fullcalendar/packages/rrule/README.md8
-rw-r--r--library/fullcalendar/packages/rrule/index.global.js145
-rw-r--r--library/fullcalendar/packages/rrule/index.global.min.js6
-rw-r--r--library/fullcalendar/packages/rrule/main.d.ts9
-rw-r--r--library/fullcalendar/packages/rrule/main.esm.js121
-rw-r--r--library/fullcalendar/packages/rrule/main.js128
-rw-r--r--library/fullcalendar/packages/rrule/main.min.js6
-rw-r--r--library/fullcalendar/packages/rrule/package.json34
9 files changed, 151 insertions, 326 deletions
diff --git a/library/fullcalendar/packages/rrule/LICENSE.txt b/library/fullcalendar/packages/rrule/LICENSE.txt
deleted file mode 100644
index 2149cfbef..000000000
--- a/library/fullcalendar/packages/rrule/LICENSE.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2019 Adam Shaw
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/library/fullcalendar/packages/rrule/README.md b/library/fullcalendar/packages/rrule/README.md
deleted file mode 100644
index 7b56bed78..000000000
--- a/library/fullcalendar/packages/rrule/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-
-# FullCalendar RRule Plugin
-
-A connector to the RRule library, for recurring events
-
-[View the docs »](https://fullcalendar.io/docs/rrule-plugin)
-
-This package was created from the [FullCalendar monorepo »](https://github.com/fullcalendar/fullcalendar)
diff --git a/library/fullcalendar/packages/rrule/index.global.js b/library/fullcalendar/packages/rrule/index.global.js
new file mode 100644
index 000000000..795d352b5
--- /dev/null
+++ b/library/fullcalendar/packages/rrule/index.global.js
@@ -0,0 +1,145 @@
+/*!
+FullCalendar RRule Plugin v6.0.3
+Docs & License: https://fullcalendar.io/docs/rrule-plugin
+(c) 2022 Adam Shaw
+*/
+FullCalendar.RRule = (function (exports, core, rrule, internal) {
+ 'use strict';
+
+ const recurringType = {
+ parse(eventProps, dateEnv) {
+ if (eventProps.rrule != null) {
+ let eventRRuleData = parseEventRRule(eventProps, dateEnv);
+ if (eventRRuleData) {
+ return {
+ typeData: { rruleSet: eventRRuleData.rruleSet, isTimeZoneSpecified: eventRRuleData.isTimeZoneSpecified },
+ allDayGuess: !eventRRuleData.isTimeSpecified,
+ duration: eventProps.duration,
+ };
+ }
+ }
+ return null;
+ },
+ expand(eventRRuleData, framingRange, dateEnv) {
+ let dates;
+ if (eventRRuleData.isTimeZoneSpecified) {
+ dates = eventRRuleData.rruleSet.between(dateEnv.toDate(framingRange.start), // rrule lib will treat as UTC-zoned
+ dateEnv.toDate(framingRange.end), // (same)
+ true).map((date) => dateEnv.createMarker(date)); // convert UTC-zoned-date to locale datemarker
+ }
+ else {
+ // when no timezone in given start/end, the rrule lib will assume UTC,
+ // which is same as our DateMarkers. no need to manipulate
+ dates = eventRRuleData.rruleSet.between(framingRange.start, framingRange.end, true);
+ }
+ return dates;
+ },
+ };
+ function parseEventRRule(eventProps, dateEnv) {
+ let rruleSet;
+ let isTimeSpecified = false;
+ let isTimeZoneSpecified = false;
+ if (typeof eventProps.rrule === 'string') {
+ let res = parseRRuleString(eventProps.rrule);
+ rruleSet = res.rruleSet;
+ isTimeSpecified = res.isTimeSpecified;
+ isTimeZoneSpecified = res.isTimeZoneSpecified;
+ }
+ if (typeof eventProps.rrule === 'object' && eventProps.rrule) { // non-null object
+ let res = parseRRuleObject(eventProps.rrule, dateEnv);
+ rruleSet = new rrule.RRuleSet();
+ rruleSet.rrule(res.rrule);
+ isTimeSpecified = res.isTimeSpecified;
+ isTimeZoneSpecified = res.isTimeZoneSpecified;
+ }
+ // convery to arrays. TODO: general util?
+ let exdateInputs = [].concat(eventProps.exdate || []);
+ let exruleInputs = [].concat(eventProps.exrule || []);
+ for (let exdateInput of exdateInputs) {
+ let res = internal.parseMarker(exdateInput);
+ isTimeSpecified = isTimeSpecified || !res.isTimeUnspecified;
+ isTimeZoneSpecified = isTimeZoneSpecified || res.timeZoneOffset !== null;
+ rruleSet.exdate(new Date(res.marker.valueOf() - (res.timeZoneOffset || 0) * 60 * 1000));
+ }
+ // TODO: exrule is deprecated. what to do? (https://icalendar.org/iCalendar-RFC-5545/a-3-deprecated-features.html)
+ for (let exruleInput of exruleInputs) {
+ let res = parseRRuleObject(exruleInput, dateEnv);
+ isTimeSpecified = isTimeSpecified || res.isTimeSpecified;
+ isTimeZoneSpecified = isTimeZoneSpecified || res.isTimeZoneSpecified;
+ rruleSet.exrule(res.rrule);
+ }
+ return { rruleSet, isTimeSpecified, isTimeZoneSpecified };
+ }
+ function parseRRuleObject(rruleInput, dateEnv) {
+ let isTimeSpecified = false;
+ let isTimeZoneSpecified = false;
+ function processDateInput(dateInput) {
+ if (typeof dateInput === 'string') {
+ let markerData = internal.parseMarker(dateInput);
+ if (markerData) {
+ isTimeSpecified = isTimeSpecified || !markerData.isTimeUnspecified;
+ isTimeZoneSpecified = isTimeZoneSpecified || markerData.timeZoneOffset !== null;
+ return new Date(markerData.marker.valueOf() - (markerData.timeZoneOffset || 0) * 60 * 1000); // NOT DRY
+ }
+ return null;
+ }
+ return dateInput; // TODO: what about number timestamps?
+ }
+ let rruleOptions = Object.assign(Object.assign({}, rruleInput), { dtstart: processDateInput(rruleInput.dtstart), until: processDateInput(rruleInput.until), freq: convertConstant(rruleInput.freq), wkst: rruleInput.wkst == null
+ ? (dateEnv.weekDow - 1 + 7) % 7 // convert Sunday-first to Monday-first
+ : convertConstant(rruleInput.wkst), byweekday: convertConstants(rruleInput.byweekday) });
+ return { rrule: new rrule.RRule(rruleOptions), isTimeSpecified, isTimeZoneSpecified };
+ }
+ function parseRRuleString(str) {
+ let rruleSet = rrule.rrulestr(str, { forceset: true });
+ let analysis = analyzeRRuleString(str);
+ return Object.assign({ rruleSet }, analysis);
+ }
+ function analyzeRRuleString(str) {
+ let isTimeSpecified = false;
+ let isTimeZoneSpecified = false;
+ function processMatch(whole, introPart, datePart) {
+ let result = internal.parseMarker(datePart);
+ isTimeSpecified = isTimeSpecified || !result.isTimeUnspecified;
+ isTimeZoneSpecified = isTimeZoneSpecified || result.timeZoneOffset !== null;
+ }
+ str.replace(/\b(DTSTART:)([^\n]*)/, processMatch);
+ str.replace(/\b(EXDATE:)([^\n]*)/, processMatch);
+ str.replace(/\b(UNTIL=)([^;\n]*)/, processMatch);
+ return { isTimeSpecified, isTimeZoneSpecified };
+ }
+ function convertConstants(input) {
+ if (Array.isArray(input)) {
+ return input.map(convertConstant);
+ }
+ return convertConstant(input);
+ }
+ function convertConstant(input) {
+ if (typeof input === 'string') {
+ return rrule.RRule[input.toUpperCase()];
+ }
+ return input;
+ }
+
+ const RRULE_EVENT_REFINERS = {
+ rrule: internal.identity,
+ exrule: internal.identity,
+ exdate: internal.identity,
+ duration: internal.createDuration,
+ };
+
+ var plugin = core.createPlugin({
+ name: '@fullcalendar/rrule',
+ recurringTypes: [recurringType],
+ eventRefiners: RRULE_EVENT_REFINERS,
+ });
+
+ core.globalPlugins.push(plugin);
+
+ exports["default"] = plugin;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ return exports;
+
+})({}, FullCalendar, rrule, FullCalendar.Internal);
diff --git a/library/fullcalendar/packages/rrule/index.global.min.js b/library/fullcalendar/packages/rrule/index.global.min.js
new file mode 100644
index 000000000..4197cedb2
--- /dev/null
+++ b/library/fullcalendar/packages/rrule/index.global.min.js
@@ -0,0 +1,6 @@
+/*!
+FullCalendar RRule Plugin v6.0.3
+Docs & License: https://fullcalendar.io/docs/rrule-plugin
+(c) 2022 Adam Shaw
+*/
+FullCalendar.RRule=function(e,r,t,i){"use strict";const n={parse(e,r){if(null!=e.rrule){let n=function(e,r){let n,u=!1,a=!1;if("string"==typeof e.rrule){let r=function(e){let r=t.rrulestr(e,{forceset:!0}),n=function(e){let r=!1,t=!1;function n(e,n,l){let u=i.parseMarker(l);r=r||!u.isTimeUnspecified,t=t||null!==u.timeZoneOffset}return e.replace(/\b(DTSTART:)([^\n]*)/,n),e.replace(/\b(EXDATE:)([^\n]*)/,n),e.replace(/\b(UNTIL=)([^;\n]*)/,n),{isTimeSpecified:r,isTimeZoneSpecified:t}}(e);return Object.assign({rruleSet:r},n)}(e.rrule);n=r.rruleSet,u=r.isTimeSpecified,a=r.isTimeZoneSpecified}if("object"==typeof e.rrule&&e.rrule){let i=l(e.rrule,r);n=new t.RRuleSet,n.rrule(i.rrule),u=i.isTimeSpecified,a=i.isTimeZoneSpecified}let s=[].concat(e.exdate||[]),f=[].concat(e.exrule||[]);for(let e of s){let r=i.parseMarker(e);u=u||!r.isTimeUnspecified,a=a||null!==r.timeZoneOffset,n.exdate(new Date(r.marker.valueOf()-60*(r.timeZoneOffset||0)*1e3))}for(let e of f){let t=l(e,r);u=u||t.isTimeSpecified,a=a||t.isTimeZoneSpecified,n.exrule(t.rrule)}return{rruleSet:n,isTimeSpecified:u,isTimeZoneSpecified:a}}(e,r);if(n)return{typeData:{rruleSet:n.rruleSet,isTimeZoneSpecified:n.isTimeZoneSpecified},allDayGuess:!n.isTimeSpecified,duration:e.duration}}return null},expand(e,r,t){let i;return i=e.isTimeZoneSpecified?e.rruleSet.between(t.toDate(r.start),t.toDate(r.end),!0).map(e=>t.createMarker(e)):e.rruleSet.between(r.start,r.end,!0),i}};function l(e,r){let n=!1,l=!1;function s(e){if("string"==typeof e){let r=i.parseMarker(e);return r?(n=n||!r.isTimeUnspecified,l=l||null!==r.timeZoneOffset,new Date(r.marker.valueOf()-60*(r.timeZoneOffset||0)*1e3)):null}return e}let f=Object.assign(Object.assign({},e),{dtstart:s(e.dtstart),until:s(e.until),freq:a(e.freq),wkst:null==e.wkst?(r.weekDow-1+7)%7:a(e.wkst),byweekday:u(e.byweekday)});return{rrule:new t.RRule(f),isTimeSpecified:n,isTimeZoneSpecified:l}}function u(e){return Array.isArray(e)?e.map(a):a(e)}function a(e){return"string"==typeof e?t.RRule[e.toUpperCase()]:e}const s={rrule:i.identity,exrule:i.identity,exdate:i.identity,duration:i.createDuration};var f=r.createPlugin({name:"@fullcalendar/rrule",recurringTypes:[n],eventRefiners:s});return r.globalPlugins.push(f),e.default=f,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,rrule,FullCalendar.Internal); \ No newline at end of file
diff --git a/library/fullcalendar/packages/rrule/main.d.ts b/library/fullcalendar/packages/rrule/main.d.ts
deleted file mode 100644
index 8ce74e975..000000000
--- a/library/fullcalendar/packages/rrule/main.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-// Generated by dts-bundle v0.7.3-fork.1
-// Dependencies for this module:
-// ../../../../../@fullcalendar/core
-
-declare module '@fullcalendar/rrule' {
- const _default: import("@fullcalendar/core").PluginDef;
- export default _default;
-}
-
diff --git a/library/fullcalendar/packages/rrule/main.esm.js b/library/fullcalendar/packages/rrule/main.esm.js
deleted file mode 100644
index e4b92e95c..000000000
--- a/library/fullcalendar/packages/rrule/main.esm.js
+++ /dev/null
@@ -1,121 +0,0 @@
-/*!
-FullCalendar RRule Plugin v4.4.2
-Docs & License: https://fullcalendar.io/
-(c) 2019 Adam Shaw
-*/
-
-import { rrulestr, RRule } from 'rrule';
-import { createPlugin, refineProps, createDuration } from '@fullcalendar/core';
-
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-
-var __assign = function() {
- __assign = Object.assign || function __assign(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
-};
-
-var EVENT_DEF_PROPS = {
- rrule: null,
- duration: createDuration
-};
-var recurring = {
- parse: function (rawEvent, leftoverProps, dateEnv) {
- if (rawEvent.rrule != null) {
- var props = refineProps(rawEvent, EVENT_DEF_PROPS, {}, leftoverProps);
- var parsed = parseRRule(props.rrule, dateEnv);
- if (parsed) {
- return {
- typeData: parsed.rrule,
- allDayGuess: parsed.allDayGuess,
- duration: props.duration
- };
- }
- }
- return null;
- },
- expand: function (rrule, framingRange) {
- // we WANT an inclusive start and in exclusive end, but the js rrule lib will only do either BOTH
- // inclusive or BOTH exclusive, which is stupid: https://github.com/jakubroztocil/rrule/issues/84
- // Workaround: make inclusive, which will generate extra occurences, and then trim.
- return rrule.between(framingRange.start, framingRange.end, true)
- .filter(function (date) {
- return date.valueOf() < framingRange.end.valueOf();
- });
- }
-};
-var main = createPlugin({
- recurringTypes: [recurring]
-});
-function parseRRule(input, dateEnv) {
- var allDayGuess = null;
- var rrule;
- if (typeof input === 'string') {
- rrule = rrulestr(input);
- }
- else if (typeof input === 'object' && input) { // non-null object
- var refined = __assign({}, input); // copy
- if (typeof refined.dtstart === 'string') {
- var dtstartMeta = dateEnv.createMarkerMeta(refined.dtstart);
- if (dtstartMeta) {
- refined.dtstart = dtstartMeta.marker;
- allDayGuess = dtstartMeta.isTimeUnspecified;
- }
- else {
- delete refined.dtstart;
- }
- }
- if (typeof refined.until === 'string') {
- refined.until = dateEnv.createMarker(refined.until);
- }
- if (refined.freq != null) {
- refined.freq = convertConstant(refined.freq);
- }
- if (refined.wkst != null) {
- refined.wkst = convertConstant(refined.wkst);
- }
- else {
- refined.wkst = (dateEnv.weekDow - 1 + 7) % 7; // convert Sunday-first to Monday-first
- }
- if (refined.byweekday != null) {
- refined.byweekday = convertConstants(refined.byweekday); // the plural version
- }
- rrule = new RRule(refined);
- }
- if (rrule) {
- return { rrule: rrule, allDayGuess: allDayGuess };
- }
- return null;
-}
-function convertConstants(input) {
- if (Array.isArray(input)) {
- return input.map(convertConstant);
- }
- return convertConstant(input);
-}
-function convertConstant(input) {
- if (typeof input === 'string') {
- return RRule[input.toUpperCase()];
- }
- return input;
-}
-
-export default main;
diff --git a/library/fullcalendar/packages/rrule/main.js b/library/fullcalendar/packages/rrule/main.js
deleted file mode 100644
index 29e6130ac..000000000
--- a/library/fullcalendar/packages/rrule/main.js
+++ /dev/null
@@ -1,128 +0,0 @@
-/*!
-FullCalendar RRule Plugin v4.4.2
-Docs & License: https://fullcalendar.io/
-(c) 2019 Adam Shaw
-*/
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('rrule'), require('@fullcalendar/core')) :
- typeof define === 'function' && define.amd ? define(['exports', 'rrule', '@fullcalendar/core'], factory) :
- (global = global || self, factory(global.FullCalendarRrule = {}, global.rrule, global.FullCalendar));
-}(this, function (exports, rrule, core) { 'use strict';
-
- /*! *****************************************************************************
- Copyright (c) Microsoft Corporation.
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
- ***************************************************************************** */
-
- var __assign = function() {
- __assign = Object.assign || function __assign(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
- };
-
- var EVENT_DEF_PROPS = {
- rrule: null,
- duration: core.createDuration
- };
- var recurring = {
- parse: function (rawEvent, leftoverProps, dateEnv) {
- if (rawEvent.rrule != null) {
- var props = core.refineProps(rawEvent, EVENT_DEF_PROPS, {}, leftoverProps);
- var parsed = parseRRule(props.rrule, dateEnv);
- if (parsed) {
- return {
- typeData: parsed.rrule,
- allDayGuess: parsed.allDayGuess,
- duration: props.duration
- };
- }
- }
- return null;
- },
- expand: function (rrule, framingRange) {
- // we WANT an inclusive start and in exclusive end, but the js rrule lib will only do either BOTH
- // inclusive or BOTH exclusive, which is stupid: https://github.com/jakubroztocil/rrule/issues/84
- // Workaround: make inclusive, which will generate extra occurences, and then trim.
- return rrule.between(framingRange.start, framingRange.end, true)
- .filter(function (date) {
- return date.valueOf() < framingRange.end.valueOf();
- });
- }
- };
- var main = core.createPlugin({
- recurringTypes: [recurring]
- });
- function parseRRule(input, dateEnv) {
- var allDayGuess = null;
- var rrule$1;
- if (typeof input === 'string') {
- rrule$1 = rrule.rrulestr(input);
- }
- else if (typeof input === 'object' && input) { // non-null object
- var refined = __assign({}, input); // copy
- if (typeof refined.dtstart === 'string') {
- var dtstartMeta = dateEnv.createMarkerMeta(refined.dtstart);
- if (dtstartMeta) {
- refined.dtstart = dtstartMeta.marker;
- allDayGuess = dtstartMeta.isTimeUnspecified;
- }
- else {
- delete refined.dtstart;
- }
- }
- if (typeof refined.until === 'string') {
- refined.until = dateEnv.createMarker(refined.until);
- }
- if (refined.freq != null) {
- refined.freq = convertConstant(refined.freq);
- }
- if (refined.wkst != null) {
- refined.wkst = convertConstant(refined.wkst);
- }
- else {
- refined.wkst = (dateEnv.weekDow - 1 + 7) % 7; // convert Sunday-first to Monday-first
- }
- if (refined.byweekday != null) {
- refined.byweekday = convertConstants(refined.byweekday); // the plural version
- }
- rrule$1 = new rrule.RRule(refined);
- }
- if (rrule$1) {
- return { rrule: rrule$1, allDayGuess: allDayGuess };
- }
- return null;
- }
- function convertConstants(input) {
- if (Array.isArray(input)) {
- return input.map(convertConstant);
- }
- return convertConstant(input);
- }
- function convertConstant(input) {
- if (typeof input === 'string') {
- return rrule.RRule[input.toUpperCase()];
- }
- return input;
- }
-
- exports.default = main;
-
- Object.defineProperty(exports, '__esModule', { value: true });
-
-}));
diff --git a/library/fullcalendar/packages/rrule/main.min.js b/library/fullcalendar/packages/rrule/main.min.js
deleted file mode 100644
index 68addc2bd..000000000
--- a/library/fullcalendar/packages/rrule/main.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
-FullCalendar RRule Plugin v4.4.2
-Docs & License: https://fullcalendar.io/
-(c) 2019 Adam Shaw
-*/
-!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("rrule"),require("@fullcalendar/core")):"function"==typeof define&&define.amd?define(["exports","rrule","@fullcalendar/core"],r):r((e=e||self).FullCalendarRrule={},e.rrule,e.FullCalendar)}(this,(function(e,r,t){"use strict";var n=function(){return(n=Object.assign||function(e){for(var r,t=1,n=arguments.length;t<n;t++)for(var u in r=arguments[t])Object.prototype.hasOwnProperty.call(r,u)&&(e[u]=r[u]);return e}).apply(this,arguments)},u={rrule:null,duration:t.createDuration},l={parse:function(e,l,a){if(null!=e.rrule){var f=t.refineProps(e,u,{},l),o=function(e,t){var u,l=null;if("string"==typeof e)u=r.rrulestr(e);else if("object"==typeof e&&e){var a=n({},e);if("string"==typeof a.dtstart){var f=t.createMarkerMeta(a.dtstart);f?(a.dtstart=f.marker,l=f.isTimeUnspecified):delete a.dtstart}"string"==typeof a.until&&(a.until=t.createMarker(a.until)),null!=a.freq&&(a.freq=i(a.freq)),null!=a.wkst?a.wkst=i(a.wkst):a.wkst=(t.weekDow-1+7)%7,null!=a.byweekday&&(a.byweekday=function(e){if(Array.isArray(e))return e.map(i);return i(e)}(a.byweekday)),u=new r.RRule(a)}if(u)return{rrule:u,allDayGuess:l};return null}(f.rrule,a);if(o)return{typeData:o.rrule,allDayGuess:o.allDayGuess,duration:f.duration}}return null},expand:function(e,r){return e.between(r.start,r.end,!0).filter((function(e){return e.valueOf()<r.end.valueOf()}))}},a=t.createPlugin({recurringTypes:[l]});function i(e){return"string"==typeof e?r.RRule[e.toUpperCase()]:e}e.default=a,Object.defineProperty(e,"__esModule",{value:!0})})); \ No newline at end of file
diff --git a/library/fullcalendar/packages/rrule/package.json b/library/fullcalendar/packages/rrule/package.json
deleted file mode 100644
index 4cd35d029..000000000
--- a/library/fullcalendar/packages/rrule/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "@fullcalendar/rrule",
- "version": "4.4.2",
- "title": "FullCalendar RRule Plugin",
- "description": "A connector to the RRule library, for recurring events",
- "keywords": [
- "calendar",
- "event",
- "full-sized"
- ],
- "homepage": "https://fullcalendar.io/",
- "docs": "https://fullcalendar.io/docs/rrule-plugin",
- "bugs": "https://fullcalendar.io/reporting-bugs",
- "repository": {
- "type": "git",
- "url": "https://github.com/fullcalendar/fullcalendar.git",
- "homepage": "https://github.com/fullcalendar/fullcalendar"
- },
- "license": "MIT",
- "author": {
- "name": "Adam Shaw",
- "email": "arshaw@arshaw.com",
- "url": "http://arshaw.com/"
- },
- "copyright": "2019 Adam Shaw",
- "peerDependencies": {
- "@fullcalendar/core": "~4.4.0",
- "rrule": "^2.6.0"
- },
- "main": "main.js",
- "module": "main.esm.js",
- "unpkg": "main.min.js",
- "types": "main.d.ts"
-}