{"version":3,"sources":["jsdelivr-header.js","/npm/@schedule-x/events-service@4.2.0/dist/core.cjs.js"],"names":[],"mappings":"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","file":"/npm/@schedule-x/events-service@4.2.0/dist/core.cjs.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@schedule-x/events-service@4.2.0/dist/core.cjs.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nclass NumberRangeError extends Error {\n    constructor(min, max) {\n        super(`Number must be between ${min} and ${max}.`);\n        Object.defineProperty(this, \"min\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: min\n        });\n        Object.defineProperty(this, \"max\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: max\n        });\n    }\n}\n\nconst doubleDigit = (number) => {\n    if (number < 0 || number > 99)\n        throw new NumberRangeError(0, 99);\n    return String(number).padStart(2, '0');\n};\n\nconst toDateString = (date) => {\n    return `${date.year}-${doubleDigit(date.month)}-${doubleDigit(date.day)}`;\n};\n\nclass InvalidTimeStringError extends Error {\n    constructor(timeString) {\n        super(`Invalid time string: ${timeString}`);\n    }\n}\n\n// regex for strings between 00:00 and 23:59\nconst timeStringRegex = /^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]/;\n\nconst minuteTimePointMultiplier = 1.6666666666666667; // 100 / 60\nconst timePointsFromString = (timeString) => {\n    if (!timeStringRegex.test(timeString) && timeString !== '24:00')\n        throw new InvalidTimeStringError(timeString);\n    const [hoursInt, minutesInt] = timeString\n        .split(':')\n        .map((time) => parseInt(time, 10));\n    let minutePoints = (minutesInt * minuteTimePointMultiplier).toString();\n    if (minutePoints.split('.')[0].length < 2)\n        minutePoints = `0${minutePoints}`;\n    return Number(hoursInt + minutePoints);\n};\n\nconst dateFromDateTime = (dateTime) => {\n    return dateTime.slice(0, 10);\n};\nconst timeFromDateTime = (dateTime) => {\n    return dateTime.slice(11);\n};\n\nvar WeekDay;\n(function (WeekDay) {\n    WeekDay[WeekDay[\"MONDAY\"] = 1] = \"MONDAY\";\n    WeekDay[WeekDay[\"TUESDAY\"] = 2] = \"TUESDAY\";\n    WeekDay[WeekDay[\"WEDNESDAY\"] = 3] = \"WEDNESDAY\";\n    WeekDay[WeekDay[\"THURSDAY\"] = 4] = \"THURSDAY\";\n    WeekDay[WeekDay[\"FRIDAY\"] = 5] = \"FRIDAY\";\n    WeekDay[WeekDay[\"SATURDAY\"] = 6] = \"SATURDAY\";\n    WeekDay[WeekDay[\"SUNDAY\"] = 7] = \"SUNDAY\";\n})(WeekDay || (WeekDay = {}));\n\nWeekDay.MONDAY;\nconst DEFAULT_EVENT_COLOR_NAME = 'primary';\n\nclass CalendarEventImpl {\n    constructor(_config, id, _start, _end, title, people, location, description, calendarId, _options = undefined, _customContent = {}, _foreignProperties = {}, resourceId) {\n        Object.defineProperty(this, \"_config\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: _config\n        });\n        Object.defineProperty(this, \"id\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: id\n        });\n        Object.defineProperty(this, \"_start\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: _start\n        });\n        Object.defineProperty(this, \"_end\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: _end\n        });\n        Object.defineProperty(this, \"title\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: title\n        });\n        Object.defineProperty(this, \"people\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: people\n        });\n        Object.defineProperty(this, \"location\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: location\n        });\n        Object.defineProperty(this, \"description\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: description\n        });\n        Object.defineProperty(this, \"calendarId\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: calendarId\n        });\n        Object.defineProperty(this, \"_options\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: _options\n        });\n        Object.defineProperty(this, \"_customContent\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: _customContent\n        });\n        Object.defineProperty(this, \"_foreignProperties\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: _foreignProperties\n        });\n        Object.defineProperty(this, \"resourceId\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: resourceId\n        });\n        Object.defineProperty(this, \"_previousConcurrentEvents\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"_totalConcurrentEvents\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"_maxConcurrentEvents\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"_nDaysInGrid\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"_createdAt\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"_originalTimezone\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"_eventFragments\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: {}\n        });\n        this._originalTimezone =\n            this._start instanceof Temporal.ZonedDateTime\n                ? this._start.timeZoneId\n                : undefined;\n    }\n    get start() {\n        if (this._start instanceof Temporal.PlainDate) {\n            return this._start;\n        }\n        return this._start.withTimeZone(this._config.timezone.value);\n    }\n    set start(value) {\n        this._start =\n            value instanceof Temporal.ZonedDateTime\n                ? value.withTimeZone(this._originalTimezone)\n                : value;\n    }\n    get end() {\n        if (this._end instanceof Temporal.PlainDate) {\n            return this._end;\n        }\n        return this._end.withTimeZone(this._config.timezone.value);\n    }\n    set end(value) {\n        this._end =\n            value instanceof Temporal.ZonedDateTime\n                ? value.withTimeZone(this._originalTimezone)\n                : value;\n    }\n    get _isSingleDayTimed() {\n        if (this.start instanceof Temporal.PlainDate ||\n            this.end instanceof Temporal.PlainDate)\n            return false;\n        const localStartDate = dateFromDateTime(this.start.toString());\n        const localEndDate = dateFromDateTime(this.end.toString());\n        return localStartDate === localEndDate;\n    }\n    get _isSingleDayFullDay() {\n        const startDate = dateFromDateTime(this.start.toString());\n        const endDate = dateFromDateTime(this.end.toString());\n        return (startDate === endDate &&\n            this.start instanceof Temporal.PlainDate &&\n            this.end instanceof Temporal.PlainDate);\n    }\n    get _isMultiDayTimed() {\n        if (this.start instanceof Temporal.PlainDate ||\n            this.end instanceof Temporal.PlainDate)\n            return false;\n        const startDate = dateFromDateTime(this.start.toString());\n        const endDate = dateFromDateTime(this.end.toString());\n        return startDate !== endDate;\n    }\n    get _isMultiDayFullDay() {\n        const startDate = dateFromDateTime(this.start.toString());\n        const endDate = dateFromDateTime(this.end.toString());\n        return (this.start instanceof Temporal.PlainDate &&\n            this.end instanceof Temporal.PlainDate &&\n            startDate !== endDate);\n    }\n    get _isSingleHybridDayTimed() {\n        if (!this._config.isHybridDay)\n            return false;\n        if (this.start instanceof Temporal.PlainDate ||\n            this.end instanceof Temporal.PlainDate)\n            return false;\n        const startDate = dateFromDateTime(this.start.toString());\n        const endDate = dateFromDateTime(this.end.toString());\n        const endDateMinusOneDay = toDateString(Temporal.PlainDate.from(endDate).subtract({ days: 1 }));\n        if (startDate !== endDate && startDate !== endDateMinusOneDay)\n            return false;\n        const dayBoundaries = this._config.dayBoundaries.value;\n        const eventStartTimePoints = timePointsFromString(timeFromDateTime(this.start.toString()));\n        const eventEndTimePoints = timePointsFromString(timeFromDateTime(this.end.toString()));\n        const eventIsFullyInFirstDayOfBoundary = eventEndTimePoints > eventStartTimePoints && startDate === endDate;\n        return ((eventStartTimePoints >= dayBoundaries.start &&\n            (eventEndTimePoints <= dayBoundaries.end ||\n                eventIsFullyInFirstDayOfBoundary)) ||\n            (eventStartTimePoints < dayBoundaries.end &&\n                eventEndTimePoints <= dayBoundaries.end));\n    }\n    get _color() {\n        if (this.calendarId &&\n            this._config.calendars.value &&\n            this.calendarId in this._config.calendars.value) {\n            return this._config.calendars.value[this.calendarId].colorName;\n        }\n        return DEFAULT_EVENT_COLOR_NAME;\n    }\n    _getForeignProperties() {\n        return this._foreignProperties;\n    }\n    _getExternalEvent() {\n        return {\n            id: this.id,\n            start: this._start,\n            end: this._end,\n            title: this.title,\n            people: this.people,\n            location: this.location,\n            description: this.description,\n            calendarId: this.calendarId,\n            resourceId: this.resourceId,\n            _options: this._options,\n            ...this._getForeignProperties(),\n        };\n    }\n}\n\nclass CalendarEventBuilder {\n    constructor(_config, id, start, end) {\n        Object.defineProperty(this, \"_config\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: _config\n        });\n        Object.defineProperty(this, \"id\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: id\n        });\n        Object.defineProperty(this, \"start\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: start\n        });\n        Object.defineProperty(this, \"end\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: end\n        });\n        Object.defineProperty(this, \"people\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"location\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"description\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"title\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"calendarId\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"resourceId\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"_foreignProperties\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: {}\n        });\n        Object.defineProperty(this, \"_options\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: undefined\n        });\n        Object.defineProperty(this, \"_customContent\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: {}\n        });\n    }\n    build() {\n        return new CalendarEventImpl(this._config, this.id, this.start, this.end, this.title, this.people, this.location, this.description, this.calendarId, this._options, this._customContent, this._foreignProperties, this.resourceId);\n    }\n    withTitle(title) {\n        this.title = title;\n        return this;\n    }\n    withPeople(people) {\n        this.people = people;\n        return this;\n    }\n    withLocation(location) {\n        this.location = location;\n        return this;\n    }\n    withDescription(description) {\n        this.description = description;\n        return this;\n    }\n    withForeignProperties(foreignProperties) {\n        this._foreignProperties = foreignProperties;\n        return this;\n    }\n    withCalendarId(calendarId) {\n        this.calendarId = calendarId;\n        return this;\n    }\n    withOptions(options) {\n        this._options = options;\n        return this;\n    }\n    withCustomContent(customContent) {\n        this._customContent = customContent;\n        return this;\n    }\n    withResourceId(resourceId) {\n        this.resourceId = resourceId;\n        return this;\n    }\n}\n\nconst externalEventToInternal = (event, config) => {\n    const { id, start, end, title, description, location, people, _options, ...foreignProperties } = event;\n    return new CalendarEventBuilder(config, id, start, end)\n        .withTitle(title)\n        .withDescription(description)\n        .withLocation(location)\n        .withPeople(people)\n        .withCalendarId(event.calendarId)\n        .withOptions(_options)\n        .withForeignProperties(foreignProperties)\n        .withCustomContent(event._customContent)\n        .withResourceId(event.resourceId)\n        .build();\n};\n\nclass EventsFacadeImpl {\n    constructor($app) {\n        Object.defineProperty(this, \"$app\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: $app\n        });\n    }\n    set(events) {\n        this.$app.calendarEvents.list.value = events.map((event) => externalEventToInternal(event, this.$app.config));\n    }\n    add(event) {\n        const newEvent = externalEventToInternal(event, this.$app.config);\n        newEvent._createdAt = new Date();\n        const copiedEvents = [...this.$app.calendarEvents.list.value];\n        copiedEvents.push(newEvent);\n        this.$app.calendarEvents.list.value = copiedEvents;\n    }\n    get(id) {\n        var _a;\n        return (_a = this.$app.calendarEvents.list.value\n            .find((event) => event.id === id)) === null || _a === void 0 ? void 0 : _a._getExternalEvent();\n    }\n    getAll() {\n        return this.$app.calendarEvents.list.value.map((event) => event._getExternalEvent());\n    }\n    remove(id) {\n        const index = this.$app.calendarEvents.list.value.findIndex((event) => event.id === id);\n        const copiedEvents = [...this.$app.calendarEvents.list.value];\n        copiedEvents.splice(index, 1);\n        this.$app.calendarEvents.list.value = copiedEvents;\n    }\n    update(event) {\n        const index = this.$app.calendarEvents.list.value.findIndex((e) => e.id === event.id);\n        const copiedEvents = [...this.$app.calendarEvents.list.value];\n        copiedEvents.splice(index, 1, externalEventToInternal(event, this.$app.config));\n        this.$app.calendarEvents.list.value = copiedEvents;\n    }\n}\n\nconst definePlugin = (name, definition) => {\n    definition.name = name;\n    return definition;\n};\n\nconst validateEvents = (events = []) => {\n    events === null || events === void 0 ? void 0 : events.forEach((event) => {\n        if (!(event.start instanceof Temporal.ZonedDateTime) &&\n            !(event.start instanceof Temporal.PlainDate)) {\n            throw new Error(`[Schedule-X error]: Event start time needs to be a Temporal.ZonedDateTime or Temporal.PlainDate.`);\n        }\n        if (!(event.end instanceof Temporal.ZonedDateTime) &&\n            !(event.end instanceof Temporal.PlainDate)) {\n            throw new Error(`[Schedule-X error]: Event end time needs to be a Temporal.ZonedDateTime or Temporal.PlainDate.`);\n        }\n        const isIdDecimalNumber = typeof event.id === 'number' && event.id % 1 !== 0;\n        if (isIdDecimalNumber) {\n            throw new Error(`[Schedule-X error]: Event id ${event.id} is not a valid id. Only non-unicode characters that can be used by document.querySelector is allowed, see: https://developer.mozilla.org/en-US/docs/Web/CSS/ident. We recommend using uuids or integers.`);\n        }\n        // only allow non-unicode characters that can be used by document.querySelector: https://developer.mozilla.org/en-US/docs/Web/CSS/ident\n        if (typeof event.id === 'string' && !/^[a-zA-Z0-9_-]*$/.test(event.id)) {\n            throw new Error(`[Schedule-X error]: Event id ${event.id} is not a valid id. Only non-unicode characters that can be used by document.querySelector is allowed, see: https://developer.mozilla.org/en-US/docs/Web/CSS/ident. We recommend using uuids or integers.`);\n        }\n        if (typeof event.id !== 'string' && typeof event.id !== 'number') {\n            throw new Error(`[Schedule-X error]: Event id ${event.id} is not a valid id. Only non-unicode characters that can be used by document.querySelector is allowed, see: https://developer.mozilla.org/en-US/docs/Web/CSS/ident. We recommend using uuids or integers.`);\n        }\n    });\n};\n\nclass EventsServicePluginImpl {\n    constructor() {\n        Object.defineProperty(this, \"name\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: 'EventsServicePlugin'\n        });\n        Object.defineProperty(this, \"$app\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        Object.defineProperty(this, \"eventsFacade\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n    }\n    beforeRender($app) {\n        this.$app = $app;\n        // TODO v3: move methods from events facade to here, and remove events facade\n        this.eventsFacade = new EventsFacadeImpl($app);\n    }\n    update(event) {\n        validateEvents([event]);\n        this.eventsFacade.update(event);\n    }\n    add(event) {\n        validateEvents([event]);\n        this.eventsFacade.add(event);\n    }\n    remove(id) {\n        this.eventsFacade.remove(id);\n    }\n    get(id) {\n        return this.eventsFacade.get(id);\n    }\n    getAll() {\n        return this.eventsFacade.getAll();\n    }\n    set(events) {\n        validateEvents(events);\n        this.eventsFacade.set(events);\n    }\n    setBackgroundEvents(backgroundEvents) {\n        this.$app.calendarEvents.backgroundEvents.value = backgroundEvents;\n    }\n}\nconst createEventsServicePlugin = () => {\n    return definePlugin('eventsService', new EventsServicePluginImpl());\n};\n\nexports.createEventsServicePlugin = createEventsServicePlugin;\n"]}