scheduler.css 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463
  1. /*!
  2. * FullCalendar Scheduler v1.9.4
  3. * Docs & License: https://fullcalendar.io/scheduler/
  4. * (c) 2018 Adam Shaw
  5. */
  6. /* TODO: break this file up */
  7. /* Scroller
  8. --------------------------------------------------------------------------------------------------*/
  9. .fc-scroller-clip {
  10. overflow: hidden;
  11. /* for clipping scrollbars */
  12. position: relative;
  13. /* so things like scrollfollowers can attach to this */ }
  14. /* supresses rendering of native scrollbars */
  15. /* on .fc-scroller */
  16. .fc-no-scrollbars {
  17. background: rgba(255, 255, 255, 0);
  18. /* hack for dynamic DOM nodes (in Chrome OSX at least) */ }
  19. .fc-no-scrollbars::-webkit-scrollbar {
  20. width: 0;
  21. height: 0; }
  22. .fc-scroller-canvas {
  23. position: relative;
  24. /* origin for bg */
  25. box-sizing: border-box;
  26. /* so that padding (for gutter) will be part of height */
  27. min-height: 100%; }
  28. .fc-scroller-canvas > .fc-bg {
  29. z-index: 1;
  30. /* make default? */ }
  31. .fc-scroller-canvas > .fc-content {
  32. z-index: 2;
  33. /* make default? */
  34. position: relative;
  35. /* origin for inner content */
  36. border-style: solid;
  37. border-width: 0; }
  38. /* for themed, hard to get the border-color, so just forget it (REVISIT) */
  39. .ui-widget .fc-scroller-canvas > .fc-content {
  40. border-color: transparent; }
  41. .fc-scroller-canvas.fc-gutter-left > .fc-content {
  42. border-left-width: 1px;
  43. margin-left: -1px; }
  44. .fc-scroller-canvas.fc-gutter-right > .fc-content {
  45. border-right-width: 1px;
  46. margin-right: -1px; }
  47. .fc-scroller-canvas.fc-gutter-top > .fc-content {
  48. border-top-width: 1px;
  49. margin-top: -1px; }
  50. /* content is responsible for bottom border */
  51. /* View Structure
  52. --------------------------------------------------------------------------------------------------*/
  53. .fc-rtl .fc-timeline {
  54. direction: rtl; }
  55. .fc-timeline .fc-divider {
  56. width: 3px;
  57. border-style: double;
  58. /* overcome neighboring borders */ }
  59. .fc-timeline .fc-head > tr > .fc-divider {
  60. border-bottom: 0; }
  61. .fc-timeline .fc-body > tr > .fc-divider {
  62. border-top: 0; }
  63. .fc-timeline .fc-body .fc-divider.ui-widget-header {
  64. background-image: none; }
  65. .fc-scrolled .fc-head .fc-scroller {
  66. z-index: 2;
  67. /* so drop shadow will go above body panes */ }
  68. .fc-timeline.fc-scrolled .fc-head .fc-scroller {
  69. box-shadow: 0 3px 4px rgba(0, 0, 0, 0.075); }
  70. .fc-timeline .fc-body .fc-scroller {
  71. z-index: 1; }
  72. /*
  73. on most tables that expand to the edges, kill the outer border,
  74. because the container elements take care of it.
  75. example tables:
  76. .fc-scroller-canvas .fc-content table
  77. .fc-scroller-canvas .fc-bg .fc-slats table
  78. */
  79. .fc-timeline .fc-scroller-canvas > div > table,
  80. .fc-timeline .fc-scroller-canvas > div > div > table {
  81. border-style: hidden; }
  82. /*
  83. for resource rows (in both the spreadsheet and timeline areas),
  84. undo previous rule in order to always show last border.
  85. */
  86. .fc-timeline .fc-scroller-canvas > .fc-content > .fc-rows > table {
  87. border-bottom-style: none; }
  88. /* Table Cell Common
  89. --------------------------------------------------------------------------------------------------*/
  90. .fc-timeline th,
  91. .fc-timeline td {
  92. white-space: nowrap; }
  93. .fc-timeline .fc-cell-content {
  94. overflow: hidden; }
  95. .fc-timeline .fc-cell-text {
  96. padding-left: 4px;
  97. padding-right: 4px; }
  98. .fc-timeline .fc-col-resizer {
  99. cursor: col-resize; }
  100. /*
  101. Cells at the start of a week
  102. TODO: figure out better styling
  103. .fc-ltr .fc-timeline .fc-em-cell div {
  104. border-left: 3px solid #eee;
  105. height: 100%;
  106. }
  107. .fc-rtl .fc-timeline .fc-em-cell {
  108. border-right-width: 3px;
  109. }
  110. */
  111. /* head */
  112. .fc-timeline th {
  113. vertical-align: middle; }
  114. .fc-timeline .fc-head .fc-cell-content {
  115. padding-top: 3px;
  116. padding-bottom: 3px; }
  117. /* body */
  118. .fc-timeline .fc-body .ui-widget-content {
  119. background-image: none; }
  120. /* Resource Area
  121. --------------------------------------------------------------------------------------------------*/
  122. .fc-resource-area {
  123. width: 30%; }
  124. .fc-resource-area col {
  125. width: 40%;
  126. min-width: 70px;
  127. /* will be read by JS */ }
  128. .fc-resource-area col.fc-main-col {
  129. width: 60%;
  130. /* make the first column in a nested setup bigger */ }
  131. .fc-flat .fc-expander-space {
  132. /* fc-flat is opposite of fc-nested */
  133. display: none; }
  134. .fc-ltr .fc-resource-area tr > * {
  135. text-align: left; }
  136. .fc-rtl .fc-resource-area tr > * {
  137. text-align: right; }
  138. .fc-resource-area .fc-cell-content {
  139. padding-left: 4px;
  140. padding-right: 4px; }
  141. /* head */
  142. .fc-resource-area .fc-super th {
  143. text-align: center; }
  144. .fc-resource-area th > div {
  145. position: relative; }
  146. .fc-resource-area th .fc-cell-content {
  147. position: relative;
  148. z-index: 1; }
  149. .fc-resource-area th .fc-col-resizer {
  150. position: absolute;
  151. z-index: 2;
  152. top: 0;
  153. bottom: 0;
  154. width: 5px; }
  155. .fc-ltr .fc-resource-area th .fc-col-resizer {
  156. right: -3px; }
  157. .fc-rtl .fc-resource-area th .fc-col-resizer {
  158. left: -3px; }
  159. /* body */
  160. tr.fc-collapsed > td,
  161. tr.fc-transitioning > td {
  162. /* during the transition */
  163. overflow: hidden;
  164. /* prevents absolutely-positioned events from bleeding out */ }
  165. tr.fc-transitioning > td > div {
  166. transition: margin-top 0.2s; }
  167. tr.fc-collapsed > td > div {
  168. margin-top: -10px; }
  169. .fc-body .fc-resource-area .fc-cell-content {
  170. /* might BE the cell */
  171. position: relative;
  172. /* optimization for ScrollFollower */
  173. padding-top: 8px;
  174. padding-bottom: 8px; }
  175. .fc-no-overlap .fc-body .fc-resource-area .fc-cell-content {
  176. /* might BE the cell */
  177. padding-top: 5px;
  178. padding-bottom: 5px; }
  179. .fc-resource-area .fc-icon {
  180. /* the expander and spacers before the expander */
  181. width: 1em;
  182. /* ensure constant width, esp for empty icons */
  183. font-size: .9em;
  184. vertical-align: middle;
  185. margin-top: -1%; }
  186. .fc-resource-area .fc-expander {
  187. cursor: pointer;
  188. color: #666;
  189. /* for the icon within */ }
  190. /* Time Area
  191. --------------------------------------------------------------------------------------------------*/
  192. .fc-time-area col {
  193. min-width: 2.2em;
  194. /* detected by JS */ }
  195. /* head */
  196. .fc-ltr .fc-time-area .fc-chrono th {
  197. text-align: left; }
  198. .fc-rtl .fc-time-area .fc-chrono th {
  199. text-align: right; }
  200. /* body slats (vertical lines) */
  201. .fc-time-area .fc-slats {
  202. /* fc-bg is responsible for a lot of this now! */
  203. position: absolute;
  204. z-index: 1;
  205. top: 0;
  206. left: 0;
  207. right: 0;
  208. bottom: 0; }
  209. .fc-time-area .fc-slats table {
  210. height: 100%; }
  211. .fc-time-area .fc-slats .fc-minor {
  212. border-style: dotted; }
  213. .fc-time-area .fc-slats td {
  214. border-width: 0 1px;
  215. /* need to do this. sometimes -1 margin wouldn't hide the dotted */ }
  216. .fc-ltr .fc-time-area .fc-slats td {
  217. border-right-width: 0; }
  218. .fc-rtl .fc-time-area .fc-slats td {
  219. border-left-width: 0; }
  220. /* body content containers
  221. can be within rows or directly within the pane's content
  222. */
  223. .fc-time-area .fc-bgevent-container,
  224. .fc-time-area .fc-highlight-container {
  225. position: absolute;
  226. z-index: 2;
  227. /* only for directly within pane. not for row. overridden later */
  228. top: 0;
  229. bottom: 0;
  230. width: 0; }
  231. .fc-ltr .fc-time-area .fc-helper-container,
  232. .fc-ltr .fc-time-area .fc-bgevent-container,
  233. .fc-ltr .fc-time-area .fc-highlight-container {
  234. left: 0; }
  235. .fc-rtl .fc-time-area .fc-helper-container,
  236. .fc-rtl .fc-time-area .fc-bgevent-container,
  237. .fc-rtl .fc-time-area .fc-highlight-container {
  238. right: 0; }
  239. .fc-time-area .fc-bgevent,
  240. .fc-time-area .fc-highlight {
  241. position: absolute;
  242. top: 0;
  243. bottom: 0; }
  244. /* body resource rows */
  245. .fc-time-area .fc-rows {
  246. position: relative;
  247. z-index: 3; }
  248. .fc-time-area .fc-rows .ui-widget-content {
  249. background: none; }
  250. .fc-time-area .fc-rows td > div {
  251. position: relative; }
  252. .fc-time-area .fc-rows .fc-bgevent-container,
  253. .fc-time-area .fc-rows .fc-highlight-container {
  254. z-index: 1; }
  255. .fc-time-area .fc-event-container {
  256. position: relative;
  257. z-index: 2;
  258. /* above bgevent and highlight */
  259. width: 0;
  260. /* for event positioning. will end up on correct side based on dir */ }
  261. .fc-time-area .fc-helper-container {
  262. /* also an fc-event-container */
  263. position: absolute;
  264. z-index: 3;
  265. top: 0; }
  266. .fc-time-area .fc-event-container {
  267. padding-bottom: 8px;
  268. top: -1px; }
  269. .fc-time-area tr:first-child .fc-event-container {
  270. top: 0; }
  271. .fc-no-overlap .fc-time-area .fc-event-container {
  272. padding-bottom: 0;
  273. top: 0; }
  274. /* Now Indicator
  275. --------------------------------------------------------------------------------------------------*/
  276. .fc-timeline .fc-now-indicator {
  277. /* both the arrow and the line */
  278. z-index: 3;
  279. /* one above scroller's fc-content */
  280. top: 0; }
  281. .fc-time-area .fc-now-indicator-arrow {
  282. margin: 0 -6px;
  283. /* 5, then one more to counteract scroller's negative margins */
  284. /* triangle pointing down... */
  285. border-width: 6px 5px 0 5px;
  286. border-left-color: transparent;
  287. border-right-color: transparent; }
  288. .fc-time-area .fc-now-indicator-line {
  289. margin: 0 -1px;
  290. /* counteract scroller's negative margins */
  291. bottom: 0;
  292. border-left-width: 1px; }
  293. /* Time Grid Events
  294. --------------------------------------------------------------------------------------------------*/
  295. .fc-timeline-event {
  296. position: absolute;
  297. border-radius: 0;
  298. padding: 2px 0;
  299. margin-bottom: 1px; }
  300. .fc-no-overlap .fc-timeline-event {
  301. padding: 5px 0;
  302. margin-bottom: 0; }
  303. /* don't overlap grid lines at the event's end */
  304. .fc-ltr .fc-timeline-event {
  305. margin-right: 1px; }
  306. .fc-rtl .fc-timeline-event {
  307. margin-left: 1px; }
  308. .fc-timeline-event .fc-content {
  309. padding: 0 1px;
  310. white-space: nowrap;
  311. overflow: hidden; }
  312. .fc-timeline-event .fc-time {
  313. font-weight: bold;
  314. padding: 0 1px; }
  315. .fc-rtl .fc-timeline-event .fc-time {
  316. display: inline-block;
  317. /* will force it on the other side */ }
  318. .fc-timeline-event .fc-title {
  319. position: relative;
  320. /* optimization for ScrollFollower */
  321. padding: 0 1px; }
  322. .fc-timeline-event.fc-selected .fc-bg {
  323. display: none;
  324. /* hide semi-white background, to appear darker */ }
  325. /* follower logic */
  326. .fc-ltr .fc-timeline-event .fc-title {
  327. padding-left: 10px;
  328. margin-left: -8px; }
  329. .fc-rtl .fc-timeline-event .fc-title {
  330. padding-right: 10px;
  331. margin-right: -8px; }
  332. .fc-ltr .fc-timeline-event.fc-not-start .fc-title {
  333. margin-left: -2px; }
  334. .fc-rtl .fc-timeline-event.fc-not-start .fc-title {
  335. margin-right: -2px; }
  336. .fc-timeline-event.fc-not-start .fc-title,
  337. .fc-body .fc-time-area .fc-following {
  338. position: relative; }
  339. .fc-timeline-event.fc-not-start .fc-title:before,
  340. .fc-body .fc-time-area .fc-following:before {
  341. /* generic arrow */
  342. content: "";
  343. position: absolute;
  344. top: 50%;
  345. margin-top: -5px;
  346. border: 5px solid #000;
  347. border-top-color: transparent;
  348. border-bottom-color: transparent;
  349. opacity: .5; }
  350. .fc-ltr .fc-timeline-event.fc-not-start .fc-title:before,
  351. .fc-ltr .fc-body .fc-time-area .fc-following:before {
  352. /* LTR. left pointing arrow */
  353. border-left: 0;
  354. left: 2px; }
  355. .fc-rtl .fc-timeline-event.fc-not-start .fc-title:before,
  356. .fc-rtl .fc-body .fc-time-area .fc-following:before {
  357. /* RTL. right pointing arrow */
  358. border-right: 0;
  359. right: 2px; }
  360. /* License Message
  361. --------------------------------------------------------------------------------------------------*/
  362. .fc-license-message {
  363. position: absolute;
  364. z-index: 99999;
  365. bottom: 1px;
  366. left: 1px;
  367. background: #eee;
  368. border-color: #ddd;
  369. border-style: solid;
  370. border-width: 1px 1px 0 0;
  371. padding: 2px 4px;
  372. font-size: 12px;
  373. border-top-right-radius: 3px; }