@fullcalendar/google-calendar 6.0.2 → 6.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{index.cjs → index.esm.js} +9 -13
- package/index.global.js +1 -1
- package/index.global.min.js +1 -1
- package/index.js +13 -10
- package/package.json +6 -8
- package/index.js.map +0 -1
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var index_cjs = require('@fullcalendar/core/index.cjs');
|
|
6
|
-
var internal_cjs = require('@fullcalendar/core/internal.cjs');
|
|
1
|
+
import { JsonRequestError, createPlugin } from '@fullcalendar/core';
|
|
2
|
+
import { requestJson, addDays, identity } from '@fullcalendar/core/internal';
|
|
7
3
|
|
|
8
4
|
// TODO: expose somehow
|
|
9
5
|
const API_BASE = 'https://www.googleapis.com/calendar/v3/calendars';
|
|
@@ -36,9 +32,9 @@ const eventSourceDef = {
|
|
|
36
32
|
let { extraParams } = meta;
|
|
37
33
|
let extraParamsObj = typeof extraParams === 'function' ? extraParams() : extraParams;
|
|
38
34
|
let requestParams = buildRequestParams(arg.range, apiKey, extraParamsObj, dateEnv);
|
|
39
|
-
return
|
|
35
|
+
return requestJson('GET', url, requestParams).then(([body, response]) => {
|
|
40
36
|
if (body.error) {
|
|
41
|
-
errorCallback(new
|
|
37
|
+
errorCallback(new JsonRequestError('Google Calendar API: ' + body.error.message, response));
|
|
42
38
|
}
|
|
43
39
|
else {
|
|
44
40
|
successCallback({
|
|
@@ -83,8 +79,8 @@ function buildRequestParams(range, apiKey, extraParams, dateEnv) {
|
|
|
83
79
|
// when timezone isn't known, we don't know what the UTC offset should be, so ask for +/- 1 day
|
|
84
80
|
// from the UTC day-start to guarantee we're getting all the events
|
|
85
81
|
// (start/end will be UTC-coerced dates, so toISOString is okay)
|
|
86
|
-
startStr =
|
|
87
|
-
endStr =
|
|
82
|
+
startStr = addDays(range.start, -1).toISOString();
|
|
83
|
+
endStr = addDays(range.end, 1).toISOString();
|
|
88
84
|
}
|
|
89
85
|
params = Object.assign(Object.assign({}, (extraParams || {})), { key: apiKey, timeMin: startStr, timeMax: endStr, singleEvents: true, maxResults: 9999 });
|
|
90
86
|
if (dateEnv.timeZone !== 'local') {
|
|
@@ -128,14 +124,14 @@ const EVENT_SOURCE_REFINERS = {
|
|
|
128
124
|
googleCalendarApiKey: String,
|
|
129
125
|
googleCalendarId: String,
|
|
130
126
|
googleCalendarApiBase: String,
|
|
131
|
-
extraParams:
|
|
127
|
+
extraParams: identity,
|
|
132
128
|
};
|
|
133
129
|
|
|
134
|
-
var index =
|
|
130
|
+
var index = createPlugin({
|
|
135
131
|
name: '@fullcalendar/google-calendar',
|
|
136
132
|
eventSourceDefs: [eventSourceDef],
|
|
137
133
|
optionRefiners: OPTION_REFINERS,
|
|
138
134
|
eventSourceRefiners: EVENT_SOURCE_REFINERS,
|
|
139
135
|
});
|
|
140
136
|
|
|
141
|
-
|
|
137
|
+
export { index as default };
|
package/index.global.js
CHANGED
package/index.global.min.js
CHANGED
package/index.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var core = require('@fullcalendar/core');
|
|
6
|
+
var internal = require('@fullcalendar/core/internal');
|
|
3
7
|
|
|
4
8
|
// TODO: expose somehow
|
|
5
9
|
const API_BASE = 'https://www.googleapis.com/calendar/v3/calendars';
|
|
@@ -32,9 +36,9 @@ const eventSourceDef = {
|
|
|
32
36
|
let { extraParams } = meta;
|
|
33
37
|
let extraParamsObj = typeof extraParams === 'function' ? extraParams() : extraParams;
|
|
34
38
|
let requestParams = buildRequestParams(arg.range, apiKey, extraParamsObj, dateEnv);
|
|
35
|
-
return requestJson('GET', url, requestParams).then(([body, response]) => {
|
|
39
|
+
return internal.requestJson('GET', url, requestParams).then(([body, response]) => {
|
|
36
40
|
if (body.error) {
|
|
37
|
-
errorCallback(new JsonRequestError('Google Calendar API: ' + body.error.message, response));
|
|
41
|
+
errorCallback(new core.JsonRequestError('Google Calendar API: ' + body.error.message, response));
|
|
38
42
|
}
|
|
39
43
|
else {
|
|
40
44
|
successCallback({
|
|
@@ -79,8 +83,8 @@ function buildRequestParams(range, apiKey, extraParams, dateEnv) {
|
|
|
79
83
|
// when timezone isn't known, we don't know what the UTC offset should be, so ask for +/- 1 day
|
|
80
84
|
// from the UTC day-start to guarantee we're getting all the events
|
|
81
85
|
// (start/end will be UTC-coerced dates, so toISOString is okay)
|
|
82
|
-
startStr = addDays(range.start, -1).toISOString();
|
|
83
|
-
endStr = addDays(range.end, 1).toISOString();
|
|
86
|
+
startStr = internal.addDays(range.start, -1).toISOString();
|
|
87
|
+
endStr = internal.addDays(range.end, 1).toISOString();
|
|
84
88
|
}
|
|
85
89
|
params = Object.assign(Object.assign({}, (extraParams || {})), { key: apiKey, timeMin: startStr, timeMax: endStr, singleEvents: true, maxResults: 9999 });
|
|
86
90
|
if (dateEnv.timeZone !== 'local') {
|
|
@@ -124,15 +128,14 @@ const EVENT_SOURCE_REFINERS = {
|
|
|
124
128
|
googleCalendarApiKey: String,
|
|
125
129
|
googleCalendarId: String,
|
|
126
130
|
googleCalendarApiBase: String,
|
|
127
|
-
extraParams: identity,
|
|
131
|
+
extraParams: internal.identity,
|
|
128
132
|
};
|
|
129
133
|
|
|
130
|
-
var index = createPlugin({
|
|
134
|
+
var index = core.createPlugin({
|
|
131
135
|
name: '@fullcalendar/google-calendar',
|
|
132
136
|
eventSourceDefs: [eventSourceDef],
|
|
133
137
|
optionRefiners: OPTION_REFINERS,
|
|
134
138
|
eventSourceRefiners: EVENT_SOURCE_REFINERS,
|
|
135
139
|
});
|
|
136
140
|
|
|
137
|
-
|
|
138
|
-
//# sourceMappingURL=index.js.map
|
|
141
|
+
exports["default"] = index;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fullcalendar/google-calendar",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.3",
|
|
4
4
|
"title": "FullCalendar Google Calendar Plugin",
|
|
5
5
|
"description": "Display events from a public Google Calendar feed",
|
|
6
6
|
"homepage": "https://fullcalendar.io/docs/google-calendar",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"google-calendar"
|
|
13
13
|
],
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"@fullcalendar/core": "~6.0.
|
|
15
|
+
"@fullcalendar/core": "~6.0.3"
|
|
16
16
|
},
|
|
17
17
|
"type": "module",
|
|
18
18
|
"bugs": "https://fullcalendar.io/reporting-bugs",
|
|
@@ -28,19 +28,17 @@
|
|
|
28
28
|
"url": "http://arshaw.com/"
|
|
29
29
|
},
|
|
30
30
|
"copyright": "2022 Adam Shaw",
|
|
31
|
-
"main": "./index.cjs",
|
|
32
|
-
"module": "./index.js",
|
|
33
31
|
"types": "./index.d.ts",
|
|
32
|
+
"main": "./index.js",
|
|
33
|
+
"module": "./index.esm.js",
|
|
34
34
|
"unpkg": "./index.global.min.js",
|
|
35
35
|
"jsdelivr": "./index.global.min.js",
|
|
36
36
|
"exports": {
|
|
37
37
|
"./package.json": "./package.json",
|
|
38
|
-
"./index.cjs": "./index.cjs",
|
|
39
|
-
"./index.js": "./index.js",
|
|
40
38
|
".": {
|
|
41
39
|
"types": "./index.d.ts",
|
|
42
|
-
"require": "./index.
|
|
43
|
-
"import": "./index.js"
|
|
40
|
+
"require": "./index.js",
|
|
41
|
+
"import": "./index.esm.js"
|
|
44
42
|
}
|
|
45
43
|
},
|
|
46
44
|
"sideEffects": false
|
package/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/event-source-def.ts","../src/options-refiners.ts","../src/event-source-refiners.ts","../src/index.ts"],"sourcesContent":["import { JsonRequestError } from '@fullcalendar/core'\nimport { EventSourceDef, addDays, DateEnv, requestJson, Dictionary } from '@fullcalendar/core/internal'\n\n// TODO: expose somehow\nconst API_BASE = 'https://www.googleapis.com/calendar/v3/calendars'\n\ninterface GCalMeta {\n googleCalendarId: string\n googleCalendarApiKey?: string\n googleCalendarApiBase?: string,\n extraParams?: Dictionary | (() => Dictionary)\n}\n\nexport const eventSourceDef: EventSourceDef<GCalMeta> = {\n\n parseMeta(refined): GCalMeta | null {\n let { googleCalendarId } = refined\n\n if (!googleCalendarId && refined.url) {\n googleCalendarId = parseGoogleCalendarId(refined.url)\n }\n\n if (googleCalendarId) {\n return {\n googleCalendarId,\n googleCalendarApiKey: refined.googleCalendarApiKey,\n googleCalendarApiBase: refined.googleCalendarApiBase,\n extraParams: refined.extraParams,\n }\n }\n\n return null\n },\n\n fetch(arg, successCallback, errorCallback) {\n let { dateEnv, options } = arg.context\n let meta: GCalMeta = arg.eventSource.meta\n let apiKey = meta.googleCalendarApiKey || options.googleCalendarApiKey\n\n if (!apiKey) {\n errorCallback(\n new Error('Specify a googleCalendarApiKey. See https://fullcalendar.io/docs/google-calendar'),\n )\n } else {\n let url = buildUrl(meta)\n\n // TODO: make DRY with json-feed-event-source\n let { extraParams } = meta\n let extraParamsObj = typeof extraParams === 'function' ? extraParams() : extraParams\n\n let requestParams = buildRequestParams(\n arg.range,\n apiKey,\n extraParamsObj,\n dateEnv,\n )\n\n return requestJson(\n 'GET',\n url,\n requestParams,\n ).then(\n ([body, response]: [any, Response]) => {\n if (body.error) {\n errorCallback(new JsonRequestError('Google Calendar API: ' + body.error.message, response))\n } else {\n successCallback({\n rawEvents: gcalItemsToRawEventDefs(\n body.items,\n requestParams.timeZone,\n ),\n response,\n })\n }\n },\n errorCallback,\n )\n }\n },\n}\n\nfunction parseGoogleCalendarId(url) {\n let match\n\n // detect if the ID was specified as a single string.\n // will match calendars like \"asdf1234@calendar.google.com\" in addition to person email calendars.\n if (/^[^/]+@([^/.]+\\.)*(google|googlemail|gmail)\\.com$/.test(url)) {\n return url\n }\n\n if (\n (match = /^https:\\/\\/www.googleapis.com\\/calendar\\/v3\\/calendars\\/([^/]*)/.exec(url)) ||\n (match = /^https?:\\/\\/www.google.com\\/calendar\\/feeds\\/([^/]*)/.exec(url))\n ) {\n return decodeURIComponent(match[1])\n }\n\n return null\n}\n\nfunction buildUrl(meta) {\n let apiBase = meta.googleCalendarApiBase\n if (!apiBase) {\n apiBase = API_BASE\n }\n return apiBase + '/' + encodeURIComponent(meta.googleCalendarId) + '/events'\n}\n\nfunction buildRequestParams(range, apiKey: string, extraParams: Dictionary, dateEnv: DateEnv) {\n let params\n let startStr\n let endStr\n\n if (dateEnv.canComputeOffset) {\n // strings will naturally have offsets, which GCal needs\n startStr = dateEnv.formatIso(range.start)\n endStr = dateEnv.formatIso(range.end)\n } else {\n // when timezone isn't known, we don't know what the UTC offset should be, so ask for +/- 1 day\n // from the UTC day-start to guarantee we're getting all the events\n // (start/end will be UTC-coerced dates, so toISOString is okay)\n startStr = addDays(range.start, -1).toISOString()\n endStr = addDays(range.end, 1).toISOString()\n }\n\n params = {\n ...(extraParams || {}),\n key: apiKey,\n timeMin: startStr,\n timeMax: endStr,\n singleEvents: true,\n maxResults: 9999,\n }\n\n if (dateEnv.timeZone !== 'local') {\n params.timeZone = dateEnv.timeZone\n }\n\n return params\n}\n\nfunction gcalItemsToRawEventDefs(items, gcalTimezone) {\n return items.map((item) => gcalItemToRawEventDef(item, gcalTimezone))\n}\n\nfunction gcalItemToRawEventDef(item, gcalTimezone) {\n let url = item.htmlLink || null\n\n // make the URLs for each event show times in the correct timezone\n if (url && gcalTimezone) {\n url = injectQsComponent(url, 'ctz=' + gcalTimezone)\n }\n\n return {\n id: item.id,\n title: item.summary,\n start: item.start.dateTime || item.start.date, // try timed. will fall back to all-day\n end: item.end.dateTime || item.end.date, // same\n url,\n location: item.location,\n description: item.description,\n attachments: item.attachments || [],\n extendedProps: (item.extendedProperties || {}).shared || {},\n }\n}\n\n// Injects a string like \"arg=value\" into the querystring of a URL\n// TODO: move to a general util file?\nfunction injectQsComponent(url, component) {\n // inject it after the querystring but before the fragment\n return url.replace(\n /(\\?.*?)?(#|$)/,\n (whole, qs, hash) => (qs ? qs + '&' : '?') + component + hash,\n )\n}\n","\nexport const OPTION_REFINERS = {\n googleCalendarApiKey: String,\n}\n","import { identity, Identity, Dictionary } from '@fullcalendar/core/internal'\n\nexport const EVENT_SOURCE_REFINERS = {\n googleCalendarApiKey: String, // TODO: rename with no prefix?\n googleCalendarId: String,\n googleCalendarApiBase: String,\n extraParams: identity as Identity<Dictionary | (() => Dictionary)>,\n}\n","import { createPlugin, PluginDef } from '@fullcalendar/core'\nimport { eventSourceDef } from './event-source-def.js'\nimport { OPTION_REFINERS } from './options-refiners.js'\nimport { EVENT_SOURCE_REFINERS } from './event-source-refiners.js'\nimport './ambient.js'\n\nexport default createPlugin({\n name: '<%= pkgName %>',\n eventSourceDefs: [eventSourceDef],\n optionRefiners: OPTION_REFINERS,\n eventSourceRefiners: EVENT_SOURCE_REFINERS,\n}) as PluginDef\n"],"names":[],"mappings":"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"}
|