add-to-calendar-button 1.7.8 → 1.8.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/README.md CHANGED
@@ -69,7 +69,7 @@ See [jekuer.github.io/add-to-calendar-button](https://jekuer.github.io/add-to-ca
69
69
  ### Option 2: simple (CDN)
70
70
 
71
71
  1. Instead of downloading the files, you can use the jsDeliver CDN.
72
- 3. Put `<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/add-to-calendar-button@1.7/assets/css/atcb.min.css">` into the <head> and `<script src="https://cdn.jsdelivr.net/npm/add-to-calendar-button@1.7" defer></script>` into the <body> footer of your website.
72
+ 3. Put `<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/add-to-calendar-button@1.8/assets/css/atcb.min.css">` into the <head> and `<script src="https://cdn.jsdelivr.net/npm/add-to-calendar-button@1.8" defer></script>` into the <body> footer of your website.
73
73
  4. Create your button as can be seen in the "Configuration" section below.
74
74
  5. Done. And this setup also automatically keeps track of any bug fixes and minor updates!
75
75
 
@@ -282,6 +282,7 @@ The code is available under the [MIT license (with “Commons Clause” License
282
282
 
283
283
  ## ⚡ Changelog (without minor changes and fixes)
284
284
 
285
+ * v1.8 : new button style
285
286
  * v1.7 : new code structure and options + tons of optimizations
286
287
  * v1.6 : supporting Microsoft Teams
287
288
  * v1.5 : update to date format and better accesibility
@@ -3,7 +3,7 @@
3
3
  * Add-to-Calendar Button
4
4
  * ++++++++++++++++++++++
5
5
  *
6
- * Version: 1.7.8
6
+ * Version: 1.8.2
7
7
  * Creator: Jens Kuerschner (https://jenskuerschner.de)
8
8
  * Project: https://github.com/jekuer/add-to-calendar-button
9
9
  * License: MIT with “Commons Clause” License Condition v1.0
@@ -46,6 +46,7 @@
46
46
  user-select: none;
47
47
  -webkit-tap-highlight-color: transparent;
48
48
  width: auto;
49
+ z-index: 1;
49
50
  }
50
51
  .atcb_button:focus,
51
52
  .atcb_button:hover {
@@ -60,11 +61,13 @@
60
61
  .atcb_button.atcb_active {
61
62
  background: rgb(255, 255, 255);
62
63
  border-radius: 6px 6px 3px 3px;
63
- -webkit-box-shadow: 1px 5px 15px 0px rgba(0,0,0,.5);
64
- box-shadow: 1px 5px 15px 0px rgba(0,0,0,.5);
65
- margin: -2px -4px;
66
- padding: 12px 20px 13px 20px;
67
- z-index: 90;
64
+ -webkit-box-shadow: 1px 8px 12px 0px rgba(0,0,0,.5);
65
+ box-shadow: 1px 8px 12px 0px rgba(0,0,0,.5);
66
+ margin: 0 -4px -1px -4px;
67
+ padding: 10px 20px 12px 20px;
68
+ transform: perspective(100px) rotateX(12deg) translateZ(0px);
69
+ transition: margin .1s ease-out, padding .1s ease-out, transform .1s ease-out;
70
+ z-index: 160;
68
71
  }
69
72
 
70
73
  .atcb_icon {
@@ -85,15 +88,34 @@
85
88
  display: block;
86
89
  font-family:Arial, Helvetica, sans-serif;
87
90
  max-width: 100%;
91
+ padding: 0 6px;
88
92
  position: absolute;
89
- padding: 0 3px;
93
+ transform: translateZ(-1px);
90
94
  -webkit-user-select: none;
91
95
  -moz-user-select: none;
92
96
  -ms-user-select: none;
93
97
  user-select: none;
94
98
  width: 100%;
95
99
  min-width: 10em;
96
- z-index: 80;
100
+ z-index: 150;
101
+ }
102
+
103
+ .atcb_list.atcb_generated_button {
104
+ animation: atcb_list_slide .4s ease .05s 1 normal forwards;
105
+ opacity: 0;
106
+ }
107
+ @keyframes atcb_list_slide {
108
+ 0% {
109
+ opacity: 0;
110
+ transform: rotateX(-100deg);
111
+ transform-origin: top;
112
+ }
113
+
114
+ 100% {
115
+ opacity: 1;
116
+ transform: rotateX(0deg);
117
+ transform-origin: top;
118
+ }
97
119
  }
98
120
 
99
121
  .atcb_list.atcb_modal {
@@ -106,9 +128,8 @@
106
128
 
107
129
  .atcb_list_item {
108
130
  align-items: center;
109
- background: rgb(250, 250, 250);
131
+ background: rgb(245, 245, 245);
110
132
  border: 1px solid rgb(210, 210, 210);
111
- border-top: 0;
112
133
  -webkit-box-shadow: 1px 2px 8px 0px rgba(0,0,0,.3);
113
134
  box-shadow: 1px 2px 8px 0px rgba(0,0,0,.3);
114
135
  box-sizing: border-box;
@@ -116,6 +137,7 @@
116
137
  display: flex;
117
138
  font-size: 16px;
118
139
  left: 50%;
140
+ margin-top: -1px;
119
141
  position: relative;
120
142
  padding: 12px 18px;
121
143
  text-align: left;
@@ -148,7 +170,6 @@
148
170
  border-radius: 0 0 6px 6px;
149
171
  }
150
172
 
151
-
152
173
  .atcb_list_item .atcb_icon {
153
174
  margin-right: 8px;
154
175
  width: 18px;
@@ -157,14 +178,19 @@
157
178
  .atcb_bgoverlay {
158
179
  background: rgba(20,20,20,.2);
159
180
  bottom: 0;
181
+ -webkit-backdrop-filter: blur(2px);
160
182
  backdrop-filter: blur(2px);
161
183
  height: 150%;
162
184
  left: 0;
185
+ opacity: 0;
163
186
  position: fixed;
164
187
  right: 0;
165
188
  top: 0;
189
+ transform: translateZ(-10px);
190
+ transition: opacity .3s ease-out;
191
+ transition-delay: .1s;
166
192
  width: 100%;
167
- z-index: 70;
193
+ z-index: 120;
168
194
  }
169
195
  .atcb_bgoverlay.atcb_click:hover {
170
196
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath fill-rule='evenodd' d='M11.991.69a2.35 2.35 0 0 1 3.318-.009c.918.911.922 2.392.009 3.307l-4.009 4.014 4.013 4.018c.906.909.893 2.38-.027 3.287a2.35 2.35 0 0 1-3.307-.004l-3.985-3.99-3.993 3.997a2.35 2.35 0 0 1-3.318.009c-.918-.911-.922-2.392-.009-3.307l4.009-4.014L.678 3.98C-.228 3.072-.215 1.6.706.693a2.35 2.35 0 0 1 3.307.004l3.985 3.99z'/%3E%3C/svg%3E") 32 32, pointer;
@@ -1,2 +1,2 @@
1
- .atcb{display:none}.atcb_button_wrapper{display:inline-block;padding:5px;position:relative}.atcb_button{align-items:center;background:#f5f5f5;border:1px solid #d2d2d2;border-radius:6px;-webkit-box-shadow:1px 2px 10px 0 rgba(0,0,0,.4);box-shadow:1px 2px 10px 0 rgba(0,0,0,.4);color:#333;cursor:pointer;display:flex;font-family:Arial,Helvetica,sans-serif;font-size:16px;font-weight:600;line-height:24px;max-width:300px;min-width:150px;padding:10px 16px 11px 16px;position:relative;text-align:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:auto}.atcb_button:focus,.atcb_button:hover{background:#fff}@media only screen and (max-width:575px){.atcb_button{font-size:14px}}.atcb_button.atcb_active{background:#fff;border-radius:6px 6px 3px 3px;-webkit-box-shadow:1px 5px 15px 0 rgba(0,0,0,.5);box-shadow:1px 5px 15px 0 rgba(0,0,0,.5);margin:-2px -4px;padding:12px 20px 13px 20px;z-index:90}.atcb_icon{height:16px;display:inline-block;margin-bottom:4px;margin-right:10px}.atcb_icon svg{height:100%;color:#333;width:auto}.atcb_list{box-sizing:border-box;color:#333;display:block;font-family:Arial,Helvetica,sans-serif;max-width:100%;position:absolute;padding:0 3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;min-width:10em;z-index:80}.atcb_list.atcb_modal{position:fixed;width:16em;left:50%;top:50%;transform:translateY(-50%) translateX(-50%)}.atcb_list_item{align-items:center;background:#fafafa;border:1px solid #d2d2d2;border-top:0;-webkit-box-shadow:1px 2px 8px 0 rgba(0,0,0,.3);box-shadow:1px 2px 8px 0 rgba(0,0,0,.3);box-sizing:border-box;cursor:pointer;display:flex;font-size:16px;left:50%;position:relative;padding:12px 18px;text-align:left;transform:translate(-50%);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb_list_item:focus,.atcb_list_item:hover{background:#fff;-webkit-box-shadow:1px 2px 10px 0 rgba(0,0,0,.4);box-shadow:1px 2px 10px 0 rgba(0,0,0,.4);color:#000}@media only screen and (max-width:575px){.atcb_list_item{font-size:14px}}.atcb_list.atcb_generated_button .atcb_list_item:first-child{padding-top:20px}.atcb_list:not(.atcb_generated_button) .atcb_list_item:first-child{border-radius:6px 6px 0 0}.atcb_list_item:last-child{border-radius:0 0 6px 6px}.atcb_list_item .atcb_icon{margin-right:8px;width:18px}.atcb_bgoverlay{background:rgba(20,20,20,.2);bottom:0;backdrop-filter:blur(2px);height:150%;left:0;position:fixed;right:0;top:0;width:100%;z-index:70}.atcb_bgoverlay.atcb_click:hover{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath fill-rule='evenodd' d='M11.991.69a2.35 2.35 0 0 1 3.318-.009c.918.911.922 2.392.009 3.307l-4.009 4.014 4.013 4.018c.906.909.893 2.38-.027 3.287a2.35 2.35 0 0 1-3.307-.004l-3.985-3.99-3.993 3.997a2.35 2.35 0 0 1-3.318.009c-.918-.911-.922-2.392-.009-3.307l4.009-4.014L.678 3.98C-.228 3.072-.215 1.6.706.693a2.35 2.35 0 0 1 3.307.004l3.985 3.99z'/%3E%3C/svg%3E") 32 32,pointer}
1
+ .atcb{display:none}.atcb_button_wrapper{display:inline-block;padding:5px;position:relative}.atcb_button{align-items:center;background:#f5f5f5;border:1px solid #d2d2d2;border-radius:6px;-webkit-box-shadow:1px 2px 10px 0 rgba(0,0,0,.4);box-shadow:1px 2px 10px 0 rgba(0,0,0,.4);color:#333;cursor:pointer;display:flex;font-family:Arial,Helvetica,sans-serif;font-size:16px;font-weight:600;line-height:24px;max-width:300px;min-width:150px;padding:10px 16px 11px 16px;position:relative;text-align:center;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb_button:focus,.atcb_button:hover{background:#fff}@media only screen and (max-width:575px){.atcb_button{font-size:14px}}.atcb_button.atcb_active{background:#fff;border-radius:6px 6px 3px 3px;-webkit-box-shadow:1px 8px 12px 0 rgba(0,0,0,.5);box-shadow:1px 8px 12px 0 rgba(0,0,0,.5);margin:0 -4px -1px -4px;padding:10px 20px 12px 20px;transform:perspective(100px) rotateX(12deg) translateZ(0);transition:margin .1s ease-out,padding .1s ease-out,transform .1s ease-out;z-index:160}.atcb_icon{height:16px;display:inline-block;margin-bottom:4px;margin-right:10px}.atcb_icon svg{height:100%;color:#333;width:auto}.atcb_list{box-sizing:border-box;color:#333;display:block;font-family:Arial,Helvetica,sans-serif;max-width:100%;padding:0 6px;position:absolute;transform:translateZ(-1px);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;min-width:10em;z-index:150}.atcb_list.atcb_generated_button{animation:atcb_list_slide .4s ease .05s 1 normal forwards;opacity:0}@keyframes atcb_list_slide{0%{opacity:0;transform:rotateX(-100deg);transform-origin:top}100%{opacity:1;transform:rotateX(0);transform-origin:top}}.atcb_list.atcb_modal{position:fixed;width:16em;left:50%;top:50%;transform:translateY(-50%) translateX(-50%)}.atcb_list_item{align-items:center;background:#f5f5f5;border:1px solid #d2d2d2;-webkit-box-shadow:1px 2px 8px 0 rgba(0,0,0,.3);box-shadow:1px 2px 8px 0 rgba(0,0,0,.3);box-sizing:border-box;cursor:pointer;display:flex;font-size:16px;left:50%;margin-top:-1px;position:relative;padding:12px 18px;text-align:left;transform:translate(-50%);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb_list_item:focus,.atcb_list_item:hover{background:#fff;-webkit-box-shadow:1px 2px 10px 0 rgba(0,0,0,.4);box-shadow:1px 2px 10px 0 rgba(0,0,0,.4);color:#000}@media only screen and (max-width:575px){.atcb_list_item{font-size:14px}}.atcb_list.atcb_generated_button .atcb_list_item:first-child{padding-top:20px}.atcb_list:not(.atcb_generated_button) .atcb_list_item:first-child{border-radius:6px 6px 0 0}.atcb_list_item:last-child{border-radius:0 0 6px 6px}.atcb_list_item .atcb_icon{margin-right:8px;width:18px}.atcb_bgoverlay{background:rgba(20,20,20,.2);bottom:0;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);height:150%;left:0;opacity:0;position:fixed;right:0;top:0;transform:translateZ(-10px);transition:opacity .3s ease-out;transition-delay:.1s;width:100%;z-index:120}.atcb_bgoverlay.atcb_click:hover{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath fill-rule='evenodd' d='M11.991.69a2.35 2.35 0 0 1 3.318-.009c.918.911.922 2.392.009 3.307l-4.009 4.014 4.013 4.018c.906.909.893 2.38-.027 3.287a2.35 2.35 0 0 1-3.307-.004l-3.985-3.99-3.993 3.997a2.35 2.35 0 0 1-3.318.009c-.918-.911-.922-2.392-.009-3.307l4.009-4.014L.678 3.98C-.228 3.072-.215 1.6.706.693a2.35 2.35 0 0 1 3.307.004l3.985 3.99z'/%3E%3C/svg%3E") 32 32,pointer}
2
2
  /*# sourceMappingURL=atcb.min.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["assets\\css\\atcb.css"],"names":[],"mappings":"AAYA,MACE,QAAS,KAGX,qBACE,QAAS,aACT,QAAS,IACT,SAAU,SAGZ,aACE,YAAa,OACb,WAAY,QACZ,OAAQ,IAAI,MAAM,QAClB,cAAe,IACf,mBAAoB,IAAI,IAAI,KAAK,EAAI,eACrC,WAAY,IAAI,IAAI,KAAK,EAAI,eAC7B,MAAO,KACP,OAAQ,QACR,QAAS,KACT,YAAY,KAAK,CAAE,SAAS,CAAE,WAC9B,UAAW,KACX,YAAa,IACb,YAAa,KACb,UAAW,MACX,UAAW,MACX,QAAS,KAAK,KAAK,KAAK,KACxB,SAAU,SACV,WAAY,OACZ,aAAc,aACd,oBAAqB,KACrB,iBAAkB,KAClB,gBAAiB,KACjB,YAAa,KACb,4BAA6B,YAC7B,MAAO,KAET,mBACA,mBACE,WAAY,KAEd,yCACE,aACE,UAAW,MAIf,yBACE,WAAY,KACZ,cAAe,IAAI,IAAI,IAAI,IAC3B,mBAAoB,IAAI,IAAI,KAAK,EAAI,eACrC,WAAY,IAAI,IAAI,KAAK,EAAI,eAC7B,OAAQ,KAAK,KACb,QAAS,KAAK,KAAK,KAAK,KACxB,QAAS,GAGX,WACE,OAAQ,KACR,QAAS,aACT,cAAe,IACf,aAAc,KAEhB,eACE,OAAQ,KACR,MAAO,KACP,MAAO,KAGT,WACE,WAAY,WACZ,MAAO,KACP,QAAS,MACT,YAAY,KAAK,CAAE,SAAS,CAAE,WAC9B,UAAW,KACX,SAAU,SACV,QAAS,EAAE,IACX,oBAAqB,KACrB,iBAAkB,KAClB,gBAAiB,KACjB,YAAa,KACb,MAAO,KACP,UAAW,KACX,QAAS,GAGX,sBACE,SAAU,MACV,MAAO,KACP,KAAM,IACN,IAAK,IACL,UAAW,iBAAiB,iBAG9B,gBACE,YAAa,OACb,WAAY,QACZ,OAAQ,IAAI,MAAM,QAClB,WAAY,EACZ,mBAAoB,IAAI,IAAI,IAAI,EAAI,eACpC,WAAY,IAAI,IAAI,IAAI,EAAI,eAC5B,WAAY,WACZ,OAAQ,QACR,QAAS,KACT,UAAW,KACX,KAAM,IACN,SAAU,SACV,QAAS,KAAK,KACd,WAAY,KACZ,UAAW,gBACX,aAAc,aACd,4BAA6B,YAE/B,sBACA,sBACE,WAAY,KACZ,mBAAoB,IAAI,IAAI,KAAK,EAAI,eACrC,WAAY,IAAI,IAAI,KAAK,EAAI,eAC7B,MAAO,KAET,yCACE,gBACE,UAAW,MAIf,6DACE,YAAa,KAGf,mEACE,cAAe,IAAI,IAAI,EAAE,EAG3B,2BACE,cAAe,EAAE,EAAE,IAAI,IAIzB,2BACE,aAAc,IACd,MAAO,KAGT,gBACE,WAAY,kBACZ,OAAQ,EACR,gBAAiB,UACjB,OAAQ,KACR,KAAM,EACN,SAAU,MACV,MAAO,EACP,IAAK,EACL,MAAO,KACP,QAAS,GAEX,iCACE,OAAQ,2cAA2c,GAAG,EAAE,CAAE"}
1
+ {"version":3,"sources":["assets\\css\\atcb.css"],"names":[],"mappings":"AAYA,MACE,QAAS,KAGX,qBACE,QAAS,aACT,QAAS,IACT,SAAU,SAGZ,aACE,YAAa,OACb,WAAY,QACZ,OAAQ,IAAI,MAAM,QAClB,cAAe,IACf,mBAAoB,IAAI,IAAI,KAAK,EAAI,eACrC,WAAY,IAAI,IAAI,KAAK,EAAI,eAC7B,MAAO,KACP,OAAQ,QACR,QAAS,KACT,YAAY,KAAK,CAAE,SAAS,CAAE,WAC9B,UAAW,KACX,YAAa,IACb,YAAa,KACb,UAAW,MACX,UAAW,MACX,QAAS,KAAK,KAAK,KAAK,KACxB,SAAU,SACV,WAAY,OACZ,aAAc,aACd,oBAAqB,KACrB,iBAAkB,KAClB,gBAAiB,KACjB,YAAa,KACb,4BAA6B,YAC7B,MAAO,KACP,QAAS,EAEX,mBACA,mBACE,WAAY,KAEd,yCACE,aACE,UAAW,MAIf,yBACE,WAAY,KACZ,cAAe,IAAI,IAAI,IAAI,IAC3B,mBAAoB,IAAI,IAAI,KAAK,EAAI,eACrC,WAAY,IAAI,IAAI,KAAK,EAAI,eAC7B,OAAQ,EAAE,KAAK,KAAK,KACpB,QAAS,KAAK,KAAK,KAAK,KACxB,UAAW,mBAAmB,eAAe,cAC7C,WAAY,OAAO,IAAI,QAAQ,CAAE,QAAQ,IAAI,QAAQ,CAAE,UAAU,IAAI,SACrE,QAAS,IAGX,WACE,OAAQ,KACR,QAAS,aACT,cAAe,IACf,aAAc,KAEhB,eACE,OAAQ,KACR,MAAO,KACP,MAAO,KAGT,WACE,WAAY,WACZ,MAAO,KACP,QAAS,MACT,YAAY,KAAK,CAAE,SAAS,CAAE,WAC9B,UAAW,KACX,QAAS,EAAE,IACX,SAAU,SACV,UAAW,iBACX,oBAAqB,KACrB,iBAAkB,KAClB,gBAAiB,KACjB,YAAa,KACb,MAAO,KACP,UAAW,KACX,QAAS,IAGX,iCACE,UAAW,gBAAgB,IAAI,KAAK,KAAK,EAAE,OAAO,SAClD,QAAS,EAEX,2BACC,GACC,QAAS,EACT,UAAW,iBACX,iBAAkB,IAGnB,KACC,QAAS,EACT,UAAW,WACX,iBAAkB,KAIpB,sBACE,SAAU,MACV,MAAO,KACP,KAAM,IACN,IAAK,IACL,UAAW,iBAAiB,iBAG9B,gBACE,YAAa,OACb,WAAY,QACZ,OAAQ,IAAI,MAAM,QAClB,mBAAoB,IAAI,IAAI,IAAI,EAAI,eACpC,WAAY,IAAI,IAAI,IAAI,EAAI,eAC5B,WAAY,WACZ,OAAQ,QACR,QAAS,KACT,UAAW,KACX,KAAM,IACN,WAAY,KACZ,SAAU,SACV,QAAS,KAAK,KACd,WAAY,KACZ,UAAW,gBACX,aAAc,aACd,4BAA6B,YAE/B,sBACA,sBACE,WAAY,KACZ,mBAAoB,IAAI,IAAI,KAAK,EAAI,eACrC,WAAY,IAAI,IAAI,KAAK,EAAI,eAC7B,MAAO,KAET,yCACE,gBACE,UAAW,MAIf,6DACE,YAAa,KAGf,mEACE,cAAe,IAAI,IAAI,EAAE,EAG3B,2BACE,cAAe,EAAE,EAAE,IAAI,IAGzB,2BACE,aAAc,IACd,MAAO,KAGT,gBACE,WAAY,kBACZ,OAAQ,EACR,wBAAyB,UACzB,gBAAiB,UACjB,OAAQ,KACR,KAAM,EACN,QAAS,EACT,SAAU,MACV,MAAO,EACP,IAAK,EACL,UAAW,kBACX,WAAY,QAAQ,IAAI,SACxB,iBAAkB,IAClB,MAAO,KACP,QAAS,IAEX,iCACE,OAAQ,2cAA2c,GAAG,EAAE,CAAE"}
package/assets/js/atcb.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Add-to-Calendar Button
4
4
  * ++++++++++++++++++++++
5
5
  */
6
- const atcbVersion = '1.7.8';
6
+ const atcbVersion = '1.8.2';
7
7
  /* Creator: Jens Kuerschner (https://jenskuerschner.de)
8
8
  * Project: https://github.com/jekuer/add-to-calendar-button
9
9
  * License: MIT with “Commons Clause” License Condition v1.0
@@ -12,11 +12,14 @@ const atcbVersion = '1.7.8';
12
12
 
13
13
 
14
14
 
15
+ const isBrowser = new Function("try { return this===window; }catch(e){ return false; }");
16
+ const isiOS = isBrowser() ? new Function("if ((/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)){ return true; }else{ return false; }") : new Function("return false;");
17
+
15
18
  // INITIALIZE THE SCRIPT AND FUNCTIONALITY
16
19
  function atcb_init() {
17
20
  // let's get started
18
21
  console.log("add-to-calendar button initialized (version " + atcbVersion + ")");
19
- console.log ("See https://github.com/jekuer/add-to-calendar-button for details");
22
+ console.log("See https://github.com/jekuer/add-to-calendar-button for details");
20
23
  // get all placeholders
21
24
  let atcButtons = document.querySelectorAll('.atcb');
22
25
  // if there are some, move on
@@ -410,6 +413,7 @@ function atcb_generate_bg_overlay(data) {
410
413
  const bgOverlay = document.createElement('div');
411
414
  bgOverlay.classList.add('atcb_bgoverlay');
412
415
  bgOverlay.tabIndex = 0;
416
+ bgOverlay.style.opacity = 1;
413
417
  bgOverlay.addEventListener('click', () => atcb_close(true));
414
418
  let fingerMoved = false;
415
419
  bgOverlay.addEventListener('touchstart', () => fingerMoved = false, {passive: true});
@@ -451,10 +455,9 @@ function atcb_open(data, button, buttonGenerated = false, keyboardTrigger = true
451
455
  // set list styles, set possible button to atcb_active and go for modal mode if no button is set
452
456
  if (button) {
453
457
  button.classList.add('atcb_active');
454
-
455
458
  const rect = button.getBoundingClientRect();
456
459
  list.style.width = rect.width + 'px';
457
- list.style.top = rect.bottom + window.scrollY + 'px';
460
+ list.style.top = rect.bottom + window.scrollY -3 + 'px';
458
461
  list.style.left = rect.left + 'px';
459
462
  } else {
460
463
  list.classList.add('atcb_modal')
@@ -521,14 +524,23 @@ function atcb_generate_google(data) {
521
524
  let formattedDate = atcb_generate_time(data, 'clean', 'google');
522
525
  url += '&dates=' + formattedDate['start'] + '%2F' + formattedDate['end'];
523
526
  // add details (if set)
524
- if (data['description'] != null && data['description'] != '') {
525
- url += '&details=' + encodeURIComponent(data['description']);
527
+ if (data['name'] != null && data['name'] != '') {
528
+ url += '&text=' + encodeURIComponent(data['name']);
526
529
  }
527
530
  if (data['location'] != null && data['location'] != '') {
528
531
  url += '&location=' + encodeURIComponent(data['location']);
532
+ // TODO: Find a better solution for the next temporary workaround.
533
+ if (isiOS()) { // workaround to cover a bug, where, when using Google Calendar on an iPhone, the location is not recognized. So, for the moment, we simply add it to the description.
534
+ if (data['description'] == null || data['description'] == '') {
535
+ data['description'] = '';
536
+ } else {
537
+ data['description'] += '<br><br>';
538
+ }
539
+ data['description'] += '&#128205;: ' + data['location'];
540
+ }
529
541
  }
530
- if (data['name'] != null && data['name'] != '') {
531
- url += '&text=' + encodeURIComponent(data['name']);
542
+ if (data['description'] != null && data['description'] != '') {
543
+ url += '&details=' + encodeURIComponent(data['description']);
532
544
  }
533
545
  window.open(url, '_blank').focus();
534
546
  }
@@ -546,14 +558,14 @@ function atcb_generate_yahoo(data) {
546
558
  url += '&dur=allday';
547
559
  }
548
560
  // add details (if set)
549
- if (data['description'] != null && data['description'] != '') {
550
- url += '&desc=' + encodeURIComponent(data['description']);
561
+ if (data['name'] != null && data['name'] != '') {
562
+ url += '&title=' + encodeURIComponent(data['name']);
551
563
  }
552
564
  if (data['location'] != null && data['location'] != '') {
553
565
  url += '&in_loc=' + encodeURIComponent(data['location']);
554
566
  }
555
- if (data['name'] != null && data['name'] != '') {
556
- url += '&title=' + encodeURIComponent(data['name']);
567
+ if (data['description'] != null && data['description'] != '') {
568
+ url += '&desc=' + encodeURIComponent(data['description']);
557
569
  }
558
570
  window.open(url, '_blank').focus();
559
571
  }
@@ -577,14 +589,14 @@ function atcb_generate_microsoft(data, type = '365') {
577
589
  url += '&allday=true';
578
590
  }
579
591
  // add details (if set)
580
- if (data['description'] != null && data['description'] != '') {
581
- url += '&body=' + encodeURIComponent(data['description'].replace(/\n/g, '<br>'));
592
+ if (data['name'] != null && data['name'] != '') {
593
+ url += '&subject=' + encodeURIComponent(data['name']);
582
594
  }
583
595
  if (data['location'] != null && data['location'] != '') {
584
596
  url += '&location=' + encodeURIComponent(data['location']);
585
597
  }
586
- if (data['name'] != null && data['name'] != '') {
587
- url += '&subject=' + encodeURIComponent(data['name']);
598
+ if (data['description'] != null && data['description'] != '') {
599
+ url += '&body=' + encodeURIComponent(data['description'].replace(/\n/g, '<br>'));
588
600
  }
589
601
  window.open(url, '_blank').focus();
590
602
  }
@@ -602,6 +614,9 @@ function atcb_generate_teams(data) {
602
614
  url += '&startTime=' + formattedDate['start'] + '&endTime=' + formattedDate['end'];
603
615
  // add details (if set)
604
616
  let locationString = '';
617
+ if (data['name'] != null && data['name'] != '') {
618
+ url += '&subject=' + encodeURIComponent(data['name']);
619
+ }
605
620
  if (data['location'] != null && data['location'] != '') {
606
621
  locationString = encodeURIComponent(data['location']);
607
622
  url += '&location=' + locationString; // workaround putting the location into the description, since the native field is not supported yet
@@ -610,9 +625,6 @@ function atcb_generate_teams(data) {
610
625
  if (data['description_iCal'] != null && data['description_iCal'] != '') { // using description_iCal instead of description, since Teams does not support html tags
611
626
  url += '&content=' + locationString + encodeURIComponent(data['description_iCal']);
612
627
  }
613
- if (data['name'] != null && data['name'] != '') {
614
- url += '&subject=' + encodeURIComponent(data['name']);
615
- }
616
628
  window.open(url, '_blank').focus();
617
629
  }
618
630
 
@@ -736,8 +748,6 @@ function atcb_generate_time(data, style = 'delimiters', targetCal = 'general') {
736
748
  return returnObject;
737
749
  }
738
750
 
739
- const isBrowser=new Function("try {return this===window;}catch(e){ return false;}");
740
-
741
751
  if (isBrowser()) {
742
752
  // Global listener to ESC key to close dropdown
743
753
  document.addEventListener('keydown', evt => {
@@ -1,2 +1,2 @@
1
- const atcbVersion="1.7.8";function atcb_init(){console.log("add-to-calendar button initialized (version "+atcbVersion+")"),console.log("See https://github.com/jekuer/add-to-calendar-button for details");let a=document.querySelectorAll(".atcb");if(0<a.length){var c=document.querySelectorAll(".atcb_initialized");for(let n=0;n<a.length;n++)if(!a[n].classList.contains("atcb_initialized")){let e,t=a[n].querySelector("script");t&&t.innerHTML?(e=JSON.parse(t.innerHTML.replace(/(\r\n|\n|\r)/gm,"").replace(/(<(?!br)([^>]+)>)/gi,"")),e=atcb_parse_schema_json(e),e.deleteJSON=!1):(e=JSON.parse(a[n].innerHTML.replace(/(\r\n|\n|\r)/gm,"").replace(/(<(?!br)([^>]+)>)/gi,"")),e.deleteJSON=!0),e=atcb_patch_config(e),atcb_check_required(e)&&(e=atcb_decorate_data(e),atcb_validate(e)&&atcb_generate(a[n],n+c.length,e))}}}function atcb_parse_schema_json(t){try{Object.keys(t.event).forEach(e=>{"@"!==e.charAt(0)&&(t[e]=t.event[e])}),delete t.event}catch(e){console.error("add-to-calendar button problem: it seems like you use the schema.org style, but did not define it properly")}return t}function atcb_patch_config(t){const n={title:"name",dateStart:"startDate",dateEnd:"endDate",timeStart:"startTime",timeEnd:"endTime"};return Object.keys(n).forEach(e=>{null==t[n[e]]&&null!=t[e]&&(t[n[e]]=t[e])}),t}function atcb_decorate_data(e){if((e=atcb_date_cleanup(e)).startDate=atcb_date_calculation(e.startDate),e.endDate=atcb_date_calculation(e.endDate),!e.description||e.description_iCal)return e;const t=Object.assign({},e);return t.description=t.description.replace(/<br\s*\/?>/gim,"\n"),t.description_iCal=t.description.replace("[url]","").replace("[/url]",""),t.description=t.description.replace(/\[url\](.*?)\[\/url\]/g,"<a href='$1' target='_blank' rel='noopener'>$1</a>"),t}function atcb_check_required(t){if(null==t.options||t.options.length<1)return console.error("add-to-calendar button generation failed: no options set"),!1;return["name","startDate","endDate"].every(function(e){return null!=t[e]&&""!=t[e]||(console.error("add-to-calendar button generation failed: required setting missing ["+e+"]"),!1)})}function atcb_date_cleanup(n){return["start","end"].forEach(function(t){var e;if(null!=n[t+"Date"]&&(n[t+"Date"]=n[t+"Date"].replace(/\..../,"").replace("Z",""),null!=(e=n[t+"Date"].split("T"))[1]&&(n[t+"Date"]=e[0],n[t+"Time"]=e[1])),null!=n[t+"Time"]&&8==n[t+"Time"].length){let e=n[t+"Time"];n[t+"Time"]=e.substring(0,e.length-3)}}),n}function atcb_date_calculation(e){let t=new Date;var n=t.getMonth()+1+"-"+t.getDate()+"-"+t.getFullYear();const a=(e=e.replace(/today/gi,n)).split("+");n=a[0].split("-");let c=new Date(n[0],n[1]-1,n[2]);return n[0].length<4&&(c=new Date(n[2],n[0]-1,n[1])),null!=a[1]&&0<a[1]&&c.setDate(c.getDate()+parseInt(a[1])),c.getFullYear()+"-"+(c.getMonth()+1<10?"0":"")+(c.getMonth()+1)+"-"+(c.getDate()<10?"0":"")+c.getDate()}function atcb_validate(n){const t=["Apple","Google","iCal","Microsoft365","Outlook.com","MicrosoftTeams","Yahoo"];if(!n.options.every(function(e){e=e.split("|");return!!t.includes(e[0])||(console.error("add-to-calendar button generation failed: invalid option ["+e[0]+"]"),!1)}))return!1;const e=["startDate","endDate"];let a=e;if(!e.every(function(e){if(10!=n[e].length)return console.error("add-to-calendar button generation failed: date misspelled [-> YYYY-MM-DD]"),!1;var t=n[e].split("-");return t.length<3||3<t.length?(console.error("add-to-calendar button generation failed: date misspelled ["+e+": "+n[e]+"]"),!1):(a[e]=new Date(t[0],t[1]-1,t[2]),!0)}))return!1;return!!["startTime","endTime"].every(function(e){if(null!=n[e]){if(5!=n[e].length)return console.error("add-to-calendar button generation failed: time misspelled [-> HH:MM]"),!1;var t=n[e].split(":");if(t.length<2||2<t.length)return console.error("add-to-calendar button generation failed: time misspelled ["+e+": "+n[e]+"]"),!1;if(23<t[0])return console.error("add-to-calendar button generation failed: time misspelled - hours number too high ["+e+": "+t[0]+"]"),!1;if(59<t[1])return console.error("add-to-calendar button generation failed: time misspelled - minutes number too high ["+e+": "+t[1]+"]"),!1;"startTime"==e&&(a.startDate=new Date(a.startDate.getTime()+36e5*t[0]+6e4*t[1])),"endTime"==e&&(a.endDate=new Date(a.endDate.getTime()+36e5*t[0]+6e4*t[1]))}return!0})&&(null!=n.startTime&&null==n.endTime||null==n.startTime&&null!=n.endTime?(console.error("add-to-calendar button generation failed: if you set a starting time, you also need to define an end time"),!1):!(a.endDate<a.startDate)||(console.error("add-to-calendar button generation failed: end date before start date"),!1))}function atcb_generate(e,t,n){n.deleteJSON&&(e.innerHTML="");let a=document.createElement("div"),c=(a.classList.add("atcb_button_wrapper"),e.appendChild(a),document.createElement("button"));c.id="atcb_button_"+t,c.classList.add("atcb_button"),a.appendChild(c),c.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 122.88 122.88"><path d="M81.61 4.73c0-2.61 2.58-4.73 5.77-4.73s5.77 2.12 5.77 4.73v20.72c0 2.61-2.58 4.73-5.77 4.73s-5.77-2.12-5.77-4.73V4.73h0zm-3.65 76.03c1.83 0 3.32 1.49 3.32 3.32s-1.49 3.32-3.32 3.32l-12.95-.04-.04 12.93c0 1.83-1.49 3.32-3.32 3.32s-3.32-1.49-3.32-3.32l.04-12.94-12.93-.05c-1.83 0-3.32-1.49-3.32-3.32s1.49-3.32 3.32-3.32l12.94.04.04-12.93c0-1.83 1.49-3.32 3.32-3.32s3.32 1.49 3.32 3.32l-.04 12.95 12.94.04h0zM29.61 4.73c0-2.61 2.58-4.73 5.77-4.73s5.77 2.12 5.77 4.73v20.72c0 2.61-2.58 4.73-5.77 4.73s-5.77-2.12-5.77-4.73V4.73h0zM6.4 45.32h110.08V21.47c0-.8-.33-1.53-.86-2.07-.53-.53-1.26-.86-2.07-.86H103c-1.77 0-3.2-1.43-3.2-3.2s1.43-3.2 3.2-3.2h10.55c2.57 0 4.9 1.05 6.59 2.74s2.74 4.02 2.74 6.59v27.06 65.03c0 2.57-1.05 4.9-2.74 6.59s-4.02 2.74-6.59 2.74H9.33c-2.57 0-4.9-1.05-6.59-2.74-1.69-1.7-2.74-4.03-2.74-6.6V48.53 21.47c0-2.57 1.05-4.9 2.74-6.59s4.02-2.74 6.59-2.74H20.6c1.77 0 3.2 1.43 3.2 3.2s-1.43 3.2-3.2 3.2H9.33c-.8 0-1.53.33-2.07.86-.53.53-.86 1.26-.86 2.07v23.85h0zm110.08 6.41H6.4v61.82c0 .8.33 1.53.86 2.07.53.53 1.26.86 2.07.86h104.22c.8 0 1.53-.33 2.07-.86.53-.53.86-1.26.86-2.07V51.73h0zM50.43 18.54c-1.77 0-3.2-1.43-3.2-3.2s1.43-3.2 3.2-3.2h21.49c1.77 0 3.2 1.43 3.2 3.2s-1.43 3.2-3.2 3.2H50.43h0z"/></svg></span>',c.innerHTML+='<span class="atcb_text">'+(n.label||"Add to Calendar")+"</span>","click"==n.trigger?c.addEventListener("mousedown",()=>atcb_toggle(n,c,!0,!1)):(c.addEventListener("touchstart",()=>atcb_toggle(n,c,!0,!1),{passive:!0}),c.addEventListener("mouseenter",()=>atcb_open(n,c,!0,!1))),c.addEventListener("keydown",function(e){"Enter"==e.key&&atcb_toggle(n,c,!0)}),e.classList.remove("atcb"),e.classList.add("atcb_initialized"),n.inline?e.style.display="inline-block":e.style.display="block",console.log("add-to-calendar button #"+(t+1)+" created")}function atcb_generate_dropdown_list(a){const c=document.createElement("div");return c.classList.add("atcb_list"),a.options.forEach(function(e){var t=e.split("|");let n=document.createElement("div");switch(n.classList.add("atcb_list_item"),n.tabIndex=0,c.appendChild(n),t[0]){case"Apple":n.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" shape-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" viewBox="0 0 640 640"><path d="M494.782 340.02c-.803-81.025 66.084-119.907 69.072-121.832-37.595-54.993-96.167-62.552-117.037-63.402-49.843-5.032-97.242 29.362-122.565 29.362-25.253 0-64.277-28.607-105.604-27.85-54.32.803-104.4 31.594-132.403 80.245C29.81 334.457 71.81 479.58 126.816 558.976c26.87 38.882 58.914 82.56 100.997 81 40.512-1.594 55.843-26.244 104.848-26.244 48.993 0 62.753 26.245 105.64 25.406 43.606-.803 71.232-39.638 97.925-78.65 30.887-45.12 43.548-88.75 44.316-90.994-.969-.437-85.029-32.634-85.879-129.439l.118-.035zM414.23 102.178C436.553 75.095 451.636 37.5 447.514-.024c-32.162 1.311-71.163 21.437-94.253 48.485-20.729 24.012-38.836 62.28-33.993 99.036 35.918 2.8 72.591-18.248 94.926-45.272l.036-.047z"/></svg></span>',n.innerHTML+='<span class="atcb_text">',n.innerHTML+=t[1]||"Apple",n.innerHTML+="</span>",n.addEventListener("click",function(){atcb_generate_ical(a),atcb_close()});break;case"Google":n.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 122.88 122.88"><path d="M93.78 29.1H29.1v64.68h64.68V29.1z" fill="#fff"/><path d="M93.78 122.88l29.1-29.1h-29.1v29.1z" fill="#f72a25"/><path d="M122.88 29.1h-29.1v64.68h29.1V29.1z" fill="#fbbc04"/><path d="M93.78 93.78H29.1v29.1h64.68v-29.1z" fill="#34a853"/><path d="M0 93.78v19.4c0 5.36 4.34 9.7 9.7 9.7h19.4v-29.1H0h0z" fill="#188038"/><path d="M122.88 29.1V9.7c0-5.36-4.34-9.7-9.7-9.7h-19.4v29.1h29.1 0z" fill="#1967d2"/><path d="M93.78 0H9.7C4.34 0 0 4.34 0 9.7v84.08h29.1V29.1h64.67V0h.01z" fill="#4285f4"/><path d="M42.37 79.27c-2.42-1.63-4.09-4.02-5-7.17l5.61-2.31c.51 1.94 1.4 3.44 2.67 4.51 1.26 1.07 2.8 1.59 4.59 1.59 1.84 0 3.41-.56 4.73-1.67 1.32-1.12 1.98-2.54 1.98-4.26 0-1.76-.7-3.2-2.09-4.32s-3.14-1.67-5.22-1.67H46.4v-5.55h2.91c1.79 0 3.31-.48 4.54-1.46 1.23-.97 1.84-2.3 1.84-3.99 0-1.5-.55-2.7-1.65-3.6s-2.49-1.35-4.18-1.35c-1.65 0-2.96.44-3.93 1.32s-1.7 2-2.12 3.24l-5.55-2.31c.74-2.09 2.09-3.93 4.07-5.52s4.51-2.39 7.58-2.39c2.27 0 4.32.44 6.13 1.32s3.23 2.1 4.26 3.65c1.03 1.56 1.54 3.31 1.54 5.25 0 1.98-.48 3.65-1.43 5.03-.95 1.37-2.13 2.43-3.52 3.16v.33c1.79.74 3.36 1.96 4.51 3.52 1.17 1.58 1.76 3.46 1.76 5.66s-.56 4.16-1.67 5.88c-1.12 1.72-2.66 3.08-4.62 4.07s-4.17 1.49-6.62 1.49c-2.84 0-5.46-.81-7.88-2.45h0 0zm34.46-27.84l-6.16 4.45-3.08-4.67 11.05-7.97h4.24v37.6h-6.05V51.43h0z" fill="#1a73e8"/></svg></span>',n.innerHTML+='<span class="atcb_text">',n.innerHTML+=t[1]||"Google",n.innerHTML+="</span>",n.addEventListener("click",function(){atcb_generate_google(a),atcb_close()});break;case"iCal":n.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 122.88 122.88"><path d="M81.61 4.73c0-2.61 2.58-4.73 5.77-4.73s5.77 2.12 5.77 4.73v20.72c0 2.61-2.58 4.73-5.77 4.73s-5.77-2.12-5.77-4.73V4.73h0zm-15.5 99.08c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2H81.9c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H66.11h0zM15.85 67.09c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H15.85h0zm25.13 0c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H40.98h0zm25.13 0c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2H81.9c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H66.11h0zm25.14 0c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H91.25h0zm-75.4 18.36c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H15.85h0zm25.13 0c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H40.98h0zm25.13 0c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2H81.9c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H66.11h0zm25.14 0c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H91.25h0zm-75.4 18.36c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H15.85h0zm25.13 0c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H40.98h0zM29.61 4.73c0-2.61 2.58-4.73 5.77-4.73s5.77 2.12 5.77 4.73v20.72c0 2.61-2.58 4.73-5.77 4.73s-5.77-2.12-5.77-4.73V4.73h0zM6.4 45.32h110.07V21.47c0-.8-.33-1.53-.86-2.07-.53-.53-1.26-.86-2.07-.86H103c-1.77 0-3.2-1.43-3.2-3.2s1.43-3.2 3.2-3.2h10.55c2.57 0 4.9 1.05 6.59 2.74s2.74 4.02 2.74 6.59v27.06 65.03c0 2.57-1.05 4.9-2.74 6.59s-4.02 2.74-6.59 2.74H9.33c-2.57 0-4.9-1.05-6.59-2.74-1.69-1.7-2.74-4.03-2.74-6.6V48.52 21.47c0-2.57 1.05-4.9 2.74-6.59s4.02-2.74 6.59-2.74H20.6c1.77 0 3.2 1.43 3.2 3.2s-1.43 3.2-3.2 3.2H9.33c-.8 0-1.53.33-2.07.86-.53.53-.86 1.26-.86 2.07v23.85h0zm110.08 6.41H6.4v61.82c0 .8.33 1.53.86 2.07.53.53 1.26.86 2.07.86h104.22c.8 0 1.53-.33 2.07-.86.53-.53.86-1.26.86-2.07V51.73h0zM50.43 18.54c-1.77 0-3.2-1.43-3.2-3.2s1.43-3.2 3.2-3.2h21.49c1.77 0 3.2 1.43 3.2 3.2s-1.43 3.2-3.2 3.2H50.43h0z"/></svg></span>',n.innerHTML+='<span class="atcb_text">',n.innerHTML+=t[1]||"iCal File",n.innerHTML+="</span>",n.addEventListener("click",function(){atcb_generate_ical(a),atcb_close()});break;case"MicrosoftTeams":n.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 2228.833 2073.333"><g fill="#5059c9"><path d="M1554.637 777.5h575.713c54.391 0 98.483 44.092 98.483 98.483v524.398c0 199.901-162.051 361.952-361.952 361.952h0-1.711c-199.901.028-361.975-162-362.004-361.901v-.052-571.409c.001-28.427 23.045-51.471 51.471-51.471h0z"/><circle cx="1943.75" cy="440.583" r="233.25"/></g><g fill="#7b83eb"><circle cx="1218.083" cy="336.917" r="336.917"/><path d="M1667.323 777.5H717.01c-53.743 1.33-96.257 45.931-95.01 99.676v598.105c-7.505 322.519 247.657 590.16 570.167 598.053 322.51-7.893 577.671-275.534 570.167-598.053V877.176c1.245-53.745-41.268-98.346-95.011-99.676z"/></g><path opacity=".1" d="M1244 777.5v838.145c-.258 38.435-23.549 72.964-59.09 87.598-11.316 4.787-23.478 7.254-35.765 7.257H667.613c-6.738-17.105-12.958-34.21-18.142-51.833-18.144-59.477-27.402-121.307-27.472-183.49V877.02c-1.246-53.659 41.198-98.19 94.855-99.52H1244z"/><path opacity=".2" d="M1192.167 777.5v889.978a91.84 91.84 0 0 1-7.257 35.765c-14.634 35.541-49.163 58.833-87.598 59.09H691.975c-8.812-17.105-17.105-34.21-24.362-51.833s-12.958-34.21-18.142-51.833a631.28 631.28 0 0 1-27.472-183.49V877.02c-1.246-53.659 41.198-98.19 94.855-99.52h475.313z"/><path opacity=".2" d="M1192.167 777.5v786.312c-.395 52.223-42.632 94.46-94.855 94.855h-447.84A631.28 631.28 0 0 1 622 1475.177V877.02c-1.246-53.659 41.198-98.19 94.855-99.52h475.312z"/><path opacity=".2" d="M1140.333 777.5v786.312c-.395 52.223-42.632 94.46-94.855 94.855H649.472A631.28 631.28 0 0 1 622 1475.177V877.02c-1.246-53.659 41.198-98.19 94.855-99.52h423.478z"/><path opacity=".1" d="M1244 509.522v163.275c-8.812.518-17.105 1.037-25.917 1.037s-17.105-.518-25.917-1.037c-17.496-1.161-34.848-3.937-51.833-8.293a336.92 336.92 0 0 1-233.25-198.003 288.02 288.02 0 0 1-16.587-51.833h258.648c52.305.198 94.657 42.549 94.856 94.854z"/><use xlink:href="#C" opacity=".2"/><use xlink:href="#C" opacity=".2"/><path opacity=".2" d="M1140.333 561.355v103.148A336.92 336.92 0 0 1 907.083 466.5h138.395c52.305.199 94.656 42.551 94.855 94.855z"/><linearGradient id="A" gradientUnits="userSpaceOnUse" x1="198.099" y1="392.261" x2="942.234" y2="1681.073"><stop offset="0" stop-color="#5a62c3"/><stop offset=".5" stop-color="#4d55bd"/><stop offset="1" stop-color="#3940ab"/></linearGradient><path fill="url(#A)" d="M95.01 466.5h950.312c52.473 0 95.01 42.538 95.01 95.01v950.312c0 52.473-42.538 95.01-95.01 95.01H95.01c-52.473 0-95.01-42.538-95.01-95.01V561.51c0-52.472 42.538-95.01 95.01-95.01z"/><path fill="#fff" d="M820.211,828.193H630.241v517.297H509.211V828.193H320.123V727.844h500.088V828.193z"/><defs ><path id="C" d="M1192.167 561.355v111.442c-17.496-1.161-34.848-3.937-51.833-8.293a336.92 336.92 0 0 1-233.25-198.003h190.228c52.304.198 94.656 42.55 94.855 94.854z"/></defs></svg></span>',n.innerHTML+='<span class="atcb_text">',n.innerHTML+=t[1]||"Microsoft Teams",n.innerHTML+="</span>",n.addEventListener("click",function(){atcb_generate_teams(a),atcb_close()});break;case"Microsoft365":n.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 278050 333334" shape-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd"><path fill="#ea3e23" d="M278050 305556l-29-16V28627L178807 0 448 66971l-448 87 22 200227 60865-23821V80555l117920-28193-17 239519L122 267285l178668 65976v73l99231-27462v-316z"/></svg></span>',n.innerHTML+='<span class="atcb_text">',n.innerHTML+=t[1]||"Microsoft 365",n.innerHTML+="</span>",n.addEventListener("click",function(){atcb_generate_microsoft(a,"365"),atcb_close()});break;case"Outlook.com":n.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="-0.129793726981 0 33.251996719421 32" width="2500" height="2397"><path d="M28.596 2H11.404A1.404 1.404 0 0 0 10 3.404V5l9.69 3L30 5V3.404A1.404 1.404 0 0 0 28.596 2z" fill="#0364b8"/><path d="M31.65 17.405A11.341 11.341 0 0 0 32 16a.666.666 0 0 0-.333-.576l-.013-.008-.004-.002L20.812 9.24a1.499 1.499 0 0 0-1.479-.083 1.49 1.49 0 0 0-.145.082L8.35 15.415l-.004.002-.012.007A.666.666 0 0 0 8 16a11.344 11.344 0 0 0 .35 1.405l11.492 8.405z" fill="#0a2767"/><path d="M24 5h-7l-2.021 3L17 11l7 6h6v-6z" fill="#28a8ea"/><path d="M10 5h7v6h-7z" fill="#0078d4"/><path d="M24 5h6v6h-6z" fill="#50d9ff"/><path d="M24 17l-7-6h-7v6l7 6 10.832 1.768z" fill="#0364b8"/><path d="M17 11h7v6h-7z" fill="#0078d4"/><path d="M10 17h7v6h-7z" fill="#064a8c"/><path d="M24 17h6v6h-6z" fill="#0078d4"/><path d="M20.19 25.218l-11.793-8.6.495-.87 10.909 6.212a.528.528 0 0 0 .42-.012l10.933-6.23.496.869z" fill="#0a2767" opacity=".5"/><path d="M31.667 16.577l-.014.008-.003.002-10.838 6.174a1.497 1.497 0 0 1-1.46.091l3.774 5.061 8.254 1.797v.004A1.498 1.498 0 0 0 32 28.5V16a.666.666 0 0 1-.333.577z" fill="#1490df"/><path d="M32 28.5v-.738l-9.983-5.688-1.205.687a1.497 1.497 0 0 1-1.46.091l3.774 5.061 8.254 1.797v.004A1.498 1.498 0 0 0 32 28.5z" opacity=".05"/><path d="M31.95 28.883L21.007 22.65l-.195.11a1.497 1.497 0 0 1-1.46.092l3.774 5.061 8.254 1.797v.004a1.501 1.501 0 0 0 .57-.83z" opacity=".1"/><path d="M8.35 16.59v-.01h-.01l-.03-.02A.65.65 0 0 1 8 16v12.5A1.498 1.498 0 0 0 9.5 30h21a1.503 1.503 0 0 0 .37-.05.637.637 0 0 0 .18-.06.142.142 0 0 0 .06-.02 1.048 1.048 0 0 0 .23-.13c.02-.01.03-.01.04-.03z" fill="#28a8ea"/><path d="M18 24.667V8.333A1.337 1.337 0 0 0 16.667 7H10.03v7.456l-1.68.958-.005.002-.012.007A.666.666 0 0 0 8 16v.005V16v10h8.667A1.337 1.337 0 0 0 18 24.667z" opacity=".1"/><path d="M17 25.667V9.333A1.337 1.337 0 0 0 15.667 8H10.03v6.456l-1.68.958-.005.002-.012.007A.666.666 0 0 0 8 16v.005V16v11h7.667A1.337 1.337 0 0 0 17 25.667z" opacity=".2"/><path d="M17 23.667V9.333A1.337 1.337 0 0 0 15.667 8H10.03v6.456l-1.68.958-.005.002-.012.007A.666.666 0 0 0 8 16v.005V16v9h7.667A1.337 1.337 0 0 0 17 23.667z" opacity=".2"/><path d="M16 23.667V9.333A1.337 1.337 0 0 0 14.667 8H10.03v6.456l-1.68.958-.005.002-.012.007A.666.666 0 0 0 8 16v.005V16v9h6.667A1.337 1.337 0 0 0 16 23.667z" opacity=".2"/><path d="M1.333 8h13.334A1.333 1.333 0 0 1 16 9.333v13.334A1.333 1.333 0 0 1 14.667 24H1.333A1.333 1.333 0 0 1 0 22.667V9.333A1.333 1.333 0 0 1 1.333 8z" fill="#0078d4"/><path d="M3.867 13.468a4.181 4.181 0 0 1 1.642-1.814A4.965 4.965 0 0 1 8.119 11a4.617 4.617 0 0 1 2.413.62 4.14 4.14 0 0 1 1.598 1.733 5.597 5.597 0 0 1 .56 2.55 5.901 5.901 0 0 1-.577 2.666 4.239 4.239 0 0 1-1.645 1.794A4.8 4.8 0 0 1 7.963 21a4.729 4.729 0 0 1-2.468-.627 4.204 4.204 0 0 1-1.618-1.736 5.459 5.459 0 0 1-.567-2.519 6.055 6.055 0 0 1 .557-2.65zm1.75 4.258a2.716 2.716 0 0 0 .923 1.194 2.411 2.411 0 0 0 1.443.435 2.533 2.533 0 0 0 1.541-.449 2.603 2.603 0 0 0 .897-1.197 4.626 4.626 0 0 0 .286-1.665 5.063 5.063 0 0 0-.27-1.686 2.669 2.669 0 0 0-.866-1.24 2.387 2.387 0 0 0-1.527-.473 2.493 2.493 0 0 0-1.477.439 2.741 2.741 0 0 0-.944 1.203 4.776 4.776 0 0 0-.007 3.44z" fill="#fff"/></svg></span>',n.innerHTML+='<span class="atcb_text">',n.innerHTML+=t[1]||"Outlook.com",n.innerHTML+="</span>",n.addEventListener("click",function(){atcb_generate_microsoft(a,"outlook"),atcb_close()});break;case"Yahoo":n.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3386.34 3010.5" shape-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd"><path d="M0 732.88h645.84l376.07 962.1 380.96-962.1h628.76l-946.8 2277.62H451.98l259.19-603.53L.02 732.88zm2763.84 768.75h-704.26L2684.65 0l701.69.03-622.5 1501.6zm-519.78 143.72c216.09 0 391.25 175.17 391.25 391.22 0 216.06-175.16 391.23-391.25 391.23-216.06 0-391.19-175.17-391.19-391.23 0-216.05 175.16-391.22 391.19-391.22z" fill="#5f01d1" fill-rule="nonzero"/></svg></span>',n.innerHTML+='<span class="atcb_text">',n.innerHTML+=t[1]||"Yahoo",n.innerHTML+="</span>",n.addEventListener("click",function(){atcb_generate_yahoo(a),atcb_close()})}n.addEventListener("keydown",function(e){"Enter"==e.key&&this.click()})}),c}function atcb_generate_bg_overlay(e){const t=document.createElement("div");t.classList.add("atcb_bgoverlay"),t.tabIndex=0,t.addEventListener("click",()=>atcb_close(!0));let n=!1;return t.addEventListener("touchstart",()=>n=!1,{passive:!0}),t.addEventListener("touchmove",()=>n=!0,{passive:!0}),t.addEventListener("touchend",function(){0==n&&atcb_close(!0)},{passive:!0}),t.addEventListener("focus",()=>atcb_close(!1)),"click"!==e.trigger?t.addEventListener("mousemove",()=>atcb_close(!0)):t.classList.add("atcb_click"),t}function atcb_toggle(e,t,n,a=!0){t.classList.contains("atcb_active")?atcb_close():atcb_open(e,t,n,a)}function atcb_open(e,t,n=!1,a=!0){if(!document.querySelector(".atcb_list")){const c=atcb_generate_dropdown_list(e,n);t?(t.classList.add("atcb_active"),t=t.getBoundingClientRect(),c.style.width=t.width+"px",c.style.top=t.bottom+window.scrollY+"px",c.style.left=t.left+"px"):c.classList.add("atcb_modal"),n&&c.classList.add("atcb_generated_button"),document.body.appendChild(c),document.body.appendChild(atcb_generate_bg_overlay(e)),a&&c.firstChild.focus()}}function atcb_close(e=!1){if(!e){let e=document.querySelector(".atcb_active");e?e.focus():(e=document.querySelector(".atcb_customTrigger"),e&&e.focus())}Array.from(document.querySelectorAll(".atcb_active")).forEach(e=>{e.classList.remove("atcb_active")}),Array.from(document.querySelectorAll(".atcb_list")).concat(Array.from(document.querySelectorAll(".atcb_bgoverlay"))).forEach(e=>e.remove())}function atcb_action(e,t){if(!atcb_check_required(e))throw new Error("data missing; see logs");if(!atcb_validate(e=atcb_decorate_data(e)))throw new Error("Invalid data; see logs");atcb_open(e,t)}function atcb_generate_google(e){let t="https://calendar.google.com/calendar/render?action=TEMPLATE";var n=atcb_generate_time(e,"clean","google");t+="&dates="+n.start+"%2F"+n.end,null!=e.description&&""!=e.description&&(t+="&details="+encodeURIComponent(e.description)),null!=e.location&&""!=e.location&&(t+="&location="+encodeURIComponent(e.location)),null!=e.name&&""!=e.name&&(t+="&text="+encodeURIComponent(e.name)),window.open(t,"_blank").focus()}function atcb_generate_yahoo(e){let t="https://calendar.yahoo.com/?v=60";var n=atcb_generate_time(e,"clean");t+="&st="+n.start+"&et="+n.end,n.allday&&(t+="&dur=allday"),null!=e.description&&""!=e.description&&(t+="&desc="+encodeURIComponent(e.description)),null!=e.location&&""!=e.location&&(t+="&in_loc="+encodeURIComponent(e.location)),null!=e.name&&""!=e.name&&(t+="&title="+encodeURIComponent(e.name)),window.open(t,"_blank").focus()}function atcb_generate_microsoft(e,t="365"){let n="https://";n+="outlook"==t?"outlook.live.com":"outlook.office.com",n+="/calendar/0/deeplink/compose?path=%2Fcalendar%2Faction%2Fcompose&rru=addevent";t=atcb_generate_time(e,"delimiters","microsoft");n+="&startdt="+t.start+"&enddt="+t.end,t.allday&&(n+="&allday=true"),null!=e.description&&""!=e.description&&(n+="&body="+encodeURIComponent(e.description.replace(/\n/g,"<br>"))),null!=e.location&&""!=e.location&&(n+="&location="+encodeURIComponent(e.location)),null!=e.name&&""!=e.name&&(n+="&subject="+encodeURIComponent(e.name)),window.open(n,"_blank").focus()}function atcb_generate_teams(e){let t="https://teams.microsoft.com/l/meeting/new?";var n=atcb_generate_time(e,"delimiters","microsoft");t+="&startTime="+n.start+"&endTime="+n.end;let a="";null!=e.location&&""!=e.location&&(a=encodeURIComponent(e.location),t+="&location="+a,a+=" // "),null!=e.description_iCal&&""!=e.description_iCal&&(t+="&content="+a+encodeURIComponent(e.description_iCal)),null!=e.name&&""!=e.name&&(t+="&subject="+encodeURIComponent(e.name)),window.open(t,"_blank").focus()}function atcb_generate_ical(t){let e=new Date;e=e.toISOString().replace(/\..../g,"").replace(/[^a-z0-9]/gi,"");var n=atcb_generate_time(t,"clean","ical");let a="",c=(n.allday&&(a=";VALUE=DATE"),["BEGIN:VCALENDAR","VERSION:2.0","CALSCALE:GREGORIAN","BEGIN:VEVENT","DTSTAMP:"+n.start,"DTSTART"+a+":"+n.start,"DTEND"+a+":"+n.end,"SUMMARY:"+t.name]);null!=t.description_iCal&&""!=t.description_iCal&&c.push("DESCRIPTION:"+t.description_iCal.replace(/\n/g,"\\n")),null!=t.location&&""!=t.location&&c.push("LOCATION:"+t.location),c.push("STATUS:CONFIRMED","LAST-MODIFIED:"+e,"SEQUENCE:0","END:VEVENT","END:VCALENDAR");n="data:text/calendar;charset=utf-8,"+encodeURIComponent(c.join("\r\n"));try{if(!window.ActiveXObject){let e=document.createElement("a");e.href=n,e.target="_blank",e.download=t.iCalFileName||"event-to-save-in-my-calendar";var o=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});e.dispatchEvent(o),(window.URL||window.webkitURL).revokeObjectURL(e.href)}}catch(e){console.error(e)}}function atcb_generate_time(n,a="delimiters",c="general"){var o=n.startDate.split("-"),i=n.endDate.split("-");let l="",r="",s=!1;if(null!=n.startTime&&null!=n.endTime)if(null!=n.timeZoneOffset&&""!=n.timeZoneOffset)l=new Date(o[0]+"-"+o[1]+"-"+o[2]+"T"+n.startTime+":00.000"+n.timeZoneOffset),r=new Date(i[0]+"-"+i[1]+"-"+i[2]+"T"+n.endTime+":00.000"+n.timeZoneOffset),l=l.toISOString().replace(".000",""),r=r.toISOString().replace(".000",""),"clean"==a&&(l=l.replace(/\-/g,"").replace(/\:/g,""),r=r.replace(/\-/g,"").replace(/\:/g,""));else{if(l=new Date(o[0]+"-"+o[1]+"-"+o[2]+"T"+n.startTime+":00.000+00:00"),r=new Date(i[0]+"-"+i[1]+"-"+i[2]+"T"+n.endTime+":00.000+00:00"),null!=n.timeZone&&""!=n.timeZone){let e=new Date(l.toLocaleString("en-US",{timeZone:"UTC"})),t=("currentBrowser"==n.timeZone&&(n.timeZone=Intl.DateTimeFormat().resolvedOptions().timeZone),new Date(l.toLocaleString("en-US",{timeZone:n.timeZone})));n=e.getTime()-t.getTime();l.setTime(l.getTime()+n),r.setTime(r.getTime()+n)}l=l.toISOString().replace(".000",""),r=r.toISOString().replace(".000",""),"clean"==a&&(l=l.replace(/\-/g,"").replace(/\:/g,""),r=r.replace(/\-/g,"").replace(/\:/g,""))}else{s=!0,l=new Date(o[0],o[1]-1,o[2]),l.setDate(l.getDate()+1);let e=l.toISOString().split("T"),t=(r=new Date(i[0],i[1]-1,i[2]),"google"==c||"microsoft"==c||"ical"==c?r.setDate(r.getDate()+2):r.setDate(r.getDate()+1),r.toISOString().split("T"));"clean"==a&&(e[0]=e[0].replace(/\-/g,""),t[0]=t[0].replace(/\-/g,"")),l=e[0],r=t[0]}return{start:l,end:r,allday:s}}const isBrowser=new Function("try {return this===window;}catch(e){ return false;}");isBrowser()&&document.addEventListener("keydown",e=>{"Escape"===e.key&&atcb_close()}),isBrowser()&&document.addEventListener("DOMContentLoaded",atcb_init,!1);
1
+ const atcbVersion="1.8.2",isBrowser=new Function("try { return this===window; }catch(e){ return false; }"),isiOS=isBrowser()?new Function("if ((/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)){ return true; }else{ return false; }"):new Function("return false;");function atcb_init(){console.log("add-to-calendar button initialized (version "+atcbVersion+")"),console.log("See https://github.com/jekuer/add-to-calendar-button for details");let a=document.querySelectorAll(".atcb");if(0<a.length){var c=document.querySelectorAll(".atcb_initialized");for(let n=0;n<a.length;n++)if(!a[n].classList.contains("atcb_initialized")){let e,t=a[n].querySelector("script");t&&t.innerHTML?(e=JSON.parse(t.innerHTML.replace(/(\r\n|\n|\r)/gm,"").replace(/(<(?!br)([^>]+)>)/gi,"")),e=atcb_parse_schema_json(e),e.deleteJSON=!1):(e=JSON.parse(a[n].innerHTML.replace(/(\r\n|\n|\r)/gm,"").replace(/(<(?!br)([^>]+)>)/gi,"")),e.deleteJSON=!0),e=atcb_patch_config(e),atcb_check_required(e)&&(e=atcb_decorate_data(e),atcb_validate(e)&&atcb_generate(a[n],n+c.length,e))}}}function atcb_parse_schema_json(t){try{Object.keys(t.event).forEach(e=>{"@"!==e.charAt(0)&&(t[e]=t.event[e])}),delete t.event}catch(e){console.error("add-to-calendar button problem: it seems like you use the schema.org style, but did not define it properly")}return t}function atcb_patch_config(t){const n={title:"name",dateStart:"startDate",dateEnd:"endDate",timeStart:"startTime",timeEnd:"endTime"};return Object.keys(n).forEach(e=>{null==t[n[e]]&&null!=t[e]&&(t[n[e]]=t[e])}),t}function atcb_decorate_data(e){if((e=atcb_date_cleanup(e)).startDate=atcb_date_calculation(e.startDate),e.endDate=atcb_date_calculation(e.endDate),!e.description||e.description_iCal)return e;const t=Object.assign({},e);return t.description=t.description.replace(/<br\s*\/?>/gim,"\n"),t.description_iCal=t.description.replace("[url]","").replace("[/url]",""),t.description=t.description.replace(/\[url\](.*?)\[\/url\]/g,"<a href='$1' target='_blank' rel='noopener'>$1</a>"),t}function atcb_check_required(t){if(null==t.options||t.options.length<1)return console.error("add-to-calendar button generation failed: no options set"),!1;return["name","startDate","endDate"].every(function(e){return null!=t[e]&&""!=t[e]||(console.error("add-to-calendar button generation failed: required setting missing ["+e+"]"),!1)})}function atcb_date_cleanup(n){return["start","end"].forEach(function(t){var e;if(null!=n[t+"Date"]&&(n[t+"Date"]=n[t+"Date"].replace(/\..../,"").replace("Z",""),null!=(e=n[t+"Date"].split("T"))[1]&&(n[t+"Date"]=e[0],n[t+"Time"]=e[1])),null!=n[t+"Time"]&&8==n[t+"Time"].length){let e=n[t+"Time"];n[t+"Time"]=e.substring(0,e.length-3)}}),n}function atcb_date_calculation(e){let t=new Date;var n=t.getMonth()+1+"-"+t.getDate()+"-"+t.getFullYear();const a=(e=e.replace(/today/gi,n)).split("+");n=a[0].split("-");let c=new Date(n[0],n[1]-1,n[2]);return n[0].length<4&&(c=new Date(n[2],n[0]-1,n[1])),null!=a[1]&&0<a[1]&&c.setDate(c.getDate()+parseInt(a[1])),c.getFullYear()+"-"+(c.getMonth()+1<10?"0":"")+(c.getMonth()+1)+"-"+(c.getDate()<10?"0":"")+c.getDate()}function atcb_validate(n){const t=["Apple","Google","iCal","Microsoft365","Outlook.com","MicrosoftTeams","Yahoo"];if(!n.options.every(function(e){e=e.split("|");return!!t.includes(e[0])||(console.error("add-to-calendar button generation failed: invalid option ["+e[0]+"]"),!1)}))return!1;const e=["startDate","endDate"];let a=e;if(!e.every(function(e){if(10!=n[e].length)return console.error("add-to-calendar button generation failed: date misspelled [-> YYYY-MM-DD]"),!1;var t=n[e].split("-");return t.length<3||3<t.length?(console.error("add-to-calendar button generation failed: date misspelled ["+e+": "+n[e]+"]"),!1):(a[e]=new Date(t[0],t[1]-1,t[2]),!0)}))return!1;return!!["startTime","endTime"].every(function(e){if(null!=n[e]){if(5!=n[e].length)return console.error("add-to-calendar button generation failed: time misspelled [-> HH:MM]"),!1;var t=n[e].split(":");if(t.length<2||2<t.length)return console.error("add-to-calendar button generation failed: time misspelled ["+e+": "+n[e]+"]"),!1;if(23<t[0])return console.error("add-to-calendar button generation failed: time misspelled - hours number too high ["+e+": "+t[0]+"]"),!1;if(59<t[1])return console.error("add-to-calendar button generation failed: time misspelled - minutes number too high ["+e+": "+t[1]+"]"),!1;"startTime"==e&&(a.startDate=new Date(a.startDate.getTime()+36e5*t[0]+6e4*t[1])),"endTime"==e&&(a.endDate=new Date(a.endDate.getTime()+36e5*t[0]+6e4*t[1]))}return!0})&&(null!=n.startTime&&null==n.endTime||null==n.startTime&&null!=n.endTime?(console.error("add-to-calendar button generation failed: if you set a starting time, you also need to define an end time"),!1):!(a.endDate<a.startDate)||(console.error("add-to-calendar button generation failed: end date before start date"),!1))}function atcb_generate(e,t,n){n.deleteJSON&&(e.innerHTML="");let a=document.createElement("div"),c=(a.classList.add("atcb_button_wrapper"),e.appendChild(a),document.createElement("button"));c.id="atcb_button_"+t,c.classList.add("atcb_button"),a.appendChild(c),c.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 122.88 122.88"><path d="M81.61 4.73c0-2.61 2.58-4.73 5.77-4.73s5.77 2.12 5.77 4.73v20.72c0 2.61-2.58 4.73-5.77 4.73s-5.77-2.12-5.77-4.73V4.73h0zm-3.65 76.03c1.83 0 3.32 1.49 3.32 3.32s-1.49 3.32-3.32 3.32l-12.95-.04-.04 12.93c0 1.83-1.49 3.32-3.32 3.32s-3.32-1.49-3.32-3.32l.04-12.94-12.93-.05c-1.83 0-3.32-1.49-3.32-3.32s1.49-3.32 3.32-3.32l12.94.04.04-12.93c0-1.83 1.49-3.32 3.32-3.32s3.32 1.49 3.32 3.32l-.04 12.95 12.94.04h0zM29.61 4.73c0-2.61 2.58-4.73 5.77-4.73s5.77 2.12 5.77 4.73v20.72c0 2.61-2.58 4.73-5.77 4.73s-5.77-2.12-5.77-4.73V4.73h0zM6.4 45.32h110.08V21.47c0-.8-.33-1.53-.86-2.07-.53-.53-1.26-.86-2.07-.86H103c-1.77 0-3.2-1.43-3.2-3.2s1.43-3.2 3.2-3.2h10.55c2.57 0 4.9 1.05 6.59 2.74s2.74 4.02 2.74 6.59v27.06 65.03c0 2.57-1.05 4.9-2.74 6.59s-4.02 2.74-6.59 2.74H9.33c-2.57 0-4.9-1.05-6.59-2.74-1.69-1.7-2.74-4.03-2.74-6.6V48.53 21.47c0-2.57 1.05-4.9 2.74-6.59s4.02-2.74 6.59-2.74H20.6c1.77 0 3.2 1.43 3.2 3.2s-1.43 3.2-3.2 3.2H9.33c-.8 0-1.53.33-2.07.86-.53.53-.86 1.26-.86 2.07v23.85h0zm110.08 6.41H6.4v61.82c0 .8.33 1.53.86 2.07.53.53 1.26.86 2.07.86h104.22c.8 0 1.53-.33 2.07-.86.53-.53.86-1.26.86-2.07V51.73h0zM50.43 18.54c-1.77 0-3.2-1.43-3.2-3.2s1.43-3.2 3.2-3.2h21.49c1.77 0 3.2 1.43 3.2 3.2s-1.43 3.2-3.2 3.2H50.43h0z"/></svg></span>',c.innerHTML+='<span class="atcb_text">'+(n.label||"Add to Calendar")+"</span>","click"==n.trigger?c.addEventListener("mousedown",()=>atcb_toggle(n,c,!0,!1)):(c.addEventListener("touchstart",()=>atcb_toggle(n,c,!0,!1),{passive:!0}),c.addEventListener("mouseenter",()=>atcb_open(n,c,!0,!1))),c.addEventListener("keydown",function(e){"Enter"==e.key&&atcb_toggle(n,c,!0)}),e.classList.remove("atcb"),e.classList.add("atcb_initialized"),n.inline?e.style.display="inline-block":e.style.display="block",console.log("add-to-calendar button #"+(t+1)+" created")}function atcb_generate_dropdown_list(a){const c=document.createElement("div");return c.classList.add("atcb_list"),a.options.forEach(function(e){var t=e.split("|");let n=document.createElement("div");switch(n.classList.add("atcb_list_item"),n.tabIndex=0,c.appendChild(n),t[0]){case"Apple":n.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" shape-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" viewBox="0 0 640 640"><path d="M494.782 340.02c-.803-81.025 66.084-119.907 69.072-121.832-37.595-54.993-96.167-62.552-117.037-63.402-49.843-5.032-97.242 29.362-122.565 29.362-25.253 0-64.277-28.607-105.604-27.85-54.32.803-104.4 31.594-132.403 80.245C29.81 334.457 71.81 479.58 126.816 558.976c26.87 38.882 58.914 82.56 100.997 81 40.512-1.594 55.843-26.244 104.848-26.244 48.993 0 62.753 26.245 105.64 25.406 43.606-.803 71.232-39.638 97.925-78.65 30.887-45.12 43.548-88.75 44.316-90.994-.969-.437-85.029-32.634-85.879-129.439l.118-.035zM414.23 102.178C436.553 75.095 451.636 37.5 447.514-.024c-32.162 1.311-71.163 21.437-94.253 48.485-20.729 24.012-38.836 62.28-33.993 99.036 35.918 2.8 72.591-18.248 94.926-45.272l.036-.047z"/></svg></span>',n.innerHTML+='<span class="atcb_text">',n.innerHTML+=t[1]||"Apple",n.innerHTML+="</span>",n.addEventListener("click",function(){atcb_generate_ical(a),atcb_close()});break;case"Google":n.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 122.88 122.88"><path d="M93.78 29.1H29.1v64.68h64.68V29.1z" fill="#fff"/><path d="M93.78 122.88l29.1-29.1h-29.1v29.1z" fill="#f72a25"/><path d="M122.88 29.1h-29.1v64.68h29.1V29.1z" fill="#fbbc04"/><path d="M93.78 93.78H29.1v29.1h64.68v-29.1z" fill="#34a853"/><path d="M0 93.78v19.4c0 5.36 4.34 9.7 9.7 9.7h19.4v-29.1H0h0z" fill="#188038"/><path d="M122.88 29.1V9.7c0-5.36-4.34-9.7-9.7-9.7h-19.4v29.1h29.1 0z" fill="#1967d2"/><path d="M93.78 0H9.7C4.34 0 0 4.34 0 9.7v84.08h29.1V29.1h64.67V0h.01z" fill="#4285f4"/><path d="M42.37 79.27c-2.42-1.63-4.09-4.02-5-7.17l5.61-2.31c.51 1.94 1.4 3.44 2.67 4.51 1.26 1.07 2.8 1.59 4.59 1.59 1.84 0 3.41-.56 4.73-1.67 1.32-1.12 1.98-2.54 1.98-4.26 0-1.76-.7-3.2-2.09-4.32s-3.14-1.67-5.22-1.67H46.4v-5.55h2.91c1.79 0 3.31-.48 4.54-1.46 1.23-.97 1.84-2.3 1.84-3.99 0-1.5-.55-2.7-1.65-3.6s-2.49-1.35-4.18-1.35c-1.65 0-2.96.44-3.93 1.32s-1.7 2-2.12 3.24l-5.55-2.31c.74-2.09 2.09-3.93 4.07-5.52s4.51-2.39 7.58-2.39c2.27 0 4.32.44 6.13 1.32s3.23 2.1 4.26 3.65c1.03 1.56 1.54 3.31 1.54 5.25 0 1.98-.48 3.65-1.43 5.03-.95 1.37-2.13 2.43-3.52 3.16v.33c1.79.74 3.36 1.96 4.51 3.52 1.17 1.58 1.76 3.46 1.76 5.66s-.56 4.16-1.67 5.88c-1.12 1.72-2.66 3.08-4.62 4.07s-4.17 1.49-6.62 1.49c-2.84 0-5.46-.81-7.88-2.45h0 0zm34.46-27.84l-6.16 4.45-3.08-4.67 11.05-7.97h4.24v37.6h-6.05V51.43h0z" fill="#1a73e8"/></svg></span>',n.innerHTML+='<span class="atcb_text">',n.innerHTML+=t[1]||"Google",n.innerHTML+="</span>",n.addEventListener("click",function(){atcb_generate_google(a),atcb_close()});break;case"iCal":n.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 122.88 122.88"><path d="M81.61 4.73c0-2.61 2.58-4.73 5.77-4.73s5.77 2.12 5.77 4.73v20.72c0 2.61-2.58 4.73-5.77 4.73s-5.77-2.12-5.77-4.73V4.73h0zm-15.5 99.08c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2H81.9c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H66.11h0zM15.85 67.09c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H15.85h0zm25.13 0c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H40.98h0zm25.13 0c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2H81.9c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H66.11h0zm25.14 0c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H91.25h0zm-75.4 18.36c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H15.85h0zm25.13 0c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H40.98h0zm25.13 0c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2H81.9c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H66.11h0zm25.14 0c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H91.25h0zm-75.4 18.36c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H15.85h0zm25.13 0c-.34 0-.61-1.43-.61-3.2s.27-3.2.61-3.2h15.79c.34 0 .61 1.43.61 3.2s-.27 3.2-.61 3.2H40.98h0zM29.61 4.73c0-2.61 2.58-4.73 5.77-4.73s5.77 2.12 5.77 4.73v20.72c0 2.61-2.58 4.73-5.77 4.73s-5.77-2.12-5.77-4.73V4.73h0zM6.4 45.32h110.07V21.47c0-.8-.33-1.53-.86-2.07-.53-.53-1.26-.86-2.07-.86H103c-1.77 0-3.2-1.43-3.2-3.2s1.43-3.2 3.2-3.2h10.55c2.57 0 4.9 1.05 6.59 2.74s2.74 4.02 2.74 6.59v27.06 65.03c0 2.57-1.05 4.9-2.74 6.59s-4.02 2.74-6.59 2.74H9.33c-2.57 0-4.9-1.05-6.59-2.74-1.69-1.7-2.74-4.03-2.74-6.6V48.52 21.47c0-2.57 1.05-4.9 2.74-6.59s4.02-2.74 6.59-2.74H20.6c1.77 0 3.2 1.43 3.2 3.2s-1.43 3.2-3.2 3.2H9.33c-.8 0-1.53.33-2.07.86-.53.53-.86 1.26-.86 2.07v23.85h0zm110.08 6.41H6.4v61.82c0 .8.33 1.53.86 2.07.53.53 1.26.86 2.07.86h104.22c.8 0 1.53-.33 2.07-.86.53-.53.86-1.26.86-2.07V51.73h0zM50.43 18.54c-1.77 0-3.2-1.43-3.2-3.2s1.43-3.2 3.2-3.2h21.49c1.77 0 3.2 1.43 3.2 3.2s-1.43 3.2-3.2 3.2H50.43h0z"/></svg></span>',n.innerHTML+='<span class="atcb_text">',n.innerHTML+=t[1]||"iCal File",n.innerHTML+="</span>",n.addEventListener("click",function(){atcb_generate_ical(a),atcb_close()});break;case"MicrosoftTeams":n.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 2228.833 2073.333"><g fill="#5059c9"><path d="M1554.637 777.5h575.713c54.391 0 98.483 44.092 98.483 98.483v524.398c0 199.901-162.051 361.952-361.952 361.952h0-1.711c-199.901.028-361.975-162-362.004-361.901v-.052-571.409c.001-28.427 23.045-51.471 51.471-51.471h0z"/><circle cx="1943.75" cy="440.583" r="233.25"/></g><g fill="#7b83eb"><circle cx="1218.083" cy="336.917" r="336.917"/><path d="M1667.323 777.5H717.01c-53.743 1.33-96.257 45.931-95.01 99.676v598.105c-7.505 322.519 247.657 590.16 570.167 598.053 322.51-7.893 577.671-275.534 570.167-598.053V877.176c1.245-53.745-41.268-98.346-95.011-99.676z"/></g><path opacity=".1" d="M1244 777.5v838.145c-.258 38.435-23.549 72.964-59.09 87.598-11.316 4.787-23.478 7.254-35.765 7.257H667.613c-6.738-17.105-12.958-34.21-18.142-51.833-18.144-59.477-27.402-121.307-27.472-183.49V877.02c-1.246-53.659 41.198-98.19 94.855-99.52H1244z"/><path opacity=".2" d="M1192.167 777.5v889.978a91.84 91.84 0 0 1-7.257 35.765c-14.634 35.541-49.163 58.833-87.598 59.09H691.975c-8.812-17.105-17.105-34.21-24.362-51.833s-12.958-34.21-18.142-51.833a631.28 631.28 0 0 1-27.472-183.49V877.02c-1.246-53.659 41.198-98.19 94.855-99.52h475.313z"/><path opacity=".2" d="M1192.167 777.5v786.312c-.395 52.223-42.632 94.46-94.855 94.855h-447.84A631.28 631.28 0 0 1 622 1475.177V877.02c-1.246-53.659 41.198-98.19 94.855-99.52h475.312z"/><path opacity=".2" d="M1140.333 777.5v786.312c-.395 52.223-42.632 94.46-94.855 94.855H649.472A631.28 631.28 0 0 1 622 1475.177V877.02c-1.246-53.659 41.198-98.19 94.855-99.52h423.478z"/><path opacity=".1" d="M1244 509.522v163.275c-8.812.518-17.105 1.037-25.917 1.037s-17.105-.518-25.917-1.037c-17.496-1.161-34.848-3.937-51.833-8.293a336.92 336.92 0 0 1-233.25-198.003 288.02 288.02 0 0 1-16.587-51.833h258.648c52.305.198 94.657 42.549 94.856 94.854z"/><use xlink:href="#C" opacity=".2"/><use xlink:href="#C" opacity=".2"/><path opacity=".2" d="M1140.333 561.355v103.148A336.92 336.92 0 0 1 907.083 466.5h138.395c52.305.199 94.656 42.551 94.855 94.855z"/><linearGradient id="A" gradientUnits="userSpaceOnUse" x1="198.099" y1="392.261" x2="942.234" y2="1681.073"><stop offset="0" stop-color="#5a62c3"/><stop offset=".5" stop-color="#4d55bd"/><stop offset="1" stop-color="#3940ab"/></linearGradient><path fill="url(#A)" d="M95.01 466.5h950.312c52.473 0 95.01 42.538 95.01 95.01v950.312c0 52.473-42.538 95.01-95.01 95.01H95.01c-52.473 0-95.01-42.538-95.01-95.01V561.51c0-52.472 42.538-95.01 95.01-95.01z"/><path fill="#fff" d="M820.211,828.193H630.241v517.297H509.211V828.193H320.123V727.844h500.088V828.193z"/><defs ><path id="C" d="M1192.167 561.355v111.442c-17.496-1.161-34.848-3.937-51.833-8.293a336.92 336.92 0 0 1-233.25-198.003h190.228c52.304.198 94.656 42.55 94.855 94.854z"/></defs></svg></span>',n.innerHTML+='<span class="atcb_text">',n.innerHTML+=t[1]||"Microsoft Teams",n.innerHTML+="</span>",n.addEventListener("click",function(){atcb_generate_teams(a),atcb_close()});break;case"Microsoft365":n.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 278050 333334" shape-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd"><path fill="#ea3e23" d="M278050 305556l-29-16V28627L178807 0 448 66971l-448 87 22 200227 60865-23821V80555l117920-28193-17 239519L122 267285l178668 65976v73l99231-27462v-316z"/></svg></span>',n.innerHTML+='<span class="atcb_text">',n.innerHTML+=t[1]||"Microsoft 365",n.innerHTML+="</span>",n.addEventListener("click",function(){atcb_generate_microsoft(a,"365"),atcb_close()});break;case"Outlook.com":n.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="-0.129793726981 0 33.251996719421 32" width="2500" height="2397"><path d="M28.596 2H11.404A1.404 1.404 0 0 0 10 3.404V5l9.69 3L30 5V3.404A1.404 1.404 0 0 0 28.596 2z" fill="#0364b8"/><path d="M31.65 17.405A11.341 11.341 0 0 0 32 16a.666.666 0 0 0-.333-.576l-.013-.008-.004-.002L20.812 9.24a1.499 1.499 0 0 0-1.479-.083 1.49 1.49 0 0 0-.145.082L8.35 15.415l-.004.002-.012.007A.666.666 0 0 0 8 16a11.344 11.344 0 0 0 .35 1.405l11.492 8.405z" fill="#0a2767"/><path d="M24 5h-7l-2.021 3L17 11l7 6h6v-6z" fill="#28a8ea"/><path d="M10 5h7v6h-7z" fill="#0078d4"/><path d="M24 5h6v6h-6z" fill="#50d9ff"/><path d="M24 17l-7-6h-7v6l7 6 10.832 1.768z" fill="#0364b8"/><path d="M17 11h7v6h-7z" fill="#0078d4"/><path d="M10 17h7v6h-7z" fill="#064a8c"/><path d="M24 17h6v6h-6z" fill="#0078d4"/><path d="M20.19 25.218l-11.793-8.6.495-.87 10.909 6.212a.528.528 0 0 0 .42-.012l10.933-6.23.496.869z" fill="#0a2767" opacity=".5"/><path d="M31.667 16.577l-.014.008-.003.002-10.838 6.174a1.497 1.497 0 0 1-1.46.091l3.774 5.061 8.254 1.797v.004A1.498 1.498 0 0 0 32 28.5V16a.666.666 0 0 1-.333.577z" fill="#1490df"/><path d="M32 28.5v-.738l-9.983-5.688-1.205.687a1.497 1.497 0 0 1-1.46.091l3.774 5.061 8.254 1.797v.004A1.498 1.498 0 0 0 32 28.5z" opacity=".05"/><path d="M31.95 28.883L21.007 22.65l-.195.11a1.497 1.497 0 0 1-1.46.092l3.774 5.061 8.254 1.797v.004a1.501 1.501 0 0 0 .57-.83z" opacity=".1"/><path d="M8.35 16.59v-.01h-.01l-.03-.02A.65.65 0 0 1 8 16v12.5A1.498 1.498 0 0 0 9.5 30h21a1.503 1.503 0 0 0 .37-.05.637.637 0 0 0 .18-.06.142.142 0 0 0 .06-.02 1.048 1.048 0 0 0 .23-.13c.02-.01.03-.01.04-.03z" fill="#28a8ea"/><path d="M18 24.667V8.333A1.337 1.337 0 0 0 16.667 7H10.03v7.456l-1.68.958-.005.002-.012.007A.666.666 0 0 0 8 16v.005V16v10h8.667A1.337 1.337 0 0 0 18 24.667z" opacity=".1"/><path d="M17 25.667V9.333A1.337 1.337 0 0 0 15.667 8H10.03v6.456l-1.68.958-.005.002-.012.007A.666.666 0 0 0 8 16v.005V16v11h7.667A1.337 1.337 0 0 0 17 25.667z" opacity=".2"/><path d="M17 23.667V9.333A1.337 1.337 0 0 0 15.667 8H10.03v6.456l-1.68.958-.005.002-.012.007A.666.666 0 0 0 8 16v.005V16v9h7.667A1.337 1.337 0 0 0 17 23.667z" opacity=".2"/><path d="M16 23.667V9.333A1.337 1.337 0 0 0 14.667 8H10.03v6.456l-1.68.958-.005.002-.012.007A.666.666 0 0 0 8 16v.005V16v9h6.667A1.337 1.337 0 0 0 16 23.667z" opacity=".2"/><path d="M1.333 8h13.334A1.333 1.333 0 0 1 16 9.333v13.334A1.333 1.333 0 0 1 14.667 24H1.333A1.333 1.333 0 0 1 0 22.667V9.333A1.333 1.333 0 0 1 1.333 8z" fill="#0078d4"/><path d="M3.867 13.468a4.181 4.181 0 0 1 1.642-1.814A4.965 4.965 0 0 1 8.119 11a4.617 4.617 0 0 1 2.413.62 4.14 4.14 0 0 1 1.598 1.733 5.597 5.597 0 0 1 .56 2.55 5.901 5.901 0 0 1-.577 2.666 4.239 4.239 0 0 1-1.645 1.794A4.8 4.8 0 0 1 7.963 21a4.729 4.729 0 0 1-2.468-.627 4.204 4.204 0 0 1-1.618-1.736 5.459 5.459 0 0 1-.567-2.519 6.055 6.055 0 0 1 .557-2.65zm1.75 4.258a2.716 2.716 0 0 0 .923 1.194 2.411 2.411 0 0 0 1.443.435 2.533 2.533 0 0 0 1.541-.449 2.603 2.603 0 0 0 .897-1.197 4.626 4.626 0 0 0 .286-1.665 5.063 5.063 0 0 0-.27-1.686 2.669 2.669 0 0 0-.866-1.24 2.387 2.387 0 0 0-1.527-.473 2.493 2.493 0 0 0-1.477.439 2.741 2.741 0 0 0-.944 1.203 4.776 4.776 0 0 0-.007 3.44z" fill="#fff"/></svg></span>',n.innerHTML+='<span class="atcb_text">',n.innerHTML+=t[1]||"Outlook.com",n.innerHTML+="</span>",n.addEventListener("click",function(){atcb_generate_microsoft(a,"outlook"),atcb_close()});break;case"Yahoo":n.innerHTML='<span class="atcb_icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3386.34 3010.5" shape-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd"><path d="M0 732.88h645.84l376.07 962.1 380.96-962.1h628.76l-946.8 2277.62H451.98l259.19-603.53L.02 732.88zm2763.84 768.75h-704.26L2684.65 0l701.69.03-622.5 1501.6zm-519.78 143.72c216.09 0 391.25 175.17 391.25 391.22 0 216.06-175.16 391.23-391.25 391.23-216.06 0-391.19-175.17-391.19-391.23 0-216.05 175.16-391.22 391.19-391.22z" fill="#5f01d1" fill-rule="nonzero"/></svg></span>',n.innerHTML+='<span class="atcb_text">',n.innerHTML+=t[1]||"Yahoo",n.innerHTML+="</span>",n.addEventListener("click",function(){atcb_generate_yahoo(a),atcb_close()})}n.addEventListener("keydown",function(e){"Enter"==e.key&&this.click()})}),c}function atcb_generate_bg_overlay(e){const t=document.createElement("div");t.classList.add("atcb_bgoverlay"),t.tabIndex=0,t.style.opacity=1,t.addEventListener("click",()=>atcb_close(!0));let n=!1;return t.addEventListener("touchstart",()=>n=!1,{passive:!0}),t.addEventListener("touchmove",()=>n=!0,{passive:!0}),t.addEventListener("touchend",function(){0==n&&atcb_close(!0)},{passive:!0}),t.addEventListener("focus",()=>atcb_close(!1)),"click"!==e.trigger?t.addEventListener("mousemove",()=>atcb_close(!0)):t.classList.add("atcb_click"),t}function atcb_toggle(e,t,n,a=!0){t.classList.contains("atcb_active")?atcb_close():atcb_open(e,t,n,a)}function atcb_open(e,t,n=!1,a=!0){if(!document.querySelector(".atcb_list")){const c=atcb_generate_dropdown_list(e,n);t?(t.classList.add("atcb_active"),t=t.getBoundingClientRect(),c.style.width=t.width+"px",c.style.top=t.bottom+window.scrollY-3+"px",c.style.left=t.left+"px"):c.classList.add("atcb_modal"),n&&c.classList.add("atcb_generated_button"),document.body.appendChild(c),document.body.appendChild(atcb_generate_bg_overlay(e)),a&&c.firstChild.focus()}}function atcb_close(e=!1){if(!e){let e=document.querySelector(".atcb_active");e?e.focus():(e=document.querySelector(".atcb_customTrigger"),e&&e.focus())}Array.from(document.querySelectorAll(".atcb_active")).forEach(e=>{e.classList.remove("atcb_active")}),Array.from(document.querySelectorAll(".atcb_list")).concat(Array.from(document.querySelectorAll(".atcb_bgoverlay"))).forEach(e=>e.remove())}function atcb_action(e,t){if(!atcb_check_required(e))throw new Error("data missing; see logs");if(!atcb_validate(e=atcb_decorate_data(e)))throw new Error("Invalid data; see logs");atcb_open(e,t)}function atcb_generate_google(e){let t="https://calendar.google.com/calendar/render?action=TEMPLATE";var n=atcb_generate_time(e,"clean","google");t+="&dates="+n.start+"%2F"+n.end,null!=e.name&&""!=e.name&&(t+="&text="+encodeURIComponent(e.name)),null!=e.location&&""!=e.location&&(t+="&location="+encodeURIComponent(e.location),isiOS()&&(null==e.description||""==e.description?e.description="":e.description+="<br><br>",e.description+="&#128205;: "+e.location)),null!=e.description&&""!=e.description&&(t+="&details="+encodeURIComponent(e.description)),window.open(t,"_blank").focus()}function atcb_generate_yahoo(e){let t="https://calendar.yahoo.com/?v=60";var n=atcb_generate_time(e,"clean");t+="&st="+n.start+"&et="+n.end,n.allday&&(t+="&dur=allday"),null!=e.name&&""!=e.name&&(t+="&title="+encodeURIComponent(e.name)),null!=e.location&&""!=e.location&&(t+="&in_loc="+encodeURIComponent(e.location)),null!=e.description&&""!=e.description&&(t+="&desc="+encodeURIComponent(e.description)),window.open(t,"_blank").focus()}function atcb_generate_microsoft(e,t="365"){let n="https://";n+="outlook"==t?"outlook.live.com":"outlook.office.com",n+="/calendar/0/deeplink/compose?path=%2Fcalendar%2Faction%2Fcompose&rru=addevent";t=atcb_generate_time(e,"delimiters","microsoft");n+="&startdt="+t.start+"&enddt="+t.end,t.allday&&(n+="&allday=true"),null!=e.name&&""!=e.name&&(n+="&subject="+encodeURIComponent(e.name)),null!=e.location&&""!=e.location&&(n+="&location="+encodeURIComponent(e.location)),null!=e.description&&""!=e.description&&(n+="&body="+encodeURIComponent(e.description.replace(/\n/g,"<br>"))),window.open(n,"_blank").focus()}function atcb_generate_teams(e){let t="https://teams.microsoft.com/l/meeting/new?";var n=atcb_generate_time(e,"delimiters","microsoft");t+="&startTime="+n.start+"&endTime="+n.end;let a="";null!=e.name&&""!=e.name&&(t+="&subject="+encodeURIComponent(e.name)),null!=e.location&&""!=e.location&&(a=encodeURIComponent(e.location),t+="&location="+a,a+=" // "),null!=e.description_iCal&&""!=e.description_iCal&&(t+="&content="+a+encodeURIComponent(e.description_iCal)),window.open(t,"_blank").focus()}function atcb_generate_ical(t){let e=new Date;e=e.toISOString().replace(/\..../g,"").replace(/[^a-z0-9]/gi,"");var n=atcb_generate_time(t,"clean","ical");let a="",c=(n.allday&&(a=";VALUE=DATE"),["BEGIN:VCALENDAR","VERSION:2.0","CALSCALE:GREGORIAN","BEGIN:VEVENT","DTSTAMP:"+n.start,"DTSTART"+a+":"+n.start,"DTEND"+a+":"+n.end,"SUMMARY:"+t.name]);null!=t.description_iCal&&""!=t.description_iCal&&c.push("DESCRIPTION:"+t.description_iCal.replace(/\n/g,"\\n")),null!=t.location&&""!=t.location&&c.push("LOCATION:"+t.location),c.push("STATUS:CONFIRMED","LAST-MODIFIED:"+e,"SEQUENCE:0","END:VEVENT","END:VCALENDAR");n="data:text/calendar;charset=utf-8,"+encodeURIComponent(c.join("\r\n"));try{if(!window.ActiveXObject){let e=document.createElement("a");e.href=n,e.target="_blank",e.download=t.iCalFileName||"event-to-save-in-my-calendar";var i=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});e.dispatchEvent(i),(window.URL||window.webkitURL).revokeObjectURL(e.href)}}catch(e){console.error(e)}}function atcb_generate_time(n,a="delimiters",c="general"){var i=n.startDate.split("-"),o=n.endDate.split("-");let l="",r="",s=!1;if(null!=n.startTime&&null!=n.endTime)if(null!=n.timeZoneOffset&&""!=n.timeZoneOffset)l=new Date(i[0]+"-"+i[1]+"-"+i[2]+"T"+n.startTime+":00.000"+n.timeZoneOffset),r=new Date(o[0]+"-"+o[1]+"-"+o[2]+"T"+n.endTime+":00.000"+n.timeZoneOffset),l=l.toISOString().replace(".000",""),r=r.toISOString().replace(".000",""),"clean"==a&&(l=l.replace(/\-/g,"").replace(/\:/g,""),r=r.replace(/\-/g,"").replace(/\:/g,""));else{if(l=new Date(i[0]+"-"+i[1]+"-"+i[2]+"T"+n.startTime+":00.000+00:00"),r=new Date(o[0]+"-"+o[1]+"-"+o[2]+"T"+n.endTime+":00.000+00:00"),null!=n.timeZone&&""!=n.timeZone){let e=new Date(l.toLocaleString("en-US",{timeZone:"UTC"})),t=("currentBrowser"==n.timeZone&&(n.timeZone=Intl.DateTimeFormat().resolvedOptions().timeZone),new Date(l.toLocaleString("en-US",{timeZone:n.timeZone})));n=e.getTime()-t.getTime();l.setTime(l.getTime()+n),r.setTime(r.getTime()+n)}l=l.toISOString().replace(".000",""),r=r.toISOString().replace(".000",""),"clean"==a&&(l=l.replace(/\-/g,"").replace(/\:/g,""),r=r.replace(/\-/g,"").replace(/\:/g,""))}else{s=!0,l=new Date(i[0],i[1]-1,i[2]),l.setDate(l.getDate()+1);let e=l.toISOString().split("T"),t=(r=new Date(o[0],o[1]-1,o[2]),"google"==c||"microsoft"==c||"ical"==c?r.setDate(r.getDate()+2):r.setDate(r.getDate()+1),r.toISOString().split("T"));"clean"==a&&(e[0]=e[0].replace(/\-/g,""),t[0]=t[0].replace(/\-/g,"")),l=e[0],r=t[0]}return{start:l,end:r,allday:s}}isBrowser()&&document.addEventListener("keydown",e=>{"Escape"===e.key&&atcb_close()}),isBrowser()&&document.addEventListener("DOMContentLoaded",atcb_init,!1);
2
2
  //# sourceMappingURL=atcb.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"atcb.min.js","sources":["atcb.js"],"names":["atcbVersion","atcb_init","console","log","let","atcButtons","document","querySelectorAll","length","atcButtonsInitialized","i","classList","contains","atcbConfig","schema","querySelector","innerHTML","JSON","parse","replace","atcb_parse_schema_json","atcb_patch_config","atcb_check_required","atcb_decorate_data","atcb_validate","atcb_generate","Object","keys","forEach","key","charAt","event","err","error","keyChanges","title","dateStart","dateEnd","timeStart","timeEnd","atcb_date_cleanup","atcb_date_calculation","description","description_iCal","data","assign","every","field","point","tmpSplitStartDate","split","timeStr","substring","dateString","today","Date","todayString","getMonth","getDate","getFullYear","dateStringParts","dateParts","newDate","setDate","parseInt","options","option","cleanOption","includes","dates","date","time","timeParts","getTime","button","buttonId","buttonTriggerWrapper","createElement","buttonTrigger","add","appendChild","id","addEventListener","atcb_toggle","passive","atcb_open","remove","style","display","atcb_generate_dropdown_list","optionsList","optionParts","optionItem","tabIndex","atcb_generate_ical","atcb_close","atcb_generate_google","atcb_generate_teams","atcb_generate_microsoft","atcb_generate_yahoo","this","click","atcb_generate_bg_overlay","bgOverlay","fingerMoved","buttonGenerated","keyboardTrigger","list","rect","getBoundingClientRect","width","top","bottom","window","scrollY","left","body","firstChild","focus","blockFocus","newFocusEl","Array","from","concat","el","atcb_action","Error","url","formattedDate","atcb_generate_time","encodeURIComponent","open","type","locationString","now","toISOString","timeslot","ics_lines","push","dlurl","join","ActiveXObject","save","href","target","download","evt","MouseEvent","view","bubbles","cancelable","dispatchEvent","URL","webkitURL","revokeObjectURL","e","targetCal","startDate","endDate","start","end","allday","utcDate","toLocaleString","timeZone","tzDate","Intl","DateTimeFormat","resolvedOptions","offset","setTime","breakStart","breakEnd","isBrowser","Function"],"mappings":"AAKA,MAAMA,YAAc,QAUpB,SAASC,YAEPC,QAAQC,IAAI,+CAAiDH,YAAc,KAC3EE,QAAQC,IAAK,oEAEbC,IAAIC,EAAaC,SAASC,iBAAiB,SAE3C,GAAwB,EAApBF,EAAWG,OAAY,CAEzBJ,IAAIK,EAAwBH,SAASC,iBAAiB,qBAEtD,IAAKH,IAAIM,EAAI,EAAGA,EAAIL,EAAWG,OAAQE,IAErC,IAAIL,EAAWK,GAAGC,UAAUC,SAAS,oBAArC,CAGAR,IAAIS,EAEAC,EAAST,EAAWK,GAAGK,cAAc,UAErCD,GAAUA,EAAOE,WAEnBH,EAAaI,KAAKC,MAAMJ,EAAOE,UAAUG,QAAQ,iBAAkB,IAAIA,QAAQ,sBAAuB,KACtGN,EAAaO,uBAAuBP,GAEpCA,EAAuB,YAAI,IAG3BA,EAAaI,KAAKC,MAAMb,EAAWK,GAAGM,UAAUG,QAAQ,iBAAkB,IAAIA,QAAQ,sBAAuB,KAE7GN,EAAuB,YAAI,GAG7BA,EAAaQ,kBAAkBR,GAE3BS,oBAAoBT,KAEtBA,EAAaU,mBAAmBV,GAE5BW,cAAcX,IAEhBY,cAAcpB,EAAWK,GAAIA,EAAID,EAAsBD,OAAQK,MAUzE,SAASO,uBAAuBP,GAC9B,IACEa,OAAOC,KAAKd,EAAkB,OAAGe,QAAQC,IAEjB,MAAlBA,EAAIC,OAAO,KACbjB,EAAWgB,GAAOhB,EAAkB,MAAEgB,aAInChB,EAAWkB,MAEpB,MAAMC,GACJ9B,QAAQ+B,MAAM,8GAEhB,OAAOpB,EAMT,SAASQ,kBAAkBR,GACzB,MAAMqB,EAAa,CACjBC,MAAc,OACdC,UAAc,YACdC,QAAc,UACdC,UAAc,YACdC,QAAc,WAOhB,OALAb,OAAOC,KAAKO,GAAYN,QAAQC,IACK,MAA/BhB,EAAWqB,EAAWL,KAAoC,MAAnBhB,EAAWgB,KACpDhB,EAAWqB,EAAWL,IAAQhB,EAAWgB,MAGtChB,EAMT,SAASU,mBAAmBV,GAQ1B,IANAA,EAAa2B,kBAAkB3B,IAET,UAAI4B,sBAAsB5B,EAAsB,WACtEA,EAAoB,QAAI4B,sBAAsB5B,EAAoB,UAG7DA,EAAW6B,aAAe7B,EAAW8B,iBAAkB,OAAO9B,EAGnE,MAAM+B,EAAOlB,OAAOmB,OAAO,GAAIhC,GAK/B,OAHA+B,EAAKF,YAAcE,EAAKF,YAAYvB,QAAQ,gBAAiB,MAC7DyB,EAAKD,iBAAmBC,EAAKF,YAAYvB,QAAQ,QAAQ,IAAIA,QAAQ,SAAS,IAC9EyB,EAAKF,YAAcE,EAAKF,YAAYvB,QAAQ,yBAA0B,sDAC/DyB,EAMT,SAAStB,oBAAoBsB,GAE3B,GAAuB,MAAnBA,EAAc,SAAaA,EAAc,QAAEpC,OAAS,EAEtD,OADAN,QAAQ+B,MAAM,6DACP,EAIT,MADsB,CAAC,OAAQ,YAAa,WACvBa,MAAM,SAASC,GAClC,OAAmB,MAAfH,EAAKG,IAAiC,IAAfH,EAAKG,KAC9B7C,QAAQ+B,MAAM,uEAAyEc,EAAQ,MACxF,KASb,SAASP,kBAAkBI,GAoBzB,MAlBkB,CAAC,QAAS,OAClBhB,QAAQ,SAASoB,GACzB,IAIMC,EAON,GAX4B,MAAxBL,EAAKI,EAAQ,UAEfJ,EAAKI,EAAQ,QAAUJ,EAAKI,EAAQ,QAAQ7B,QAAQ,QAAS,IAAIA,QAAQ,IAAK,IAGlD,OADxB8B,EAAoBL,EAAKI,EAAQ,QAAQE,MAAM,MAC7B,KACpBN,EAAKI,EAAQ,QAAUC,EAAkB,GACzCL,EAAKI,EAAQ,QAAUC,EAAkB,KAIjB,MAAxBL,EAAKI,EAAQ,SAAkD,GAA/BJ,EAAKI,EAAQ,QAAQxC,OAAa,CACpEJ,IAAI+C,EAAUP,EAAKI,EAAQ,QAC3BJ,EAAKI,EAAQ,QAAUG,EAAQC,UAAU,EAAGD,EAAQ3C,OAAS,MAG1DoC,EAGT,SAASH,sBAAsBY,GAE7BjD,IAAIkD,EAAQ,IAAIC,KAChBnD,IAAIoD,EAAeF,EAAMG,WAAa,EAAK,IAAMH,EAAMI,UAAY,IAAMJ,EAAMK,cAG/E,MAAMC,GAFNP,EAAaA,EAAWlC,QAAQ,UAAWqC,IAERN,MAAM,KACnCW,EAAYD,EAAgB,GAAGV,MAAM,KAC3C9C,IAAI0D,EAAU,IAAIP,KAAKM,EAAU,GAAIA,EAAU,GAAK,EAAGA,EAAU,IAQjE,OAPIA,EAAU,GAAGrD,OAAS,IAExBsD,EAAU,IAAIP,KAAKM,EAAU,GAAIA,EAAU,GAAK,EAAGA,EAAU,KAErC,MAAtBD,EAAgB,IAAmC,EAArBA,EAAgB,IAChDE,EAAQC,QAAQD,EAAQJ,UAAYM,SAASJ,EAAgB,KAExDE,EAAQH,cAAgB,KAASG,EAAQL,WAAa,EAAK,GAAK,IAAM,KAAOK,EAAQL,WAAa,GAAM,KAAOK,EAAQJ,UAAY,GAAK,IAAM,IAAMI,EAAQJ,UAMrK,SAASlC,cAAcoB,GAErB,MAAMqB,EAAU,CAAC,QAAS,SAAU,OAAQ,eAAgB,cAAe,iBAAkB,SAC7F,IAAKrB,EAAc,QAAEE,MAAM,SAASoB,GAC9BC,EAAcD,EAAOhB,MAAM,KAC/B,QAAKe,EAAQG,SAASD,EAAY,MAChCjE,QAAQ+B,MAAM,6DAA+DkC,EAAY,GAAK,MACvF,KAIT,OAAO,EAGT,MAAME,EAAQ,CAAC,YAAa,WAC5BjE,IAAI0D,EAAUO,EACd,IAAKA,EAAMvB,MAAM,SAASwB,GACxB,GAAyB,IAArB1B,EAAK0B,GAAM9D,OAEb,OADAN,QAAQ+B,MAAM,8EACP,EAET,IAAM4B,EAAYjB,EAAK0B,GAAMpB,MAAM,KACnC,OAAIW,EAAUrD,OAAS,GAAwB,EAAnBqD,EAAUrD,QACpCN,QAAQ+B,MAAM,8DAAgEqC,EAAO,KAAO1B,EAAK0B,GAAQ,MAClG,IAETR,EAAQQ,GAAQ,IAAIf,KAAKM,EAAU,GAAIA,EAAU,GAAK,EAAGA,EAAU,KAC5D,KAEP,OAAO,EAIT,QADc,CAAC,YAAa,WACjBf,MAAM,SAASyB,GACxB,GAAkB,MAAd3B,EAAK2B,GAAe,CACtB,GAAyB,GAArB3B,EAAK2B,GAAM/D,OAEb,OADAN,QAAQ+B,MAAM,yEACP,EAET,IAAMuC,EAAY5B,EAAK2B,GAAMrB,MAAM,KAEnC,GAAIsB,EAAUhE,OAAS,GAAwB,EAAnBgE,EAAUhE,OAEpC,OADAN,QAAQ+B,MAAM,8DAAgEsC,EAAO,KAAO3B,EAAK2B,GAAQ,MAClG,EAET,GAAmB,GAAfC,EAAU,GAEZ,OADAtE,QAAQ+B,MAAM,sFAAwFsC,EAAO,KAAOC,EAAU,GAAK,MAC5H,EAET,GAAmB,GAAfA,EAAU,GAEZ,OADAtE,QAAQ+B,MAAM,wFAA0FsC,EAAO,KAAOC,EAAU,GAAK,MAC9H,EAGG,aAARD,IACFT,EAAmB,UAAI,IAAIP,KAAKO,EAAmB,UAAEW,UAA4B,KAAfD,EAAU,GAAgC,IAAfA,EAAU,KAE7F,WAARD,IACFT,EAAiB,QAAI,IAAIP,KAAKO,EAAiB,QAAEW,UAA4B,KAAfD,EAAU,GAAgC,IAAfA,EAAU,KAGvG,OAAO,MAIiB,MAArB5B,EAAgB,WAAgC,MAAnBA,EAAc,SAAoC,MAArBA,EAAgB,WAAgC,MAAnBA,EAAc,SACxG1C,QAAQ+B,MAAM,8GACP,KAGL6B,EAAiB,QAAIA,EAAmB,aAC1C5D,QAAQ+B,MAAM,yEACP,IASX,SAASR,cAAciD,EAAQC,EAAU/B,GAEnCA,EAAiB,aACnB8B,EAAO1D,UAAY,IAGrBZ,IAAIwE,EAAuBtE,SAASuE,cAAc,OAI9CC,GAHJF,EAAqBjE,UAAUoE,IAAI,uBACnCL,EAAOM,YAAYJ,GAECtE,SAASuE,cAAc,WAC3CC,EAAcG,GAAK,eAAiBN,EACpCG,EAAcnE,UAAUoE,IAAI,eAC5BH,EAAqBI,YAAYF,GACjCA,EAAc9D,UAAY,0zCAC1B8D,EAAc9D,WAAa,4BAA8B4B,EAAY,OAAK,mBAAqB,UAExE,SAAnBA,EAAc,QAChBkC,EAAcI,iBAAiB,YAAa,IAAMC,YAAYvC,EAAMkC,GAAe,GAAM,KAEzFA,EAAcI,iBAAiB,aAAc,IAAMC,YAAYvC,EAAMkC,GAAe,GAAM,GAAQ,CAACM,SAAS,IAC5GN,EAAcI,iBAAiB,aAAc,IAAMG,UAAUzC,EAAMkC,GAAe,GAAM,KAE1FA,EAAcI,iBAAiB,UAAW,SAASnD,GAChC,SAAbA,EAAMF,KACRsD,YAAYvC,EAAMkC,GAAe,KAIrCJ,EAAO/D,UAAU2E,OAAO,QACxBZ,EAAO/D,UAAUoE,IAAI,oBAEjBnC,EAAa,OACf8B,EAAOa,MAAMC,QAAU,eAEvBd,EAAOa,MAAMC,QAAU,QAGzBtF,QAAQC,IAAI,4BAA8BwE,EAAW,GAAK,YAI5D,SAASc,4BAA4B7C,GACnC,MAAM8C,EAAcpF,SAASuE,cAAc,OAuF3C,OAtFAa,EAAY/E,UAAUoE,IAAI,aAE1BnC,EAAc,QAAEhB,QAAQ,SAASsC,GAC/B9D,IAAIuF,EAAczB,EAAOhB,MAAM,KAC/B9C,IAAIwF,EAAatF,SAASuE,cAAc,OAIxC,OAHAe,EAAWjF,UAAUoE,IAAI,kBACzBa,EAAWC,SAAW,EACtBH,EAAYV,YAAYY,GAChBD,EAAY,IAClB,IAAK,QACHC,EAAW5E,UAAY,25BACvB4E,EAAW5E,WAAa,2BACxB4E,EAAW5E,WAAa2E,EAAY,IAAM,QAC1CC,EAAW5E,WAAa,UACxB4E,EAAWV,iBAAiB,QAAS,WACnCY,mBAAmBlD,GACnBmD,eAEF,MACF,IAAK,SACHH,EAAW5E,UAAY,84CACvB4E,EAAW5E,WAAa,2BACxB4E,EAAW5E,WAAa2E,EAAY,IAAM,SAC1CC,EAAW5E,WAAa,UACxB4E,EAAWV,iBAAiB,QAAS,WACnCc,qBAAqBpD,GACrBmD,eAEF,MACF,IAAK,OACHH,EAAW5E,UAAY,ioEACvB4E,EAAW5E,WAAa,2BACxB4E,EAAW5E,WAAa2E,EAAY,IAAM,YAC1CC,EAAW5E,WAAa,UACxB4E,EAAWV,iBAAiB,QAAS,WACnCY,mBAAmBlD,GACnBmD,eAEF,MACF,IAAK,iBACHH,EAAW5E,UAAY,uzFACvB4E,EAAW5E,WAAa,2BACxB4E,EAAW5E,WAAa2E,EAAY,IAAM,kBAC1CC,EAAW5E,WAAa,UACxB4E,EAAWV,iBAAiB,QAAS,WACnCe,oBAAoBrD,GACpBmD,eAEF,MACF,IAAK,eACHH,EAAW5E,UAAY,wXACvB4E,EAAW5E,WAAa,2BACxB4E,EAAW5E,WAAa2E,EAAY,IAAM,gBAC1CC,EAAW5E,WAAa,UACxB4E,EAAWV,iBAAiB,QAAS,WACnCgB,wBAAwBtD,EAAM,OAC9BmD,eAEF,MACF,IAAK,cACHH,EAAW5E,UAAY,gsGACvB4E,EAAW5E,WAAa,2BACxB4E,EAAW5E,WAAa2E,EAAY,IAAM,cAC1CC,EAAW5E,WAAa,UACxB4E,EAAWV,iBAAiB,QAAS,WACnCgB,wBAAwBtD,EAAM,WAC9BmD,eAEF,MACF,IAAK,QACHH,EAAW5E,UAAY,qjBACvB4E,EAAW5E,WAAa,2BACxB4E,EAAW5E,WAAa2E,EAAY,IAAM,QAC1CC,EAAW5E,WAAa,UACxB4E,EAAWV,iBAAiB,QAAS,WACnCiB,oBAAoBvD,GACpBmD,eAINH,EAAWV,iBAAiB,UAAW,SAASnD,GAC7B,SAAbA,EAAMF,KACRuE,KAAKC,YAIJX,EAKT,SAASY,yBAAyB1D,GAChC,MAAM2D,EAAYjG,SAASuE,cAAc,OACzC0B,EAAU5F,UAAUoE,IAAI,kBACxBwB,EAAUV,SAAW,EACrBU,EAAUrB,iBAAiB,QAAS,IAAMa,YAAW,IACrD3F,IAAIoG,GAAc,EAclB,OAbAD,EAAUrB,iBAAiB,aAAc,IAAMsB,GAAc,EAAO,CAACpB,SAAS,IAC9EmB,EAAUrB,iBAAiB,YAAa,IAAMsB,GAAc,EAAM,CAACpB,SAAS,IAC5EmB,EAAUrB,iBAAiB,WAAY,WAClB,GAAfsB,GACFT,YAAW,IAEZ,CAACX,SAAS,IACbmB,EAAUrB,iBAAiB,QAAS,IAAMa,YAAW,IAC7B,UAApBnD,EAAc,QAChB2D,EAAUrB,iBAAiB,YAAa,IAAMa,YAAW,IAEzDQ,EAAU5F,UAAUoE,IAAI,cAEnBwB,EAMT,SAASpB,YAAYvC,EAAM8B,EAAQ+B,EAAiBC,GAAkB,GAEhEhC,EAAO/D,UAAUC,SAAS,eAC5BmF,aAEAV,UAAUzC,EAAM8B,EAAQ+B,EAAiBC,GAK7C,SAASrB,UAAUzC,EAAM8B,EAAQ+B,GAAkB,EAAOC,GAAkB,GAE1E,IAAIpG,SAASS,cAAc,cAA3B,CAGA,MAAM4F,EAAOlB,4BAA4B7C,EAAM6D,GAG3C/B,GACFA,EAAO/D,UAAUoE,IAAI,eAEf6B,EAAOlC,EAAOmC,wBACpBF,EAAKpB,MAAMuB,MAAQF,EAAKE,MAAQ,KAChCH,EAAKpB,MAAMwB,IAAMH,EAAKI,OAASC,OAAOC,QAAU,KAChDP,EAAKpB,MAAM4B,KAAOP,EAAKO,KAAO,MAE9BR,EAAKhG,UAAUoE,IAAI,cAEjB0B,GACFE,EAAKhG,UAAUoE,IAAI,yBAIrBzE,SAAS8G,KAAKpC,YAAY2B,GAG1BrG,SAAS8G,KAAKpC,YAAYsB,yBAAyB1D,IAG/C8D,GACFC,EAAKU,WAAWC,SAIpB,SAASvB,WAAWwB,GAAa,GAE/B,IAAKA,EAAY,CACfnH,IAAIoH,EAAalH,SAASS,cAAc,gBACpCyG,EACFA,EAAWF,SAEXE,EAAalH,SAASS,cAAc,uBAChCyG,GACFA,EAAWF,SAKjBG,MAAMC,KAAKpH,SAASC,iBAAiB,iBAAiBqB,QAAQ8C,IAC5DA,EAAO/D,UAAU2E,OAAO,iBAG1BmC,MAAMC,KAAKpH,SAASC,iBAAiB,eAAeoH,OAClDF,MAAMC,KAAKpH,SAASC,iBAAiB,qBACrCqB,QAAQgG,GAAMA,EAAGtC,UAIrB,SAASuC,YAAYjF,EAAM8B,GAEzB,IAAKpD,oBAAoBsB,GACvB,MAAM,IAAIkF,MAAM,0BAGlB,IAAKtG,cADLoB,EAAOrB,mBAAmBqB,IAExB,MAAM,IAAIkF,MAAM,0BAElBzC,UAAUzC,EAAM8B,GAMlB,SAASsB,qBAAqBpD,GAE5BxC,IAAI2H,EAAM,8DAEV3H,IAAI4H,EAAgBC,mBAAmBrF,EAAM,QAAS,UACtDmF,GAAO,UAAYC,EAAqB,MAAI,MAAQA,EAAmB,IAE5C,MAAvBpF,EAAkB,aAAoC,IAAvBA,EAAkB,cACnDmF,GAAO,YAAcG,mBAAmBtF,EAAkB,cAEpC,MAApBA,EAAe,UAAiC,IAApBA,EAAe,WAC7CmF,GAAO,aAAeG,mBAAmBtF,EAAe,WAEtC,MAAhBA,EAAW,MAA6B,IAAhBA,EAAW,OACrCmF,GAAO,SAAWG,mBAAmBtF,EAAW,OAElDqE,OAAOkB,KAAKJ,EAAK,UAAUT,QAM7B,SAASnB,oBAAoBvD,GAE3BxC,IAAI2H,EAAM,mCAEV3H,IAAI4H,EAAgBC,mBAAmBrF,EAAM,SAC7CmF,GAAO,OAASC,EAAqB,MAAI,OAASA,EAAmB,IACjEA,EAAsB,SACxBD,GAAO,eAGkB,MAAvBnF,EAAkB,aAAoC,IAAvBA,EAAkB,cACnDmF,GAAO,SAAWG,mBAAmBtF,EAAkB,cAEjC,MAApBA,EAAe,UAAiC,IAApBA,EAAe,WAC7CmF,GAAO,WAAaG,mBAAmBtF,EAAe,WAEpC,MAAhBA,EAAW,MAA6B,IAAhBA,EAAW,OACrCmF,GAAO,UAAYG,mBAAmBtF,EAAW,OAEnDqE,OAAOkB,KAAKJ,EAAK,UAAUT,QAM7B,SAASpB,wBAAwBtD,EAAMwF,EAAO,OAE5ChI,IAAI2H,EAAM,WAERA,GADU,WAARK,EACK,mBAEA,qBAETL,GAAO,gFAEHC,EAAgBC,mBAAmBrF,EAAM,aAAc,aAC3DmF,GAAO,YAAcC,EAAqB,MAAI,UAAYA,EAAmB,IACzEA,EAAsB,SACxBD,GAAO,gBAGkB,MAAvBnF,EAAkB,aAAoC,IAAvBA,EAAkB,cACnDmF,GAAO,SAAWG,mBAAmBtF,EAAkB,YAAEzB,QAAQ,MAAO,UAElD,MAApByB,EAAe,UAAiC,IAApBA,EAAe,WAC7CmF,GAAO,aAAeG,mBAAmBtF,EAAe,WAEtC,MAAhBA,EAAW,MAA6B,IAAhBA,EAAW,OACrCmF,GAAO,YAAcG,mBAAmBtF,EAAW,OAErDqE,OAAOkB,KAAKJ,EAAK,UAAUT,QAQ7B,SAASrB,oBAAoBrD,GAE3BxC,IAAI2H,EAAM,6CAEV3H,IAAI4H,EAAgBC,mBAAmBrF,EAAM,aAAc,aAC3DmF,GAAO,cAAgBC,EAAqB,MAAI,YAAcA,EAAmB,IAEjF5H,IAAIiI,EAAiB,GACG,MAApBzF,EAAe,UAAiC,IAApBA,EAAe,WAC7CyF,EAAiBH,mBAAmBtF,EAAe,UACnDmF,GAAO,aAAeM,EACtBA,GAAkB,QAEY,MAA5BzF,EAAuB,kBAAyC,IAA5BA,EAAuB,mBAC7DmF,GAAO,YAAcM,EAAiBH,mBAAmBtF,EAAuB,mBAE9D,MAAhBA,EAAW,MAA6B,IAAhBA,EAAW,OACrCmF,GAAO,YAAcG,mBAAmBtF,EAAW,OAErDqE,OAAOkB,KAAKJ,EAAK,UAAUT,QAM7B,SAASxB,mBAAmBlD,GAC1BxC,IAAIkI,EAAM,IAAI/E,KACd+E,EAAMA,EAAIC,cAAcpH,QAAQ,SAAU,IAAIA,QAAQ,cAAc,IACpEf,IAAI4H,EAAgBC,mBAAmBrF,EAAM,QAAS,QACtDxC,IAAIoI,EAAW,GAIXC,GAHAT,EAAsB,SACxBQ,EAAW,eAEG,CACd,kBACA,cACA,qBACA,eACA,WAAaR,EAAqB,MAClC,UAAYQ,EAAW,IAAMR,EAAqB,MAClD,QAAUQ,EAAW,IAAMR,EAAmB,IAC9C,WAAapF,EAAW,OAEO,MAA5BA,EAAuB,kBAAyC,IAA5BA,EAAuB,kBAC7D6F,EAAUC,KAAK,eAAiB9F,EAAuB,iBAAEzB,QAAQ,MAAO,QAElD,MAApByB,EAAe,UAAiC,IAApBA,EAAe,UAC7C6F,EAAUC,KAAK,YAAc9F,EAAe,UAE9C6F,EAAUC,KACT,mBACA,iBAAmBJ,EACnB,aACA,aACA,iBAEEK,EAAQ,oCAAoCT,mBAAmBO,EAAUG,KAAK,SAClF,IACE,IAAK3B,OAAO4B,cAAe,CACzBzI,IAAI0I,EAAOxI,SAASuE,cAAc,KAClCiE,EAAKC,KAAOJ,EACZG,EAAKE,OAAS,SACdF,EAAKG,SAAWrG,EAAmB,cAAK,+BACxCxC,IAAI8I,EAAM,IAAIC,WAAW,QAAS,CAC9BC,KAAQnC,OACRoC,SAAW,EACXC,YAAc,IAElBR,EAAKS,cAAcL,IAClBjC,OAAOuC,KAAOvC,OAAOwC,WAAWC,gBAAgBZ,EAAKC,OAExD,MAAMY,GACNzJ,QAAQ+B,MAAM0H,IAOlB,SAAS1B,mBAAmBrF,EAAM2C,EAAQ,aAAcqE,EAAY,WAClExJ,IAAIyJ,EAAYjH,EAAgB,UAAEM,MAAM,KACpC4G,EAAUlH,EAAc,QAAEM,MAAM,KACpC9C,IAAI2J,EAAQ,GACRC,EAAM,GACNC,GAAS,EACb,GAAyB,MAArBrH,EAAgB,WAAgC,MAAnBA,EAAc,QAE7C,GAA8B,MAA1BA,EAAqB,gBAAuC,IAA1BA,EAAqB,eAEzDmH,EAAQ,IAAIxG,KAAMsG,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMjH,EAAgB,UAAI,UAAYA,EAAqB,gBACtIoH,EAAM,IAAIzG,KAAMuG,EAAQ,GAAK,IAAMA,EAAQ,GAAK,IAAMA,EAAQ,GAAK,IAAMlH,EAAc,QAAI,UAAYA,EAAqB,gBAC5HmH,EAAQA,EAAMxB,cAAcpH,QAAQ,OAAQ,IAC5C6I,EAAMA,EAAIzB,cAAcpH,QAAQ,OAAQ,IAC3B,SAAToE,IACFwE,EAAQA,EAAM5I,QAAQ,MAAO,IAAIA,QAAQ,MAAO,IAChD6I,EAAMA,EAAI7I,QAAQ,MAAO,IAAIA,QAAQ,MAAO,SAEzC,CAIL,GAFA4I,EAAQ,IAAIxG,KAAMsG,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMA,EAAU,GAAK,IAAMjH,EAAgB,UAAI,iBACrGoH,EAAM,IAAIzG,KAAMuG,EAAQ,GAAK,IAAMA,EAAQ,GAAK,IAAMA,EAAQ,GAAK,IAAMlH,EAAc,QAAI,iBACnE,MAApBA,EAAe,UAAiC,IAApBA,EAAe,SAAS,CAEtDxC,IAAI8J,EAAU,IAAI3G,KAAKwG,EAAMI,eAAe,QAAS,CAAEC,SAAU,SAI7DC,GAHoB,kBAApBzH,EAAe,WACjBA,EAAe,SAAI0H,KAAKC,iBAAiBC,kBAAkBJ,UAEhD,IAAI7G,KAAKwG,EAAMI,eAAe,QAAS,CAAEC,SAAUxH,EAAe,aAC3E6H,EAASP,EAAQzF,UAAY4F,EAAO5F,UACxCsF,EAAMW,QAASX,EAAMtF,UAAYgG,GACjCT,EAAIU,QAASV,EAAIvF,UAAYgG,GAE/BV,EAAQA,EAAMxB,cAAcpH,QAAQ,OAAQ,IAC5C6I,EAAMA,EAAIzB,cAAcpH,QAAQ,OAAQ,IAC3B,SAAToE,IACFwE,EAAQA,EAAM5I,QAAQ,MAAO,IAAIA,QAAQ,MAAO,IAChD6I,EAAMA,EAAI7I,QAAQ,MAAO,IAAIA,QAAQ,MAAO,SAG3C,CACL8I,GAAS,EACTF,EAAQ,IAAIxG,KAAMsG,EAAU,GAAIA,EAAU,GAAK,EAAGA,EAAU,IAC5DE,EAAMhG,QAAQgG,EAAMrG,UAAY,GAChCtD,IAAIuK,EAAaZ,EAAMxB,cAAcrF,MAAM,KAOvC0H,GANJZ,EAAM,IAAIzG,KAAMuG,EAAQ,GAAIA,EAAQ,GAAK,EAAGA,EAAQ,IACnC,UAAbF,GAAsC,aAAbA,GAAyC,QAAbA,EACvDI,EAAIjG,QAAQiG,EAAItG,UAAY,GAE5BsG,EAAIjG,QAAQiG,EAAItG,UAAY,GAEfsG,EAAIzB,cAAcrF,MAAM,MAC1B,SAATqC,IACFoF,EAAW,GAAKA,EAAW,GAAGxJ,QAAQ,MAAO,IAC7CyJ,EAAS,GAAKA,EAAS,GAAGzJ,QAAQ,MAAO,KAE3C4I,EAAQY,EAAW,GACnBX,EAAMY,EAAS,GAGjB,MADmB,CAACb,MAAQA,EAAOC,IAAMA,EAAKC,OAASA,GAIzD,MAAMY,UAAU,IAAIC,SAAS,uDAEzBD,aAEFvK,SAAS4E,iBAAiB,UAAWgE,IACnB,WAAZA,EAAIrH,KACNkE,eAQF8E,aACFvK,SAAS4E,iBAAiB,mBAAoBjF,WAAW"}
1
+ {"version":3,"file":"atcb.min.js","sources":["atcb.js"],"names":["atcbVersion","isBrowser","Function","isiOS","atcb_init","console","log","let","atcButtons","document","querySelectorAll","length","atcButtonsInitialized","i","classList","contains","atcbConfig","schema","querySelector","innerHTML","JSON","parse","replace","atcb_parse_schema_json","atcb_patch_config","atcb_check_required","atcb_decorate_data","atcb_validate","atcb_generate","Object","keys","forEach","key","charAt","event","err","error","keyChanges","title","dateStart","dateEnd","timeStart","timeEnd","atcb_date_cleanup","atcb_date_calculation","description","description_iCal","data","assign","every","field","point","tmpSplitStartDate","split","timeStr","substring","dateString","today","Date","todayString","getMonth","getDate","getFullYear","dateStringParts","dateParts","newDate","setDate","parseInt","options","option","cleanOption","includes","dates","date","time","timeParts","getTime","button","buttonId","buttonTriggerWrapper","createElement","buttonTrigger","add","appendChild","id","addEventListener","atcb_toggle","passive","atcb_open","remove","style","display","atcb_generate_dropdown_list","optionsList","optionParts","optionItem","tabIndex","atcb_generate_ical","atcb_close","atcb_generate_google","atcb_generate_teams","atcb_generate_microsoft","atcb_generate_yahoo","this","click","atcb_generate_bg_overlay","bgOverlay","opacity","fingerMoved","buttonGenerated","keyboardTrigger","list","rect","getBoundingClientRect","width","top","bottom","window","scrollY","left","body","firstChild","focus","blockFocus","newFocusEl","Array","from","concat","el","atcb_action","Error","url","formattedDate","atcb_generate_time","encodeURIComponent","open","type","locationString","now","toISOString","timeslot","ics_lines","push","dlurl","join","ActiveXObject","save","href","target","download","evt","MouseEvent","view","bubbles","cancelable","dispatchEvent","URL","webkitURL","revokeObjectURL","e","targetCal","startDate","endDate","start","end","allday","utcDate","toLocaleString","timeZone","tzDate","Intl","DateTimeFormat","resolvedOptions","offset","setTime","breakStart","breakEnd"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Add-to-Calendar Button
4
4
  * ++++++++++++++++++++++
5
5
  */
6
- const atcbVersion = '1.7.8';
6
+ const atcbVersion = '1.8.2';
7
7
  /* Creator: Jens Kuerschner (https://jenskuerschner.de)
8
8
  * Project: https://github.com/jekuer/add-to-calendar-button
9
9
  * License: MIT with “Commons Clause” License Condition v1.0
@@ -12,11 +12,14 @@ const atcbVersion = '1.7.8';
12
12
 
13
13
 
14
14
 
15
+ const isBrowser = new Function("try { return this===window; }catch(e){ return false; }");
16
+ const isiOS = isBrowser() ? new Function("if ((/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)){ return true; }else{ return false; }") : new Function("return false;");
17
+
15
18
  // INITIALIZE THE SCRIPT AND FUNCTIONALITY
16
19
  function atcb_init() {
17
20
  // let's get started
18
21
  console.log("add-to-calendar button initialized (version " + atcbVersion + ")");
19
- console.log ("See https://github.com/jekuer/add-to-calendar-button for details");
22
+ console.log("See https://github.com/jekuer/add-to-calendar-button for details");
20
23
  // get all placeholders
21
24
  let atcButtons = document.querySelectorAll('.atcb');
22
25
  // if there are some, move on
@@ -410,6 +413,7 @@ function atcb_generate_bg_overlay(data) {
410
413
  const bgOverlay = document.createElement('div');
411
414
  bgOverlay.classList.add('atcb_bgoverlay');
412
415
  bgOverlay.tabIndex = 0;
416
+ bgOverlay.style.opacity = 1;
413
417
  bgOverlay.addEventListener('click', () => atcb_close(true));
414
418
  let fingerMoved = false;
415
419
  bgOverlay.addEventListener('touchstart', () => fingerMoved = false, {passive: true});
@@ -451,10 +455,9 @@ function atcb_open(data, button, buttonGenerated = false, keyboardTrigger = true
451
455
  // set list styles, set possible button to atcb_active and go for modal mode if no button is set
452
456
  if (button) {
453
457
  button.classList.add('atcb_active');
454
-
455
458
  const rect = button.getBoundingClientRect();
456
459
  list.style.width = rect.width + 'px';
457
- list.style.top = rect.bottom + window.scrollY + 'px';
460
+ list.style.top = rect.bottom + window.scrollY -3 + 'px';
458
461
  list.style.left = rect.left + 'px';
459
462
  } else {
460
463
  list.classList.add('atcb_modal')
@@ -521,14 +524,23 @@ function atcb_generate_google(data) {
521
524
  let formattedDate = atcb_generate_time(data, 'clean', 'google');
522
525
  url += '&dates=' + formattedDate['start'] + '%2F' + formattedDate['end'];
523
526
  // add details (if set)
524
- if (data['description'] != null && data['description'] != '') {
525
- url += '&details=' + encodeURIComponent(data['description']);
527
+ if (data['name'] != null && data['name'] != '') {
528
+ url += '&text=' + encodeURIComponent(data['name']);
526
529
  }
527
530
  if (data['location'] != null && data['location'] != '') {
528
531
  url += '&location=' + encodeURIComponent(data['location']);
532
+ // TODO: Find a better solution for the next temporary workaround.
533
+ if (isiOS()) { // workaround to cover a bug, where, when using Google Calendar on an iPhone, the location is not recognized. So, for the moment, we simply add it to the description.
534
+ if (data['description'] == null || data['description'] == '') {
535
+ data['description'] = '';
536
+ } else {
537
+ data['description'] += '<br><br>';
538
+ }
539
+ data['description'] += '&#128205;: ' + data['location'];
540
+ }
529
541
  }
530
- if (data['name'] != null && data['name'] != '') {
531
- url += '&text=' + encodeURIComponent(data['name']);
542
+ if (data['description'] != null && data['description'] != '') {
543
+ url += '&details=' + encodeURIComponent(data['description']);
532
544
  }
533
545
  window.open(url, '_blank').focus();
534
546
  }
@@ -546,14 +558,14 @@ function atcb_generate_yahoo(data) {
546
558
  url += '&dur=allday';
547
559
  }
548
560
  // add details (if set)
549
- if (data['description'] != null && data['description'] != '') {
550
- url += '&desc=' + encodeURIComponent(data['description']);
561
+ if (data['name'] != null && data['name'] != '') {
562
+ url += '&title=' + encodeURIComponent(data['name']);
551
563
  }
552
564
  if (data['location'] != null && data['location'] != '') {
553
565
  url += '&in_loc=' + encodeURIComponent(data['location']);
554
566
  }
555
- if (data['name'] != null && data['name'] != '') {
556
- url += '&title=' + encodeURIComponent(data['name']);
567
+ if (data['description'] != null && data['description'] != '') {
568
+ url += '&desc=' + encodeURIComponent(data['description']);
557
569
  }
558
570
  window.open(url, '_blank').focus();
559
571
  }
@@ -577,14 +589,14 @@ function atcb_generate_microsoft(data, type = '365') {
577
589
  url += '&allday=true';
578
590
  }
579
591
  // add details (if set)
580
- if (data['description'] != null && data['description'] != '') {
581
- url += '&body=' + encodeURIComponent(data['description'].replace(/\n/g, '<br>'));
592
+ if (data['name'] != null && data['name'] != '') {
593
+ url += '&subject=' + encodeURIComponent(data['name']);
582
594
  }
583
595
  if (data['location'] != null && data['location'] != '') {
584
596
  url += '&location=' + encodeURIComponent(data['location']);
585
597
  }
586
- if (data['name'] != null && data['name'] != '') {
587
- url += '&subject=' + encodeURIComponent(data['name']);
598
+ if (data['description'] != null && data['description'] != '') {
599
+ url += '&body=' + encodeURIComponent(data['description'].replace(/\n/g, '<br>'));
588
600
  }
589
601
  window.open(url, '_blank').focus();
590
602
  }
@@ -602,6 +614,9 @@ function atcb_generate_teams(data) {
602
614
  url += '&startTime=' + formattedDate['start'] + '&endTime=' + formattedDate['end'];
603
615
  // add details (if set)
604
616
  let locationString = '';
617
+ if (data['name'] != null && data['name'] != '') {
618
+ url += '&subject=' + encodeURIComponent(data['name']);
619
+ }
605
620
  if (data['location'] != null && data['location'] != '') {
606
621
  locationString = encodeURIComponent(data['location']);
607
622
  url += '&location=' + locationString; // workaround putting the location into the description, since the native field is not supported yet
@@ -610,9 +625,6 @@ function atcb_generate_teams(data) {
610
625
  if (data['description_iCal'] != null && data['description_iCal'] != '') { // using description_iCal instead of description, since Teams does not support html tags
611
626
  url += '&content=' + locationString + encodeURIComponent(data['description_iCal']);
612
627
  }
613
- if (data['name'] != null && data['name'] != '') {
614
- url += '&subject=' + encodeURIComponent(data['name']);
615
- }
616
628
  window.open(url, '_blank').focus();
617
629
  }
618
630
 
@@ -736,8 +748,6 @@ function atcb_generate_time(data, style = 'delimiters', targetCal = 'general') {
736
748
  return returnObject;
737
749
  }
738
750
 
739
- const isBrowser=new Function("try {return this===window;}catch(e){ return false;}");
740
-
741
751
  if (isBrowser()) {
742
752
  // Global listener to ESC key to close dropdown
743
753
  document.addEventListener('keydown', evt => {
@@ -3,7 +3,7 @@
3
3
  * Add-to-Calendar Button
4
4
  * ++++++++++++++++++++++
5
5
  */
6
- const atcbVersion = '1.7.8';
6
+ const atcbVersion = '1.8.2';
7
7
  /* Creator: Jens Kuerschner (https://jenskuerschner.de)
8
8
  * Project: https://github.com/jekuer/add-to-calendar-button
9
9
  * License: MIT with “Commons Clause” License Condition v1.0
@@ -12,11 +12,14 @@ const atcbVersion = '1.7.8';
12
12
 
13
13
 
14
14
 
15
+ const isBrowser = new Function("try { return this===window; }catch(e){ return false; }");
16
+ const isiOS = isBrowser() ? new Function("if ((/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)){ return true; }else{ return false; }") : new Function("return false;");
17
+
15
18
  // INITIALIZE THE SCRIPT AND FUNCTIONALITY
16
19
  function atcb_init() {
17
20
  // let's get started
18
21
  console.log("add-to-calendar button initialized (version " + atcbVersion + ")");
19
- console.log ("See https://github.com/jekuer/add-to-calendar-button for details");
22
+ console.log("See https://github.com/jekuer/add-to-calendar-button for details");
20
23
  // get all placeholders
21
24
  let atcButtons = document.querySelectorAll('.atcb');
22
25
  // if there are some, move on
@@ -410,6 +413,7 @@ function atcb_generate_bg_overlay(data) {
410
413
  const bgOverlay = document.createElement('div');
411
414
  bgOverlay.classList.add('atcb_bgoverlay');
412
415
  bgOverlay.tabIndex = 0;
416
+ bgOverlay.style.opacity = 1;
413
417
  bgOverlay.addEventListener('click', () => atcb_close(true));
414
418
  let fingerMoved = false;
415
419
  bgOverlay.addEventListener('touchstart', () => fingerMoved = false, {passive: true});
@@ -451,10 +455,9 @@ function atcb_open(data, button, buttonGenerated = false, keyboardTrigger = true
451
455
  // set list styles, set possible button to atcb_active and go for modal mode if no button is set
452
456
  if (button) {
453
457
  button.classList.add('atcb_active');
454
-
455
458
  const rect = button.getBoundingClientRect();
456
459
  list.style.width = rect.width + 'px';
457
- list.style.top = rect.bottom + window.scrollY + 'px';
460
+ list.style.top = rect.bottom + window.scrollY -3 + 'px';
458
461
  list.style.left = rect.left + 'px';
459
462
  } else {
460
463
  list.classList.add('atcb_modal')
@@ -521,14 +524,23 @@ function atcb_generate_google(data) {
521
524
  let formattedDate = atcb_generate_time(data, 'clean', 'google');
522
525
  url += '&dates=' + formattedDate['start'] + '%2F' + formattedDate['end'];
523
526
  // add details (if set)
524
- if (data['description'] != null && data['description'] != '') {
525
- url += '&details=' + encodeURIComponent(data['description']);
527
+ if (data['name'] != null && data['name'] != '') {
528
+ url += '&text=' + encodeURIComponent(data['name']);
526
529
  }
527
530
  if (data['location'] != null && data['location'] != '') {
528
531
  url += '&location=' + encodeURIComponent(data['location']);
532
+ // TODO: Find a better solution for the next temporary workaround.
533
+ if (isiOS()) { // workaround to cover a bug, where, when using Google Calendar on an iPhone, the location is not recognized. So, for the moment, we simply add it to the description.
534
+ if (data['description'] == null || data['description'] == '') {
535
+ data['description'] = '';
536
+ } else {
537
+ data['description'] += '<br><br>';
538
+ }
539
+ data['description'] += '&#128205;: ' + data['location'];
540
+ }
529
541
  }
530
- if (data['name'] != null && data['name'] != '') {
531
- url += '&text=' + encodeURIComponent(data['name']);
542
+ if (data['description'] != null && data['description'] != '') {
543
+ url += '&details=' + encodeURIComponent(data['description']);
532
544
  }
533
545
  window.open(url, '_blank').focus();
534
546
  }
@@ -546,14 +558,14 @@ function atcb_generate_yahoo(data) {
546
558
  url += '&dur=allday';
547
559
  }
548
560
  // add details (if set)
549
- if (data['description'] != null && data['description'] != '') {
550
- url += '&desc=' + encodeURIComponent(data['description']);
561
+ if (data['name'] != null && data['name'] != '') {
562
+ url += '&title=' + encodeURIComponent(data['name']);
551
563
  }
552
564
  if (data['location'] != null && data['location'] != '') {
553
565
  url += '&in_loc=' + encodeURIComponent(data['location']);
554
566
  }
555
- if (data['name'] != null && data['name'] != '') {
556
- url += '&title=' + encodeURIComponent(data['name']);
567
+ if (data['description'] != null && data['description'] != '') {
568
+ url += '&desc=' + encodeURIComponent(data['description']);
557
569
  }
558
570
  window.open(url, '_blank').focus();
559
571
  }
@@ -577,14 +589,14 @@ function atcb_generate_microsoft(data, type = '365') {
577
589
  url += '&allday=true';
578
590
  }
579
591
  // add details (if set)
580
- if (data['description'] != null && data['description'] != '') {
581
- url += '&body=' + encodeURIComponent(data['description'].replace(/\n/g, '<br>'));
592
+ if (data['name'] != null && data['name'] != '') {
593
+ url += '&subject=' + encodeURIComponent(data['name']);
582
594
  }
583
595
  if (data['location'] != null && data['location'] != '') {
584
596
  url += '&location=' + encodeURIComponent(data['location']);
585
597
  }
586
- if (data['name'] != null && data['name'] != '') {
587
- url += '&subject=' + encodeURIComponent(data['name']);
598
+ if (data['description'] != null && data['description'] != '') {
599
+ url += '&body=' + encodeURIComponent(data['description'].replace(/\n/g, '<br>'));
588
600
  }
589
601
  window.open(url, '_blank').focus();
590
602
  }
@@ -602,6 +614,9 @@ function atcb_generate_teams(data) {
602
614
  url += '&startTime=' + formattedDate['start'] + '&endTime=' + formattedDate['end'];
603
615
  // add details (if set)
604
616
  let locationString = '';
617
+ if (data['name'] != null && data['name'] != '') {
618
+ url += '&subject=' + encodeURIComponent(data['name']);
619
+ }
605
620
  if (data['location'] != null && data['location'] != '') {
606
621
  locationString = encodeURIComponent(data['location']);
607
622
  url += '&location=' + locationString; // workaround putting the location into the description, since the native field is not supported yet
@@ -610,9 +625,6 @@ function atcb_generate_teams(data) {
610
625
  if (data['description_iCal'] != null && data['description_iCal'] != '') { // using description_iCal instead of description, since Teams does not support html tags
611
626
  url += '&content=' + locationString + encodeURIComponent(data['description_iCal']);
612
627
  }
613
- if (data['name'] != null && data['name'] != '') {
614
- url += '&subject=' + encodeURIComponent(data['name']);
615
- }
616
628
  window.open(url, '_blank').focus();
617
629
  }
618
630
 
@@ -736,8 +748,6 @@ function atcb_generate_time(data, style = 'delimiters', targetCal = 'general') {
736
748
  return returnObject;
737
749
  }
738
750
 
739
- const isBrowser=new Function("try {return this===window;}catch(e){ return false;}");
740
-
741
751
  if (isBrowser()) {
742
752
  // Global listener to ESC key to close dropdown
743
753
  document.addEventListener('keydown', evt => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "add-to-calendar-button",
3
- "version": "1.7.8",
3
+ "version": "1.8.2",
4
4
  "description": "A convenient JavaScript snippet, which lets you create beautiful buttons, where people can add events to their calendars.",
5
5
  "main": "npm_dist/cjs/index.js",
6
6
  "module": "npm_dist/mjs/index.js",
@@ -47,7 +47,7 @@
47
47
  "bugs": {
48
48
  "url": "https://github.com/jekuer/add-to-calendar-button/issues"
49
49
  },
50
- "homepage": "https://github.com/jekuer/add-to-calendar-button",
50
+ "homepage": "https://jekuer.github.io/add-to-calendar-button/",
51
51
  "scripts": {
52
52
  "test": "node test/server-side-rendering.js",
53
53
  "build": "grunt"