Update fullcalendar from 5.8.0 to 5.11.0

This commit is contained in:
BoHung Chiu 2022-06-24 17:45:37 +08:00
parent ae43768659
commit 5ed7a08a1a
4 changed files with 1123 additions and 6401 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -761,3 +761,369 @@ a.reserve_btn{
height: auto; height: auto;
} }
} }
/* fullcalendar custom css */
.table-bordered th, .table-bordered td {
border: 1px solid #dee2e6;
}
.fc .fc-event,
.fc .fc-scrollgrid table tr {
-moz-column-break-inside: avoid;
break-inside: avoid;
}
.fc-media-print {
display: block; /* undo flexbox. FF doesn't know how to flow */
max-width: 100% /* width will be hardcoded too */
}
.fc-media-print .fc-timegrid-slots,
.fc-media-print .fc-timegrid-axis-chunk,
.fc-media-print .fc-timeline-slots,
.fc-media-print .fc-non-business,
.fc-media-print .fc-bg-event {
display: none;
}
.fc-media-print .fc-toolbar button,
.fc-media-print .fc-h-event,
.fc-media-print .fc-v-event {
color: #000 !important;
background: #fff !important;
}
.fc-media-print .fc-event,
.fc-media-print .fc-event-main { /* often controls the text-color */
color: #000 !important;
}
.fc-media-print .fc-timegrid-event {
margin: 0.5em 0;
}
.fc .fc-timeline-body {
min-height: 100%;
position: relative;
z-index: 1; /* scope slots, bg, etc */
}
/*
vertical slots in both the header AND the body
*/
.fc .fc-timeline-slots {
position: absolute;
z-index: 1;
top: 0;
bottom: 0
}
.fc .fc-timeline-slots > table {
height: 100%;
}
.fc {
/* border for both header AND body cells */
}
.fc .fc-timeline-slot-minor {
border-style: dotted;
}
.fc {
/* header cells (aka "label") */
}
.fc .fc-timeline-slot-frame {
display: flex;
align-items: center; /* vertical align */
justify-content: center; /* horizontal align */
overflow: hidden; /* important so text doesn't bleed out and cause extra scroll */
}
.fc .fc-timeline-header-row-chrono { /* a row of times */
}
.fc .fc-timeline-header-row-chrono .fc-timeline-slot-frame {
justify-content: flex-start; /* horizontal align left or right */
}
.fc .fc-timeline-slot-cushion {
padding: 4px 5px; /* TODO: unify with fc-col-header? */
white-space: normal;
}
.fc {
/* NOTE: how does the top row of cells get horizontally centered? */
/* for the non-chrono-row, the fc-sticky system looks for text-align center, */
/* and it's a fluke that the default browser stylesheet already does this for <th> */
/* TODO: have StickyScrolling look at natural left coord to detect centeredness. */
}
/* only owns one side, so can do dotted */
.fc-direction-ltr .fc-timeline-slot { border-right: 0 !important }
.fc-direction-rtl .fc-timeline-slot { border-left: 0 !important }
.fc .fc-timeline-now-indicator-container {
position: absolute;
z-index: 4;
top: 0;
bottom: 0;
left: 0;
right: 0;
width: 0;
}
.fc .fc-timeline-now-indicator-arrow,
.fc .fc-timeline-now-indicator-line {
position: absolute;
top: 0;
border-style: solid;
border-color: red;
border-color: var(--fc-now-indicator-color, red);
}
.fc .fc-timeline-now-indicator-arrow {
margin: 0 -6px; /* 5, then one more to counteract scroller's negative margins */
/* triangle pointing down. TODO: mixin */
border-width: 6px 5px 0 5px;
border-left-color: transparent;
border-right-color: transparent;
}
.fc .fc-timeline-now-indicator-line {
margin: 0 -1px; /* counteract scroller's negative margins */
bottom: 0;
border-width: 0 0 0 1px;
}
.fc {
/* container */
}
.fc .fc-timeline-events {
position: relative;
z-index: 3;
width: 0; /* for event positioning. will end up on correct side based on dir */
}
.fc {
/* harness */
}
.fc .fc-timeline-event-harness,
.fc .fc-timeline-more-link {
position: absolute;
top: 0; /* for when when top can't be computed yet */
/* JS will set tht left/right */
}
/* z-index, scoped within fc-timeline-events */
.fc-timeline-event { z-index: 1 }
.fc-timeline-event.fc-event-mirror { z-index: 2 }
.fc-timeline-event {
position: relative; /* contains things. TODO: make part of fc-h-event and fc-v-event */
display: flex; /* for v-aligning start/end arrows and making fc-event-main stretch all the way */
align-items: center;
border-radius: 0;
padding: 2px 1px;
margin-bottom: 1px;
font-size: .85em;
font-size: var(--fc-small-font-size, .85em)
/* time and title spacing */
/* ---------------------------------------------------------------------------------------------------- */
}
.fc-timeline-event .fc-event-main {
flex-grow: 1;
flex-shrink: 1;
min-width: 0; /* important for allowing to shrink all the way */
}
.fc-timeline-event .fc-event-time {
font-weight: bold;
}
.fc-timeline-event .fc-event-time,
.fc-timeline-event .fc-event-title {
white-space: normal;
padding: 0 2px;
}
/* move 1px away from slot line */
.fc-direction-ltr .fc-timeline-event.fc-event-end,
.fc-direction-ltr .fc-timeline-more-link {
margin-right: 1px;
}
.fc-direction-rtl .fc-timeline-event.fc-event-end,
.fc-direction-rtl .fc-timeline-more-link {
margin-left: 1px;
}
/* make event beefier when overlap not allowed */
.fc-timeline-overlap-disabled .fc-timeline-event {
padding-top: 5px;
padding-bottom: 5px;
margin-bottom: 0;
}
/* arrows indicating the event continues into past/future */
/* ---------------------------------------------------------------------------------------------------- */
/* part of the flexbox flow */
.fc-timeline-event:not(.fc-event-start):before,
.fc-timeline-event:not(.fc-event-end):after {
content: "";
flex-grow: 0;
flex-shrink: 0;
opacity: .5;
/* triangle. TODO: mixin */
width: 0;
height: 0;
margin: 0 1px;
border: 5px solid #000; /* TODO: var */
border-top-color: transparent;
border-bottom-color: transparent;
}
/* pointing left */
.fc-direction-ltr .fc-timeline-event:not(.fc-event-start):before,
.fc-direction-rtl .fc-timeline-event:not(.fc-event-end):after {
border-left: 0;
}
/* pointing right */
.fc-direction-ltr .fc-timeline-event:not(.fc-event-end):after,
.fc-direction-rtl .fc-timeline-event:not(.fc-event-start):before {
border-right: 0;
}
/* +more events indicator */
/* ---------------------------------------------------------------------------------------------------- */
.fc-timeline-more-link {
font-size: .85em;
font-size: var(--fc-small-font-size, .85em);
color: inherit;
color: var(--fc-more-link-text-color, inherit);
background: #d0d0d0;
background: var(--fc-more-link-bg-color, #d0d0d0);
padding: 1px;
cursor: pointer;
}
.fc-timeline-more-link-inner { /* has fc-sticky */
display: inline-block;
left: 0;
right: 0;
padding: 2px;
}
.fc .fc-timeline-bg { /* a container for bg content */
position: absolute;
z-index: 2;
top: 0;
bottom: 0;
width: 0;
left: 0; /* will take precedence when LTR */
right: 0; /* will take precedence when RTL */ /* TODO: kill */
}
.fc .fc-timeline-bg .fc-non-business { z-index: 1 }
.fc .fc-timeline-bg .fc-bg-event { z-index: 2 }
.fc .fc-timeline-bg .fc-highlight { z-index: 3 }
.fc .fc-timeline-bg-harness {
position: absolute;
top: 0;
bottom: 0;
}
.fc .fc-resource-timeline-divider {
width: 3px; /* important to have width to shrink this cell. no cross-browser problems */
cursor: col-resize;
}
.fc {
/* will match horizontal groups in the datagrid AND group lanes in the timeline area */
}
.fc .fc-resource-timeline .fc-resource-group:not([rowspan]) {
background: rgba(208, 208, 208, 0.3);
background: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3));
}
.fc .fc-timeline-lane-frame {
position: relative; /* contains the fc-timeline-bg container, which liquidly expands */
/* the height is explicitly set by row-height-sync */
}
.fc .fc-timeline-overlap-enabled .fc-timeline-lane-frame .fc-timeline-events { /* has height set on it */
box-sizing: content-box; /* padding no longer part of height */
padding-bottom: 10px; /* give extra spacing underneath for selecting */
}
/* hack to make bg expand to lane's full height in resource-timeline with expandRows (#6134) */
.fc-timeline-body-expandrows td.fc-timeline-lane {
position: relative;
}
.fc-timeline-body-expandrows .fc-timeline-lane-frame {
position: static;
}
/* the "frame" */
.fc-datagrid-cell-frame-liquid {
height: 100%; /* needs liquid hack */
}
.fc-liquid-hack .fc-datagrid-cell-frame-liquid {
height: auto;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
.fc {
/* the "frame" in a HEADER */
/* needs to position the column resizer */
/* needs to vertically center content */
}
.fc .fc-datagrid-header .fc-datagrid-cell-frame {
position: relative; /* for resizer */
display: flex;
justify-content: flex-start; /* horizontal align (natural left/right) */
align-items: center; /* vertical align */
}
.fc {
/* the column resizer (only in HEADER) */
}
.fc .fc-datagrid-cell-resizer {
position: absolute;
z-index: 1;
top: 0;
bottom: 0;
width: 5px;
cursor: col-resize;
}
.fc {
/* the cushion */
}
.fc .fc-datagrid-cell-cushion {
padding: 8px;
white-space: normal;
overflow: hidden; /* problem for col resizer :( */
}
.fc {
/* expander icons */
}
.fc .fc-datagrid-expander {
cursor: pointer;
opacity: 0.65
}
.fc .fc-datagrid-expander .fc-icon { /* the expander and spacers before the expander */
display: inline-block;
width: 1em; /* ensure constant width, esp for empty icons */
}
.fc .fc-datagrid-expander-placeholder {
cursor: auto;
}
.fc .fc-resource-timeline-flat .fc-datagrid-expander-placeholder {
display: none;
}
.fc-direction-ltr .fc-datagrid-cell-resizer { right: -3px }
.fc-direction-rtl .fc-datagrid-cell-resizer { left: -3px }
.fc-direction-ltr .fc-datagrid-expander { margin-right: 3px }
.fc-direction-rtl .fc-datagrid-expander { margin-left: 3px }

View File

@ -1,13 +1,12 @@
/* classes attached to <body> */ /* classes attached to <body> */
.table-bordered th, .table-bordered td { /* TODO: make fc-event selector work when calender in shadow DOM */
border: 1px solid #dee2e6;
}
.fc-not-allowed, .fc-not-allowed,
.fc-not-allowed .fc-event { /* override events' custom cursors */ .fc-not-allowed .fc-event { /* override events' custom cursors */
cursor: not-allowed; cursor: not-allowed;
} }
/* TODO: not attached to body. attached to specific els. move */
.fc-unselectable { .fc-unselectable {
-webkit-user-select: none; -webkit-user-select: none;
-moz-user-select: none; -moz-user-select: none;
@ -531,14 +530,17 @@ a.fc-event:hover {
bottom: -20px; bottom: -20px;
} }
/* selecting (always TOUCH) */ /* selecting (always TOUCH) */
/* OR, focused by tab-index */
/* (TODO: maybe not the best focus-styling for .fc-daygrid-dot-event) */
/* ---------------------------------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------------------------------------- */
.fc-event-selected { .fc-event-selected,
.fc-event:focus {
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2) box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2)
/* expand hit area (subclasses should expand) */ /* expand hit area (subclasses should expand) */
} }
.fc-event-selected:before { .fc-event-selected:before, .fc-event:focus:before {
content: ""; content: "";
position: absolute; position: absolute;
z-index: 3; z-index: 3;
@ -547,12 +549,13 @@ a.fc-event:hover {
right: 0; right: 0;
bottom: 0; bottom: 0;
} }
.fc-event-selected { .fc-event-selected,
.fc-event:focus {
/* dimmer effect */ /* dimmer effect */
} }
.fc-event-selected:after { .fc-event-selected:after, .fc-event:focus:after {
content: ""; content: "";
background: rgba(0, 0, 0, 0.25); background: rgba(0, 0, 0, 0.25);
background: var(--fc-event-selected-overlay-color, rgba(0, 0, 0, 0.25)); background: var(--fc-event-selected-overlay-color, rgba(0, 0, 0, 0.25));
@ -631,29 +634,29 @@ A HORIZONTAL event
.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end { .fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end {
cursor: w-resize; cursor: w-resize;
left: -4px; left: -4px;
left: calc(var(--fc-event-resizer-thickness, 8px) / -2); left: calc(-0.5 * var(--fc-event-resizer-thickness, 8px));
} }
.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end, .fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,
.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start { .fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start {
cursor: e-resize; cursor: e-resize;
right: -4px; right: -4px;
right: calc(var(--fc-event-resizer-thickness, 8px) / -2); right: calc(-0.5 * var(--fc-event-resizer-thickness, 8px));
} }
/* resizers for TOUCH */ /* resizers for TOUCH */
.fc-h-event.fc-event-selected .fc-event-resizer { .fc-h-event.fc-event-selected .fc-event-resizer {
top: 50%; top: 50%;
margin-top: -4px; margin-top: -4px;
margin-top: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2); margin-top: calc(-0.5 * var(--fc-event-resizer-dot-total-width, 8px));
} }
.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start, .fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,
.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end { .fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end {
left: -4px; left: -4px;
left: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2); left: calc(-0.5 * var(--fc-event-resizer-dot-total-width, 8px));
} }
.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end, .fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,
.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start { .fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start {
right: -4px; right: -4px;
right: calc(var(--fc-event-resizer-dot-total-width, 8px) / -2); right: calc(-0.5 * var(--fc-event-resizer-dot-total-width, 8px));
} }
.fc .fc-popover { .fc .fc-popover {
position: absolute; position: absolute;
@ -1136,7 +1139,7 @@ A VERTICAL event
min-height: 100%; /* liquid-hack is below */ min-height: 100%; /* liquid-hack is below */
position: relative; position: relative;
} }
.fc-liquid-hack .fc-timegrid-col-frame { .fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame {
height: auto; height: auto;
position: absolute; position: absolute;
top: 0; top: 0;
@ -1360,6 +1363,23 @@ A VERTICAL event
background: #fff; background: #fff;
background: var(--fc-page-bg-color, #fff); /* for when headers are styled to be transparent and sticky */ background: var(--fc-page-bg-color, #fff); /* for when headers are styled to be transparent and sticky */
} }
.fc {
/* only exists for aria reasons, hide for non-screen-readers */
}
.fc .fc-list-table thead {
position: absolute;
left: -10000px;
}
.fc {
/* the table's border-style:hidden gets confused by hidden thead. force-hide top border of first cell */
}
.fc .fc-list-table tbody > tr:first-child th {
border-top: 0;
}
.fc .fc-list-table th { .fc .fc-list-table th {
padding: 0; /* uses an inner-wrapper instead... */ padding: 0; /* uses an inner-wrapper instead... */
} }
@ -1447,365 +1467,28 @@ A VERTICAL event
.fc .fc-event, .fc-theme-bootstrap5 a:not([href]) {
.fc .fc-scrollgrid table tr {
-moz-column-break-inside: avoid;
break-inside: avoid;
}
.fc-media-print {
display: block; /* undo flexbox. FF doesn't know how to flow */
max-width: 100% /* width will be hardcoded too */
}
.fc-media-print .fc-timegrid-slots,
.fc-media-print .fc-timegrid-axis-chunk,
.fc-media-print .fc-timeline-slots,
.fc-media-print .fc-non-business,
.fc-media-print .fc-bg-event {
display: none;
}
.fc-media-print .fc-toolbar button,
.fc-media-print .fc-h-event,
.fc-media-print .fc-v-event {
color: #000 !important;
background: #fff !important;
}
.fc-media-print .fc-event,
.fc-media-print .fc-event-main { /* often controls the text-color */
color: #000 !important;
}
.fc-media-print .fc-timegrid-event {
margin: 0.5em 0;
}
.fc .fc-timeline-body {
min-height: 100%;
position: relative;
z-index: 1; /* scope slots, bg, etc */
}
/*
vertical slots in both the header AND the body
*/
.fc .fc-timeline-slots {
position: absolute;
z-index: 1;
top: 0;
bottom: 0
}
.fc .fc-timeline-slots > table {
height: 100%;
}
.fc {
/* border for both header AND body cells */
}
.fc .fc-timeline-slot-minor {
border-style: dotted;
}
.fc {
/* header cells (aka "label") */
}
.fc .fc-timeline-slot-frame {
display: flex;
align-items: center; /* vertical align */
justify-content: center; /* horizontal align */
overflow: hidden; /* important so text doesn't bleed out and cause extra scroll */
}
.fc .fc-timeline-header-row-chrono { /* a row of times */
}
.fc .fc-timeline-header-row-chrono .fc-timeline-slot-frame {
justify-content: flex-start; /* horizontal align left or right */
}
.fc .fc-timeline-slot-cushion {
padding: 4px 5px; /* TODO: unify with fc-col-header? */
white-space: normal;
}
.fc {
/* NOTE: how does the top row of cells get horizontally centered? */
/* for the non-chrono-row, the fc-sticky system looks for text-align center, */
/* and it's a fluke that the default browser stylesheet already does this for <th> */
/* TODO: have StickyScrolling look at natural left coord to detect centeredness. */
}
/* only owns one side, so can do dotted */
.fc-direction-ltr .fc-timeline-slot { border-right: 0 !important }
.fc-direction-rtl .fc-timeline-slot { border-left: 0 !important }
.fc .fc-timeline-now-indicator-container {
position: absolute;
z-index: 4;
top: 0;
bottom: 0;
left: 0;
right: 0;
width: 0;
}
.fc .fc-timeline-now-indicator-arrow,
.fc .fc-timeline-now-indicator-line {
position: absolute;
top: 0;
border-style: solid;
border-color: red;
border-color: var(--fc-now-indicator-color, red);
}
.fc .fc-timeline-now-indicator-arrow {
margin: 0 -6px; /* 5, then one more to counteract scroller's negative margins */
/* triangle pointing down. TODO: mixin */
border-width: 6px 5px 0 5px;
border-left-color: transparent;
border-right-color: transparent;
}
.fc .fc-timeline-now-indicator-line {
margin: 0 -1px; /* counteract scroller's negative margins */
bottom: 0;
border-width: 0 0 0 1px;
}
.fc {
/* container */
}
.fc .fc-timeline-events {
position: relative;
z-index: 3;
width: 0; /* for event positioning. will end up on correct side based on dir */
}
.fc {
/* harness */
}
.fc .fc-timeline-event-harness,
.fc .fc-timeline-more-link {
position: absolute;
top: 0; /* for when when top can't be computed yet */
/* JS will set tht left/right */
}
/* z-index, scoped within fc-timeline-events */
.fc-timeline-event { z-index: 1 }
.fc-timeline-event.fc-event-mirror { z-index: 2 }
.fc-timeline-event {
position: relative; /* contains things. TODO: make part of fc-h-event and fc-v-event */
display: flex; /* for v-aligning start/end arrows and making fc-event-main stretch all the way */
align-items: center;
border-radius: 0;
padding: 2px 1px;
margin-bottom: 1px;
font-size: .85em;
font-size: var(--fc-small-font-size, .85em)
/* time and title spacing */
/* ---------------------------------------------------------------------------------------------------- */
}
.fc-timeline-event .fc-event-main {
flex-grow: 1;
flex-shrink: 1;
min-width: 0; /* important for allowing to shrink all the way */
}
.fc-timeline-event .fc-event-time {
font-weight: bold;
}
.fc-timeline-event .fc-event-time,
.fc-timeline-event .fc-event-title {
white-space: normal;
padding: 0 2px;
}
/* move 1px away from slot line */
.fc-direction-ltr .fc-timeline-event.fc-event-end,
.fc-direction-ltr .fc-timeline-more-link {
margin-right: 1px;
}
.fc-direction-rtl .fc-timeline-event.fc-event-end,
.fc-direction-rtl .fc-timeline-more-link {
margin-left: 1px;
}
/* make event beefier when overlap not allowed */
.fc-timeline-overlap-disabled .fc-timeline-event {
padding-top: 5px;
padding-bottom: 5px;
margin-bottom: 0;
}
/* arrows indicating the event continues into past/future */
/* ---------------------------------------------------------------------------------------------------- */
/* part of the flexbox flow */
.fc-timeline-event:not(.fc-event-start):before,
.fc-timeline-event:not(.fc-event-end):after {
content: "";
flex-grow: 0;
flex-shrink: 0;
opacity: .5;
/* triangle. TODO: mixin */
width: 0;
height: 0;
margin: 0 1px;
border: 5px solid #000; /* TODO: var */
border-top-color: transparent;
border-bottom-color: transparent;
}
/* pointing left */
.fc-direction-ltr .fc-timeline-event:not(.fc-event-start):before,
.fc-direction-rtl .fc-timeline-event:not(.fc-event-end):after {
border-left: 0;
}
/* pointing right */
.fc-direction-ltr .fc-timeline-event:not(.fc-event-end):after,
.fc-direction-rtl .fc-timeline-event:not(.fc-event-start):before {
border-right: 0;
}
/* +more events indicator */
/* ---------------------------------------------------------------------------------------------------- */
.fc-timeline-more-link {
font-size: .85em;
font-size: var(--fc-small-font-size, .85em);
color: inherit; color: inherit;
color: var(--fc-more-link-text-color, inherit); text-decoration: inherit;
background: #d0d0d0;
background: var(--fc-more-link-bg-color, #d0d0d0);
padding: 1px;
cursor: pointer;
}
.fc-timeline-more-link-inner { /* has fc-sticky */
display: inline-block;
left: 0;
right: 0;
padding: 2px;
}
.fc .fc-timeline-bg { /* a container for bg content */
position: absolute;
z-index: 2;
top: 0;
bottom: 0;
width: 0;
left: 0; /* will take precedence when LTR */
right: 0; /* will take precedence when RTL */ /* TODO: kill */
}
.fc .fc-timeline-bg .fc-non-business { z-index: 1 }
.fc .fc-timeline-bg .fc-bg-event { z-index: 2 }
.fc .fc-timeline-bg .fc-highlight { z-index: 3 }
.fc .fc-timeline-bg-harness {
position: absolute;
top: 0;
bottom: 0;
} }
.fc-theme-bootstrap5 .fc-list,
.fc-theme-bootstrap5 .fc-scrollgrid,
.fc-theme-bootstrap5 td,
.fc .fc-resource-timeline-divider { .fc-theme-bootstrap5 th {
width: 3px; /* important to have width to shrink this cell. no cross-browser problems */ border: 1px solid var(--bs-gray-400);
cursor: col-resize;
} }
.fc { .fc-theme-bootstrap5 {
/* will match horizontal groups in the datagrid AND group lanes in the timeline area */
/* HACK: reapply core styles after highe-precedence border statement above */
} }
.fc .fc-resource-timeline .fc-resource-group:not([rowspan]) { .fc-theme-bootstrap5 .fc-scrollgrid {
background: rgba(208, 208, 208, 0.3); border-right-width: 0;
background: var(--fc-neutral-bg-color, rgba(208, 208, 208, 0.3)); border-bottom-width: 0;
} }
.fc .fc-timeline-lane-frame { .fc-theme-bootstrap5-shaded {
position: relative; /* contains the fc-timeline-bg container, which liquidly expands */ background-color: var(--bs-gray-200);
/* the height is explicitly set by row-height-sync */
} }
.fc .fc-timeline-overlap-enabled .fc-timeline-lane-frame .fc-timeline-events { /* has height set on it */
box-sizing: content-box; /* padding no longer part of height */
padding-bottom: 10px; /* give extra spacing underneath for selecting */
}
/* hack to make bg expand to lane's full height in resource-timeline with expandRows (#6134) */
.fc-timeline-body-expandrows td.fc-timeline-lane {
position: relative;
}
.fc-timeline-body-expandrows .fc-timeline-lane-frame {
position: static;
}
/* the "frame" */
.fc-datagrid-cell-frame-liquid {
height: 100%; /* needs liquid hack */
}
.fc-liquid-hack .fc-datagrid-cell-frame-liquid {
height: auto;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
.fc {
/* the "frame" in a HEADER */
/* needs to position the column resizer */
/* needs to vertically center content */
}
.fc .fc-datagrid-header .fc-datagrid-cell-frame {
position: relative; /* for resizer */
display: flex;
justify-content: flex-start; /* horizontal align (natural left/right) */
align-items: center; /* vertical align */
}
.fc {
/* the column resizer (only in HEADER) */
}
.fc .fc-datagrid-cell-resizer {
position: absolute;
z-index: 1;
top: 0;
bottom: 0;
width: 5px;
cursor: col-resize;
}
.fc {
/* the cushion */
}
.fc .fc-datagrid-cell-cushion {
padding: 8px;
white-space: normal;
overflow: hidden; /* problem for col resizer :( */
}
.fc {
/* expander icons */
}
.fc .fc-datagrid-expander {
cursor: pointer;
opacity: 0.65
}
.fc .fc-datagrid-expander .fc-icon { /* the expander and spacers before the expander */
display: inline-block;
width: 1em; /* ensure constant width, esp for empty icons */
}
.fc .fc-datagrid-expander-placeholder {
cursor: auto;
}
.fc .fc-resource-timeline-flat .fc-datagrid-expander-placeholder {
display: none;
}
.fc-direction-ltr .fc-datagrid-cell-resizer { right: -3px }
.fc-direction-rtl .fc-datagrid-cell-resizer { left: -3px }
.fc-direction-ltr .fc-datagrid-expander { margin-right: 3px }
.fc-direction-rtl .fc-datagrid-expander { margin-left: 3px }