136 lines
5.0 KiB
JavaScript
136 lines
5.0 KiB
JavaScript
/*!
|
|
FullCalendar v5.7.0
|
|
Docs & License: https://fullcalendar.io/
|
|
(c) 2021 Adam Shaw
|
|
*/
|
|
'use strict';
|
|
|
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
|
require('./vdom.cjs');
|
|
var tslib = require('tslib');
|
|
var common = require('@fullcalendar/common');
|
|
|
|
var Calendar = /** @class */ (function (_super) {
|
|
tslib.__extends(Calendar, _super);
|
|
function Calendar(el, optionOverrides) {
|
|
if (optionOverrides === void 0) { optionOverrides = {}; }
|
|
var _this = _super.call(this) || this;
|
|
_this.isRendering = false;
|
|
_this.isRendered = false;
|
|
_this.currentClassNames = [];
|
|
_this.customContentRenderId = 0; // will affect custom generated classNames?
|
|
_this.handleAction = function (action) {
|
|
// actions we know we want to render immediately
|
|
switch (action.type) {
|
|
case 'SET_EVENT_DRAG':
|
|
case 'SET_EVENT_RESIZE':
|
|
_this.renderRunner.tryDrain();
|
|
}
|
|
};
|
|
_this.handleData = function (data) {
|
|
_this.currentData = data;
|
|
_this.renderRunner.request(data.calendarOptions.rerenderDelay);
|
|
};
|
|
_this.handleRenderRequest = function () {
|
|
if (_this.isRendering) {
|
|
_this.isRendered = true;
|
|
var currentData_1 = _this.currentData;
|
|
common.render(common.createElement(common.CalendarRoot, { options: currentData_1.calendarOptions, theme: currentData_1.theme, emitter: currentData_1.emitter }, function (classNames, height, isHeightAuto, forPrint) {
|
|
_this.setClassNames(classNames);
|
|
_this.setHeight(height);
|
|
return (common.createElement(common.CustomContentRenderContext.Provider, { value: _this.customContentRenderId },
|
|
common.createElement(common.CalendarContent, tslib.__assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, currentData_1))));
|
|
}), _this.el);
|
|
}
|
|
else if (_this.isRendered) {
|
|
_this.isRendered = false;
|
|
common.unmountComponentAtNode(_this.el);
|
|
_this.setClassNames([]);
|
|
_this.setHeight('');
|
|
}
|
|
common.flushToDom();
|
|
};
|
|
_this.el = el;
|
|
_this.renderRunner = new common.DelayedRunner(_this.handleRenderRequest);
|
|
new common.CalendarDataManager({
|
|
optionOverrides: optionOverrides,
|
|
calendarApi: _this,
|
|
onAction: _this.handleAction,
|
|
onData: _this.handleData,
|
|
});
|
|
return _this;
|
|
}
|
|
Object.defineProperty(Calendar.prototype, "view", {
|
|
get: function () { return this.currentData.viewApi; } // for public API
|
|
,
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
Calendar.prototype.render = function () {
|
|
var wasRendering = this.isRendering;
|
|
if (!wasRendering) {
|
|
this.isRendering = true;
|
|
}
|
|
else {
|
|
this.customContentRenderId += 1;
|
|
}
|
|
this.renderRunner.request();
|
|
if (wasRendering) {
|
|
this.updateSize();
|
|
}
|
|
};
|
|
Calendar.prototype.destroy = function () {
|
|
if (this.isRendering) {
|
|
this.isRendering = false;
|
|
this.renderRunner.request();
|
|
}
|
|
};
|
|
Calendar.prototype.updateSize = function () {
|
|
_super.prototype.updateSize.call(this);
|
|
common.flushToDom();
|
|
};
|
|
Calendar.prototype.batchRendering = function (func) {
|
|
this.renderRunner.pause('batchRendering');
|
|
func();
|
|
this.renderRunner.resume('batchRendering');
|
|
};
|
|
Calendar.prototype.pauseRendering = function () {
|
|
this.renderRunner.pause('pauseRendering');
|
|
};
|
|
Calendar.prototype.resumeRendering = function () {
|
|
this.renderRunner.resume('pauseRendering', true);
|
|
};
|
|
Calendar.prototype.resetOptions = function (optionOverrides, append) {
|
|
this.currentDataManager.resetOptions(optionOverrides, append);
|
|
};
|
|
Calendar.prototype.setClassNames = function (classNames) {
|
|
if (!common.isArraysEqual(classNames, this.currentClassNames)) {
|
|
var classList = this.el.classList;
|
|
for (var _i = 0, _a = this.currentClassNames; _i < _a.length; _i++) {
|
|
var className = _a[_i];
|
|
classList.remove(className);
|
|
}
|
|
for (var _b = 0, classNames_1 = classNames; _b < classNames_1.length; _b++) {
|
|
var className = classNames_1[_b];
|
|
classList.add(className);
|
|
}
|
|
this.currentClassNames = classNames;
|
|
}
|
|
};
|
|
Calendar.prototype.setHeight = function (height) {
|
|
common.applyStyleProp(this.el, 'height', height);
|
|
};
|
|
return Calendar;
|
|
}(common.CalendarApi));
|
|
|
|
Object.keys(common).forEach(function (k) {
|
|
if (k !== 'default') Object.defineProperty(exports, k, {
|
|
enumerable: true,
|
|
get: function () {
|
|
return common[k];
|
|
}
|
|
});
|
|
});
|
|
exports.Calendar = Calendar;
|