full_calendar 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.gitignore +49 -0
  4. data/Gemfile +6 -0
  5. data/Gemfile.lock +20 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +102 -0
  8. data/Rakefile +2 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/full_calendar.gemspec +28 -0
  12. data/lib/.DS_Store +0 -0
  13. data/lib/full_calendar/engine.rb +9 -0
  14. data/lib/full_calendar/version.rb +3 -0
  15. data/lib/full_calendar.rb +73 -0
  16. data/lib/generators/.DS_Store +0 -0
  17. data/lib/generators/fullcalendar/.DS_Store +0 -0
  18. data/lib/generators/fullcalendar/install_generator.rb +61 -0
  19. data/lib/generators/fullcalendar/templates/default.js.tt +13 -0
  20. data/lib/generators/fullcalendar/templates/default.scss.tt +7 -0
  21. data/vendor/.DS_Store +0 -0
  22. data/vendor/assets/.DS_Store +0 -0
  23. data/vendor/assets/javascripts/.DS_Store +0 -0
  24. data/vendor/assets/javascripts/fullcalendar/.DS_Store +0 -0
  25. data/vendor/assets/javascripts/fullcalendar/bootstrap/.DS_Store +0 -0
  26. data/vendor/assets/javascripts/fullcalendar/bootstrap/main.js +90 -0
  27. data/vendor/assets/javascripts/fullcalendar/bootstrap/main.min.js +20 -0
  28. data/vendor/assets/javascripts/fullcalendar/core/.DS_Store +0 -0
  29. data/vendor/assets/javascripts/fullcalendar/core/locales/af.js +30 -0
  30. data/vendor/assets/javascripts/fullcalendar/core/locales/ar-dz.js +31 -0
  31. data/vendor/assets/javascripts/fullcalendar/core/locales/ar-kw.js +31 -0
  32. data/vendor/assets/javascripts/fullcalendar/core/locales/ar-ly.js +31 -0
  33. data/vendor/assets/javascripts/fullcalendar/core/locales/ar-ma.js +31 -0
  34. data/vendor/assets/javascripts/fullcalendar/core/locales/ar-sa.js +31 -0
  35. data/vendor/assets/javascripts/fullcalendar/core/locales/ar-tn.js +31 -0
  36. data/vendor/assets/javascripts/fullcalendar/core/locales/ar.js +31 -0
  37. data/vendor/assets/javascripts/fullcalendar/core/locales/bg.js +31 -0
  38. data/vendor/assets/javascripts/fullcalendar/core/locales/bs.js +32 -0
  39. data/vendor/assets/javascripts/fullcalendar/core/locales/ca.js +30 -0
  40. data/vendor/assets/javascripts/fullcalendar/core/locales/cs.js +32 -0
  41. data/vendor/assets/javascripts/fullcalendar/core/locales/da.js +30 -0
  42. data/vendor/assets/javascripts/fullcalendar/core/locales/de.js +33 -0
  43. data/vendor/assets/javascripts/fullcalendar/core/locales/el.js +30 -0
  44. data/vendor/assets/javascripts/fullcalendar/core/locales/en-au.js +17 -0
  45. data/vendor/assets/javascripts/fullcalendar/core/locales/en-gb.js +17 -0
  46. data/vendor/assets/javascripts/fullcalendar/core/locales/en-nz.js +17 -0
  47. data/vendor/assets/javascripts/fullcalendar/core/locales/es-us.js +30 -0
  48. data/vendor/assets/javascripts/fullcalendar/core/locales/es.js +30 -0
  49. data/vendor/assets/javascripts/fullcalendar/core/locales/et.js +32 -0
  50. data/vendor/assets/javascripts/fullcalendar/core/locales/eu.js +30 -0
  51. data/vendor/assets/javascripts/fullcalendar/core/locales/fa.js +33 -0
  52. data/vendor/assets/javascripts/fullcalendar/core/locales/fi.js +30 -0
  53. data/vendor/assets/javascripts/fullcalendar/core/locales/fr-ca.js +27 -0
  54. data/vendor/assets/javascripts/fullcalendar/core/locales/fr-ch.js +31 -0
  55. data/vendor/assets/javascripts/fullcalendar/core/locales/fr.js +31 -0
  56. data/vendor/assets/javascripts/fullcalendar/core/locales/gl.js +30 -0
  57. data/vendor/assets/javascripts/fullcalendar/core/locales/he.js +27 -0
  58. data/vendor/assets/javascripts/fullcalendar/core/locales/hi.js +32 -0
  59. data/vendor/assets/javascripts/fullcalendar/core/locales/hr.js +32 -0
  60. data/vendor/assets/javascripts/fullcalendar/core/locales/hu.js +30 -0
  61. data/vendor/assets/javascripts/fullcalendar/core/locales/id.js +30 -0
  62. data/vendor/assets/javascripts/fullcalendar/core/locales/is.js +30 -0
  63. data/vendor/assets/javascripts/fullcalendar/core/locales/it.js +32 -0
  64. data/vendor/assets/javascripts/fullcalendar/core/locales/ja.js +28 -0
  65. data/vendor/assets/javascripts/fullcalendar/core/locales/ka.js +32 -0
  66. data/vendor/assets/javascripts/fullcalendar/core/locales/kk.js +32 -0
  67. data/vendor/assets/javascripts/fullcalendar/core/locales/ko.js +26 -0
  68. data/vendor/assets/javascripts/fullcalendar/core/locales/lb.js +30 -0
  69. data/vendor/assets/javascripts/fullcalendar/core/locales/lt.js +30 -0
  70. data/vendor/assets/javascripts/fullcalendar/core/locales/lv.js +32 -0
  71. data/vendor/assets/javascripts/fullcalendar/core/locales/mk.js +28 -0
  72. data/vendor/assets/javascripts/fullcalendar/core/locales/ms.js +32 -0
  73. data/vendor/assets/javascripts/fullcalendar/core/locales/nb.js +30 -0
  74. data/vendor/assets/javascripts/fullcalendar/core/locales/nl.js +30 -0
  75. data/vendor/assets/javascripts/fullcalendar/core/locales/nn.js +30 -0
  76. data/vendor/assets/javascripts/fullcalendar/core/locales/pl.js +30 -0
  77. data/vendor/assets/javascripts/fullcalendar/core/locales/pt-br.js +28 -0
  78. data/vendor/assets/javascripts/fullcalendar/core/locales/pt.js +30 -0
  79. data/vendor/assets/javascripts/fullcalendar/core/locales/ro.js +32 -0
  80. data/vendor/assets/javascripts/fullcalendar/core/locales/ru.js +32 -0
  81. data/vendor/assets/javascripts/fullcalendar/core/locales/sk.js +32 -0
  82. data/vendor/assets/javascripts/fullcalendar/core/locales/sl.js +30 -0
  83. data/vendor/assets/javascripts/fullcalendar/core/locales/sq.js +32 -0
  84. data/vendor/assets/javascripts/fullcalendar/core/locales/sr-cyrl.js +32 -0
  85. data/vendor/assets/javascripts/fullcalendar/core/locales/sr.js +32 -0
  86. data/vendor/assets/javascripts/fullcalendar/core/locales/sv.js +30 -0
  87. data/vendor/assets/javascripts/fullcalendar/core/locales/th.js +25 -0
  88. data/vendor/assets/javascripts/fullcalendar/core/locales/tr.js +30 -0
  89. data/vendor/assets/javascripts/fullcalendar/core/locales/uk.js +32 -0
  90. data/vendor/assets/javascripts/fullcalendar/core/locales/vi.js +32 -0
  91. data/vendor/assets/javascripts/fullcalendar/core/locales/zh-cn.js +33 -0
  92. data/vendor/assets/javascripts/fullcalendar/core/locales/zh-tw.js +26 -0
  93. data/vendor/assets/javascripts/fullcalendar/core/locales-all.js +1353 -0
  94. data/vendor/assets/javascripts/fullcalendar/core/locales-all.min.js +6 -0
  95. data/vendor/assets/javascripts/fullcalendar/core/main.js +8679 -0
  96. data/vendor/assets/javascripts/fullcalendar/core/main.min.js +9 -0
  97. data/vendor/assets/javascripts/fullcalendar/daygrid/.DS_Store +0 -0
  98. data/vendor/assets/javascripts/fullcalendar/daygrid/main.js +1639 -0
  99. data/vendor/assets/javascripts/fullcalendar/daygrid/main.min.js +20 -0
  100. data/vendor/assets/javascripts/fullcalendar/google-calendar/main.js +169 -0
  101. data/vendor/assets/javascripts/fullcalendar/google-calendar/main.min.js +20 -0
  102. data/vendor/assets/javascripts/fullcalendar/interaction/main.js +2143 -0
  103. data/vendor/assets/javascripts/fullcalendar/interaction/main.min.js +21 -0
  104. data/vendor/assets/javascripts/fullcalendar/list/.DS_Store +0 -0
  105. data/vendor/assets/javascripts/fullcalendar/list/main.js +341 -0
  106. data/vendor/assets/javascripts/fullcalendar/list/main.min.js +20 -0
  107. data/vendor/assets/javascripts/fullcalendar/luxon/main.js +162 -0
  108. data/vendor/assets/javascripts/fullcalendar/luxon/main.min.js +20 -0
  109. data/vendor/assets/javascripts/fullcalendar/moment/main.js +103 -0
  110. data/vendor/assets/javascripts/fullcalendar/moment/main.min.js +6 -0
  111. data/vendor/assets/javascripts/fullcalendar/moment-timezone/main.js +64 -0
  112. data/vendor/assets/javascripts/fullcalendar/moment-timezone/main.min.js +20 -0
  113. data/vendor/assets/javascripts/fullcalendar/rrule/main.js +127 -0
  114. data/vendor/assets/javascripts/fullcalendar/rrule/main.min.js +20 -0
  115. data/vendor/assets/javascripts/fullcalendar/timegrid/.DS_Store +0 -0
  116. data/vendor/assets/javascripts/fullcalendar/timegrid/main.js +1354 -0
  117. data/vendor/assets/javascripts/fullcalendar/timegrid/main.min.js +20 -0
  118. data/vendor/assets/stylesheets/.DS_Store +0 -0
  119. data/vendor/assets/stylesheets/fullcalendar/.DS_Store +0 -0
  120. data/vendor/assets/stylesheets/fullcalendar/bootstrap/.DS_Store +0 -0
  121. data/vendor/assets/stylesheets/fullcalendar/bootstrap/main.css +33 -0
  122. data/vendor/assets/stylesheets/fullcalendar/bootstrap/main.min.css +5 -0
  123. data/vendor/assets/stylesheets/fullcalendar/core/.DS_Store +0 -0
  124. data/vendor/assets/stylesheets/fullcalendar/core/main.css +900 -0
  125. data/vendor/assets/stylesheets/fullcalendar/core/main.min.css +5 -0
  126. data/vendor/assets/stylesheets/fullcalendar/daygrid/.DS_Store +0 -0
  127. data/vendor/assets/stylesheets/fullcalendar/daygrid/main.css +69 -0
  128. data/vendor/assets/stylesheets/fullcalendar/daygrid/main.min.css +5 -0
  129. data/vendor/assets/stylesheets/fullcalendar/list/.DS_Store +0 -0
  130. data/vendor/assets/stylesheets/fullcalendar/list/main.css +101 -0
  131. data/vendor/assets/stylesheets/fullcalendar/list/main.min.css +5 -0
  132. data/vendor/assets/stylesheets/fullcalendar/timegrid/.DS_Store +0 -0
  133. data/vendor/assets/stylesheets/fullcalendar/timegrid/main.css +266 -0
  134. data/vendor/assets/stylesheets/fullcalendar/timegrid/main.min.css +5 -0
  135. metadata +219 -0
