import * as $ from 'jquery' import HelperRenderer from '../component/renderers/HelperRenderer' export default class DayGridHelperRenderer extends HelperRenderer { // Renders a mock "helper" event. `sourceSeg` is the associated internal segment object. It can be null. renderSegs(segs, sourceSeg) { let helperNodes = [] let rowStructs // TODO: not good to call eventRenderer this way rowStructs = this.eventRenderer.renderSegRows(segs) // inject each new event skeleton into each associated row this.component.rowEls.each(function(row, rowNode) { let rowEl = $(rowNode) // the .fc-row let skeletonEl = $('
') // will be absolutely positioned let skeletonTopEl let skeletonTop // If there is an original segment, match the top position. Otherwise, put it at the row's top level if (sourceSeg && sourceSeg.row === row) { skeletonTop = sourceSeg.el.position().top } else { skeletonTopEl = rowEl.find('.fc-content-skeleton tbody') if (!skeletonTopEl.length) { // when no events skeletonTopEl = rowEl.find('.fc-content-skeleton table') } skeletonTop = skeletonTopEl.position().top } skeletonEl.css('top', skeletonTop) .find('table') .append(rowStructs[row].tbodyEl) rowEl.append(skeletonEl) helperNodes.push(skeletonEl[0]) }) return $(helperNodes) // must return the elements rendered } }