@fullcalendar/moment 5.11.3 → 6.0.0-beta.2
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/{LICENSE.txt → LICENSE.md} +0 -0
- package/{main.cjs.js → index.cjs} +43 -43
- package/index.d.ts +10 -0
- package/{main.global.js → index.global.js} +47 -43
- package/index.global.min.js +6 -0
- package/{main.js → index.js} +37 -39
- package/package.json +33 -21
- package/main.d.ts +0 -10
- package/main.global.min.js +0 -6
- package/main.js.map +0 -1
|
File without changes
|
|
@@ -1,58 +1,39 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
FullCalendar v5.11.3
|
|
3
|
-
Docs & License: https://fullcalendar.io/
|
|
4
|
-
(c) 2022 Adam Shaw
|
|
5
|
-
*/
|
|
6
1
|
'use strict';
|
|
7
2
|
|
|
8
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
9
4
|
|
|
5
|
+
var index_cjs = require('@fullcalendar/core/index.cjs');
|
|
10
6
|
var moment = require('moment');
|
|
11
|
-
var
|
|
7
|
+
var internal_cjs = require('@fullcalendar/core/internal.cjs');
|
|
12
8
|
|
|
13
9
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
10
|
|
|
15
11
|
var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
|
|
16
12
|
|
|
17
13
|
function toMoment(date, calendar) {
|
|
18
|
-
if (!(calendar instanceof
|
|
14
|
+
if (!(calendar instanceof internal_cjs.CalendarImpl)) {
|
|
19
15
|
throw new Error('must supply a CalendarApi instance');
|
|
20
16
|
}
|
|
21
|
-
|
|
17
|
+
let { dateEnv } = calendar.getCurrentData();
|
|
22
18
|
return convertToMoment(date, dateEnv.timeZone, null, dateEnv.locale.codes[0]);
|
|
23
19
|
}
|
|
24
20
|
function toMomentDuration(fcDuration) {
|
|
25
|
-
return moment__default[
|
|
26
|
-
}
|
|
27
|
-
function formatWithCmdStr(cmdStr, arg) {
|
|
28
|
-
var cmd = parseCmdStr(cmdStr);
|
|
29
|
-
if (arg.end) {
|
|
30
|
-
var startMom = convertToMoment(arg.start.array, arg.timeZone, arg.start.timeZoneOffset, arg.localeCodes[0]);
|
|
31
|
-
var endMom = convertToMoment(arg.end.array, arg.timeZone, arg.end.timeZoneOffset, arg.localeCodes[0]);
|
|
32
|
-
return formatRange(cmd, createMomentFormatFunc(startMom), createMomentFormatFunc(endMom), arg.defaultSeparator);
|
|
33
|
-
}
|
|
34
|
-
return convertToMoment(arg.date.array, arg.timeZone, arg.date.timeZoneOffset, arg.localeCodes[0]).format(cmd.whole); // TODO: test for this
|
|
35
|
-
}
|
|
36
|
-
var main = common.createPlugin({
|
|
37
|
-
cmdFormatter: formatWithCmdStr,
|
|
38
|
-
});
|
|
39
|
-
function createMomentFormatFunc(mom) {
|
|
40
|
-
return function (cmdStr) { return (cmdStr ? mom.format(cmdStr) : '' // because calling with blank string results in ISO8601 :(
|
|
41
|
-
); };
|
|
21
|
+
return moment__default["default"].duration(fcDuration); // moment accepts all the props that fc.Duration already has!
|
|
42
22
|
}
|
|
23
|
+
// Internal Utils
|
|
43
24
|
function convertToMoment(input, timeZone, timeZoneOffset, locale) {
|
|
44
|
-
|
|
25
|
+
let mom;
|
|
45
26
|
if (timeZone === 'local') {
|
|
46
|
-
mom = moment__default[
|
|
27
|
+
mom = moment__default["default"](input);
|
|
47
28
|
}
|
|
48
29
|
else if (timeZone === 'UTC') {
|
|
49
|
-
mom = moment__default[
|
|
30
|
+
mom = moment__default["default"].utc(input);
|
|
50
31
|
}
|
|
51
|
-
else if (moment__default[
|
|
52
|
-
mom = moment__default[
|
|
32
|
+
else if (moment__default["default"].tz) {
|
|
33
|
+
mom = moment__default["default"].tz(input, timeZone);
|
|
53
34
|
}
|
|
54
35
|
else {
|
|
55
|
-
mom = moment__default[
|
|
36
|
+
mom = moment__default["default"].utc(input);
|
|
56
37
|
if (timeZoneOffset != null) {
|
|
57
38
|
mom.utcOffset(timeZoneOffset);
|
|
58
39
|
}
|
|
@@ -60,13 +41,27 @@ function convertToMoment(input, timeZone, timeZoneOffset, locale) {
|
|
|
60
41
|
mom.locale(locale);
|
|
61
42
|
return mom;
|
|
62
43
|
}
|
|
44
|
+
|
|
45
|
+
function formatWithCmdStr(cmdStr, arg) {
|
|
46
|
+
let cmd = parseCmdStr(cmdStr);
|
|
47
|
+
if (arg.end) {
|
|
48
|
+
let startMom = convertToMoment(arg.start.array, arg.timeZone, arg.start.timeZoneOffset, arg.localeCodes[0]);
|
|
49
|
+
let endMom = convertToMoment(arg.end.array, arg.timeZone, arg.end.timeZoneOffset, arg.localeCodes[0]);
|
|
50
|
+
return formatRange(cmd, createMomentFormatFunc(startMom), createMomentFormatFunc(endMom), arg.defaultSeparator);
|
|
51
|
+
}
|
|
52
|
+
return convertToMoment(arg.date.array, arg.timeZone, arg.date.timeZoneOffset, arg.localeCodes[0]).format(cmd.whole); // TODO: test for this
|
|
53
|
+
}
|
|
54
|
+
function createMomentFormatFunc(mom) {
|
|
55
|
+
return (cmdStr) => (cmdStr ? mom.format(cmdStr) : '' // because calling with blank string results in ISO8601 :(
|
|
56
|
+
);
|
|
57
|
+
}
|
|
63
58
|
function parseCmdStr(cmdStr) {
|
|
64
|
-
|
|
59
|
+
let parts = cmdStr.match(/^(.*?)\{(.*)\}(.*)$/); // TODO: lookbehinds for escape characters
|
|
65
60
|
if (parts) {
|
|
66
|
-
|
|
61
|
+
let middle = parseCmdStr(parts[2]);
|
|
67
62
|
return {
|
|
68
63
|
head: parts[1],
|
|
69
|
-
middle
|
|
64
|
+
middle,
|
|
70
65
|
tail: parts[3],
|
|
71
66
|
whole: parts[1] + middle.whole + parts[3],
|
|
72
67
|
};
|
|
@@ -80,26 +75,31 @@ function parseCmdStr(cmdStr) {
|
|
|
80
75
|
}
|
|
81
76
|
function formatRange(cmd, formatStart, formatEnd, separator) {
|
|
82
77
|
if (cmd.middle) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
78
|
+
let startHead = formatStart(cmd.head);
|
|
79
|
+
let startMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
|
|
80
|
+
let startTail = formatStart(cmd.tail);
|
|
81
|
+
let endHead = formatEnd(cmd.head);
|
|
82
|
+
let endMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
|
|
83
|
+
let endTail = formatEnd(cmd.tail);
|
|
89
84
|
if (startHead === endHead && startTail === endTail) {
|
|
90
85
|
return startHead +
|
|
91
86
|
(startMiddle === endMiddle ? startMiddle : startMiddle + separator + endMiddle) +
|
|
92
87
|
startTail;
|
|
93
88
|
}
|
|
94
89
|
}
|
|
95
|
-
|
|
96
|
-
|
|
90
|
+
let startWhole = formatStart(cmd.whole);
|
|
91
|
+
let endWhole = formatEnd(cmd.whole);
|
|
97
92
|
if (startWhole === endWhole) {
|
|
98
93
|
return startWhole;
|
|
99
94
|
}
|
|
100
95
|
return startWhole + separator + endWhole;
|
|
101
96
|
}
|
|
102
97
|
|
|
103
|
-
|
|
98
|
+
var index = index_cjs.createPlugin({
|
|
99
|
+
name: '@fullcalendar/moment',
|
|
100
|
+
cmdFormatter: formatWithCmdStr,
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
exports["default"] = index;
|
|
104
104
|
exports.toMoment = toMoment;
|
|
105
105
|
exports.toMomentDuration = toMomentDuration;
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CalendarApi, Duration, PluginDef } from '@fullcalendar/core';
|
|
2
|
+
import moment from 'moment';
|
|
3
|
+
|
|
4
|
+
declare function toMoment(date: Date, calendar: CalendarApi): moment.Moment;
|
|
5
|
+
declare function toMomentDuration(fcDuration: Duration): moment.Duration;
|
|
6
|
+
|
|
7
|
+
declare const _default: PluginDef;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
9
|
+
|
|
10
|
+
export { _default as default, toMoment, toMomentDuration };
|
|
@@ -1,54 +1,39 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
FullCalendar
|
|
2
|
+
FullCalendar Moment Plugin v6.0.0-beta.2
|
|
3
3
|
Docs & License: https://fullcalendar.io/
|
|
4
4
|
(c) 2022 Adam Shaw
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
FullCalendar.Moment = (function (exports, internal, core, moment) {
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
-
function
|
|
9
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
10
10
|
|
|
11
|
-
var moment__default = /*#__PURE__*/
|
|
11
|
+
var moment__default = /*#__PURE__*/_interopDefault(moment);
|
|
12
12
|
|
|
13
13
|
function toMoment(date, calendar) {
|
|
14
|
-
if (!(calendar instanceof
|
|
14
|
+
if (!(calendar instanceof internal.CalendarImpl)) {
|
|
15
15
|
throw new Error('must supply a CalendarApi instance');
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
let { dateEnv } = calendar.getCurrentData();
|
|
18
18
|
return convertToMoment(date, dateEnv.timeZone, null, dateEnv.locale.codes[0]);
|
|
19
19
|
}
|
|
20
20
|
function toMomentDuration(fcDuration) {
|
|
21
|
-
return moment__default[
|
|
22
|
-
}
|
|
23
|
-
function formatWithCmdStr(cmdStr, arg) {
|
|
24
|
-
var cmd = parseCmdStr(cmdStr);
|
|
25
|
-
if (arg.end) {
|
|
26
|
-
var startMom = convertToMoment(arg.start.array, arg.timeZone, arg.start.timeZoneOffset, arg.localeCodes[0]);
|
|
27
|
-
var endMom = convertToMoment(arg.end.array, arg.timeZone, arg.end.timeZoneOffset, arg.localeCodes[0]);
|
|
28
|
-
return formatRange(cmd, createMomentFormatFunc(startMom), createMomentFormatFunc(endMom), arg.defaultSeparator);
|
|
29
|
-
}
|
|
30
|
-
return convertToMoment(arg.date.array, arg.timeZone, arg.date.timeZoneOffset, arg.localeCodes[0]).format(cmd.whole); // TODO: test for this
|
|
31
|
-
}
|
|
32
|
-
var plugin = common.createPlugin({
|
|
33
|
-
cmdFormatter: formatWithCmdStr,
|
|
34
|
-
});
|
|
35
|
-
function createMomentFormatFunc(mom) {
|
|
36
|
-
return function (cmdStr) { return (cmdStr ? mom.format(cmdStr) : '' // because calling with blank string results in ISO8601 :(
|
|
37
|
-
); };
|
|
21
|
+
return moment__default["default"].duration(fcDuration); // moment accepts all the props that fc.Duration already has!
|
|
38
22
|
}
|
|
23
|
+
// Internal Utils
|
|
39
24
|
function convertToMoment(input, timeZone, timeZoneOffset, locale) {
|
|
40
|
-
|
|
25
|
+
let mom;
|
|
41
26
|
if (timeZone === 'local') {
|
|
42
|
-
mom = moment__default[
|
|
27
|
+
mom = moment__default["default"](input);
|
|
43
28
|
}
|
|
44
29
|
else if (timeZone === 'UTC') {
|
|
45
|
-
mom = moment__default[
|
|
30
|
+
mom = moment__default["default"].utc(input);
|
|
46
31
|
}
|
|
47
|
-
else if (moment__default[
|
|
48
|
-
mom = moment__default[
|
|
32
|
+
else if (moment__default["default"].tz) {
|
|
33
|
+
mom = moment__default["default"].tz(input, timeZone);
|
|
49
34
|
}
|
|
50
35
|
else {
|
|
51
|
-
mom = moment__default[
|
|
36
|
+
mom = moment__default["default"].utc(input);
|
|
52
37
|
if (timeZoneOffset != null) {
|
|
53
38
|
mom.utcOffset(timeZoneOffset);
|
|
54
39
|
}
|
|
@@ -56,13 +41,27 @@ var FullCalendarMoment = (function (exports, common, moment) {
|
|
|
56
41
|
mom.locale(locale);
|
|
57
42
|
return mom;
|
|
58
43
|
}
|
|
44
|
+
|
|
45
|
+
function formatWithCmdStr(cmdStr, arg) {
|
|
46
|
+
let cmd = parseCmdStr(cmdStr);
|
|
47
|
+
if (arg.end) {
|
|
48
|
+
let startMom = convertToMoment(arg.start.array, arg.timeZone, arg.start.timeZoneOffset, arg.localeCodes[0]);
|
|
49
|
+
let endMom = convertToMoment(arg.end.array, arg.timeZone, arg.end.timeZoneOffset, arg.localeCodes[0]);
|
|
50
|
+
return formatRange(cmd, createMomentFormatFunc(startMom), createMomentFormatFunc(endMom), arg.defaultSeparator);
|
|
51
|
+
}
|
|
52
|
+
return convertToMoment(arg.date.array, arg.timeZone, arg.date.timeZoneOffset, arg.localeCodes[0]).format(cmd.whole); // TODO: test for this
|
|
53
|
+
}
|
|
54
|
+
function createMomentFormatFunc(mom) {
|
|
55
|
+
return (cmdStr) => (cmdStr ? mom.format(cmdStr) : '' // because calling with blank string results in ISO8601 :(
|
|
56
|
+
);
|
|
57
|
+
}
|
|
59
58
|
function parseCmdStr(cmdStr) {
|
|
60
|
-
|
|
59
|
+
let parts = cmdStr.match(/^(.*?)\{(.*)\}(.*)$/); // TODO: lookbehinds for escape characters
|
|
61
60
|
if (parts) {
|
|
62
|
-
|
|
61
|
+
let middle = parseCmdStr(parts[2]);
|
|
63
62
|
return {
|
|
64
63
|
head: parts[1],
|
|
65
|
-
middle
|
|
64
|
+
middle,
|
|
66
65
|
tail: parts[3],
|
|
67
66
|
whole: parts[1] + middle.whole + parts[3],
|
|
68
67
|
};
|
|
@@ -76,29 +75,34 @@ var FullCalendarMoment = (function (exports, common, moment) {
|
|
|
76
75
|
}
|
|
77
76
|
function formatRange(cmd, formatStart, formatEnd, separator) {
|
|
78
77
|
if (cmd.middle) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
78
|
+
let startHead = formatStart(cmd.head);
|
|
79
|
+
let startMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
|
|
80
|
+
let startTail = formatStart(cmd.tail);
|
|
81
|
+
let endHead = formatEnd(cmd.head);
|
|
82
|
+
let endMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
|
|
83
|
+
let endTail = formatEnd(cmd.tail);
|
|
85
84
|
if (startHead === endHead && startTail === endTail) {
|
|
86
85
|
return startHead +
|
|
87
86
|
(startMiddle === endMiddle ? startMiddle : startMiddle + separator + endMiddle) +
|
|
88
87
|
startTail;
|
|
89
88
|
}
|
|
90
89
|
}
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
let startWhole = formatStart(cmd.whole);
|
|
91
|
+
let endWhole = formatEnd(cmd.whole);
|
|
93
92
|
if (startWhole === endWhole) {
|
|
94
93
|
return startWhole;
|
|
95
94
|
}
|
|
96
95
|
return startWhole + separator + endWhole;
|
|
97
96
|
}
|
|
98
97
|
|
|
99
|
-
|
|
98
|
+
var plugin = core.createPlugin({
|
|
99
|
+
name: '@fullcalendar/moment',
|
|
100
|
+
cmdFormatter: formatWithCmdStr,
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
internal.globalPlugins.push(plugin);
|
|
100
104
|
|
|
101
|
-
exports
|
|
105
|
+
exports["default"] = plugin;
|
|
102
106
|
exports.toMoment = toMoment;
|
|
103
107
|
exports.toMomentDuration = toMomentDuration;
|
|
104
108
|
|
|
@@ -106,4 +110,4 @@ var FullCalendarMoment = (function (exports, common, moment) {
|
|
|
106
110
|
|
|
107
111
|
return exports;
|
|
108
112
|
|
|
109
|
-
}({}, FullCalendar, moment)
|
|
113
|
+
})({}, FullCalendar.Internal, FullCalendar, moment);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
FullCalendar Moment Plugin v6.0.0-beta.2
|
|
3
|
+
Docs & License: https://fullcalendar.io/
|
|
4
|
+
(c) 2022 Adam Shaw
|
|
5
|
+
*/
|
|
6
|
+
FullCalendar.Moment=function(e,t,l,n){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}var r=a(n);function u(e,t,l,n){let a;return"local"===t?a=r.default(e):"UTC"===t?a=r.default.utc(e):r.default.tz?a=r.default.tz(e,t):(a=r.default.utc(e),null!=l&&a.utcOffset(l)),a.locale(n),a}function o(e){return t=>t?e.format(t):""}var d=l.createPlugin({name:"@fullcalendar/moment",cmdFormatter:function(e,t){let l=function e(t){let l=t.match(/^(.*?)\{(.*)\}(.*)$/);if(l){let t=e(l[2]);return{head:l[1],middle:t,tail:l[3],whole:l[1]+t.whole+l[3]}}return{head:null,middle:null,tail:null,whole:t}}(e);if(t.end){let e=u(t.start.array,t.timeZone,t.start.timeZoneOffset,t.localeCodes[0]),n=u(t.end.array,t.timeZone,t.end.timeZoneOffset,t.localeCodes[0]);return function e(t,l,n,a){if(t.middle){let r=l(t.head),u=e(t.middle,l,n,a),o=l(t.tail),d=n(t.head),i=e(t.middle,l,n,a),f=n(t.tail);if(r===d&&o===f)return r+(u===i?u:u+a+i)+o}let r=l(t.whole),u=n(t.whole);if(r===u)return r;return r+a+u}(l,o(e),o(n),t.defaultSeparator)}return u(t.date.array,t.timeZone,t.date.timeZoneOffset,t.localeCodes[0]).format(l.whole)}});return t.globalPlugins.push(d),e.default=d,e.toMoment=function(e,l){if(!(l instanceof t.CalendarImpl))throw new Error("must supply a CalendarApi instance");let{dateEnv:n}=l.getCurrentData();return u(e,n.timeZone,null,n.locale.codes[0])},e.toMomentDuration=function(e){return r.default.duration(e)},Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar.Internal,FullCalendar,moment);
|
package/{main.js → index.js}
RENAMED
|
@@ -1,39 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
FullCalendar v5.11.3
|
|
3
|
-
Docs & License: https://fullcalendar.io/
|
|
4
|
-
(c) 2022 Adam Shaw
|
|
5
|
-
*/
|
|
1
|
+
import { createPlugin } from '@fullcalendar/core/index.js';
|
|
6
2
|
import moment from 'moment';
|
|
7
|
-
import {
|
|
3
|
+
import { CalendarImpl } from '@fullcalendar/core/internal.js';
|
|
8
4
|
|
|
9
5
|
function toMoment(date, calendar) {
|
|
10
|
-
if (!(calendar instanceof
|
|
6
|
+
if (!(calendar instanceof CalendarImpl)) {
|
|
11
7
|
throw new Error('must supply a CalendarApi instance');
|
|
12
8
|
}
|
|
13
|
-
|
|
9
|
+
let { dateEnv } = calendar.getCurrentData();
|
|
14
10
|
return convertToMoment(date, dateEnv.timeZone, null, dateEnv.locale.codes[0]);
|
|
15
11
|
}
|
|
16
12
|
function toMomentDuration(fcDuration) {
|
|
17
13
|
return moment.duration(fcDuration); // moment accepts all the props that fc.Duration already has!
|
|
18
14
|
}
|
|
19
|
-
|
|
20
|
-
var cmd = parseCmdStr(cmdStr);
|
|
21
|
-
if (arg.end) {
|
|
22
|
-
var startMom = convertToMoment(arg.start.array, arg.timeZone, arg.start.timeZoneOffset, arg.localeCodes[0]);
|
|
23
|
-
var endMom = convertToMoment(arg.end.array, arg.timeZone, arg.end.timeZoneOffset, arg.localeCodes[0]);
|
|
24
|
-
return formatRange(cmd, createMomentFormatFunc(startMom), createMomentFormatFunc(endMom), arg.defaultSeparator);
|
|
25
|
-
}
|
|
26
|
-
return convertToMoment(arg.date.array, arg.timeZone, arg.date.timeZoneOffset, arg.localeCodes[0]).format(cmd.whole); // TODO: test for this
|
|
27
|
-
}
|
|
28
|
-
var main = createPlugin({
|
|
29
|
-
cmdFormatter: formatWithCmdStr,
|
|
30
|
-
});
|
|
31
|
-
function createMomentFormatFunc(mom) {
|
|
32
|
-
return function (cmdStr) { return (cmdStr ? mom.format(cmdStr) : '' // because calling with blank string results in ISO8601 :(
|
|
33
|
-
); };
|
|
34
|
-
}
|
|
15
|
+
// Internal Utils
|
|
35
16
|
function convertToMoment(input, timeZone, timeZoneOffset, locale) {
|
|
36
|
-
|
|
17
|
+
let mom;
|
|
37
18
|
if (timeZone === 'local') {
|
|
38
19
|
mom = moment(input);
|
|
39
20
|
}
|
|
@@ -52,13 +33,27 @@ function convertToMoment(input, timeZone, timeZoneOffset, locale) {
|
|
|
52
33
|
mom.locale(locale);
|
|
53
34
|
return mom;
|
|
54
35
|
}
|
|
36
|
+
|
|
37
|
+
function formatWithCmdStr(cmdStr, arg) {
|
|
38
|
+
let cmd = parseCmdStr(cmdStr);
|
|
39
|
+
if (arg.end) {
|
|
40
|
+
let startMom = convertToMoment(arg.start.array, arg.timeZone, arg.start.timeZoneOffset, arg.localeCodes[0]);
|
|
41
|
+
let endMom = convertToMoment(arg.end.array, arg.timeZone, arg.end.timeZoneOffset, arg.localeCodes[0]);
|
|
42
|
+
return formatRange(cmd, createMomentFormatFunc(startMom), createMomentFormatFunc(endMom), arg.defaultSeparator);
|
|
43
|
+
}
|
|
44
|
+
return convertToMoment(arg.date.array, arg.timeZone, arg.date.timeZoneOffset, arg.localeCodes[0]).format(cmd.whole); // TODO: test for this
|
|
45
|
+
}
|
|
46
|
+
function createMomentFormatFunc(mom) {
|
|
47
|
+
return (cmdStr) => (cmdStr ? mom.format(cmdStr) : '' // because calling with blank string results in ISO8601 :(
|
|
48
|
+
);
|
|
49
|
+
}
|
|
55
50
|
function parseCmdStr(cmdStr) {
|
|
56
|
-
|
|
51
|
+
let parts = cmdStr.match(/^(.*?)\{(.*)\}(.*)$/); // TODO: lookbehinds for escape characters
|
|
57
52
|
if (parts) {
|
|
58
|
-
|
|
53
|
+
let middle = parseCmdStr(parts[2]);
|
|
59
54
|
return {
|
|
60
55
|
head: parts[1],
|
|
61
|
-
middle
|
|
56
|
+
middle,
|
|
62
57
|
tail: parts[3],
|
|
63
58
|
whole: parts[1] + middle.whole + parts[3],
|
|
64
59
|
};
|
|
@@ -72,26 +67,29 @@ function parseCmdStr(cmdStr) {
|
|
|
72
67
|
}
|
|
73
68
|
function formatRange(cmd, formatStart, formatEnd, separator) {
|
|
74
69
|
if (cmd.middle) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
70
|
+
let startHead = formatStart(cmd.head);
|
|
71
|
+
let startMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
|
|
72
|
+
let startTail = formatStart(cmd.tail);
|
|
73
|
+
let endHead = formatEnd(cmd.head);
|
|
74
|
+
let endMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);
|
|
75
|
+
let endTail = formatEnd(cmd.tail);
|
|
81
76
|
if (startHead === endHead && startTail === endTail) {
|
|
82
77
|
return startHead +
|
|
83
78
|
(startMiddle === endMiddle ? startMiddle : startMiddle + separator + endMiddle) +
|
|
84
79
|
startTail;
|
|
85
80
|
}
|
|
86
81
|
}
|
|
87
|
-
|
|
88
|
-
|
|
82
|
+
let startWhole = formatStart(cmd.whole);
|
|
83
|
+
let endWhole = formatEnd(cmd.whole);
|
|
89
84
|
if (startWhole === endWhole) {
|
|
90
85
|
return startWhole;
|
|
91
86
|
}
|
|
92
87
|
return startWhole + separator + endWhole;
|
|
93
88
|
}
|
|
94
89
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
90
|
+
var index = createPlugin({
|
|
91
|
+
name: '@fullcalendar/moment',
|
|
92
|
+
cmdFormatter: formatWithCmdStr,
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
export { index as default, toMoment, toMomentDuration };
|
package/package.json
CHANGED
|
@@ -1,36 +1,48 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fullcalendar/moment",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"tslib": "^2.1.0"
|
|
10
|
-
},
|
|
11
|
-
"peerDependencies": {
|
|
12
|
-
"moment": "^2.29.1"
|
|
13
|
-
},
|
|
14
|
-
"devDependencies": {
|
|
15
|
-
"@fullcalendar/core-preact": "5.11.3",
|
|
16
|
-
"moment": "^2.29.1"
|
|
17
|
-
},
|
|
18
|
-
"main": "main.cjs.js",
|
|
19
|
-
"module": "main.js",
|
|
20
|
-
"types": "main.d.ts",
|
|
21
|
-
"jsdelivr": "main.global.min.js",
|
|
22
|
-
"browserGlobal": "FullCalendarMoment",
|
|
3
|
+
"version": "6.0.0-beta.2",
|
|
4
|
+
"keywords": [
|
|
5
|
+
"calendar",
|
|
6
|
+
"event",
|
|
7
|
+
"full-sized"
|
|
8
|
+
],
|
|
23
9
|
"homepage": "https://fullcalendar.io/",
|
|
10
|
+
"docs": "https://fullcalendar.io/docs/moment-plugin",
|
|
24
11
|
"bugs": "https://fullcalendar.io/reporting-bugs",
|
|
25
12
|
"repository": {
|
|
26
13
|
"type": "git",
|
|
27
14
|
"url": "https://github.com/fullcalendar/fullcalendar.git",
|
|
28
|
-
"homepage": "https://github.com/fullcalendar/fullcalendar"
|
|
15
|
+
"homepage": "https://github.com/fullcalendar/fullcalendar",
|
|
16
|
+
"directory": "packages/moment"
|
|
29
17
|
},
|
|
30
18
|
"license": "MIT",
|
|
31
19
|
"author": {
|
|
32
20
|
"name": "Adam Shaw",
|
|
33
21
|
"email": "arshaw@arshaw.com",
|
|
34
22
|
"url": "http://arshaw.com/"
|
|
23
|
+
},
|
|
24
|
+
"copyright": "2022 Adam Shaw",
|
|
25
|
+
"type": "module",
|
|
26
|
+
"title": "FullCalendar Moment Plugin",
|
|
27
|
+
"description": "A connector to the MomentJS date library",
|
|
28
|
+
"peerDependencies": {
|
|
29
|
+
"@fullcalendar/core": "6.0.0-beta.2",
|
|
30
|
+
"moment": "^2.29.1"
|
|
31
|
+
},
|
|
32
|
+
"main": "./index.cjs",
|
|
33
|
+
"module": "./index.js",
|
|
34
|
+
"types": "./index.d.ts",
|
|
35
|
+
"unpkg": "./index.global.min.js",
|
|
36
|
+
"jsdelvr": "./index.global.min.js",
|
|
37
|
+
"exports": {
|
|
38
|
+
"./package.json": "./package.json",
|
|
39
|
+
"./index.cjs": "./index.cjs",
|
|
40
|
+
"./index.js": "./index.js",
|
|
41
|
+
".": {
|
|
42
|
+
"require": "./index.cjs",
|
|
43
|
+
"import": "./index.js",
|
|
44
|
+
"types": "./index.d.ts",
|
|
45
|
+
"default": "./index.global.js"
|
|
46
|
+
}
|
|
35
47
|
}
|
|
36
48
|
}
|
package/main.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as _fullcalendar_common from '@fullcalendar/common';
|
|
2
|
-
import { CalendarApi, Duration } from '@fullcalendar/common';
|
|
3
|
-
import moment from 'moment';
|
|
4
|
-
|
|
5
|
-
declare function toMoment(date: Date, calendar: CalendarApi): moment.Moment;
|
|
6
|
-
declare function toMomentDuration(fcDuration: Duration): moment.Duration;
|
|
7
|
-
declare const _default: _fullcalendar_common.PluginDef;
|
|
8
|
-
|
|
9
|
-
export default _default;
|
|
10
|
-
export { toMoment, toMomentDuration };
|
package/main.global.min.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
FullCalendar v5.11.3
|
|
3
|
-
Docs & License: https://fullcalendar.io/
|
|
4
|
-
(c) 2022 Adam Shaw
|
|
5
|
-
*/
|
|
6
|
-
var FullCalendarMoment=function(e,t,a){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=n(a);var l=t.createPlugin({cmdFormatter:function(e,t){var a=d(e);if(t.end){var n=o(t.start.array,t.timeZone,t.start.timeZoneOffset,t.localeCodes[0]),r=o(t.end.array,t.timeZone,t.end.timeZoneOffset,t.localeCodes[0]);return i(a,u(n),u(r),t.defaultSeparator)}return o(t.date.array,t.timeZone,t.date.timeZoneOffset,t.localeCodes[0]).format(a.whole)}});function u(e){return function(t){return t?e.format(t):""}}function o(e,t,a,n){var l;return"local"===t?l=r.default(e):"UTC"===t?l=r.default.utc(e):r.default.tz?l=r.default.tz(e,t):(l=r.default.utc(e),null!=a&&l.utcOffset(a)),l.locale(n),l}function d(e){var t=e.match(/^(.*?)\{(.*)\}(.*)$/);if(t){var a=d(t[2]);return{head:t[1],middle:a,tail:t[3],whole:t[1]+a.whole+t[3]}}return{head:null,middle:null,tail:null,whole:e}}function i(e,t,a,n){if(e.middle){var r=t(e.head),l=i(e.middle,t,a,n),u=t(e.tail),o=a(e.head),d=i(e.middle,t,a,n),f=a(e.tail);if(r===o&&u===f)return r+(l===d?l:l+n+d)+u}var c=t(e.whole),m=a(e.whole);return c===m?c:c+n+m}return t.globalPlugins.push(l),e.default=l,e.toMoment=function(e,a){if(!(a instanceof t.CalendarApi))throw new Error("must supply a CalendarApi instance");var n=a.getCurrentData().dateEnv;return o(e,n.timeZone,null,n.locale.codes[0])},e.toMomentDuration=function(e){return r.default.duration(e)},Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,moment);
|
package/main.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["src/main.ts"],"sourcesContent":["import moment from 'moment'\nimport { Duration, VerboseFormattingArg, createPlugin, CalendarApi } from '@fullcalendar/common'\n\nexport function toMoment(date: Date, calendar: CalendarApi): moment.Moment {\n if (!(calendar instanceof CalendarApi)) {\n throw new Error('must supply a CalendarApi instance')\n }\n\n let { dateEnv } = calendar.getCurrentData()\n\n return convertToMoment(\n date,\n dateEnv.timeZone,\n null,\n dateEnv.locale.codes[0],\n )\n}\n\nexport function toMomentDuration(fcDuration: Duration): moment.Duration {\n return moment.duration(fcDuration) // moment accepts all the props that fc.Duration already has!\n}\n\nfunction formatWithCmdStr(cmdStr: string, arg: VerboseFormattingArg) {\n let cmd = parseCmdStr(cmdStr)\n\n if (arg.end) {\n let startMom = convertToMoment(\n arg.start.array,\n arg.timeZone,\n arg.start.timeZoneOffset,\n arg.localeCodes[0],\n )\n let endMom = convertToMoment(\n arg.end.array,\n arg.timeZone,\n arg.end.timeZoneOffset,\n arg.localeCodes[0],\n )\n return formatRange(\n cmd,\n createMomentFormatFunc(startMom),\n createMomentFormatFunc(endMom),\n arg.defaultSeparator,\n )\n }\n\n return convertToMoment(\n arg.date.array,\n arg.timeZone,\n arg.date.timeZoneOffset,\n arg.localeCodes[0],\n ).format(cmd.whole) // TODO: test for this\n}\n\nexport default createPlugin({\n cmdFormatter: formatWithCmdStr,\n})\n\nfunction createMomentFormatFunc(mom: moment.Moment) {\n return (cmdStr) => (\n cmdStr ? mom.format(cmdStr) : '' // because calling with blank string results in ISO8601 :(\n )\n}\n\nfunction convertToMoment(input: any, timeZone: string, timeZoneOffset: number | null, locale: string): moment.Moment {\n let mom: moment.Moment\n\n if (timeZone === 'local') {\n mom = moment(input)\n } else if (timeZone === 'UTC') {\n mom = moment.utc(input)\n } else if ((moment as any).tz) {\n mom = (moment as any).tz(input, timeZone)\n } else {\n mom = moment.utc(input)\n\n if (timeZoneOffset != null) {\n mom.utcOffset(timeZoneOffset)\n }\n }\n\n mom.locale(locale)\n\n return mom\n}\n\n/* Range Formatting (duplicate code as other date plugins)\n----------------------------------------------------------------------------------------------------*/\n\ninterface CmdParts {\n head: string | null\n middle: CmdParts | null\n tail: string | null\n whole: string\n}\n\nfunction parseCmdStr(cmdStr: string): CmdParts {\n let parts = cmdStr.match(/^(.*?)\\{(.*)\\}(.*)$/) // TODO: lookbehinds for escape characters\n\n if (parts) {\n let middle = parseCmdStr(parts[2])\n\n return {\n head: parts[1],\n middle,\n tail: parts[3],\n whole: parts[1] + middle.whole + parts[3],\n }\n }\n\n return {\n head: null,\n middle: null,\n tail: null,\n whole: cmdStr,\n }\n}\n\nfunction formatRange(\n cmd: CmdParts,\n formatStart: (cmdStr: string) => string,\n formatEnd: (cmdStr: string) => string,\n separator: string,\n): string {\n if (cmd.middle) {\n let startHead = formatStart(cmd.head)\n let startMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator)\n let startTail = formatStart(cmd.tail)\n\n let endHead = formatEnd(cmd.head)\n let endMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator)\n let endTail = formatEnd(cmd.tail)\n\n if (startHead === endHead && startTail === endTail) {\n return startHead +\n (startMiddle === endMiddle ? startMiddle : startMiddle + separator + endMiddle) +\n startTail\n }\n }\n\n let startWhole = formatStart(cmd.whole)\n let endWhole = formatEnd(cmd.whole)\n\n if (startWhole === endWhole) {\n return startWhole\n }\n\n return startWhole + separator + endWhole\n}\n"],"names":[],"mappings":"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"}
|