UNPKG

@churchapps/helpers

Version:

Library of helper functions not specific to any one ChurchApps project or framework.

43 lines 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventHelper = void 0; const rrule_1 = require("rrule"); class EventHelper { static getRange = (event, startDate, endDate) => { const start = new Date(event.start); const rrule = EventHelper.getFullRRule(event); const dates = rrule.between(startDate, endDate); dates.forEach(d => { d.setHours(start.getHours()); d.setMinutes(start.getMinutes()); d.setSeconds(start.getSeconds()); }); return dates; }; static getFullRRule = (event) => { let rrule = rrule_1.RRule.fromString(event.recurrenceRule); rrule.options.dtstart = new Date(event.start); return rrule; }; static removeExcludeDates = (events) => { for (let i = events.length - 1; i >= 0; i--) { if (events[i].exceptionDates?.length > 0) { const parsedDates = events[i].exceptionDates.map(d => new Date(d).toISOString()); if (parsedDates.indexOf(events[i].start.toISOString()) > -1) events.splice(i, 1); } } }; static getPartialRRuleString = (options) => { const parts = new rrule_1.RRule(options).toString().split("RRULE:"); const result = parts.length === 2 ? parts[1] : ""; return result; }; static cleanRule = (options) => { options.byhour = undefined; options.byminute = undefined; options.bysecond = undefined; }; } exports.EventHelper = EventHelper; //# sourceMappingURL=EventHelper.js.map