CasperSecurity

Current Path : /var/www/atraket.uiet.co.in/v1.0/web/plugins/fullcalendar-timegrid/
Upload File :
Current File : /var/www/atraket.uiet.co.in/v1.0/web/plugins/fullcalendar-timegrid/main.js.map

{"version":3,"file":"main.js","sources":["../../../tmp/tsc-output/packages/timegrid/src/TimeGridEventRenderer.js","../../../tmp/tsc-output/packages/timegrid/src/TimeGridMirrorRenderer.js","../../../tmp/tsc-output/packages/timegrid/src/TimeGridFillRenderer.js","../../../tmp/tsc-output/packages/timegrid/src/TimeGrid.js","../../../tmp/tsc-output/packages/timegrid/src/AllDaySplitter.js","../../../tmp/tsc-output/packages/timegrid/src/AbstractTimeGridView.js","../../../tmp/tsc-output/packages/timegrid/src/SimpleTimeGrid.js","../../../tmp/tsc-output/packages/timegrid/src/TimeGridView.js","../../../tmp/tsc-output/packages/timegrid/src/main.js"],"sourcesContent":["import * as tslib_1 from \"tslib\";\nimport { htmlEscape, cssToStr, removeElement, applyStyle, createFormatter, FgEventRenderer, buildSegCompareObj, isMultiDayRange, compareByFieldSpecs, computeEventDraggable, computeEventStartResizable, computeEventEndResizable } from '@fullcalendar/core';\n/*\nOnly handles foreground segs.\nDoes not own rendering. Use for low-level util methods by TimeGrid.\n*/\nvar TimeGridEventRenderer = /** @class */ (function (_super) {\n    tslib_1.__extends(TimeGridEventRenderer, _super);\n    function TimeGridEventRenderer(timeGrid) {\n        var _this = _super.call(this) || this;\n        _this.timeGrid = timeGrid;\n        return _this;\n    }\n    TimeGridEventRenderer.prototype.renderSegs = function (context, segs, mirrorInfo) {\n        _super.prototype.renderSegs.call(this, context, segs, mirrorInfo);\n        // TODO: dont do every time. memoize\n        this.fullTimeFormat = createFormatter({\n            hour: 'numeric',\n            minute: '2-digit',\n            separator: this.context.options.defaultRangeSeparator\n        });\n    };\n    // Given an array of foreground segments, render a DOM element for each, computes position,\n    // and attaches to the column inner-container elements.\n    TimeGridEventRenderer.prototype.attachSegs = function (segs, mirrorInfo) {\n        var segsByCol = this.timeGrid.groupSegsByCol(segs);\n        // order the segs within each column\n        // TODO: have groupSegsByCol do this?\n        for (var col = 0; col < segsByCol.length; col++) {\n            segsByCol[col] = this.sortEventSegs(segsByCol[col]);\n        }\n        this.segsByCol = segsByCol;\n        this.timeGrid.attachSegsByCol(segsByCol, this.timeGrid.fgContainerEls);\n    };\n    TimeGridEventRenderer.prototype.detachSegs = function (segs) {\n        segs.forEach(function (seg) {\n            removeElement(seg.el);\n        });\n        this.segsByCol = null;\n    };\n    TimeGridEventRenderer.prototype.computeSegSizes = function (allSegs) {\n        var _a = this, timeGrid = _a.timeGrid, segsByCol = _a.segsByCol;\n        var colCnt = timeGrid.colCnt;\n        timeGrid.computeSegVerticals(allSegs); // horizontals relies on this\n        if (segsByCol) {\n            for (var col = 0; col < colCnt; col++) {\n                this.computeSegHorizontals(segsByCol[col]); // compute horizontal coordinates, z-index's, and reorder the array\n            }\n        }\n    };\n    TimeGridEventRenderer.prototype.assignSegSizes = function (allSegs) {\n        var _a = this, timeGrid = _a.timeGrid, segsByCol = _a.segsByCol;\n        var colCnt = timeGrid.colCnt;\n        timeGrid.assignSegVerticals(allSegs); // horizontals relies on this\n        if (segsByCol) {\n            for (var col = 0; col < colCnt; col++) {\n                this.assignSegCss(segsByCol[col]);\n            }\n        }\n    };\n    // Computes a default event time formatting string if `eventTimeFormat` is not explicitly defined\n    TimeGridEventRenderer.prototype.computeEventTimeFormat = function () {\n        return {\n            hour: 'numeric',\n            minute: '2-digit',\n            meridiem: false\n        };\n    };\n    // Computes a default `displayEventEnd` value if one is not expliclty defined\n    TimeGridEventRenderer.prototype.computeDisplayEventEnd = function () {\n        return true;\n    };\n    // Renders the HTML for a single event segment's default rendering\n    TimeGridEventRenderer.prototype.renderSegHtml = function (seg, mirrorInfo) {\n        var eventRange = seg.eventRange;\n        var eventDef = eventRange.def;\n        var eventUi = eventRange.ui;\n        var allDay = eventDef.allDay;\n        var isDraggable = computeEventDraggable(this.context, eventDef, eventUi);\n        var isResizableFromStart = seg.isStart && computeEventStartResizable(this.context, eventDef, eventUi);\n        var isResizableFromEnd = seg.isEnd && computeEventEndResizable(this.context, eventDef, eventUi);\n        var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo);\n        var skinCss = cssToStr(this.getSkinCss(eventUi));\n        var timeText;\n        var fullTimeText; // more verbose time text. for the print stylesheet\n        var startTimeText; // just the start time text\n        classes.unshift('fc-time-grid-event');\n        // if the event appears to span more than one day...\n        if (isMultiDayRange(eventRange.range)) {\n            // Don't display time text on segments that run entirely through a day.\n            // That would appear as midnight-midnight and would look dumb.\n            // Otherwise, display the time text for the *segment's* times (like 6pm-midnight or midnight-10am)\n            if (seg.isStart || seg.isEnd) {\n                var unzonedStart = seg.start;\n                var unzonedEnd = seg.end;\n                timeText = this._getTimeText(unzonedStart, unzonedEnd, allDay); // TODO: give the timezones\n                fullTimeText = this._getTimeText(unzonedStart, unzonedEnd, allDay, this.fullTimeFormat);\n                startTimeText = this._getTimeText(unzonedStart, unzonedEnd, allDay, null, false); // displayEnd=false\n            }\n        }\n        else {\n            // Display the normal time text for the *event's* times\n            timeText = this.getTimeText(eventRange);\n            fullTimeText = this.getTimeText(eventRange, this.fullTimeFormat);\n            startTimeText = this.getTimeText(eventRange, null, false); // displayEnd=false\n        }\n        return '<a class=\"' + classes.join(' ') + '\"' +\n            (eventDef.url ?\n                ' href=\"' + htmlEscape(eventDef.url) + '\"' :\n                '') +\n            (skinCss ?\n                ' style=\"' + skinCss + '\"' :\n                '') +\n            '>' +\n            '<div class=\"fc-content\">' +\n            (timeText ?\n                '<div class=\"fc-time\"' +\n                    ' data-start=\"' + htmlEscape(startTimeText) + '\"' +\n                    ' data-full=\"' + htmlEscape(fullTimeText) + '\"' +\n                    '>' +\n                    '<span>' + htmlEscape(timeText) + '</span>' +\n                    '</div>' :\n                '') +\n            (eventDef.title ?\n                '<div class=\"fc-title\">' +\n                    htmlEscape(eventDef.title) +\n                    '</div>' :\n                '') +\n            '</div>' +\n            /* TODO: write CSS for this\n            (isResizableFromStart ?\n              '<div class=\"fc-resizer fc-start-resizer\"></div>' :\n              ''\n              ) +\n            */\n            (isResizableFromEnd ?\n                '<div class=\"fc-resizer fc-end-resizer\"></div>' :\n                '') +\n            '</a>';\n    };\n    // Given an array of segments that are all in the same column, sets the backwardCoord and forwardCoord on each.\n    // Assumed the segs are already ordered.\n    // NOTE: Also reorders the given array by date!\n    TimeGridEventRenderer.prototype.computeSegHorizontals = function (segs) {\n        var levels;\n        var level0;\n        var i;\n        levels = buildSlotSegLevels(segs);\n        computeForwardSlotSegs(levels);\n        if ((level0 = levels[0])) {\n            for (i = 0; i < level0.length; i++) {\n                computeSlotSegPressures(level0[i]);\n            }\n            for (i = 0; i < level0.length; i++) {\n                this.computeSegForwardBack(level0[i], 0, 0);\n            }\n        }\n    };\n    // Calculate seg.forwardCoord and seg.backwardCoord for the segment, where both values range\n    // from 0 to 1. If the calendar is left-to-right, the seg.backwardCoord maps to \"left\" and\n    // seg.forwardCoord maps to \"right\" (via percentage). Vice-versa if the calendar is right-to-left.\n    //\n    // The segment might be part of a \"series\", which means consecutive segments with the same pressure\n    // who's width is unknown until an edge has been hit. `seriesBackwardPressure` is the number of\n    // segments behind this one in the current series, and `seriesBackwardCoord` is the starting\n    // coordinate of the first segment in the series.\n    TimeGridEventRenderer.prototype.computeSegForwardBack = function (seg, seriesBackwardPressure, seriesBackwardCoord) {\n        var forwardSegs = seg.forwardSegs;\n        var i;\n        if (seg.forwardCoord === undefined) { // not already computed\n            if (!forwardSegs.length) {\n                // if there are no forward segments, this segment should butt up against the edge\n                seg.forwardCoord = 1;\n            }\n            else {\n                // sort highest pressure first\n                this.sortForwardSegs(forwardSegs);\n                // this segment's forwardCoord will be calculated from the backwardCoord of the\n                // highest-pressure forward segment.\n                this.computeSegForwardBack(forwardSegs[0], seriesBackwardPressure + 1, seriesBackwardCoord);\n                seg.forwardCoord = forwardSegs[0].backwardCoord;\n            }\n            // calculate the backwardCoord from the forwardCoord. consider the series\n            seg.backwardCoord = seg.forwardCoord -\n                (seg.forwardCoord - seriesBackwardCoord) / // available width for series\n                    (seriesBackwardPressure + 1); // # of segments in the series\n            // use this segment's coordinates to computed the coordinates of the less-pressurized\n            // forward segments\n            for (i = 0; i < forwardSegs.length; i++) {\n                this.computeSegForwardBack(forwardSegs[i], 0, seg.forwardCoord);\n            }\n        }\n    };\n    TimeGridEventRenderer.prototype.sortForwardSegs = function (forwardSegs) {\n        var objs = forwardSegs.map(buildTimeGridSegCompareObj);\n        var specs = [\n            // put higher-pressure first\n            { field: 'forwardPressure', order: -1 },\n            // put segments that are closer to initial edge first (and favor ones with no coords yet)\n            { field: 'backwardCoord', order: 1 }\n        ].concat(this.context.eventOrderSpecs);\n        objs.sort(function (obj0, obj1) {\n            return compareByFieldSpecs(obj0, obj1, specs);\n        });\n        return objs.map(function (c) {\n            return c._seg;\n        });\n    };\n    // Given foreground event segments that have already had their position coordinates computed,\n    // assigns position-related CSS values to their elements.\n    TimeGridEventRenderer.prototype.assignSegCss = function (segs) {\n        for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n            var seg = segs_1[_i];\n            applyStyle(seg.el, this.generateSegCss(seg));\n            if (seg.level > 0) {\n                seg.el.classList.add('fc-time-grid-event-inset');\n            }\n            // if the event is short that the title will be cut off,\n            // attach a className that condenses the title into the time area.\n            if (seg.eventRange.def.title && seg.bottom - seg.top < 30) {\n                seg.el.classList.add('fc-short'); // TODO: \"condensed\" is a better name\n            }\n        }\n    };\n    // Generates an object with CSS properties/values that should be applied to an event segment element.\n    // Contains important positioning-related properties that should be applied to any event element, customized or not.\n    TimeGridEventRenderer.prototype.generateSegCss = function (seg) {\n        var shouldOverlap = this.context.options.slotEventOverlap;\n        var backwardCoord = seg.backwardCoord; // the left side if LTR. the right side if RTL. floating-point\n        var forwardCoord = seg.forwardCoord; // the right side if LTR. the left side if RTL. floating-point\n        var props = this.timeGrid.generateSegVerticalCss(seg); // get top/bottom first\n        var isRtl = this.context.isRtl;\n        var left; // amount of space from left edge, a fraction of the total width\n        var right; // amount of space from right edge, a fraction of the total width\n        if (shouldOverlap) {\n            // double the width, but don't go beyond the maximum forward coordinate (1.0)\n            forwardCoord = Math.min(1, backwardCoord + (forwardCoord - backwardCoord) * 2);\n        }\n        if (isRtl) {\n            left = 1 - forwardCoord;\n            right = backwardCoord;\n        }\n        else {\n            left = backwardCoord;\n            right = 1 - forwardCoord;\n        }\n        props.zIndex = seg.level + 1; // convert from 0-base to 1-based\n        props.left = left * 100 + '%';\n        props.right = right * 100 + '%';\n        if (shouldOverlap && seg.forwardPressure) {\n            // add padding to the edge so that forward stacked events don't cover the resizer's icon\n            props[isRtl ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width\n        }\n        return props;\n    };\n    return TimeGridEventRenderer;\n}(FgEventRenderer));\nexport default TimeGridEventRenderer;\n// Builds an array of segments \"levels\". The first level will be the leftmost tier of segments if the calendar is\n// left-to-right, or the rightmost if the calendar is right-to-left. Assumes the segments are already ordered by date.\nfunction buildSlotSegLevels(segs) {\n    var levels = [];\n    var i;\n    var seg;\n    var j;\n    for (i = 0; i < segs.length; i++) {\n        seg = segs[i];\n        // go through all the levels and stop on the first level where there are no collisions\n        for (j = 0; j < levels.length; j++) {\n            if (!computeSlotSegCollisions(seg, levels[j]).length) {\n                break;\n            }\n        }\n        seg.level = j;\n        (levels[j] || (levels[j] = [])).push(seg);\n    }\n    return levels;\n}\n// For every segment, figure out the other segments that are in subsequent\n// levels that also occupy the same vertical space. Accumulate in seg.forwardSegs\nfunction computeForwardSlotSegs(levels) {\n    var i;\n    var level;\n    var j;\n    var seg;\n    var k;\n    for (i = 0; i < levels.length; i++) {\n        level = levels[i];\n        for (j = 0; j < level.length; j++) {\n            seg = level[j];\n            seg.forwardSegs = [];\n            for (k = i + 1; k < levels.length; k++) {\n                computeSlotSegCollisions(seg, levels[k], seg.forwardSegs);\n            }\n        }\n    }\n}\n// Figure out which path forward (via seg.forwardSegs) results in the longest path until\n// the furthest edge is reached. The number of segments in this path will be seg.forwardPressure\nfunction computeSlotSegPressures(seg) {\n    var forwardSegs = seg.forwardSegs;\n    var forwardPressure = 0;\n    var i;\n    var forwardSeg;\n    if (seg.forwardPressure === undefined) { // not already computed\n        for (i = 0; i < forwardSegs.length; i++) {\n            forwardSeg = forwardSegs[i];\n            // figure out the child's maximum forward path\n            computeSlotSegPressures(forwardSeg);\n            // either use the existing maximum, or use the child's forward pressure\n            // plus one (for the forwardSeg itself)\n            forwardPressure = Math.max(forwardPressure, 1 + forwardSeg.forwardPressure);\n        }\n        seg.forwardPressure = forwardPressure;\n    }\n}\n// Find all the segments in `otherSegs` that vertically collide with `seg`.\n// Append into an optionally-supplied `results` array and return.\nfunction computeSlotSegCollisions(seg, otherSegs, results) {\n    if (results === void 0) { results = []; }\n    for (var i = 0; i < otherSegs.length; i++) {\n        if (isSlotSegCollision(seg, otherSegs[i])) {\n            results.push(otherSegs[i]);\n        }\n    }\n    return results;\n}\n// Do these segments occupy the same vertical space?\nfunction isSlotSegCollision(seg1, seg2) {\n    return seg1.bottom > seg2.top && seg1.top < seg2.bottom;\n}\nfunction buildTimeGridSegCompareObj(seg) {\n    var obj = buildSegCompareObj(seg);\n    obj.forwardPressure = seg.forwardPressure;\n    obj.backwardCoord = seg.backwardCoord;\n    return obj;\n}\n","import * as tslib_1 from \"tslib\";\nimport TimeGridEventRenderer from './TimeGridEventRenderer';\nvar TimeGridMirrorRenderer = /** @class */ (function (_super) {\n    tslib_1.__extends(TimeGridMirrorRenderer, _super);\n    function TimeGridMirrorRenderer() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    TimeGridMirrorRenderer.prototype.attachSegs = function (segs, mirrorInfo) {\n        this.segsByCol = this.timeGrid.groupSegsByCol(segs);\n        this.timeGrid.attachSegsByCol(this.segsByCol, this.timeGrid.mirrorContainerEls);\n        this.sourceSeg = mirrorInfo.sourceSeg;\n    };\n    TimeGridMirrorRenderer.prototype.generateSegCss = function (seg) {\n        var props = _super.prototype.generateSegCss.call(this, seg);\n        var sourceSeg = this.sourceSeg;\n        if (sourceSeg && sourceSeg.col === seg.col) {\n            var sourceSegProps = _super.prototype.generateSegCss.call(this, sourceSeg);\n            props.left = sourceSegProps.left;\n            props.right = sourceSegProps.right;\n            props.marginLeft = sourceSegProps.marginLeft;\n            props.marginRight = sourceSegProps.marginRight;\n        }\n        return props;\n    };\n    return TimeGridMirrorRenderer;\n}(TimeGridEventRenderer));\nexport default TimeGridMirrorRenderer;\n","import * as tslib_1 from \"tslib\";\nimport { FillRenderer } from '@fullcalendar/core';\nvar TimeGridFillRenderer = /** @class */ (function (_super) {\n    tslib_1.__extends(TimeGridFillRenderer, _super);\n    function TimeGridFillRenderer(timeGrid) {\n        var _this = _super.call(this) || this;\n        _this.timeGrid = timeGrid;\n        return _this;\n    }\n    TimeGridFillRenderer.prototype.attachSegs = function (type, segs) {\n        var timeGrid = this.timeGrid;\n        var containerEls;\n        // TODO: more efficient lookup\n        if (type === 'bgEvent') {\n            containerEls = timeGrid.bgContainerEls;\n        }\n        else if (type === 'businessHours') {\n            containerEls = timeGrid.businessContainerEls;\n        }\n        else if (type === 'highlight') {\n            containerEls = timeGrid.highlightContainerEls;\n        }\n        timeGrid.attachSegsByCol(timeGrid.groupSegsByCol(segs), containerEls);\n        return segs.map(function (seg) {\n            return seg.el;\n        });\n    };\n    TimeGridFillRenderer.prototype.computeSegSizes = function (segs) {\n        this.timeGrid.computeSegVerticals(segs);\n    };\n    TimeGridFillRenderer.prototype.assignSegSizes = function (segs) {\n        this.timeGrid.assignSegVerticals(segs);\n    };\n    return TimeGridFillRenderer;\n}(FillRenderer));\nexport default TimeGridFillRenderer;\n","import * as tslib_1 from \"tslib\";\nimport { htmlEscape, htmlToElement, findElements, removeElement, applyStyle, createElement, PositionCache, createDuration, addDurations, multiplyDuration, wholeDivideDurations, asRoughMs, startOfDay, createFormatter, formatIsoTimeString, DateComponent, memoizeRendering, memoize } from '@fullcalendar/core';\nimport { DayBgRow } from '@fullcalendar/daygrid';\nimport TimeGridEventRenderer from './TimeGridEventRenderer';\nimport TimeGridMirrorRenderer from './TimeGridMirrorRenderer';\nimport TimeGridFillRenderer from './TimeGridFillRenderer';\n/* A component that renders one or more columns of vertical time slots\n----------------------------------------------------------------------------------------------------------------------*/\n// potential nice values for the slot-duration and interval-duration\n// from largest to smallest\nvar AGENDA_STOCK_SUB_DURATIONS = [\n    { hours: 1 },\n    { minutes: 30 },\n    { minutes: 15 },\n    { seconds: 30 },\n    { seconds: 15 }\n];\nvar TimeGrid = /** @class */ (function (_super) {\n    tslib_1.__extends(TimeGrid, _super);\n    function TimeGrid(el, renderProps) {\n        var _this = _super.call(this, el) || this;\n        _this.isSlatSizesDirty = false;\n        _this.isColSizesDirty = false;\n        _this.processOptions = memoize(_this._processOptions);\n        _this.renderSkeleton = memoizeRendering(_this._renderSkeleton);\n        _this.renderSlats = memoizeRendering(_this._renderSlats, null, [_this.renderSkeleton]);\n        _this.renderColumns = memoizeRendering(_this._renderColumns, _this._unrenderColumns, [_this.renderSkeleton]);\n        _this.renderProps = renderProps;\n        var renderColumns = _this.renderColumns;\n        var eventRenderer = _this.eventRenderer = new TimeGridEventRenderer(_this);\n        var fillRenderer = _this.fillRenderer = new TimeGridFillRenderer(_this);\n        _this.mirrorRenderer = new TimeGridMirrorRenderer(_this);\n        _this.renderBusinessHours = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'businessHours'), fillRenderer.unrender.bind(fillRenderer, 'businessHours'), [renderColumns]);\n        _this.renderDateSelection = memoizeRendering(_this._renderDateSelection, _this._unrenderDateSelection, [renderColumns]);\n        _this.renderFgEvents = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderColumns]);\n        _this.renderBgEvents = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'bgEvent'), fillRenderer.unrender.bind(fillRenderer, 'bgEvent'), [renderColumns]);\n        _this.renderEventSelection = memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]);\n        _this.renderEventDrag = memoizeRendering(_this._renderEventDrag, _this._unrenderEventDrag, [renderColumns]);\n        _this.renderEventResize = memoizeRendering(_this._renderEventResize, _this._unrenderEventResize, [renderColumns]);\n        return _this;\n    }\n    /* Options\n    ------------------------------------------------------------------------------------------------------------------*/\n    // Parses various options into properties of this object\n    // MUST have context already set\n    TimeGrid.prototype._processOptions = function (options) {\n        var slotDuration = options.slotDuration, snapDuration = options.snapDuration;\n        var snapsPerSlot;\n        var input;\n        slotDuration = createDuration(slotDuration);\n        snapDuration = snapDuration ? createDuration(snapDuration) : slotDuration;\n        snapsPerSlot = wholeDivideDurations(slotDuration, snapDuration);\n        if (snapsPerSlot === null) {\n            snapDuration = slotDuration;\n            snapsPerSlot = 1;\n            // TODO: say warning?\n        }\n        this.slotDuration = slotDuration;\n        this.snapDuration = snapDuration;\n        this.snapsPerSlot = snapsPerSlot;\n        // might be an array value (for TimelineView).\n        // if so, getting the most granular entry (the last one probably).\n        input = options.slotLabelFormat;\n        if (Array.isArray(input)) {\n            input = input[input.length - 1];\n        }\n        this.labelFormat = createFormatter(input || {\n            hour: 'numeric',\n            minute: '2-digit',\n            omitZeroMinute: true,\n            meridiem: 'short'\n        });\n        input = options.slotLabelInterval;\n        this.labelInterval = input ?\n            createDuration(input) :\n            this.computeLabelInterval(slotDuration);\n    };\n    // Computes an automatic value for slotLabelInterval\n    TimeGrid.prototype.computeLabelInterval = function (slotDuration) {\n        var i;\n        var labelInterval;\n        var slotsPerLabel;\n        // find the smallest stock label interval that results in more than one slots-per-label\n        for (i = AGENDA_STOCK_SUB_DURATIONS.length - 1; i >= 0; i--) {\n            labelInterval = createDuration(AGENDA_STOCK_SUB_DURATIONS[i]);\n            slotsPerLabel = wholeDivideDurations(labelInterval, slotDuration);\n            if (slotsPerLabel !== null && slotsPerLabel > 1) {\n                return labelInterval;\n            }\n        }\n        return slotDuration; // fall back\n    };\n    /* Rendering\n    ------------------------------------------------------------------------------------------------------------------*/\n    TimeGrid.prototype.render = function (props, context) {\n        this.processOptions(context.options);\n        var cells = props.cells;\n        this.colCnt = cells.length;\n        this.renderSkeleton(context.theme);\n        this.renderSlats(props.dateProfile);\n        this.renderColumns(props.cells, props.dateProfile);\n        this.renderBusinessHours(context, props.businessHourSegs);\n        this.renderDateSelection(props.dateSelectionSegs);\n        this.renderFgEvents(context, props.fgEventSegs);\n        this.renderBgEvents(context, props.bgEventSegs);\n        this.renderEventSelection(props.eventSelection);\n        this.renderEventDrag(props.eventDrag);\n        this.renderEventResize(props.eventResize);\n    };\n    TimeGrid.prototype.destroy = function () {\n        _super.prototype.destroy.call(this);\n        // should unrender everything else too\n        this.renderSlats.unrender();\n        this.renderColumns.unrender();\n        this.renderSkeleton.unrender();\n    };\n    TimeGrid.prototype.updateSize = function (isResize) {\n        var _a = this, fillRenderer = _a.fillRenderer, eventRenderer = _a.eventRenderer, mirrorRenderer = _a.mirrorRenderer;\n        if (isResize || this.isSlatSizesDirty) {\n            this.buildSlatPositions();\n            this.isSlatSizesDirty = false;\n        }\n        if (isResize || this.isColSizesDirty) {\n            this.buildColPositions();\n            this.isColSizesDirty = false;\n        }\n        fillRenderer.computeSizes(isResize);\n        eventRenderer.computeSizes(isResize);\n        mirrorRenderer.computeSizes(isResize);\n        fillRenderer.assignSizes(isResize);\n        eventRenderer.assignSizes(isResize);\n        mirrorRenderer.assignSizes(isResize);\n    };\n    TimeGrid.prototype._renderSkeleton = function (theme) {\n        var el = this.el;\n        el.innerHTML =\n            '<div class=\"fc-bg\"></div>' +\n                '<div class=\"fc-slats\"></div>' +\n                '<hr class=\"fc-divider ' + theme.getClass('widgetHeader') + '\" style=\"display:none\" />';\n        this.rootBgContainerEl = el.querySelector('.fc-bg');\n        this.slatContainerEl = el.querySelector('.fc-slats');\n        this.bottomRuleEl = el.querySelector('.fc-divider');\n    };\n    TimeGrid.prototype._renderSlats = function (dateProfile) {\n        var theme = this.context.theme;\n        this.slatContainerEl.innerHTML =\n            '<table class=\"' + theme.getClass('tableGrid') + '\">' +\n                this.renderSlatRowHtml(dateProfile) +\n                '</table>';\n        this.slatEls = findElements(this.slatContainerEl, 'tr');\n        this.slatPositions = new PositionCache(this.el, this.slatEls, false, true // vertical\n        );\n        this.isSlatSizesDirty = true;\n    };\n    // Generates the HTML for the horizontal \"slats\" that run width-wise. Has a time axis on a side. Depends on RTL.\n    TimeGrid.prototype.renderSlatRowHtml = function (dateProfile) {\n        var _a = this.context, dateEnv = _a.dateEnv, theme = _a.theme, isRtl = _a.isRtl;\n        var html = '';\n        var dayStart = startOfDay(dateProfile.renderRange.start);\n        var slotTime = dateProfile.minTime;\n        var slotIterator = createDuration(0);\n        var slotDate; // will be on the view's first day, but we only care about its time\n        var isLabeled;\n        var axisHtml;\n        // Calculate the time for each slot\n        while (asRoughMs(slotTime) < asRoughMs(dateProfile.maxTime)) {\n            slotDate = dateEnv.add(dayStart, slotTime);\n            isLabeled = wholeDivideDurations(slotIterator, this.labelInterval) !== null;\n            axisHtml =\n                '<td class=\"fc-axis fc-time ' + theme.getClass('widgetContent') + '\">' +\n                    (isLabeled ?\n                        '<span>' + // for matchCellWidths\n                            htmlEscape(dateEnv.format(slotDate, this.labelFormat)) +\n                            '</span>' :\n                        '') +\n                    '</td>';\n            html +=\n                '<tr data-time=\"' + formatIsoTimeString(slotDate) + '\"' +\n                    (isLabeled ? '' : ' class=\"fc-minor\"') +\n                    '>' +\n                    (!isRtl ? axisHtml : '') +\n                    '<td class=\"' + theme.getClass('widgetContent') + '\"></td>' +\n                    (isRtl ? axisHtml : '') +\n                    '</tr>';\n            slotTime = addDurations(slotTime, this.slotDuration);\n            slotIterator = addDurations(slotIterator, this.slotDuration);\n        }\n        return html;\n    };\n    TimeGrid.prototype._renderColumns = function (cells, dateProfile) {\n        var _a = this.context, calendar = _a.calendar, view = _a.view, isRtl = _a.isRtl, theme = _a.theme, dateEnv = _a.dateEnv;\n        var bgRow = new DayBgRow(this.context);\n        this.rootBgContainerEl.innerHTML =\n            '<table class=\"' + theme.getClass('tableGrid') + '\">' +\n                bgRow.renderHtml({\n                    cells: cells,\n                    dateProfile: dateProfile,\n                    renderIntroHtml: this.renderProps.renderBgIntroHtml\n                }) +\n                '</table>';\n        this.colEls = findElements(this.el, '.fc-day, .fc-disabled-day');\n        for (var col = 0; col < this.colCnt; col++) {\n            calendar.publiclyTrigger('dayRender', [\n                {\n                    date: dateEnv.toDate(cells[col].date),\n                    el: this.colEls[col],\n                    view: view\n                }\n            ]);\n        }\n        if (isRtl) {\n            this.colEls.reverse();\n        }\n        this.colPositions = new PositionCache(this.el, this.colEls, true, // horizontal\n        false);\n        this.renderContentSkeleton();\n        this.isColSizesDirty = true;\n    };\n    TimeGrid.prototype._unrenderColumns = function () {\n        this.unrenderContentSkeleton();\n    };\n    /* Content Skeleton\n    ------------------------------------------------------------------------------------------------------------------*/\n    // Renders the DOM that the view's content will live in\n    TimeGrid.prototype.renderContentSkeleton = function () {\n        var isRtl = this.context.isRtl;\n        var parts = [];\n        var skeletonEl;\n        parts.push(this.renderProps.renderIntroHtml());\n        for (var i = 0; i < this.colCnt; i++) {\n            parts.push('<td>' +\n                '<div class=\"fc-content-col\">' +\n                '<div class=\"fc-event-container fc-mirror-container\"></div>' +\n                '<div class=\"fc-event-container\"></div>' +\n                '<div class=\"fc-highlight-container\"></div>' +\n                '<div class=\"fc-bgevent-container\"></div>' +\n                '<div class=\"fc-business-container\"></div>' +\n                '</div>' +\n                '</td>');\n        }\n        if (isRtl) {\n            parts.reverse();\n        }\n        skeletonEl = this.contentSkeletonEl = htmlToElement('<div class=\"fc-content-skeleton\">' +\n            '<table>' +\n            '<tr>' + parts.join('') + '</tr>' +\n            '</table>' +\n            '</div>');\n        this.colContainerEls = findElements(skeletonEl, '.fc-content-col');\n        this.mirrorContainerEls = findElements(skeletonEl, '.fc-mirror-container');\n        this.fgContainerEls = findElements(skeletonEl, '.fc-event-container:not(.fc-mirror-container)');\n        this.bgContainerEls = findElements(skeletonEl, '.fc-bgevent-container');\n        this.highlightContainerEls = findElements(skeletonEl, '.fc-highlight-container');\n        this.businessContainerEls = findElements(skeletonEl, '.fc-business-container');\n        if (isRtl) {\n            this.colContainerEls.reverse();\n            this.mirrorContainerEls.reverse();\n            this.fgContainerEls.reverse();\n            this.bgContainerEls.reverse();\n            this.highlightContainerEls.reverse();\n            this.businessContainerEls.reverse();\n        }\n        this.el.appendChild(skeletonEl);\n    };\n    TimeGrid.prototype.unrenderContentSkeleton = function () {\n        removeElement(this.contentSkeletonEl);\n    };\n    // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's col\n    TimeGrid.prototype.groupSegsByCol = function (segs) {\n        var segsByCol = [];\n        var i;\n        for (i = 0; i < this.colCnt; i++) {\n            segsByCol.push([]);\n        }\n        for (i = 0; i < segs.length; i++) {\n            segsByCol[segs[i].col].push(segs[i]);\n        }\n        return segsByCol;\n    };\n    // Given segments grouped by column, insert the segments' elements into a parallel array of container\n    // elements, each living within a column.\n    TimeGrid.prototype.attachSegsByCol = function (segsByCol, containerEls) {\n        var col;\n        var segs;\n        var i;\n        for (col = 0; col < this.colCnt; col++) { // iterate each column grouping\n            segs = segsByCol[col];\n            for (i = 0; i < segs.length; i++) {\n                containerEls[col].appendChild(segs[i].el);\n            }\n        }\n    };\n    /* Now Indicator\n    ------------------------------------------------------------------------------------------------------------------*/\n    TimeGrid.prototype.getNowIndicatorUnit = function () {\n        return 'minute'; // will refresh on the minute\n    };\n    TimeGrid.prototype.renderNowIndicator = function (segs, date) {\n        // HACK: if date columns not ready for some reason (scheduler)\n        if (!this.colContainerEls) {\n            return;\n        }\n        var top = this.computeDateTop(date);\n        var nodes = [];\n        var i;\n        // render lines within the columns\n        for (i = 0; i < segs.length; i++) {\n            var lineEl = createElement('div', { className: 'fc-now-indicator fc-now-indicator-line' });\n            lineEl.style.top = top + 'px';\n            this.colContainerEls[segs[i].col].appendChild(lineEl);\n            nodes.push(lineEl);\n        }\n        // render an arrow over the axis\n        if (segs.length > 0) { // is the current time in view?\n            var arrowEl = createElement('div', { className: 'fc-now-indicator fc-now-indicator-arrow' });\n            arrowEl.style.top = top + 'px';\n            this.contentSkeletonEl.appendChild(arrowEl);\n            nodes.push(arrowEl);\n        }\n        this.nowIndicatorEls = nodes;\n    };\n    TimeGrid.prototype.unrenderNowIndicator = function () {\n        if (this.nowIndicatorEls) {\n            this.nowIndicatorEls.forEach(removeElement);\n            this.nowIndicatorEls = null;\n        }\n    };\n    /* Coordinates\n    ------------------------------------------------------------------------------------------------------------------*/\n    TimeGrid.prototype.getTotalSlatHeight = function () {\n        return this.slatContainerEl.getBoundingClientRect().height;\n    };\n    // Computes the top coordinate, relative to the bounds of the grid, of the given date.\n    // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.\n    TimeGrid.prototype.computeDateTop = function (when, startOfDayDate) {\n        if (!startOfDayDate) {\n            startOfDayDate = startOfDay(when);\n        }\n        return this.computeTimeTop(createDuration(when.valueOf() - startOfDayDate.valueOf()));\n    };\n    // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).\n    TimeGrid.prototype.computeTimeTop = function (duration) {\n        var len = this.slatEls.length;\n        var dateProfile = this.props.dateProfile;\n        var slatCoverage = (duration.milliseconds - asRoughMs(dateProfile.minTime)) / asRoughMs(this.slotDuration); // floating-point value of # of slots covered\n        var slatIndex;\n        var slatRemainder;\n        // compute a floating-point number for how many slats should be progressed through.\n        // from 0 to number of slats (inclusive)\n        // constrained because minTime/maxTime might be customized.\n        slatCoverage = Math.max(0, slatCoverage);\n        slatCoverage = Math.min(len, slatCoverage);\n        // an integer index of the furthest whole slat\n        // from 0 to number slats (*exclusive*, so len-1)\n        slatIndex = Math.floor(slatCoverage);\n        slatIndex = Math.min(slatIndex, len - 1);\n        // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.\n        // could be 1.0 if slatCoverage is covering *all* the slots\n        slatRemainder = slatCoverage - slatIndex;\n        return this.slatPositions.tops[slatIndex] +\n            this.slatPositions.getHeight(slatIndex) * slatRemainder;\n    };\n    // For each segment in an array, computes and assigns its top and bottom properties\n    TimeGrid.prototype.computeSegVerticals = function (segs) {\n        var options = this.context.options;\n        var eventMinHeight = options.timeGridEventMinHeight;\n        var i;\n        var seg;\n        var dayDate;\n        for (i = 0; i < segs.length; i++) {\n            seg = segs[i];\n            dayDate = this.props.cells[seg.col].date;\n            seg.top = this.computeDateTop(seg.start, dayDate);\n            seg.bottom = Math.max(seg.top + eventMinHeight, this.computeDateTop(seg.end, dayDate));\n        }\n    };\n    // Given segments that already have their top/bottom properties computed, applies those values to\n    // the segments' elements.\n    TimeGrid.prototype.assignSegVerticals = function (segs) {\n        var i;\n        var seg;\n        for (i = 0; i < segs.length; i++) {\n            seg = segs[i];\n            applyStyle(seg.el, this.generateSegVerticalCss(seg));\n        }\n    };\n    // Generates an object with CSS properties for the top/bottom coordinates of a segment element\n    TimeGrid.prototype.generateSegVerticalCss = function (seg) {\n        return {\n            top: seg.top,\n            bottom: -seg.bottom // flipped because needs to be space beyond bottom edge of event container\n        };\n    };\n    /* Sizing\n    ------------------------------------------------------------------------------------------------------------------*/\n    TimeGrid.prototype.buildPositionCaches = function () {\n        this.buildColPositions();\n        this.buildSlatPositions();\n    };\n    TimeGrid.prototype.buildColPositions = function () {\n        this.colPositions.build();\n    };\n    TimeGrid.prototype.buildSlatPositions = function () {\n        this.slatPositions.build();\n    };\n    /* Hit System\n    ------------------------------------------------------------------------------------------------------------------*/\n    TimeGrid.prototype.positionToHit = function (positionLeft, positionTop) {\n        var dateEnv = this.context.dateEnv;\n        var _a = this, snapsPerSlot = _a.snapsPerSlot, slatPositions = _a.slatPositions, colPositions = _a.colPositions;\n        var colIndex = colPositions.leftToIndex(positionLeft);\n        var slatIndex = slatPositions.topToIndex(positionTop);\n        if (colIndex != null && slatIndex != null) {\n            var slatTop = slatPositions.tops[slatIndex];\n            var slatHeight = slatPositions.getHeight(slatIndex);\n            var partial = (positionTop - slatTop) / slatHeight; // floating point number between 0 and 1\n            var localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat\n            var snapIndex = slatIndex * snapsPerSlot + localSnapIndex;\n            var dayDate = this.props.cells[colIndex].date;\n            var time = addDurations(this.props.dateProfile.minTime, multiplyDuration(this.snapDuration, snapIndex));\n            var start = dateEnv.add(dayDate, time);\n            var end = dateEnv.add(start, this.snapDuration);\n            return {\n                col: colIndex,\n                dateSpan: {\n                    range: { start: start, end: end },\n                    allDay: false\n                },\n                dayEl: this.colEls[colIndex],\n                relativeRect: {\n                    left: colPositions.lefts[colIndex],\n                    right: colPositions.rights[colIndex],\n                    top: slatTop,\n                    bottom: slatTop + slatHeight\n                }\n            };\n        }\n    };\n    /* Event Drag Visualization\n    ------------------------------------------------------------------------------------------------------------------*/\n    TimeGrid.prototype._renderEventDrag = function (state) {\n        if (state) {\n            this.eventRenderer.hideByHash(state.affectedInstances);\n            if (state.isEvent) {\n                this.mirrorRenderer.renderSegs(this.context, state.segs, { isDragging: true, sourceSeg: state.sourceSeg });\n            }\n            else {\n                this.fillRenderer.renderSegs('highlight', this.context, state.segs);\n            }\n        }\n    };\n    TimeGrid.prototype._unrenderEventDrag = function (state) {\n        if (state) {\n            this.eventRenderer.showByHash(state.affectedInstances);\n            if (state.isEvent) {\n                this.mirrorRenderer.unrender(this.context, state.segs, { isDragging: true, sourceSeg: state.sourceSeg });\n            }\n            else {\n                this.fillRenderer.unrender('highlight', this.context);\n            }\n        }\n    };\n    /* Event Resize Visualization\n    ------------------------------------------------------------------------------------------------------------------*/\n    TimeGrid.prototype._renderEventResize = function (state) {\n        if (state) {\n            this.eventRenderer.hideByHash(state.affectedInstances);\n            this.mirrorRenderer.renderSegs(this.context, state.segs, { isResizing: true, sourceSeg: state.sourceSeg });\n        }\n    };\n    TimeGrid.prototype._unrenderEventResize = function (state) {\n        if (state) {\n            this.eventRenderer.showByHash(state.affectedInstances);\n            this.mirrorRenderer.unrender(this.context, state.segs, { isResizing: true, sourceSeg: state.sourceSeg });\n        }\n    };\n    /* Selection\n    ------------------------------------------------------------------------------------------------------------------*/\n    // Renders a visual indication of a selection. Overrides the default, which was to simply render a highlight.\n    TimeGrid.prototype._renderDateSelection = function (segs) {\n        if (segs) {\n            if (this.context.options.selectMirror) {\n                this.mirrorRenderer.renderSegs(this.context, segs, { isSelecting: true });\n            }\n            else {\n                this.fillRenderer.renderSegs('highlight', this.context, segs);\n            }\n        }\n    };\n    TimeGrid.prototype._unrenderDateSelection = function (segs) {\n        if (segs) {\n            if (this.context.options.selectMirror) {\n                this.mirrorRenderer.unrender(this.context, segs, { isSelecting: true });\n            }\n            else {\n                this.fillRenderer.unrender('highlight', this.context);\n            }\n        }\n    };\n    return TimeGrid;\n}(DateComponent));\nexport default TimeGrid;\n","import * as tslib_1 from \"tslib\";\nimport { Splitter, hasBgRendering } from '@fullcalendar/core';\nvar AllDaySplitter = /** @class */ (function (_super) {\n    tslib_1.__extends(AllDaySplitter, _super);\n    function AllDaySplitter() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    AllDaySplitter.prototype.getKeyInfo = function () {\n        return {\n            allDay: {},\n            timed: {}\n        };\n    };\n    AllDaySplitter.prototype.getKeysForDateSpan = function (dateSpan) {\n        if (dateSpan.allDay) {\n            return ['allDay'];\n        }\n        else {\n            return ['timed'];\n        }\n    };\n    AllDaySplitter.prototype.getKeysForEventDef = function (eventDef) {\n        if (!eventDef.allDay) {\n            return ['timed'];\n        }\n        else if (hasBgRendering(eventDef)) {\n            return ['timed', 'allDay'];\n        }\n        else {\n            return ['allDay'];\n        }\n    };\n    return AllDaySplitter;\n}(Splitter));\nexport default AllDaySplitter;\n","import * as tslib_1 from \"tslib\";\nimport { findElements, createElement, htmlEscape, matchCellWidths, uncompensateScroll, compensateScroll, subtractInnerElHeight, ScrollComponent, View, createFormatter, diffDays, buildGotoAnchorHtml, getAllDayHtml, memoizeRendering } from '@fullcalendar/core';\nimport { DayGrid } from '@fullcalendar/daygrid';\nimport TimeGrid from './TimeGrid';\nimport AllDaySplitter from './AllDaySplitter';\nvar TIMEGRID_ALL_DAY_EVENT_LIMIT = 5;\nvar WEEK_HEADER_FORMAT = createFormatter({ week: 'short' });\n/* An abstract class for all timegrid-related views. Displays one more columns with time slots running vertically.\n----------------------------------------------------------------------------------------------------------------------*/\n// Is a manager for the TimeGrid subcomponent and possibly the DayGrid subcomponent (if allDaySlot is on).\n// Responsible for managing width/height.\nvar AbstractTimeGridView = /** @class */ (function (_super) {\n    tslib_1.__extends(AbstractTimeGridView, _super);\n    function AbstractTimeGridView() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.splitter = new AllDaySplitter();\n        _this.renderSkeleton = memoizeRendering(_this._renderSkeleton, _this._unrenderSkeleton);\n        /* Header Render Methods\n        ------------------------------------------------------------------------------------------------------------------*/\n        // Generates the HTML that will go before the day-of week header cells\n        _this.renderHeadIntroHtml = function () {\n            var _a = _this.context, theme = _a.theme, dateEnv = _a.dateEnv, options = _a.options;\n            var range = _this.props.dateProfile.renderRange;\n            var dayCnt = diffDays(range.start, range.end);\n            var weekText;\n            if (options.weekNumbers) {\n                weekText = dateEnv.format(range.start, WEEK_HEADER_FORMAT);\n                return '' +\n                    '<th class=\"fc-axis fc-week-number ' + theme.getClass('widgetHeader') + '\" ' + _this.axisStyleAttr() + '>' +\n                    buildGotoAnchorHtml(// aside from link, important for matchCellWidths\n                    options, dateEnv, { date: range.start, type: 'week', forceOff: dayCnt > 1 }, htmlEscape(weekText) // inner HTML\n                    ) +\n                    '</th>';\n            }\n            else {\n                return '<th class=\"fc-axis ' + theme.getClass('widgetHeader') + '\" ' + _this.axisStyleAttr() + '></th>';\n            }\n        };\n        /* Time Grid Render Methods\n        ------------------------------------------------------------------------------------------------------------------*/\n        // Generates the HTML that goes before the bg of the TimeGrid slot area. Long vertical column.\n        _this.renderTimeGridBgIntroHtml = function () {\n            var theme = _this.context.theme;\n            return '<td class=\"fc-axis ' + theme.getClass('widgetContent') + '\" ' + _this.axisStyleAttr() + '></td>';\n        };\n        // Generates the HTML that goes before all other types of cells.\n        // Affects content-skeleton, mirror-skeleton, highlight-skeleton for both the time-grid and day-grid.\n        _this.renderTimeGridIntroHtml = function () {\n            return '<td class=\"fc-axis\" ' + _this.axisStyleAttr() + '></td>';\n        };\n        /* Day Grid Render Methods\n        ------------------------------------------------------------------------------------------------------------------*/\n        // Generates the HTML that goes before the all-day cells\n        _this.renderDayGridBgIntroHtml = function () {\n            var _a = _this.context, theme = _a.theme, options = _a.options;\n            return '' +\n                '<td class=\"fc-axis ' + theme.getClass('widgetContent') + '\" ' + _this.axisStyleAttr() + '>' +\n                '<span>' + // needed for matchCellWidths\n                getAllDayHtml(options) +\n                '</span>' +\n                '</td>';\n        };\n        // Generates the HTML that goes before all other types of cells.\n        // Affects content-skeleton, mirror-skeleton, highlight-skeleton for both the time-grid and day-grid.\n        _this.renderDayGridIntroHtml = function () {\n            return '<td class=\"fc-axis\" ' + _this.axisStyleAttr() + '></td>';\n        };\n        return _this;\n    }\n    AbstractTimeGridView.prototype.render = function (props, context) {\n        _super.prototype.render.call(this, props, context);\n        this.renderSkeleton(context);\n    };\n    AbstractTimeGridView.prototype.destroy = function () {\n        _super.prototype.destroy.call(this);\n        this.renderSkeleton.unrender();\n    };\n    AbstractTimeGridView.prototype._renderSkeleton = function (context) {\n        this.el.classList.add('fc-timeGrid-view');\n        this.el.innerHTML = this.renderSkeletonHtml();\n        this.scroller = new ScrollComponent('hidden', // overflow x\n        'auto' // overflow y\n        );\n        var timeGridWrapEl = this.scroller.el;\n        this.el.querySelector('.fc-body > tr > td').appendChild(timeGridWrapEl);\n        timeGridWrapEl.classList.add('fc-time-grid-container');\n        var timeGridEl = createElement('div', { className: 'fc-time-grid' });\n        timeGridWrapEl.appendChild(timeGridEl);\n        this.timeGrid = new TimeGrid(timeGridEl, {\n            renderBgIntroHtml: this.renderTimeGridBgIntroHtml,\n            renderIntroHtml: this.renderTimeGridIntroHtml\n        });\n        if (context.options.allDaySlot) { // should we display the \"all-day\" area?\n            this.dayGrid = new DayGrid(// the all-day subcomponent of this view\n            this.el.querySelector('.fc-day-grid'), {\n                renderNumberIntroHtml: this.renderDayGridIntroHtml,\n                renderBgIntroHtml: this.renderDayGridBgIntroHtml,\n                renderIntroHtml: this.renderDayGridIntroHtml,\n                colWeekNumbersVisible: false,\n                cellWeekNumbersVisible: false\n            });\n            // have the day-grid extend it's coordinate area over the <hr> dividing the two grids\n            var dividerEl = this.el.querySelector('.fc-divider');\n            this.dayGrid.bottomCoordPadding = dividerEl.getBoundingClientRect().height;\n        }\n    };\n    AbstractTimeGridView.prototype._unrenderSkeleton = function () {\n        this.el.classList.remove('fc-timeGrid-view');\n        this.timeGrid.destroy();\n        if (this.dayGrid) {\n            this.dayGrid.destroy();\n        }\n        this.scroller.destroy();\n    };\n    /* Rendering\n    ------------------------------------------------------------------------------------------------------------------*/\n    // Builds the HTML skeleton for the view.\n    // The day-grid and time-grid components will render inside containers defined by this HTML.\n    AbstractTimeGridView.prototype.renderSkeletonHtml = function () {\n        var _a = this.context, theme = _a.theme, options = _a.options;\n        return '' +\n            '<table class=\"' + theme.getClass('tableGrid') + '\">' +\n            (options.columnHeader ?\n                '<thead class=\"fc-head\">' +\n                    '<tr>' +\n                    '<td class=\"fc-head-container ' + theme.getClass('widgetHeader') + '\">&nbsp;</td>' +\n                    '</tr>' +\n                    '</thead>' :\n                '') +\n            '<tbody class=\"fc-body\">' +\n            '<tr>' +\n            '<td class=\"' + theme.getClass('widgetContent') + '\">' +\n            (options.allDaySlot ?\n                '<div class=\"fc-day-grid\"></div>' +\n                    '<hr class=\"fc-divider ' + theme.getClass('widgetHeader') + '\" />' :\n                '') +\n            '</td>' +\n            '</tr>' +\n            '</tbody>' +\n            '</table>';\n    };\n    /* Now Indicator\n    ------------------------------------------------------------------------------------------------------------------*/\n    AbstractTimeGridView.prototype.getNowIndicatorUnit = function () {\n        return this.timeGrid.getNowIndicatorUnit();\n    };\n    // subclasses should implement\n    // renderNowIndicator(date: DateMarker) {\n    // }\n    AbstractTimeGridView.prototype.unrenderNowIndicator = function () {\n        this.timeGrid.unrenderNowIndicator();\n    };\n    /* Dimensions\n    ------------------------------------------------------------------------------------------------------------------*/\n    AbstractTimeGridView.prototype.updateSize = function (isResize, viewHeight, isAuto) {\n        _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); // will call updateBaseSize. important that executes first\n        this.timeGrid.updateSize(isResize);\n        if (this.dayGrid) {\n            this.dayGrid.updateSize(isResize);\n        }\n    };\n    // Adjusts the vertical dimensions of the view to the specified values\n    AbstractTimeGridView.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) {\n        var _this = this;\n        var eventLimit;\n        var scrollerHeight;\n        var scrollbarWidths;\n        // make all axis cells line up\n        this.axisWidth = matchCellWidths(findElements(this.el, '.fc-axis'));\n        // hack to give the view some height prior to timeGrid's columns being rendered\n        // TODO: separate setting height from scroller VS timeGrid.\n        if (!this.timeGrid.colEls) {\n            if (!isAuto) {\n                scrollerHeight = this.computeScrollerHeight(viewHeight);\n                this.scroller.setHeight(scrollerHeight);\n            }\n            return;\n        }\n        // set of fake row elements that must compensate when scroller has scrollbars\n        var noScrollRowEls = findElements(this.el, '.fc-row').filter(function (node) {\n            return !_this.scroller.el.contains(node);\n        });\n        // reset all dimensions back to the original state\n        this.timeGrid.bottomRuleEl.style.display = 'none'; // will be shown later if this <hr> is necessary\n        this.scroller.clear(); // sets height to 'auto' and clears overflow\n        noScrollRowEls.forEach(uncompensateScroll);\n        // limit number of events in the all-day area\n        if (this.dayGrid) {\n            this.dayGrid.removeSegPopover(); // kill the \"more\" popover if displayed\n            eventLimit = this.context.options.eventLimit;\n            if (eventLimit && typeof eventLimit !== 'number') {\n                eventLimit = TIMEGRID_ALL_DAY_EVENT_LIMIT; // make sure \"auto\" goes to a real number\n            }\n            if (eventLimit) {\n                this.dayGrid.limitRows(eventLimit);\n            }\n        }\n        if (!isAuto) { // should we force dimensions of the scroll container?\n            scrollerHeight = this.computeScrollerHeight(viewHeight);\n            this.scroller.setHeight(scrollerHeight);\n            scrollbarWidths = this.scroller.getScrollbarWidths();\n            if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars?\n                // make the all-day and header rows lines up\n                noScrollRowEls.forEach(function (rowEl) {\n                    compensateScroll(rowEl, scrollbarWidths);\n                });\n                // the scrollbar compensation might have changed text flow, which might affect height, so recalculate\n                // and reapply the desired height to the scroller.\n                scrollerHeight = this.computeScrollerHeight(viewHeight);\n                this.scroller.setHeight(scrollerHeight);\n            }\n            // guarantees the same scrollbar widths\n            this.scroller.lockOverflow(scrollbarWidths);\n            // if there's any space below the slats, show the horizontal rule.\n            // this won't cause any new overflow, because lockOverflow already called.\n            if (this.timeGrid.getTotalSlatHeight() < scrollerHeight) {\n                this.timeGrid.bottomRuleEl.style.display = '';\n            }\n        }\n    };\n    // given a desired total height of the view, returns what the height of the scroller should be\n    AbstractTimeGridView.prototype.computeScrollerHeight = function (viewHeight) {\n        return viewHeight -\n            subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\n    };\n    /* Scroll\n    ------------------------------------------------------------------------------------------------------------------*/\n    // Computes the initial pre-configured scroll state prior to allowing the user to change it\n    AbstractTimeGridView.prototype.computeDateScroll = function (duration) {\n        var top = this.timeGrid.computeTimeTop(duration);\n        // zoom can give weird floating-point values. rather scroll a little bit further\n        top = Math.ceil(top);\n        if (top) {\n            top++; // to overcome top border that slots beyond the first have. looks better\n        }\n        return { top: top };\n    };\n    AbstractTimeGridView.prototype.queryDateScroll = function () {\n        return { top: this.scroller.getScrollTop() };\n    };\n    AbstractTimeGridView.prototype.applyDateScroll = function (scroll) {\n        if (scroll.top !== undefined) {\n            this.scroller.setScrollTop(scroll.top);\n        }\n    };\n    // Generates an HTML attribute string for setting the width of the axis, if it is known\n    AbstractTimeGridView.prototype.axisStyleAttr = function () {\n        if (this.axisWidth != null) {\n            return 'style=\"width:' + this.axisWidth + 'px\"';\n        }\n        return '';\n    };\n    return AbstractTimeGridView;\n}(View));\nexport default AbstractTimeGridView;\nAbstractTimeGridView.prototype.usesMinMaxTime = true; // indicates that minTime/maxTime affects rendering\n","import * as tslib_1 from \"tslib\";\nimport { DateComponent, memoize, intersectRanges, Slicer } from '@fullcalendar/core';\nvar SimpleTimeGrid = /** @class */ (function (_super) {\n    tslib_1.__extends(SimpleTimeGrid, _super);\n    function SimpleTimeGrid(timeGrid) {\n        var _this = _super.call(this, timeGrid.el) || this;\n        _this.buildDayRanges = memoize(buildDayRanges);\n        _this.slicer = new TimeGridSlicer();\n        _this.timeGrid = timeGrid;\n        return _this;\n    }\n    SimpleTimeGrid.prototype.firstContext = function (context) {\n        context.calendar.registerInteractiveComponent(this, {\n            el: this.timeGrid.el\n        });\n    };\n    SimpleTimeGrid.prototype.destroy = function () {\n        _super.prototype.destroy.call(this);\n        this.context.calendar.unregisterInteractiveComponent(this);\n    };\n    SimpleTimeGrid.prototype.render = function (props, context) {\n        var dateEnv = this.context.dateEnv;\n        var dateProfile = props.dateProfile, dayTable = props.dayTable;\n        var dayRanges = this.dayRanges = this.buildDayRanges(dayTable, dateProfile, dateEnv);\n        this.timeGrid.receiveProps(tslib_1.__assign({}, this.slicer.sliceProps(props, dateProfile, null, context.calendar, this.timeGrid, dayRanges), { dateProfile: dateProfile, cells: dayTable.cells[0] }), context);\n    };\n    SimpleTimeGrid.prototype.renderNowIndicator = function (date) {\n        this.timeGrid.renderNowIndicator(this.slicer.sliceNowDate(date, this.timeGrid, this.dayRanges), date);\n    };\n    SimpleTimeGrid.prototype.buildPositionCaches = function () {\n        this.timeGrid.buildPositionCaches();\n    };\n    SimpleTimeGrid.prototype.queryHit = function (positionLeft, positionTop) {\n        var rawHit = this.timeGrid.positionToHit(positionLeft, positionTop);\n        if (rawHit) {\n            return {\n                component: this.timeGrid,\n                dateSpan: rawHit.dateSpan,\n                dayEl: rawHit.dayEl,\n                rect: {\n                    left: rawHit.relativeRect.left,\n                    right: rawHit.relativeRect.right,\n                    top: rawHit.relativeRect.top,\n                    bottom: rawHit.relativeRect.bottom\n                },\n                layer: 0\n            };\n        }\n    };\n    return SimpleTimeGrid;\n}(DateComponent));\nexport default SimpleTimeGrid;\nexport function buildDayRanges(dayTable, dateProfile, dateEnv) {\n    var ranges = [];\n    for (var _i = 0, _a = dayTable.headerDates; _i < _a.length; _i++) {\n        var date = _a[_i];\n        ranges.push({\n            start: dateEnv.add(date, dateProfile.minTime),\n            end: dateEnv.add(date, dateProfile.maxTime)\n        });\n    }\n    return ranges;\n}\nvar TimeGridSlicer = /** @class */ (function (_super) {\n    tslib_1.__extends(TimeGridSlicer, _super);\n    function TimeGridSlicer() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    TimeGridSlicer.prototype.sliceRange = function (range, dayRanges) {\n        var segs = [];\n        for (var col = 0; col < dayRanges.length; col++) {\n            var segRange = intersectRanges(range, dayRanges[col]);\n            if (segRange) {\n                segs.push({\n                    start: segRange.start,\n                    end: segRange.end,\n                    isStart: segRange.start.valueOf() === range.start.valueOf(),\n                    isEnd: segRange.end.valueOf() === range.end.valueOf(),\n                    col: col\n                });\n            }\n        }\n        return segs;\n    };\n    return TimeGridSlicer;\n}(Slicer));\nexport { TimeGridSlicer };\n","import * as tslib_1 from \"tslib\";\nimport { DayHeader, DaySeries, DayTable, memoize } from '@fullcalendar/core';\nimport { SimpleDayGrid } from '@fullcalendar/daygrid';\nimport SimpleTimeGrid from './SimpleTimeGrid';\nimport AbstractTimeGridView from './AbstractTimeGridView';\nvar TimeGridView = /** @class */ (function (_super) {\n    tslib_1.__extends(TimeGridView, _super);\n    function TimeGridView() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.buildDayTable = memoize(buildDayTable);\n        return _this;\n    }\n    TimeGridView.prototype.render = function (props, context) {\n        _super.prototype.render.call(this, props, context); // for flags for updateSize. also _renderSkeleton/_unrenderSkeleton\n        var _a = this.props, dateProfile = _a.dateProfile, dateProfileGenerator = _a.dateProfileGenerator;\n        var nextDayThreshold = context.nextDayThreshold;\n        var dayTable = this.buildDayTable(dateProfile, dateProfileGenerator);\n        var splitProps = this.splitter.splitProps(props);\n        if (this.header) {\n            this.header.receiveProps({\n                dateProfile: dateProfile,\n                dates: dayTable.headerDates,\n                datesRepDistinctDays: true,\n                renderIntroHtml: this.renderHeadIntroHtml\n            }, context);\n        }\n        this.simpleTimeGrid.receiveProps(tslib_1.__assign({}, splitProps['timed'], { dateProfile: dateProfile,\n            dayTable: dayTable }), context);\n        if (this.simpleDayGrid) {\n            this.simpleDayGrid.receiveProps(tslib_1.__assign({}, splitProps['allDay'], { dateProfile: dateProfile,\n                dayTable: dayTable,\n                nextDayThreshold: nextDayThreshold, isRigid: false }), context);\n        }\n        this.startNowIndicator(dateProfile, dateProfileGenerator);\n    };\n    TimeGridView.prototype._renderSkeleton = function (context) {\n        _super.prototype._renderSkeleton.call(this, context);\n        if (context.options.columnHeader) {\n            this.header = new DayHeader(this.el.querySelector('.fc-head-container'));\n        }\n        this.simpleTimeGrid = new SimpleTimeGrid(this.timeGrid);\n        if (this.dayGrid) {\n            this.simpleDayGrid = new SimpleDayGrid(this.dayGrid);\n        }\n    };\n    TimeGridView.prototype._unrenderSkeleton = function () {\n        _super.prototype._unrenderSkeleton.call(this);\n        if (this.header) {\n            this.header.destroy();\n        }\n        this.simpleTimeGrid.destroy();\n        if (this.simpleDayGrid) {\n            this.simpleDayGrid.destroy();\n        }\n    };\n    TimeGridView.prototype.renderNowIndicator = function (date) {\n        this.simpleTimeGrid.renderNowIndicator(date);\n    };\n    return TimeGridView;\n}(AbstractTimeGridView));\nexport default TimeGridView;\nexport function buildDayTable(dateProfile, dateProfileGenerator) {\n    var daySeries = new DaySeries(dateProfile.renderRange, dateProfileGenerator);\n    return new DayTable(daySeries, false);\n}\n","import { createPlugin } from '@fullcalendar/core';\nimport AbstractTimeGridView from './AbstractTimeGridView';\nimport TimeGridView, { buildDayTable } from './TimeGridView';\nimport { TimeGridSlicer, buildDayRanges } from './SimpleTimeGrid';\nexport { TimeGridView, AbstractTimeGridView, buildDayTable, buildDayRanges, TimeGridSlicer };\nexport { default as TimeGrid } from './TimeGrid';\nexport default createPlugin({\n    defaultView: 'timeGridWeek',\n    views: {\n        timeGrid: {\n            class: TimeGridView,\n            allDaySlot: true,\n            slotDuration: '00:30:00',\n            slotEventOverlap: true // a bad name. confused with overlap/constraint system\n        },\n        timeGridDay: {\n            type: 'timeGrid',\n            duration: { days: 1 }\n        },\n        timeGridWeek: {\n            type: 'timeGrid',\n            duration: { weeks: 1 }\n        }\n    }\n});\n"],"names":["tslib_1.__extends","tslib_1.__assign"],"mappings":"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"}
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY