%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/core/common/ |
Upload File : |
import DaySeries from './DaySeries' import { DateRange } from '../datelib/date-range' import { DateMarker } from '../datelib/marker' import { Seg } from '../component/DateComponent' export interface DayTableSeg extends Seg { row: number firstCol: number lastCol: number } export interface DayTableCell { date: DateMarker htmlAttrs?: string } export default class DayTable { rowCnt: number colCnt: number cells: DayTableCell[][] headerDates: DateMarker[] private daySeries: DaySeries constructor(daySeries: DaySeries, breakOnWeeks: boolean) { let { dates } = daySeries let daysPerRow let firstDay let rowCnt if (breakOnWeeks) { // count columns until the day-of-week repeats firstDay = dates[0].getUTCDay() for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow++) { if (dates[daysPerRow].getUTCDay() === firstDay) { break } } rowCnt = Math.ceil(dates.length / daysPerRow) } else { rowCnt = 1 daysPerRow = dates.length } this.rowCnt = rowCnt this.colCnt = daysPerRow this.daySeries = daySeries this.cells = this.buildCells() this.headerDates = this.buildHeaderDates() } private buildCells() { let rows = [] for (let row = 0; row < this.rowCnt; row++) { let cells = [] for (let col = 0; col < this.colCnt; col++) { cells.push( this.buildCell(row, col) ) } rows.push(cells) } return rows } private buildCell(row, col) { return { date: this.daySeries.dates[row * this.colCnt + col] } } private buildHeaderDates() { let dates = [] for (let col = 0; col < this.colCnt; col++) { dates.push(this.cells[0][col].date) } return dates } sliceRange(range: DateRange): DayTableSeg[] { let { colCnt } = this let seriesSeg = this.daySeries.sliceRange(range) let segs: DayTableSeg[] = [] if (seriesSeg) { let { firstIndex, lastIndex } = seriesSeg let index = firstIndex while (index <= lastIndex) { let row = Math.floor(index / colCnt) let nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1) segs.push({ row, firstCol: index % colCnt, lastCol: (nextIndex - 1) % colCnt, isStart: seriesSeg.isStart && index === firstIndex, isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex }) index = nextIndex } } return segs } }