@@ -0,0 +1,900 @@
1
+ /*!
2
+ FullCalendar Core Package v4.2.0
3
+ Docs & License: https://fullcalendar.io/
4
+ (c) 2019 Adam Shaw
5
+ */
6
+ .fc {
7
+ direction: ltr;
8
+ text-align: left; }
9
+
10
+ .fc-rtl {
11
+ text-align: right; }
12
+
13
+ body .fc {
14
+ /* extra precedence to overcome jqui */
15
+ font-size: 1em; }
16
+
17
+ /* Colors
18
+ --------------------------------------------------------------------------------------------------*/
19
+ .fc-highlight {
20
+ /* when user is selecting cells */
21
+ background: #bce8f1;
22
+ opacity: .3; }
23
+
24
+ .fc-bgevent {
25
+ /* default look for background events */
26
+ background: #8fdf82;
27
+ opacity: .3; }
28
+
29
+ .fc-nonbusiness {
30
+ /* default look for non-business-hours areas */
31
+ /* will inherit .fc-bgevent's styles */
32
+ background: #d7d7d7; }
33
+
34
+ /* Popover
35
+ --------------------------------------------------------------------------------------------------*/
36
+ .fc-popover {
37
+ position: absolute;
38
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); }
39
+
40
+ .fc-popover .fc-header {
41
+ /* TODO: be more consistent with fc-head/fc-body */
42
+ display: flex;
43
+ flex-direction: row;
44
+ justify-content: space-between;
45
+ align-items: center;
46
+ padding: 2px 4px; }
47
+
48
+ .fc-rtl .fc-popover .fc-header {
49
+ flex-direction: row-reverse; }
50
+
51
+ .fc-popover .fc-header .fc-title {
52
+ margin: 0 2px; }
53
+
54
+ .fc-popover .fc-header .fc-close {
55
+ cursor: pointer;
56
+ opacity: 0.65;
57
+ font-size: 1.1em; }
58
+
59
+ /* Misc Reusable Components
60
+ --------------------------------------------------------------------------------------------------*/
61
+ .fc-divider {
62
+ border-style: solid;
63
+ border-width: 1px; }
64
+
65
+ hr.fc-divider {
66
+ height: 0;
67
+ margin: 0;
68
+ padding: 0 0 2px;
69
+ /* height is unreliable across browsers, so use padding */
70
+ border-width: 1px 0; }
71
+
72
+ .fc-bg,
73
+ .fc-bgevent-skeleton,
74
+ .fc-highlight-skeleton,
75
+ .fc-mirror-skeleton {
76
+ /* these element should always cling to top-left/right corners */
77
+ position: absolute;
78
+ top: 0;
79
+ left: 0;
80
+ right: 0; }
81
+
82
+ .fc-bg {
83
+ bottom: 0;
84
+ /* strech bg to bottom edge */ }
85
+
86
+ .fc-bg table {
87
+ height: 100%;
88
+ /* strech bg to bottom edge */ }
89
+
90
+ /* Tables
91
+ --------------------------------------------------------------------------------------------------*/
92
+ .fc table {
93
+ width: 100%;
94
+ box-sizing: border-box;
95
+ /* fix scrollbar issue in firefox */
96
+ table-layout: fixed;
97
+ border-collapse: collapse;
98
+ border-spacing: 0;
99
+ font-size: 1em;
100
+ /* normalize cross-browser */ }
101
+
102
+ .fc th {
103
+ text-align: center; }
104
+
105
+ .fc th,
106
+ .fc td {
107
+ border-style: solid;
108
+ border-width: 1px;
109
+ padding: 0;
110
+ vertical-align: top; }
111
+
112
+ .fc td.fc-today {
113
+ border-style: double;
114
+ /* overcome neighboring borders */ }
115
+
116
+ /* Internal Nav Links
117
+ --------------------------------------------------------------------------------------------------*/
118
+ a[data-goto] {
119
+ cursor: pointer; }
120
+
121
+ a[data-goto]:hover {
122
+ text-decoration: underline; }
123
+
124
+ /* Fake Table Rows
125
+ --------------------------------------------------------------------------------------------------*/
126
+ .fc .fc-row {
127
+ /* extra precedence to overcome themes forcing a 1px border */
128
+ /* no visible border by default. but make available if need be (scrollbar width compensation) */
129
+ border-style: solid;
130
+ border-width: 0; }
131
+
132
+ .fc-row table {
133
+ /* don't put left/right border on anything within a fake row.
134
+ the outer tbody will worry about this */
135
+ border-left: 0 hidden transparent;
136
+ border-right: 0 hidden transparent;
137
+ /* no bottom borders on rows */
138
+ border-bottom: 0 hidden transparent; }
139
+
140
+ .fc-row:first-child table {
141
+ border-top: 0 hidden transparent;
142
+ /* no top border on first row */ }
143
+
144
+ /* Day Row (used within the header and the DayGrid)
145
+ --------------------------------------------------------------------------------------------------*/
146
+ .fc-row {
147
+ position: relative; }
148
+
149
+ .fc-row .fc-bg {
150
+ z-index: 1; }
151
+
152
+ /* highlighting cells & background event skeleton */
153
+ .fc-row .fc-bgevent-skeleton,
154
+ .fc-row .fc-highlight-skeleton {
155
+ bottom: 0;
156
+ /* stretch skeleton to bottom of row */ }
157
+
158
+ .fc-row .fc-bgevent-skeleton table,
159
+ .fc-row .fc-highlight-skeleton table {
160
+ height: 100%;
161
+ /* stretch skeleton to bottom of row */ }
162
+
163
+ .fc-row .fc-highlight-skeleton td,
164
+ .fc-row .fc-bgevent-skeleton td {
165
+ border-color: transparent; }
166
+
167
+ .fc-row .fc-bgevent-skeleton {
168
+ z-index: 2; }
169
+
170
+ .fc-row .fc-highlight-skeleton {
171
+ z-index: 3; }
172
+
173
+ /*
174
+ row content (which contains day/week numbers and events) as well as "mirror" (which contains
175
+ temporary rendered events).
176
+ */
177
+ .fc-row .fc-content-skeleton {
178
+ position: relative;
179
+ z-index: 4;
180
+ padding-bottom: 2px;
181
+ /* matches the space above the events */ }
182
+
183
+ .fc-row .fc-mirror-skeleton {
184
+ z-index: 5; }
185
+
186
+ .fc .fc-row .fc-content-skeleton table,
187
+ .fc .fc-row .fc-content-skeleton td,
188
+ .fc .fc-row .fc-mirror-skeleton td {
189
+ /* see-through to the background below */
190
+ /* extra precedence to prevent theme-provided backgrounds */
191
+ background: none;
192
+ /* in case <td>s are globally styled */
193
+ border-color: transparent; }
194
+
195
+ .fc-row .fc-content-skeleton td,
196
+ .fc-row .fc-mirror-skeleton td {
197
+ /* don't put a border between events and/or the day number */
198
+ border-bottom: 0; }
199
+
200
+ .fc-row .fc-content-skeleton tbody td,
201
+ .fc-row .fc-mirror-skeleton tbody td {
202
+ /* don't put a border between event cells */
203
+ border-top: 0; }
204
+
205
+ /* Scrolling Container
206
+ --------------------------------------------------------------------------------------------------*/
207
+ .fc-scroller {
208
+ -webkit-overflow-scrolling: touch; }
209
+
210
+ /* TODO: move to timegrid/daygrid */
211
+ .fc-scroller > .fc-day-grid,
212
+ .fc-scroller > .fc-time-grid {
213
+ position: relative;
214
+ /* re-scope all positions */
215
+ width: 100%;
216
+ /* hack to force re-sizing this inner element when scrollbars appear/disappear */ }
217
+
218
+ /* Global Event Styles
219
+ --------------------------------------------------------------------------------------------------*/
220
+ .fc-event {
221
+ position: relative;
222
+ /* for resize handle and other inner positioning */
223
+ display: block;
224
+ /* make the <a> tag block */
225
+ font-size: .85em;
226
+ line-height: 1.4;
227
+ border-radius: 3px;
228
+ border: 1px solid #3788d8; }
229
+
230
+ .fc-event,
231
+ .fc-event-dot {
232
+ background-color: #3788d8;
233
+ /* default BACKGROUND color */ }
234
+
235
+ .fc-event,
236
+ .fc-event:hover {
237
+ color: #fff;
238
+ /* default TEXT color */
239
+ text-decoration: none;
240
+ /* if <a> has an href */ }
241
+
242
+ .fc-event[href],
243
+ .fc-event.fc-draggable {
244
+ cursor: pointer;
245
+ /* give events with links and draggable events a hand mouse pointer */ }
246
+
247
+ .fc-not-allowed,
248
+ .fc-not-allowed .fc-event {
249
+ /* to override an event's custom cursor */
250
+ cursor: not-allowed; }
251
+
252
+ .fc-event .fc-content {
253
+ position: relative;
254
+ z-index: 2; }
255
+
256
+ /* resizer (cursor AND touch devices) */
257
+ .fc-event .fc-resizer {
258
+ position: absolute;
259
+ z-index: 4; }
260
+
261
+ /* resizer (touch devices) */
262
+ .fc-event .fc-resizer {
263
+ display: none; }
264
+
265
+ .fc-event.fc-allow-mouse-resize .fc-resizer,
266
+ .fc-event.fc-selected .fc-resizer {
267
+ /* only show when hovering or selected (with touch) */
268
+ display: block; }
269
+
270
+ /* hit area */
271
+ .fc-event.fc-selected .fc-resizer:before {
272
+ /* 40x40 touch area */
273
+ content: "";
274
+ position: absolute;
275
+ z-index: 9999;
276
+ /* user of this util can scope within a lower z-index */
277
+ top: 50%;
278
+ left: 50%;
279
+ width: 40px;
280
+ height: 40px;
281
+ margin-left: -20px;
282
+ margin-top: -20px; }
283
+
284
+ /* Event Selection (only for touch devices)
285
+ --------------------------------------------------------------------------------------------------*/
286
+ .fc-event.fc-selected {
287
+ z-index: 9999 !important;
288
+ /* overcomes inline z-index */
289
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); }
290
+
291
+ .fc-event.fc-selected:after {
292
+ content: "";
293
+ position: absolute;
294
+ z-index: 1;
295
+ /* same z-index as fc-bg, behind text */
296
+ /* overcome the borders */
297
+ top: -1px;
298
+ right: -1px;
299
+ bottom: -1px;
300
+ left: -1px;
301
+ /* darkening effect */
302
+ background: #000;
303
+ opacity: .25; }
304
+
305
+ /* Event Dragging
306
+ --------------------------------------------------------------------------------------------------*/
307
+ .fc-event.fc-dragging.fc-selected {
308
+ box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3); }
309
+
310
+ .fc-event.fc-dragging:not(.fc-selected) {
311
+ opacity: .75; }
312
+
313
+ /* Horizontal Events
314
+ --------------------------------------------------------------------------------------------------*/
315
+ /* bigger touch area when selected */
316
+ .fc-h-event.fc-selected:before {
317
+ content: "";
318
+ position: absolute;
319
+ z-index: 3;
320
+ /* below resizers */
321
+ top: -10px;
322
+ bottom: -10px;
323
+ left: 0;
324
+ right: 0; }
325
+
326
+ /* events that are continuing to/from another week. kill rounded corners and butt up against edge */
327
+ .fc-ltr .fc-h-event.fc-not-start,
328
+ .fc-rtl .fc-h-event.fc-not-end {
329
+ margin-left: 0;
330
+ border-left-width: 0;
331
+ padding-left: 1px;
332
+ /* replace the border with padding */
333
+ border-top-left-radius: 0;
334
+ border-bottom-left-radius: 0; }
335
+
336
+ .fc-ltr .fc-h-event.fc-not-end,
337
+ .fc-rtl .fc-h-event.fc-not-start {
338
+ margin-right: 0;
339
+ border-right-width: 0;
340
+ padding-right: 1px;
341
+ /* replace the border with padding */
342
+ border-top-right-radius: 0;
343
+ border-bottom-right-radius: 0; }
344
+
345
+ /* resizer (cursor AND touch devices) */
346
+ /* left resizer */
347
+ .fc-ltr .fc-h-event .fc-start-resizer,
348
+ .fc-rtl .fc-h-event .fc-end-resizer {
349
+ cursor: w-resize;
350
+ left: -1px;
351
+ /* overcome border */ }
352
+
353
+ /* right resizer */
354
+ .fc-ltr .fc-h-event .fc-end-resizer,
355
+ .fc-rtl .fc-h-event .fc-start-resizer {
356
+ cursor: e-resize;
357
+ right: -1px;
358
+ /* overcome border */ }
359
+
360
+ /* resizer (mouse devices) */
361
+ .fc-h-event.fc-allow-mouse-resize .fc-resizer {
362
+ width: 7px;
363
+ top: -1px;
364
+ /* overcome top border */
365
+ bottom: -1px;
366
+ /* overcome bottom border */ }
367
+
368
+ /* resizer (touch devices) */
369
+ .fc-h-event.fc-selected .fc-resizer {
370
+ /* 8x8 little dot */
371
+ border-radius: 4px;
372
+ border-width: 1px;
373
+ width: 6px;
374
+ height: 6px;
375
+ border-style: solid;
376
+ border-color: inherit;
377
+ background: #fff;
378
+ /* vertically center */
379
+ top: 50%;
380
+ margin-top: -4px; }
381
+
382
+ /* left resizer */
383
+ .fc-ltr .fc-h-event.fc-selected .fc-start-resizer,
384
+ .fc-rtl .fc-h-event.fc-selected .fc-end-resizer {
385
+ margin-left: -4px;
386
+ /* centers the 8x8 dot on the left edge */ }
387
+
388
+ /* right resizer */
389
+ .fc-ltr .fc-h-event.fc-selected .fc-end-resizer,
390
+ .fc-rtl .fc-h-event.fc-selected .fc-start-resizer {
391
+ margin-right: -4px;
392
+ /* centers the 8x8 dot on the right edge */ }
393
+
394
+ /* DayGrid events
395
+ ----------------------------------------------------------------------------------------------------
396
+ We use the full "fc-day-grid-event" class instead of using descendants because the event won't
397
+ be a descendant of the grid when it is being dragged.
398
+ */
399
+ .fc-day-grid-event {
400
+ margin: 1px 2px 0;
401
+ /* spacing between events and edges */
402
+ padding: 0 1px; }
403
+
404
+ tr:first-child > td > .fc-day-grid-event {
405
+ margin-top: 2px;
406
+ /* a little bit more space before the first event */ }
407
+
408
+ .fc-mirror-skeleton tr:first-child > td > .fc-day-grid-event {
409
+ margin-top: 0;
410
+ /* except for mirror skeleton */ }
411
+
412
+ .fc-day-grid-event .fc-content {
413
+ /* force events to be one-line tall */
414
+ white-space: nowrap;
415
+ overflow: hidden; }
416
+
417
+ .fc-day-grid-event .fc-time {
418
+ font-weight: bold; }
419
+
420
+ /* resizer (cursor devices) */
421
+ /* left resizer */
422
+ .fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,
423
+ .fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer {
424
+ margin-left: -2px;
425
+ /* to the day cell's edge */ }
426
+
427
+ /* right resizer */
428
+ .fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,
429
+ .fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer {
430
+ margin-right: -2px;
431
+ /* to the day cell's edge */ }
432
+
433
+ /* Event Limiting
434
+ --------------------------------------------------------------------------------------------------*/
435
+ /* "more" link that represents hidden events */
436
+ a.fc-more {
437
+ margin: 1px 3px;
438
+ font-size: .85em;
439
+ cursor: pointer;
440
+ text-decoration: none; }
441
+
442
+ a.fc-more:hover {
443
+ text-decoration: underline; }
444
+
445
+ .fc-limited {
446
+ /* rows and cells that are hidden because of a "more" link */
447
+ display: none; }
448
+
449
+ /* popover that appears when "more" link is clicked */
450
+ .fc-day-grid .fc-row {
451
+ z-index: 1;
452
+ /* make the "more" popover one higher than this */ }
453
+
454
+ .fc-more-popover {
455
+ z-index: 2;
456
+ width: 220px; }
457
+
458
+ .fc-more-popover .fc-event-container {
459
+ padding: 10px; }
460
+
461
+ /* Now Indicator
462
+ --------------------------------------------------------------------------------------------------*/
463
+ .fc-now-indicator {
464
+ position: absolute;
465
+ border: 0 solid red; }
466
+
467
+ /* Utilities
468
+ --------------------------------------------------------------------------------------------------*/
469
+ .fc-unselectable {
470
+ -webkit-user-select: none;
471
+ -khtml-user-select: none;
472
+ -moz-user-select: none;
473
+ -ms-user-select: none;
474
+ user-select: none;
475
+ -webkit-touch-callout: none;
476
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
477
+
478
+ /*
479
+ TODO: more distinction between this file and common.css
480
+ */
481
+ /* Colors
482
+ --------------------------------------------------------------------------------------------------*/
483
+ .fc-unthemed th,
484
+ .fc-unthemed td,
485
+ .fc-unthemed thead,
486
+ .fc-unthemed tbody,
487
+ .fc-unthemed .fc-divider,
488
+ .fc-unthemed .fc-row,
489
+ .fc-unthemed .fc-content,
490
+ .fc-unthemed .fc-popover,
491
+ .fc-unthemed .fc-list-view,
492
+ .fc-unthemed .fc-list-heading td {
493
+ border-color: #ddd; }
494
+
495
+ .fc-unthemed .fc-popover {
496
+ background-color: #fff; }
497
+
498
+ .fc-unthemed .fc-divider,
499
+ .fc-unthemed .fc-popover .fc-header,
500
+ .fc-unthemed .fc-list-heading td {
501
+ background: #eee; }
502
+
503
+ .fc-unthemed td.fc-today {
504
+ background: #fcf8e3; }
505
+
506
+ .fc-unthemed .fc-disabled-day {
507
+ background: #d7d7d7;
508
+ opacity: .3; }
509
+
510
+ /* Icons
511
+ --------------------------------------------------------------------------------------------------
512
+ from https://feathericons.com/ and built with IcoMoon
513
+ */
514
+ @font-face {
515
+ font-family: 'fcicons';
516
+ src: url("data:application/x-font-ttf;charset=utf-8;base64,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") format("truetype");
517
+ font-weight: normal;
518
+ font-style: normal; }
519
+ .fc-icon {
520
+ /* use !important to prevent issues with browser extensions that change fonts */
521
+ font-family: 'fcicons' !important;
522
+ speak: none;
523
+ font-style: normal;
524
+ font-weight: normal;
525
+ font-variant: normal;
526
+ text-transform: none;
527
+ line-height: 1;
528
+ /* Better Font Rendering =========== */
529
+ -webkit-font-smoothing: antialiased;
530
+ -moz-osx-font-smoothing: grayscale; }
531
+
532
+ .fc-icon-chevron-left:before {
533
+ content: "\e900"; }
534
+
535
+ .fc-icon-chevron-right:before {
536
+ content: "\e901"; }
537
+
538
+ .fc-icon-chevrons-left:before {
539
+ content: "\e902"; }
540
+
541
+ .fc-icon-chevrons-right:before {
542
+ content: "\e903"; }
543
+
544
+ .fc-icon-minus-square:before {
545
+ content: "\e904"; }
546
+
547
+ .fc-icon-plus-square:before {
548
+ content: "\e905"; }
549
+
550
+ .fc-icon-x:before {
551
+ content: "\e906"; }
552
+
553
+ .fc-icon {
554
+ display: inline-block;
555
+ width: 1em;
556
+ height: 1em;
557
+ text-align: center; }
558
+
559
+ /* Buttons
560
+ --------------------------------------------------------------------------------------------------
561
+ Lots taken from Flatly (MIT): https://bootswatch.com/4/flatly/bootstrap.css
562
+ */
563
+ /* reset */
564
+ .fc-button {
565
+ border-radius: 0;
566
+ overflow: visible;
567
+ text-transform: none;
568
+ margin: 0;
569
+ font-family: inherit;
570
+ font-size: inherit;
571
+ line-height: inherit; }
572
+
573
+ .fc-button:focus {
574
+ outline: 1px dotted;
575
+ outline: 5px auto -webkit-focus-ring-color; }
576
+
577
+ .fc-button {
578
+ -webkit-appearance: button; }
579
+
580
+ .fc-button:not(:disabled) {
581
+ cursor: pointer; }
582
+
583
+ .fc-button::-moz-focus-inner {
584
+ padding: 0;
585
+ border-style: none; }
586
+
587
+ /* theme */
588
+ .fc-button {
589
+ display: inline-block;
590
+ font-weight: 400;
591
+ color: #212529;
592
+ text-align: center;
593
+ vertical-align: middle;
594
+ -webkit-user-select: none;
595
+ -moz-user-select: none;
596
+ -ms-user-select: none;
597
+ user-select: none;
598
+ background-color: transparent;
599
+ border: 1px solid transparent;
600
+ padding: 0.4em 0.65em;
601
+ font-size: 1em;
602
+ line-height: 1.5;
603
+ border-radius: 0.25em; }
604
+
605
+ .fc-button:hover {
606
+ color: #212529;
607
+ text-decoration: none; }
608
+
609
+ .fc-button:focus {
610
+ outline: 0;
611
+ -webkit-box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25);
612
+ box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25); }
613
+
614
+ .fc-button:disabled {
615
+ opacity: 0.65; }
616
+
617
+ /* "primary" coloring */
618
+ .fc-button-primary {
619
+ color: #fff;
620
+ background-color: #2C3E50;
621
+ border-color: #2C3E50; }
622
+
623
+ .fc-button-primary:hover {
624
+ color: #fff;
625
+ background-color: #1e2b37;
626
+ border-color: #1a252f; }
627
+
628
+ .fc-button-primary:focus {
629
+ -webkit-box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5);
630
+ box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); }
631
+
632
+ .fc-button-primary:disabled {
633
+ color: #fff;
634
+ background-color: #2C3E50;
635
+ border-color: #2C3E50; }
636
+
637
+ .fc-button-primary:not(:disabled):active,
638
+ .fc-button-primary:not(:disabled).fc-button-active {
639
+ color: #fff;
640
+ background-color: #1a252f;
641
+ border-color: #151e27; }
642
+
643
+ .fc-button-primary:not(:disabled):active:focus,
644
+ .fc-button-primary:not(:disabled).fc-button-active:focus {
645
+ -webkit-box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5);
646
+ box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); }
647
+
648
+ /* icons within buttons */
649
+ .fc-button .fc-icon {
650
+ vertical-align: middle;
651
+ font-size: 1.5em; }
652
+
653
+ /* Buttons Groups
654
+ --------------------------------------------------------------------------------------------------*/
655
+ .fc-button-group {
656
+ position: relative;
657
+ display: -webkit-inline-box;
658
+ display: -ms-inline-flexbox;
659
+ display: inline-flex;
660
+ vertical-align: middle; }
661
+
662
+ .fc-button-group > .fc-button {
663
+ position: relative;
664
+ -webkit-box-flex: 1;
665
+ -ms-flex: 1 1 auto;
666
+ flex: 1 1 auto; }
667
+
668
+ .fc-button-group > .fc-button:hover {
669
+ z-index: 1; }
670
+
671
+ .fc-button-group > .fc-button:focus,
672
+ .fc-button-group > .fc-button:active,
673
+ .fc-button-group > .fc-button.fc-button-active {
674
+ z-index: 1; }
675
+
676
+ .fc-button-group > .fc-button:not(:first-child) {
677
+ margin-left: -1px; }
678
+
679
+ .fc-button-group > .fc-button:not(:last-child) {
680
+ border-top-right-radius: 0;
681
+ border-bottom-right-radius: 0; }
682
+
683
+ .fc-button-group > .fc-button:not(:first-child) {
684
+ border-top-left-radius: 0;
685
+ border-bottom-left-radius: 0; }
686
+
687
+ /* Popover
688
+ --------------------------------------------------------------------------------------------------*/
689
+ .fc-unthemed .fc-popover {
690
+ border-width: 1px;
691
+ border-style: solid; }
692
+
693
+ /* List View
694
+ --------------------------------------------------------------------------------------------------*/
695
+ .fc-unthemed .fc-list-item:hover td {
696
+ background-color: #f5f5f5; }
697
+
698
+ /* Toolbar
699
+ --------------------------------------------------------------------------------------------------*/
700
+ .fc-toolbar {
701
+ display: flex;
702
+ justify-content: space-between;
703
+ align-items: center; }
704
+
705
+ .fc-toolbar.fc-header-toolbar {
706
+ margin-bottom: 1.5em; }
707
+
708
+ .fc-toolbar.fc-footer-toolbar {
709
+ margin-top: 1.5em; }
710
+
711
+ /* inner content */
712
+ .fc-toolbar > * > :not(:first-child) {
713
+ margin-left: .75em; }
714
+
715
+ .fc-toolbar h2 {
716
+ font-size: 1.75em;
717
+ margin: 0; }
718
+
719
+ /* View Structure
720
+ --------------------------------------------------------------------------------------------------*/
721
+ .fc-view-container {
722
+ position: relative; }
723
+
724
+ /* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */
725
+ /* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */
726
+ .fc-view-container *,
727
+ .fc-view-container *:before,
728
+ .fc-view-container *:after {
729
+ -webkit-box-sizing: content-box;
730
+ -moz-box-sizing: content-box;
731
+ box-sizing: content-box; }
732
+
733
+ .fc-view,
734
+ .fc-view > table {
735
+ /* so dragged elements can be above the view's main element */
736
+ position: relative;
737
+ z-index: 1; }
738
+
739
+ @media print {
740
+ .fc {
741
+ max-width: 100% !important; }
742
+
743
+ /* Global Event Restyling
744
+ --------------------------------------------------------------------------------------------------*/
745
+ .fc-event {
746
+ background: #fff !important;
747
+ color: #000 !important;
748
+ page-break-inside: avoid; }
749
+
750
+ .fc-event .fc-resizer {
751
+ display: none; }
752
+
753
+ /* Table & Day-Row Restyling
754
+ --------------------------------------------------------------------------------------------------*/
755
+ .fc th,
756
+ .fc td,
757
+ .fc hr,
758
+ .fc thead,
759
+ .fc tbody,
760
+ .fc-row {
761
+ border-color: #ccc !important;
762
+ background: #fff !important; }
763
+
764
+ /* kill the overlaid, absolutely-positioned components */
765
+ /* common... */
766
+ .fc-bg,
767
+ .fc-bgevent-skeleton,
768
+ .fc-highlight-skeleton,
769
+ .fc-mirror-skeleton,
770
+ .fc-bgevent-container,
771
+ .fc-business-container,
772
+ .fc-highlight-container,
773
+ .fc-mirror-container {
774
+ display: none; }
775
+
776
+ /* don't force a min-height on rows (for DayGrid) */
777
+ .fc tbody .fc-row {
778
+ height: auto !important;
779
+ /* undo height that JS set in distributeHeight */
780
+ min-height: 0 !important;
781
+ /* undo the min-height from each view's specific stylesheet */ }
782
+
783
+ .fc tbody .fc-row .fc-content-skeleton {
784
+ position: static;
785
+ /* undo .fc-rigid */
786
+ padding-bottom: 0 !important;
787
+ /* use a more border-friendly method for this... */ }
788
+
789
+ .fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td {
790
+ /* only works in newer browsers */
791
+ padding-bottom: 1em;
792
+ /* ...gives space within the skeleton. also ensures min height in a way */ }
793
+
794
+ .fc tbody .fc-row .fc-content-skeleton table {
795
+ /* provides a min-height for the row, but only effective for IE, which exaggerates this value,
796
+ making it look more like 3em. for other browers, it will already be this tall */
797
+ height: 1em; }
798
+
799
+ /* Undo month-view event limiting. Display all events and hide the "more" links
800
+ --------------------------------------------------------------------------------------------------*/
801
+ .fc-more-cell,
802
+ .fc-more {
803
+ display: none !important; }
804
+
805
+ .fc tr.fc-limited {
806
+ display: table-row !important; }
807
+
808
+ .fc td.fc-limited {
809
+ display: table-cell !important; }
810
+
811
+ .fc-popover {
812
+ display: none;
813
+ /* never display the "more.." popover in print mode */ }
814
+
815
+ /* TimeGrid Restyling
816
+ --------------------------------------------------------------------------------------------------*/
817
+ /* undo the min-height 100% trick used to fill the container's height */
818
+ .fc-time-grid {
819
+ min-height: 0 !important; }
820
+
821
+ /* don't display the side axis at all ("all-day" and time cells) */
822
+ .fc-timeGrid-view .fc-axis {
823
+ display: none; }
824
+
825
+ /* don't display the horizontal lines */
826
+ .fc-slats,
827
+ .fc-time-grid hr {
828
+ /* this hr is used when height is underused and needs to be filled */
829
+ display: none !important;
830
+ /* important overrides inline declaration */ }
831
+
832
+ /* let the container that holds the events be naturally positioned and create real height */
833
+ .fc-time-grid .fc-content-skeleton {
834
+ position: static; }
835
+
836
+ /* in case there are no events, we still want some height */
837
+ .fc-time-grid .fc-content-skeleton table {
838
+ height: 4em; }
839
+
840
+ /* kill the horizontal spacing made by the event container. event margins will be done below */
841
+ .fc-time-grid .fc-event-container {
842
+ margin: 0 !important; }
843
+
844
+ /* TimeGrid *Event* Restyling
845
+ --------------------------------------------------------------------------------------------------*/
846
+ /* naturally position events, vertically stacking them */
847
+ .fc-time-grid .fc-event {
848
+ position: static !important;
849
+ margin: 3px 2px !important; }
850
+
851
+ /* for events that continue to a future day, give the bottom border back */
852
+ .fc-time-grid .fc-event.fc-not-end {
853
+ border-bottom-width: 1px !important; }
854
+
855
+ /* indicate the event continues via "..." text */
856
+ .fc-time-grid .fc-event.fc-not-end:after {
857
+ content: "..."; }
858
+
859
+ /* for events that are continuations from previous days, give the top border back */
860
+ .fc-time-grid .fc-event.fc-not-start {
861
+ border-top-width: 1px !important; }
862
+
863
+ /* indicate the event is a continuation via "..." text */
864
+ .fc-time-grid .fc-event.fc-not-start:before {
865
+ content: "..."; }
866
+
867
+ /* time */
868
+ /* undo a previous declaration and let the time text span to a second line */
869
+ .fc-time-grid .fc-event .fc-time {
870
+ white-space: normal !important; }
871
+
872
+ /* hide the the time that is normally displayed... */
873
+ .fc-time-grid .fc-event .fc-time span {
874
+ display: none; }
875
+
876
+ /* ...replace it with a more verbose version (includes AM/PM) stored in an html attribute */
877
+ .fc-time-grid .fc-event .fc-time:after {
878
+ content: attr(data-full); }
879
+
880
+ /* Vertical Scroller & Containers
881
+ --------------------------------------------------------------------------------------------------*/
882
+ /* kill the scrollbars and allow natural height */
883
+ .fc-scroller,
884
+ .fc-day-grid-container,
885
+ .fc-time-grid-container {
886
+ /* */
887
+ overflow: visible !important;
888
+ height: auto !important; }
889
+
890
+ /* kill the horizontal border/padding used to compensate for scrollbars */
891
+ .fc-row {
892
+ border: 0 !important;
893
+ margin: 0 !important; }
894
+
895
+ /* Button Controls
896
+ --------------------------------------------------------------------------------------------------*/
897
+ .fc-button-group,
898
+ .fc button {
899
+ display: none;
900
+ /* don't display any button-related controls */ } }