%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/11585/cwd/html/ppaobm/vendor/bower-asset/fullcalendar/src/timegrid/ |
Upload File : |
import { DateComponent, DateProfile, EventStore, EventUiHash, EventInteractionState, DateSpan, memoize, intersectRanges, DateRange, DayTable, DateEnv, DateMarker, Slicer, Hit, ComponentContext } from '@fullcalendar/core' import TimeGrid, { TimeGridSeg } from './TimeGrid' export interface SimpleTimeGridProps { dateProfile: DateProfile | null dayTable: DayTable businessHours: EventStore eventStore: EventStore eventUiBases: EventUiHash dateSelection: DateSpan | null eventSelection: string eventDrag: EventInteractionState | null eventResize: EventInteractionState | null } export default class SimpleTimeGrid extends DateComponent<SimpleTimeGridProps> { timeGrid: TimeGrid private buildDayRanges = memoize(buildDayRanges) private dayRanges: DateRange[] // for now indicator private slicer = new TimeGridSlicer() constructor(context: ComponentContext, timeGrid: TimeGrid) { super(context, timeGrid.el) this.timeGrid = timeGrid context.calendar.registerInteractiveComponent(this, { el: this.timeGrid.el }) } destroy() { super.destroy() this.calendar.unregisterInteractiveComponent(this) } render(props: SimpleTimeGridProps) { let { dateProfile, dayTable } = props let dayRanges = this.dayRanges = this.buildDayRanges(dayTable, dateProfile, this.dateEnv) this.timeGrid.receiveProps({ ...this.slicer.sliceProps(props, dateProfile, null, this.timeGrid, dayRanges), dateProfile, cells: dayTable.cells[0] }) } renderNowIndicator(date: DateMarker) { this.timeGrid.renderNowIndicator( this.slicer.sliceNowDate(date, this.timeGrid, this.dayRanges), date ) } buildPositionCaches() { this.timeGrid.buildPositionCaches() } queryHit(positionLeft: number, positionTop: number): Hit { let rawHit = this.timeGrid.positionToHit(positionLeft, positionTop) if (rawHit) { return { component: this.timeGrid, dateSpan: rawHit.dateSpan, dayEl: rawHit.dayEl, rect: { left: rawHit.relativeRect.left, right: rawHit.relativeRect.right, top: rawHit.relativeRect.top, bottom: rawHit.relativeRect.bottom }, layer: 0 } } } } export function buildDayRanges(dayTable: DayTable, dateProfile: DateProfile, dateEnv: DateEnv): DateRange[] { let ranges: DateRange[] = [] for (let date of dayTable.headerDates) { ranges.push({ start: dateEnv.add(date, dateProfile.minTime), end: dateEnv.add(date, dateProfile.maxTime) }) } return ranges } export class TimeGridSlicer extends Slicer<TimeGridSeg, [DateRange[]]> { sliceRange(range: DateRange, dayRanges: DateRange[]): TimeGridSeg[] { let segs: TimeGridSeg[] = [] for (let col = 0; col < dayRanges.length; col++) { let segRange = intersectRanges(range, dayRanges[col]) if (segRange) { segs.push({ start: segRange.start, end: segRange.end, isStart: segRange.start.valueOf() === range.start.valueOf(), isEnd: segRange.end.valueOf() === range.end.valueOf(), col }) } } return segs } }