add-to-calendar-button 2.12.6 → 2.12.8
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/assets/css/atcb-3d.css +1 -1
- package/assets/css/atcb-date.css +1 -1
- package/assets/css/atcb-flat.css +1 -1
- package/assets/css/atcb-neumorphism.css +1 -1
- package/assets/css/atcb-round.css +1 -1
- package/assets/css/atcb-simple.css +1 -1
- package/assets/css/atcb-text.css +1 -1
- package/assets/css/atcb.css +1 -1
- package/dist/atcb-no-pro-unstyle.js +53 -20
- package/dist/atcb-no-pro.js +53 -20
- package/dist/atcb-unstyle.js +53 -20
- package/dist/atcb.js +53 -20
- package/dist/commonjs/index.js +53 -20
- package/dist/commonjs/no-pro/index.js +53 -20
- package/dist/commonjs/no-pro-unstyle/index.js +53 -20
- package/dist/commonjs/unstyle/index.js +53 -20
- package/dist/module/index.js +53 -20
- package/dist/module/no-pro/index.js +53 -20
- package/dist/module/no-pro-unstyle/index.js +53 -20
- package/dist/module/unstyle/index.js +53 -20
- package/package.json +1 -1
package/assets/css/atcb-3d.css
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Style: 3D
|
|
7
7
|
*
|
|
8
|
-
* Version: 2.12.
|
|
8
|
+
* Version: 2.12.8
|
|
9
9
|
* Creator: Jens Kuerschner (https://jekuer.com)
|
|
10
10
|
* Project: https://github.com/add2cal/add-to-calendar-button
|
|
11
11
|
* License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)
|
package/assets/css/atcb-date.css
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Style: Date
|
|
7
7
|
*
|
|
8
|
-
* Version: 2.12.
|
|
8
|
+
* Version: 2.12.8
|
|
9
9
|
* Creator: Jens Kuerschner (https://jekuer.com)
|
|
10
10
|
* Project: https://github.com/add2cal/add-to-calendar-button
|
|
11
11
|
* License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)
|
package/assets/css/atcb-flat.css
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Style: Flat
|
|
7
7
|
*
|
|
8
|
-
* Version: 2.12.
|
|
8
|
+
* Version: 2.12.8
|
|
9
9
|
* Creator: Jens Kuerschner (https://jekuer.com)
|
|
10
10
|
* Project: https://github.com/add2cal/add-to-calendar-button
|
|
11
11
|
* License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Style: Neumorphism
|
|
7
7
|
*
|
|
8
|
-
* Version: 2.12.
|
|
8
|
+
* Version: 2.12.8
|
|
9
9
|
* Creator: Jens Kuerschner (https://jekuer.com)
|
|
10
10
|
* Project: https://github.com/add2cal/add-to-calendar-button
|
|
11
11
|
* License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Style: Round
|
|
7
7
|
*
|
|
8
|
-
* Version: 2.12.
|
|
8
|
+
* Version: 2.12.8
|
|
9
9
|
* Creator: Jens Kuerschner (https://jekuer.com)
|
|
10
10
|
* Project: https://github.com/add2cal/add-to-calendar-button
|
|
11
11
|
* License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Style: Simple
|
|
7
7
|
*
|
|
8
|
-
* Version: 2.12.
|
|
8
|
+
* Version: 2.12.8
|
|
9
9
|
* Creator: Jens Kuerschner (https://jekuer.com)
|
|
10
10
|
* Project: https://github.com/add2cal/add-to-calendar-button
|
|
11
11
|
* License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)
|
package/assets/css/atcb-text.css
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Style: Text
|
|
7
7
|
*
|
|
8
|
-
* Version: 2.12.
|
|
8
|
+
* Version: 2.12.8
|
|
9
9
|
* Creator: Jens Kuerschner (https://jekuer.com)
|
|
10
10
|
* Project: https://github.com/add2cal/add-to-calendar-button
|
|
11
11
|
* License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)
|
package/assets/css/atcb.css
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Style: Default
|
|
7
7
|
*
|
|
8
|
-
* Version: 2.12.
|
|
8
|
+
* Version: 2.12.8
|
|
9
9
|
* Creator: Jens Kuerschner (https://jekuer.com)
|
|
10
10
|
* Project: https://github.com/add2cal/add-to-calendar-button
|
|
11
11
|
* License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)
|
|
@@ -223,14 +223,14 @@ function tzlib_get_timezones(jsonType = false) {
|
|
|
223
223
|
* Add to Calendar Button
|
|
224
224
|
* ++++++++++++++++++++++
|
|
225
225
|
*
|
|
226
|
-
* Version: 2.12.
|
|
226
|
+
* Version: 2.12.8
|
|
227
227
|
* Creator: Jens Kuerschner (https://jekuer.com)
|
|
228
228
|
* Project: https://github.com/add2cal/add-to-calendar-button
|
|
229
229
|
* License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)
|
|
230
230
|
* Note: DO NOT REMOVE THE COPYRIGHT NOTICE ABOVE!
|
|
231
231
|
*
|
|
232
232
|
*/
|
|
233
|
-
const atcbVersion = '2.12.
|
|
233
|
+
const atcbVersion = '2.12.8';
|
|
234
234
|
const atcbCssTemplate = {};
|
|
235
235
|
const atcbIsBrowser = () => {
|
|
236
236
|
if (typeof window === 'undefined') {
|
|
@@ -495,7 +495,6 @@ async function atcb_decorate_data(data) {
|
|
|
495
495
|
data.lightMode = atcb_decorate_light_mode(data.lightMode);
|
|
496
496
|
data = atcb_decorate_data_i18n(data);
|
|
497
497
|
data = atcb_decorate_data_dates(data);
|
|
498
|
-
data = atcb_decorate_data_button_status_handling(data);
|
|
499
498
|
data = await atcb_decorate_data_rsvp(data);
|
|
500
499
|
return data;
|
|
501
500
|
}
|
|
@@ -621,7 +620,7 @@ function atcb_decorate_data_recurring_events(data) {
|
|
|
621
620
|
}
|
|
622
621
|
const endDate = data.dates?.[0].endDate || data.endDate || startDate;
|
|
623
622
|
const endTime = data.dates?.[0].endTime || data.endTime || '';
|
|
624
|
-
const diff = new Date(endDate + (endTime && endTime !== '' ? 'T' + endTime : '')) - new Date(startDate + (startTime && startTime !== '' ? 'T' + startTime : ''));
|
|
623
|
+
const diff = new Date(endDate + (endTime && endTime !== '' ? 'T' + endTime : '')).getTime() - new Date(startDate + (startTime && startTime !== '' ? 'T' + startTime : '')).getTime();
|
|
625
624
|
const newEndDateTime = new Date(occurenceData.nextOccurrence.getTime() + diff);
|
|
626
625
|
const newEndDateTimeString =
|
|
627
626
|
String(newEndDateTime.getFullYear()) +
|
|
@@ -835,6 +834,7 @@ function atcb_decorate_data_dates(data) {
|
|
|
835
834
|
data = atcb_replace_custom_variables(data, i);
|
|
836
835
|
data = atcb_set_online_event_flag(data, i);
|
|
837
836
|
}
|
|
837
|
+
data = atcb_decorate_data_button_status_handling(data);
|
|
838
838
|
const now = new Date();
|
|
839
839
|
if (!data.created || data.created === '') {
|
|
840
840
|
data.created = atcb_format_datetime(now, 'clean', true);
|
|
@@ -3516,40 +3516,66 @@ function atcb_parseRRule(rruleStr, deep = true) {
|
|
|
3516
3516
|
}, {});
|
|
3517
3517
|
if (!parts.FREQ) throw new Error('RRULE must have FREQ');
|
|
3518
3518
|
parts.FREQ = parts.FREQ.toUpperCase();
|
|
3519
|
-
parts.INTERVAL = parseInt(parts.INTERVAL || 1, 10);
|
|
3520
|
-
parts.COUNT = parts.COUNT ? parseInt(parts.COUNT, 10) : null;
|
|
3519
|
+
parts.INTERVAL = parseInt(parts.INTERVAL.toString() || '1', 10);
|
|
3520
|
+
parts.COUNT = parts.COUNT ? parseInt(parts.COUNT.toString(), 10) : null;
|
|
3521
3521
|
if (parts.UNTIL) {
|
|
3522
|
-
const untilStr = parts.UNTIL;
|
|
3523
|
-
parts.UNTIL = deep ? new Date(Date.UTC(parseInt(untilStr.slice(0, 4), 10), parseInt(untilStr.slice(4, 6), 10) - 1, parseInt(untilStr.slice(6, 8), 10), parseInt(untilStr.slice(9, 11) || 0, 10), parseInt(untilStr.slice(11, 13) || 0, 10))) : untilStr;
|
|
3522
|
+
const untilStr = parts.UNTIL.toString();
|
|
3523
|
+
parts.UNTIL = deep ? new Date(Date.UTC(parseInt(untilStr.slice(0, 4), 10), parseInt(untilStr.slice(4, 6), 10) - 1, parseInt(untilStr.slice(6, 8), 10), parseInt(untilStr.slice(9, 11) || '0', 10), parseInt(untilStr.slice(11, 13) || '0', 10))) : untilStr;
|
|
3524
3524
|
}
|
|
3525
3525
|
if (parts.BYWEEKDAY || parts.BYDAY) {
|
|
3526
3526
|
const dayMap = { SU: 0, MO: 1, TU: 2, WE: 3, TH: 4, FR: 5, SA: 6 };
|
|
3527
3527
|
parts.BYWEEKDAY = deep
|
|
3528
3528
|
? (parts.BYWEEKDAY || parts.BYDAY)
|
|
3529
|
+
?.toString()
|
|
3529
3530
|
.split(',')
|
|
3530
3531
|
.map((day) => dayMap[day.trim().toUpperCase()])
|
|
3531
3532
|
.filter((n) => n !== undefined)
|
|
3532
3533
|
: parts.BYWEEKDAY || parts.BYDAY;
|
|
3533
3534
|
}
|
|
3534
|
-
parts.BYMONTH =
|
|
3535
|
-
|
|
3536
|
-
|
|
3537
|
-
|
|
3538
|
-
|
|
3535
|
+
parts.BYMONTH =
|
|
3536
|
+
deep && parts.BYMONTH
|
|
3537
|
+
? parts.BYMONTH.toString()
|
|
3538
|
+
.split(',')
|
|
3539
|
+
.map((n) => parseInt(n, 10))
|
|
3540
|
+
: parts.BYMONTH;
|
|
3541
|
+
parts.BYYEARDAY =
|
|
3542
|
+
deep && parts.BYYEARDAY
|
|
3543
|
+
? parts.BYYEARDAY.toString()
|
|
3544
|
+
.split(',')
|
|
3545
|
+
.map((n) => parseInt(n, 10))
|
|
3546
|
+
: parts.BYYEARDAY;
|
|
3547
|
+
parts.BYMONTHDAY =
|
|
3548
|
+
deep && parts.BYMONTHDAY
|
|
3549
|
+
? parts.BYMONTHDAY.toString()
|
|
3550
|
+
.split(',')
|
|
3551
|
+
.map((n) => parseInt(n, 10))
|
|
3552
|
+
: parts.BYMONTHDAY;
|
|
3553
|
+
parts.BYWEEKNO =
|
|
3554
|
+
deep && parts.BYWEEKNO
|
|
3555
|
+
? parts.BYWEEKNO.toString()
|
|
3556
|
+
.split(',')
|
|
3557
|
+
.map((n) => parseInt(n, 10))
|
|
3558
|
+
: parts.BYWEEKNO;
|
|
3559
|
+
parts.BYHOUR =
|
|
3560
|
+
deep && parts.BYHOUR
|
|
3561
|
+
? parts.BYHOUR.toString()
|
|
3562
|
+
.split(',')
|
|
3563
|
+
.map((n) => parseInt(n, 10))
|
|
3564
|
+
: parts.BYHOUR;
|
|
3539
3565
|
return parts;
|
|
3540
3566
|
}
|
|
3541
3567
|
function getDayOfYear(date) {
|
|
3542
3568
|
const start = new Date(Date.UTC(date.getUTCFullYear(), 0, 1));
|
|
3543
|
-
return Math.floor((date - start) / (1000 * 60 * 60 * 24)) + 1;
|
|
3569
|
+
return Math.floor((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24)) + 1;
|
|
3544
3570
|
}
|
|
3545
3571
|
function getWeekNumber(date) {
|
|
3546
3572
|
const d = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));
|
|
3547
3573
|
d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));
|
|
3548
3574
|
const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
|
|
3549
|
-
return Math.ceil(((d - yearStart) / 86400000 + 1) / 7);
|
|
3575
|
+
return Math.ceil(((d.getTime() - yearStart.getTime()) / 86400000 + 1) / 7);
|
|
3550
3576
|
}
|
|
3551
3577
|
function matchesFreq(date, rrule, startDate) {
|
|
3552
|
-
const interval = rrule.INTERVAL;
|
|
3578
|
+
const interval = parseInt(rrule.INTERVAL.toString(), 10) || 1;
|
|
3553
3579
|
switch (rrule.FREQ) {
|
|
3554
3580
|
case 'YEARLY':
|
|
3555
3581
|
return (date.getUTCFullYear() - startDate.getUTCFullYear()) % interval === 0;
|
|
@@ -3558,12 +3584,12 @@ function matchesFreq(date, rrule, startDate) {
|
|
|
3558
3584
|
return months % interval === 0;
|
|
3559
3585
|
}
|
|
3560
3586
|
case 'WEEKLY': {
|
|
3561
|
-
const daysW = Math.floor((date - startDate) / 86400000);
|
|
3587
|
+
const daysW = Math.floor((date.getTime() - startDate.getTime()) / 86400000);
|
|
3562
3588
|
const weeks = Math.floor(daysW / 7);
|
|
3563
3589
|
return weeks % interval === 0;
|
|
3564
3590
|
}
|
|
3565
3591
|
case 'DAILY': {
|
|
3566
|
-
const days = Math.floor((date - startDate) / 86400000);
|
|
3592
|
+
const days = Math.floor((date.getTime() - startDate.getTime()) / 86400000);
|
|
3567
3593
|
return days % interval === 0;
|
|
3568
3594
|
}
|
|
3569
3595
|
default:
|
|
@@ -3629,8 +3655,15 @@ function atcb_getNextOccurrence(rruleStr, startDateTime, allday) {
|
|
|
3629
3655
|
countDate++;
|
|
3630
3656
|
}
|
|
3631
3657
|
if (!nextDate) {
|
|
3632
|
-
|
|
3633
|
-
|
|
3658
|
+
if (occurrences.length > 1) {
|
|
3659
|
+
nextDate = occurrences[occurrences.length - 1];
|
|
3660
|
+
countDate = countDate - 1;
|
|
3661
|
+
} else if (occurrences.length === 1) {
|
|
3662
|
+
nextDate = occurrences[0];
|
|
3663
|
+
} else {
|
|
3664
|
+
nextDate = startDateTime;
|
|
3665
|
+
countDate = 1;
|
|
3666
|
+
}
|
|
3634
3667
|
}
|
|
3635
3668
|
return {
|
|
3636
3669
|
nextOccurrence: nextDate,
|
package/dist/atcb-no-pro.js
CHANGED
|
@@ -223,14 +223,14 @@ function tzlib_get_timezones(jsonType = false) {
|
|
|
223
223
|
* Add to Calendar Button
|
|
224
224
|
* ++++++++++++++++++++++
|
|
225
225
|
*
|
|
226
|
-
* Version: 2.12.
|
|
226
|
+
* Version: 2.12.8
|
|
227
227
|
* Creator: Jens Kuerschner (https://jekuer.com)
|
|
228
228
|
* Project: https://github.com/add2cal/add-to-calendar-button
|
|
229
229
|
* License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)
|
|
230
230
|
* Note: DO NOT REMOVE THE COPYRIGHT NOTICE ABOVE!
|
|
231
231
|
*
|
|
232
232
|
*/
|
|
233
|
-
const atcbVersion = '2.12.
|
|
233
|
+
const atcbVersion = '2.12.8';
|
|
234
234
|
const atcbCssTemplate = {
|
|
235
235
|
if (typeof window === 'undefined') {
|
|
236
236
|
return false;
|
|
@@ -494,7 +494,6 @@ async function atcb_decorate_data(data) {
|
|
|
494
494
|
data.lightMode = atcb_decorate_light_mode(data.lightMode);
|
|
495
495
|
data = atcb_decorate_data_i18n(data);
|
|
496
496
|
data = atcb_decorate_data_dates(data);
|
|
497
|
-
data = atcb_decorate_data_button_status_handling(data);
|
|
498
497
|
data = await atcb_decorate_data_rsvp(data);
|
|
499
498
|
return data;
|
|
500
499
|
}
|
|
@@ -620,7 +619,7 @@ function atcb_decorate_data_recurring_events(data) {
|
|
|
620
619
|
}
|
|
621
620
|
const endDate = data.dates?.[0].endDate || data.endDate || startDate;
|
|
622
621
|
const endTime = data.dates?.[0].endTime || data.endTime || '';
|
|
623
|
-
const diff = new Date(endDate + (endTime && endTime !== '' ? 'T' + endTime : '')) - new Date(startDate + (startTime && startTime !== '' ? 'T' + startTime : ''));
|
|
622
|
+
const diff = new Date(endDate + (endTime && endTime !== '' ? 'T' + endTime : '')).getTime() - new Date(startDate + (startTime && startTime !== '' ? 'T' + startTime : '')).getTime();
|
|
624
623
|
const newEndDateTime = new Date(occurenceData.nextOccurrence.getTime() + diff);
|
|
625
624
|
const newEndDateTimeString =
|
|
626
625
|
String(newEndDateTime.getFullYear()) +
|
|
@@ -834,6 +833,7 @@ function atcb_decorate_data_dates(data) {
|
|
|
834
833
|
data = atcb_replace_custom_variables(data, i);
|
|
835
834
|
data = atcb_set_online_event_flag(data, i);
|
|
836
835
|
}
|
|
836
|
+
data = atcb_decorate_data_button_status_handling(data);
|
|
837
837
|
const now = new Date();
|
|
838
838
|
if (!data.created || data.created === '') {
|
|
839
839
|
data.created = atcb_format_datetime(now, 'clean', true);
|
|
@@ -3515,40 +3515,66 @@ function atcb_parseRRule(rruleStr, deep = true) {
|
|
|
3515
3515
|
}, {});
|
|
3516
3516
|
if (!parts.FREQ) throw new Error('RRULE must have FREQ');
|
|
3517
3517
|
parts.FREQ = parts.FREQ.toUpperCase();
|
|
3518
|
-
parts.INTERVAL = parseInt(parts.INTERVAL || 1, 10);
|
|
3519
|
-
parts.COUNT = parts.COUNT ? parseInt(parts.COUNT, 10) : null;
|
|
3518
|
+
parts.INTERVAL = parseInt(parts.INTERVAL.toString() || '1', 10);
|
|
3519
|
+
parts.COUNT = parts.COUNT ? parseInt(parts.COUNT.toString(), 10) : null;
|
|
3520
3520
|
if (parts.UNTIL) {
|
|
3521
|
-
const untilStr = parts.UNTIL;
|
|
3522
|
-
parts.UNTIL = deep ? new Date(Date.UTC(parseInt(untilStr.slice(0, 4), 10), parseInt(untilStr.slice(4, 6), 10) - 1, parseInt(untilStr.slice(6, 8), 10), parseInt(untilStr.slice(9, 11) || 0, 10), parseInt(untilStr.slice(11, 13) || 0, 10))) : untilStr;
|
|
3521
|
+
const untilStr = parts.UNTIL.toString();
|
|
3522
|
+
parts.UNTIL = deep ? new Date(Date.UTC(parseInt(untilStr.slice(0, 4), 10), parseInt(untilStr.slice(4, 6), 10) - 1, parseInt(untilStr.slice(6, 8), 10), parseInt(untilStr.slice(9, 11) || '0', 10), parseInt(untilStr.slice(11, 13) || '0', 10))) : untilStr;
|
|
3523
3523
|
}
|
|
3524
3524
|
if (parts.BYWEEKDAY || parts.BYDAY) {
|
|
3525
3525
|
const dayMap = { SU: 0, MO: 1, TU: 2, WE: 3, TH: 4, FR: 5, SA: 6 };
|
|
3526
3526
|
parts.BYWEEKDAY = deep
|
|
3527
3527
|
? (parts.BYWEEKDAY || parts.BYDAY)
|
|
3528
|
+
?.toString()
|
|
3528
3529
|
.split(',')
|
|
3529
3530
|
.map((day) => dayMap[day.trim().toUpperCase()])
|
|
3530
3531
|
.filter((n) => n !== undefined)
|
|
3531
3532
|
: parts.BYWEEKDAY || parts.BYDAY;
|
|
3532
3533
|
}
|
|
3533
|
-
parts.BYMONTH =
|
|
3534
|
-
|
|
3535
|
-
|
|
3536
|
-
|
|
3537
|
-
|
|
3534
|
+
parts.BYMONTH =
|
|
3535
|
+
deep && parts.BYMONTH
|
|
3536
|
+
? parts.BYMONTH.toString()
|
|
3537
|
+
.split(',')
|
|
3538
|
+
.map((n) => parseInt(n, 10))
|
|
3539
|
+
: parts.BYMONTH;
|
|
3540
|
+
parts.BYYEARDAY =
|
|
3541
|
+
deep && parts.BYYEARDAY
|
|
3542
|
+
? parts.BYYEARDAY.toString()
|
|
3543
|
+
.split(',')
|
|
3544
|
+
.map((n) => parseInt(n, 10))
|
|
3545
|
+
: parts.BYYEARDAY;
|
|
3546
|
+
parts.BYMONTHDAY =
|
|
3547
|
+
deep && parts.BYMONTHDAY
|
|
3548
|
+
? parts.BYMONTHDAY.toString()
|
|
3549
|
+
.split(',')
|
|
3550
|
+
.map((n) => parseInt(n, 10))
|
|
3551
|
+
: parts.BYMONTHDAY;
|
|
3552
|
+
parts.BYWEEKNO =
|
|
3553
|
+
deep && parts.BYWEEKNO
|
|
3554
|
+
? parts.BYWEEKNO.toString()
|
|
3555
|
+
.split(',')
|
|
3556
|
+
.map((n) => parseInt(n, 10))
|
|
3557
|
+
: parts.BYWEEKNO;
|
|
3558
|
+
parts.BYHOUR =
|
|
3559
|
+
deep && parts.BYHOUR
|
|
3560
|
+
? parts.BYHOUR.toString()
|
|
3561
|
+
.split(',')
|
|
3562
|
+
.map((n) => parseInt(n, 10))
|
|
3563
|
+
: parts.BYHOUR;
|
|
3538
3564
|
return parts;
|
|
3539
3565
|
}
|
|
3540
3566
|
function getDayOfYear(date) {
|
|
3541
3567
|
const start = new Date(Date.UTC(date.getUTCFullYear(), 0, 1));
|
|
3542
|
-
return Math.floor((date - start) / (1000 * 60 * 60 * 24)) + 1;
|
|
3568
|
+
return Math.floor((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24)) + 1;
|
|
3543
3569
|
}
|
|
3544
3570
|
function getWeekNumber(date) {
|
|
3545
3571
|
const d = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));
|
|
3546
3572
|
d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));
|
|
3547
3573
|
const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
|
|
3548
|
-
return Math.ceil(((d - yearStart) / 86400000 + 1) / 7);
|
|
3574
|
+
return Math.ceil(((d.getTime() - yearStart.getTime()) / 86400000 + 1) / 7);
|
|
3549
3575
|
}
|
|
3550
3576
|
function matchesFreq(date, rrule, startDate) {
|
|
3551
|
-
const interval = rrule.INTERVAL;
|
|
3577
|
+
const interval = parseInt(rrule.INTERVAL.toString(), 10) || 1;
|
|
3552
3578
|
switch (rrule.FREQ) {
|
|
3553
3579
|
case 'YEARLY':
|
|
3554
3580
|
return (date.getUTCFullYear() - startDate.getUTCFullYear()) % interval === 0;
|
|
@@ -3557,12 +3583,12 @@ function matchesFreq(date, rrule, startDate) {
|
|
|
3557
3583
|
return months % interval === 0;
|
|
3558
3584
|
}
|
|
3559
3585
|
case 'WEEKLY': {
|
|
3560
|
-
const daysW = Math.floor((date - startDate) / 86400000);
|
|
3586
|
+
const daysW = Math.floor((date.getTime() - startDate.getTime()) / 86400000);
|
|
3561
3587
|
const weeks = Math.floor(daysW / 7);
|
|
3562
3588
|
return weeks % interval === 0;
|
|
3563
3589
|
}
|
|
3564
3590
|
case 'DAILY': {
|
|
3565
|
-
const days = Math.floor((date - startDate) / 86400000);
|
|
3591
|
+
const days = Math.floor((date.getTime() - startDate.getTime()) / 86400000);
|
|
3566
3592
|
return days % interval === 0;
|
|
3567
3593
|
}
|
|
3568
3594
|
default:
|
|
@@ -3628,8 +3654,15 @@ function atcb_getNextOccurrence(rruleStr, startDateTime, allday) {
|
|
|
3628
3654
|
countDate++;
|
|
3629
3655
|
}
|
|
3630
3656
|
if (!nextDate) {
|
|
3631
|
-
|
|
3632
|
-
|
|
3657
|
+
if (occurrences.length > 1) {
|
|
3658
|
+
nextDate = occurrences[occurrences.length - 1];
|
|
3659
|
+
countDate = countDate - 1;
|
|
3660
|
+
} else if (occurrences.length === 1) {
|
|
3661
|
+
nextDate = occurrences[0];
|
|
3662
|
+
} else {
|
|
3663
|
+
nextDate = startDateTime;
|
|
3664
|
+
countDate = 1;
|
|
3665
|
+
}
|
|
3633
3666
|
}
|
|
3634
3667
|
return {
|
|
3635
3668
|
nextOccurrence: nextDate,
|
package/dist/atcb-unstyle.js
CHANGED
|
@@ -223,14 +223,14 @@ function tzlib_get_timezones(jsonType = false) {
|
|
|
223
223
|
* Add to Calendar Button
|
|
224
224
|
* ++++++++++++++++++++++
|
|
225
225
|
*
|
|
226
|
-
* Version: 2.12.
|
|
226
|
+
* Version: 2.12.8
|
|
227
227
|
* Creator: Jens Kuerschner (https://jekuer.com)
|
|
228
228
|
* Project: https://github.com/add2cal/add-to-calendar-button
|
|
229
229
|
* License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)
|
|
230
230
|
* Note: DO NOT REMOVE THE COPYRIGHT NOTICE ABOVE!
|
|
231
231
|
*
|
|
232
232
|
*/
|
|
233
|
-
const atcbVersion = '2.12.
|
|
233
|
+
const atcbVersion = '2.12.8';
|
|
234
234
|
const atcbCssTemplate = {};
|
|
235
235
|
const atcbIsBrowser = () => {
|
|
236
236
|
if (typeof window === 'undefined') {
|
|
@@ -495,7 +495,6 @@ async function atcb_decorate_data(data) {
|
|
|
495
495
|
data.lightMode = atcb_decorate_light_mode(data.lightMode);
|
|
496
496
|
data = atcb_decorate_data_i18n(data);
|
|
497
497
|
data = atcb_decorate_data_dates(data);
|
|
498
|
-
data = atcb_decorate_data_button_status_handling(data);
|
|
499
498
|
data = await atcb_decorate_data_rsvp(data);
|
|
500
499
|
return data;
|
|
501
500
|
}
|
|
@@ -621,7 +620,7 @@ function atcb_decorate_data_recurring_events(data) {
|
|
|
621
620
|
}
|
|
622
621
|
const endDate = data.dates?.[0].endDate || data.endDate || startDate;
|
|
623
622
|
const endTime = data.dates?.[0].endTime || data.endTime || '';
|
|
624
|
-
const diff = new Date(endDate + (endTime && endTime !== '' ? 'T' + endTime : '')) - new Date(startDate + (startTime && startTime !== '' ? 'T' + startTime : ''));
|
|
623
|
+
const diff = new Date(endDate + (endTime && endTime !== '' ? 'T' + endTime : '')).getTime() - new Date(startDate + (startTime && startTime !== '' ? 'T' + startTime : '')).getTime();
|
|
625
624
|
const newEndDateTime = new Date(occurenceData.nextOccurrence.getTime() + diff);
|
|
626
625
|
const newEndDateTimeString =
|
|
627
626
|
String(newEndDateTime.getFullYear()) +
|
|
@@ -835,6 +834,7 @@ function atcb_decorate_data_dates(data) {
|
|
|
835
834
|
data = atcb_replace_custom_variables(data, i);
|
|
836
835
|
data = atcb_set_online_event_flag(data, i);
|
|
837
836
|
}
|
|
837
|
+
data = atcb_decorate_data_button_status_handling(data);
|
|
838
838
|
const now = new Date();
|
|
839
839
|
if (!data.created || data.created === '') {
|
|
840
840
|
data.created = atcb_format_datetime(now, 'clean', true);
|
|
@@ -4236,40 +4236,66 @@ function atcb_parseRRule(rruleStr, deep = true) {
|
|
|
4236
4236
|
}, {});
|
|
4237
4237
|
if (!parts.FREQ) throw new Error('RRULE must have FREQ');
|
|
4238
4238
|
parts.FREQ = parts.FREQ.toUpperCase();
|
|
4239
|
-
parts.INTERVAL = parseInt(parts.INTERVAL || 1, 10);
|
|
4240
|
-
parts.COUNT = parts.COUNT ? parseInt(parts.COUNT, 10) : null;
|
|
4239
|
+
parts.INTERVAL = parseInt(parts.INTERVAL.toString() || '1', 10);
|
|
4240
|
+
parts.COUNT = parts.COUNT ? parseInt(parts.COUNT.toString(), 10) : null;
|
|
4241
4241
|
if (parts.UNTIL) {
|
|
4242
|
-
const untilStr = parts.UNTIL;
|
|
4243
|
-
parts.UNTIL = deep ? new Date(Date.UTC(parseInt(untilStr.slice(0, 4), 10), parseInt(untilStr.slice(4, 6), 10) - 1, parseInt(untilStr.slice(6, 8), 10), parseInt(untilStr.slice(9, 11) || 0, 10), parseInt(untilStr.slice(11, 13) || 0, 10))) : untilStr;
|
|
4242
|
+
const untilStr = parts.UNTIL.toString();
|
|
4243
|
+
parts.UNTIL = deep ? new Date(Date.UTC(parseInt(untilStr.slice(0, 4), 10), parseInt(untilStr.slice(4, 6), 10) - 1, parseInt(untilStr.slice(6, 8), 10), parseInt(untilStr.slice(9, 11) || '0', 10), parseInt(untilStr.slice(11, 13) || '0', 10))) : untilStr;
|
|
4244
4244
|
}
|
|
4245
4245
|
if (parts.BYWEEKDAY || parts.BYDAY) {
|
|
4246
4246
|
const dayMap = { SU: 0, MO: 1, TU: 2, WE: 3, TH: 4, FR: 5, SA: 6 };
|
|
4247
4247
|
parts.BYWEEKDAY = deep
|
|
4248
4248
|
? (parts.BYWEEKDAY || parts.BYDAY)
|
|
4249
|
+
?.toString()
|
|
4249
4250
|
.split(',')
|
|
4250
4251
|
.map((day) => dayMap[day.trim().toUpperCase()])
|
|
4251
4252
|
.filter((n) => n !== undefined)
|
|
4252
4253
|
: parts.BYWEEKDAY || parts.BYDAY;
|
|
4253
4254
|
}
|
|
4254
|
-
parts.BYMONTH =
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
|
|
4258
|
-
|
|
4255
|
+
parts.BYMONTH =
|
|
4256
|
+
deep && parts.BYMONTH
|
|
4257
|
+
? parts.BYMONTH.toString()
|
|
4258
|
+
.split(',')
|
|
4259
|
+
.map((n) => parseInt(n, 10))
|
|
4260
|
+
: parts.BYMONTH;
|
|
4261
|
+
parts.BYYEARDAY =
|
|
4262
|
+
deep && parts.BYYEARDAY
|
|
4263
|
+
? parts.BYYEARDAY.toString()
|
|
4264
|
+
.split(',')
|
|
4265
|
+
.map((n) => parseInt(n, 10))
|
|
4266
|
+
: parts.BYYEARDAY;
|
|
4267
|
+
parts.BYMONTHDAY =
|
|
4268
|
+
deep && parts.BYMONTHDAY
|
|
4269
|
+
? parts.BYMONTHDAY.toString()
|
|
4270
|
+
.split(',')
|
|
4271
|
+
.map((n) => parseInt(n, 10))
|
|
4272
|
+
: parts.BYMONTHDAY;
|
|
4273
|
+
parts.BYWEEKNO =
|
|
4274
|
+
deep && parts.BYWEEKNO
|
|
4275
|
+
? parts.BYWEEKNO.toString()
|
|
4276
|
+
.split(',')
|
|
4277
|
+
.map((n) => parseInt(n, 10))
|
|
4278
|
+
: parts.BYWEEKNO;
|
|
4279
|
+
parts.BYHOUR =
|
|
4280
|
+
deep && parts.BYHOUR
|
|
4281
|
+
? parts.BYHOUR.toString()
|
|
4282
|
+
.split(',')
|
|
4283
|
+
.map((n) => parseInt(n, 10))
|
|
4284
|
+
: parts.BYHOUR;
|
|
4259
4285
|
return parts;
|
|
4260
4286
|
}
|
|
4261
4287
|
function getDayOfYear(date) {
|
|
4262
4288
|
const start = new Date(Date.UTC(date.getUTCFullYear(), 0, 1));
|
|
4263
|
-
return Math.floor((date - start) / (1000 * 60 * 60 * 24)) + 1;
|
|
4289
|
+
return Math.floor((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24)) + 1;
|
|
4264
4290
|
}
|
|
4265
4291
|
function getWeekNumber(date) {
|
|
4266
4292
|
const d = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));
|
|
4267
4293
|
d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));
|
|
4268
4294
|
const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
|
|
4269
|
-
return Math.ceil(((d - yearStart) / 86400000 + 1) / 7);
|
|
4295
|
+
return Math.ceil(((d.getTime() - yearStart.getTime()) / 86400000 + 1) / 7);
|
|
4270
4296
|
}
|
|
4271
4297
|
function matchesFreq(date, rrule, startDate) {
|
|
4272
|
-
const interval = rrule.INTERVAL;
|
|
4298
|
+
const interval = parseInt(rrule.INTERVAL.toString(), 10) || 1;
|
|
4273
4299
|
switch (rrule.FREQ) {
|
|
4274
4300
|
case 'YEARLY':
|
|
4275
4301
|
return (date.getUTCFullYear() - startDate.getUTCFullYear()) % interval === 0;
|
|
@@ -4278,12 +4304,12 @@ function matchesFreq(date, rrule, startDate) {
|
|
|
4278
4304
|
return months % interval === 0;
|
|
4279
4305
|
}
|
|
4280
4306
|
case 'WEEKLY': {
|
|
4281
|
-
const daysW = Math.floor((date - startDate) / 86400000);
|
|
4307
|
+
const daysW = Math.floor((date.getTime() - startDate.getTime()) / 86400000);
|
|
4282
4308
|
const weeks = Math.floor(daysW / 7);
|
|
4283
4309
|
return weeks % interval === 0;
|
|
4284
4310
|
}
|
|
4285
4311
|
case 'DAILY': {
|
|
4286
|
-
const days = Math.floor((date - startDate) / 86400000);
|
|
4312
|
+
const days = Math.floor((date.getTime() - startDate.getTime()) / 86400000);
|
|
4287
4313
|
return days % interval === 0;
|
|
4288
4314
|
}
|
|
4289
4315
|
default:
|
|
@@ -4349,8 +4375,15 @@ function atcb_getNextOccurrence(rruleStr, startDateTime, allday) {
|
|
|
4349
4375
|
countDate++;
|
|
4350
4376
|
}
|
|
4351
4377
|
if (!nextDate) {
|
|
4352
|
-
|
|
4353
|
-
|
|
4378
|
+
if (occurrences.length > 1) {
|
|
4379
|
+
nextDate = occurrences[occurrences.length - 1];
|
|
4380
|
+
countDate = countDate - 1;
|
|
4381
|
+
} else if (occurrences.length === 1) {
|
|
4382
|
+
nextDate = occurrences[0];
|
|
4383
|
+
} else {
|
|
4384
|
+
nextDate = startDateTime;
|
|
4385
|
+
countDate = 1;
|
|
4386
|
+
}
|
|
4354
4387
|
}
|
|
4355
4388
|
return {
|
|
4356
4389
|
nextOccurrence: nextDate,
|