@event-calendar/build 0.17.0 → 0.18.0

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
@@ -1,12 +1,12 @@
1
- # Event Calendar [![](https://data.jsdelivr.com/v1/package/npm/@event-calendar/build/badge)](https://www.jsdelivr.com/package/npm/@event-calendar/build) [![npm](https://img.shields.io/npm/dm/@event-calendar/core?color=red&label=npm&style=flat-square)](https://www.npmjs.com/package/@event-calendar/core) [![Sponsor](https://img.shields.io/badge/Sponsor-$10-blue.svg?style=flat-square&logo=paypal)](https://www.paypal.me/vkurko/10usd)
1
+ # Event Calendar [![](https://data.jsdelivr.com/v1/package/npm/@event-calendar/build/badge)](https://www.jsdelivr.com/package/npm/@event-calendar/build) [![npm](https://img.shields.io/npm/dm/@event-calendar/core?color=red&label=npm&style=flat-square)](https://www.npmjs.com/package/@event-calendar/core)
2
2
 
3
3
  See [demo](https://vkurko.github.io/calendar/) and [changelog](CHANGELOG.md).
4
4
 
5
5
  Full-sized drag & drop JavaScript event calendar with resource view:
6
6
 
7
- * Lightweight (37kb [br](https://en.wikipedia.org/wiki/Brotli) compressed)
7
+ * Lightweight (38kb [br](https://en.wikipedia.org/wiki/Brotli) compressed)
8
8
  * Zero-dependency (pre-built bundle)
9
- * Used by [Bookly](https://wordpress.org/plugins/bookly-responsive-appointment-booking-tool/)
9
+ * Used on over 60,000 websites with [Bookly](https://wordpress.org/plugins/bookly-responsive-appointment-booking-tool/)
10
10
 
11
11
  Inspired by [FullCalendar](https://fullcalendar.io/), implements similar options.
12
12
 
@@ -192,8 +192,8 @@ import '@event-calendar/core/index.css';
192
192
  ### Pre-built browser ready bundle
193
193
  Include the following lines of code in the `<head>` section of your page:
194
194
  ```html
195
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@event-calendar/build@0.17.0/event-calendar.min.css">
196
- <script src="https://cdn.jsdelivr.net/npm/@event-calendar/build@0.17.0/event-calendar.min.js"></script>
195
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@event-calendar/build@0.18.0/event-calendar.min.css">
196
+ <script src="https://cdn.jsdelivr.net/npm/@event-calendar/build@0.18.0/event-calendar.min.js"></script>
197
197
  ```
198
198
 
199
199
  <details>
@@ -476,6 +476,7 @@ Determines whether to display an event’s end time.
476
476
  ### dragScroll
477
477
  - Type `boolean`
478
478
  - Default `true`
479
+ - Requires `Interaction` plugin
479
480
 
480
481
  Determines whether the calendar should automatically scroll during the event drag-and-drop when the mouse crosses the edge.
481
482
 
@@ -500,6 +501,7 @@ This should be a value that can be parsed into a [Duration](#duration-object) ob
500
501
  ### editable
501
502
  - Type `boolean`
502
503
  - Default `false`
504
+ - Requires `Interaction` plugin
503
505
 
504
506
  Determines whether the events on the calendar can be dragged and resized (both at the same time).
505
507
 
@@ -668,12 +670,14 @@ The current [View](#view-object) object
668
670
  ### eventDragMinDistance
669
671
  - Type `integer`
670
672
  - Default `5`
673
+ - Requires `Interaction` plugin
671
674
 
672
675
  Defines how many pixels the user’s mouse must move before the event dragging begins.
673
676
 
674
677
  ### eventDragStart
675
678
  - Type `function`
676
679
  - Default `undefined`
680
+ - Requires `Interaction` plugin
677
681
 
678
682
  Callback function that is triggered when the event dragging begins.
679
683
 
@@ -714,6 +718,7 @@ The current [View](#view-object) object
714
718
  ### eventDragStop
715
719
  - Type `function`
716
720
  - Default `undefined`
721
+ - Requires `Interaction` plugin
717
722
 
718
723
  Callback function that is triggered when the event dragging stops.
719
724
 
@@ -756,6 +761,7 @@ The current [View](#view-object) object
756
761
  ### eventDrop
757
762
  - Type `function`
758
763
  - Default `undefined`
764
+ - Requires `Interaction` plugin
759
765
 
760
766
  Callback function that is triggered when dragging stops, and the event has moved to a different day/time.
761
767
 
@@ -848,12 +854,14 @@ The current [View](#view-object) object
848
854
  ### eventDurationEditable
849
855
  - Type `boolean`
850
856
  - Default `true`
857
+ - Requires `Interaction` plugin
851
858
 
852
859
  Determines whether calendar events can be resized.
853
860
 
854
861
  ### eventLongPressDelay
855
862
  - Type `integer`
856
863
  - Default `undefined`
864
+ - Requires `Interaction` plugin
857
865
 
858
866
  For touch devices, the amount of time (in milliseconds) the user must hold down a tap before the event becomes draggable/resizable.
859
867
 
@@ -956,6 +964,7 @@ The current [View](#view-object) object
956
964
  ### eventResize
957
965
  - Type `function`
958
966
  - Default `undefined`
967
+ - Requires `Interaction` plugin
959
968
 
960
969
  Callback function that is triggered when resizing stops, and the duration of the event has changed.
961
970
 
@@ -1028,6 +1037,7 @@ The current [View](#view-object) object
1028
1037
  ### eventResizeStart
1029
1038
  - Type `function`
1030
1039
  - Default `undefined`
1040
+ - Requires `Interaction` plugin
1031
1041
 
1032
1042
  Callback function that is triggered when the event resizing begins.
1033
1043
 
@@ -1068,6 +1078,7 @@ The current [View](#view-object) object
1068
1078
  ### eventResizeStop
1069
1079
  - Type `function`
1070
1080
  - Default `undefined`
1081
+ - Requires `Interaction` plugin
1071
1082
 
1072
1083
  Callback function that is triggered when the event resizing stops.
1073
1084
 
@@ -1209,6 +1220,7 @@ Instead of calling `successCallback` and `failureCallback`, you may return the r
1209
1220
  ### eventStartEditable
1210
1221
  - Type `boolean`
1211
1222
  - Default `true`
1223
+ - Requires `Interaction` plugin
1212
1224
 
1213
1225
  Determines whether the events on the calendar can be dragged.
1214
1226
 
@@ -1507,6 +1519,7 @@ Enables a marker indicating the current time in `timeGrid`/`resourceTimeGrid` vi
1507
1519
  ### pointer
1508
1520
  - Type `boolean`
1509
1521
  - Default `false`
1522
+ - Requires `Interaction` plugin
1510
1523
 
1511
1524
  Enables mouse cursor pointer in `timeGrid`/`resourceTimeGrid` views.
1512
1525
 
@@ -1590,6 +1603,7 @@ The associated [Resource](#resource-object) object
1590
1603
  ### select
1591
1604
  - Type `function`
1592
1605
  - Default `undefined`
1606
+ - Requires `Interaction` plugin
1593
1607
 
1594
1608
  Callback function that is triggered when a date/time selection is made.
1595
1609
 
@@ -1667,12 +1681,14 @@ If the current view is a resource view, the [Resource](#resource-object) object
1667
1681
  ### selectable
1668
1682
  - Type `boolean`
1669
1683
  - Default `false`
1684
+ - Requires `Interaction` plugin
1670
1685
 
1671
1686
  Determines whether the user is allowed to highlight multiple days or time slots by clicking and moving the pointer.
1672
1687
 
1673
1688
  ### selectBackgroundColor
1674
1689
  - Type `string`
1675
1690
  - Default `undefined`
1691
+ - Requires `Interaction` plugin
1676
1692
 
1677
1693
  Sets the background color for the event indicating the current selection. See [selectable](#selectable).
1678
1694
 
@@ -1681,6 +1697,7 @@ You can use any of the CSS color formats such `'#f00'`, `'#ff0000'`, `'rgb(255,0
1681
1697
  ### selectLongPressDelay
1682
1698
  - Type `integer`
1683
1699
  - Default `undefined`
1700
+ - Requires `Interaction` plugin
1684
1701
 
1685
1702
  For touch devices, the amount of time (in milliseconds) the user must hold down a tap before the date becomes selectable.
1686
1703
 
@@ -1689,6 +1706,7 @@ If not specified, it falls back to [longPressDelay](#longpressdelay).
1689
1706
  ### selectMinDistance
1690
1707
  - Type `integer`
1691
1708
  - Default `5`
1709
+ - Requires `Interaction` plugin
1692
1710
 
1693
1711
  Defines how many pixels the user’s mouse must move before the selection begins.
1694
1712
 
@@ -1811,6 +1829,7 @@ function (date) {
1811
1829
  ### unselect
1812
1830
  - Type `function`
1813
1831
  - Default `undefined`
1832
+ - Requires `Interaction` plugin
1814
1833
 
1815
1834
  Callback function that is triggered when the current selection is cleared.
1816
1835
 
@@ -1852,12 +1871,14 @@ The current [View](#view-object) object
1852
1871
  ### unselectAuto
1853
1872
  - Type `boolean`
1854
1873
  - Default `true`
1874
+ - Requires `Interaction` plugin
1855
1875
 
1856
1876
  Determines whether clicking elsewhere on the page will clear the current selection. See [selectable](#selectable).
1857
1877
 
1858
1878
  ### unselectCancel
1859
1879
  - Type `string`
1860
1880
  - Default `''`
1881
+ - Requires `Interaction` plugin
1861
1882
 
1862
1883
  A CSS selector that specifies elements that will ignore the [unselectAuto](#unselectauto) option.
1863
1884
 
@@ -2179,7 +2200,7 @@ Here are all admissible fields for the event’s input object:
2179
2200
  </td>
2180
2201
  <td>
2181
2202
 
2182
- `boolean` Determines if the event is shown in the all-day slot. Default `false`
2203
+ `boolean` Determines if the event is shown in the all-day slot. Defaults to `true` if `start` and `end` are both passed without a time part, `false` otherwise
2183
2204
  </td>
2184
2205
  </tr>
2185
2206
  <tr>
@@ -2360,6 +2381,13 @@ Here are all properties that exist in Resource object:
2360
2381
  </td>
2361
2382
  <td>The HTML version of the title</td>
2362
2383
  </tr>
2384
+ <tr>
2385
+ <td>
2386
+
2387
+ `eventBackgroundColor`
2388
+ </td>
2389
+ <td>Default background color for this resource's events</td>
2390
+ </tr>
2363
2391
  </table>
2364
2392
 
2365
2393
  ### Parsing resource from a plain object
@@ -2397,6 +2425,16 @@ Here are all admissible fields for the resource’s input object:
2397
2425
  `string` The HTML version of the title to be displayed instead of the text version. Default `''`
2398
2426
  </td>
2399
2427
  </tr>
2428
+ <tr>
2429
+ <td>
2430
+
2431
+ `eventBackgroundColor`
2432
+ </td>
2433
+ <td>
2434
+
2435
+ `string` Sets the default background color for this resource's events just like the calendar-wide [eventBackgroundColor](#eventbackgroundcolor) option. Default `undefined`
2436
+ </td>
2437
+ </tr>
2400
2438
  </table>
2401
2439
 
2402
2440
  ## View object
@@ -1 +1 @@
1
- .ec-days,.ec-day,.ec-day-title,.ec-resource{flex:1 1 0;min-width:0;max-width:100%}.ec{display:flex;flex-direction:column;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ec ::-webkit-scrollbar{background:#fff}.ec ::-webkit-scrollbar-thumb{border:4px solid #fff;box-shadow:none;background:#dadce0;border-radius:8px;min-height:40px}.ec :hover::-webkit-scrollbar-thumb{background:#bdc1c6}.ec-hidden-scroll{display:none;overflow-y:scroll;visibility:hidden;flex-shrink:0}.ec-with-scroll .ec-hidden-scroll{display:block}.ec-toolbar{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;margin-bottom:1em}.ec-toolbar>*{margin-bottom:-0.5em}.ec-toolbar>*>*{margin-bottom:.5em}.ec-toolbar>*>*:not(:last-child){margin-right:.75em}.ec-title{margin:0}.ec-button{background-color:#fff;border:1px solid #ced4da;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem}.ec-button:not(:disabled){color:#212529;cursor:pointer}.ec-button:not(:disabled):hover,.ec-button.ec-active{background-color:#ececec;border-color:#b1bbc4}.ec-button-group{display:inline-flex}.ec-button-group .ec-button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.ec-button-group .ec-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.ec-icon{display:inline-block;width:1em}.ec-icon.ec-prev:after,.ec-icon.ec-next:after{content:"";position:relative;width:.5em;height:.5em;border-top:2px solid #212529;border-right:2px solid #212529;display:inline-block}.ec-icon.ec-prev:after{transform:rotate(-135deg) translate(-2px, 2px)}.ec-icon.ec-next:after{transform:rotate(45deg) translate(-2px, 2px)}.ec-header,.ec-all-day,.ec-body,.ec-days,.ec-day{border:1px solid #dadce0}.ec-header{display:flex;flex-shrink:0}.ec-header .ec-resource{flex-direction:column}.ec-header .ec-resource .ec-days{border-top-style:solid}.ec-header .ec-days{border-bottom:none}.ec-header .ec-day{min-height:24px;line-height:24px;text-align:center;overflow:hidden;text-overflow:ellipsis}.ec-all-day{display:flex;flex-shrink:0;border-top:none}.ec-all-day .ec-days{border-bottom:none}.ec-all-day .ec-day{padding-bottom:4px}.ec-all-day .ec-event-time{display:none}.ec-body{position:relative;overflow-x:hidden;overflow-y:auto}.ec:not(.ec-list) .ec-body{border-top:none}.ec-month .ec-body{flex:1 1 auto}.ec-sidebar{flex:0 0 auto;width:auto;max-width:100%;padding:0 4px 0 8px;display:flex;flex-direction:column;justify-content:center}.ec-sidebar-title{visibility:hidden;overflow-y:hidden;height:0;text-align:right}.ec-all-day .ec-sidebar-title{visibility:visible;height:auto;padding:8px 0}.ec-content{display:flex}.ec-month .ec-content{flex-direction:column;height:100%}.ec-month .ec-uniform .ec-content{overflow:hidden}.ec-list .ec-content{flex-direction:column}.ec-resource{display:flex}.ec-days{display:flex;border-style:none none solid}.ec-days:last-child{border-bottom:none}.ec-month .ec-days,.ec-resource .ec-days{flex:1 0 auto}.ec-month .ec-uniform .ec-days{flex:1 1 0%;min-height:0}.ec-day{border-style:none none none solid}.ec-day.ec-today{background-color:#fcf8e3}.ec-day.ec-highlight{background-color:#e5f7fe}.ec-month .ec-body .ec-day{min-height:5em;position:relative}.ec-month .ec-uniform .ec-day{min-height:0}.ec-month .ec-day:first-child{border-left:none}.ec-day.ec-other-month .ec-day-head{opacity:.3}.ec-list .ec-day{flex:1 0 auto;background-color:#fff;border-style:solid none;padding:8px 14px;font-weight:bold;position:sticky;top:0;z-index:2}.ec-list .ec-day:first-child{border-top:none}.ec-month .ec-day-head{text-align:right;padding:4px 4px 3px}.ec-month .ec-day-foot{position:absolute;bottom:0;padding:2px;font-size:.85em}.ec-month .ec-day-foot a{cursor:pointer}.ec-list .ec-day-side{float:right}.ec-list .ec-no-events{text-align:center;padding:5em 0}.ec-events{margin:0 6px 0 0}.ec-week .ec-events,.ec-events.ec-preview{position:relative}.ec-event{display:flex;padding:2px;color:#fff;box-sizing:border-box;box-shadow:0 0 1px 0 #dadce0;background-color:#039be5;border-radius:3px;font-size:.85em;line-height:1.5;z-index:1}.ec-month .ec-event,.ec-all-day .ec-event{position:relative}.ec-week .ec-body .ec-event{position:absolute}.ec-list .ec-event{flex-direction:row;padding:8px 14px;color:inherit;background-color:rgba(0,0,0,0);border-radius:0}.ec-event.ec-preview{position:absolute;z-index:1000;width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.8}.ec-event.ec-pointer{color:inherit;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:absolute;z-index:0;box-shadow:none;display:none}.ec-day:hover .ec-event.ec-pointer{display:flex}.ec-event-body{display:flex;flex-direction:column;width:100%}.ec-month .ec-event-body,.ec-all-day .ec-event-body{flex-direction:row}.ec-event-tag{width:4px;border-radius:2px;margin-right:8px}.ec-event-time{overflow:hidden;white-space:nowrap;margin:0 0 1px 0;flex-shrink:0}.ec-month .ec-event-time{margin:0 3px 0 0;max-width:100%;text-overflow:ellipsis}.ec-event-title{overflow:hidden}.ec-month .ec-event-title,.ec-all-day .ec-event-title{min-height:1.5em;white-space:nowrap;text-overflow:ellipsis}.ec-week .ec-body .ec-event-title{position:sticky;top:0}.ec-list .ec-event-title{font-size:1rem}.ec-draggable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-ghost{opacity:.5;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-bg-events{position:relative}.ec-bg-event{position:absolute;background-color:#dadce0;opacity:.3;width:100%}.ec-hidden-times{visibility:hidden;overflow-y:hidden;height:0}.ec-time,.ec-line{height:24px}.ec-time{position:relative;line-height:24px;top:-12px;text-align:right;white-space:nowrap}.ec-lines{width:8px}.ec-line:not(:first-child):after{content:"";position:absolute;width:100%;border-bottom:1px solid #dadce0;pointer-events:none}.ec-body:not(.ec-compact) .ec-line:nth-child(even):after{border-bottom-style:dotted}.ec-popup{position:absolute;top:0;display:flex;flex-direction:column;width:110%;min-width:180px;z-index:1010;padding:8px 10px 14px;background-color:#fff;border-radius:6px;outline:1px solid rgba(0,0,0,0);box-shadow:0 1px 3px 0 rgba(60,64,67,.3),0 4px 8px 3px rgba(60,64,67,.15)}.ec-popup .ec-day-head{text-align:left;display:flex;justify-content:space-between}.ec-popup .ec-day-head a{cursor:pointer;font-size:1.5em;line-height:.8}.ec-popup .ec-events{margin:0;min-height:0;overflow:auto}.ec-extra{position:relative;height:100%;overflow:hidden;margin-left:-6.5px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-now-indicator{position:absolute;z-index:1005;width:100%;border-top:#ea4335 solid 2px;pointer-events:none}.ec-now-indicator:before{background:#ea4335;border-radius:50%;content:"";position:absolute;height:12px;margin-top:-7px;width:12px;pointer-events:none}.ec-resizer{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-month .ec-resizer,.ec-all-day .ec-resizer{top:0;right:0;bottom:0;width:50%;max-width:8px;cursor:ew-resize}.ec-week .ec-body .ec-resizer{left:0;right:0;bottom:0;height:50%;max-height:8px;cursor:ns-resize}.ec-dragging{cursor:pointer !important}.ec-resizing-y{cursor:ns-resize !important}.ec-resizing-x{cursor:ew-resize !important}
1
+ .ec-days,.ec-day,.ec-day-title,.ec-resource{flex:1 1 0;min-width:0;max-width:100%}.ec{display:flex;flex-direction:column;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ec ::-webkit-scrollbar{background:#fff}.ec ::-webkit-scrollbar-thumb{border:4px solid #fff;box-shadow:none;background:#dadce0;border-radius:8px;min-height:40px}.ec :hover::-webkit-scrollbar-thumb{background:#bdc1c6}.ec-hidden-scroll{display:none;overflow-y:scroll;visibility:hidden;flex-shrink:0}.ec-with-scroll .ec-hidden-scroll{display:block}.ec-toolbar{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;margin-bottom:1em}.ec-toolbar>*{margin-bottom:-0.5em}.ec-toolbar>*>*{margin-bottom:.5em}.ec-toolbar>*>*:not(:last-child){margin-right:.75em}.ec-title{margin:0}.ec-button{background-color:#fff;border:1px solid #ced4da;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem}.ec-button:not(:disabled){color:#212529;cursor:pointer}.ec-button:not(:disabled):hover,.ec-button.ec-active{background-color:#ececec;border-color:#b1bbc4}.ec-button-group{display:inline-flex}.ec-button-group .ec-button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.ec-button-group .ec-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.ec-icon{display:inline-block;width:1em}.ec-icon.ec-prev:after,.ec-icon.ec-next:after{content:"";position:relative;width:.5em;height:.5em;border-top:2px solid #212529;border-right:2px solid #212529;display:inline-block}.ec-icon.ec-prev:after{transform:rotate(-135deg) translate(-2px, 2px)}.ec-icon.ec-next:after{transform:rotate(45deg) translate(-2px, 2px)}.ec-header,.ec-all-day,.ec-body,.ec-days,.ec-day{border:1px solid #dadce0}.ec-header{display:flex;flex-shrink:0}.ec-header .ec-resource{flex-direction:column}.ec-header .ec-resource .ec-days{border-top-style:solid}.ec-header .ec-days{border-bottom:none}.ec-header .ec-day{min-height:24px;line-height:24px;text-align:center;overflow:hidden;text-overflow:ellipsis}.ec-all-day{display:flex;flex-shrink:0;border-top:none}.ec-all-day .ec-days{border-bottom:none}.ec-all-day .ec-day{padding-bottom:4px}.ec-all-day .ec-event-time{display:none}.ec-body{position:relative;overflow-x:hidden;overflow-y:auto}.ec:not(.ec-list) .ec-body{border-top:none}.ec-month .ec-body{flex:1 1 auto}.ec-sidebar{flex:0 0 auto;width:auto;max-width:100%;padding:0 4px 0 8px;display:flex;flex-direction:column;justify-content:center}.ec-sidebar-title{visibility:hidden;overflow-y:hidden;height:0;text-align:right}.ec-all-day .ec-sidebar-title{visibility:visible;height:auto;padding:8px 0}.ec-content{display:flex}.ec-month .ec-content{flex-direction:column;height:100%}.ec-month .ec-uniform .ec-content{overflow:hidden}.ec-list .ec-content{flex-direction:column}.ec-resource{display:flex}.ec-days{display:flex;border-style:none none solid}.ec-days:last-child{border-bottom:none}.ec-month .ec-days,.ec-resource .ec-days{flex:1 0 auto}.ec-month .ec-uniform .ec-days{flex:1 1 0%;min-height:0}.ec-day{border-style:none none none solid}.ec-day.ec-today{background-color:#fcf8e3}.ec-day.ec-highlight{background-color:#e5f7fe}.ec-month .ec-body .ec-day{min-height:5em;position:relative}.ec-month .ec-uniform .ec-day{min-height:0}.ec-month .ec-day:first-child{border-left:none}.ec-day.ec-other-month .ec-day-head{opacity:.3}.ec-list .ec-day{flex:1 0 auto;background-color:#fff;border-style:solid none;padding:8px 14px;font-weight:bold;position:sticky;top:0;z-index:2}.ec-list .ec-day:first-child{border-top:none}.ec-month .ec-day-head{text-align:right;padding:4px 4px 3px}.ec-month .ec-day-foot{position:absolute;bottom:0;padding:2px;font-size:.85em}.ec-month .ec-day-foot a{cursor:pointer}.ec-list .ec-day-side{float:right}.ec-list .ec-no-events{text-align:center;padding:5em 0}.ec-events{margin:0 6px 0 0}.ec-week .ec-events,.ec-events.ec-preview{position:relative}.ec-event{display:flex;padding:2px;color:#fff;box-sizing:border-box;box-shadow:0 0 1px 0 #dadce0;background-color:#039be5;border-radius:3px;font-size:.85em;line-height:1.5;z-index:1}.ec-month .ec-event,.ec-all-day .ec-event{position:relative}.ec-week .ec-body .ec-event{position:absolute}.ec-list .ec-event{flex-direction:row;padding:8px 14px;color:inherit;background-color:rgba(0,0,0,0);border-radius:0}.ec-event.ec-preview{position:absolute;z-index:1000;width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.8}.ec-event.ec-pointer{color:inherit;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:absolute;z-index:0;box-shadow:none;display:none}.ec-day:hover .ec-event.ec-pointer{display:flex}.ec-event-body{display:flex;flex-direction:column;width:100%}.ec-month .ec-event-body,.ec-all-day .ec-event-body{flex-direction:row}.ec-event-tag{width:4px;border-radius:2px;margin-right:8px}.ec-event-time{overflow:hidden;white-space:nowrap;margin:0 0 1px 0;flex-shrink:0}.ec-month .ec-event-time{margin:0 3px 0 0;max-width:100%;text-overflow:ellipsis}.ec-event-title{overflow:hidden}.ec-month .ec-event-title,.ec-all-day .ec-event-title{min-height:1.5em;white-space:nowrap;text-overflow:ellipsis}.ec-week .ec-body .ec-event-title{position:sticky;top:0}.ec-list .ec-event-title{font-size:1rem}.ec-draggable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-ghost{opacity:.5;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-bg-events{position:relative}.ec-bg-event{position:absolute;background-color:#dadce0;opacity:.3;width:100%;z-index:1}.ec-hidden-times{visibility:hidden;overflow-y:hidden;height:0}.ec-time,.ec-line{height:24px}.ec-time{position:relative;line-height:24px;top:-12px;text-align:right;white-space:nowrap}.ec-lines{width:8px}.ec-line:not(:first-child):after{content:"";position:absolute;width:100%;border-bottom:1px solid #dadce0;pointer-events:none}.ec-body:not(.ec-compact) .ec-line:nth-child(even):after{border-bottom-style:dotted}.ec-popup{position:absolute;top:0;display:flex;flex-direction:column;width:110%;min-width:180px;z-index:1010;padding:8px 10px 14px;background-color:#fff;border-radius:6px;outline:1px solid rgba(0,0,0,0);box-shadow:0 1px 3px 0 rgba(60,64,67,.3),0 4px 8px 3px rgba(60,64,67,.15)}.ec-popup .ec-day-head{text-align:left;display:flex;justify-content:space-between}.ec-popup .ec-day-head a{cursor:pointer;font-size:1.5em;line-height:.8}.ec-popup .ec-events{margin:0;min-height:0;overflow:auto}.ec-extra{position:relative;height:100%;overflow:hidden;margin-left:-6.5px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-now-indicator{position:absolute;z-index:1005;width:100%;border-top:#ea4335 solid 2px;pointer-events:none}.ec-now-indicator:before{background:#ea4335;border-radius:50%;content:"";position:absolute;height:12px;margin-top:-7px;width:12px;pointer-events:none}.ec-resizer{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-month .ec-resizer,.ec-all-day .ec-resizer{top:0;right:0;bottom:0;width:50%;max-width:8px;cursor:ew-resize}.ec-week .ec-body .ec-resizer{left:0;right:0;bottom:0;height:50%;max-height:8px;cursor:ns-resize}.ec-dragging{cursor:pointer !important}.ec-resizing-y{cursor:ns-resize !important}.ec-resizing-x{cursor:ew-resize !important}