@fullcalendar/daygrid
Advanced tools
Comparing version 6.1.9 to 6.1.10
/*! | ||
FullCalendar Day Grid Plugin v6.1.9 | ||
FullCalendar Day Grid Plugin v6.1.10 | ||
Docs & License: https://fullcalendar.io/docs/month-view | ||
@@ -4,0 +4,0 @@ (c) 2023 Adam Shaw |
/*! | ||
FullCalendar Day Grid Plugin v6.1.9 | ||
FullCalendar Day Grid Plugin v6.1.10 | ||
Docs & License: https://fullcalendar.io/docs/month-view | ||
@@ -4,0 +4,0 @@ (c) 2023 Adam Shaw |
216
internal.js
@@ -1,6 +0,84 @@ | ||
import { injectStyles, createFormatter, BaseComponent, StandardEvent, buildSegTimeText, EventContainer, getSegAnchorAttrs, memoize, MoreLinkContainer, getSegMeta, DateComponent, getUniqueDomId, setRef, DayCellContainer, WeekNumberContainer, buildNavLinkAttrs, hasCustomDayCellContent, addMs, intersectRanges, addDays, SegHierarchy, buildEntryKey, intersectSpans, RefMap, sortEventSegs, isPropsEqual, buildEventRangeKey, BgEvent, renderFill, PositionCache, NowTimer, formatIsoMonthStr, formatDayString, Slicer, DateProfileGenerator, addWeeks, diffWeeks, getStickyHeaderDates, ViewContainer, SimpleScrollGrid, getStickyFooterScrollbar, renderScrollShim, DayHeader, DaySeriesModel, DayTableModel } from '@fullcalendar/core/internal.js'; | ||
import { createElement, Fragment, createRef } from '@fullcalendar/core/preact.js'; | ||
import { DateComponent, getStickyHeaderDates, ViewContainer, SimpleScrollGrid, getStickyFooterScrollbar, renderScrollShim, createFormatter, BaseComponent, StandardEvent, buildSegTimeText, EventContainer, getSegAnchorAttrs, memoize, MoreLinkContainer, getSegMeta, getUniqueDomId, setRef, DayCellContainer, WeekNumberContainer, buildNavLinkAttrs, hasCustomDayCellContent, addMs, intersectRanges, addDays, SegHierarchy, buildEntryKey, intersectSpans, RefMap, sortEventSegs, isPropsEqual, buildEventRangeKey, BgEvent, renderFill, PositionCache, NowTimer, formatIsoMonthStr, formatDayString, Slicer, DayHeader, DaySeriesModel, DayTableModel, DateProfileGenerator, addWeeks, diffWeeks, injectStyles } from '@fullcalendar/core/internal.js'; | ||
import { createRef, createElement, Fragment } from '@fullcalendar/core/preact.js'; | ||
var css_248z = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}"; | ||
injectStyles(css_248z); | ||
/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells. | ||
----------------------------------------------------------------------------------------------------------------------*/ | ||
// It is a manager for a Table subcomponent, which does most of the heavy lifting. | ||
// It is responsible for managing width/height. | ||
class TableView extends DateComponent { | ||
constructor() { | ||
super(...arguments); | ||
this.headerElRef = createRef(); | ||
} | ||
renderSimpleLayout(headerRowContent, bodyContent) { | ||
let { props, context } = this; | ||
let sections = []; | ||
let stickyHeaderDates = getStickyHeaderDates(context.options); | ||
if (headerRowContent) { | ||
sections.push({ | ||
type: 'header', | ||
key: 'header', | ||
isSticky: stickyHeaderDates, | ||
chunk: { | ||
elRef: this.headerElRef, | ||
tableClassName: 'fc-col-header', | ||
rowContent: headerRowContent, | ||
}, | ||
}); | ||
} | ||
sections.push({ | ||
type: 'body', | ||
key: 'body', | ||
liquid: true, | ||
chunk: { content: bodyContent }, | ||
}); | ||
return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec }, | ||
createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections }))); | ||
} | ||
renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) { | ||
let ScrollGrid = this.context.pluginHooks.scrollGridImpl; | ||
if (!ScrollGrid) { | ||
throw new Error('No ScrollGrid implementation'); | ||
} | ||
let { props, context } = this; | ||
let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options); | ||
let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options); | ||
let sections = []; | ||
if (headerRowContent) { | ||
sections.push({ | ||
type: 'header', | ||
key: 'header', | ||
isSticky: stickyHeaderDates, | ||
chunks: [{ | ||
key: 'main', | ||
elRef: this.headerElRef, | ||
tableClassName: 'fc-col-header', | ||
rowContent: headerRowContent, | ||
}], | ||
}); | ||
} | ||
sections.push({ | ||
type: 'body', | ||
key: 'body', | ||
liquid: true, | ||
chunks: [{ | ||
key: 'main', | ||
content: bodyContent, | ||
}], | ||
}); | ||
if (stickyFooterScrollbar) { | ||
sections.push({ | ||
type: 'footer', | ||
key: 'footer', | ||
isSticky: true, | ||
chunks: [{ | ||
key: 'main', | ||
content: renderScrollShim, | ||
}], | ||
}); | ||
} | ||
return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec }, | ||
createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, forPrint: props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections }))); | ||
} | ||
} | ||
@@ -836,2 +914,26 @@ function splitSegsByRow(segs, rowCnt) { | ||
class DayTableView extends TableView { | ||
constructor() { | ||
super(...arguments); | ||
this.buildDayTableModel = memoize(buildDayTableModel); | ||
this.headerRef = createRef(); | ||
this.tableRef = createRef(); | ||
// can't override any lifecycle methods from parent | ||
} | ||
render() { | ||
let { options, dateProfileGenerator } = this.context; | ||
let { props } = this; | ||
let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator); | ||
let headerContent = options.dayHeaders && (createElement(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 })); | ||
let bodyContent = (contentArg) => (createElement(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint })); | ||
return options.dayMinWidth | ||
? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth) | ||
: this.renderSimpleLayout(headerContent, bodyContent); | ||
} | ||
} | ||
function buildDayTableModel(dateProfile, dateProfileGenerator) { | ||
let daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator); | ||
return new DayTableModel(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit)); | ||
} | ||
class TableDateProfileGenerator extends DateProfileGenerator { | ||
@@ -875,107 +977,5 @@ // Computes the date range that will be rendered | ||
/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells. | ||
----------------------------------------------------------------------------------------------------------------------*/ | ||
// It is a manager for a Table subcomponent, which does most of the heavy lifting. | ||
// It is responsible for managing width/height. | ||
class TableView extends DateComponent { | ||
constructor() { | ||
super(...arguments); | ||
this.headerElRef = createRef(); | ||
} | ||
renderSimpleLayout(headerRowContent, bodyContent) { | ||
let { props, context } = this; | ||
let sections = []; | ||
let stickyHeaderDates = getStickyHeaderDates(context.options); | ||
if (headerRowContent) { | ||
sections.push({ | ||
type: 'header', | ||
key: 'header', | ||
isSticky: stickyHeaderDates, | ||
chunk: { | ||
elRef: this.headerElRef, | ||
tableClassName: 'fc-col-header', | ||
rowContent: headerRowContent, | ||
}, | ||
}); | ||
} | ||
sections.push({ | ||
type: 'body', | ||
key: 'body', | ||
liquid: true, | ||
chunk: { content: bodyContent }, | ||
}); | ||
return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec }, | ||
createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections }))); | ||
} | ||
renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) { | ||
let ScrollGrid = this.context.pluginHooks.scrollGridImpl; | ||
if (!ScrollGrid) { | ||
throw new Error('No ScrollGrid implementation'); | ||
} | ||
let { props, context } = this; | ||
let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options); | ||
let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options); | ||
let sections = []; | ||
if (headerRowContent) { | ||
sections.push({ | ||
type: 'header', | ||
key: 'header', | ||
isSticky: stickyHeaderDates, | ||
chunks: [{ | ||
key: 'main', | ||
elRef: this.headerElRef, | ||
tableClassName: 'fc-col-header', | ||
rowContent: headerRowContent, | ||
}], | ||
}); | ||
} | ||
sections.push({ | ||
type: 'body', | ||
key: 'body', | ||
liquid: true, | ||
chunks: [{ | ||
key: 'main', | ||
content: bodyContent, | ||
}], | ||
}); | ||
if (stickyFooterScrollbar) { | ||
sections.push({ | ||
type: 'footer', | ||
key: 'footer', | ||
isSticky: true, | ||
chunks: [{ | ||
key: 'main', | ||
content: renderScrollShim, | ||
}], | ||
}); | ||
} | ||
return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec }, | ||
createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, forPrint: props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections }))); | ||
} | ||
} | ||
var css_248z = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}"; | ||
injectStyles(css_248z); | ||
class DayTableView extends TableView { | ||
constructor() { | ||
super(...arguments); | ||
this.buildDayTableModel = memoize(buildDayTableModel); | ||
this.headerRef = createRef(); | ||
this.tableRef = createRef(); | ||
// can't override any lifecycle methods from parent | ||
} | ||
render() { | ||
let { options, dateProfileGenerator } = this.context; | ||
let { props } = this; | ||
let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator); | ||
let headerContent = options.dayHeaders && (createElement(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 })); | ||
let bodyContent = (contentArg) => (createElement(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint })); | ||
return options.dayMinWidth | ||
? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth) | ||
: this.renderSimpleLayout(headerContent, bodyContent); | ||
} | ||
} | ||
function buildDayTableModel(dateProfile, dateProfileGenerator) { | ||
let daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator); | ||
return new DayTableModel(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit)); | ||
} | ||
export { DayTableView as DayGridView, DayTable, DayTableSlicer, Table, TableDateProfileGenerator, TableRows, TableView, buildDayTableModel, buildDayTableRenderRange }; |
{ | ||
"name": "@fullcalendar/daygrid", | ||
"version": "6.1.9", | ||
"version": "6.1.10", | ||
"title": "FullCalendar Day Grid Plugin", | ||
@@ -16,3 +16,3 @@ "description": "Display events on a month view or \"day grid\" view", | ||
"peerDependencies": { | ||
"@fullcalendar/core": "~6.1.9" | ||
"@fullcalendar/core": "~6.1.10" | ||
}, | ||
@@ -19,0 +19,0 @@ "type": "module", |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
200940